Open Source Advocacy The Right Way
[vmlinuz] writes "With a rapid succession of people moving towards Open Source, advocacy and evangelism is increasingly important in helping organizations to move over. The O'Reilly Network has begun publishing a series of articles about Open Source by Jono Bacon that teaches how to approach advocacy sensibly and more productively." From the article: "Although Aristotle developed his message many, many years ago, the concept of optimizing how we talk to people has developed further throughout history. From Aristotle to Heraclitus to Friedrich Nietzsche to Helen Keller to George Bernard Shaw, many people have advocated new thinking in times of rabid opposition."
Being a geek that hasn't showered in a week, constantly rambling about "Evil Micro$oft" isn't a good way to advocate OSS?
What about yelling First Post????
*Leans over podium*
Brethern, it is the time of the Apocalypse!
Stand up and be saved!
*Thumps loudly on "Linux in a Nutshell"*
Who is ready to receive saaaaalvation?!
You can't talk about Wikipedia's flaws on Wikipedia
Maybe Martha, now that she's back in da hood can doll up Open Source code, you know do something with coding style, DOCUMENTATION (you all know you suck at it and really need some professional help) and some little blue birds and butterflies around those O'Reilly covers, maybe some frilling on the edge of the readme.txt with parens, you know.
When It's Linux, it's an advocacy, evangelism campaign extolling the virtues of open-source.
When it's Microsoft, or fill-in-evil-company, it's smear campaign spreading FUD and lies in destroying the open source way.
Nice doublespeak here.
I preach to you the Superlinux! Windows is something that must be surpassed. Thus spake Zarathustra.
Places hand on crashed system running Windows.....
"You shall be Heeeaaaled!!!!"
"Praise Linus!!!!"
Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
Paid advocates for free software. huh.
You mean that calmly and rationally pointing out the benefits of something accomplishes more that foaming-at-the-mouth, in-your-face, mine-is-the-One-True-Way evangelism?
Nah, can't be. If things really worked that way, just think of all the time thats been wasted...
--- Asking inconvenient questions for over 30 years...
that M$ is the suX0r!!!11!!111oneone!11 doesn't cut it anymore?
guilty as charged
"yo man Linux is teh 5h1t!
M$ is for old ladies and, uh...
lil' gamer dudes -yeah!"
It means little unless you know it's spoken from the perspective of a 15th century penguin salesman extolling the virtues of a soft sell vs. a hard sell. The latter is most necessary with an inferior product; if the quality of the merchandise can speak for itself, don't get in its way.
Try not. Do or do not, there is no try.
-- Dr. Spock, stardate 2822-3.
.. and that there's too much device dependent stuff in it. When you have a knoppix disk and the 2.6 kernel runs differently on your hardware than the 2.4 kernel then there's a flaw with the design of implementing hardware support in a kernel. I look forward to a GNU HURD livecd.
..the advantages of using open source software. Because I don't have to pay Windows licensing fees, I have to spend less time working, and can spend more time with my girlfriend, and more time lifting weights. People always ask me why my relationship is so successful, or how I had time to tone my body, and I just say "I use Open Source Software."
My aunts husband asked me a few days ago if I wouldn't mine showing him Linux and telling him a bit about it when he next comes round. I'm a little worried that I'll yap on endlessly about open source and Linux only being a kernel and the GPL and bore him to death before he even gets a chance to see how great various distos are.
What I really need is a good, SHORT, list of information about linux and open source software that I can print out and give to him to read at his leasure so I can get on with showing him some cool stuff on the PC.
Anyone know of anything like that?
Karma: Bad. Calmer, good.
> Empirical evidence has shown, time and time
> again, that low level languages like C and
> Forth produce more efficient, faster, and
> easier to maintain code than today's so
> called high level languages.
How's that? So it's actually better to manually malloc and free memory than to let a GC take care of it? Surely you're just jesting!
As someone who's currently wrapping the Evolution C API in Ruby, I can assure you that writing Ruby code is much easier than writing the corresponding C code.
I'm not sure why this would be considered a "Linux strength",. since all the good high level languages - Ruby, Python, Perl, etc - all run on Linux, also.
The Army reading list
Hope you have alot of time on your hands
A psychopath can't tell the difference between right and wrong. A sociopath knows the difference - he just doesn't care.
The reason higher-level languages are used is because man-power is more expensive than CPU-power.
.NET or whatever, then that's the way companies will go with software. The thing is that if it's not out there, it's not bringing in anything.
.NET any day, but it's not about preference, or 1337 skillz, or good programming conduct. It's about the bottom-line.
If it's easier, and cheaper, to plug blocks together using Java,
I prefer C and Perl over Java and
...the concept of optimizing how we talk to people has developed further throughout history. From Aristotle to Heraclitus to Friedrich Nietzsche to Helen Keller to George Bernard Shaw...
Was that some kind of sick joke...?
Real programmers can write assembly code in any language. -- Larry Wall
"From Aristotle to Heraclitus" Heraclitus was PRE-Socratic, i.e. BEFORE Aristotle's time... http://en.wikipedia.org/wiki/Heraclitus And as far as evangelism goes, it'd prolly be better to lean more towards Demosthenes an orator. Aristotle was not consumed with the need to convince his audience that he was speaking for .
Funny, I always thought was the other way around.
echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
LinuxAppeal.net is a good site to appeal to companies to release linux products. It is not a site where users bitch about companies, but rather people can find well written petitions, write their own (and add them to the site) and submit them to companies.
I figure the more people who petition companies the better so I've written a few petitions of my own on the site in hope that others will find them via google when searching for linux support for a product and petition the company as well.
The guy says he is going to produce more columns on the subject so this one is a bit of an overview. Having said that, this column wasn't even at the level of a first year sales and marketing class. (Maybe he thinks his audience is so brain dead that it can't cope with anything more.)
...". Actually, open source is all about freedom. There is nothing more important than fighting for our freedom in all its forms.
I have a philosophical problem with one of his statements: "Although it is wrong to insinuate that open source advocacy is as important as civil rights,
I'm a longtime advocate of free (as in speech) software, but comparing the leaders of the open-source movement to the sages of old, and comparing their struggles to those of Helen Keller and other heroes of the past, is downright egotistical.
;) ) and ESA members will switch to an open-source model, and-- like it or not-- they are what crank out the vast majority of software that the vast majority of end-users (and corporate "IT" people, as contrasted with "geeks" like us) use.
Yes, open-source/free software does face "rabid opposition"; however, it likely always will. As much as I love free software, do you ever forsee a time where it will become the "standard"? Can you imagine Microsoft, or Adobe, or EA Games, making most or all of their software open-source (under any license?)
I can't either.
It's not so much that free/open-source software faces a "time" of rabid opposition. It will always face rabid opposition. It is virtually inconceivable that the BSA (not the boy scouts
Don't like that? Crank out games as nice as the commercial vendors can. Release them under the GPL. Make OpenOffice as good as MS Office. Make a GNU/Linux system as easy to use as Windows, and 99% compatible with 99% of existing Windows software, or come up with GPLed equivalents for 99% of existing Windows software. Until that happens, free/open-source software will perpetually face "rabid opposition", because those who oppose it (BSA/ESA member companies) will always be the most powerful force driving software development and use.
With spending like this, exactly what are "conservatives" conserving?
Best open source advocacy is the Microsoft's study about TCO. They base their claim on the postulate that a linux expert has higher salary then a MSWin expert. To a MSWin expert, this is very appealing argument to start to learn linux.
My only explanation for your post is that where you said high level you meant low level, and vice versa. Could you reference the evidence that C and Forth are easier to maintain than higher-level languages (faster and more efficient they might be, but that is very rarely a performance criteria in modern software)? C is, in my experience, more likely to have bugs and security defects, and be far less maintainable, as well as more likelt to be unsafe. I agree that bad code is bad code in any language, but since C seems to tolerate it more than other languages, surely that shows it is a problem with C as well as the developer?
There is a reason that the trend has been for higher and higher level languages, and C is a lone aberration that bucks the trend. We don't program in assembly much any more for the same reason that one day we won't program in C much any more. For a kernel, C is obviously the right language, but for most other applications it is an odd choice than can usually only be justified because it is the language that the developer is comfortable with.
As the OP said, would you drive over a bridge designed this way? And I would ask, would you fly in an airplane designed this way?
you mean sneering, derisive remarks about Windows isn't enough? Dang.
try { do() || do_not(); } catch (JediException err) { yoda(err); }
You can have a top-notch techonlogy and the best minds in the world working on R&D and you can still fail if you do not satisfy customer requirements or needs or both.
Engineers do not get one thing: no invention can be spread around the world until it can be sold. In this world marketing and sales are just as important (if not more) as R&D and staying on bleeding edge. If you have a Linux box that cannot meet my needs, why the fuck would I buy it? Because somebody with a Ph.D worked on some programs in that box? Give me a fucking break.
Everybody is screaming about Linux and how great it is. I do not see it. Dell sells cheap Wintel boxes because that is what customers want: something cheap and easy. IBM invested money in new technology along with research; it sold its PC division to Lenovo. HP and Compaq had R&D... Now their joint venture is swimming down the toilet. The point is that it does not matter how cool YOU think Linux and Open Source are. They're not going to spread around the world unless people find them useful. No advocacy will help. You can write to tech magazines and give lectures to college students and that is fine; however, you won't be able to succeed until people start saying, "Wow, this Linux thing is really want I need." The keyword is "need." Not "want" or "cool" or "wow." Need for a cheap, effective tech solution is what can and will drive Open Source. This is pure business.
In this world everything is sold, not bought. Sell an Open Source solution to the public and you shall succeed. Nobody gives (or should give) a flying fuck about the technology and what it is inside. If you really want to push Open Source, show cost savings, productivity increase, and fewer losses contributed to the fact that Open Source is not Windows. Then people will talk to you :)
' and easier to maintain code than today's so called high level languages.'
.NET
Java can be faster if you use a profiling JVM, (well unless you profile your C code and get gentoo to re-emerge with using the profile every other week)
this should also apply to
Java is also much easier to maintain that C, because it's almost exactly the same as C with enough bits missing to let it run in a Virtual Machine and some extra rules inplace.
Of couse bad C is probably easier to maintain that bad Java and Bad C++.
In which case you would have to start argueing.
Use OSS because all software is bad, it's just that our version of bad is easier to maintain....
your using the 'anti' claus, your not saying were better because were the best your saying.
We use C isn't better because they try to sell a new compiler (who SUN and GCC?).
Not we use C it's better because it's simpler and more compact that many of todays languages that have lots of bolted on features that havent matured yet.
Remember, positive energy activates constant elevation. Be positive about OSS not negative about everything else.
thank God the internet isn't a human right.
You start the procedure by using a LiveCD. Once successfull you load Linux into a dual boot configuration with Windoze. Now you have traction, time for you exercise the demon.
Reason #32767 not to use VB6: Integers are 2 bytes... Think about it!
Oh god...
bring on the trolls about hairy clitus and fart-b0xen.
U missed the fact that he also used "thusly", a magnificently execrable neologism.
Oh, and you can get your meds cheaper in Canada.
Mod parent up! Back in the early days of computers, programmer time was cheaper than CPU time, and it made sense to spend more time optimising code and writing at a low level. These days, there *are* cycles to spare, and there's *no* reason to write most things in assembler or C. You can still write efficient code in a high level language, but odds are the compiler will do a better job of optimising than you will.
If I had a choice? No. But in the world of software, sometimes there is no choice. You are expected to use what the company provides.
Now, I think the problem really is that the "High Level Languages" make people think that they are programmers when they are not. People who have not developed the skill necessary to write good code in any language can jump in and produce results. Those results might be low par and hard to maintain but they have been produced, and that is what the folks with the money want. They don't care that the code is sloppy and poorly designed. They just see the program working. Later on down the road they might care when they have to spend double the money to maintain the beast. But that is for another day.
It is obvious to everyone that you have NO idea what you are talking about. Have you even compiled anything in your life?
What's Ruby written in?
As every Slashdot reader knows, the best way to advocate Linux is to belittle those who ask questions (preferably with over used abreviations like "RTFM", and "ROTFLMAO"), all the while making lame 'Winblows' jokes. Oh! And let's not forget that you must also belittle every developers efforts as trying to turn Linux into an MS clone.
Yet I didn't see these methods listed anywhere in the article. Perhaps the author should surf Slashdot, or OSNews a bit more before his next article.
That was, quite possibly, the most brilliant troll I have ever read.
Wow, what a troll. Of *course* the kernel is device dependent. It's a fricking kernel. Of *course* a new major version runs differently; they refitted huge parts of the kernel for the 2.6 version, including fixing some gaping security holes. If you don't want change, don't upgrade.
It's gotten to the point where I'm actually SURPRISED when people use "its" or "it's" correctly or know how to pluralize nouns. And that scares me very deeply.
You just keep bit shifting, then I'll be productive for my customer, mmkay?
BTW is the resume on the website yours? Because there isn't a whole lot of programming experience there (lots of (database) sysadministration though, but not programming).
8 of 13 people found this answer helpful. Did you?
Forth? Easy to maintain? Kidding be you must.
> that low level languages like C and Forth
lea dx, msg
mov ah, 9
int 21h
ret
msg db "Assembler is the only low level language.", 13,10,0
-----
printf("C and forth are high level languages.");
Secondly, what is Olog(n)? Perhaps you meant log?
Last, large corporations don't care if their programs are slower. Throw more hardware at the problem! What they do care about is getting the product developed and out to market as fast as possible.
Perhaps by calling C and forth low level languages, you instead meant to talk about Rapid Application Development (RAD) IDE's vs. standard language IDE's. C/C++ is a high level language. Period. Now, use Borland C++ Builder, it's still a high level language but with a RAD front on it that allows you to develop complex applications quickly.
from the for-those-of-you-about-to-rant-we-salute-you dept.
First AC/DC reference ever on Slashdot?
What the hell has language got to do with it?
> What's Ruby written in?
Why was Ruby written?
The Army reading list
why are you religious
And isn't that what is wrong with the world today. People need to worry about themselves and not about what other people are doing. (unless, of course, those other people are hurting other people)
-- Thou hast strayed far from the path of the Avatar.
Read the damn post before you mod it.
It is full of misinformaiton, blind assumption, and poor spelling.
Push Polling usually worx.
sample question:
"Would you be more likely or less likely to by ClosedSource/Proprietary/ClosedStandard Application if you knew they were designed to trap you in becomming life-long customer (vendor lock-in)?" ?
Oh wait, that is not push-polling - That is the truth!!!.
Consensus is good, but informed dictatorship is better
As someone who's currently wrapping the Evolution C API in Ruby...
I thought evangelists didn't believe in Evolution.
[insert witty sig here]
So I excitedly downloaded and burned some Mandrake 9.1 CDs, installed (amazingly painless), and entered this whole new world of Linux and Open Source.
There are many ways you could describe my reaction to the yawning gulf between expectation and reality: "furious backlash" would be one; "blind seething rage and betrayal" would be another. The catalogue of disasters and frustrations that followed left me cursing the names of the people who recommended Linux to me as this wonderful cure-all and utterly *hating* Linux with every fibre of my being. I actually stuck with it for a few more days and, after deciding that linux was the most pointless project I had ever had the misfortune of dabbling with, returned to the comparatively hassle-free bosom of Windows.
Luckily for me, the story didn't end there and some persistent and random lockups in Windows led me to re-install Linux (Mandrake 10, this time around) to see whether it was hardware or driver related (a dodgy fan on my graphics card, for what it's worth). This time around, with my expectations greatly lowered (in fact, by this stage, Linux had improved unrecognisably, and I was very pleased with its progress), I fell head-over-heels in love and haven't had Windows installed since.
But it could so easily have gone the other way; it is hard to explain just how much the hype followed by disappointment soured me on Linux at the time (an understatement!) and it is my firm belief that if I had been forewarned about the things that I could do in Windows but not in Linux, I would not have reacted so sharply. So now, when "recommending" Linux to the curious, I usually start with a list of negatives (some hardware may not work; you may not be able to run your favourite games; don't expect installation of software to follow the Windows model, or you'll be in a world of hurt) before extolling its non-pragmatic virtues ("It's an operating system with love in it!"). It's heartening that quite a few people are still willing to give it a shot even after hearing my litany of gloom :)
So in a nutshell, don't be a blind fanboy, or you will be Open Source's worst enemy; let people know that there will be concessions to make, but that many people still feel the switch is worth it. Make a special point of mentioning just how different and customisable it can be (show them a variety of WMs, from the absurdly minimalist (Ratpoision) to the wonderfully glitzy (Enlightenment) - this diversity and difference from the comparative homogeniety of Windows usually gets people curious, in my experience). Don't oversell it, as this is just a recipe for disaster.
Oh, and this post mainly deals with the casual home PC user, so might be a little off-topic - apologies for that :)
Didn't know we got graded on slashdot.
You fucking half-literate retard!
You ARE a fucking half-literate retard! (-1)
Um, what? I'm an agnostic.
I listen to what people are tell me about their computer experience:
It still amazes me the number of people who are willing to ditch Windows completely and learn something new. As long as you clearly explain the pros and cons of running Linux, most people are willing to try Linux. Where you see Linux get a bad rap is when a flaming OSS zealot installs Linux over a crashed Windows installation without first explaining to the user that their previous system, as they knew it, will be completely gone.
And contrary to popular /. opinion, Linux is not always the best choice:
I think the key to being a successful OSS advocate is simply to listen to needs of people. Many idealistic people would run FOSS software, but don't because they don't have the requisite knowledge (or time) to understand it. That's where a good OSS zealot can help people out. But at the same time, we have to realize that for those users who rely on Windows-centric "features", installing Linux would not be doing them a favor.
The society for a thought-free internet welcomes you.
Thanks for the first day discussion at the "intro to speech" class. Seriously, anyone who has ever spoken publicly knows all of this.
He uses some historical examples of great figures teaching philosphy and government constructs to tell us how to speak to businessmen? Perhaps he should eval;uate his own methods.
This is a symptom of the whole community Im afraid. It treats everything like a high minded debate and philosphy when the people using the stuff just want to make money. FLOSS advocates talk over everyone's heads, and the author does the same thing while trying to tell us to - not do that.
The only people who act more like rabid idiots than Linux/OSS advocates are Mac zealots. They are their own worst enemy, not to mention a bunch of bald face liars. With Linux/OSS there are valid technical merits and advantages that exist. With Macs this is not the case and has not been the case in well over a decade if not longer. Yet the true believers still persist in trying to con anyone who will listen into pouring their money in a hole in the ground by buying a Mac, and acting like petulant brats towards anyone who won't listen.
That being said, opposing something in the technology world because of the culture surrounding it, and not because of any concrete technical reason, is simply irrational. Linux and OSS are ways to reduce costs and improve efficiency, both of which inevitably lead to more $$$$$. Shunning them because some of the people who are behind them are unpalatable, just doesn't make sense.
Lee
Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
Any IBMers going to San Diego for next week's conference? One of the offerings is "How to build an enterprise using only Open Source software". Should be interesting.
Intelligent Life on Earth
on formats people use and the shackled they accept in their every day lives. If we show people that they are stuck paying expensive fees or pirating to use their computers they'll be more interested in hearing about alternatives.
So, then, why didn't you write your own CMS in C instead of the badly-coded security nightmare that is PHP-Nuke?
It would seem to me that if you wanted the most efficient site, you would code all your web apps in C. For, as we all know, it IS the most efficient language out there, and should be used in any programming project.
>>Empirical evidence has shown, time and time again, that low level languages like C and Forth produce more efficient, faster, and easier to maintain code than today's so called high level languages. Why is this important? Because they (the IT world, who simply wants to sell you a new compiler every year for $2,000) try to push stuff like encapsulation and polymorphism down your throat as the saving grace and you simply accept it as fact because you don't know any better. If you're not bit shifting hot registers at runtime then you're not programming. Plain and simple. You're just plugging different blocks together and hoping like hell it will work. How would you feel if they designed bridges like that? I wouldn't feel too secure driving across a bridge that was designed like today's non open source software programs are. . First of all, C and Fortran are not low level languages. Sure, they are not object oriented, but they are by no means low level languages. A low level language like Assembly is only a step above machine language. A higher level level language (C, etc) is further removed from machine language and must be compiled. Another distinction is that a higher level language is designed to be closer to a natural language and as such higher level languages are easier to read and code. Just wanted to throw that out there.
I am d3matt
Obviously, though, this is something that can be debated until you're blue in the face. But discrediting higher-level languages (I assume you mean Java, Python, Perl, C#, whatever) when there is clear empirical evidence of their benefits, simply because you do not see their benefits as benefits, doesn't seem right.
As for the "college profs" comment, most that I've met won't "throw stuff at you". Hell, the programming languages guy I have likes C, and argues for its use where efficiency is needed, to the detriment of development time and code safeness. Many professors like functional languages, and it's hard to blame them, given the terseness of the languages and their uses in reasoning. But, in general, they gain little from "pimping the new stuff". At least here.
Cause I hear it'll run Duke Nukem Forever, right out of the box!
Weaselmancer
rediculous.
I'm not the one writing like an AOL user on drugs. The parent (grandparent? great-grandparent?) poster is.
And if you think you should only write correctly when you're being graded on it... well, I guess we should all start writing like "how am u? me is fine. lololol i luv teh compy!" and speaking like "How you? Me fine. Me like food. Me like fuck. You me fuck now."
When are we going to just devolve back into cavemen? It can't be long, with attitudes like yours among the majority.
> You just keep bit shifting, then I'll be productive for my customer, mmkay?
If I didn't see your sig, I'd still guess you were a Java user.
The irony, of course, is that the most rabid of open-source advocates are the ones making the least contribution in terms of code and money. The Linuses and Allisons and Behlendorfs are the one who perssuade with their code, not theirn loud mouths.
In order to make programming easier. He addressed this in the point that programming time is finite where as cpu time is not. Although you may save 400 Development hours you can lose millions of hours of runtime productivity.
Paying taxes to buy civilization is like paying a hooker to buy love.
one good resource for promoting open source software on windows is the OpenCD
it's much easier for some to learn by using than it is by listening...
Your opinion is just as valuable as an opition expressed by a Republican. If you think that the message sent by Republicans sucks, it does not meant that that is bad message. It means that YOU think that way of the message. I am not a Republican myself, but whenever I hear parties bitching about each other it turns me inside out. Grow up.
thought so.
> programming time is finite where as
> cpu time is not
True. But it's seldom the bottleneck.
> Although you may save 400 Development hours
> you can lose millions of hours of runtime
> productivity.
Or you may save millions of hours by being able to quickly and accurately implement features to help the users of your produce get work done.
The Army reading list
Screaming, insulting and sladering are the only true way to make an impact. Just ask your local politician.
If a civil engineering company offered "proprietary" contracts, where all work was conducted in secrecy and was not subject to inspection, then this would clearly be unacceptable. It is equally important that software be subject to similar inspections, and therefore that the source code be made available. Remember, "Open Source" does not mean "freely redistributable". A private company could tender for a contract and produce the software that the government can use and have the source code for, without that software being downloadable from SourceForge for all to copy and use.
If you want to campaign for "Free software", then that is a different matter. I respect that point of view, but it's much harder. Anything worthwhile is probably going to be difficult.
Nice, except there doesn't live pinguins in Norway (nor in the rest of the northern hemisphere), if they did they'd probably only be on Svalbard and the expression would never enter mainstream language (What does he think? That ice bears walk around in our cities?), and even so I doubt it'd become an expression. Simply not catchy enough, and could be applied to almost any product.
:)
Made me laugh at least, though I'm not sure if you were going for funny mods
Kjella
Live today, because you never know what tomorrow brings
Perhaps you could name a case where Java is faster than C. The evidence seems to be against you. Maybe you meant C++.
There are a few cases where Java can use optimizations that C cannot. The C pointer problem is well-known. Usually the advantage of using pointers more than offsets the register optimization cited.
"check me out i'm running xp2005".
"dude -your OS is made in Redmond Washington".
(crowd gasps)
"Redmond Washington?!?"
"Linux is made in Beaverton -where folks KNOW what software should taste like!"
Empirical evidence has shown, time and time again, that low level languages like C and Forth produce more efficient, faster, and easier to maintain code than today's so called high level languages.
If that has been shown time and time again then providing references should be easy. I'm especially interested in convincing evidence that C and Forth are easier to maintain than "so called" high level languages.
How's that? So it's actually better to manually malloc and free memory than to let a GC take care of it? Surely you're just jesting!
It's funny that you would bring out this example - it is probably the one that I personally would consider to be the most concrete example of the superiority of low(er) level coding. Over the past few years, I've gotten quite a bit of experience debugging memory leaks and found that there probably isn't a Windows or Linux garbage collection implementation that is fool proof (partially because, as the saying goes, fools are so ingenious).
I just started listing some of the problems I've worked through in the past two years and looking at them, I can see the problems come down to the programmer
a) assuming they know how big the data is and defining arrays based on this assumption,
b) not checking their code to ensure that accesses stay within array/variable boundaries
c) "finding" a clever way of accessing data that saves a few lines of code.
With any of these problems, data critical to the application or the OS gets overwritten leading to problems somewhere down the road, but not at the point where the overwriting takes place.
What I find that I am always telling programmers is:
1. When declaring an array in an application, ALWAYS use the "sizeof" operator as the basis to ensure that the element size is properly included and then add 1 for a terminating null character.
2. When allocating memory for file data, make sure an LSEEK is done first to understand the size of memory - and check the result before allocating the memory. Again, add 1 for a terminating null character.
3. After writing the code for allocating memory, note it in the make file/allocate-free function source file and make sure everything that is allocated is freed.
This rigor has seemingly eliminated the incidence of memory leaks AND other application instabilities which we used to suffer from and is the point that the parent is making. "Good" code is a result of good design practices and thinking through how it will execute; when software development is properly implemented, the actual task of coding is quite small so the delta time and effort improvement of using a high level language isn't as significant and its "inefficiencies" (execution time, size and required resources) relative to low level coding become relatively larger.
I can see this turning into a holy war as to how to code applications is better and I want to state that I believe that both high and low level coding have their place but only after the design of the application has been thought through.
myke
Mimetics Inc. Twitter
Let me see... You're selling Forth compilers right ?
May contain traces of nut.
Made from the freshest electrons.
Amen!
Brother, you know it!
Let the people hear the good news!!!
"Piter, too, is dead."
It occurs to me that the same thing happens in politics - One side will calmly and rationally point out good plans and the problems inherent in the other side's plans. Then the other side overtakes the media and shouts and screams 24/7 with foaming-at-the-mouth, in-your-face, mine-is-the-One-True-Way evangelism. When you're drowned out by circus of the side with all the money, being calm & rational has its disadvantages.
Microsoft isn't quite at the level of Republicans and their media saturation, but they do have the decided advantage in money and power. FUD has helped them a little.
Linux may be more a case of the tortoise and the hare - if the software makers can not get distracted by MS's efforts to destroy Linux and just keep making their software better, eventually they'll have outstanding solutions that people will be unable to ignore. Kind of like where Apple is now with OS X...
And who decides what this mysterious "company" you talk of provides? Last time I checked even in companies decisions were made by people and people can be convinced to use something better if you have good arguments.
Linux is not Windows
But I think forcing somebody to use Windows ME, especially on a fresh install, for an hour or two is more than enough to give them interest in alternatives. :)
The Peanut Gallery, Ubergeek, Biblically Sober
NCAAbbs.com: Thousands of fans, Hundreds of teams, Just one place
> there probably isn't a Windows or Linux garbage
> collection implementation that is fool proof
Right, of course, it's always possible to leak memory. Just add something to a Map and never let go of it. Not much a GC can do if the application insists that it still has a reference to the object. But other than stuff like that, I feel like most high-level language GC implementations can take care of all but the pathological cases.
> ALWAYS use the "sizeof"
Right, those are good C memory mgmt guidelines. The nice thing about Ruby or Java, of course, is that for the most part those things are managed for you.
Also, FWIW, if you're on Linux, Glib has some nice macros so that something like:
Message* msg = (Message*)malloc(sizeof(Message));
turns into
Message* msg = g_new(Message, 1);
Handy stuff!
The Army reading list
I demand that my personal bridge engineers personally hand-select the grains of steel that they'll use to custom-design my unique bridge that won't use any of the last 5,000 years of bridge engineering experience. That's the only path to quality, you know. And back away from the libc, fella! If you won't hand-roll open(), then I don't want you writing my web browser.
By the way, what crack-smokers took you seriously enough to give you +5? Seriously, man, good job! That's one of the more successful trolls I've seen in a while.
Dewey, what part of this looks like authorities should be involved?
This letter by Dr. Edgar David Villenueva Nunez that the linked article links to is absolutely fantastic. I've never read such a good argument for open source outside of its founders. Nor have I read such a great and well thought out letter by a modern day politician. It makes me want to move to Peru.
I think that you all should take a moment to read through that so that you can remind yourself that open source is the "more correct" form of software development.
a profiling Just in time JVM can profile the code while it is running and then next time around recompile the code to be faster.
That site doesn't list how the tests were carried out except to say that there were, no details on any profiling or optimization attempts that any serious deployment would use.
It does say that start up time is included too, so that taints the benchmarks.
oh, and he didn't even try jrockit
thank God the internet isn't a human right.
I'm running Linux on my Mac am I then a Linux preacher or Mac zealot ?
There are efforts to rewrite large segments of Ruby in itself.
Smalltalk is written largely in itself, for example. And the Glasgow Haskell Compiler is written in Haskell, or at least almost all of it is.
If you have ever developed drivers (resource managers) under QNX Neutrino, you would really understand the truth behind your comment.
Both bridges and airplanes are designed this way. You think that a bridge engineer knows how to build cable? machine bolts? mix pavement? While he may chances are he just knows the details of each of those items. size, strength, weight, etc. An air plane is the same thing. A designer doesn't know the details of how a tire is made. They probably don't even know the details of how the rim is made or bearings, or axle. They do know the stresses they can take and how to fit them together as an interface.
Paying taxes to buy civilization is like paying a hooker to buy love.
How on Earth this got modded up is beyond me, it's pure drivel, or maybe a clever joke the mods didn't get.
If you're not bit shifting hot registers at runtime then you're not programming. Plain and simple. You're just plugging different blocks together and hoping like hell it will work. How would you feel if they designed bridges like that?
How do you think anything complex is designed? One person doesn't sit down and design a whole computer, or every part of a car. You use a combination of existing things (blocks if you like), and new things developed by different people or teams. To each team the rest of the stuff is a block they plug into
Even if you are using a bunch of pre-written modules/objects/classes you may be doing a lot more than plugging them together. You write the core of the app, plugging them together well takes skill and work, and most definitely is programming.
that low level languages like C and Forth produce more efficient, faster, and easier to maintain code than today's so called high level languages.
Maybe faster to run, but slower to write, and harder to maintain.
The reason for this is simple, the amount of time spent in coding is finite, yet, oddly enough, CPU time isn't. Thusly unless you can improve an algorithm along that order then your time was wasted. This is simple first year college stuff here, hardly rocket science.
Not rocket science, just garbage. Firstly the limited programming time is an argument for high level languages that enable quick development. Secondly you can't just trade of CPU time and development time, a program may need to run in a certain time to be usable at all. If you can't get you runtime down to that you don't have an app. CPU time most definitely is limited if you have a user who wants a reasonable response.
Finally this has nothing to do with Linux/Open Source anyway.
This post has to be a joke or a troll, I wonder more at the moderators than the poster.
Forth can be written to be easy to maintain, but only in the same way as C can. Use appropriate names, comment intelligently but not excessively, use standardized formatting and programming conventions. But, by itself, it's not that easy.
I've read the GP a few times, and while I hate to say it given my bias against the excessive use of inappropriate but politically-correct technologies at the moment ("Everything MUST be implemented Object Oriented", "Why use an array when an RDBMS will do the job just as well?" "Oh sure, this quick tool to process some text could be written in 30 minutes by a moderately skilled C programmer, but there's some Python library somewhere that wouldn't be exploited if we did. Much better to Google for half a day for documentation and then spend two hours experimenting with it until we get a program that doesn't actually do the job in a reasonable space of time!"), but I think he was trolling.
You are not alone. This is not normal. None of this is normal.
I'm not in favour of evangelism or advocacy when it comes to Linux. The more fuss you make over something, the higher the skepticism and expectations and the bigger the backlash.
I prefer to use Linux, save money, mention or demo cool features of OSS software when the subject comes up, and be willing to install it if the interest is there but with no obligation beyond that (and with the original proprietary software left intact for them to go back to at their leisure). This is much the approach that any sane parent uses with children and food.
So far, my wife's used Linux for years, my parents use Firefox and my mother uses Thunderbird. I point out some cool features for them but they often find things they like that I may not even know about.
I agree, Bravo.
I am not sure if it will stay at five but this line...
As Frankie L Brooks mentions in the seminal book The Mythical Man Month, cultural differences should be shunned, as they do not improve productivity, they only give one the impression that they do.
is a classic.
When declaring an array in an application, ALWAYS use the "sizeof" operator as the basis to ensure that the element size is properly included and then add 1 for a terminating null character.
I bet you even write "sizeof(char)", don't you?
I bet you look good in leather, though.
I agree with you. I have corrected people on this and their answers are almost invariably something to the extend of "I am not in school." I did not realize school was simply the only point of an education. I thought it was so that those attending would learn and use what they had learned. I must be wrong.
Mods... parent is a particularly clever troll, I grant you, but the appropriate moderation for trolls you enjoy reading is "funny", not "insightful".
How would you feel if they designed bridges like that?
But bridges are designed like this, as are computers , office buildings etc...
I indeed would be more conserned about one-off designes then in proven building blocks. Most bridges these days use well tested prefabricated parts which are linked in known ways to span a given area.
Another example is the pc you are useing. The cards in it are most likely running on PCI and AGP busses. This is a form of encapsulation. The Main Board designer need not know what periferial are to be added, nor do video, sound, network card designers need to know what Main board will be used. Only a standard interface need be know.
I will grant, however, that for something like an Opperating System, there does need to be low level integration and coding. There is, however, no point in writing my web cgi scripts in Assembly simply because I'm not "bit shifting hot registers at runtime"
JFMILLER
Strive to make your client happy, not necessarly give them what they ask for
a profiling Just in time JVM can profile the code while it is running and then next time around recompile the code to be faster.
That's the theory. In practice, this has not yet been achieved outside very tight constraints, such as where the data does not change very often.
That site doesn't list how the tests were carried out except to say that there were, no details on any profiling or optimization attempts that any serious deployment would use.
All the source code for the benchmarks and testing framework is provided; all the compiler options and all the compiler output are included. Did you even READ the fucking site, or did your knee jerk so hard you kicked your computer off your desk?
It does say that start up time is included too, so that taints the benchmarks.
No longer the case. If you actually bother to look at the fucking benchmarks, you'll see TWO cpu time columns. One of them includes startup time, the other - the one that counts - does not.
YHBT. YHL. HAND.
The problem I have with your post, is that it seems to ignore one simple fact:
A programming languege is a tool.
The same is true for OS'es and compilers. Use the tool that fots the job. If you're building a website's content management system, you probably use Java/Perl/PHP/Ruby/....
If you're doing rocket science you probably use FORTRAN (or C if you don't mind being thought of as a revolutionary).
Discussions which language is best, without mentioning the field it's used in, are as intelligent as the Discovery Channels documentary "Why 4x4 is here to stay" or "Cranes are great".
For the perfect anti-Unix, write an OS that thinks it knows what you're doing better than you do and let it be wrong.
You sir, have prefected the art of the troll.
I use ed, you righteous bastard!
whenever I hear parties bitching about each other it turns me inside out. Grow up.
Er... you're making the opposite incorrect assumption, which is that all viewpoints are equally good.
They aren't. The possibility exists that the Republican party might put out messages that are pure lies from start to finish - I'm not saying it's happened, I'm merely saying that the possibility DOES exist. People like you, saying that we must acknowledge the "fact" that everyone's views are just as valuable, are every bit as much of a problem as people who say that any view from the party they do not support is necessarily stupid.
It is not childish to call bullshit bullshit.
"Good" Java:
abstract class Account {
float balance;
void fancy();
}
class FancyAccount1 extends Account {
void fancy() { };
}
class FancyAccount2 extends Account {
void fancy() { };
}
"Bad Java":
class Account {
float balance;
boolean does_fancy_one;
boolean does_fancy_two;
}
C:
struct {
float balance;
enum { NORMAL, FANCY_ONE, FANCY_TWO } type;
}
With respect to the above code, OOP is good for fairly static hierarchies. OOP is bad for a system in constant change.
"All you have to do is be fragile and grateful. So stay the underdog." Chuck Palahniuk, Choke
That's the theory. In practice, this has not yet been achieved outside very tight constraints, such as where the data does not change very often.
Which accounts to 95% of my hard drive, so tight, but common.
Did you even READ the fucking site
No I just plucked It does say that start up time is included too, so that taints the benchmarks. out of thin air.
No longer the case. If you actually bother to look at the fucking benchmark
So their fucking benchmarks now, there were nice benchmarks that showed you point earlier.
I read the FAQ, if it's wrong what does that tell me I should assume about the fucking benchmarks?
thank God the internet isn't a human right.
We should endeavor to learn everyday and Schools should just be a place where that process is intensified.
sad, really. people should open their eyes and realize that all the dems that speak out are full of shit, but i guess that will never happen
Ok, here's some analysis.
Count words, I just happen to have Michel Abrash's graphics programming black book on the table and it's got a good discussion on count words.
1: The data is static, so it fits you theory.
2: The C version is almost optimal
3: The java version is not comparable to the C version for real world tasks (I haven't bothered to re-write it to be the same as the c version to see if it's performance is better or not).
HeapSort
why not quick sort? don't most languages come with quick sort built in and heap sort is almost identical to quick sort (variants on the binary merge).
Object methods...
1: the C 'object' and the java object are not the same, the java object provides a lot of extra functionality that may well be used in a real world application that has not been put in-place in the c version.
2: He didn't even use final in the Java version, how is using an almost static C 'object' equivalent to using a non-final java object in real world tasks.
I could go on.
thank God the internet isn't a human right.
So, to be persuasive I should craft an argument that makes use of specific, quantifable, verifiable, evidence? And you're telling me that this is more persuasive than unsupported generalizations?
The fact that this counts as "news" is a strong comment on how the focus on job training has reduced our universities to glorified tech colleges.
WRONG:
The #1 product in the market sucks. The company that makes it is evil. This free software you never heard of is the best. It is written collectively by hippies. Everything should be free, including YOUR products.
RIGHT:
The #1 selling product in the market is not the best in the market. If we implement [Linux, etc.], it will be CHEAPER, it will be MORE SECURE, it will produce LESS DOWNTIME, it is EASIER TO UPGRADE, you will increase your PROFITS by reducing costs.
It is "extent" not "extend". Fucktard AOL crackbaby.
just click start>run then type "cmd" (no quotes)
/usr/doc/Linux-HOWTOs/Advocacy
then
less
(yes the windows part is in jest)
Not necessarily, he could just be arguing for more drivers being distributed as separate modules. It's not really doable until the ABI stabilises or linus gives them more support - remember the philips webcam guy's comment about non-in-kernel drivers being very much second-class citizens - but it is a defensible position.
I am trolling
Sure.
The Ackermann test, Java wins by a small margin.
Also look at takfp. The interesting thing about takfp can be seen here in the side by side results The slope of the red line (Java) is not as steep as N increase so even though it starts slower, it wins in the end and continues to do beat ther performance of c and c++ even though it's start time was a lot slower (these numbers include startup time). Saw this in some other tests too, like reverse-file. This is mostly in comparison to c++ but it shows how JIT compiling could help.
I didn't go through all the gcc parameters but each program was compiled for the machine it ran on. In shrink wrap software, or even in the data center, you're not going to compile the code on each machine and it has to be tuned to the lowest common denominator. With JIT you don't have to worry about that as the VM will do the necessary optimizations for you. The benefits can be seen in some of these tests.
There are a lot of cases where it's close as well. In other tests I've seen Java in some cases outperformed C++ and C under large usage when the gcc binaries were optimized for the lowest common denominator. Anyway... the potention for VM's JIT compiling and all that is not just theoretical. It needs to be improved, but that's no reason to give up on it.
In other test, the lines of code are dramatically different. Would I rather write a 178 line spell checker in C and have it run in about half a second? Or write a 23 line Java spellchecker that runs in about 2 seconds? When you go past just number crunching and into real applications like web applications, you'll see a big savings in time and development.
There's a place for high level languages like Python, Ruby and Java and a place for languages like C. The real power language seems to be OCaml. It seems to do really well on both loc, memory and cpu time.
This was really cool to look at, thanks for the link. I looked up some other stuff as well. I'm tired of hearing how Java is slower than PHP since in my own benchmarks I haven't seen what people are talking about. Most of the side by side graphs look very much like this where it seems that PHP doesn't scale under load compared to java, c or c++.
Open Source Java DAO Generator
What on earth does any of that have to do with OSS vs CSS? You've just rambled completely off topic. Anyway, you can get C for Windows and java for Linux. I think you've clicked on the wrong discussion, you're looking for 'Low-level programming advocacy'.
You mean, a bridge designed by putting components together, or a plane designed by taking existing devices and building a plane out of them? The 'low level' equivalent to this would be putting the bridge together atom-by-atom, forging all the parts yourself, designing and making all the bolts yourself, never using anything that's already been made. I wouldn't drive over a bridge designed that way, it's much safer to drive over a bridge where the individual parts have been made by experts in the field, rather than a jack-of-all-trades.
AHA I caught you AC you're my roommate I just know it!
It's a real pity, in any case. It's one of the biggest problems with Linux today, although it's obviously been getting better of late.
In C++, I can write a sorting algorithm that sorts objects that are not even the same concrete type.
And how is this different from C?
Templates.
Maybe the people really are idiots who have fallen for the Republican message. Maybe if the Democrats keep rewriting their message, the sheep will finally understand the nuanced, yet superior, Democratic plan.
Or maybe the people aren't idiots. Maybe they see past the rhetoric just as well as you think you do. Maybe they understand the differences between the two parties and have made their choice.
Or maybe I shouldn't have even bothered replying.
You got 50 responses, and not one of them wrote anything worth reading.
I don't know if that makes you "Teh Winnar!", but I have certainly lost.
...but english is not my native language and I do not live in any of the english-speaking countries...
...and when you can say "rødgrød med fløde" flawlessly I will consider to improve my english...
Helen Keller taught herself to speak, through great struggle. It's one reason she's such a famous figure.
She was also very political--a fact which is often covered over in the sappy elementary school biographies. She was a Southerner who opposed racism in the Jim Crow era.
instead of defining FancyAccounts as classes.. define them as interfaces... more code but you keep the code for each type of account in the class where it belongs. So you'll have something like.
//not a fancy account, no fancy function.
abstract class Account {
float balance;
abstract void doSomething();
}
interface FancyAccount1 {
void fancy1();
}
interface FancyAccount2 {
void fancy2();
}
class FancyAccount extends Account implements FancyAccount1 {
void fancy1() { };
}
class FancierAccount extends Account implements FancyAccount1, FancyAccount2 {
void fancy1() { };
void fancy2() { };
}
problem is you have to define fancy1 in both classes and you have to worry about keeping them the same if they have to be.
C++ has the edge in an example like this since you could just define the interfaces as classes with the methods in them and use multiple inheritance. Your C example could be replicated in Java with
"With respect to the above code, OOP is good for fairly static hierarchies. OOP is bad for a system in constant change."
That's not really true in this example. In Java, if I wanted to add another Fancy interface and class that has a completely different doSomething(). Add the class file to the application and all the calls to doSomething on it will work. Update the class that feeds Accounts in to the system and all you have to do is recompile one file in addition to adding the new class. With C you'd have to recompile and link everything.
Open Source Java DAO Generator
Merely insulting the parent poster is not very convincing.
Another thing... there's the whole reflection api in Java where you can inspect what methods it has at runtime. You don't have to call account.fancy1() account.fancy2() directly. You can loop through all the methods in the function that start with "fancy" and call them.
I had to use the reflection api once in a class that merged a text file with various beans. The text file contained tokens like $${token} and would call bean.getToken() where token could be any string so $${email} would call getEmail(). This was handy as the bean and text file were subject to change but the parser class didn't have to. A lot easier than writing something like if (token.equals("email") bean.getEmail(); for every possible value of token.
The reflection api used to be very slow. You still take a performance hit for it but it's gotten a lot faster with each JVM release.
Open Source Java DAO Generator
Most people aren't software people. Most people do things with their computers. It's only geeks like me who like computers for the sake of computers. All the business people I work with have to use them. They simply do not care about anything other than their needs being met in the most timely, reliable and cost effective manner.
When advocating open source, what problem are you solving? I used to advocate open source solutions for individuals and companies, but now I just give options. I still include open source options where they are a good solution, but that's not always true. People who like to play the newest popular games should probably not be switching to linux. Part of advocacy is knowing when to shut up. Pushing a particular solution to all problems, regardless of requirements is a major turnoff to pretty much everyone.
Especially when the customer pays for the CPU.
In the embedded world, where the CPU and code are both part of the same product, the design philisophy is quite different.
PJRC: Electronic Projects, 8051 Microcontroller Tools
Yes, here at my lettuce farm we have taken to burying a Knoppix mini-CD in each head of non-Iceberg lettuce toward this end.
Is this really what OSS is striving for? Sophisticated marketing? Can't the OSS community offer an alternative? One where the quality of the product is more important than it's marketing? Isn't this how the OSS successes came? Did Linux, Apache, Perl, etc. have a fancy marketing department, or have they "simply" been delivering great code?
Can't we start bombing these marketing schools where assholes are tought how to best screw us all?
Beware. I've tried this, and the new user always says "I want THAT linux, the one on the CD, because it's what I'm used to."
I point out that it's not really designed for a hard drive, and isn't as well supported as a version that is (i.e. no automatic updates, security fixes, comes with less software and the like). And they are unhappy about that.
I'd use a livecd based on an ground-up designed-to-be-installable distro rather than Knoppix. Ubuntu, maybe. Or I think SuSE does livecds.
Slashdot - Mutual Assured Discussion
Hehheh, playing it on the person, are we? And anonymous as well.
8 of 13 people found this answer helpful. Did you?
Apparently he IS your uncle.
In Chinese, there is no generic aunt or uncle label. There are specific names for my mother's older sister, mother's younger sister, and mother's brother. There are also corresponding names for their spouses.
Unforutunately, I can never rememeber which name is which.
why are people so down on malloc anyway?
is to experience about 200 years of time reversal. That should help with the new thoughts.
> why are people so down on malloc anyway?
Free the mallocs! Save the whales!
The Army reading list
Jono Bacon is also the author of an excellent death metal remix of the Free Software Song.
person who has not in their vocabulary the words to decribe what it is you are trying to commnicate to them?
according to the article you have to speak in their language....
Hmmmmph....
I would, if someone would just tell me why this bloody thing isn't compiling.
%include <iosrteam.com>
%include <iomannip.h>
void public static viod main( char *** argc, int argv[] )
{
sdt::cout <<< 'Hello, Wordl!' <<< Std::enld;
}
What? Hey, if you're so smart, YOU figure it out!
You want the truthiness? You can't handle the truthiness!
Forth? Easy to maintain? Kidding be you must.
Ha ha I get it. You pushed that sentence on a stack.
I am a Norweg and this proverbial is actually covering buffalos but a points is that it is very relevant here. So don't be nitpick about pinguins and focus on parent's points that is very insightfull. Please mod parent up. Thanks.
;-D)
:-P)
(P.S. Great sig - I'm a fellew Trekker
(P.S.2. I amn't sorry for my english... i believe your norwegian sucks equally badly!