As an outsider, it is impressive to see the incremental, "chipping away at problems piecemeal" approach KDE has been taking since their Plasma release a decade ago. Slow, steady and intentional.
To think that almost all of this is volunteer work makes it so much more heartwarming.
This. There's an almost inevitable orchestration involved in maintaining good documentation for a fast-moving codebase. Tools like Swagger[1] are good for automatically generating API documentation, but beyond that there is little help for maintaining generic README-style documentation.
How do large, fast moving projects like the linux kernel manage this?
Linux delegated its user-facing documentation to third parties pretty much from the beginning.
Even for those things which have documentation in Documentation/, there is no formal or informal rule that if you make a change which causes existing statements to become false you have to update them.
Defensive coding always breaks my flow during problem-solving. However, thinking of edge cases reflects a programmer's maturity. I usually trade off by writing a short comment (# check for null) during the flow and then revisiting that part later.
First, depending on the situation I can find myself practicing "Paranoid Programming". It's an approach I picked up in my C days when I had to deal with network protocol code. Essentially: switch-case with every conceivable error condition handled and then the happy path as the final, unlikely edge case (Also: "default" case always triggered an error.)
On the other hand it's a really depressing way to write code. When 80% or more of your dispatcher logic is dedicated to error handling, following the actual logic can be really cumbersome. On the positive side, once you are in the proper code, you have far less edge cases to worry about.
"Recently, Mozilla started offering a new addon. called MAFIAAfire, in the Firefox Addons site. If you are using MAFIAAfire when you try to visit one of the seized domains, you’ll be redirected to the new address for that website, if they have created one.
Note: MAFIAA means Music and Film Industry Association of America
Naturally, Homeland Security didn’t like that and sent Mozilla a take-down notice for the new addon. Mozilla’s written response to the request was a classic “Why do we need to?”, in the form of 11 piercing questions that will probably never be answered."
Facebook can actually be (to use the cliche) the Google killer.Leveraging user preferences to give results is as revolutionary as Google's page rank algorithm.Combined with Bing,in the long run this could be a powerful tool as more and more of the world goes virtual,going deeper in facebook and e-commerce platforms.
Then your next task is to figure out that piece of it. That's the piece I am working on. I clearly have something of value but turning it into some kind of income stream is proving challenging. It's a big part of why I hang here.
For all the supposed geekery associated with linux,there is actually a thriving community and superb documentation to help you with any stumble.The supposedly "geek" linux distros are not difficult,but rather require you to think more.
Start with Ubuntu though.It has reached a stage now where its pretty intuitive,and all the configuration you want can be done by points-and-clicks.There is also a lot of support and any problem can be solved by a mere google search.An alternative is Linux mint,it is designed to be even easier than Ubuntu for beginners.
THEN get your hands dirty,as you gain confidence.And have an internet connection handy.That's when the fun starts!