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?
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.
The scalable, cluster computing-based engineering at companies like Facebook and Google is inspirational to say the least.I work on Hadoop and thrift among other technologies and the Facebook Engineering team notes available on the web have been a great resource.
It might take some care to appreciate,but the way they manage to slice and serve such massive (ever-growing) user database accurately and relatively fast is amazing by modern standards.
>Hot tip: whenever anybody writes "I am in no way suggesting <X>", the chance that they are suggesting <X> approaches 100%.
Rather, the chance that they unconsiously percieve <X> approaches 100%, but they, at the same time, are sane enough to realise that there is a distinct line between truth and perception.
As an avid Linux user for the last five years,I find it hard to disagree with any of the author's complaints.It is something we all have been stuck with through the process of "accepting linux". Being a programmer,however,has educated me about tradeoffs.The Unix principle of a tool doing one thing at a time and doing it well greatly impresses me.In that light,I would like to express a few personal opinions:
1.Linux,being GNU/Linux is a stack.This design philosophy is inherently reflected in its merits and demerits.The root problem is not the implementation of feature X and Y,rather the optimised implementation of feature X and Y within the boundaries purported by this very design principle.If Linux moves forward,it moves forward within this ecosystem.Comparing features with different ecosystems like Windows and OSX is not really a viable option,since they,in turn,have their own strengths and weaknesses.
2.Linux,from my personal experience,is a superior platform for development and hacking.It also provides better transparency for a person wanting to explore the internals of a Unix-based OS,and tailor-make his system to suit his tastes.Of course,these might not be the primary objective of every desktop user,so it is perfectly fine for him to prefer any alternative that better serves his purpose,which brings me to my next point-
3.Linux should not be viewed as a replacement of Windows and OSX for every user.All 3 platforms have different strengths and weaknesses,and it is next to impossible IMHO to build a single desktop platform that is superior in every aspect for every kind of purpose,and at the same time is perfectly intuitive to every user.
4.The hardware compatibility paradox (drivers will be better if a platform is mainstream,and a platform will never be mainstream unless it has got good drivers) can have two solutions,based on the perception of whichever is primary:Choosing an OS and choosing hardware accordingly,or choosing hardware first and then trying to make an OS utilise all its features.The second approach,understandably,depends a lot on manufacturers and their business concerns.It ultimately depends on what the user deems more important:the OS features or the hardware functionality.If either approach in insignificant in the end result(a perfect match),great.Otherwise a tradeoff is inevitable,and a limitation,not necessary a weakness (barring shoddy development).The great user experience that Mac OSX boasts of can clearly be attributed to the fact that the hardware is custom-made for the OS.That hardware support is better on,say,Windows is perfectly logical if we accept the fact that casual Desktop users far outnumber developers/hackers,and platforms like Windows are decidedly more productive and better for the former.
To conclude,while accepting the fact that linux is decidedly lacking on many aspects of modern desktop usage,I would strongly like to debate the fact that the "Linux for the desktop" mantra should mean building a linux system that is the be-all-end-all perfect system for programmers,power users and casual ones alike.I debate this solely for the reason that I feel that is paradoxical at best and results in spaghetti alogorithms at worst.No coding language is considered perfect;they all have areas where they are deemed the most apt.I find it hard to see why an OS should not be judged on the same lines.
A "Desktop" should not mean a machine delievering the best(fast,optimised) experience in every possible usage that it can be put to.Note that I agree that it should support all the features that a desktop could possibly used for.I merely wish to stress the word "best".In an ideal world maybe,but in a real world tradeoffs exist.To every person,a desktop means a different thing based on his/her priorities.Linux,despite its present limitations,might be the best option for some,and not so much for others.
India still remains a developing country with people having deep financial insecurities-this is inevitable.
Even more interesting is the fact that a majority of us study engineering because it provides the assurance of getting a decent-to-well-paying job.You would not find people joining ivy league colleges here to study roman history-that profile does not have financial,and consequently social,security.
Till the time comes when Indians can choose what they want to do without monetary overheads,the work culture at such companies will continue-its nothing but survival instinct.
"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.
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!
Wow! Just contemplating how times have changed.The guy Jospeh Millar worked at the now-defunct FTP Software, Inc.Java was new.There was no google to search for programming help.Linux was totally nerdy.Windows was '95.Redmond was not that important a place.It was not hated that much.
How times have changed.