I think it's fricking hilarious that everybody's counting out Nokia. Right now the N-Gage is for developers and those early adopter freaks that spent $1000 for a DVD player. And they failed there.
But remember that Nokia plays in a different world than Nintendo. Nintendo is starting to move from 3rd generation to 4th. (GB -> GBC -> GBA -> DS). That's a rate of about 1 generation every 4 years.
Nokia does a generation every 6 months. They've already fixed the "dork factor" and the "remove the battery" problem.
In 12-24 months, 75% of Nokia phones sold will include the N-Gage "feature". Since everybody wants a nice colour screen anyways, the added cost of N-Gage is miniscule. And the cost will be $0 (with a 2 year contract).
This will be every kid's preferred phone: sure the video games selection sucks now, but it'll text well and there'll probably be at least one good game. A cell phone is a mandatory kid-accessory.
And kids will prefer to buy games for their phone rather than for their Gameboy: you're more likely to be carrying your phone than your Gameboy.
Poof, demand exists, good games start coming, critical mass happens and Nintendo is looking for that truck's license plate.
Sony will eventually integrate PSP into Ericsson phones. Will it be soon enough? They have the critical mass problem and a timing problem.
Nintendo's in good shape though: they can license the GB to Motorola and the other cell phone manufacturers. They've got the momentum: a cell phone that is GBA compatible is a lot more valuable than an N-Gage phone. But they have to get those partnerships in a timely fashion.
Convergence has to be done right: people will not put up with a crappy phone or a crappy game system just for convergence's sake. I believe Nokia will iterate and "get it right". Any partnership will have many more problems doing so...
I was going to buy it retail, but it's one of those annoying copy-protected CD's. I didn't even bother looking at iTunes because I love in Canada, but a price above $9.99 would have stopped me anyways.
The music industry obviously does not want my money. Fine with me.
I'm a registered Apple developer. I don't have a Mac, have no immediate plans to buy a Mac and am definitely not going to be doing any Mac-specific programming anytime soon.
But I had to register to download Rendezvous source. Which doesn't bother me, just don't call me an Apple Developer!
Do you not see that? Telling everyone to continue to compete harder and harder and harder is a Ponzi Scheme?
What is EVERYONE works as hard as they possibly can? The bottom half stills gets cut off. That is a game that has no winners, in the end.
But that's exactly the sort of game that everybody wins at. It's the whole point of the marketplace, it's the reason the US is ahead of everybody else in so many ways. Ruthless competition is hard on those doing it, but the economy as a whole sees all of it's primary resources (people) get better. We produce more, more taxes get taken in to pay for roads, prices go down and people spend more. It's that whole nasty virtuous circle thing.
What I don't understand is: they make us software developers use change control (for good reason), but upper management builds their business on this fragile house of cards spreadsheet system.
Is there a good change control system for spreadsheets? Sure, we could treat the xls files as opaque binary files, but that's losing most of the power of the change control system. I'm sure it's out there. Pointers anyone?
1) selling PC's. You make a little bit of money at this, but mainly it's just advertising for the other stuff. 2) consulting/customizing. Billed at $75/$100 an hour, of course 3) custom PC's. Now you've got a custom load and configuration for a customer. Create a PLU for that custom PC. At first you're not making much money. But the customer is going to keep ordering that exact same PLU. Their price stays the same, yours keeps going down. 2 years from now that $1500 PC now costs you $500 to build but the customer is still paying $1500. Inventory management is difficult: PC parts keep going obsolete. Anytime you change anything you have to go back to the customer, which means you'll probably have to adjust the price. So stock up so you don't have to change anything...
And yes, customers really want this. If you can promise to deliver the EXACT SAME PC for 5 years, they'll pay a premium. And they'll be happy to let you ride Moore's law. It's difficult, because your Taiwanese vendors obsolete everything every 6 months, but it can be done, and there is sweet money to be had doing it.
2 & 3 usually work together. Shave those consulting rates to lock them into a volume deal.
IMO, I think Parrot will become the.NET equivalent in the open source world: a language independent VM and a huge standard library. I can't wait to have access to CPAN from my Python programs.
Sure, C# is a lot nicer than C, but Python & Ruby are a lot nicer than C#. If you're going to give up the predictability of C/C++ for a VM, garbage collection, et cetera, why not go all the way up to dynamic execution?
My web server has 6 megs of RAM. (it's an embedded device). That gives me two choices: C or sh. Obviously sh doesn't work for everything, but it's sure a heck of a lot nicer than using C for the non-critical stuff.
Ironically, I usually use Python for administration type tasks during development on real computers, and sh for the web sites themselves on the embedded servers.
Once we have viable competitors to Google, savvy people will prefer the viable competitors. Why? Although Google has done a good job keeping ahead of the optimizers, the best way to avoid optimizers will be to use the competition. So unless you like your first 20 results to be filled with the commercial, optimized, sites, you may be better off using Google competition than using Google.
I've written object oriented assembly code before. Very possible, and not particularly difficult. There's a little bit of setup work involved, you just can't jump in: but that's true in all pure OO systems: hello world's are larger in OO systems than in structural languages.
Assembly language OO is certainly easier than structured language OO. Take a look at GNOME for an example of the latter.
In a similar vein to the FP, writing OO assembly makes you a much better coder. For instance, before I wrote the project, I didn't have a good idea of the difference between a class and an object. I definitely do now!
The only thing OO assembly doesn't give you is protection, and that's no loss. Python doesn't have a "true" protection scheme either for it's objects, and it's a better language for it.
1) I prefer the Python example. It's easier to read. And easier to write the first time. That's the reason Python is better than Ruby: when you write code, you get it right the first time more often. And that's such a huge advantage.
Of course, you screwed up. (I assume you wanted to print the value of k rather than the letter k)
2) You used a comprehension in Ruby but not in Python. And adict.items() would have been easier than adict.keys()
To be more fair:
adict = {'key':'val','key2':'val2','key3':3.14}
[sys.stdout.write(k+'-> '+str(v)+'\n') for k,v in adict.items()]
But if I was writing the code, I'd use a for loop rather than a comprehension.
But for penis length competitions, we'll use the latter.
Tmdns is started from rc.d, but registering and deregistering services should be done when the service starts and stops. In other words, in the script that starts the service, or in the service itself.
57k is a lot in my world. I've got 6MB of RAM on my target (and no swap space).:)
And that bridge feature is sweet. That lets me use normal DNS calls to look up names and services.
Editing config files? Compiling the ugly bulk that is Apple Rendezvous into your app?
tmdns is so much easier.
Just system("register_service --add --service=pgsql --port=#"); and it'll show up in your browser.
tmdns does things the Unix way. Now we just have to get the distributions to include tmdns, like Mandrake does. Because adding it on yourself is not a trivial task.
True, but on the other hand if you bought your smartcard programmer from a site called www.hackdss.com I think there is a plausable argument that you might have purchaced said equipment to hack dss.
How about if that was because it was the only way to get one at a reasonable price? Most of the legitimate places that sell things like that are not set up to sell single units to consumers. You can pretend to be a real engineer actually designing products for sale and get yourself a free evaluation unit, or you can buy significant quantities. The middle ground is very difficult to find for stuff like that.
Unfortunately, there's still jitter: most DAC's are unclocked or clocked by the input signal. And jitter can introduce nasty artifacts.
But if your components are reclocking, it's all good. Bring on the cheap cables. And since you need to reclock it to do many things that people want to do these days, more and more components are doing that reclocking, even if it's not listed anywhere.
Joel is probably one of the only people that can attract the top 0.1%.
Reasons:
1) high visibility with his blog & columns in various magazines 2) Downtown NY & salaries to match 3) Office with a door 4) Boss is a programmer, not an MBA 5) smart coworkers 6) 6 weeks vacation 7) lots of other stuff, read his site
I might be wrong about that 6 weeks vacation thing, the only reference I found on his site was when he was talking about hiring European developers.
Note to managers: 6 weeks vacation is an absolute kicker of an incentive. It's cheap too. If you can't keep a company going without "key personnel", you've got bigger problems, and I don't want to work there.
The implication is that they're converting their stock to something liquid they can sell on the open market.
Regardless of their motivation, it is a strong "sell" signal.
Bryan
but in 12 months time there will be tiny versions of N-Gage available...
I think it's fricking hilarious that everybody's counting out Nokia. Right now the N-Gage is for developers and those early adopter freaks that spent $1000 for a DVD player. And they failed there.
But remember that Nokia plays in a different world than Nintendo. Nintendo is starting to move from 3rd generation to 4th. (GB -> GBC -> GBA -> DS). That's a rate of about 1 generation every 4 years.
Nokia does a generation every 6 months. They've already fixed the "dork factor" and the "remove the battery" problem.
In 12-24 months, 75% of Nokia phones sold will include the N-Gage "feature". Since everybody wants a nice colour screen anyways, the added cost of N-Gage is miniscule. And the cost will be $0 (with a 2 year contract).
This will be every kid's preferred phone: sure the video games selection sucks now, but it'll text well and there'll probably be at least one good game. A cell phone is a mandatory kid-accessory.
And kids will prefer to buy games for their phone rather than for their Gameboy: you're more likely to be carrying your phone than your Gameboy.
Poof, demand exists, good games start coming, critical mass happens and Nintendo is looking for that truck's license plate.
Sony will eventually integrate PSP into Ericsson phones. Will it be soon enough? They have the critical mass problem and a timing problem.
Nintendo's in good shape though: they can license the GB to Motorola and the other cell phone manufacturers. They've got the momentum: a cell phone that is GBA compatible is a lot more valuable than an N-Gage phone. But they have to get those partnerships in a timely fashion.
Convergence has to be done right: people will not put up with a crappy phone or a crappy game system just for convergence's sake. I believe Nokia will iterate and "get it right". Any partnership will have many more problems doing so...
Bryan
I was going to buy it retail, but it's one of those annoying copy-protected CD's. I didn't even bother looking at iTunes because I love in Canada, but a price above $9.99 would have stopped me anyways.
The music industry obviously does not want my money. Fine with me.
Bryan
I love numbers like that.
I'm a registered Apple developer. I don't have a Mac, have no immediate plans to buy a Mac and am definitely not going to be doing any Mac-specific programming anytime soon.
But I had to register to download Rendezvous source. Which doesn't bother me, just don't call me an Apple Developer!
Bryan
What is EVERYONE works as hard as they possibly can? The bottom half stills gets cut off. That is a game that has no winners, in the end.
But that's exactly the sort of game that everybody wins at. It's the whole point of the marketplace, it's the reason the US is ahead of everybody else in so many ways. Ruthless competition is hard on those doing it, but the economy as a whole sees all of it's primary resources (people) get better. We produce more, more taxes get taken in to pay for roads, prices go down and people spend more. It's that whole nasty virtuous circle thing.
Bryan
What I don't understand is: they make us software developers use change control (for good reason), but upper management builds their business on this fragile house of cards spreadsheet system.
Is there a good change control system for spreadsheets? Sure, we could treat the xls files as opaque binary files, but that's losing most of the power of the change control system. I'm sure it's out there. Pointers anyone?
Bryan
and then, a few years later, you'll realize that over engineering is often just as bad as under engineering and you'll find the happy medium.
Here's the recipe:
1) selling PC's. You make a little bit of money at this, but mainly it's just advertising for the other stuff.
2) consulting/customizing. Billed at $75/$100 an hour, of course
3) custom PC's. Now you've got a custom load and configuration for a customer. Create a PLU for that custom PC. At first you're not making much money. But the customer is going to keep ordering that exact same PLU. Their price stays the same, yours keeps going down. 2 years from now that $1500 PC now costs you $500 to build but the customer is still paying $1500. Inventory management is difficult: PC parts keep going obsolete. Anytime you change anything you have to go back to the customer, which means you'll probably have to adjust the price. So stock up so you don't have to change anything...
And yes, customers really want this. If you can promise to deliver the EXACT SAME PC for 5 years, they'll pay a premium. And they'll be happy to let you ride Moore's law. It's difficult, because your Taiwanese vendors obsolete everything every 6 months, but it can be done, and there is sweet money to be had doing it.
2 & 3 usually work together. Shave those consulting rates to lock them into a volume deal.
IMO, I think Parrot will become the .NET equivalent in the open source world: a language independent VM and a huge standard library. I can't wait to have access to CPAN from my Python programs.
Sure, C# is a lot nicer than C, but Python & Ruby are a lot nicer than C#. If you're going to give up the predictability of C/C++ for a VM, garbage collection, et cetera, why not go all the way up to dynamic execution?
Bryan
Um, me.
My web server has 6 megs of RAM. (it's an embedded device). That gives me two choices: C or sh. Obviously sh doesn't work for everything, but it's sure a heck of a lot nicer than using C for the non-critical stuff.
Ironically, I usually use Python for administration type tasks during development on real computers, and sh for the web sites themselves on the embedded servers.
Bryan
Once we have viable competitors to Google, savvy people will prefer the viable competitors. Why? Although Google has done a good job keeping ahead of the optimizers, the best way to avoid optimizers will be to use the competition. So unless you like your first 20 results to be filled with the commercial, optimized, sites, you may be better off using Google competition than using Google.
Bryan
You just described Python. Not surprisingly: Python's original goal was a teaching language.
I've written object oriented assembly code before. Very possible, and not particularly difficult. There's a little bit of setup work involved, you just can't jump in: but that's true in all pure OO systems: hello world's are larger in OO systems than in structural languages.
Assembly language OO is certainly easier than structured language OO. Take a look at GNOME for an example of the latter.
In a similar vein to the FP, writing OO assembly makes you a much better coder. For instance, before I wrote the project, I didn't have a good idea of the difference between a class and an object. I definitely do now!
The only thing OO assembly doesn't give you is protection, and that's no loss. Python doesn't have a "true" protection scheme either for it's objects, and it's a better language for it.
Bryan
Probably because of their employees, who have probably been indirectly promised a huge stock option windfall....
Bryan
Excellent example:
1) I prefer the Python example. It's easier to read. And easier to write the first time. That's the reason Python is better than Ruby: when you write code, you get it right the first time more often. And that's such a huge advantage.
Of course, you screwed up. (I assume you wanted to print the value of k rather than the letter k)
2) You used a comprehension in Ruby but not in Python. And adict.items() would have been easier than adict.keys()
To be more fair:
adict = {'key':'val','key2':'val2','key3':3.14}
[sys.stdout.write(k+'-> '+str(v)+'\n') for k,v in adict.items()]
But if I was writing the code, I'd use a for loop rather than a comprehension.
But for penis length competitions, we'll use the latter.
Bryan
Tmdns is started from rc.d, but registering and deregistering services should be done when the service starts and stops. In other words, in the script that starts the service, or in the service itself.
:)
57k is a lot in my world. I've got 6MB of RAM on my target (and no swap space).
And that bridge feature is sweet. That lets me use normal DNS calls to look up names and services.
cheers,
Bryan
Editing config files? Compiling the ugly bulk that is Apple Rendezvous into your app?
tmdns is so much easier.
Just system("register_service --add --service=pgsql --port=#"); and it'll show up in your browser.
tmdns does things the Unix way. Now we just have to get the distributions to include tmdns, like Mandrake does. Because adding it on yourself is not a trivial task.
Bryan
How about if that was because it was the only way to get one at a reasonable price? Most of the legitimate places that sell things like that are not set up to sell single units to consumers. You can pretend to be a real engineer actually designing products for sale and get yourself a free evaluation unit, or you can buy significant quantities. The middle ground is very difficult to find for stuff like that.
Bryan
Sure, but all else being equal or similar, I'll take the smaller item.
The category for this one is "it fits easily inside pretty much any backpack". Laptops don't.
Bryan
Unfortunately, there's still jitter: most DAC's are unclocked or clocked by the input signal. And jitter can introduce nasty artifacts.
But if your components are reclocking, it's all good. Bring on the cheap cables. And since you need to reclock it to do many things that people want to do these days, more and more components are doing that reclocking, even if it's not listed anywhere.
Bryan
I read the entire trilogy in one sitting. It took about 18 hours and was unbelievably mind blowing.
When you can read at a good speed, it's the movies that become boring.
Bryan
Actually, several studies have shown that many people prefer (a). Strange, but human brains are funny.
Bryan
Joel is probably one of the only people that can attract the top 0.1%.
Reasons:
1) high visibility with his blog & columns in various magazines
2) Downtown NY & salaries to match
3) Office with a door
4) Boss is a programmer, not an MBA
5) smart coworkers
6) 6 weeks vacation
7) lots of other stuff, read his site
I might be wrong about that 6 weeks vacation thing, the only reference I found on his site was when he was talking about hiring European developers.
Note to managers: 6 weeks vacation is an absolute kicker of an incentive. It's cheap too. If you can't keep a company going without "key personnel", you've got bigger problems, and I don't want to work there.
Bryan
That's an AMD flash memory chip, not a CPU.