I expected the same and was gladly surprised with this interesting collection. That being said, there's a link under "uncategorized" regarding the X window system :)
Likewise. I just listened to a BSD Now podcast on building the FreeBSD graphics stack.[1] They went into X and its history a bit so I had X on the brain.
But this list from OP is even more interesting! That list is a wonderful (mine?)field of rabbit holes! Bookmarked and thank you.
I was doing this and gave up shortly after realizing the network protocol supports endian negotiation and also some messages are still arbitrary endian
Was also expecting this but was very pleasantly surprised at what was there. It's a pretty awesome list of intermediate to advanced programming projects covering a nice variety of things.
Is it just me or does all these great educational content out there lead to analysis paralysis? I mean if I wanted to just learn something new and I chanced upon this web page I'd be stumped on where to start.
I've worked through a couple of these lists and a few of the projects. My take on them is that many of the tutorials are not vetted for quality or even completeness. I have several projects where the author of the guide essentially 'gives up' 60-80% of the way through, usually in the most difficult stage of the process, in what can be described as a 'rest of the fkn owl' result.
Also as someone who easily succumbs to analysis paralysis, this has made it quite difficult to motivate myself to start another one.
I agree. I’d pay for a "course" that assembled a massive list of practical learning projects like this into something that plots real skill/knowledge growth from beginner to advanced in a structured way.
Maybe you're interested in a platform I've built for this kind of thing - https://readpaths.com. It lets people collaborate to build something like what you describe. People can add links and other people can add connections between these links, resulting in a dependency graph.
It hasn't for me. If I didn't have any direction, sure. But if there's something I actually want to learn, it's easy to find a good source and then hold my nose to the grindstone.
For a Linux user, you can build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem. From Windows or Mac, this FTP account could be accessed through built-in software.
https://news.ycombinator.com/item?id=8863
What I find interesting that many think before dropbox the only other option was FTP, while in fact there were other cloud based storage providers with good integration on the desktop such as virtual disk drive on Windows, even in late 90s. Dropbox won with PR/marketing I believe. Can anyone list what differentiated them compared to exiting solutions, besides marketing?
Even if you could get the above working yourself, good luck trying to get someone else to so you can collaborate on a project.
Developers often dismiss ‘marketing’ as though it is just a fluffy icon or slick website, but how a product is positioned (in Dropbox case for ease of use and the fact that the project is engineered to ‘feel like a folder’) is absolutely marketing and critical to its success.
I meant there were (and still are?) consumer products with simple installers (next > next) which were integrated on Windows as an extra disk - no need to create it manually. Syncing was just that - drag & drop to that disk/folder.
Different than your examples. But I just finished making my own "Mostly Printed 3D Printer". I'm a software dev but had basically no experience with Arduino or anything else related to the project. It made me feel like when I was a kid on Christmas with a new large Lego set. One of the most educational and fulfilling projects I've done in recent memory.
It was good timing too because the motherboard on my 3d printer just shorted out. I didn't want to pay the full price ($115) for a replacement board. So I bought an open source board similar to the one I used for my MPCNC. Since I had just put that togheter I knew what I was doing even though there was limited help in converting my particular printer available online.
For something that has "open source" in the title, it was remarkably hard to find the actual plans -- there are many blank and broken pages; even the info page for "CEB press" (which seems the first machine they did) is spread over 3 different websites and has many empty/broken pages.
The only thing that is clear form the website is that they are happy to sell you workshops.
A guy named Ben Eater is in the process of putting together a fantastic video series about building your own 6502, which was an extremely popular microprocessor that was used in dozens of popular electronics back in the 80s. You can buy a kit that contains all of the parts you need. Not quite the same format as the tutorials linked in this post but educational nonetheless.
Mostly off-topic: anyone know how to set the github.com cookie to never expire? All I want, usually, is to star a project. But all that gets me, usually, is a sign-in screen. And I never seem to have my U2F key handy.
Add the 2FA to your password manager! At least 1Password supports this.
Although, you might not want to do this, depending on your threat model. Take care if you do (now both password + 2FA can be obtained by having your password manager compromised, but at least your protected if only your password leaks from some dump)
I don't use OTP 2FA if U2F is available. Adding a physical token to a password manager is not an option.
Part of the problem is that GitHub is both a source code repository frontend (calling for tighter security) and a social network (calling for minimal security). So the cookie expiration policy makes sense for the former case but not the latter. A compromise might be letting the user mark a specific browser instance as trusted, so that the site can either set a longer expiration or else not ask for the second factor from that instance.
Anyway, was hoping someone had figured out which cookie held GitHub's token and knew a browser extension that could extend its lifetime. Not really looking to learn about password managers, which I already use.
I read your article, and it's about reasoning in regard to design requirements. I'm curious to hear what you have to say. Would you please provide some explanation as to why programmers should understand building blocks?
Is there something like this for distributed services for computation? For example, I have a large computation job that I would like to split up across nodes?
> if you cannot create it, you are simply borrowing someone else's idea and treating it like your own.
With the understanding, of course, that this isn't necessarily a bad thing! Understanding is certainly useful, but if it works, then it works, regardless of who built it. Reimplementing, say, a standard library will make you a better programmer, but if just including libraries to do the heavy lifting produces a working system, then that has value too. There are only so many hour in the day; there's value in knowing when to just hand-wave the giants whose shoulders you stand on.