• 11 Posts
  • 167 Comments
Joined 1 year ago
cake
Cake day: July 8th, 2023

help-circle

  • Its a tough problem. You have to find something that you want to exist; like an app or a website or a game. For example, try making a GUI for managing SSH keys. You know, like the ones github makes you create in order to clone and push to a repo. Make a visual representation of those keys (stored in the .ssh folder), and tools to add/delete them.

    Along the way you’ll find tons of missing things, tools that should exist but don’t. Those are the “real” projects that will really expand your capabilities as a developer.

    For example, I was coding in python and wanted to make a function that caches the output because the code was inherently slow.

    • but to cache an output we need to know the inputs are the same
    • hashes are good for this but lists can’t be hashed with the built-in python hash function
    • we can make our own hash, but hashing a list that contains itself is hard
    • there is a solution for lists, but then hashing a set that contains itself is a serious problem (MUCH harder than hashing a list)
    • turns out hashing a set is the same problem as the graph-coloring problem (graph isomorphism)
    • suddenly I have a really deep understanding of recursive data structures all because I wanted to a function that caches its output.




  • I agree, and here’s a few different avenues of examples:

    1. If trying to get past interviews, Leet code and hacker rank can be great. They’re not so great for real world problems, but not bad.

    2. Advent of code is a good middle ground between theory and practice in my opinion.

    3. To really learn real world problem solving, I’d recommend implement a specification, without looking at existing implementations. For example, make a basic regex engine (formal Regular Expressions not PCRE expressions), or try to implement the C Preprocessor, or the JS event loop.










  • (I know I’m two months late)

    To back up what you’re saying, I work with ML, and the guy next to me does ML for traffic signal controllers. He basically established the benchmark for traffic signal simulators for reinforcement learning.

    Nothing works. All of the cutting edge reinforment algorithms, all the existing publications, some of which train for months, all perform worse than “fixed policy” controllers. The issue isn’t the brains of the system, its the fact that stoplights are fricken blind to what is happing.



  • Cool, this is exactly what I was hoping to learn but couldn’t find. It sounds like its still a pretty manual process, but thats okay. If thats how it is righ now, then thats exactly what I want to know.

    I’m considering making tools (GUI local app, but also website AUTH frontend/backend tooling) to try and make systems like this more commonplace and standardized. I didn’t know about revocation keys, so I’m glad I heard about that before trying to build my own.






  • This could actually be a pretty big deal

    1. The Eclipse foundation has been making alternatives to VS Code’s “killer apps” (Docker, Python, Go, C++, SSH, Live share, etc). AKA the closed source ones exclusive to VS Code offical that make all forks of VS Code a huge downgrade. The Eclipse foundation is also running the extension store that powers VS Codium.
    2. “why not just use VS Codium?” (With the killer extensions made by Eclipse)
      • VS Codium is great, but because of manpower limits, they always have to be “downstream” of VS Code. They can’t rewrite any of the core systems.
      • As someone who contributes to VS Code, and loves VS Codium, many issues I have with VS Code have been open on github for +7 years, with hundreds of comments and thumbs-ups. We can’t even sort the file explorer view by last-edited and folders-first (but we can do folders-first alphabetical). Thats been open since 2017.
      • Theia looks like it could finally be the hard fork I’ve been waiting for. A hackable editor, trying to be open source, where all my extensions work, and the community can actually make a PR, get it merged, and extensions are not excessively sandboxed.
      • Will it be that? Only time will tell, but the Eclipse foundation has a pretty good record. They’re definitely prepared for long term support.