• Activity
  • Votes
  • Comments
  • New
  • All activity
    1. Python web developers - what is your favorite framework?

      As some of you may know, Tildes is written in Pyramid. I've done some OSS work in Pyramid and Flask, but my paid web dev work the past few years has been mostly in Django. There are some newer...

      As some of you may know, Tildes is written in Pyramid. I've done some OSS work in Pyramid and Flask, but my paid web dev work the past few years has been mostly in Django. There are some newer frameworks out there like Sanic or Falcon, and some older ones like Zope, CherryPy and Turbogears, that I've played with but have no real experience in.

      Personally, I like Django for its "batteries included" and its big ecosystem, Flask for its minimalism and Pyramid for its elegant design. There's no single framework that fits all needs and all have their share of annoyances - Django can be quite difficult to swap out things like the default ORM or template system (though these have gotten better in recent versions), Flask has some architectural issues with request and other global variables, and Pyramid perhaps suffers from a relatively small ecosystem and lack of "one way to do it".

      What are your experiences and preferences?

      9 votes
    2. Be nice to your DevOps team by not using Maven or kitchen sink frameworks.

      Maven tries to be the kitchen sink in a lot of ways - rigid requirements to use plugins instead of scripts, trying to wrap your scm, and even act as a docker wrapper... this is insanely...

      Maven tries to be the kitchen sink in a lot of ways - rigid requirements to use plugins instead of scripts, trying to wrap your scm, and even act as a docker wrapper... this is insanely frustrating and an anti-patter for the rest of the software space. I would rather find a new job than work at a company that keeps pumping out maven and jhipster apps. It doesn't play nice with CI, it uses an insanely ugly configuration (xml) and most java developers don't even really know what they are doing when they are using it.

      Making a micro-service api? You don't need jhipster or maven or even java - there are so many other better alternatives. Need something simple? flask. Need something performant? go. And there are so many others in between that won't give you a NullPointerException, require you to download the entire internet just to serve some serialized json, or make your devops team hate you.

      Interested in hearing rebuttals and other peoples alts and overall preferences.

      5 votes
    3. Firefox 62 Nightlies: Improving DNS Privacy in Firefox

      Firefox recently introduced DNS over HTTPS (DoH) and Trusted Recursive Resolver (TRR) in nightly builds for Firefox 62. DoH and TRR are intended to help mitigate these potential privacy and...

      Firefox recently introduced DNS over HTTPS (DoH) and Trusted Recursive Resolver (TRR) in nightly builds for Firefox 62.

      DoH and TRR are intended to help mitigate these potential privacy and security concerns:

      1. Untrustworthy DNS resolvers tracking your requests, or tampering with responses from DNS servers.
      2. On-path routers tracking or tampering in the same way.
      3. DNS servers tracking your DNS requests.

      DNS over HTTPs (DoH) encrypts DNS requests and responses, protecting against on-path eavesdropping, tracking, and response tampering.

      Trusted Recursive Resolver (TRR) allows Firefox to use a DNS resolver that's different from your machines network settings. You can use any recursive resolver that is compatible with DoH, but it should be a trusted resolver (one that won't sell users’ data or trick users with spoofed DNS). Mozilla is partnering with Cloudflare (but not using the 1.1.1.1 address) as the initial default TRR, however it's possible to use another 3rd party TRR or run your own.

      Cloudflare is providing a recursive resolution service with a pro-user privacy policy. They have committed to throwing away all personally identifiable data after 24 hours, and to never pass that data along to third-parties. And there will be regular audits to ensure that data is being cleared as expected.

      Additionally, Cloudflare will be doing QNAME minimization where the DNS resolver no longer sends the full original QNAME (foo.bar.baz.example.com) to the upstream name server. Instead it will only include the label for the zone it's trying to resolve.

      For example, let's assume the DNS resolver is trying to find foo.bar.baz.example.com, and already knows that ns1.nic.example.com is authoritative for .example.com, but does not know a more specific authoritative name server.

      1. It will send the query for just baz.example.com to ns1.nic.example.com which returns the authoritative name server for baz.example.com.
      2. The resolver then sends a query for bar.baz.example.com to the nameserver for baz.example.com, and gets a response with the authoritative nameserver for bar.baz.example.com
      3. Finally the resolver sends the query for foo.bar.baz.example.com to bar.baz.example.com's nameserver.
        In doing this the full queried name (foo.bar.baz.example.com) is not exposed to intermediate name servers (bar.baz.example.com, baz.example.com, example.com, or even the .com root nameservers)

      Collectively DNS over HTTPs (DoH), Trusted Recursive Resolver (TRR), and QNAME Minimization are a step in the right direction, this does not fix DNS related data leaks entirely:

      After you do the DNS lookup to find the IP address, you still need to connect to the web server at that address. To do this, you send an initial request. This request includes a server name indication, which says which site on the server you want to connect to. And this request is unencrypted.
      That means that your ISP can still figure out which sites you’re visiting, because it’s right there in the server name indication. Plus, the routers that pass that initial request from your browser to the web server can see that info too.

      So How do I enable it?
      DoH and TRR can be enabled in Firefox 62 or newer by going to about:config:

      • Set network.trr.mode to 2
        • Here's the possible network.trr.mode settings:
          • 0 - Off (default): Use standard native resolving only (don't use TRR at all)
          • 1 - Race: Native vs. TRR. Do them both in parallel and go with the one that returns a result first.
          • 2 - First: Use TRR first, and only if the name resolve fails use the native resolver as a fallback.
          • 3 - Only: Only use TRR. Never use the native (after the initial setup).
          • 4 - Shadow: Runs the TRR resolves in parallel with the native for timing and measurements but uses only the native resolver results.
          • 5 - Off by choice: This is the same as 0 but marks it as done by choice and not done by default.
      • Set network.trr.uri to your DoH Server:
      • The DNS Tab on about:networking will show which names were resolved using TRR via DoH.

      Links:
      A cartoon intro to DNS over HTTPS
      Improving DNS Privacy in Firefox
      DNS Query Name Minimization to Improve Privacy
      TRR Preferences

      I'm not affiliated with Mozilla or Firefox, I just thought ~ would find this interesting.

      13 votes
    4. Most instructive/well made educational computer science/math videos?

      What are some of your favorite videos that explain deep topics in depth? I've recently been on a 3blue1brown binge (youtube) and am looking for more videos of that ilk. Doesn't have to be a series...

      What are some of your favorite videos that explain deep topics in depth?

      I've recently been on a 3blue1brown binge (youtube) and am looking for more videos of that ilk. Doesn't have to be a series or a consistent uploader, one off videos are sometimes the best. Just thought I'd ask ~comp if there's anything in particular that comes to mind.

      This is in part inspired by the video posted by /u/Deimos in the Technical Goals section of Tildes, titled Simplicity Matters

      11 votes
    5. Any NixOS users?

      Has anyone here used NixOS for any significant amount of time as their daily driver? I've been considering using it since I learned about it, I really like the idea of how it manages packages, but...

      Has anyone here used NixOS for any significant amount of time as their daily driver? I've been considering using it since I learned about it, I really like the idea of how it manages packages, but I'm a bit hesitant, particularly about the availability of packages, and how the whole folder structure changes from the usual Linux. I'm also worried since I haven't seen any guide about how to use python other than the usual advice to get a virtualenv for everything.

      I consider myself a fairly advanced Linux user, I have used Arch as my daily driver for 4 years, and Linux for like 10 years, as a side note, so I'm not really that afraid of troubleshooting.

      13 votes
    6. Favorite Desktop Environment for Arch?

      I've been using Solus for years now as my main driver, but I think I may be switching to Arch soon. Or at least, start using Arch on my laptop, and keep Solus on my desktop. The main reason I...

      I've been using Solus for years now as my main driver, but I think I may be switching to Arch soon. Or at least, start using Arch on my laptop, and keep Solus on my desktop. The main reason I wanna give Arch a try is because of how minimal it can be. I don't need a lot of applications, and I like to have the least amount of software installed on my machine as I can. Plus, distro-hopping is a disease, and it's time I try something new, haha.

      So, I was just curious what DE people are using with Arch. Ideally I want something very minimal, but not too ugly. I liked using Budgie with Solus, so I may very well just use Budgie with my Arch install, but I thought I would see if anyone has any recommendations first! Thanks!

      18 votes
    7. How do you manage your dotfiles?

      This area is so much more complex than I first expected, with options like your basic manual cp or symlinks, stow, yadm, homeshick, or hacking together some bash yourself. What do you use?

      23 votes
    8. Anyone got suggestions for coding / gaming headphones?

      By coding headphones I mean with active noise cancellation, to be focused on your work. However I'd like to have it more universal since i do play videogames in my freetime, so with a microphone...

      By coding headphones I mean with active noise cancellation, to be focused on your work. However I'd like to have it more universal since i do play videogames in my freetime, so with a microphone would be best - Or should i have 2 sets for both activities?

      Something below 100€ would be nice (naive yes, but I aint got much).

      I looked at the Mixcder e7 on Amazon, which looked promising. Thoughts?

      9 votes
    9. Man JasperReports is annoying

      Each element in the report has an 'Evaluation Time'. The catch, as I'm beginning to realise, is that only those rendered 'Now' actually have any ability to expand or collapse the bands within the...

      Each element in the report has an 'Evaluation Time'. The catch, as I'm beginning to realise, is that only those rendered 'Now' actually have any ability to expand or collapse the bands within the report. i.e. it makes an initial pass (evaluation time 'Now') and figures out the sizes, and then goes back and recalculates the content (but not the size) of the stuff.
      Which is great, except that I'm trying to print something (which should disappear when empty) from a subreport, which only works if it's deferred. Guess I'll have to accept that that band can't be collapsed when empty. It's OK, I'll just redesign my report then.

      /rant over.

      3 votes
    10. Open external links on ~ in new tabs

      I was missing this feature from Reddit and saw others were as well so I thought I would share a user script I created to solve this issue until it's added (if it's added) // ==UserScript== //...

      I was missing this feature from Reddit and saw others were as well so I thought I would share a user script I created to solve this issue until it's added (if it's added)

      // ==UserScript==
      // @name         Tildes.net: Open external links in new tab
      // @namespace    http://tampermonkey.net/
      // @version      0.1
      // @description  Opens external links on tildes.net in a new tab
      // @author       SleepyGary
      // @match        https://tildes.net/*
      // @grant        none
      // ==/UserScript==
      
      (function() {
          'use strict';
      
          document.querySelectorAll('a').forEach(el => {
              if (!el.href.includes('tildes.net') && el.href !== '') {
                  el.target = "_blank";
              }
          });
      })();
      
      14 votes
    11. Feedback on a federated decentralized git hosting solution

      I have an idea, it's not particularly new. I think git code sharing could integrate very nicely with blockchains. I think it could be done elegantly without modifying the git protocol at all, just...

      I have an idea, it's not particularly new. I think git code sharing could integrate very nicely with blockchains.

      I think it could be done elegantly without modifying the git protocol at all, just as an optional superset (like Github) to provide forks, PR and discussion.

      Something like:

      • smart contract based system
      • something like lightening network for off master chain pushes
      • local node hosting all obtained versions of code, something like PNPM meets zeronet
      • cloning/pushing over DHT with web torrent.
      • client key pairs for collaboration and authentication

      Do you guys think it could be done? Thoughts? Ideas? Criticisms?

      Would anyone be interested in working on something like this? I'd like all the help I can get and any input people have.

      6 votes
    12. Best linux distro and/or tiling window manager for a small touch screen?

      There seems to be a solid community of Linux people growing here, so thought I might try asking... I'm building a head unit for my car, using a Raspberry Pi to a 7" (and eventually 10-14") touch...

      There seems to be a solid community of Linux people growing here, so thought I might try asking...

      I'm building a head unit for my car, using a Raspberry Pi to a 7" (and eventually 10-14") touch screen.

      I'd like to have a fast-booting Linux distro with tiling windows that lets me set up a config file to launch a bunch of programs that are tiled perfectly edge to edge, with minimal border (a 1px line us OK), minimal header (just the name of the program? or none at all maybe), and have them all locked in place so I can't accidentally drag one or resize one when touching audio controls, for example.

      The idea is to have a few windows, such as an audio player, a GPS map, 2 dash cam feeds, and an OBDII style sensor readouts, all on screen at the same time, each sized differently.

      I've got each individual program working fine on Raspbian right now, but no idea how to go about the tiling-on-boot, locking them in place, etc.

      Can I do it with Raspbian with some specific window manager? or do I need a different distro?

      Thanks in advance.

      8 votes
    13. Nouveau (open source Nvidia graphics drivers)

      So I tried to install sway on my desktop today. This required a lot of fiddling, as I had to pull in bleeding-edge dependencies for the Wayland libraries, and had to build the compositor framework...

      So I tried to install sway on my desktop today. This required a lot of fiddling, as I had to pull in bleeding-edge dependencies for the Wayland libraries, and had to build the compositor framework wlroots. Finally however, I had everything compiled and ready to go and....

      Proprietary Nvidia drivers are not supported. Use Nouveau.

      I had completely forgotten that sway requires open-source Nvidia drivers. So - has anyone had experience using Nouveau? How usable is it from day-to-day? How noticeable is the performance hit when switching from proprietary drivers?

      8 votes
    14. Do companies have an ethical (not legal) obligation to disclose how they track employees?

      Companies can technically and legally track just about everything you do at work digitally, from your entire browser history to even particular usage patterns on company web apps. Should there be...

      Companies can technically and legally track just about everything you do at work digitally, from your entire browser history to even particular usage patterns on company web apps. Should there be an expectation that companies disclose what they do/do not track to employees? Or should employees have to just live with the fact that companies can and will spy on them as a cost of doing business?

      17 votes
    15. Are there any good dark browsers for IPhone 4?

      I've just used Tildes on my phone for the first time and FUCK! MY EYES! I know I can't change the color of Safari, so I looked in the app store but couldn't find anything. Can you reccomend me a...

      I've just used Tildes on my phone for the first time and FUCK! MY EYES! I know I can't change the color of Safari, so I looked in the app store but couldn't find anything. Can you reccomend me a good browser with a dark theme?

      5 votes
    16. Ask Tildes: What is the best way to get involved with the development of Tildes?

      Hi everyone, I'm a frontend developer and do a bit of backend work as well. I'd really like to contribute some of my downtime to helping build this site. I've checked out the issue tracker on...

      Hi everyone, I'm a frontend developer and do a bit of backend work as well. I'd really like to contribute some of my downtime to helping build this site. I've checked out the issue tracker on gitlab and some of the docs, tech goals and announcement, but I'd like to start getting my hands dirty and contribute some code.

      • Is there a roadmap for development?
      • A feature list to implement?
      • Bugs to fix?

      How can I help out? What's the best way to get started?

      Also for all non-devs, what is the best way that they can start helping out?

      30 votes
    17. Requiring users to use passphrase instead of passwords

      Hey guys -- I wrote a blog that I'd love some feedback on. I'm an identity product manager and have been trying to train my users to use passphrases. Do these read friendly enough? I want it to be...

      Hey guys -- I wrote a blog that I'd love some feedback on. I'm an identity product manager and have been trying to train my users to use passphrases. Do these read friendly enough? I want it to be readable by all users, but my target audience is other people in product and software.

      https://medium.com/@toritxtornado/training-your-users-to-use-passphrases-2a42fd69e141

      12 votes
    18. At what point is a rewrite warranted?

      [Context: I do computational research in the natural sciences.] I have been tasked with verifying the correctness of a ~3000 LOC software project written in a mix of Fortrans 77 and 90. I have...

      [Context: I do computational research in the natural sciences.]

      I have been tasked with verifying the correctness of a ~3000 LOC software project written in a mix of Fortrans 77 and 90. I have made some small amount of headway with getting the program up and running, but it seems like every time I make one step forward I take ten steps back.
      Some issues with the program:

      • It only compiles with one, specific, closed-source compiler
      • Useless variable names
      • Minimal comments (the ones that do exist are near-gibberish, explain the obvious, or comment out debugging print statements)
      • Weird decisions are made with no justification, e.g. the code author decided that, if we are considering the calculations on the first molecule, we are only to consider its first atom
      • Magic numbers everywhere, very few of which are known physical constants or their conversions
      • etc, etc, etc.

      I am reaching peak frustration after having worked with this code for only a few weeks. At this point, the idea of sitting down and rewriting the program from scratch is very, very tempting.
      Do I need to just step back, relax, and keep hitting my head against the wall, or is this a situation where a rewrite may be necessary?

      12 votes
    19. Programming Challenge: Make a Caesar cipher!

      The point of this thread is to post your code for solving the task. Other will comment with feedback and new ideas. Post what language (and version, if relevant) your code is written in. Have fun!...

      The point of this thread is to post your code for solving the task. Other will comment with feedback and new ideas. Post what language (and version, if relevant) your code is written in.
      Have fun!

      Task description

      Your task is to make a caesar cipher that takes a word and an integer as arguments.
      An article explaining what the cipher does.

      Input description

      A word followed by a space and an integer.

      Output description

      The ciphered word.

      Sample onput

      A 1
      Caesar 5
      Tildes 25
      

      Sample output

      B
      Hfjxfw
      Shkcdr
      

      Bonus 1

      Make the cipher work backwards.

      Sample input

      B 1
      Hfjxfw 5
      Shkcdr 25
      

      Sample output

      A
      Caesar
      Tildes
      

      Bonus 2

      Make the cipher handle special characters.

      Sample onput

      A_ 1
      Cae?sar 5
      Til!des 25
      

      Sample output

      B
      Hfj?xfw
      Shk!cdr
      
      22 votes