If you want to make money, find people with money, find out what they want, and make it - the faster the better.
If you want to have fun, find something you want to do, and do it.
Pretty hard, eh?
It's not uncommon for me to GPL a "commodity" section of my codebase. (I prefer LGPL) and much of my codebase is similarly licensed. Others come along, use my stuff, and improve on it, and I get a free ride on their improvements.
However, there's plenty of my stuff that nobody's gonna see without signing an NDA first.
Busines != Pleasure. Get used to it.
Use your open source stuff on your resume. I've donated alot towards the documentation of PHP-GTK. It's on my list of credentials, all right, even though I didn't do it for money.
But for god's sake, if you give something away, forget about charging for it!!!
They aren't the same company as Caldera once was - even Ransom Love is gone. I'd seriously doubt if any employees of the company from 2 years ago are there, and most of those from a year ago are probably gone.
The only thing that exists of the Caldera we once knew are the records of its past. It's just a bunch of lawyers at this point, and maybe a few remaining techies.
It is now a purely parasitic organization - and we can all just hope that the remaining IP around Unix is either opened (as being "generic" now) or that the IP is bought by a company that (like AT&T) allows its free use.
What I find most amazing is not that these exploits, worms, and trojans exist, or even that there are so many, but rather that there are so few.
We can all thank our favorite dieties (cowboy Neal included) that economics work out such that those who are most capable of writing a true "nutbuster" malware are typically getting paid to write something more productive!
Most of these worms and viruses are pretty lame - I read someplace that over 90% of worms and viruses never propogate enough to be "viable" - they are too ineffective to spread.
The Internet is an amazingly powerful communications medium - but putting your stuff online is somewhat analogous to putting your stuff in the heart of Harlem - since everywhere has a "front door" there.
The state of security on the Internet is bad, and will get worse before it gets better.
Yeah, but in 5 minutes, who CARES if you rang it? Seriously, how many copies of the DVD decoder thingy are still floating around? Compare with 1 year ago?
How many tweaks do you find for the once insanely popular Atari 2600?
All that time spent making sure variable names are politically correct (Hungarian or otherwise) could be spend actually evaluating whether the code will function properly.
I frequently use a modifed form of Extreme Programming in projects, particularly where the issues that will be faced are not known at design time.
Typically, I focus on heavily documenting the data formats used, and code away from there. My rule of thumb is that anytime I feel the temptation to copy/paste, I break out the code into a function. As I do so, I revise variable names and leave notes.
Anytime code isn't immediately clear in these kinds of situations, I write all kinds of notes so that I understand what I'm reading when I get back.
You can certainly take naming conventions to a logical point of the rediculous, but compare these two pieces of code:
for ($c=0;$c$CC)
$cc=$c+$CC-5; }
for ($dollars=0; $dollars$savings)
$mysavings=$dollars+$savings-$tax; }
Now, it's clearly contrived. But the latter clearly has more relevant information than the former. (and I've seen all too much code similar to the former!)
Perhaps I'm in the 2nd category - I'm finalizing development of a software application that's based on PHP-GTK and while we're targeting windows development, given the toolkit, there *will* be a Linux version as well.
Now, it's not a game, but it's production software targeting the education sector....
The smart thing to do is to find OS's that actually specialize in the jobs that need to be done. Designing General purpose software comes with a lot of tradeoffs in its design, so you are getting a best OK system for the job.
You are forgetting a simple, basic principle of business: Good enough is good enough.
If you need something done, and you find something that's good enough, then that's good enough. If your competitor has a good enough solution that's cheaper, then suddenly what once was good enough isn't good enough anymore.
So, the full statement should be "good enough is good enough when it's cheapest".
Unfortunately, custom designed somethings for a niche are expensive. Thus you have to weigh - is "really good/expensive" (think niche) cheaper overall than "good enough/cheap" (think generic)?
Only when providing an overall reduction in costs (or increase in profits) will the niche item be better than the generic.
The cycle of technology is such that we are always moving to the generic. First a niche product comes out and it's popular. Then a "bridge" product (one close enough to the niche product that it can be made servicable) comes along that's generic and vastly cheaper than the niche product.
Then, the generic product displaces the niche product.
Unix was a niche product, requiring fast, expensive computers and costly maintanence. PCs are generic products - cheap and mass produced.
Windows, IMHO, is a niche product masquerading as a generic product due to its intensely proprietary nature.
Linux is the bridge product that makes the generic PC capable of matching the power of the high-dollar Unix systems, so it kills the niche (Unix and Windows) products.
This whole process is called "commoditization" and examples exist all throughout economics.
Interesting. How many 100000 loc+ programs did you write in it?
Geez... where do I begin?
1) How many 100,000 LOC projects have you seen in QBASIC? I started by saying that I feel PHP is a good contender as a first language instead of QBASIC!
2) For that matter, how many have you (personally) written? Come on! Tell me about some of your stuff, and I'll tell you about some of mine!
3) I've not written a 100,000 line program in PHP - and I think that's really the point. Scripting languages can be much more terse than equivalent code in c or other lower level languages, as a smaller amount of code does more. Which explains why PHP/Python/Perl are as popular as they are.
However, I have written several in the 10,000-30,000 line area, and both myself and my clients have been quite pleased with the results.
Do you remember the perl program that decoded a DVD with a single line of code?
Let's say that aliens were using a high speed, encrypted, spread spectrum algorithm for their communications - would SETI detect it?
If my understanding is correct, the answer would be... NO.
Given that we started broadcasting around 100 years ago, and that we are probably within another 100 years of changing to something that SETI can't detect, and the billions of years that evolution has been working, wouldn't that make SETI fairly pointless?
I started programming with Pascal and C. Hated both.
Strict data typing, memory management, blah blah blah.
But with PHP-GTK, you can write powerful client side software that works on Windows/Linux well, as well as write the more typical web stuff and shell scripts.
About two years ago, I started noticing the same kinds of things. I found that, using the normal 104-key keyboard, if I got a highly adjustable chair, and a towel rolled up (towels worked because I could adjust the height of the roll by winding it more or less tightly) I could all but eliminate the wrist pain.
Then, for Christmas, my wife bought me a Microsoft Natural keyboard.
Now, I can sit however, and just type, and I simply don't have problems with my wrists hurting!... Microsoft's software is crap, but their keyboard sits in front of my Red Hat Linux software dev workstation...
Other, more extreme keyboards may be needed for you based on your physiology, but this keyboard has been a wrist-saver for me!
Works on most any platform, and is very good about catching viruses. Works well on our qmail and sendmail mail servers, with qmail-scanner and mailscanner, respectively.
Exactly. Non-OEM version. Unless you're building machines for re-sale, you are NOT entitled to buy the OEM version of the software. You have obtained your software through fraudulent means, and are in violation of the Microsoft EULA,....
The terms of the EULA (at least as of about 3 years ago) indicate that the 'doze copy must be sold with a significant amount of hardware - and either a motherboard or hard drive suffice.
There's no requirement that they be *new*, or is there any restriction on *price*, or even that said motherboard or hard drive have any guarantee of functionality. We even called their piracy hotline, verified this, and even demanded a ticket number that we could reference later.
So, as the owner of a computer store, we kept a box of "questionable" hardware that we sold for $1 USD. Anytime we replace a Hard disk or Motherboard, we'd indicate on the replaced item with a permanent marker its status and put it in the $1 box.
And, when we sold an OEM copy of Windows, we included the $1 hard disk or motherboard!
Now, as far as I can tell, we followed the EULA right to the letter, and for some reason, many of the people who bought these hard drives and motherboards left them behind!.
"Kill or be killed" is not an enlightened guiding philosophy.
Unfortunately, idealism doesn't actually exist - it's just a concept thunk by us homo sapiens.
That which fails to take adequate measures to ensure its own survival ceases to survive. Just another way to say the same thing.
Think about this next time you eat a burger - you see thousands of plant seeds that have been killed to make the bun, a cucumber plant that sacrificed its progeny for the pickle, and a cow named daisy or something that was ground up for the hamburger.
Now, if you didn't eat that hamburger, you'd die. Kill or be killed. However you disguise it, it's a fact of living in the great cycle of life, and jobs are no different.
So the question you need to ask yourself before you get into this situation is What does the client think they own? and make sure that you are upfront with them and the contract covers it.
I *always* mention to the client that I use "free tools everywhere possible" to make the job go faster, reduce development costs and enhance stability. When they ask about "ownership", I calmly explain to them that being "Open Source" means that they own a perpetual right to use said "tools", and that I'm careful to use the tools in such a way as to not contaminate their paid-for sources.
When given the option of paying more for something that doesn't really get them anything, I've never had anybody turn down the open tools.
I'm a consultant, paid for my time and the IP I develop. I would not dare to risk cross-contamination by doing anything more than downloading and using open-source packages at the office.
As a fellow consultant, I have a few questions for you:
1) Do your clients require that *you* wrote it, or that the thingamajig works?
2) Do your clients mind if sections of their codebase that aren't part of the core deliverable (libraries and the like) improve with time without further investment on their part?
3) Do you read the licenses for the stuff that you develop in proprietary software to ensure that "contamination" is not happening there, too? Some of the EULAs for compilers and IDEs can be quite frightening when you actually READ them.
I use *alot* of GPL and LGPL stuff in my work. The key is to ensure that the GPL stuff is called as an external process, (so it's effectively its own program) and the LGPL stuff sits in its own, separate file.
Hmmm... That's fine for you, but most things don't work that way. Let's take your logic to its extreme:
If I want a gun, I'll go to a gunshop...
Oh, so you wouldn't run to a "Sporting goods" store, where you can get your gun, some ammo, maybe a camo jacket, and some wax for your skis while you are there?
Integration can get crazy - you wouldn't want to buy a gallon of milk at the sporting goods store, but in some cases (such as the Walmart Megastores) even that can make sense.
I didn't get any options on my cell phone (like text messaging)
So, you carry a cellphone AND a pager? My cellphone is an addressbook, cellphone, pager, and text messager all in one. That fact does not stop me from using it (very effectively) as a cell phone.
Is this just me? Do all of you want your programs shoved together in one large application?
KDE comes with Kmail and Konqueror. They are integrated and use the same libraries. I *love* the combination.
First we had print publications. Then phones. Then cell phones. Then the Internet. Now we have soldiers living half their battles in a video game.
Watching Star Trek, you see battles of individualists vs the Borg Collective.
But, with all this emphasis on connections and "the network" - has it occurred to anybody that by 2500 AD we will be the borg?
We will be the "collective", we'll be the ones with networking hardware sticking out the sides of our faces, though maybe we won't have such a schtik for "assimilating" other races...
One of those weird thoughts that may partly come from the beer I'm almost done with...
If you want to make money, find people with money, find out what they want, and make it - the faster the better.
If you want to have fun, find something you want to do, and do it.
Pretty hard, eh?
It's not uncommon for me to GPL a "commodity" section of my codebase. (I prefer LGPL) and much of my codebase is similarly licensed. Others come along, use my stuff, and improve on it, and I get a free ride on their improvements.
However, there's plenty of my stuff that nobody's gonna see without signing an NDA first.
Busines != Pleasure. Get used to it.
Use your open source stuff on your resume. I've donated alot towards the documentation of PHP-GTK. It's on my list of credentials, all right, even though I didn't do it for money.
But for god's sake, if you give something away, forget about charging for it!!!
-Ben
SCO doesn't care anymore.
They aren't the same company as Caldera once was - even Ransom Love is gone. I'd seriously doubt if any employees of the company from 2 years ago are there, and most of those from a year ago are probably gone.
The only thing that exists of the Caldera we once knew are the records of its past. It's just a bunch of lawyers at this point, and maybe a few remaining techies.
It is now a purely parasitic organization - and we can all just hope that the remaining IP around Unix is either opened (as being "generic" now) or that the IP is bought by a company that (like AT&T) allows its free use.
What I find most amazing is not that these exploits, worms, and trojans exist, or even that there are so many, but rather that there are so few.
We can all thank our favorite dieties (cowboy Neal included) that economics work out such that those who are most capable of writing a true "nutbuster" malware are typically getting paid to write something more productive!
Most of these worms and viruses are pretty lame - I read someplace that over 90% of worms and viruses never propogate enough to be "viable" - they are too ineffective to spread.
The Internet is an amazingly powerful communications medium - but putting your stuff online is somewhat analogous to putting your stuff in the heart of Harlem - since everywhere has a "front door" there.
The state of security on the Internet is bad, and will get worse before it gets better.
you can't unring a bell.
Yeah, but in 5 minutes, who CARES if you rang it? Seriously, how many copies of the DVD decoder thingy are still floating around? Compare with 1 year ago?
How many tweaks do you find for the once insanely popular Atari 2600?
All that time spent making sure variable names are politically correct (Hungarian or otherwise) could be spend actually evaluating whether the code will function properly.
I frequently use a modifed form of Extreme Programming in projects, particularly where the issues that will be faced are not known at design time.
Typically, I focus on heavily documenting the data formats used, and code away from there. My rule of thumb is that anytime I feel the temptation to copy/paste, I break out the code into a function. As I do so, I revise variable names and leave notes.
Anytime code isn't immediately clear in these kinds of situations, I write all kinds of notes so that I understand what I'm reading when I get back.
You can certainly take naming conventions to a logical point of the rediculous, but compare these two pieces of code:
for ($c=0;$c$CC)
$cc=$c+$CC-5;
}
for ($dollars=0; $dollars$savings)
$mysavings=$dollars+$savings-$tax;
}
Now, it's clearly contrived. But the latter clearly has more relevant information than the former. (and I've seen all too much code similar to the former!)
-Ben
Perhaps I'm in the 2nd category - I'm finalizing development of a software application that's based on PHP-GTK and while we're targeting windows development, given the toolkit, there *will* be a Linux version as well.
Now, it's not a game, but it's production software targeting the education sector....
Guess I'm in the 2nd category?
I have and use Verizon Mobile Office. Basically, I couple my cell phone with a cable to my laptop to get (whoopee!) 19.2 Kbps Internet Service.
It's slow (esp. compared to my 1.5 Mb DSL) but it's real nice when I'm on the road and have an issue to take care of.
I don't think this card would be a replacement for broadband...
or through a simple sed filter which replaces any string of whitespace with a single space character
// do somthing meaningful
// do something meaningful
Uh, that wouldn't work. For example:
for ($i=0;$i5;$i++)
for ($i=0; $i5; $i++)
Your simple sed would fail in this most trivial and common of cases.
You couldn't even use diff -b!
The smart thing to do is to find OS's that actually specialize in the jobs that need to be done. Designing General purpose software comes with a lot of tradeoffs in its design, so you are getting a best OK system for the job.
You are forgetting a simple, basic principle of business: Good enough is good enough.
If you need something done, and you find something that's good enough, then that's good enough. If your competitor has a good enough solution that's cheaper, then suddenly what once was good enough isn't good enough anymore.
So, the full statement should be "good enough is good enough when it's cheapest".
Unfortunately, custom designed somethings for a niche are expensive. Thus you have to weigh - is "really good/expensive" (think niche) cheaper overall than "good enough/cheap" (think generic)?
Only when providing an overall reduction in costs (or increase in profits) will the niche item be better than the generic.
The cycle of technology is such that we are always moving to the generic. First a niche product comes out and it's popular. Then a "bridge" product (one close enough to the niche product that it can be made servicable) comes along that's generic and vastly cheaper than the niche product.
Then, the generic product displaces the niche product.
Unix was a niche product, requiring fast, expensive computers and costly maintanence. PCs are generic products - cheap and mass produced.
Windows, IMHO, is a niche product masquerading as a generic product due to its intensely proprietary nature.
Linux is the bridge product that makes the generic PC capable of matching the power of the high-dollar Unix systems, so it kills the niche (Unix and Windows) products.
This whole process is called "commoditization" and examples exist all throughout economics.
-Ben
I've been using workstation with good results.
Interesting. How many 100000 loc+ programs did
you write in it?
Geez... where do I begin?
1) How many 100,000 LOC projects have you seen in QBASIC? I started by saying that I feel PHP is a good contender as a first language instead of QBASIC!
2) For that matter, how many have you (personally) written? Come on! Tell me about some of your stuff, and I'll tell you about some of mine!
3) I've not written a 100,000 line program in PHP - and I think that's really the point. Scripting languages can be much more terse than equivalent code in c or other lower level languages, as a smaller amount of code does more. Which explains why PHP/Python/Perl are as popular as they are.
However, I have written several in the 10,000-30,000 line area, and both myself and my clients have been quite pleased with the results.
Do you remember the perl program that decoded a DVD with a single line of code?
If you try to, you'll see why.
Perhaps you could enlighten us?
Let's say that aliens were using a high speed, encrypted, spread spectrum algorithm for their communications - would SETI detect it?
If my understanding is correct, the answer would be... NO.
Given that we started broadcasting around 100 years ago, and that we are probably within another 100 years of changing to something that SETI can't detect, and the billions of years that evolution has been working, wouldn't that make SETI fairly pointless?
They make a nice screensaver, though... =)
I started programming with Pascal and C. Hated both.
Strict data typing, memory management, blah blah blah.
But with PHP-GTK, you can write powerful client side software that works on Windows/Linux well, as well as write the more typical web stuff and shell scripts.
I love it!
About two years ago, I started noticing the same kinds of things. I found that, using the normal 104-key keyboard, if I got a highly adjustable chair, and a towel rolled up (towels worked because I could adjust the height of the roll by winding it more or less tightly) I could all but eliminate the wrist pain.
Then, for Christmas, my wife bought me a Microsoft Natural keyboard.
Now, I can sit however, and just type, and I simply don't have problems with my wrists hurting!... Microsoft's software is crap, but their keyboard sits in front of my Red Hat Linux software dev workstation...
Other, more extreme keyboards may be needed for you based on your physiology, but this keyboard has been a wrist-saver for me!
Don't forget my favorite - f-prot!
Works on most any platform, and is very good about catching viruses. Works well on our qmail and sendmail mail servers, with qmail-scanner and mailscanner, respectively.
-Ben
Exactly. Non-OEM version. Unless you're building machines for re-sale, you are NOT entitled to buy the OEM version of the software. You have obtained your software through fraudulent means, and are in violation of the Microsoft EULA, ....
The terms of the EULA (at least as of about 3 years ago) indicate that the 'doze copy must be sold with a significant amount of hardware - and either a motherboard or hard drive suffice.
There's no requirement that they be *new*, or is there any restriction on *price*, or even that said motherboard or hard drive have any guarantee of functionality. We even called their piracy hotline, verified this, and even demanded a ticket number that we could reference later.
So, as the owner of a computer store, we kept a box of "questionable" hardware that we sold for $1 USD. Anytime we replace a Hard disk or Motherboard, we'd indicate on the replaced item with a permanent marker its status and put it in the $1 box.
And, when we sold an OEM copy of Windows, we included the $1 hard disk or motherboard!
Now, as far as I can tell, we followed the EULA right to the letter, and for some reason, many of the people who bought these hard drives and motherboards left them behind!.
Not really.
If two companies are competing with each other, anything that creates a percentage of people to switch favors the smaller company.
For example, if Cingular loses 5% of their audience to Verizon, and Verizon loses 5% of their audience to Cingular, who comes out ahead?
"Kill or be killed" is not an enlightened guiding philosophy.
Unfortunately, idealism doesn't actually exist - it's just a concept thunk by us homo sapiens.
That which fails to take adequate measures to ensure its own survival ceases to survive. Just another way to say the same thing.
Think about this next time you eat a burger - you see thousands of plant seeds that have been killed to make the bun, a cucumber plant that sacrificed its progeny for the pickle, and a cow named daisy or something that was ground up for the hamburger.
Now, if you didn't eat that hamburger, you'd die. Kill or be killed. However you disguise it, it's a fact of living in the great cycle of life, and jobs are no different.
It's not barbaric, it's just true.
So the question you need to ask yourself before you get into this situation is What does the client think they own? and make sure that you are upfront with them and the contract covers it.
I *always* mention to the client that I use "free tools everywhere possible" to make the job go faster, reduce development costs and enhance stability. When they ask about "ownership", I calmly explain to them that being "Open Source" means that they own a perpetual right to use said "tools", and that I'm careful to use the tools in such a way as to not contaminate their paid-for sources.
When given the option of paying more for something that doesn't really get them anything, I've never had anybody turn down the open tools.
You have?
I'm a consultant, paid for my time and the IP I develop. I would not dare to risk cross-contamination by doing anything more than downloading and using open-source packages at the office.
As a fellow consultant, I have a few questions for you:
1) Do your clients require that *you* wrote it, or that the thingamajig works?
2) Do your clients mind if sections of their codebase that aren't part of the core deliverable (libraries and the like) improve with time without further investment on their part?
3) Do you read the licenses for the stuff that you develop in proprietary software to ensure that "contamination" is not happening there, too? Some of the EULAs for compilers and IDEs can be quite frightening when you actually READ them.
I use *alot* of GPL and LGPL stuff in my work. The key is to ensure that the GPL stuff is called as an external process, (so it's effectively its own program) and the LGPL stuff sits in its own, separate file.
I contribute changes and improvements constantly.
Hmmm... That's fine for you, but most things don't work that way. Let's take your logic to its extreme:
If I want a gun, I'll go to a gunshop...
Oh, so you wouldn't run to a "Sporting goods" store, where you can get your gun, some ammo, maybe a camo jacket, and some wax for your skis while you are there?
Integration can get crazy - you wouldn't want to buy a gallon of milk at the sporting goods store, but in some cases (such as the Walmart Megastores) even that can make sense.
I didn't get any options on my cell phone (like text messaging)
So, you carry a cellphone AND a pager? My cellphone is an addressbook, cellphone, pager, and text messager all in one. That fact does not stop me from using it (very effectively) as a cell phone.
Is this just me? Do all of you want your programs shoved together in one large application?
KDE comes with Kmail and Konqueror. They are integrated and use the same libraries. I *love* the combination.
Actually, it seems their homepage is down!
http://www.sco.com
--21:01:18-- http://www.sco.com/images/pdf/eserver/eserver_sysa dmin.pdf
=> `output.pdf'
Resolving www.sco.com... done.
Connecting to www.sco.com[216.250.140.112]:80... connected.
HTTP request sent, awaiting response...
Read error (Connection reset by peer) in headers.
Retrying.
First we had print publications. Then phones. Then cell phones. Then the Internet. Now we have soldiers living half their battles in a video game.
Watching Star Trek, you see battles of individualists vs the Borg Collective.
But, with all this emphasis on connections and "the network" - has it occurred to anybody that by 2500 AD we will be the borg?
We will be the "collective", we'll be the ones with networking hardware sticking out the sides of our faces, though maybe we won't have such a schtik for "assimilating" other races...
One of those weird thoughts that may partly come from the beer I'm almost done with...
-Ben
If you absolutely must do something on Windows, use Python, Perl, and/or wxWindows rather than VB.
/SHAMELESS PLUG
Uh, don't forget php!