Domain: goingware.com
Stories and comments across the archive that link to goingware.com.
Comments · 613
-
A proposed project to help QA the linux kernelCheck out my proposal for making an easy to use Linux QA database at http://www.goingware.com/linuxquality/.
Want to help? Write crawford@goingware.com I know how to code in a variety of languages, but I don't know squat about designing a database schema.
I thought something like this would be helpful after I subscribed to the linux-kernel mailing list for a while to report a bug in 2.4.0 and work with the kernel developers to get it fixed. The bug got fixed, but I sure got a lot of mail and it was a little hard getting the fix nailed down.
Michael D. Crawford
GoingWare Inc -
A proposed project to help QA the linux kernelCheck out my proposal for making an easy to use Linux QA database at http://www.goingware.com/linuxquality/.
Want to help? Write crawford@goingware.com I know how to code in a variety of languages, but I don't know squat about designing a database schema.
I thought something like this would be helpful after I subscribed to the linux-kernel mailing list for a while to report a bug in 2.4.0 and work with the kernel developers to get it fixed. The bug got fixed, but I sure got a lot of mail and it was a little hard getting the fix nailed down.
Michael D. Crawford
GoingWare Inc -
Mailing List, Ask Me QuestionsJoing the ZooLib-Dev mailing list and also ask me questions.
There's very little traffic on the list yet because almost all of the people on it have been using ZooLib for a long time and don't need to ask questions (or they mail each other directly) - it's only recently been released as open source but it was a proprietary API for a long time.
But many of us are happy to answer questions, I know I am, and ZooLib author Andy Green is very helpful too. I try to field the questions as much as I can so he can concentrate on development of the library itself.
API docs are coming, they will start as guides to the sample code, and additional sample code with Howto's on the various features. A proper detailed API reference will probably be a while in coming but it's pretty easy to get around the source code in an IDE or class browser or maybe you can run doxygen on it - one thing I mean to do is process it with doxygen and upload the pages and a tarball to the ZooLib website.
And even if you don't plan to go cross-platform, it is in fact a nice API. I find it lovely to use. It makes multithreading your apps much easier for example, gives you nice high-level C++ class interfaces to TCP networking. If you don't plan to be cross-platform at all, you can use ZooLib without any proprocessor guards and freely intermix windows and ZooLib code.
Probably the hardest thing to figure out is the widget layout - the use of the ZPaneLocators. Widgets don't store their location in a member variable, whenever they need it they ask their pane locator where they are. Similarly buttons ask their pane locator for their highlight state.
You're free to store these things in member variables of the pane locator but you can also calculate it at runtime, and a common thing to do is to say "He's just below this pane" or "He's to the right of that pane" and recurse until you hit the top-left corner.
This makes adjustment for different text widths in localization or changing font size as a user preference automatic. If you change the width of the text in a button, just invalidate the window and everything will lay themselves out again.
Michael D. Crawford
GoingWare Inc -
Some Software Quality AdvocacyI've said it before, I'll say it again: I think it's very important that we should all read, and encourage others to read and participate in:
The Forum on Risks to the Public in Computers and Related Systems
While certainly all us programmers should be reading it, much of the material is accessible to anyone who knows how to use a computer, and so really should be read by anyone who uses computers for anything of importance or makes policy decisions that involve computers.
While the complexity of todays software systems make it unlikely that we'll ever have truly bug-free software, the situation can be a lot better than it is today. One thing that's needed is for the public to wake up and demand that software companies take responsiblity for their products, and to understand that they're being ripped off.
Someone who's working towards that end is Mark Minasi, the author of the book The Software Conspiracy:
There are no significant bugs in our released software that any significant number of users want fixed... The reason we come up with new versions is not to fix bugs. It's absolutely not. It's the stupidest reason to buy a new version I ever heard... And so, in no sense, is stability a reason to move to a new version. It's never a reason.
Also see my own essay The Cross-Platform Manifesto:-- Bill Gates
In the world I came from pursuits like software development were supposed to be clean and pure things, exercises to stimulate and enrich the mind and advance the cause of reason and promote the betterment of human existence.
The Cross-Platform Manifesto was really an early attempt at collecting some thoughts on the subject of how we could use cross-platform application frameworks to promote a better software industry and make life better for developers and end users. My much briefer and I think better stated discussion of this is found on the ZooLib at Freeing the Developer from OS Vendor Shackles.Instead the industry which appears to be the main driving force behind the tremendous recent growth of the world economy, especially the US economy, is in my opinion a cancer that is desperately in need of the surgeon's knife.
Michael D. Crawford
GoingWare Inc -
I Advocated Apple OS Engineers do Tech SupportWhen I was an OS engineer ("debug meister") at Apple (see my resume) I widely advocated that ALL of Apple's engineering staff spend about a week a year doing end-user tech support.
In general, this wasn't received with enthusiasm
;-> but you'd be suprised how much support it got.The particular thing that drove me to advocate this was that when I was Product Development Manager at Working Software, it was such a small company that at times we had no dedicated tech support, so I fielded anything that couldn't be handled by the nontechnical clerical staff, or when we were doing enough business to hire a support tech, we were also moving enough products I had to back her up because of the increased call volume.
The result was that I got immediate feedback on product quality and useabilty problems. If I shipped a product with a serious bug or that had some weird UI that the users didn't understand, about 200 people would call me up and let me know personally that I screwed up.
This did a lot for product quality, and although it was difficult to bear at times, I found it very rewarding that many customers would say "You're Michael Crawford? The guy in the about box?" and I'd say "Yeah." and they'd get all amazed.
Sometimes for kicks I'd have a user open the about box and say, "You see the guy's name there? That's me."
But when I was at Apple, I was one of perhaps 500 engineers involved in system software, and there were thousands of engineers, and our the closest customer service was in a different city, and most of it was in Texas (Apple is headquartered in Cupertino, California).
The closest that we came to contact with a real user was the occasional contact with a third party developer we had, but even that was usually handled by developer tech support.
Now I'm sure Apple felt they didn't want their expensive engineers devoting their time to customers problems - they have much cheaper staff for that, and probably better trained too. But what few people seemed to realize, until they heard my arguments on this point, was that Apple's OS Engineering staff, the whole engineering staff, needed this contact with the end user in order to be able to do their jobs well.
That's one of the reasons small companies are often able to come in and steal the market away from larger, well-established companies with deep pockets - a real awareness of user needs and user reactions to the product. (Also smaller companies have the ability to adapt more quickly to changing market conditions)
Michael D. Crawford
GoingWare Inc -
I did tech support then I got out - and up!There's a better life after tech support. Let me tell you about my experience.
When I interviewed for a programmer position at Microport Systems (then the vendor of SystemV/AT, Unix for the 286), I was asked by company president Chuck Hickey what was the best way to implement strcpy.
Well, even though I had been a manager (really a team leader) of a bunch of student programmers who wrote a Common LISP interpreter on the 8086 running DOS, it had been a few months and, well, I forgot.
Ol Chuck said "this is the kind of question that separates the men from the boys" and then he let me know I wasn't one of the men.
So I got tech support.
At least it was unix system administration tech support, and I got to learn a lot of stuff while I was there, and the engineers were friendly and helpful.
But there was some crazy shit like advertising new version numbers to match The Santa Cruz Operation's Xenix version number so we could compete (shades of Slackware anyone?) and then not telling the techs, so we all told the customers for a while that it must be a printing error, there was no such version.
And then there was the full page ad that said we'd have Berkeley Job Control in some upcoming version, and the customers all started calling and saying "Control-Z doesn't work, where's the job control?" and I'd ask the engineers, and the engineers said we had no intention of ever getting job control. When I told this to our marketing guy, he just said "Oh, OK", and took it out of the future ads.
What really killed me was the guy who staked his whole company on the FORTRAN compiler in our product. We had one, but it was buggy. After he'd delivered product to customers, it turned out it wasn't working right. Engineering kept promising they'd build a new one from source. But they were busy and never got around to it. So finally this guy told me he didn't hold it against me personally, but he was going out of business because he'd chosen to use Microport for his solution.
Well, I quit and went back to school again. But I was never very happy with school and eventually I got a programming and sysadmin job, a pretty low-level one where I'd take a whole month to write a 300 line image processing program. But I struggled, and eventually I did better for myself.
Now I have my own incorporated consulting business. Have a look at my resume too and scroll all the way down to where you see Microport and then look at all the stuff above it.
If you're working on tech support there's a few things I want you to do:
While you're with the company, use every opportunity you can to learn new skills, knowledge of new technologies, applications and operating systems.
On nights and weekends, study programming languages, or at least study system and network administration.
If you're going to do tech support for a while, then job-hop. You'll pick up a wide variety of skills at your different employers, even if it all has to be tech support.
And most of all, don't stay in tech support. It's a miserable existence. But it can be a good start on a much better career.
Michael D. Crawford
GoingWare Inc -
I did tech support then I got out - and up!There's a better life after tech support. Let me tell you about my experience.
When I interviewed for a programmer position at Microport Systems (then the vendor of SystemV/AT, Unix for the 286), I was asked by company president Chuck Hickey what was the best way to implement strcpy.
Well, even though I had been a manager (really a team leader) of a bunch of student programmers who wrote a Common LISP interpreter on the 8086 running DOS, it had been a few months and, well, I forgot.
Ol Chuck said "this is the kind of question that separates the men from the boys" and then he let me know I wasn't one of the men.
So I got tech support.
At least it was unix system administration tech support, and I got to learn a lot of stuff while I was there, and the engineers were friendly and helpful.
But there was some crazy shit like advertising new version numbers to match The Santa Cruz Operation's Xenix version number so we could compete (shades of Slackware anyone?) and then not telling the techs, so we all told the customers for a while that it must be a printing error, there was no such version.
And then there was the full page ad that said we'd have Berkeley Job Control in some upcoming version, and the customers all started calling and saying "Control-Z doesn't work, where's the job control?" and I'd ask the engineers, and the engineers said we had no intention of ever getting job control. When I told this to our marketing guy, he just said "Oh, OK", and took it out of the future ads.
What really killed me was the guy who staked his whole company on the FORTRAN compiler in our product. We had one, but it was buggy. After he'd delivered product to customers, it turned out it wasn't working right. Engineering kept promising they'd build a new one from source. But they were busy and never got around to it. So finally this guy told me he didn't hold it against me personally, but he was going out of business because he'd chosen to use Microport for his solution.
Well, I quit and went back to school again. But I was never very happy with school and eventually I got a programming and sysadmin job, a pretty low-level one where I'd take a whole month to write a 300 line image processing program. But I struggled, and eventually I did better for myself.
Now I have my own incorporated consulting business. Have a look at my resume too and scroll all the way down to where you see Microport and then look at all the stuff above it.
If you're working on tech support there's a few things I want you to do:
While you're with the company, use every opportunity you can to learn new skills, knowledge of new technologies, applications and operating systems.
On nights and weekends, study programming languages, or at least study system and network administration.
If you're going to do tech support for a while, then job-hop. You'll pick up a wide variety of skills at your different employers, even if it all has to be tech support.
And most of all, don't stay in tech support. It's a miserable existence. But it can be a good start on a much better career.
Michael D. Crawford
GoingWare Inc -
Please Read "Why You Should Use Encryption"While I guess this goes to show that it's not unbreakable (do you keep your laptop in a safe at night?) I think in general it gives good motivation for why you should read my page:
In the article, I try to discuss in as approachable and as convincing a way as I can why everyone, even your mom, even your kids should use cryptography.
Michael D. Crawford
GoingWare Inc -
It's important to own your own domain nameI discuss the critical importance of owning your own domain name in Market Yourself - Tips for High-Tech Consultants, giving this as the very reason.
I use Yahoo mail in my example but I think this proves my point.
Each individual email recipient on earth should have their own domain name.
That way, if your provider goes down - whether it's a web-based service like Yahoo or AltaVista, or an ISP service, or if you just move geographically and don't want to keep paying for connectivity you don't use anymore, it just takes a couple days for changes to your DNS to take effect and your back up.
I got my own domain name after my ISP was down for a week. And they've been bought out so many times it's amazing they still serve the old domain anymore.
The big pain for me now is going to be moving all the web pages that are hosted at my old ISP. Some of them are important ones that people have linked to from other sites. If I'd owned my own domain in the first place, there'd be no problem. Instead I'll put placeholders will META REFRESH tags in them to point at all the pages on the new sites and keep paying their bill another year or so.
Michael D. Crawford
GoingWare Inc -
It's important to own your own domain nameI discuss the critical importance of owning your own domain name in Market Yourself - Tips for High-Tech Consultants, giving this as the very reason.
I use Yahoo mail in my example but I think this proves my point.
Each individual email recipient on earth should have their own domain name.
That way, if your provider goes down - whether it's a web-based service like Yahoo or AltaVista, or an ISP service, or if you just move geographically and don't want to keep paying for connectivity you don't use anymore, it just takes a couple days for changes to your DNS to take effect and your back up.
I got my own domain name after my ISP was down for a week. And they've been bought out so many times it's amazing they still serve the old domain anymore.
The big pain for me now is going to be moving all the web pages that are hosted at my old ISP. Some of them are important ones that people have linked to from other sites. If I'd owned my own domain in the first place, there'd be no problem. Instead I'll put placeholders will META REFRESH tags in them to point at all the pages on the new sites and keep paying their bill another year or so.
Michael D. Crawford
GoingWare Inc -
Risks Forum; Why You Should Use EncryptionThe authors of the Carnivore meta-comments read like a veritable who's who among esteemed experts in computer security, reliability and public policy:
- Steven Bellovin, AT&T
- Matt Blaze, AT&T
- David Farber U of Pennsylvania
- Peter Neumann, SRI International
- Eugene Spafford, Purdue University CERIAS
And Peter Neumann I know very well in an online way, as he is the moderator of the Forum on Risks to the Public in Computers and Related Systems which discusses all kinds of topics in software reliability and security, and provides an ongoing archive of known software bugs.
It is also available on the Usenet News as comp.risks and I consider it required reading for anyone wishing to take themselves seriously as a programmer.
This means you.
Neumann also wrote the book Computer Related Risks which draws on material from the forum but discusses it in more depth.
He is also a frequent consultant to the government and military on computer reliability, security and computer policy as you can see from Neumann's home page.
He writes great puns too, which are often found added to Risks submissions.
Now for my contribution - I'd like to suggest you read my page Why You Should Use Encryption.
This page discusses in a way that I hope is clear, approachable and compelling, why everyone - even your mom, even your kids, should use encryption.
Michael D. Crawford
GoingWare Inc -
That's why I'm moving to MaineThat is among the reasons (the other being my wedding last summer to a Newfoundland woman) that I moved my consulting business to St. John's, Newfoundland and then bought a house in mid-coast Maine, near Rockland.
In Santa Cruz, California I was paying $1275 a month to rent a two bedroom half of a duplex. In St. John's, I rented a three bedroom two-story house for $500, and in Maine I'll be owning a four-bedroom home for a house payment of $799 - with an oversized two-car garage.
Michael D. Crawford
GoingWare Inc -
Please Read "Why You Should Use Encryption"This presents a very good opportunity for me to suggest that you read my web page Why You Should Use Encryption.
I'm sure it's self evident that people with sensitive business data should use encryption - or is it? How many businesspeople do you know who carry out complex business negotiations via email?
One client wanted me to deliver them the source code to their product via the Internet. I refused to deliver until they got PGP.
The point of the above page is that everyone should be using encryption - even for casual stuff, as the sudden presence of an occassional encrypted document suggests you're up to something, an example of traffic analysis - if you can't decrypt the messages, watch where the messages are going.
Even people who really should know better may not keep their computer secure. CIA Director John Deutch was caught browsing porn sites from a home computer that contained classified data. There are numerous well-documented security holes in web browsers by which an rogue website can read documents off your hard disk.
Let's hope he didn't have any encrypted filesystems mounted when he was gazing at those titties.
Michael D. Crawford
GoingWare Inc -
Why Recruiters Don't Serve Your NeedsI'd like to suggest that you stop using recruiters. Recruiters are your worst enemy.
Besides taking an enormous amount of money for doing very little real work (do you really think recruiters read a candidate's resume before they submit them?) many of them are either dishonest or even if they try to do the right thing they do not have the technical background to be able to separate the good candidates from the bad ones.
Your time will be much better spent if you find the candidates yourself. Perhaps you could hire a non-technical work-study student to use a search engine like Google to locate resumes for you. Then screen them and call them personally.
As a software consultant I cannot emphasize enough how much more carefully I pay attention to contacts from actual clients than I do from recruiters (or from potential employers, back when I was looking for perm jobs).
For my own policy about how and why I don't deal with recruiters, please read:
Important Note to Recruiters and Contract Agencies
I have intended for a long time to put up a page addressing how employers can find technical talent. I haven't done that yet, but in the meantime you can find out how I find clients and figure out the inverse to see how you can use the web to find programmers:
Market Yourself - Tips for High-Tech Consultants
Michael D. Crawford
GoingWare Inc -
Why Recruiters Don't Serve Your NeedsI'd like to suggest that you stop using recruiters. Recruiters are your worst enemy.
Besides taking an enormous amount of money for doing very little real work (do you really think recruiters read a candidate's resume before they submit them?) many of them are either dishonest or even if they try to do the right thing they do not have the technical background to be able to separate the good candidates from the bad ones.
Your time will be much better spent if you find the candidates yourself. Perhaps you could hire a non-technical work-study student to use a search engine like Google to locate resumes for you. Then screen them and call them personally.
As a software consultant I cannot emphasize enough how much more carefully I pay attention to contacts from actual clients than I do from recruiters (or from potential employers, back when I was looking for perm jobs).
For my own policy about how and why I don't deal with recruiters, please read:
Important Note to Recruiters and Contract Agencies
I have intended for a long time to put up a page addressing how employers can find technical talent. I haven't done that yet, but in the meantime you can find out how I find clients and figure out the inverse to see how you can use the web to find programmers:
Market Yourself - Tips for High-Tech Consultants
Michael D. Crawford
GoingWare Inc -
Why Recruiters Don't Serve Your NeedsI'd like to suggest that you stop using recruiters. Recruiters are your worst enemy.
Besides taking an enormous amount of money for doing very little real work (do you really think recruiters read a candidate's resume before they submit them?) many of them are either dishonest or even if they try to do the right thing they do not have the technical background to be able to separate the good candidates from the bad ones.
Your time will be much better spent if you find the candidates yourself. Perhaps you could hire a non-technical work-study student to use a search engine like Google to locate resumes for you. Then screen them and call them personally.
As a software consultant I cannot emphasize enough how much more carefully I pay attention to contacts from actual clients than I do from recruiters (or from potential employers, back when I was looking for perm jobs).
For my own policy about how and why I don't deal with recruiters, please read:
Important Note to Recruiters and Contract Agencies
I have intended for a long time to put up a page addressing how employers can find technical talent. I haven't done that yet, but in the meantime you can find out how I find clients and figure out the inverse to see how you can use the web to find programmers:
Market Yourself - Tips for High-Tech Consultants
Michael D. Crawford
GoingWare Inc -
Read alt.computer.consultants.moderatedPlease read alt.computer.consultants.moderated on the Usenet News. You will certainly find it very helpful.
Also see my web pages:
Best of Luck,
Michael D. Crawford
GoingWare Inc -
Read alt.computer.consultants.moderatedPlease read alt.computer.consultants.moderated on the Usenet News. You will certainly find it very helpful.
Also see my web pages:
Best of Luck,
Michael D. Crawford
GoingWare Inc -
My work at Live Picture was mostly debuggingFirst, for some background please see my recent post Live Picture Makes PShop Looks Like a Kids Toy
I cannot imagine what you could be talking about, Live Picture being slow. Compared to the competition, it is blazingly fast. You could work with much larger files on much slower machines with less memory than has ever been possible with Photoshop or GIMP. Yes, in part it gains this speed by rendering only at screen resolution and deferring all time consuming processes until all the edits are done and you build to a final tiff file.
But this required incredible sophistication in the program.
I probably should clarify it in my resume as you really can't see what I actually did on Live Picture, but I didn't write the thing - almost all the work I did on it was debugging with a little bit of performance tuning. In particular, I fixed bugs towards the end of the 2.6 release and then I did all the engineering in the 2.6.1 release pretty much by myself, entirely debugging a codebase of 70 MB of C++ source code. Yes, 70 megabytes.
If you think intel hasn't done anything amazing I suggest you compare a Xeon to a 4004. Mistakes do happen, the fact is even for all of Intels mistakes the errors in hardware are much rarer than errors in software.
Why was it that Intel got all the heat for the bugs in their chips but Microsoft doesn't? Why should software be held to lower standards than harware?
While Live Picture was a very sophisticated product, I feel the company was poorly managed. Please see my resignation from Live Picture.
Michael D. Crawford
GoingWare Inc -
Take Responsibility for Your CodeI want to assert very firmly that the above was not a troll. I meant it very seriously and it is something that I have been discussing and posting widely on newsgroups and mailing lists for years.
I was close friends with a carpenter when I was younger, and he told me that he arrived at a new job site one day and found the following sign posted at the entrance:
If you don't take pride in your work you have no reason to be here.
This was back in my bad old days of being a college dropout, hungry with no idea what I was going to do for a career. I told him I thought that would be a terrible place to work, the boss would always be bugging you to work harder.But my friend thought it was great and said he wished more construction companies would hold such high standards. It happened that this friend took great pains to always learn new skills, and he spent a great deal of money on tools, and always did his best to always have, not just the right tool for the job, but the most obscure tools right on hand so there'd be no time wasted running to the hardware store or doing it a more difficult way.
And guess what? My friend was consistently among the highest paid carpenters for his level of experience. I haven't spoken to him in years but last I heard he's gone back to school because he wants to be a high-energy physicist. (This same fellow taught himself to program in x86 assembly after he bought a 486. I think it says something about his intellect and style that he chose to program in such a low-level language from the very start because it would be the fastest.)
I believe in having the best tools for the software job too, and by this I mean not the machine - a fast CPU is handy but doesn't help that much; what does help is my personal tools - the skills, experience and insight. To that end I work hard to study and sharpen my skills.
I spoke about that here just a couple days ago in Self-Training is Vitally Important as part of the discussion on What's the Best Way to Retain Trained Employees?
I also discuss it in my article Study Fundamentals Not APIs, OSes, or Tools. The gist of that article is that while you must study particular apis or tools to get work done, you shouldn't concentrate on or dive deeply into them but work to improve basic skills that will serve you well on any job.
Perhaps one of the problems these days is the overemphasis on APIs and the lack of emphasis on the basics, like good coding style and efficiency. Two people who know a given API equally well will get dramatically different results if one of them is well-grounded in algorithm analysis as well as having a good understanding of how computers actually work.
My comment about assembly code wasn't meant to say we should all start implementing our products in it. Rather, we should all learn and write some, and do some work with hand-tuning assembly code so that we have a good grasp of what the computer is doing when we write higher level code. Two books that discuss this pretty well are Gary Kacmarcik's Optimizing PowerPC Code and Michael L. Schmit's Pentium Processor Optimization Tools.
While they emphasize assembly code they should give you enough insight into the actual functioning of your computer that it should make your higher-level programming more efficient. And I do mean to say that your overall code will be more efficient on any processor, not that you should hand-tune it for one particular processor at the expense of another as someone here suggested would be the result.
A lot of people in this thread say the reason things have gotten so bad is because of pressure from marketing, management, clients or customers to add features and ship in a hurry. Yes, I acknowledge that such pressure exists and while they share responsibility you cannot blame them because that is their nature, much like the alligator who ate the frog after offering it a ride across the stream. (Frog? But frogs can swim)?
I've been in this business 13 years and there has always been marketing pressure but code quality has not always been so bad.
The quality and efficiency of your product is ultimately your responsibility as an architect and implementor. This is the case whether you're working in a well-funded dot-com or you're writing free software when you get the spare time.
At every step of the way in your software development process, you make choices. All too often we (and I do include myself) take the easy way out and write bad or inefficient code. It is a far better life to live if we strive for excellence in our products, and to do so we must strive for excellence with every choice we make in our software development.
I hope very much for the success of Linux and Free Software in general, but I think that it suffers overall from a severe quality problem. You may find this tolerable because you are a developer, but I'm a developer who has used lots of systems and personally I think Linux sucks as a development environment. It is no where near where it could be taken seriously as a desktop environment.
Now before you curse me for criticising, you should know that I run Linux on two Pentium III machines (Slackware) and I'm going to add LinuxPPC to my Mac soon. This is, in part, because I want to work to make it better. But part of the way I am going to work to make it better, isn't just fixing things directly but also advocating that everyone should take responsibility for their code and make it the very best that it can be.
My final word in this post is that if you want to get a good start on improving the quality of your work, read the Forum on Risks to the Public in Computers and Related Systems also available on the Usenet News as comp.risks
Risks is a very well-moderated list that is frequented by some very serious and experienced experts on computer reliability, safety, fault-tolerance and public policy. But it is also often funny as your just as likely to see the latest UI bug in Word next to a problem with the control system in some nuclear power plant. It will give you a great deal more respect for the problems with computer code but there is also a great deal of discussion as to what can be done about it.
Michael D. Crawford
GoingWare Inc -
I am in fact a developer, here's my resumeWell, are you a developer?
I'm typing this from my workstation at my client's office, a web application company (I've clocked out). I'm using whatever Netscape came from the Debian site when I updated my software on Monday when I started.
Read about my laptop which was my main development machine for most of the last year. It boots NT, Slackware and BeOS.
You can read my resume - note the long list of products I've shipped, and keep in mind I haven't been keeping that list up to date. See the long list of projects I've done in the two and a half years I've been a consultant.
Note that among the jobs I've held was Senior Engineer at A Big Fruit Company where I held the role of "Debug Meister" - I did low-level debugging and in fact performance tuning of the Mac operating system.
When a tester found that an application would crash under a new system build and they didn't understand what component was at fault, it came to my team (Traditional OS Integration, formerly known as the Blue Meanies). We would track down the bug and assign it to the right engineer or fix it ourselves.
Note that sometimes, probably half the time, the bug was due to a third-party app bug, and we determined this purely by running MacsBug, an assembly level debugger, inside the app and system software. We had the entire Mac OS source code at our disposal but this wasn't usually readily available when you were visiting a crashed Mac at a tester's cube so you just had to know your MacBug.
I use and contribute to open source. My latest effort was aiding the author of the ZooLib cross-platform application framework in releasing his library under the MIT License; I worked with Andy Green for a year to test his code by developing a product with it and led a beta test of developers who also developed products with it.
I found ZooLib to be an incredibly enlightening example of well-architected, efficient and compact code for what it does. Just using it and reading the source code increased my own abilities as a programmer and architect tremendously.
You can read some of my thoughts on the business and technique of programming at GoingWare's Bag of Programming Tips
Linux is better than most as far as efficiency is concerned, but don't get me started about reliability and ease of use.
As for what I think is a well engineered OS, try the BeOS but you don't want to get involved with the company.
Read why I think developers need to take back control of their lives from operating systems vendors and how I think they ought to do it. If you really want the full-bore opinion, read The Cross-Platform Manifesto
So yes, I am in fact a developer, thank you. It's just that I maintain high standards and I like to encourage others to do so as well.
Michael D. Crawford
GoingWare Inc -
I am in fact a developer, here's my resumeWell, are you a developer?
I'm typing this from my workstation at my client's office, a web application company (I've clocked out). I'm using whatever Netscape came from the Debian site when I updated my software on Monday when I started.
Read about my laptop which was my main development machine for most of the last year. It boots NT, Slackware and BeOS.
You can read my resume - note the long list of products I've shipped, and keep in mind I haven't been keeping that list up to date. See the long list of projects I've done in the two and a half years I've been a consultant.
Note that among the jobs I've held was Senior Engineer at A Big Fruit Company where I held the role of "Debug Meister" - I did low-level debugging and in fact performance tuning of the Mac operating system.
When a tester found that an application would crash under a new system build and they didn't understand what component was at fault, it came to my team (Traditional OS Integration, formerly known as the Blue Meanies). We would track down the bug and assign it to the right engineer or fix it ourselves.
Note that sometimes, probably half the time, the bug was due to a third-party app bug, and we determined this purely by running MacsBug, an assembly level debugger, inside the app and system software. We had the entire Mac OS source code at our disposal but this wasn't usually readily available when you were visiting a crashed Mac at a tester's cube so you just had to know your MacBug.
I use and contribute to open source. My latest effort was aiding the author of the ZooLib cross-platform application framework in releasing his library under the MIT License; I worked with Andy Green for a year to test his code by developing a product with it and led a beta test of developers who also developed products with it.
I found ZooLib to be an incredibly enlightening example of well-architected, efficient and compact code for what it does. Just using it and reading the source code increased my own abilities as a programmer and architect tremendously.
You can read some of my thoughts on the business and technique of programming at GoingWare's Bag of Programming Tips
Linux is better than most as far as efficiency is concerned, but don't get me started about reliability and ease of use.
As for what I think is a well engineered OS, try the BeOS but you don't want to get involved with the company.
Read why I think developers need to take back control of their lives from operating systems vendors and how I think they ought to do it. If you really want the full-bore opinion, read The Cross-Platform Manifesto
So yes, I am in fact a developer, thank you. It's just that I maintain high standards and I like to encourage others to do so as well.
Michael D. Crawford
GoingWare Inc -
I am in fact a developer, here's my resumeWell, are you a developer?
I'm typing this from my workstation at my client's office, a web application company (I've clocked out). I'm using whatever Netscape came from the Debian site when I updated my software on Monday when I started.
Read about my laptop which was my main development machine for most of the last year. It boots NT, Slackware and BeOS.
You can read my resume - note the long list of products I've shipped, and keep in mind I haven't been keeping that list up to date. See the long list of projects I've done in the two and a half years I've been a consultant.
Note that among the jobs I've held was Senior Engineer at A Big Fruit Company where I held the role of "Debug Meister" - I did low-level debugging and in fact performance tuning of the Mac operating system.
When a tester found that an application would crash under a new system build and they didn't understand what component was at fault, it came to my team (Traditional OS Integration, formerly known as the Blue Meanies). We would track down the bug and assign it to the right engineer or fix it ourselves.
Note that sometimes, probably half the time, the bug was due to a third-party app bug, and we determined this purely by running MacsBug, an assembly level debugger, inside the app and system software. We had the entire Mac OS source code at our disposal but this wasn't usually readily available when you were visiting a crashed Mac at a tester's cube so you just had to know your MacBug.
I use and contribute to open source. My latest effort was aiding the author of the ZooLib cross-platform application framework in releasing his library under the MIT License; I worked with Andy Green for a year to test his code by developing a product with it and led a beta test of developers who also developed products with it.
I found ZooLib to be an incredibly enlightening example of well-architected, efficient and compact code for what it does. Just using it and reading the source code increased my own abilities as a programmer and architect tremendously.
You can read some of my thoughts on the business and technique of programming at GoingWare's Bag of Programming Tips
Linux is better than most as far as efficiency is concerned, but don't get me started about reliability and ease of use.
As for what I think is a well engineered OS, try the BeOS but you don't want to get involved with the company.
Read why I think developers need to take back control of their lives from operating systems vendors and how I think they ought to do it. If you really want the full-bore opinion, read The Cross-Platform Manifesto
So yes, I am in fact a developer, thank you. It's just that I maintain high standards and I like to encourage others to do so as well.
Michael D. Crawford
GoingWare Inc -
I am in fact a developer, here's my resumeWell, are you a developer?
I'm typing this from my workstation at my client's office, a web application company (I've clocked out). I'm using whatever Netscape came from the Debian site when I updated my software on Monday when I started.
Read about my laptop which was my main development machine for most of the last year. It boots NT, Slackware and BeOS.
You can read my resume - note the long list of products I've shipped, and keep in mind I haven't been keeping that list up to date. See the long list of projects I've done in the two and a half years I've been a consultant.
Note that among the jobs I've held was Senior Engineer at A Big Fruit Company where I held the role of "Debug Meister" - I did low-level debugging and in fact performance tuning of the Mac operating system.
When a tester found that an application would crash under a new system build and they didn't understand what component was at fault, it came to my team (Traditional OS Integration, formerly known as the Blue Meanies). We would track down the bug and assign it to the right engineer or fix it ourselves.
Note that sometimes, probably half the time, the bug was due to a third-party app bug, and we determined this purely by running MacsBug, an assembly level debugger, inside the app and system software. We had the entire Mac OS source code at our disposal but this wasn't usually readily available when you were visiting a crashed Mac at a tester's cube so you just had to know your MacBug.
I use and contribute to open source. My latest effort was aiding the author of the ZooLib cross-platform application framework in releasing his library under the MIT License; I worked with Andy Green for a year to test his code by developing a product with it and led a beta test of developers who also developed products with it.
I found ZooLib to be an incredibly enlightening example of well-architected, efficient and compact code for what it does. Just using it and reading the source code increased my own abilities as a programmer and architect tremendously.
You can read some of my thoughts on the business and technique of programming at GoingWare's Bag of Programming Tips
Linux is better than most as far as efficiency is concerned, but don't get me started about reliability and ease of use.
As for what I think is a well engineered OS, try the BeOS but you don't want to get involved with the company.
Read why I think developers need to take back control of their lives from operating systems vendors and how I think they ought to do it. If you really want the full-bore opinion, read The Cross-Platform Manifesto
So yes, I am in fact a developer, thank you. It's just that I maintain high standards and I like to encourage others to do so as well.
Michael D. Crawford
GoingWare Inc -
My SlackWare Laptop Page and why Compaq SucksI installed NT, BeOS (full version - 4.5.2 not the free version yet) and Slackware Linux on my Compaq 1800T Presario Laptop
It works pretty well software-wise, but two basic problems. NT4 doesn understand hard drives larger than 8 GB when you run its installer CD, with the unfortunate result that it ate my windows 98 installation that came preinstalled. Had I to do over again, I would have done a Norton Ghost backup image before trying anything.
NT4 does work with the large hard disk once you install the service pack and you can resize the partition with System Commander, but then the Emergency Repair disk process won't work. Someone in a newsgroup told me how to deal with this but I didn't understand it and would like to know how to do an emergency repair while booting of a CD that has already had the service pack applied, and that will install files with the service pack applied also.
I got the accellerated X server to work at first but lost my XF86Config after the hard drive consumption.
The happy news is that the BeOS recovered most of my windows data files.
The other issue is that the hardware has been unreliable. There is a fragile ribbon cable in the DVD drive that gets creased when you push the tray back in and jams it; sometimes it sticks the drive shut and you have to pry it open with a paper clip.
Also sometimes some random key will refuse to type for a few days and you have to keep banging on it to get it to type.
Finally, the connection between the power adapter and the socket on the laptop became unreliable so it wouldn't reliably charge. At first it would work if you fiddled with it and then left it sitting in one position during use, but this prevented you from using it for long on your lap.
Eventually it failed entirely and I needed to send it in for repair. But I was on an extended visit to Canada and even though Compaq has a Canadian subsidiary with Canadian service, this was a U.S. model purchased in the U.S and they wouldn't service it in Canada. They also wouldn't send the shipping container to Canada, or ship it back to Canada.
The end result was, because this was my main development machine and my business ground to a halt when the laptop failed, I ended up buying a custom built desktop machine from all standard OEM components.
I specifically wanted the ability to replace any failed part in the desktop myself from parts I could readily get at a computer store - you can usually do this with PC's bought at a "screwdriver shop" but not necessarily a name brand desktop PC, not just because you might void the warranty but because they use nonstandard parts that don't allow for OEM replacements that will fit.
I got compaq to send a replacement power adapter to my dad in Washington state and he expressed it to me in Canada - at about the cost of buying a brand new adapter - and with this, if I had my wife adjust it (with her steadier hands) we could get it to charge. This allowed me to recover my work from the laptop so I could install whatever files weren't backed up on my new desktop machine.
Then I waited about two months to fly home to the United states for Thanksgiving, where I arranged for compaq to send a shipping box so I could express the laptop in for warranty repair. I think they said they'd install a new system board, although they could just solder on a new plug.
They promised 7-day turnaround on the repair and free express shipping both ways. I flew to another state for some contract work so when my parents get the laptop back they'll have to forward it to me at our expense.
Thanks Compaq!
Michael D. Crawford
GoingWare Inc -
The Valley is a Harsh MistressI mentioned this in another reply, but I'd like to emphasize something I wrote that I feel is pertinent - even having a shipping product, even having investment, even going public doesn't prevent a company from getting in trouble because of bad business decisions.
Sometimes those decisions are forced on a company against the wishes of even the senior management by the stockholder, venture capitalists, or the perceived interests of wall street.
Please read:
The Valley is a Harsh Mistress
Michael D. Crawford
GoingWare Inc -
Live Picture Makes PShop Look Likes a Kids ToyYou'll see from my resume that I'm biased, but Live Picture beat the crap out of Photoshop for years.
Unfortunately the company was poorly managed - one major investor and for a while the CEO was former Apple President John Sculley. I discuss this in:
The Valley is a Harsh Mistress
which I'd suggest is good reading for anyone thinking of starting a company, or working at a startup.
But anyway, back in 1996 or so Live Picture 2.5 could open multiple 200 megabyte images and composite them together in sophisticated ways on a 68040 Mac with 64 MB of memory or less - with photoshop you need twice as much physical ram as your open files plus a scratch disk also.
With Live Picture, the response was always snappy. Just try opening a 200 MB image in Photoshop and rotate it two degrees. Go have a coffee. In Live Picture, you see the results now and can continue working.
Yes, there is a slow "build" process to save the end result to a TIFF at the end of the day but this can be run unattended, for example overnight and in a batch process.
Further, with Photoshop there's only one chance at undo. With Live Picture, it had essentially infinite undo.
The need to compete with Live Picture is why they added layers to Photoshop.
Photoshop does the job well, admittedly, but it does it in a simple way, through brute force. Live Picture used incredibly sophisticated algorithms and very deeply complex code. It was my job to do the engineering for the Live Picture 2.6.1 release, which was entirely a debug release - I was working with 70 megabytes of C++ code that took over an hour to compile on a Mac 8500/150.
You might also want to read my resignation from Live Picture.
Michael D. Crawford
GoingWare Inc -
Live Picture Makes PShop Look Likes a Kids ToyYou'll see from my resume that I'm biased, but Live Picture beat the crap out of Photoshop for years.
Unfortunately the company was poorly managed - one major investor and for a while the CEO was former Apple President John Sculley. I discuss this in:
The Valley is a Harsh Mistress
which I'd suggest is good reading for anyone thinking of starting a company, or working at a startup.
But anyway, back in 1996 or so Live Picture 2.5 could open multiple 200 megabyte images and composite them together in sophisticated ways on a 68040 Mac with 64 MB of memory or less - with photoshop you need twice as much physical ram as your open files plus a scratch disk also.
With Live Picture, the response was always snappy. Just try opening a 200 MB image in Photoshop and rotate it two degrees. Go have a coffee. In Live Picture, you see the results now and can continue working.
Yes, there is a slow "build" process to save the end result to a TIFF at the end of the day but this can be run unattended, for example overnight and in a batch process.
Further, with Photoshop there's only one chance at undo. With Live Picture, it had essentially infinite undo.
The need to compete with Live Picture is why they added layers to Photoshop.
Photoshop does the job well, admittedly, but it does it in a simple way, through brute force. Live Picture used incredibly sophisticated algorithms and very deeply complex code. It was my job to do the engineering for the Live Picture 2.6.1 release, which was entirely a debug release - I was working with 70 megabytes of C++ code that took over an hour to compile on a Mac 8500/150.
You might also want to read my resignation from Live Picture.
Michael D. Crawford
GoingWare Inc -
Live Picture Makes PShop Look Likes a Kids ToyYou'll see from my resume that I'm biased, but Live Picture beat the crap out of Photoshop for years.
Unfortunately the company was poorly managed - one major investor and for a while the CEO was former Apple President John Sculley. I discuss this in:
The Valley is a Harsh Mistress
which I'd suggest is good reading for anyone thinking of starting a company, or working at a startup.
But anyway, back in 1996 or so Live Picture 2.5 could open multiple 200 megabyte images and composite them together in sophisticated ways on a 68040 Mac with 64 MB of memory or less - with photoshop you need twice as much physical ram as your open files plus a scratch disk also.
With Live Picture, the response was always snappy. Just try opening a 200 MB image in Photoshop and rotate it two degrees. Go have a coffee. In Live Picture, you see the results now and can continue working.
Yes, there is a slow "build" process to save the end result to a TIFF at the end of the day but this can be run unattended, for example overnight and in a batch process.
Further, with Photoshop there's only one chance at undo. With Live Picture, it had essentially infinite undo.
The need to compete with Live Picture is why they added layers to Photoshop.
Photoshop does the job well, admittedly, but it does it in a simple way, through brute force. Live Picture used incredibly sophisticated algorithms and very deeply complex code. It was my job to do the engineering for the Live Picture 2.6.1 release, which was entirely a debug release - I was working with 70 megabytes of C++ code that took over an hour to compile on a Mac 8500/150.
You might also want to read my resignation from Live Picture.
Michael D. Crawford
GoingWare Inc -
Try AltaVista, Google's Warez and Crackz engineAltaVista provides a warez and crackz search engine you might find handy.
Modify the search terms to include the app you're looking for but include several others to be sure you've got a crackz site.
I discuss this in Modern Technology and the Death of Copyright
Yours,
Michael D. Crawford
GoingWare Inc -
Market Yourself - Tips for High Tech ConsultantsHear hear!
I've been a consultant since April 1, 1998. I was hating life for years before that, but my life as a consultant is rapidly closing in on the longest job I've held with one company - my own.
Speaking as one company to another - here's everything I know about finding clients - or everything I knew at the time I wrote it, it could use some updating:
Market Yourself - Tips for High-Tech Consultants
And for everyone to read - you ever deal with those pesky headhunters?
Important Note to Recruiters and Contract Agencies
Michael D. Crawford
GoingWare Inc -
Market Yourself - Tips for High Tech ConsultantsHear hear!
I've been a consultant since April 1, 1998. I was hating life for years before that, but my life as a consultant is rapidly closing in on the longest job I've held with one company - my own.
Speaking as one company to another - here's everything I know about finding clients - or everything I knew at the time I wrote it, it could use some updating:
Market Yourself - Tips for High-Tech Consultants
And for everyone to read - you ever deal with those pesky headhunters?
Important Note to Recruiters and Contract Agencies
Michael D. Crawford
GoingWare Inc -
Self-training is vitally importantWhile a little off-topic, some of you might be sitting around wondering how best to convince your boss to give you some training.
While it is often in your employer's best interests to train you, and you should evaluate opportunities for training when selecting a new job, don't ever allow yourself to lapse into the belief that all of your training is your employer's responsibility.
At the very best, your employer will train you for what is required for you to perform your current job, or to allow your company to take on tasks that no one knows how to do yet. You won't be trained in things that will allow you to advance out of your current rank within the company, to find a better job at a new company - or importantly, to recover from losing your job.
Think you can't be fired? Well, maybe so. But your company could tank or lose enough money you have to be laid off. Always be prepared for this.
As a consultant, I keep canceled checks and receipts for technical books that I purchase for my own self-training. Most of my training comes from reading these books, websites on programming, participating in newsgroups on programming topics of interest to my work at hand or future work I'd like to do, and contributing to open source projects like the ZooLib cross-platform application framework.
As a self-employed businessperson, I can deduct my technical books as a business expense, so I know how much I spend each year on my books. In 1999, I spent about $750 on technical books alone, in 1998 I spent about $250.
You should spend a significant amount of your free time when you're away from work doing self training. Otherwise you may find that your skills are regarded as out of date and you're not able to get a job, or you cannot get a job with pay appropriate to your level of experience - fifteen years of experience in a language no one uses anymore won't get you anywhere, but fifteen years of experience as a programmer where you've picked up a new language and a few new API's each year and you'll be very salable.
Also see my advice Study Fundamentals not APIs, OSes or Tools.
Michael D. Crawford
GoingWare Inc -
Market Yourself - Tips for High-Tech ConsultantsWant to telecommute? I've worked at home since April '98 as a software consultant.
No, this is not spam telling you how to get rich quick stuffing envelopes.
There's more to it, but one of the essential things you need to know is how to find clients. It's easy to do, using the web. Please read:
Market Yourself - Tips for High-Tech Consultants
A business tips from GoingWare's Bag of Programming Tricks. You'll find other helpful articles there on the business and technique of computer programming.
-
Market Yourself - Tips for High-Tech ConsultantsWant to telecommute? I've worked at home since April '98 as a software consultant.
No, this is not spam telling you how to get rich quick stuffing envelopes.
There's more to it, but one of the essential things you need to know is how to find clients. It's easy to do, using the web. Please read:
Market Yourself - Tips for High-Tech Consultants
A business tips from GoingWare's Bag of Programming Tricks. You'll find other helpful articles there on the business and technique of computer programming.
-
Market Yourself - Tips for High-Tech ConsultantsWant to telecommute? I've worked at home since April '98 as a software consultant.
No, this is not spam telling you how to get rich quick stuffing envelopes.
There's more to it, but one of the essential things you need to know is how to find clients. It's easy to do, using the web. Please read:
Market Yourself - Tips for High-Tech Consultants
A business tips from GoingWare's Bag of Programming Tricks. You'll find other helpful articles there on the business and technique of computer programming.
-
Freeing the Developer from OS Vendor ShacklesOperating systems vendors invest a great deal of energy in getting applications developers to code products to the native API of the OS.
The result is that it is very difficult for the developer to bring the product out on a competing platform, and it discourages users from moving to a different OS when they feel the vendor isn't serving their needs (because they can't get the solutions to their problems).
If the developer doesn't want to deal with the OS vendor anymore, he's really got a problem - either suffer under the vendor's thumb, or make a great deal of personal sacrifice to move to a different operating system.
I was sick of Apple so I wrote I'm worried about my future. That's why I'm a Be developer.
And in fact I shipped (and still do support) on of the first commercial applications for the BeOS, Spellswell from Working Software.
Nothing Be ever did made any sense, and while there are individuals at the company that I regard highly, on the whole I felt the company to be uniquely unresponsive and incompetent.
And just when they were showing some promise of shipping enough BeOS installations that I had some hope of making more than the measly couple hundred bucks I'd earned in royalties in the three years I'd been working on Spellswell, they announced a "change in focus" and said they weren't going to support the desktop anymore, except for the extent necessary to use it as a development platform for their new Strategy Du Jour, Internet Appliances.
After I posted on BeDevTalk that Some of Us Work for a Living, the moderator told me he was fed up with a developer who was trying to discuss business issues of concern to Be's third-party developers on Be's third-party developer mailing list. That was my last message to bedevtalk - he unsubscribed me.
I've been working on a really challenging C++ application for a few months, and after reading C++ Answers with Bjarne Stoustrup I got excited about really digging into the basics of programming - but from the perspective of a developer with 13 years of work experience and a lot of shipping products.
I bought a few books, mostly on C++ and also hit some websites and newsgroups, and I became a much better programmer as a result. And I really felt that I did better to spend my time on core architectural and language issues rather than dealing with OS-specific nits or tool issues. And so I wrote Study Fundamentals, Not APIs, Tools or OSes.
So this brings me back to being used by operating systems vendors to serve their material needs at my expense and the cost of much personal pain. If you become a better programmer by learning the basics better, to can fluidly go from OS to OS without much of a learning curve.
But there's the problem that you have to use some API to code your application to, and while Java claims to be "platform-independent" it is really a proprietary platform in itself - just try making use of platform-specific code in a Java application, yes you can do it with the Java Native Interface but it is difficult and an assault on the Java developer's senses to write a dll in C or C++ to load into the runtime.
So what you really need is a cross-platform application framework that you can write in with a language such as C++, that comes preconfigured with easy-to-use preprocessor symbols so you can drop into OS-specific code at your whim, and will compile from a single sourcebase to native machine code for multiple operating systems.
Funny that, since December '99 I've been writing a multithreaded special-purpose graphics editor that is also an HTTP client with just such a cross-platform application framework. I can develop on Mac or Windows as the need suits me and switch back and forth at a moments notice (especially now that I've got filesharing between my machines). My client only asked for Mac and Windows versions but I could port to BeOS or Linux in a few days. The framework is called ZooLib.
It was written by my friend Andrew Green of The Electric Magic Company, originally to insulate himself from Apple's API nonsense. (Do you remember when all progress on developer tools at Apple and Symantec stopped while they went off into the sunset to develop Bedrock, itself a cross-platform application framework and an immense investment of time and money - and then abandoned it? If it hadn't been for then-tiny Metrowerks Apple would have gone out of business after shipping the first PowerPC Macs, because there would have been no native PPC compilers.)
He felt that if he could code to his own layer and Apple changed their API, he'd just have to reimplement the OS-specific layer and he'd be working again. But then a little more work and he'd be cross-platform...
If you click that link today you'll just get a placeholder page. But just wait a few days...
(For practical reasons the source itself, mailing lists and so on will be provided at http://zoolib.sourceforge.net/ once it's released.)
While ZooLib is to be newly released to the public it is not new code. It has been in use in commercial products for about five years - and in development in my own since last December. Part of why Andy gave me the code and I've been working with it is to give him meaningful architectural feedback and detailed bug reports so he can prepare it for public release.
I've been urging Andy to release the source as-is for a couple of years but his standards are incredibly high for a programmer. Andy's code doesn't just work, it is correct.
Andy spares no effort or time to fix the smallest problems (this is especially important in multithreaded code - think about reference counted smart pointers that are operated on by different threads, as you can do with Zoolib), and part of why he's been delaying the release is to improve the overall architecture.
For more details, including relevant quotes from Judge Thomas Penfield Jackson's Findings of Fact and Final Judgement discussing why Microsoft felt it was more important than anything to suppress cross-platform API's, such as Netscape plug-ins, Java, Intel Native Signal Processing, Lotus Notes, Apple Quicktime (runs on Windows too!) and RealNetworks' multimedia technology, please read my early draft of:
Thank you for your attention.
Regards,
-
Freeing the Developer from OS Vendor ShacklesOperating systems vendors invest a great deal of energy in getting applications developers to code products to the native API of the OS.
The result is that it is very difficult for the developer to bring the product out on a competing platform, and it discourages users from moving to a different OS when they feel the vendor isn't serving their needs (because they can't get the solutions to their problems).
If the developer doesn't want to deal with the OS vendor anymore, he's really got a problem - either suffer under the vendor's thumb, or make a great deal of personal sacrifice to move to a different operating system.
I was sick of Apple so I wrote I'm worried about my future. That's why I'm a Be developer.
And in fact I shipped (and still do support) on of the first commercial applications for the BeOS, Spellswell from Working Software.
Nothing Be ever did made any sense, and while there are individuals at the company that I regard highly, on the whole I felt the company to be uniquely unresponsive and incompetent.
And just when they were showing some promise of shipping enough BeOS installations that I had some hope of making more than the measly couple hundred bucks I'd earned in royalties in the three years I'd been working on Spellswell, they announced a "change in focus" and said they weren't going to support the desktop anymore, except for the extent necessary to use it as a development platform for their new Strategy Du Jour, Internet Appliances.
After I posted on BeDevTalk that Some of Us Work for a Living, the moderator told me he was fed up with a developer who was trying to discuss business issues of concern to Be's third-party developers on Be's third-party developer mailing list. That was my last message to bedevtalk - he unsubscribed me.
I've been working on a really challenging C++ application for a few months, and after reading C++ Answers with Bjarne Stoustrup I got excited about really digging into the basics of programming - but from the perspective of a developer with 13 years of work experience and a lot of shipping products.
I bought a few books, mostly on C++ and also hit some websites and newsgroups, and I became a much better programmer as a result. And I really felt that I did better to spend my time on core architectural and language issues rather than dealing with OS-specific nits or tool issues. And so I wrote Study Fundamentals, Not APIs, Tools or OSes.
So this brings me back to being used by operating systems vendors to serve their material needs at my expense and the cost of much personal pain. If you become a better programmer by learning the basics better, to can fluidly go from OS to OS without much of a learning curve.
But there's the problem that you have to use some API to code your application to, and while Java claims to be "platform-independent" it is really a proprietary platform in itself - just try making use of platform-specific code in a Java application, yes you can do it with the Java Native Interface but it is difficult and an assault on the Java developer's senses to write a dll in C or C++ to load into the runtime.
So what you really need is a cross-platform application framework that you can write in with a language such as C++, that comes preconfigured with easy-to-use preprocessor symbols so you can drop into OS-specific code at your whim, and will compile from a single sourcebase to native machine code for multiple operating systems.
Funny that, since December '99 I've been writing a multithreaded special-purpose graphics editor that is also an HTTP client with just such a cross-platform application framework. I can develop on Mac or Windows as the need suits me and switch back and forth at a moments notice (especially now that I've got filesharing between my machines). My client only asked for Mac and Windows versions but I could port to BeOS or Linux in a few days. The framework is called ZooLib.
It was written by my friend Andrew Green of The Electric Magic Company, originally to insulate himself from Apple's API nonsense. (Do you remember when all progress on developer tools at Apple and Symantec stopped while they went off into the sunset to develop Bedrock, itself a cross-platform application framework and an immense investment of time and money - and then abandoned it? If it hadn't been for then-tiny Metrowerks Apple would have gone out of business after shipping the first PowerPC Macs, because there would have been no native PPC compilers.)
He felt that if he could code to his own layer and Apple changed their API, he'd just have to reimplement the OS-specific layer and he'd be working again. But then a little more work and he'd be cross-platform...
If you click that link today you'll just get a placeholder page. But just wait a few days...
(For practical reasons the source itself, mailing lists and so on will be provided at http://zoolib.sourceforge.net/ once it's released.)
While ZooLib is to be newly released to the public it is not new code. It has been in use in commercial products for about five years - and in development in my own since last December. Part of why Andy gave me the code and I've been working with it is to give him meaningful architectural feedback and detailed bug reports so he can prepare it for public release.
I've been urging Andy to release the source as-is for a couple of years but his standards are incredibly high for a programmer. Andy's code doesn't just work, it is correct.
Andy spares no effort or time to fix the smallest problems (this is especially important in multithreaded code - think about reference counted smart pointers that are operated on by different threads, as you can do with Zoolib), and part of why he's been delaying the release is to improve the overall architecture.
For more details, including relevant quotes from Judge Thomas Penfield Jackson's Findings of Fact and Final Judgement discussing why Microsoft felt it was more important than anything to suppress cross-platform API's, such as Netscape plug-ins, Java, Intel Native Signal Processing, Lotus Notes, Apple Quicktime (runs on Windows too!) and RealNetworks' multimedia technology, please read my early draft of:
Thank you for your attention.
Regards,
-
Freeing the Developer from OS Vendor ShacklesOperating systems vendors invest a great deal of energy in getting applications developers to code products to the native API of the OS.
The result is that it is very difficult for the developer to bring the product out on a competing platform, and it discourages users from moving to a different OS when they feel the vendor isn't serving their needs (because they can't get the solutions to their problems).
If the developer doesn't want to deal with the OS vendor anymore, he's really got a problem - either suffer under the vendor's thumb, or make a great deal of personal sacrifice to move to a different operating system.
I was sick of Apple so I wrote I'm worried about my future. That's why I'm a Be developer.
And in fact I shipped (and still do support) on of the first commercial applications for the BeOS, Spellswell from Working Software.
Nothing Be ever did made any sense, and while there are individuals at the company that I regard highly, on the whole I felt the company to be uniquely unresponsive and incompetent.
And just when they were showing some promise of shipping enough BeOS installations that I had some hope of making more than the measly couple hundred bucks I'd earned in royalties in the three years I'd been working on Spellswell, they announced a "change in focus" and said they weren't going to support the desktop anymore, except for the extent necessary to use it as a development platform for their new Strategy Du Jour, Internet Appliances.
After I posted on BeDevTalk that Some of Us Work for a Living, the moderator told me he was fed up with a developer who was trying to discuss business issues of concern to Be's third-party developers on Be's third-party developer mailing list. That was my last message to bedevtalk - he unsubscribed me.
I've been working on a really challenging C++ application for a few months, and after reading C++ Answers with Bjarne Stoustrup I got excited about really digging into the basics of programming - but from the perspective of a developer with 13 years of work experience and a lot of shipping products.
I bought a few books, mostly on C++ and also hit some websites and newsgroups, and I became a much better programmer as a result. And I really felt that I did better to spend my time on core architectural and language issues rather than dealing with OS-specific nits or tool issues. And so I wrote Study Fundamentals, Not APIs, Tools or OSes.
So this brings me back to being used by operating systems vendors to serve their material needs at my expense and the cost of much personal pain. If you become a better programmer by learning the basics better, to can fluidly go from OS to OS without much of a learning curve.
But there's the problem that you have to use some API to code your application to, and while Java claims to be "platform-independent" it is really a proprietary platform in itself - just try making use of platform-specific code in a Java application, yes you can do it with the Java Native Interface but it is difficult and an assault on the Java developer's senses to write a dll in C or C++ to load into the runtime.
So what you really need is a cross-platform application framework that you can write in with a language such as C++, that comes preconfigured with easy-to-use preprocessor symbols so you can drop into OS-specific code at your whim, and will compile from a single sourcebase to native machine code for multiple operating systems.
Funny that, since December '99 I've been writing a multithreaded special-purpose graphics editor that is also an HTTP client with just such a cross-platform application framework. I can develop on Mac or Windows as the need suits me and switch back and forth at a moments notice (especially now that I've got filesharing between my machines). My client only asked for Mac and Windows versions but I could port to BeOS or Linux in a few days. The framework is called ZooLib.
It was written by my friend Andrew Green of The Electric Magic Company, originally to insulate himself from Apple's API nonsense. (Do you remember when all progress on developer tools at Apple and Symantec stopped while they went off into the sunset to develop Bedrock, itself a cross-platform application framework and an immense investment of time and money - and then abandoned it? If it hadn't been for then-tiny Metrowerks Apple would have gone out of business after shipping the first PowerPC Macs, because there would have been no native PPC compilers.)
He felt that if he could code to his own layer and Apple changed their API, he'd just have to reimplement the OS-specific layer and he'd be working again. But then a little more work and he'd be cross-platform...
If you click that link today you'll just get a placeholder page. But just wait a few days...
(For practical reasons the source itself, mailing lists and so on will be provided at http://zoolib.sourceforge.net/ once it's released.)
While ZooLib is to be newly released to the public it is not new code. It has been in use in commercial products for about five years - and in development in my own since last December. Part of why Andy gave me the code and I've been working with it is to give him meaningful architectural feedback and detailed bug reports so he can prepare it for public release.
I've been urging Andy to release the source as-is for a couple of years but his standards are incredibly high for a programmer. Andy's code doesn't just work, it is correct.
Andy spares no effort or time to fix the smallest problems (this is especially important in multithreaded code - think about reference counted smart pointers that are operated on by different threads, as you can do with Zoolib), and part of why he's been delaying the release is to improve the overall architecture.
For more details, including relevant quotes from Judge Thomas Penfield Jackson's Findings of Fact and Final Judgement discussing why Microsoft felt it was more important than anything to suppress cross-platform API's, such as Netscape plug-ins, Java, Intel Native Signal Processing, Lotus Notes, Apple Quicktime (runs on Windows too!) and RealNetworks' multimedia technology, please read my early draft of:
Thank you for your attention.
Regards,
-
It's important to own your own domain nameI mentioned this earlier in my recommendation of Seagull Networks (note - SSH, SCP and CGI's you can write and install yourself, even in C or C++) - but I'll say it again.
If you want reliable email, it is important that you own your own domain name. If you want email to get to you easily and reliably, then it's important that the domain name be easy for people to remember and to spell, even when you've just spoken it to them over the phone. (Note that while my business name is GoingWare, Inc. I've also registered goingwhere.com and had Seagull alias it to make sure people can find me.)
You think your Yahoo or Hotmail account is reliable? Guess again. How many big companies have tanked in the last few decades? What if yahoo decides it's not worth their while anymore to provide email service, even if you want to pay for continuing to have the privilege of having the same email address for the rest of your life.
I was proud to be one of the first customers for Scruz-Net - until they went down for a week just after I started my consulting business!
And they've been bought out more times than I can count. I keep my old ISP account there mainly because I haven't moved all my web pages yet, but periodically I download all my email from there and pick the real mail out from the spam and send them a message asking them to use my new permanent emails, either crawford@goingware.com or michael@geometricvisions.com.
I've also got a few pages on scruznet that I feel are important for people to be able to find in the distant future, so I'm slowly going through my old site there, moving the pages to one of my own domains, and putting a page in the original's place with a META REFRESH tag and a note. But the problem is that some sites have permanent links to my scruznet pages embedded in their databases that I've been unable to get them to correct.
In the long run, I'll close my account at Scruznet and they say they will redirect accesses to my old site to a single, fixed URL but people may not be able to find what they're looking for.
As I emphasize in Market Yourself - Tips for High-Tech Consultants, it's important to own your own domain name not just to maintain a professional appearance and so your customers can find you, but everyone should own their own domain name so they can have a permanent address.
If you own your own domain name and your service should go bad, you can relocate it to another provider and be up in a few days. Mainly you just have to wait for the new DNS to take effect.
(For other helpful programmer's tips (mostly technical) see GoingWare's Bag of Programming Tricks.)
An added benefit of owning your own domain name is that you often get what are incorrectly termed "postmaster" email addresses. With these, any mail sent to anyuser@yourdomain.com will be delivered to your mailbox. You can combine this with filtering email clients to suppress spam. You still have to download the stuff but what you do is sort all of your legitimate mailing list mail into separate mailboxes, and mail addressed to your real name into the main mailbox you read, and leave everything else in your inbox.
Then if you need to give a website a valid email address, say to allow them to send you a password, you give them the email theirdomain@yourdomain.com.
If they sell your name to a mailing list at least you know who's done it. For example, this is the way that I know that Citibank is using the email I used to log into my cardholder webpage to access my account - I've only used that particular email for that one page. But Citibank is now sending spam to this address asking me to sign up for their card! How dumb can they get!
If you really don't care whether an email address should last, as when signing up for a web page, this is when you really do want to get yourself a Yahoo or Hotmail account. That way their servers can handle all the spam and not yours.
-
It's important to own your own domain nameI mentioned this earlier in my recommendation of Seagull Networks (note - SSH, SCP and CGI's you can write and install yourself, even in C or C++) - but I'll say it again.
If you want reliable email, it is important that you own your own domain name. If you want email to get to you easily and reliably, then it's important that the domain name be easy for people to remember and to spell, even when you've just spoken it to them over the phone. (Note that while my business name is GoingWare, Inc. I've also registered goingwhere.com and had Seagull alias it to make sure people can find me.)
You think your Yahoo or Hotmail account is reliable? Guess again. How many big companies have tanked in the last few decades? What if yahoo decides it's not worth their while anymore to provide email service, even if you want to pay for continuing to have the privilege of having the same email address for the rest of your life.
I was proud to be one of the first customers for Scruz-Net - until they went down for a week just after I started my consulting business!
And they've been bought out more times than I can count. I keep my old ISP account there mainly because I haven't moved all my web pages yet, but periodically I download all my email from there and pick the real mail out from the spam and send them a message asking them to use my new permanent emails, either crawford@goingware.com or michael@geometricvisions.com.
I've also got a few pages on scruznet that I feel are important for people to be able to find in the distant future, so I'm slowly going through my old site there, moving the pages to one of my own domains, and putting a page in the original's place with a META REFRESH tag and a note. But the problem is that some sites have permanent links to my scruznet pages embedded in their databases that I've been unable to get them to correct.
In the long run, I'll close my account at Scruznet and they say they will redirect accesses to my old site to a single, fixed URL but people may not be able to find what they're looking for.
As I emphasize in Market Yourself - Tips for High-Tech Consultants, it's important to own your own domain name not just to maintain a professional appearance and so your customers can find you, but everyone should own their own domain name so they can have a permanent address.
If you own your own domain name and your service should go bad, you can relocate it to another provider and be up in a few days. Mainly you just have to wait for the new DNS to take effect.
(For other helpful programmer's tips (mostly technical) see GoingWare's Bag of Programming Tricks.)
An added benefit of owning your own domain name is that you often get what are incorrectly termed "postmaster" email addresses. With these, any mail sent to anyuser@yourdomain.com will be delivered to your mailbox. You can combine this with filtering email clients to suppress spam. You still have to download the stuff but what you do is sort all of your legitimate mailing list mail into separate mailboxes, and mail addressed to your real name into the main mailbox you read, and leave everything else in your inbox.
Then if you need to give a website a valid email address, say to allow them to send you a password, you give them the email theirdomain@yourdomain.com.
If they sell your name to a mailing list at least you know who's done it. For example, this is the way that I know that Citibank is using the email I used to log into my cardholder webpage to access my account - I've only used that particular email for that one page. But Citibank is now sending spam to this address asking me to sign up for their card! How dumb can they get!
If you really don't care whether an email address should last, as when signing up for a web page, this is when you really do want to get yourself a Yahoo or Hotmail account. That way their servers can handle all the spam and not yours.
-
It's important to own your own domain nameI mentioned this earlier in my recommendation of Seagull Networks (note - SSH, SCP and CGI's you can write and install yourself, even in C or C++) - but I'll say it again.
If you want reliable email, it is important that you own your own domain name. If you want email to get to you easily and reliably, then it's important that the domain name be easy for people to remember and to spell, even when you've just spoken it to them over the phone. (Note that while my business name is GoingWare, Inc. I've also registered goingwhere.com and had Seagull alias it to make sure people can find me.)
You think your Yahoo or Hotmail account is reliable? Guess again. How many big companies have tanked in the last few decades? What if yahoo decides it's not worth their while anymore to provide email service, even if you want to pay for continuing to have the privilege of having the same email address for the rest of your life.
I was proud to be one of the first customers for Scruz-Net - until they went down for a week just after I started my consulting business!
And they've been bought out more times than I can count. I keep my old ISP account there mainly because I haven't moved all my web pages yet, but periodically I download all my email from there and pick the real mail out from the spam and send them a message asking them to use my new permanent emails, either crawford@goingware.com or michael@geometricvisions.com.
I've also got a few pages on scruznet that I feel are important for people to be able to find in the distant future, so I'm slowly going through my old site there, moving the pages to one of my own domains, and putting a page in the original's place with a META REFRESH tag and a note. But the problem is that some sites have permanent links to my scruznet pages embedded in their databases that I've been unable to get them to correct.
In the long run, I'll close my account at Scruznet and they say they will redirect accesses to my old site to a single, fixed URL but people may not be able to find what they're looking for.
As I emphasize in Market Yourself - Tips for High-Tech Consultants, it's important to own your own domain name not just to maintain a professional appearance and so your customers can find you, but everyone should own their own domain name so they can have a permanent address.
If you own your own domain name and your service should go bad, you can relocate it to another provider and be up in a few days. Mainly you just have to wait for the new DNS to take effect.
(For other helpful programmer's tips (mostly technical) see GoingWare's Bag of Programming Tricks.)
An added benefit of owning your own domain name is that you often get what are incorrectly termed "postmaster" email addresses. With these, any mail sent to anyuser@yourdomain.com will be delivered to your mailbox. You can combine this with filtering email clients to suppress spam. You still have to download the stuff but what you do is sort all of your legitimate mailing list mail into separate mailboxes, and mail addressed to your real name into the main mailbox you read, and leave everything else in your inbox.
Then if you need to give a website a valid email address, say to allow them to send you a password, you give them the email theirdomain@yourdomain.com.
If they sell your name to a mailing list at least you know who's done it. For example, this is the way that I know that Citibank is using the email I used to log into my cardholder webpage to access my account - I've only used that particular email for that one page. But Citibank is now sending spam to this address asking me to sign up for their card! How dumb can they get!
If you really don't care whether an email address should last, as when signing up for a web page, this is when you really do want to get yourself a Yahoo or Hotmail account. That way their servers can handle all the spam and not yours.
-
It's important to own your own domain nameI mentioned this earlier in my recommendation of Seagull Networks (note - SSH, SCP and CGI's you can write and install yourself, even in C or C++) - but I'll say it again.
If you want reliable email, it is important that you own your own domain name. If you want email to get to you easily and reliably, then it's important that the domain name be easy for people to remember and to spell, even when you've just spoken it to them over the phone. (Note that while my business name is GoingWare, Inc. I've also registered goingwhere.com and had Seagull alias it to make sure people can find me.)
You think your Yahoo or Hotmail account is reliable? Guess again. How many big companies have tanked in the last few decades? What if yahoo decides it's not worth their while anymore to provide email service, even if you want to pay for continuing to have the privilege of having the same email address for the rest of your life.
I was proud to be one of the first customers for Scruz-Net - until they went down for a week just after I started my consulting business!
And they've been bought out more times than I can count. I keep my old ISP account there mainly because I haven't moved all my web pages yet, but periodically I download all my email from there and pick the real mail out from the spam and send them a message asking them to use my new permanent emails, either crawford@goingware.com or michael@geometricvisions.com.
I've also got a few pages on scruznet that I feel are important for people to be able to find in the distant future, so I'm slowly going through my old site there, moving the pages to one of my own domains, and putting a page in the original's place with a META REFRESH tag and a note. But the problem is that some sites have permanent links to my scruznet pages embedded in their databases that I've been unable to get them to correct.
In the long run, I'll close my account at Scruznet and they say they will redirect accesses to my old site to a single, fixed URL but people may not be able to find what they're looking for.
As I emphasize in Market Yourself - Tips for High-Tech Consultants, it's important to own your own domain name not just to maintain a professional appearance and so your customers can find you, but everyone should own their own domain name so they can have a permanent address.
If you own your own domain name and your service should go bad, you can relocate it to another provider and be up in a few days. Mainly you just have to wait for the new DNS to take effect.
(For other helpful programmer's tips (mostly technical) see GoingWare's Bag of Programming Tricks.)
An added benefit of owning your own domain name is that you often get what are incorrectly termed "postmaster" email addresses. With these, any mail sent to anyuser@yourdomain.com will be delivered to your mailbox. You can combine this with filtering email clients to suppress spam. You still have to download the stuff but what you do is sort all of your legitimate mailing list mail into separate mailboxes, and mail addressed to your real name into the main mailbox you read, and leave everything else in your inbox.
Then if you need to give a website a valid email address, say to allow them to send you a password, you give them the email theirdomain@yourdomain.com.
If they sell your name to a mailing list at least you know who's done it. For example, this is the way that I know that Citibank is using the email I used to log into my cardholder webpage to access my account - I've only used that particular email for that one page. But Citibank is now sending spam to this address asking me to sign up for their card! How dumb can they get!
If you really don't care whether an email address should last, as when signing up for a web page, this is when you really do want to get yourself a Yahoo or Hotmail account. That way their servers can handle all the spam and not yours.
-
Seagull Networks www.seagull.net SSH+SCPI strongly recommend Seagull Networks at http://www.seagull.net/
Whenever anyone asks me for a hosting recommendation, I always recommend Seagull.
No, Seagull is not an ISP. While it would be nice to have a secure ISP, you're better off using any random joker for your ISP, owning your own domain name so you can relocate it in the event your service tanks (I discuss this in Market Yourself - Tips for High-Tech Consultants) and accessing the hosting service via SSH and SCP (secure copy). Note that it does no good to only use SSH - you have to use SCP as well.
Here's a sample SCP command line, in case you can't figure it out, it's very simple but I had a hard time from the man page:
scp foo.bar crawford@www.goingware.com:.
The above places file foo.bar in the home directory of user crawford on www.goingware.com.
scp crawford@www.goingware.com:web/index.html stash
This copies index.html from directory "web" on www.goingware.com and places it in directory "stash" on the local machine.
Please read my web page on Why You Should Use Encryption
Besides being a good service, it's a small enough company to offer personal service. I've sent support email to the webmaster at 2am his time and had the problem fixed and the mail answered within the hour.
But even though it's a small service, it's not a low-quality service. They have high-performance machines, they are in a good colo facility with a high-speed connection to the backbone, they upgrade their service regularly and the webmaster, Paul Celestin, is just a damn nice guy.
I'm not sure if he still publishes it but Celestin used to produce a CDROM full of useful free source code for the Macintosh. Some of my own Mac open-source programs were on it.
These are the sites I personally have located there:
- http://www.goingware.com/ - My consulting company, GoingWare Inc. My livelihood depends on the reliability of this site.
- http://www.wordservices.org/ - Seagull hosts this public-service site for free in exchange for me placing a small banner ad on some of the pages
- http://www.geometricvisions.com/
I have a couple tips for you on checking email. I use PGP when I'm trying to be secure, but it's really not that much that I really care for complete security. But I just don't like people snooping on me, mostly I think it's none of their damn business what's in my mailbox even if it's spam.
So mostly I read my email at seagull using elm while logged in via SSH, and when my mailbox gets big, I move it to my home directory and copy it to my home machine via SCP:
goingware$ cp
/usr/spool/mail/crawford ~goingware$ echo ""
/usr/spool/mail/crawfordback on my home machine:
C> pscp crawford@www.goingware.com:crawford
.It is also possible to download your email via POP with SSH via port forwarding. I describe this on the BeOS Tip Server. It doesn't seem to be responding right now but if you go to its search and enter "ssh" you'll find the tip I submitted called something like "Secure email download via ssh". The instructions have some BeOS specific items but most of what's there will work on any systems.
Don't have SSH? Try one of these:
- Nifty Telnet/SSH for Macintosh - includes a graphical SCP client!
- putty for Windows (also supports NT/Alpha) and pscp for secure copy
- CygWin - a GNU environment for Win32 - use bash, compile with GCC, a lot of linux code builds right out of the box in Cygwin
- The Secure Shell Community Site
- SSH Communications Security (commercial)
-
Seagull Networks www.seagull.net SSH+SCPI strongly recommend Seagull Networks at http://www.seagull.net/
Whenever anyone asks me for a hosting recommendation, I always recommend Seagull.
No, Seagull is not an ISP. While it would be nice to have a secure ISP, you're better off using any random joker for your ISP, owning your own domain name so you can relocate it in the event your service tanks (I discuss this in Market Yourself - Tips for High-Tech Consultants) and accessing the hosting service via SSH and SCP (secure copy). Note that it does no good to only use SSH - you have to use SCP as well.
Here's a sample SCP command line, in case you can't figure it out, it's very simple but I had a hard time from the man page:
scp foo.bar crawford@www.goingware.com:.
The above places file foo.bar in the home directory of user crawford on www.goingware.com.
scp crawford@www.goingware.com:web/index.html stash
This copies index.html from directory "web" on www.goingware.com and places it in directory "stash" on the local machine.
Please read my web page on Why You Should Use Encryption
Besides being a good service, it's a small enough company to offer personal service. I've sent support email to the webmaster at 2am his time and had the problem fixed and the mail answered within the hour.
But even though it's a small service, it's not a low-quality service. They have high-performance machines, they are in a good colo facility with a high-speed connection to the backbone, they upgrade their service regularly and the webmaster, Paul Celestin, is just a damn nice guy.
I'm not sure if he still publishes it but Celestin used to produce a CDROM full of useful free source code for the Macintosh. Some of my own Mac open-source programs were on it.
These are the sites I personally have located there:
- http://www.goingware.com/ - My consulting company, GoingWare Inc. My livelihood depends on the reliability of this site.
- http://www.wordservices.org/ - Seagull hosts this public-service site for free in exchange for me placing a small banner ad on some of the pages
- http://www.geometricvisions.com/
I have a couple tips for you on checking email. I use PGP when I'm trying to be secure, but it's really not that much that I really care for complete security. But I just don't like people snooping on me, mostly I think it's none of their damn business what's in my mailbox even if it's spam.
So mostly I read my email at seagull using elm while logged in via SSH, and when my mailbox gets big, I move it to my home directory and copy it to my home machine via SCP:
goingware$ cp
/usr/spool/mail/crawford ~goingware$ echo ""
/usr/spool/mail/crawfordback on my home machine:
C> pscp crawford@www.goingware.com:crawford
.It is also possible to download your email via POP with SSH via port forwarding. I describe this on the BeOS Tip Server. It doesn't seem to be responding right now but if you go to its search and enter "ssh" you'll find the tip I submitted called something like "Secure email download via ssh". The instructions have some BeOS specific items but most of what's there will work on any systems.
Don't have SSH? Try one of these:
- Nifty Telnet/SSH for Macintosh - includes a graphical SCP client!
- putty for Windows (also supports NT/Alpha) and pscp for secure copy
- CygWin - a GNU environment for Win32 - use bash, compile with GCC, a lot of linux code builds right out of the box in Cygwin
- The Secure Shell Community Site
- SSH Communications Security (commercial)
-
Seagull Networks www.seagull.net SSH+SCPI strongly recommend Seagull Networks at http://www.seagull.net/
Whenever anyone asks me for a hosting recommendation, I always recommend Seagull.
No, Seagull is not an ISP. While it would be nice to have a secure ISP, you're better off using any random joker for your ISP, owning your own domain name so you can relocate it in the event your service tanks (I discuss this in Market Yourself - Tips for High-Tech Consultants) and accessing the hosting service via SSH and SCP (secure copy). Note that it does no good to only use SSH - you have to use SCP as well.
Here's a sample SCP command line, in case you can't figure it out, it's very simple but I had a hard time from the man page:
scp foo.bar crawford@www.goingware.com:.
The above places file foo.bar in the home directory of user crawford on www.goingware.com.
scp crawford@www.goingware.com:web/index.html stash
This copies index.html from directory "web" on www.goingware.com and places it in directory "stash" on the local machine.
Please read my web page on Why You Should Use Encryption
Besides being a good service, it's a small enough company to offer personal service. I've sent support email to the webmaster at 2am his time and had the problem fixed and the mail answered within the hour.
But even though it's a small service, it's not a low-quality service. They have high-performance machines, they are in a good colo facility with a high-speed connection to the backbone, they upgrade their service regularly and the webmaster, Paul Celestin, is just a damn nice guy.
I'm not sure if he still publishes it but Celestin used to produce a CDROM full of useful free source code for the Macintosh. Some of my own Mac open-source programs were on it.
These are the sites I personally have located there:
- http://www.goingware.com/ - My consulting company, GoingWare Inc. My livelihood depends on the reliability of this site.
- http://www.wordservices.org/ - Seagull hosts this public-service site for free in exchange for me placing a small banner ad on some of the pages
- http://www.geometricvisions.com/
I have a couple tips for you on checking email. I use PGP when I'm trying to be secure, but it's really not that much that I really care for complete security. But I just don't like people snooping on me, mostly I think it's none of their damn business what's in my mailbox even if it's spam.
So mostly I read my email at seagull using elm while logged in via SSH, and when my mailbox gets big, I move it to my home directory and copy it to my home machine via SCP:
goingware$ cp
/usr/spool/mail/crawford ~goingware$ echo ""
/usr/spool/mail/crawfordback on my home machine:
C> pscp crawford@www.goingware.com:crawford
.It is also possible to download your email via POP with SSH via port forwarding. I describe this on the BeOS Tip Server. It doesn't seem to be responding right now but if you go to its search and enter "ssh" you'll find the tip I submitted called something like "Secure email download via ssh". The instructions have some BeOS specific items but most of what's there will work on any systems.
Don't have SSH? Try one of these:
- Nifty Telnet/SSH for Macintosh - includes a graphical SCP client!
- putty for Windows (also supports NT/Alpha) and pscp for secure copy
- CygWin - a GNU environment for Win32 - use bash, compile with GCC, a lot of linux code builds right out of the box in Cygwin
- The Secure Shell Community Site
- SSH Communications Security (commercial)
-
The Cross-Platform ManifestoI think The Cross-Platform Manifesto is relevant here.
78. Although they have been the most prominent, Netscape's Navigator and Sun's Java implementation are not the only manifestations of middleware that Microsoft has perceived as having the potential to weaken the applications barrier to entry. Starting in 1994, Microsoft exhibited considerable concern over the software product Notes, distributed first by Lotus and then by IBM. Microsoft worried about Notes for several reasons: It presented a graphical interface that was common across multiple operating systems; it also exposed a set of APIs to developers; and, like Navigator, it served as a distribution vehicle for Sun's Java runtime environment. Then in 1995, Microsoft reacted with alarm to Intel's Native Signal Processing software, which interacted with the microprocessor independently of the operating system and exposed APIs directly to developers of multimedia content. Finally, in 1997 Microsoft noted the dangers of Apple's and RealNetworks' multimedia playback technologies, which ran on several platforms (including the Mac OS and Windows) and similarly exposed APIs to content developers. Microsoft feared all of these technologies because they facilitated the development of user-oriented software that would be indifferent to the identity of the underlying operating system.
-- Thomas Penfield Jackson, U.S. District Judge, Findings of Fact
-
Lack of High-End Components a Serious ProblemFirst, take note of my comment regarding Insight Canada below.
The whole reason I wanted to buy those two Ultra160 hard drives was because I wanted to use them in my work. One for use in a high-end Linux server, and one for use in a Mac 8500.
I couldn't find such drives in St. John's Newfoundland, or a SCSI Ultra160 controller (to be fair, I did get my 39160 controller from Insight, although it still took several weeks).
I didn't want to run an e-commerce site. I just wanted to have fast machines for use in my office. The Linux server was going to serve source code via Samba to a Mac and a Windows machine, to enable simultaneous cross-platform development.
To make matters worse, I wanted to use the Ultra160 drive on a SCSI-2 50 pin single-ended bus. You can do this - see http://www.scsifaq.org - but you need a 68 conductor to 50 conductor adapter which terminates the high byte in the manner specified for Ultra160.
Just try finding one of those in Canada! I ordered it from California from one of the cable vendors listed in the SCSI faq.
With all the little components I was wanting, as well as technical books (Chapters in St. John's is decent, but not as good as a Silicon Valley bookstore), I was frequently being awakened from bed for weeks by the Purolator man delivering some widget or other for weeks after I moved to St. John's.
With Insight's interminable delay in getting my drives to me, and being able to locate a good dual-Xeon motherboard with the extra widgets for clustering ability (out-of-band control), I never did build my server.
And then when my Compaq 1800T laptop had power connector problems and wouldn't charge, Compaq wouldn't send the new power adapter to Canada, even though they have a Canadian subsidiary; it's a US only model that I bought in the US. I had to have Compaq express the new power adapter to my dad in Washington State, and he expressed it to me in Newfoundland, at a cost of $59 - coincidentally, the price of buying a brand-new power adapter.
It turns out that the new power adapter does not completely solve my charging problem, so I'm getting ready to contact Compaq about sending the CPU in for warranty repair. I'm figuring they'll tell me I have to ship it to my dad and then they'll have FedEx pick it up at his house. Maybe when I'm home for thanksgiving...
Now, these are annoyances for me, but multiply them across the whole nation of Canada and I think you have a serious impact on the whole Canadian economy. I'd never have stood for bullshit like this when I was living in Santa Cruz - there are too many computer dealers in the area and in nearby Silicon Valley for anyone to stay in business with such poor performance.
Yes, this is annoying for me but what if you're trying to set up a Canadian e-commerce site? Where do you get your components? Can't get them at the screwdriver shop around the corner like I could in Santa Cruz. SCSI? What's that? Don't even ask about Ultra160 SCSI. It's not just a matter of having to pay the brokerage and shipping fees - it's the time to wait for things to ship and to clear customs, in such a competitive world as the Internet economy, it is simply absurd for anyone to attempt to make a real computer business in Canada.
I'm sad to say it, as I love living here in Canada (for reasons unrelated to the computer biz here), but being unable to deal with business matters effectively such as the lack of components and the lack of access to technical information like well-stocked technical bookstores where I can actually go in and flip through the pages to evaluate a book, is a significant factor in choosing to move back to the U.S.
There are other reasons, but that's one of them.
Funny, I'd thought that being away from Silicon Valley might be a problem in terms of not being able to find clients for my consulting business, but it's not, I still get lots of work from the Bay Area and elsewhere around the world. It's the grunge work like putting together a new machine in a hurry when my main development machine (that laptop) is down that I'm not able to do effectively here.
-
Lack of High-End Components a Serious ProblemFirst, take note of my comment regarding Insight Canada below.
The whole reason I wanted to buy those two Ultra160 hard drives was because I wanted to use them in my work. One for use in a high-end Linux server, and one for use in a Mac 8500.
I couldn't find such drives in St. John's Newfoundland, or a SCSI Ultra160 controller (to be fair, I did get my 39160 controller from Insight, although it still took several weeks).
I didn't want to run an e-commerce site. I just wanted to have fast machines for use in my office. The Linux server was going to serve source code via Samba to a Mac and a Windows machine, to enable simultaneous cross-platform development.
To make matters worse, I wanted to use the Ultra160 drive on a SCSI-2 50 pin single-ended bus. You can do this - see http://www.scsifaq.org - but you need a 68 conductor to 50 conductor adapter which terminates the high byte in the manner specified for Ultra160.
Just try finding one of those in Canada! I ordered it from California from one of the cable vendors listed in the SCSI faq.
With all the little components I was wanting, as well as technical books (Chapters in St. John's is decent, but not as good as a Silicon Valley bookstore), I was frequently being awakened from bed for weeks by the Purolator man delivering some widget or other for weeks after I moved to St. John's.
With Insight's interminable delay in getting my drives to me, and being able to locate a good dual-Xeon motherboard with the extra widgets for clustering ability (out-of-band control), I never did build my server.
And then when my Compaq 1800T laptop had power connector problems and wouldn't charge, Compaq wouldn't send the new power adapter to Canada, even though they have a Canadian subsidiary; it's a US only model that I bought in the US. I had to have Compaq express the new power adapter to my dad in Washington State, and he expressed it to me in Newfoundland, at a cost of $59 - coincidentally, the price of buying a brand-new power adapter.
It turns out that the new power adapter does not completely solve my charging problem, so I'm getting ready to contact Compaq about sending the CPU in for warranty repair. I'm figuring they'll tell me I have to ship it to my dad and then they'll have FedEx pick it up at his house. Maybe when I'm home for thanksgiving...
Now, these are annoyances for me, but multiply them across the whole nation of Canada and I think you have a serious impact on the whole Canadian economy. I'd never have stood for bullshit like this when I was living in Santa Cruz - there are too many computer dealers in the area and in nearby Silicon Valley for anyone to stay in business with such poor performance.
Yes, this is annoying for me but what if you're trying to set up a Canadian e-commerce site? Where do you get your components? Can't get them at the screwdriver shop around the corner like I could in Santa Cruz. SCSI? What's that? Don't even ask about Ultra160 SCSI. It's not just a matter of having to pay the brokerage and shipping fees - it's the time to wait for things to ship and to clear customs, in such a competitive world as the Internet economy, it is simply absurd for anyone to attempt to make a real computer business in Canada.
I'm sad to say it, as I love living here in Canada (for reasons unrelated to the computer biz here), but being unable to deal with business matters effectively such as the lack of components and the lack of access to technical information like well-stocked technical bookstores where I can actually go in and flip through the pages to evaluate a book, is a significant factor in choosing to move back to the U.S.
There are other reasons, but that's one of them.
Funny, I'd thought that being away from Silicon Valley might be a problem in terms of not being able to find clients for my consulting business, but it's not, I still get lots of work from the Bay Area and elsewhere around the world. It's the grunge work like putting together a new machine in a hurry when my main development machine (that laptop) is down that I'm not able to do effectively here.
-
Letter to ethicsline, above archived on my siteI submitted a letter containing the above to ethicsline@motorola.com and archived it on my website at the URL given in this followup mail:
Dear Sir or Madam,
I have archived my previous letter in which I discussed the way I was advising others to avoid Motorola products here:
http://www.goingware.com/mani fes toes/motorola.html
and will continue to widely inform others of the URL widely until Motorola puts a stop to practices such as this.
Regards,
Michael D. Crawford