Domain: catb.org
Stories and comments across the archive that link to catb.org.
Comments · 2,698
-
Where continue may fail with a nested loop
"Would you believe a GOTO statement and a couple of flags?"
How about a while loop and a continue statement?
In C, a continue breaks out of only one nested while or for loop. If you're in a triply nested loop, for example, you can't specify "break break continue" to break out of two nested loops and go to the next iteration of the outer loop. You have to break your loop up into multiple functions and eat a possible performance hit from calling a function in a loop. So if your profiler tells you the occasional goto is faster than a function call in a loop, there's still a place for a well-documented goto.
C++ code can use exceptions to break out of a loop. But statically linking libsupc++'s exception support bloats your binary by roughly 64 KiB (tested on MinGW for x86 ISA and devkitARM for Thumb ISA). This can be a pain if your executable must load entirely into a tiny RAM dedicated to a core, as seen in the proverbial elevator controller, in multiplayer clients on the Game Boy Advance system (which run without a Game Pak present so they must fit into the 256 KiB RAM), or even in the Cell architecture (which gives 128 KiB to each DSP core).
-
Re:I believe now is an appropriate time to cue theI believe now is an appropriate time to cue the... "in soviet america..." jokes
In Soviet Russia, you listened to kremvax.
In Soviet America, nsavax listens to you.Democracy is the theory that the people know what they want, and deserve to get it good and hard. We wanted a government that listened to the people...
-
True. True.
Linux does need more useful, constructive critics. The Linux Haters blog is a good example of the sort of criticism that can do a lot of good. So was this famous ESR rant and its followup. Another good example, albeit not from the Linux world, is the Bill Gates memo that shows up on Slashdot from time to time to time.
The other thing Linux, and Open Source in general, needs is a developer community that responds to that kind of criticism by actually improving things, even when the critic isn't a well known name like ESR or Gates.
-
True. True.
Linux does need more useful, constructive critics. The Linux Haters blog is a good example of the sort of criticism that can do a lot of good. So was this famous ESR rant and its followup. Another good example, albeit not from the Linux world, is the Bill Gates memo that shows up on Slashdot from time to time to time.
The other thing Linux, and Open Source in general, needs is a developer community that responds to that kind of criticism by actually improving things, even when the critic isn't a well known name like ESR or Gates.
-
Re:Bastards!
I see the ST bigots are still out, and still bitter at losing the Amiga/Atari flamewar.*
Not that Amiga partisans aren't bitter at the Great Anti-Amiga Conspiracy. (See also Amiga Persecution Complex.)
*Actually, I think ST fans are just insanely jealous they never had a port of the BLAZEMONGER product line.
-
Re:Every time he speaks I just want to shoot him
I keep seeing people write that RMS was proven right. What was proven right?
When Stallman released the GPLv1 twenty some years ago, the naysayers and namecallers said:
- It wouldn't work.
- It wasn't needed.
- Individuals would never use it.
- Corporations would never use it.
- Only a few "tree-hugging-nutjob-hippie" would ever use it.
Stallman was proved right and the naysayers were proved wrong on all these counts.
- The GPL has withstood every legal challenge it has faced even though the vast majority of cases are settled before reaching a courtroom precisely because the GPL is so solid legally.
- The all-out attack on the GPL (MS's Halloween Documents for example) demonstrate that the GPL is so effective that some companies with closed-source business models see it as their number one threat.
- By many measures the GPL is the most used FOSS licence.
- See IBM and Linux. As for all the "IBM hates the GPL" astroturfing see point (2) above. Also see SUSE Linux Enterprise.
- Many major projects use the GPL including Linux, KDE, and MySQL. Many projects have switched to the GPL over the years such as Trolltech's QT framework.
But perhaps the best proof that Stallman was right is all the anti-GPL hate, lies and dirty tricks that flood the Internet crowned by the Microsoft funded SCO lawsuits against IBM and Novell and others. See especially the shameful coverage of these lawsuits by Maureen O'Gara Rob Enderle.
If Stallman was wrong, why on earth would anyone go to so much trouble trying to discredit the GPL? If Stallman had been wrong twenty years ago then his ideas would have died out by now and he would be totally ignored. People certainly wouldn't be saying that he's "wondering [sic] off to the tree-hugging-nutjob-hippie commune."
In fact, the acceptance and use of the GPL is still going strong and growing. The ideas behind the GPL have spread into other area such as Groklaw's uses them for legal research and the Creative Commons licences use them for books and other creative endeavours. -
Re:oh yeah?
How do you know your SWITCH hasn't been compromised?!
-
Re:Bang exploitable
"bang" is ancient history.
-
Do not panic!
First thing to remember is that if you are coming out of school, employers will assume you do not have much experience with any single language unless you've had some sort of internship. They may hire you to work on completely different languages. What really helped me was Eric Raymond's Hacker HowTo, although if you are thinking you'd like to do web work, I'd really consider adding some JavaScript experience.
-
Re:Free:Proprietary::Incremental:Waterfall -- FALS
Yes, you are exactly right. I can't believe how few people understand this. Apparently, everyone forgets that GNU, started by the Free Software Foundation in 1984, had a very clearly stated goal of replacing Unix with a Free alternative. It was not an accident or mere hobby project and laid the foundations for the success of Linux (Linus didn't write a C library, compiler, or all the *nix userspace tools), the Free BSDs (they all use GNU development tools) and probably every other Free operating system in use today.
Different people wrote the components of GNU, since it was based on the very modular design of Unix, but each of those components was written in a fairly isolated process. This is what Eric Raymond would later refer to as the "Cathedral Model" in The Cathedral and the Bazaar. While Raymond seems to be saying that Linux's "Bazaar Model" of development is inherently better, I find it hard to argue against the success of GNU, especially since Linux probably wouldn't have succeeded without it.
I think Raymond is probably the main person responsible for spreading the myth that Free or Open Source has to be "release early, release often" and proprietary has to be "cathedral-style." Even though he gives examples of both models in the Free software world, he still strongly connects the "cathedral" model with the "commercial" world and "bazaar" model with the Linux world. Although he's not totally incorrect in those characterizations, many people still confuse "commercial" with "proprietary."
I'm convinced that frequency of releases and freedom of code are largely independent. The combination of "release early, release often, and listen to your users" with Free code has proven to be very powerful. However, other Free projects have had success with a "cathedral" style, some developed commercially and some outside of companies. There's a huge range of release frequency in the proprietary world.
-
Re:It is still theft
currently copyright pays the salary of most developers
Please back this up. I read over there a guy who gave many talks claiming nearly the opposite:
When I speak at technical conferences, I usually begin my talk by asking two questions: how many in the audience are paid to write software, and for how many do their salaries depend on the sale value of software. I generally get a forest of hands for the first question, few or none for the second, and considerable audience surprise at the proportion.
-
The MORAL thing to do.
Remember the Story of Mel?
http://catb.org/jargon/html/story-of-mel.htmlScrew of the people that have other options(Web surfers and other light users) and give the bandwith to the people that need it P2P and heavy downloaders. The other can go to Dail-Up. the Hearvy downloaders have to move to some other town.
-
What once was old is new again
-
Re:MMO and Open Source... LOL
Rule number 1 of online games: never trust the client.
Pretty common knowledge by now, honestly.
-
Re:Go France!
They were found guilty of anti-trust violations with penalties enforced for their transgressions. The sad thing is that the whole thing is a joke. Bundling IE isn't really a crime. Bundling WMP isn't a crime. However, the Halloween Documents suggest there were serious illegal, anti-competitive practices at play that no one ever really hit them for.
-
Re:WebKit?!
Troll with the most FUD wins?
-
Re:Selective memory
It happened years ago, didn't you hear that ESR is a polyamorist? He even wrote a dating guide. It sounds like fanfic: ESR is a love god enough that he shares his knowledge, and in a more intimate setting will also share his loving.
-
Re:Yes!
You need to give the help to the people who ask, "hey, last week the doohickey worked with the internets thing, but now the button doesn't go anywhere and the doohickey disappeared!" That's a substantially harder problem, and if you could solve it you'd have one-up on Microsoft and Apple.
Yes, it's called the Cupholder Problem, and it's been haunting tech support workers for decades.
How exactly do you plan to help someone who can't even tell you what distro they run? The only thing you can do with them is to point them to the Smart Questions Howto and some generic information collecting howtos so they can choose the right place to look for help. Maybe something like this, too.
-
Re:"Open Source" could go the way of "Organic"
Yes, Eric S Raymond championed the new buzz-phrase "Open Source" over RMS's "Free Software."
See the mini-essay titled "Goodbye, 'free software'; hello, 'open source'" at http://www.catb.org/~esr/open-source.html
P.S. These days, look for "Oregon Tilth Organic" if you're looking for the old meaning of organic.
-
Re:And where did you learn this "philosophy"???
It is the Unix philosophy, as expressed in many places like The art of Unix programming or here (first paragraph, "small, sharp tools") or the Pragmatic Programmers (under Occam's razor).
-
history repeating
I have traditionally associated this with Windows or MacOS, but it is happening with Linux as well. Environments have little or no support for multi-language projects - you choose a language, open a project and get it done.
Probably because more and more people start using Linux to do some real work? It's not for geeks/nerds/engineers anymore.
But see below.
Recent trends in more targeted build environments like cmake or ant are understandably focusing on automatic dependency generation and cross-platform support, unfortunately making it more difficult to grow a custom build process for a multi-language project organically.
It's old, but it works - GNU Cons. Also Google for "pcons", its parallel version.
All this is a bit painful for me, as I know how much is gained by using a targeted language for a particular problem. Now the question: Should I suck it up and learn to do all my programming in C++/Java/(insert other well-supported, popular language here) and unlearn ten years of philosophy, or is there hope for the multi-language development process?"
This is like "Emacs vs. vi". There are people who to do work need well integrated environment. And there are people who prefer to have bunch of lego blocks and make from them whatever fits better task at hand.
Approach of building integrated, all-in-one, probably language-dependent software is nothing new and expected step in evolution of more or less any software product.
Main reason is that integrated systems have lower entry barrier. Essentially, people get some well-controlled sandbox where nothing can go wrong. Mostly because they do not want to learn - or do not have the time for it. Slap some task oriented UI on top of all of that - and any with knowledge of application field would be able to do his work with the software.
It's kind of funny that somebody brings it up again. Many people in past were dooming *nix to extinction because learning curve (and need to learn *nix philosophy too) is quite steep. Some bits about that are scattered around in ESR's TAOUP.
The only advise I can give you is to look out for application fields where your expertise with *nix and scripting can be advantageous and then change job. But honestly, I still can't recall single company where I did not end up writing bunch of small programs/scripts for whatever internal needs people have. Was it DOS, Windows, Linux or *nix, needs are the same. Even more so when people standardize on some all-in-one solution: I have never seen perfect one, which didn't required some custom hacks.
In the end, from my experience, expertise in making hacks - in making workflow more efficient - is well appreciated. Though more in smaller companies than in larger companies. Just do not limit yourself to Linux, and you'll be fine.
-
Airplane Rule
"Complexity increases the possibility of failure; a twin-engine airplane has twice as many engine problems as a single-engine airplane." By analogy, in both software and electronics, the rule that simplicity increases robustness. It is correspondingly argued that the right way to build reliable systems is to put all your eggs in one basket, after making sure that you've built a really good basket. See also KISS Principle, elegant.
I think NASA knows how to build a damn good basket. Not that they always DO, but they CAN.
Anyway, it doesn't seem like they're rolling all the life support units into one, just moving them all into the same module. If anything I'd guess that would make maintenance and service a heck of a lot easier.
-
Re:Eric
Ah. You must one of those.
-
Chart in TFA misleading
That chart doesn't make any sense. There's no numbers, but the chart would show that Linux+Apple combined have less than 10% market share, and Linux's is slightly higher than Apple's. Are Net Applications' numbers that severely skewed? I mean, it would make sense to increase Windows' market share at the expense of Linux, but doubling Apple's makes little sense.
If that slide is for real, then both must be messing with the numbers: NetApps throwing Linux to the bin, and Ballmer likely downplaying all their competitors (i.e. unlicensed Windows included) in order to reassure the investors/shareholders.
All in all, Linux is by far a (the?) major thorn in Microsft's side. Apple has a well defined target market: they sell the shiny machine together with the shiny OS, and they proved over and over they don't intend to let the software get detached from the machine, which can only please Microsoft.
On the other hand, Linux runs on all hardware where Windows runs, and then some. That's gotta hurt.
-
How To Ask Questions The Smart Way
Strange, but http://www.catb.org/~esr/faqs/smart-questions.html does not seem to list "maximize the amount of snide remarks".
-
Re:Great book too
Hey now, if you're going to flame the GP, do it for a legitimate reason. Like endorsing a book with BASIC code in it. *shudder* What are you trying to do, give us brain damage?
(Kidding.)
-
Down to the ACs are we?
You guys must be getting pretty desperate. I bet "symbolset" is on the cork board on your way into work with a note that says "don't." And yet still you try. Ok, who has Apple partnered with and then knifed in the back? Anybody? Ever?
Start here. Proceed to this and this and this.
Now after you've clicked all that, do you feel like you've done a good job for your boss? Have you accomplished your goal? Did you give the freetards what for? Or do you feel like you've wasted an AC post on something you can't turn in for credit? Have you in fact harmed your employer? Do you think that maybe that's why the note is on the cork board?
Keep trying though. The guy that scores points on me in the blog center is going to be the Black Prince of Bangalore.
-
no worse than any other company
-
Re:Universal Remote
How does turning off the machine get me instant boobs? I think you have that backwards!
Indeed, the other way around is what some would call a Priority Interrupt.
-
Re:Good luck getting their ID
The very definition of a troll is someone who goes trolling (hence the word "troll") for an argument. Stating an outlandish opinion or making an obviously offensive remark about anything in general are just as effective as maligning an individual.
If you haven't been on the Internet since at least the mid 1990s, then please don't even attempt to define terms that were in wide use before you were seeing them. Look them up. Try the jargon file for example.
-
Re:What are the mysterious patents
Suppose you are right and MS does want mono to be implemented and succeed in Linux, BSD, etc. Why? Out of the goodness of their hearts?!!
To encourage the development of
.NET applications. More .NET developers means more sales of Visual Studio products, ...Since
.NET and Visual Studio are Windows-only, how are those reasons for MS to want mono to succeed on Linux, BSD and other libre systems?this sort of baseless paranoia
Baseless paranoia? STAC, Netscape, the rape of JAVA are baseless? Besides, it is hardly paranoia when they are out to get you, and MS has made it abundantly and crystal clear that that is their goal. Some MS evaluations of Linux etc.: "cancer"
... "communistic"... And, then there are the infamous Halloween Documents. Ultimately mono/.net developers can code anything they want with mono/.net. That's their choice. The beauty of Linux and BSD is that they can't force it on a free (= libre) system. They and MS can cram mono/.net down Windows users throats and up Windows users' asses, but they can't force me to install it on my machine. That's my choice. I will use nothing but the cli first. I will pull the fucking plug out of the wall and drive my pickup over the motherboard first. Clear enough? -
Re:Value
Good point, but don't go overboard painting such a rosy picture of Windows or being overly unfair to Linux/Ubuntu/etc. I've got plenty of recent lousy Windows experiences while we're in a sharing mood, such as...
* My $3000 laptop from work runs XP and the wireless cards came to mind as you described yours, with two different WiFi managers installed, neither of which works reliably.
* A friend of mine just bought a brand new Vista last week and it took us 30 minutes to connect to an unsecured wireless network due to the idiotic user interface. It didn't help that MS totally changed the control panel for the third time in a decade.
* I spent three hours a few weeks ago searching for a driver for an onboard Intel video chipset for a machine replacing a dying legacy server on which I needed to downgrade from the included XP to Windows 2000 because the old application it runs doesn't work on the newer OS.
* The "ribbon" in Office 2007 makes performing simple tasks just plain stressful.
Windows has a uniform interface as long as you stick to certain Microsoft products, eliminating the choice you claim to value. Hell, even Windows Media Player doesn't fit in, and that's built-in. It can look just as hodgepodge as Linux when you run applications developed by 3rd party vendors or older Windows applications. Which leads into my next point.
I propose that your argument ignores one key word of the premise you quoted and disagree with. That of the "average GNU/Linux user". According to that standard, your phone is unusual, as is the 3rd-party software you mention. You're right in pointing out that the more obscure something is, the less likely Linux distros will handle it well out-of-the-box. That's an unfortunate downside to any software development effort with limited testing resources, which FOSS handles by allowing you, the user, to provide feedback directly to the developers. Good luck emailing outlookdevteam@microsoft.com !
Like you, I've had Linux distro installations fail on multiple components during and following installation. But I've had many more flawless installations. The ratio has been tilting faster and faster toward the flawless in recent years, whereas with Windows, I'm stuck at the same level of (dis)satisfaction as I had since Win2k almost a decade ago. Want a machine that works with Linux well? Since you claim not to be out for a gratis solution, buy one with Linux pre-installed, or one designed for Linux. Just because Linux doesn't happen to run on an individual machine you have at doesn't reduce its value or maturity to any of us.
PS. If the Linux "user community" you appealed to called you stupid, it's likely that you asked for it by being disrespectful* or simply choosing a lousy community. The two LUG mailing lists I've been on for years have never contained that sort of thing.
* Yes, ESR may have a knack for going overboard, but the general idea is sound and worth keeping in mind. -
Re:It's quite clear what the reason is
I've had to explain to both math and CS majors that, for instance, pages 13-24 is actually not eleven pages. I've had to count on my fingers for several people....Actually, I find it most strange that the CS-guy didn't recognise the off-by-one error
:)The specific name for this sort of off-by-one error is a "fencepost error" - as in, "I want to put up 50 feet of fence. I need a fencepost every ten feet. How many posts do I need?"
-
Re:Yet one more client
This solution just creates one more, very imperfect, email client.
-
Re:cynicism
Would that be a virus or a worm?
Um, it would be a Trojan Horse.
Trojan horse: n.
[coined by MIT-hacker-turned-NSA-spook Dan Edwards] A malicious
security-breaking program that is disguised as something benign, such
as a directory lister, archiver, game, or (in one notorious 1990 case
on the Mac) a program to find and destroy viruses! See {back door},
{virus}, {worm}, {phage}, {mockingbird}. -
Re:Regarding the desktops
This is basically Linux's only chance. As we move on to 64-bitters, Vista, osX, and Linux will compete on a different landscape. The problem, and opportunity, is that THERE ARE NO 64-bit KILLER apps out there. No OS has a single killer app that needs 64-bit computing. SO I think Eric Raymond is wrong about the hard deadline being in 2008. As long as there is no killer app, all architectures are fair play.
Obviously, if the killer app is open source and is born in Linuxland, it will be ported...
-
Re:Why is it taking so long?
Sorry to ruin this with fact, but "chrome" is jargon that has been around for a very long time. I encountered it long before Netscape even had a product.
"Results 1 - 10 of about 18,400,000 for firefox chrome" including such top hits as "Fun with Firefox Chrome URLs".
You've got to be feeling pretty apologetic to credit a team developing a competing web browser with not knowing basics about firefox and mozilla suite.
In any case, either Google didn't know about chrome: (inconceivable) or they chose the name Chrome on purpose knowing that it would be a slap at firefox. Personally I think either case is pretty crummy of Google.
-
Re:Why is it taking so long?
...which is why they stole the name "chrome" from Mozilla.
Sorry to ruin this with fact, but "chrome" is jargon that has been around for a very long time. I encountered it long before Netscape even had a product.
-
Re:Lack of Hacker Ethics
Yeah, Hacker Ethics, that's it.
That reminds me of the time I thought I heard a noise at night and I walked into my kids room and there was this guy standing there looking at my 8 month old daughter sleeping. Scared the shit out of me. I was about to either kick his ass, or shit myself when he told me to calm down. He was an Ethical Burglar(TM).
He had used some pretty basic lock picking methods to break in and just wanted me to know my family was at risk and that we should cage ourselves in our own home so that the marauding Visigoths couldn't break in and kill us all.
I thanked him for his generous service and he said it was no problem. On his way out he looked at my house one more time and mentioned that he might come back another time and set the place on fire, so we should probably get a coating of asbestos or something to be ready for that.
I only wish we had more of these ethical hackers and burglers to keep up safe.
Hacker is a term that has a meaning that has long predated the Intarweb and has been given an incorrect meaning by inept journalists.
Read the definitions on the Jargon file.
"A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. RFC1392, the Internet Users' Glossary, usefully amplifies this as: A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular."
"One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming."
"An expert or enthusiast of any kind. One might be an astronomy hacker, for example."
And most importantly for you to read,
"[deprecated] A malicious meddler who tries to discover sensitive information by poking around. Hence password hacker, network hacker. The correct term for this sense is cracker."
-
Re:Article?
Remember: http://catb.org/esr/graphics/esr001.jpg
-
Re:Nah, everybody knows how this one goes.
-
Re:World domination 201
Now the fate of 64bit future is being determined...
Not really off topic. XP can not really do 64 bit. Vista is a resounding failure. 3.2-3.5 gig is not enough memory. If Win7 is not a solid product, Microsoft will loose the workstation and power user market.
-
World domination 201
-
Algorithms by Sedgewick
It's not very sexy, but it's fascinating and readable. I remember coming across it in Dillons bookshop, not knowing the name, and flicking through. Half an hour later, when I realised the time, I knew I had to buy it! Other books go into more exhausting detail (Knuth in particular), or cover a wider range (Knuth again!), or more modern ideas or languages. But Sedgewick is a great read, and I've been through it several times.
It covers all the basics (maths, searching, sorting, strings, graphs, and touches on FFTs and hardware and optimisation), and gives enough detail that you could go off and write some programs yourself. But more importantly, it explains them: how each algorithm works, what it's trying to achieve, how it behaves, and why. And it's because it explains the ideas so well that I'd recommend it. After every section I felt I'd learned something -- not because I had to, but for the sheer pleasure of understanding something new and interesting.
Other recommendations: Effective Java (a staggering amount of insight into the language), Thinking in Java (by someone who understands that language is more than just syntax), Deep C Secrets (again a pile of insight, interspersed with anecdotes and some rather off-the-wall diversions), Programming Pearls and More Programming Pearls (problem-solving in bite-sized chunks -- a little dated but still interesting). Plus I've already mentioned Knuth. K&R is well done, though narrow in scope. I find Design Patterns useful, but more for clarifying things I've already seen than for learning new things. I've never actually read The Mythical Man-Month, but people I respect mention it, so I'm sure it's well worth reading too!
Of course, times being what they are, especially in this field, a lot of interesting stuff is on-line. Some hat should go without saying hereabouts include the latest Jargon File, some of Eric Raymond's books, and more online documentation and archives than anyone but Google can cope with.
Other interesting articles include The Programmer's Stone, a guide to writing Unmaintainable Code, The Ten Commandments for C Programmers (annotated edition), Ken Thompson's Reflections on Trusting Trust, What Colour are your Bits?, and Guy Steele's Growing a Language.
-
Algorithms by Sedgewick
It's not very sexy, but it's fascinating and readable. I remember coming across it in Dillons bookshop, not knowing the name, and flicking through. Half an hour later, when I realised the time, I knew I had to buy it! Other books go into more exhausting detail (Knuth in particular), or cover a wider range (Knuth again!), or more modern ideas or languages. But Sedgewick is a great read, and I've been through it several times.
It covers all the basics (maths, searching, sorting, strings, graphs, and touches on FFTs and hardware and optimisation), and gives enough detail that you could go off and write some programs yourself. But more importantly, it explains them: how each algorithm works, what it's trying to achieve, how it behaves, and why. And it's because it explains the ideas so well that I'd recommend it. After every section I felt I'd learned something -- not because I had to, but for the sheer pleasure of understanding something new and interesting.
Other recommendations: Effective Java (a staggering amount of insight into the language), Thinking in Java (by someone who understands that language is more than just syntax), Deep C Secrets (again a pile of insight, interspersed with anecdotes and some rather off-the-wall diversions), Programming Pearls and More Programming Pearls (problem-solving in bite-sized chunks -- a little dated but still interesting). Plus I've already mentioned Knuth. K&R is well done, though narrow in scope. I find Design Patterns useful, but more for clarifying things I've already seen than for learning new things. I've never actually read The Mythical Man-Month, but people I respect mention it, so I'm sure it's well worth reading too!
Of course, times being what they are, especially in this field, a lot of interesting stuff is on-line. Some hat should go without saying hereabouts include the latest Jargon File, some of Eric Raymond's books, and more online documentation and archives than anyone but Google can cope with.
Other interesting articles include The Programmer's Stone, a guide to writing Unmaintainable Code, The Ten Commandments for C Programmers (annotated edition), Ken Thompson's Reflections on Trusting Trust, What Colour are your Bits?, and Guy Steele's Growing a Language.
-
The Art of Unix Programming
The Art of Unix Programming by ESR
http://catb.org/esr/writings/taoup/
ISBN: 978-0131429017 -
My favorites
- Object Oriented Design and Analysis by Booch/etc.
One of the best books on object oriented programming. Very hard to read and grok all the concepts. Covers many aspects on all phases of software development.
- Programming Perl by Larry Wall, Tom Christiansen & Randal L. Schwartz.
For a *nix guy, Perl is irreplaceable tool for solving randomly popping up problems. Easy read, but need to read Learning Perl first.
- UNIX Power Tools by Jerry Peek, Tim O'Reilly & Mike Loukides.
Great book on learning stupid tricks one can do in *nix. Most tips are outdated, yet many ideas are quite relevant even in Linux today. Took some time to read it, but was very rewarding.
- Art of Unix Programming by ESR.
Delves into many things. Great help to get an overview on how people do things and most importantly why. Read in one gulp in less than two days.
-
bad move
Wine development continues its streak of bad decisions. Well, bad for people who want to see Free Software becoming more mainstream.
I do not usually agree with ESR, but in this case I do: they should concentrate their efforts to support win32 better, not win64:
http://catb.org/esr/writings/world-domination/world-domination-201.htmlBy being serious about win32 application support, wine could be the biggest opportunity for the free software community to migrate many Windows users to free alternatives.
Being serious about win32 app support means considering all applications important, in order to get a functional win32 layer for most of the huge amount of applications out there. Their current strategy of getting the new "cool" app supported while breaking old *working* apps is doomed.
Doomed for our goal, of course. For codeweavers, who nowadays pulls the strings of the wine project, a semi-working-but-not-just-working layer is just what they need to be able to keep win32 around forever, and keep selling support. -
Re:It's right for you. Will you be allowed to buy
XFCE??? when the "average citizen" was exposed to that? (BTW, I'm not implying that XFCE is a bad option.)
When talking about the need to improve the GUI, I'm thinking on this:
http://www.catb.org/~esr/writings/cups-horror.html
regards,
-
Funtional with OOP (Perl/Ruby)
hhmmm...functional with oop definitely like in Perl/Ruby. In addition, student should read this article in their first programming course. http://www.catb.org/~esr/faqs/hacker-howto.html