I just purchased a 12 in. PB 1ghz and am really enjoying it. My dev environment consists of:
emacs 21.3.5 w/JDEE (compiled natively it supports the mac UI... how cool is that!)
ant
jikes
postgres
tomcat 5
My previous environments were a p3-750 running win 2k and a Sun Blade 100 with the same development tools. I have to say that the PB is faster than both the Sun (by far) and the wintel box (not quite as much). As other posters have mentioned, RAM is an important factor.
I recommend this environment wholeheartedly, because not only can you use familar tools and take advantage of the unixy underpinnings of the OS, but you also have access to MS Office for sharing documents with those in the Windows world.
One of the things that saved my sanity when doing a DHTML UI was creating a log window that I could write messages, the contents of JS variables, DOM objects, etc. to. It isn't as good as a real debugger, but it helped out quite a bit. I created a JS class that supported two methods:
log = new Log(); log.log("blah"); log.dump(someObject);
The first method just prints out the specified message, the second recursively prints all of the attributes an object, since in JS they are really just hashes that you can traverse automatically with a for in in x loop. At least in IE, this let me inspect form elements, etc. as if they were native JS things. The log class could technically be a singleton, but since each instance writes to the same window, it really doesn't matter. I just instantiate a new Log object at the top of each document, and can then enable/disable it at will by typing a javascript:log.enable() command in the address bar.
I assume your students already will know how to program and want to learn the syntax and spirit of Java. For the syntax side of things, the first few chapters of the O'Reilly Java in a Nutshell will suffice, although the rest of the books is largely a recapitulation of the API documentation. This should be coupled with Bloch's excellent Effective Java for the "best practices" thing in that area. For understanding the spirit of Java and the best design principles, I have found that Coad's Java Design incerdibly insightful. These are definitely keeper books.
I have been waiting for this for quite a while and it is definitely worth it!
I am running a 17" iMac (800Mhz G4/256MB/Ge4 32MB) and the action is excellent, not choppy at all. I was worried that the performance of the game would leave people without a high-end machine in the dust, but everything seems pretty good so far.
Reuse is kind of like going to the library... maybe you will find what you want by going to some shelf that you *think* should have a "the definitive guide to my problem", but you are more likely to find that such a book doesn't exist and you have to be more creative.
A math parser?
Come on. This is one of the most elementary examples in writing a grammar. Maybe you won't find ready to #include source on the internet, but you can get some reuse from recapituating the proven examples.
So Google is deploying a SOAP interface to a very large scale system. Anybody know what kind of software they have supporting this? Is it a custom engine? SOAP4J? Heaven forbid, not ASP.NET!
and you'll be all set! Seriously, evn though gcc has its quirks (as several posters have mentioned), it should be sufficient for any task that you're doing with Borland C for DOS. Additionally you get all the basic dev tools (cvs, make, etc.) if your programs ever get beyond the one-off stage. Cygwin also comes with Python and Perl; handy for those tasks for which C is just too tedious.
In my experience there are two major areas in which you should expect problems with a VSS to CVS migration. First and foremost, expect to have problems as the team adjusts to the non-exclusive model of file checkout. Force them to internalize the mantra: UPDATE FIRST, THEN COMMIT. The second area in which to expect adjustment pains will be the lack of a good GUI tool. This will be most problematic for the non-techie types, but even the developers will need some adjustment. Let's face it: you can't get a much simpler client than VSS, and that is it's (perhaps only) strong suit. CVS is kind of stupid about handling binary files as well, but this is less of an issue.
On a final note, a previous poster recommended PVCS. Believe none of this. PVCS is complete trash; the client is slow, buggy and unstable.
Of course the GPL doesn't make any sense from a "business" perspective. Who would invest time and money creating a product that anyone else can redistribute at no cost?
But that's not the point.
What the GPL and free software enables is a strong service orientation. And I don't mean BS enterprises like printing manuals or tech support. Let's say I have a business selling POS terminals (or some other custom application). If there is a free version my overhead (and my customer's) are reduced from the get go. I don't spend capital investing in some third party software; I focus on the services and value that I add through configuration/integration/enhancement that my customer needs. The software is open; I can change it to do whatever it needs to be. My customer has complete control. I can redistribute my changes and enhancements to other customers, if I want to. So could my customer, for that matter. Chances are they won't, since they're not a software consulting shop. Ultimately it my expertise that I'm selling and free software is enabling. Exactly the reason I went into business for in the first place.
Microsoft is exclusively focused on selling software as product and an end unto itself, rather than focusing on the higher level services that it enables. This is why they hate free software.
You probably signed some kind of agreement when you were hired in which you agreed that all of your intellecutal output is thr property of your employer. So is your project worth your job? Meaning, have you developed such a kick-ass program that you can:
1. Turn it into an equally kick-ass business, i.e. something that can be marketed, sold, defended in lawsuits, supported, etc.;
2. Convert the bad vibes that you will acquire by betraying your current employer and stealing their clients not only into goodwill but also future revenue;
3. Accept the fact that you are transforming yourself from a "product" provider into a "service" provider; Unless your program is exploiting a previously undiscovered niche in the industry (highly unlikely), you are bound to have competition. If you could develop a program independently in six months, will probably provide the equivalent of two to three weeks of value to any customer who is worth the trouble. Think about it.
You are better off convincing your employer to do the following:
1. Subsidize your efforts. Get yourself paid to develop this software at work.
2. Release the software under some kind of open-source license. Your program will be free to compete in its chosen space, bringing kleos not only to yourself (as author) but also to your company (in terms of exposure as a forward thinking company, potential for new business as your program dominates in its area and is globally adopted, etc.) and the community in general.
3. Get a raise; you worked all kinds of overtime on the damn thing. You might as well get paid for it.
Look on this as an opportunity to increase the value of your own stock, rather than spin-off a new company.
My previous environments were a p3-750 running win 2k and a Sun Blade 100 with the same development tools. I have to say that the PB is faster than both the Sun (by far) and the wintel box (not quite as much). As other posters have mentioned, RAM is an important factor.
I recommend this environment wholeheartedly, because not only can you use familar tools and take advantage of the unixy underpinnings of the OS, but you also have access to MS Office for sharing documents with those in the Windows world.
One of the things that saved my sanity when doing a DHTML UI was creating a log window that I could write messages, the contents of JS variables, DOM objects, etc. to. It isn't as good as a real debugger, but it helped out quite a bit. I created a JS class that supported two methods:
// etc
log = new Log();
log.log("blah");
log.dump(someObject);
The first method just prints out the specified message, the second recursively prints all of the attributes an object, since in JS they are really just hashes that you can traverse automatically with a for in in x loop. At least in IE, this let me inspect form elements, etc. as if they were native JS things. The log class could technically be a singleton, but since each instance writes to the same window, it really doesn't matter. I just instantiate a new Log object at the top of each document, and can then enable/disable it at will by typing a javascript:log.enable() command in the address bar.
function Log() {
}
Log.prototype.enabled = false;
Log.prototype.enable = function() {
this.enabled = true;
this.logWindow = window.open("", "Log", "width=80,height=25,resizable,scrollbars=yes");
this.logWindow.document.open("text/plain");
this.logWindow.blur();
}
Log.prototype.disable = function() {
this.enabled = false;
this.logWindow.close();
}
Log.prototype.log = function(msg) {
if (this.enabled) {
this.logWindow.document.writeln(msg);
}
}
Log.prototype.dump = function() {
if (this.enabled) {
}
}
This is detailed in the O'Reilly Rhino Javascript book, which is an excellent resource for JS programming and DHTML.
I assume your students already will know how to program and want to learn the syntax and spirit of Java. For the syntax side of things, the first few chapters of the O'Reilly Java in a Nutshell will suffice, although the rest of the books is largely a recapitulation of the API documentation. This should be coupled with Bloch's excellent Effective Java for the "best practices" thing in that area. For understanding the spirit of Java and the best design principles, I have found that Coad's Java Design incerdibly insightful. These are definitely keeper books.
Does anybody know whatever became of this game? Many, many lost hours ...
I have been waiting for this for quite a while and it is definitely worth it!
I am running a 17" iMac (800Mhz G4/256MB/Ge4 32MB) and the action is excellent, not choppy at all. I was worried that the performance of the game would leave people without a high-end machine in the dust, but everything seems pretty good so far.
Nice job Bioware and MacSoft!
Reuse is kind of like going to the library ... maybe you will find what you want by going to some shelf that you *think* should have a "the definitive guide to my problem", but you are more likely to find that such a book doesn't exist and you have to be more creative.
A math parser?
Come on. This is one of the most elementary examples in writing a grammar. Maybe you won't find ready to #include source on the internet, but you can get some reuse from recapituating the proven examples.
Reuse != not using your brain
So Google is deploying a SOAP interface to a very large scale system. Anybody know what kind of software they have supporting this? Is it a custom engine? SOAP4J? Heaven forbid, not ASP.NET!
Run these two programs:
http://www.xemacs.org/Download/win32/setup.exe
http://www.cygwin.com/setup.exe
and you'll be all set! Seriously, evn though gcc has its quirks (as several posters have mentioned), it should be sufficient for any task that you're doing with Borland C for DOS. Additionally you get all the basic dev tools (cvs, make, etc.) if your programs ever get beyond the one-off stage. Cygwin also comes with Python and Perl; handy for those tasks for which C is just too tedious.
In my experience there are two major areas in which you should expect problems with a VSS to CVS migration. First and foremost, expect to have problems as the team adjusts to the non-exclusive model of file checkout. Force them to internalize the mantra: UPDATE FIRST, THEN COMMIT. The second area in which to expect adjustment pains will be the lack of a good GUI tool. This will be most problematic for the non-techie types, but even the developers will need some adjustment. Let's face it: you can't get a much simpler client than VSS, and that is it's (perhaps only) strong suit. CVS is kind of stupid about handling binary files as well, but this is less of an issue.
On a final note, a previous poster recommended PVCS. Believe none of this. PVCS is complete trash; the client is slow, buggy and unstable.
Of course the GPL doesn't make any sense from a "business" perspective. Who would invest time and money creating a product that anyone else can redistribute at no cost?
But that's not the point.
What the GPL and free software enables is a strong service orientation. And I don't mean BS enterprises like printing manuals or tech support. Let's say I have a business selling POS terminals (or some other custom application). If there is a free version my overhead (and my customer's) are reduced from the get go. I don't spend capital investing in some third party software; I focus on the services and value that I add through configuration/integration/enhancement that my customer needs. The software is open; I can change it to do whatever it needs to be. My customer has complete control. I can redistribute my changes and enhancements to other customers, if I want to. So could my customer, for that matter. Chances are they won't, since they're not a software consulting shop. Ultimately it my expertise that I'm selling and free software is enabling. Exactly the reason I went into business for in the first place.
Microsoft is exclusively focused on selling software as product and an end unto itself, rather than focusing on the higher level services that it enables. This is why they hate free software.
You probably signed some kind of agreement when you were hired in which you agreed that all of your intellecutal output is thr property of your employer. So is your project worth your job? Meaning, have you developed such a kick-ass program that you can:
1. Turn it into an equally kick-ass business, i.e. something that can be marketed, sold, defended in lawsuits, supported, etc.;
2. Convert the bad vibes that you will acquire by betraying your current employer and stealing their clients not only into goodwill but also future revenue;
3. Accept the fact that you are transforming yourself from a "product" provider into a "service" provider; Unless your program is exploiting a previously undiscovered niche in the industry (highly unlikely), you are bound to have competition. If you could develop a program independently in six months, will probably provide the equivalent of two to three weeks of value to any customer who is worth the trouble. Think about it.
You are better off convincing your employer to do the following:
1. Subsidize your efforts. Get yourself paid to develop this software at work.
2. Release the software under some kind of open-source license. Your program will be free to compete in its chosen space, bringing kleos not only to yourself (as author) but also to your company (in terms of exposure as a forward thinking company, potential for new business as your program dominates in its area and is globally adopted, etc.) and the community in general.
3. Get a raise; you worked all kinds of overtime on the damn thing. You might as well get paid for it.
Look on this as an opportunity to increase the value of your own stock, rather than spin-off a new company.