Build Your Own X


867 points | by hakanderyal 209 days ago


  • commandlinefan 209 days ago

    I was expecting build your own XWindows Server.

    • _def 209 days ago

      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 :)

      • emptybits 209 days ago

        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.


        • lunixbochs 209 days ago

          I was doing this and gave up shortly after realizing the network protocol supports endian negotiation and also some messages are still arbitrary endian

          • grawprog 209 days ago

            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.

            • svd4anything 209 days ago

              Same here and I was thinking it would be a detailed guide to compiling from source.

              • arittr 208 days ago

                me too! i was ready for a dark, spooky, deep dive here....

              • ceres 209 days ago

                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.

                • basq 209 days ago

                  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.

                  • jplayer01 209 days ago

                    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.

                    • amadeuspagel 206 days ago

                      Maybe you're interested in a platform I've built for this kind of thing - 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.

                    • a-priori 209 days ago

                      Pick the one that seems most mysterious and scary.

                      • gbear605 209 days ago

                        Alternatively, pick the one that seems just a bit too mysterious and scary to be able to do yourself.

                      • Blackthorn 209 days ago

                        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.

                        • sullyj3 209 days ago

                          Roll a few dice.

                          • tambourine_man 208 days ago

                            Too much choice can be paralyzing, yes.

                          • cweagans 208 days ago
                            • rmgraham 209 days ago

                              This is a great resource. There were also some other useful links in the comments last time:

                              • kristianc 209 days ago

                                Is there really no option for build your own Dropbox? ;)

                                • bra-ket 209 days ago

                                  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.

                                  • zerr 208 days ago

                                    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?

                                    • kristianc 208 days ago

                                      Ease of use, UX, network effects, positioning (the fact that it isn’t called Virtual Hard Disk)


                                      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.

                                      • zerr 208 days ago

                                        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.

                                      • FR10 208 days ago

                                        From what I have heard on "How to Draw a Startup" [0] Illustration was vital for Dropbox to differentiate themselves.


                                        • tonyedgecombe 208 days ago

                                          It just worked, I tried most of the other solutions at the time and they were terrible.

                                        • invalidOrTaken 208 days ago

                                          It's so funny, I remember reading that.

                                          What I should have thought: "Wow this guy is an idiot, no consumer will ever do that."

                                          What I did think: "Wow I'm an idiot, I need to learn linux better."

                                          • kristianc 209 days ago

                                            I’m glad someone got the reference...

                                        • johnmorrison 209 days ago

                                          Does anybody know about something like this for hardware?

                                          Clocks, motors, stuff like that?

                                          • xahrepap 209 days ago

                                            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.

                                            • OJFord 208 days ago

                                              Do you have a blog/YouTube channel or something with more details?

                                              • xahrepap 208 days ago

                                                I don't. But the linked site has great, detailed instructions

                                            • hugs 209 days ago

                                              For industrial-type things, there's Open Source Ecology (

                                              • theamk 209 days ago

                                                That is a weird website!

                                                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.

                                              • Zanneth 207 days ago

                                                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.


                                                • dpedu 208 days ago

                                                  Do you mean building clocks, motors, etc or using them in a hardware project along side e.g. an arduino?

                                                  • rytill 208 days ago

                                                    I’m interested in your hardware project resources.

                                                  • agumonkey 209 days ago

                                                    youtube has a few engineers and makers, far from precise but still inspiring

                                                  • sowbug 208 days ago

                                                    Mostly off-topic: anyone know how to set the 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.

                                                    • tambourine_man 208 days ago

                                                      Get a password manager?

                                                      • kikoreis 208 days ago

                                                        But he mentioned 2FA?

                                                        • capableweb 208 days ago

                                                          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)

                                                          • sowbug 208 days ago

                                                            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.

                                                          • tambourine_man 208 days ago

                                                            Ah yes, I see.

                                                          • sowbug 208 days ago

                                                            I already use a password manager. U2F can't be cloned, by design.

                                                        • tshanmu 208 days ago

                                                          Is there any pointers on how to write your own DNS server? Google does not seem to help much as it shows up mostly hosting your own bind server.

                                                        • punnerud 209 days ago

                                                          A good reading on why you should understand your building blocks:

                                                          • nimvlaj30 207 days ago

                                                            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?

                                                          • kstenerud 209 days ago

                                                            Very cool! Does anyone know of something similar for a secure network stack, like a "build your own TLS" but very barebones?

                                                            • ZeikJT 206 days ago

                                                              Happy to see nand2tetris on there, one of the most interesting projects I've done in a long time!

                                                              • cognitoMagneto 208 days ago

                                                                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?

                                                                • yosefzeev 209 days ago

                                                                  Very neat link. It is true that if you cannot create it, you are simply borrowing someone else's idea and treating it like your own.

                                                                  • yjftsjthsd-h 209 days ago

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

                                                                    • sriku 209 days ago

                                                                      .. at least until the abstraction "leaks".

                                                                      • sabas123 209 days ago

                                                                        I believe all abstracts leak at least a little. It all comes down to trade-offs between what risks you want to take.

                                                                  • aredirect 208 days ago

                                                                    shameless plug: practical/real world applications step by step

                                                                    • wolfpwner 207 days ago

                                                                      Adding "Web Crawler" would be helpful

                                                                      • agumonkey 209 days ago

                                                                        I searched for Xwindow way too long

                                                                        • wrboyce 208 days ago

                                                                          There is an X Window related post at the bottom of the page under Uncategorised.

                                                                        • h_amg 209 days ago

                                                                          This is dope. thanks for sharing

                                                                          • sebastianconcpt 209 days ago

                                                                            Really nice. I was hoping to find some Smalltalk examples

                                                                            • nvr219 208 days ago

                                                                              thank u!!!

                                                                              • jadia 209 days ago

                                                                                This is some great content. Build you own X helps you understand the internals of X.