• 5 Posts
  • 199 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.







  • Don’t forget the fully fledged remote desktop thats built in, WebVR (which is being replaced with Web XR), Web Bluetooth, Web USB (aka Web Serial), the API’s for notifications, ambient light sensors, an entire transactional database (indexed DB), the language translation API, the Gamepad API (videogame controllers), hardware passkeys (yubikey), speech to text, text-to-speech, webGL, webGPU, webworkers, service workers, an entire suite of cryptography tools, GPS location, battery, vibration, FileSystem API, picture-in-picture API, WebRTC, WebSensors, etc.

    And then, on top of all that, building a miniture OS-kernel so that tasks can be sandboxed scheduled/executed and prevent 1 tab from crashing everything or hogging resources.


  • (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.






  • 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.