I wonder how much of "Mac easiest to hack" is due to the fact that WebKit is open source?
Its got to be pretty easy to find exploits when you've got the source in front of you!
And considering Darwin is open source, I'm surprised they weren't able to find a root exploit as well.
Reuse is good and and environmental and all, but:
How much is your time worth? How many hours of your time to set up one of these older machines would buy a newer machine?
And if energy costs are a concern (and why not): how much more efficient would the "right machine" for the task be, given the costs?
I've never understood the tendency of companies to cheat on hardware costs - making someone jump through dozens of hours of hoops is far more costly than just buying the right hardware.
When I put the Geiger counter near a coconut, which accumulates radioactive material from the soil, it went berserk. I for one, welcome our Berserk Radioactive Coconut overloards.
The finally had long file names, and they went crazy creating the longest most impossible to type file names they could come up with. Which reminds me of the color schemes up through Windows 3.1: We have 16 colors and we're going to use them ALL!!
>> I have a MacBook, with the Apple remote. How do I jump to chapter 13 of a track? I hit "forward" 12 times. Why? Because some usability guru thought simplicity was more important than functions I use daily.
You would prefer a remote with a "Jump to track 13" button?
The kit was about $1000 for chasis and boards. Lots of discrete components here, lots of hackability. All that its lacking is a time machine so I can actually get a chance to work on the one I bought two years ago...
Seriously, I've tried using the visual studio tools and I can't believe how mind boggling unproductive I find them to be.
I mean, when you hit compile, it generates and spews out a command line to a little text window. Which is fine, but it doesn't bother to actually parse that data and present it in a meaningful way. You end up scrolling through dozens of warnings (if you're not compiling with the equivilent of -ferror) to find relevant errors.
Oh, and then there's deployment. I worked for a while with some folks that had a C++ application that talked with the Microsoft SQL database and IIS. Their "push" procedure involved remote desktop to the server, clicking buttons to take down the server, pointing it at the maintenance site, creating a new directory in the file explorer, naming it correctly and copying the existing database files to it, copying over the newly compiled bits, testing it in situ and finally pointing the server back to the live site.
This took them between 3 and 6 hours, every Friday night. I asked them why they can't just write a shell script (or dos shell script, whatever the hell windows has) and they said that it would take too long to develop that. Idiots.
But thats not what I'm here to rant at you about. I'm here to rant about Visual Studio. Why, if the OS is called Windows, am I only allowed to have one of them in my development environment? I never got the MDI thing, but I routinely, on Mac OS, have 20 source files open and visible. Why does Visual Studio insist on cramming them into one single pane? Gargh, its frustrating. Why can't the compiler take normal command line switches with meaningful names? Since we're talking about the "development ecosystem", why does the command.com shell so completely fail at being useful?
The debugger is even worse, hiding and showing things based on what it *thinks* I want to see. The only benefit it has over gdb on the command line is mixed assembly/source view, but at least with gdb I can quickly disassemble whatever I need to, not just where the PC is.
Can someone please describe what is so great about visual studio? I've heard other people say it, but I really don't see it. (Please compare and contrast to Eclipse and/or Xcode.)
(FWIW, I use Xcode to manage my projects and I do a lot of editing with the editor since its there, but I do all my debugging in gdb/emacs since Xcode's debugger sucked ass the last time I tried it...)
Steve, I'm sure the fuss is because when people see that you're doing something, they expect whatever you're doing will be changing the world. Which is a pretty cool position to be in - even if all you're doing is working with existing technologies. The exciting thing,as you pointed out in the article, is that you're raising the visibility of energy efficient building techniques in a way that the spokesman for a small north carolina homebuilding company never could.
People respect you, and want to know what you're doing.
Speaking of which, it'd be great to actually follow the progress you make on this - whether via blog or whatnot. (I know, who has time for blogs:-) Are you building it in silicon valley? (I'm in the Santa Cruz mountains off highway 9, and will be building a new (energy efficient!) house here within 5 years, so I'd like to know how it goes!)
Grovel grovel, thanks for all your hard work over the years and inspiring generations of hard core nerds!
Thats a great reply; thanks. One question though: is there any possibility that the calibration target chart could fade in either the sunlight or by reaction with the dust/atmosphere? (Just looking out the window at kids toys that have been bleached white...)
I did take some time to read that document, and I also took some time to look into its author. To quote this page:
Rev. Wells decided in 1976 to "devote my life to destroying Darwinism" since it is incompatible with the beliefs of the Unification Church (the "Moonies"). He subsequently earned two Ph.D.'s (in theology and in biology) as a preparation for battle. Wells has indicated elsewhere that he is an "old-earth" creationist. He agrees that speciation has happened, but disputes common descent, and wants an ongoing role for God. Please read some of the reviews and rebuttals of of Reverend Wells other book, and see for yourself how its possible for someone to have a PhD in biology and yet still not understand how science works. I'm not a biologist, so I won't attempt to rebut the page you linked to - but you owe us all the favor of continuing to research what he writes, if you're going to cite it as cannon.
I think what everyone fails to grasp here is that this is a design studio, not a chinese keyboard factory. These folks do industrial design for a living and really couldn't care less about whether they sell 100 or 10k of these. At the limited runs they're making (400 this year was it?) I guarantee that they're barely breaking even at that price. Custom tooling is expensive, even in.ru.
Frankly, I'll predict that in 10 years, reconfigurable keyboards will be the norm, and will be reasonably priced. It'll just take Apple to license their patents and place an order for 105,000,000 OLED keys... (Since I'm sure Dell won't be able to get the drivers right:-P)
I've been using HHKL2s for about 5 years now (Mac OS X) and I've got 5 of them for my various work and home machines. The key feel is so much better than the crap keyboards apple sells, its not even funny. I never use a numeric keypad, and for my money, caps lock should require to people to crawl under the desk and simultaneously turn their "LAUNCH" keys to enable it.
For the old timers, its feel is something like a mix between the old Mac II "battleship" keyboard and the Sun 3/60 keyboard (which I still prefer...)
Biggest downside is that its a USB 1.x device, and its downstream ports are too slow for data storage.
Has anyone got any comments on their "professional" model? Clickier?
The best way is gcc --save-temps; write your c code and then understand what gets generated and how it differs depending on what you write in a language you're already familiar with.
I spent 6 months recently working for a company that programmed mainly in C++ and visual basic (I'm a mac programmer, so I was a fish out of water there, which is ultimately why I left...) But the developers there didn't / couldn't / wouldn't understand assembler in any way shape or form. Without the high level debugger, they were lost. So when their app would crash, they'd be helpless to understand how.
I was appalled. I've spent 20 years debugging crashes and even though I don't speak x86 fluently, I can at least find my way around it. How do people that aren't able to read assembler ever able to ship quality products?
Of course, the best way to learn it is using an interactive assembler: go back in time to 1998 and use TMON Pro with MPW. With an 11 minute link time, you'll quickly learn that its easier to patch your bugs in assembler and continue execution, or write a little subroutine in "playmem" to do something, rather than terminate your app, make a small change, and relink.
I can't believe I'm bothering to reply to this AC...
http://saturn.jpl.nasa.gov/overview/index.cfm
Cassini-Huygens is an international collaboration between three space agencies. Seventeen nations contributed to building the spacecraft. The Cassini orbiter was built and managed by NASA's Jet Propulsion Laboratory. The Huygens probe was built by the European Space Agency. The Italian Space agency provided Cassini's high-gain communication antenna. More than 250 scientists worldwide are studying the data streaming back from Saturn on a daily basis.
--ob
I used to work at Apple, in the OS and frameworks groups.
There is a master "train" for a release; projects that don't change are "forwarded" to that train, meaning no source changes are required. When a project needs to be submitted for a change for the new release, a new "view" is created for its specific changes. Every few days, a build is produced, sometimes using previously compiled bits from the old "train", sometimes its a full world build (which can take several days) but otherwise building all the latest submissions.
Then there's a fairly labor intensive "integration" phase where the built bits are all put on a box and booted. If a "quicklook" QA process shows that the build is hoarked, the integrator goes and pesters the submitters of the latest project that was submitted and gets them to fix it. (Some percentage of the time, the new code has exposed a bug elsewhere, regardless, the project that is the proximal cause of the failure is rolled back to the previous revision, it anticipation that all the projects that need to rev be submitted at once.)
The whole thing is set up through symlinks via NFS, so if you want to see the latest version of any piece of code in the system (modulus those projects that are "locked down" for security issues) you can just get your release name, append the build number, and you've got the source code, symbol'd binaries and build log *for any release* at your fingertips.
When a new build comes out, you just do a clean install. It takes about two hours on the internal network, so typically you pull the disk image and slam it to a firewire drive, (usually, you can bum a disk with the image already grabbed from a teammate) and do a full install in 15 minutes. I can't imagine having to spend a day (as some other posted mentioned) setting up a machine...
Most projects have 3 or 4 contributors. In many cases, and entire framework is the responsibility of a single person (and he or she may actually own several small frameworks.) Lots of small projects produce cleaner interfaces that lead to fewer dependencies. (Of course there are dependencies, and circular ones, but these are kept to a minimum.) Projects are encouraged to use public API from other projects, rather than SPI or other project internals. If there's something useful enough for some other project to use, its first made into SPI for internal consumption, with the goal that developers will eventually be able to use it through a public API.
Most groups don't have dedicated QA by the way - the engineers are responsible for their code, and everyone is generally just very smart about what they're doing.
As to this start menu problem: the entire UI team is about 5 individuals, plus Steve Jobs and Scott Forstall - and they're likely to say "Thats fucking stupid, just do this" and boom(tm), the decision has been made the product ships, and life goes on.
Change the settings to "manually manage content" on the iPod and you'll be able to play everything on it on your friends computer. I had to ask an iPod engineer how to accomplish this feat, but it is doable. I don't know why the interface to it is so bad.
I wonder how much of "Mac easiest to hack" is due to the fact that WebKit is open source? Its got to be pretty easy to find exploits when you've got the source in front of you! And considering Darwin is open source, I'm surprised they weren't able to find a root exploit as well.
Many DVD rental places have the $250 disc cleaning machines and will buff a disc for you for a nominal fee.
Reuse is good and and environmental and all, but: How much is your time worth? How many hours of your time to set up one of these older machines would buy a newer machine? And if energy costs are a concern (and why not): how much more efficient would the "right machine" for the task be, given the costs? I've never understood the tendency of companies to cheat on hardware costs - making someone jump through dozens of hours of hoops is far more costly than just buying the right hardware.
I cancelled my NetFlix subscription because of their reliance on pop-under ads.
>> I have a MacBook, with the Apple remote. How do I jump to chapter 13 of a track? I hit "forward" 12 times. Why? Because some usability guru thought simplicity was more important than functions I use daily.
You would prefer a remote with a "Jump to track 13" button?
For a vintage kit from the same era, you might want to check out:
http://www.rbrobotics.com/
The kit was about $1000 for chasis and boards. Lots of discrete components here, lots of hackability. All that its lacking is a time machine so I can actually get a chance to work on the one I bought two years ago...
Seriously, I've tried using the visual studio tools and I can't believe how mind boggling unproductive I find them to be.
I mean, when you hit compile, it generates and spews out a command line to a little text window. Which is fine, but it doesn't bother to actually parse that data and present it in a meaningful way. You end up scrolling through dozens of warnings (if you're not compiling with the equivilent of -ferror) to find relevant errors.
Oh, and then there's deployment. I worked for a while with some folks that had a C++ application that talked with the Microsoft SQL database and IIS. Their "push" procedure involved remote desktop to the server, clicking buttons to take down the server, pointing it at the maintenance site, creating a new directory in the file explorer, naming it correctly and copying the existing database files to it, copying over the newly compiled bits, testing it in situ and finally pointing the server back to the live site.
This took them between 3 and 6 hours, every Friday night. I asked them why they can't just write a shell script (or dos shell script, whatever the hell windows has) and they said that it would take too long to develop that. Idiots.
But thats not what I'm here to rant at you about. I'm here to rant about Visual Studio. Why, if the OS is called Windows, am I only allowed to have one of them in my development environment? I never got the MDI thing, but I routinely, on Mac OS, have 20 source files open and visible. Why does Visual Studio insist on cramming them into one single pane? Gargh, its frustrating. Why can't the compiler take normal command line switches with meaningful names? Since we're talking about the "development ecosystem", why does the command.com shell so completely fail at being useful?
The debugger is even worse, hiding and showing things based on what it *thinks* I want to see. The only benefit it has over gdb on the command line is mixed assembly/source view, but at least with gdb I can quickly disassemble whatever I need to, not just where the PC is.
Can someone please describe what is so great about visual studio? I've heard other people say it, but I really don't see it. (Please compare and contrast to Eclipse and/or Xcode.)
(FWIW, I use Xcode to manage my projects and I do a lot of editing with the editor since its there, but I do all my debugging in gdb/emacs since Xcode's debugger sucked ass the last time I tried it...)
Steve, I'm sure the fuss is because when people see that you're doing something, they expect whatever you're doing will be changing the world. Which is a pretty cool position to be in - even if all you're doing is working with existing technologies. The exciting thing,as you pointed out in the article, is that you're raising the visibility of energy efficient building techniques in a way that the spokesman for a small north carolina homebuilding company never could.
:-) Are you building it in silicon valley? (I'm in the Santa Cruz mountains off highway 9, and will be building a new (energy efficient!) house here within 5 years, so I'd like to know how it goes!)
People respect you, and want to know what you're doing.
Speaking of which, it'd be great to actually follow the progress you make on this - whether via blog or whatnot. (I know, who has time for blogs
Grovel grovel, thanks for all your hard work over the years and inspiring generations of hard core nerds!
How does what happened under clinton make what Bush is doing fair or right? What clinton did is completely irrelevant.
Um, what does clinton have to do with bush?
Thats a great reply; thanks. One question though: is there any possibility that the calibration target chart could fade in either the sunlight or by reaction with the dust/atmosphere? (Just looking out the window at kids toys that have been bleached white...)
[on .. Leonardo da Vinci] And he invented the helicopter... that did... not... work. And so did I! Yeah. Did not work.
Or the 16 year old who's browser was supposed to be "up to 6 times faster"? What ever happened to this? http://developers.slashdot.org/developers/03/01/13 /1212253.shtml?tid=95
I think what everyone fails to grasp here is that this is a design studio, not a chinese keyboard factory. These folks do industrial design for a living and really couldn't care less about whether they sell 100 or 10k of these. At the limited runs they're making (400 this year was it?) I guarantee that they're barely breaking even at that price. Custom tooling is expensive, even in .ru.
Frankly, I'll predict that in 10 years, reconfigurable keyboards will be the norm, and will be reasonably priced. It'll just take Apple to license their patents and place an order for 105,000,000 OLED keys... (Since I'm sure Dell won't be able to get the drivers right :-P)
I've been using HHKL2s for about 5 years now (Mac OS X) and I've got 5 of them for my various work and home machines. The key feel is so much better than the crap keyboards apple sells, its not even funny. I never use a numeric keypad, and for my money, caps lock should require to people to crawl under the desk and simultaneously turn their "LAUNCH" keys to enable it.
For the old timers, its feel is something like a mix between the old Mac II "battleship" keyboard and the Sun 3/60 keyboard (which I still prefer...)
Biggest downside is that its a USB 1.x device, and its downstream ports are too slow for data storage.
Has anyone got any comments on their "professional" model? Clickier?
The best way is gcc --save-temps; write your c code and then understand what gets generated and how it differs depending on what you write in a language you're already familiar with.
I spent 6 months recently working for a company that programmed mainly in C++ and visual basic (I'm a mac programmer, so I was a fish out of water there, which is ultimately why I left...) But the developers there didn't / couldn't / wouldn't understand assembler in any way shape or form. Without the high level debugger, they were lost. So when their app would crash, they'd be helpless to understand how.
I was appalled. I've spent 20 years debugging crashes and even though I don't speak x86 fluently, I can at least find my way around it. How do people that aren't able to read assembler ever able to ship quality products?
Of course, the best way to learn it is using an interactive assembler: go back in time to 1998 and use TMON Pro with MPW. With an 11 minute link time, you'll quickly learn that its easier to patch your bugs in assembler and continue execution, or write a little subroutine in "playmem" to do something, rather than terminate your app, make a small change, and relink.
God I miss TMON.
http://saturn.jpl.nasa.gov/overview/index.cfm
Cassini-Huygens is an international collaboration between three space agencies. Seventeen nations contributed to building the spacecraft. The Cassini orbiter was built and managed by NASA's Jet Propulsion Laboratory. The Huygens probe was built by the European Space Agency. The Italian Space agency provided Cassini's high-gain communication antenna. More than 250 scientists worldwide are studying the data streaming back from Saturn on a daily basis.
--ob
I used to work at Apple, in the OS and frameworks groups.
There is a master "train" for a release; projects that don't change are "forwarded" to that train, meaning no source changes are required. When a project needs to be submitted for a change for the new release, a new "view" is created for its specific changes. Every few days, a build is produced, sometimes using previously compiled bits from the old "train", sometimes its a full world build (which can take several days) but otherwise building all the latest submissions.
Then there's a fairly labor intensive "integration" phase where the built bits are all put on a box and booted. If a "quicklook" QA process shows that the build is hoarked, the integrator goes and pesters the submitters of the latest project that was submitted and gets them to fix it. (Some percentage of the time, the new code has exposed a bug elsewhere, regardless, the project that is the proximal cause of the failure is rolled back to the previous revision, it anticipation that all the projects that need to rev be submitted at once.)
The whole thing is set up through symlinks via NFS, so if you want to see the latest version of any piece of code in the system (modulus those projects that are "locked down" for security issues) you can just get your release name, append the build number, and you've got the source code, symbol'd binaries and build log *for any release* at your fingertips.
When a new build comes out, you just do a clean install. It takes about two hours on the internal network, so typically you pull the disk image and slam it to a firewire drive, (usually, you can bum a disk with the image already grabbed from a teammate) and do a full install in 15 minutes. I can't imagine having to spend a day (as some other posted mentioned) setting up a machine...
Most projects have 3 or 4 contributors. In many cases, and entire framework is the responsibility of a single person (and he or she may actually own several small frameworks.) Lots of small projects produce cleaner interfaces that lead to fewer dependencies. (Of course there are dependencies, and circular ones, but these are kept to a minimum.) Projects are encouraged to use public API from other projects, rather than SPI or other project internals. If there's something useful enough for some other project to use, its first made into SPI for internal consumption, with the goal that developers will eventually be able to use it through a public API.
Most groups don't have dedicated QA by the way - the engineers are responsible for their code, and everyone is generally just very smart about what they're doing.
As to this start menu problem: the entire UI team is about 5 individuals, plus Steve Jobs and Scott Forstall - and they're likely to say "Thats fucking stupid, just do this" and boom(tm), the decision has been made the product ships, and life goes on.
specifically of BlueSunShirts.com... [now closed -gossi]. :-)
www.bluesunshirts.com/index2.php
seems to work though
Put down the bottle, Russ.
Change the settings to "manually manage content" on the iPod and you'll be able to play everything on it on your friends computer. I had to ask an iPod engineer how to accomplish this feat, but it is doable. I don't know why the interface to it is so bad.
How is that possibly off topic?