In a little screwing around with Gnutella I found six different artists' renditions of Louie, Louie and fifteen of The Lion Sleeps Tonight.
Now, I feel it is important to support the artists and I like to have the very best audio fidelity. But if it were not for Gnutella I would have never known that I enjoyed the music of Ladysmith Black Mambazo - particularly not her rendition of the Lion Sleeps Tonight, one of my favorites from my childhood.
Does anyone know of an MP3 to WAV or AIFF decoder for Linux? I don't mean a player, rather one that saves to files. I'd like to make an all-Lion and all-Louie-Louie CD for the amazement and torment of my friends.
My whole point was that the BFS does much of what Reiser is hoping to do, a well-established on-disk data structure has been designed for it and is already in widespread use (and this datastructure was designed for multithreaded access from the kernel), and there's even some GPL'ed Linux code to use it.
So why not integrate the BFS into Linux?
Just because "It's Not Invented Here" doesn't mean it's not a good technology. Remember, Linux didn't even invent Unix.
And I specifically meant to point out the similarities between BFS and ReiserFS in being journaled high-performance filesystems with integrated database properties.
By the way, the current BFS was written by just one guy, Dominic Giampolo, in a few months. I think the originally BFS took a while to make, in part because the BeOS kernel was then under development, but adding stuff like journaling and indexed attributes (and taking out the old integrated database) was a matter of a few months work for Dominic.
Hans Reiser specifically discusses how his aim is a journaling filesystem with keyword searching integrated into the fileystem. He gives address books as an example.
This is done in the BFS filesystem which is part of the BeOS, which you can download here. The "People" address book database in the BeOS is entirely implemented in the filesystem.
I use the BFS in my applications I write for the BeOS - not just to store files, but I specifically use its indexed attributes for fast keyword searching in Word Services for the BeOS and I think it's the best thing since sliced bread.
While Be's implementation of the BFS is proprietary, there is a GPL'ed read-only Linux implementation of it available here
I don't think the attributes are available from Linux in the Linux version of the BFS, but they could be and to do so I think would be a significant addition to the OS.
Slashdot links to many illegal warez sites at this link
Simply put, type in the name of a few commercial programs, or song names, plus keywords like "serial" and "crack" or "mp3" into the Altavista Advanced Search Form and you'll be on you're way to being an 31337 d00d.
So is the BSA and SPA and RIAA going to crack down on Altavista?
I should point out, in response to some who have written me, is that I'm not trying to use my Linux box as a mail server. It's a laptop that's not always connected to the net. I just want to use my hosting services like any Mac or Windows user would.
I tried XFMail and Post Office today and couldn't get either of them to build.
I spent about an hour with each of them. Post Office required a bunch of undocumented environment variables to be set in order to get it to build.
I think it's critically important that no software require an environment variable to get it to basically function. If it does, you can be sure the user will select a product from Microsoft or Apple instead.
This is with a Slackware 7 system.
XFMail hasn't been maintained in a year, and although it's taken new life as Archimedes it hasn't been released yet.
It is possible to retrieve it from CVS and build it that way. I'll give it a try
I provide a link to the page from my homepage named "words I live by".
When I was asked to make this address I wondered what I had to say to you boys who are graduating. And I think I have one thing to say. If you wish to be useful, never take a course that will silence you. Refuse to learn anything that implies collusion, whether it be a clerkship or a curacy, a legal fee or a post in a university. Retain the power of speech no matter what other power you may lose. If you can take this course, and in so far as you take it, you will bless this country. In so far as you depart from this course, you become dampers, mutes, and hooded executioners.
As a practical matter, a mere failure to speak out upon occassions where no statement is asked or expect from you, and when the utterance of an uncalled for suspicion is odious, will often hold you to a concurrence in palpable iniquity. Try to raise a voice that will be heard from here to Albany and watch what comes forward to shut off the sound. It is not a German sergeant, nor a Russian officer of the precinct. It is a note from a friend of your father's, offering you a place at his office. This is your warning from the secret police. Why, if you any of young gentleman have a mind to make himself heard a mile off, you must make a bonfire of your reputations, and a close enemy of most men who would wish you well.
I have seen ten years of young men who rush out into the world with their messages, and when they find how deaf the world is, they think they must save their strength and wait. They believe that after a while they will be able to get up on some little eminence from which they can make themselves heard. "In a few years," reasons one of them, "I shall have gained a standing, and then I shall use my powers for good." Next year comes and with it a strange discovery. The man has lost his horizon of thought, his ambition has evaporated; he has nothing to say. I give you this one rule of conduct. Do what you will, but speak out always. Be shunned, be hated, be ridiculed, be scared, be in doubt, but don't be gagged. The time of trial is always. Now is the appointed time.
John J. Chapman Commencement Address to the Graduating Class of Hobart College, 1900
Anyone who has operated a business that uses computer equipment and software will tell you that the total cost of ownership for any of these items is much greater than the original retail price.
The total cost of ownership includes these things and more:
Original purchase price
Price of upgrades
Price of original installation
Price of installing upgrades - including labor and document conversion
Cost of training users
Cost of training users to use upgrades
Cost of downtime due to bugs
Cost of technical support
Cost of lost business due to bugs (can run into millions of $)
The total cost of ownership is where Microsoft has the greatest strength. There may be cases where Linux and free software has an advantage, but I'm pretty sure the perception is that Microsoft software is actually cheaper than free software and I think that may actually be the reality when the whole integrated system is taken into account.
After all, if the cost of retail purchase is an issue the business owner can easily download the software from one of the many warez sites on the web, and many use pirated Microsoft software rather than use Linux and GPL'ed software legitimately.
Look at what the other side provides:
A large pool of already-trained users (many trained in our public educational system)
Low-cost and free technical support for many items
"For Dummies" books
What I would suggest any free software author do when they're getting a release ready is to contact each of the many free software support businesses and ask them to support your package as part of their business - so they can provide bug fixes, user training and assistance. Don't skimp on the documentation and also take the time to write a training manual, or get someone to write one for you.
I also suggest including a list of consultants who will provide support for your program, either for free or for pay, along with your distribution and on your website.
Don't make the assumption that someone using your product can build it from source, read a man page, write a shell script or memorize command line options. If you write a command line program and you don't like GUI, find someone who does to write a GUI interface for your command line tool - and make sure they work well together
Remember that the words "free software" do not send the message "inexpensive" to a businessman; more like "cheap" and "low quality", like that Matisse you passed up at the garage sale because it was priced at a buck fifty.
Rather than emphasizing that linux and its applications are free, emphasize that they come with source code that may be freely modified so that technical support and bug fixes may be readily obtained from anyone.
The lack of consistency is not the problem, it's the lack of finish and polish.
Consider this simple principle of UI design I try to use: when a window or dialog opens, the user should be able to just start typing without having to click anywhere. This is for the case where there is some normal common choice for the normal place you'd want to start typing - but in many linux apps, there is no text entry selected anywhere when a window opens.
If you want to see nice UI look and feel, don't look to windows, don't look to mac, look to the BeOS. If Linux had the integration and ease of installation of the BeOS it would crush Microsoft and Bill Gates would be licking the penguin poo from Linus' bootheels.
I asked about this on (a perhaps inappropriate place) linux-kernel. What I'd like is a completely GUI email client for Linux. For my needs it doesn't have to be free software but I think it would be the greatest benefit to the community if it was. Here's what I require:
Completely GUI configuration, no scripts or text files to edit
Use ISP/hosting service mail servers simply by entering POP and SMTP servers in the preferences
critically importanthandle multiple email accounts from multiple servers and domains
Be able to switch email accounts without quitting the program. Eudora for windows or mac can use multiple accounts but you have to quit and start it up with a different config file
Able to select the "From:" address with a popup menu (and have the right SMTP server used)? This is particularly important to be able to do in replies when I want to reply from a different address than it was sent to
No configuration of sendmail or any other mail software on my linux box required.
Arbitrary and unlimited numbers of mail filters, that sort into:
Unlimited numbers of mailboxes
Scales to handle tens of thousand of letters in a mailbox, with the ability to search various ways (both in headers and body text) and to sort by header fields
Both Mail-It and Postmaster for the BeOS can do this, and for that reason I use the BeOS when I do my full mail download; most of the time when I read my mail I use elm on linux at my web hosting service Seagull Networks (one of the few web hosts which doesn't just allow shell accounts, but ssh - secure shell access).
KMail with KDE lets you use POP and SMTP providers but only works with one account.
If anyone knows of a good mail client that will serve my needs as described on Linux I will gladly switch.
So you can watch DVD's on your laptop on an airplane.
Pretty much the only reason I ordered the DVD option on my Compaq 1800T running BeOS, Linux and NT was so that I could watch movies on airplanes. Being a consultant who just moved away from Silicon Valley, I expect to be traveling a lot.
The machine came stock with Windows 98. Installing NT ate my hard disk so now I have to install a third-party DVD player and I'd rather use Linux than try to get a licensed one working on NT.
I had ordered two Quantum 10,000 RPM 18gb Ultra 160 SCSI drives and an adaptec 39160 dual-channel ultra-160 SCSI controller from Megahaus. These are high-end items and came to over $1500
They say on their order page that they need to have the shipping address match the credit card address and as I'm out of the country (in Canada) for a few months I explained the situation in the comments field and gave them my phone number.
Then the trouble began.
I got a message from them asking me to "add" my shipping address to my credit card. Well, it's a debit card and you can't do that, the best I could do was change my permanent address with the bank to the place I'm staying at in Canada. I didn't want to do that because I'm not staying here permanently but I really need the equipment. The bank was happy doing that over the phone.
I got a call from Bank Security verifying the transaction so I know that the transaction was approved by the debit card company.
But when they verified my address again it still hadn't gone through. No problem, I thought, I'll just give them the number of the lady at the bank who approved the address change.
Well that wouldn't satisfy them. I ended up spending all day on the phone, alternately with my bank who bent over backwards to be helpful and who assured me they would do everything in their power to get Megahaus to send me their drives, and some obnoxious chick in Megahaus order processing who said - get this - she wasn't permitted to dial an extension when verifying my address.
It is impossible to reach anyone at my bank without dialing an extension. The branches don't even have their own phone numbers. When you dial the number you get a switchboard and the person at the switchboard doesn't have bank record information available.
The chick at Megahaus said if she couldn't get the verfication from the person who answered the phone she wouldn't send me the drives.
Now I could wait three days for my address change to register on Visa's records (isn't this the 21st century) but instead I canceled my order and ordered from Insight instead.
It is possible to live well here. There is good Internet service in St. John's. I make the same consulting rates for clients in the valley while sitting in my house here as I would in Santa Cruz.
I miss the nice weather and the vibrant art and music scene of Santa Cruz (but I don't consider Silicon Valley a nice place to live at all; Santa Cruz is separated from it by a range of mountains).
I have met people here who are doing significant software and internet work. While I have an advantage in coming here that I already have contacts in the valley, anyone already here can use the same methods as I do to find clients:
BTW - If you get a phone number from Linx Communications it can be a local number anywhere in the US and ring you at home or the office anywhere in the US or Canada (voice mail and fax store and forward too). My business number is in Santa Cruz but rings my home phone in Saint John's.
I lived in Santa Cruz, over the hill from Silicon Valley, until about a month and a half ago.
I paid $1275 a month for a two bedroom one bath house (half a duplex). It wasn't a very nice place, had no back yard and only a tiny front yard. One car garage and tiny kitchen.
I'm getting married to a woman from Newfoundland and am staying here for a few months until our wedding. In St. John's we're renting a three bedroom house with a large kitchen, two and a half bathrooms, front and back yard. There's both a large living room and a family room.
The rent is US$500 with a US$133 deposit (no last months rent down). In Santa Cruz one of the things contributing to the homelessness that is so common there is that it requires several thousand dollars to move into a place, for first, last, plus a deposit.
But what was getting me about Santa Cruz wasn't the expense. It was the crowding. You couldn't drive across town at 5pm.
I thought that by becoming a consultant I'd get away from those insane Valley freeways, and although I didn't have to commute anymore sometimes I'd want to go downtown to the store or a cafe or something and it would really be a drag.
Housing is so tight that UC Santa Cruz houses students at the old Fort Ord Army base and Monterey and transports them in on buses, an hour's ride.
I used to live in LA and hated it there. I stayed in Santa Cruz because of the rural atmosphere and tight-knit community feel. That's not really there anymore.
We'll be heading back to the states after the wedding but for sure we won't go anywhere near Silicon Valley.
I'm very adamant, and have been for a long time that I will only accept work I can do "from my own office" - which means my home office. You can do this too. Screw the cubes at the valley, stop working for the pointy-haired boss. Throw away your flip tie!
You don't have to move to Newfoundland but you'd have the choice to at least not drive on the freeway anymore if you stay in the valley, or at least move somewhere reasonable that you can afford.
Mike
Tilting at Windmills for a Better Tomorrow
I know how to use a slide rule dammit
on
Too Old To Code?
·
· Score: 2
When my dad was in grad school in '76, I saw what a nice slide rule he had, and envied it. Grandpa got me a simple one and I learned how to use it.
Somewhere along the line I got a circular slide rule that I still have. Don't have much occasion to use it these days, but I still know how.
And while I write in mostly C++ these days, I still know assembly code, and one way I optimize my C++ is to compile the C++ to assembly rather than machine code, and modify the C++ code while observing the assembled results. Not a lot of kids these days can do that!
One answer to this problem, the path I've taken, is to become a consultant. This way you can keep coding but get more architecturally interesting jobs appropriate to one's greater experience.
This is probably the hardest path of all. You might think that's it's exciting and high pay and all, and yes while sometimes the paychecks are fat, all too often the clients are bastards and I'm up all night programming on something the client isn't going to pay me any more for and maybe I'll end up getting sued.
I've spent more than one evening searching through the house looking for change dropped on the carpet so I could buy food with it. This because of bad clients. So I don't suggest it for the timid.
On the other hand, it is a better life. I was rotting in my salaryman job. I hardly ever showed up for work more than four hours a day on the last perm job I had largely because I didn't give a damn. But I put in long hours now, because I enjoy it and I'm happy to give the hours when I need to.
It's important to make the distinction between making a hard quality effort and just pushing at the keys all night. I worked a 29 hour day once when I was 23 or so, on my first programming job, and I would never do that again.
On the other hand, I spend a significant amount of time these days, and have throughout my career, studying the fundamentals of my work.
I've been reading STL Tutorial and Reference Guide by Mussel and Saini lately, and I think the most inspiring Slashdot feature since I became a regular reader was the C++ Answers from Bjarne Stroustrup. I'm starting to work in a more thorough way at understanding C++ in a fundamental way, and I believe this will be reflected in my work.
Note that this is different than learning the latest technology-of-the-day, say COM+ or even Bonobo. Sure there's lots of great technologies available for our use and go ahead and learn how to use them, but don't waste a lot of time learning them in depth. Learn the fundamentals in depth.
Even C++ will go the way of FORTRAN someday, but there are some essential principles there that are of lasting value and it is those things that I am trying to glean from my studies.
This is what I advise you to do to.
By the way, I didn't just end up as a consultant. As you might guess from my article Manic Depressive Geeks early on in my career I felt my prospects for a traditional job were poor and I would do better to start my own business where no one could take it away because of my history of mental illness.
I soon found that I really didn't know enough so in the jobs I did get I was very determined to learn as much as I could, and also early on settled on the strategy of always choosing jobs based on what I could learn from them for the future, rather than what they paid or what potential for advancement they created.
Mike
Tilting at Windmills for a Better Tomorrow
GoingWare's Policy on Recruiters
on
Too Old To Code?
·
· Score: 3
I give a link to my original policy on recruiters and agencies in which I say that I will work with them under strict conditions - conditions that they would almost never meet, yet I held out the policy to be fair.
But because of the general ignorance and downright rudeness of headhunters and recruiters, I felt it was time to take a stand and not just stop working with them, but be public about it and encourage others to stop working with them also.
Sometime soon I will write a page for employers about why they shouldn't work with recruiters either and what they can do instead.
Right now though I have a helpful page entitled Market Yourself - Tips for High Tech Consultants which explains in detail how I find good clients without the use of agencies or recruiters, and how you can too. It also goes into further details of the problems of working with recruiters and why I think they're an all around bad idea.
And if you're a recruiter reading this, be sure to read the Word I Live By.
I don't know about patents, but I do know of someone who is preparing to try to get someone arrested for registering a trademark on a domain name that he owns.
The creep was working with him as a potential business partner when he suddenly and mysteriously backed out. A few months later my friend did a trademark registration search on the name of the domain this guy was working with him on when he found that this creep had registered my friends domain as his own trademark.
On the trademark registration form you have to swear under penalty of perjury that you have listed all the potentially similar trademarks that you are aware of. I think simply stealing one that you were previously working with as a partner would count as being aware of it don't you?
My friend isn't going to fuck around with suing the guy or getting his trademark back. He's just going to put the guy in federal prison.
When I was working for Working Software back during the initial release of System 7 for the Macintosh by Apple Computer, I led the development of the Word Services Suite by a group of spelling and grammar checker vendors, word processor publishers, and Apple Computer.
Apple had always promoted the use of its new "Apple Event" technology by giving spellcheckers as an example; instead of propriety OEM spellcheckers that are different for every application, the user could have a single speller that is shared among all their applications. Since Working Software published Spellswell we felt we should take the lead in this.
It works really well and in fact can be used for any text operation, such as grammar checkers, address books, HTML verification and the like. Text encryption would work fine and I was working on a text encryptor but never finished it. I since led the binding of it to the BeOS (where is uses BMessages instead of Apple events) which you can read about here and I'd like to make an XWindows version, perhaps using the Corba API's provided by Gnome.
Recently I was contacted by someone who was searching for prior art. It seems someone patented interapplication spellchecking protocols and he has the hope that Word Services was developed early enough to invalidate that patent. I don't know the patent in question or who holds the patent.
What I especially have a gripe about is that I only started working on this method because the idea of it had been promoted for several years by Apple as an obvious application of a new technology they were promoting.
I always recommend Java to beginners, as a first language.
Note that I generally prefer programming in C++ for my own applications for various reasons (I like manual memory allocation and pointers, and tweaking code, and stuffing bits and stuff) but that's not what a beginner needs to know about, they need to get stuff running quickly and easy without ever having to reboot their machine because of a pointer bug.
I'm not sure what are the right books for a kid, maybe "learn Java in 21 days".
One nice part is that once you teach them how to write an Applet they can show off to their friends on their web pages.
For an IDE, I suggest MetroWerksCodeWarrior for Java. Get CodeWarrior Pro if you want to do C++ too. CodeWarrior supports a variety of processors and OSes. When they move over to Linux (and they will move over to Linux after your gentle urging), they can use the CodeWarrior IDE on Linux for a familiar UI and won't have to write makefiles.
That's the other thing - first way to scare off a beginner is to require him to write a makefile to compile a project.
Note that while, yes, encryption is processor expensive, I suspect the work to decode all the JPEG images on a "content rich" website is probably a lot greater than the work required to encrypt and decrypt all those images for transmission.
The beauty of today's modern processors is that there is really no problem with just running encrypting everything. If the BIOS would support decrypting the OS as it boots, most of us would have no objection to encrypting pretty much everything on our disks, maybe even including the virtual memory. Really.
My 450 MHz pentium III laptop has no problem playing MPEG movies off a PGPDisk encrypted volume that is stored either on NTFS or FAT (where the encrypted volume is either NTFS or FAT itself - and you know FAT's not a fast filesystem).
Where the performance issues really count is for the servers and for those you'd certainly want hardware encryption. I'd be happy to donate a couple hundred bucks to Slashdot if it went toward implementing an SSL encrypted slashdot server, wouldn't you?
Clients have no problem with encryption in software. PGPDisk you have to pay for but I believe there is filesystem encryption for Windows PCs that is free. Let's see... ScramDisk, lots of good links at Yahoo 's encryption software page
I remember seeing an australian partition encryption utility there, I recall it implemented an australian government encryption standard as well as the more common ones, but I don't see it anymore.
And of course there's the linux encrypting kernel.
No, there's no reason not to encrypt. I think the main obstacle isn't export controls - it's user interface. Encryption is hard to learn. Compare using an encryption tool to, say, downloading an image from your new digital camera via USB on Windows or Mac. It should be really easy or no one will use it.
I subscribe to the notion that just about any traffic on the Internet ought to be encrypted, just for the hell of it, whether it has any interesting info in it or not.
I'd like to see Slashdot, for example, have the option of being served up on 128-bit SSL. I mean all the pages on the site. It would probably be best for the slashdot folks if this were done with hardware encryption support.
For one thing, encrypting all one's casual traffic helps to provide cover for people who really do have something to hide.
I recommend using a web hosting service which provides secure shell login access. One such web hosting service is Seagull Networks. Here is how I retrieve my POP mail through SSH port forwarding. The tip entry gives BeOS specific instructions but the basic idea should work on any platform for which SSH is available.
And yes I know my email is sent to seagull in the clear, but what this does is generate encrypted traffic (generally a good thing) and also prevents my ISP from snooping on me unless they hack into my hosting service.
If you work in a company and are concerned that your employer may be snooping on your personal email (you're not mailing out your resume are you? Know how an ethernet sniffer works?) then you should definitely use SSH for your mail.
Also on my laptop I use PGPDisk to encrypt my Quicken Checkbook and source code on NT, and the Linux Encrypting Kernel to encrypt source code on Linux. If someone steals my laptop, my clients won't have all their trade secrets stolen too.
In case you haven't heard or haven't got around to trying it out, you can download Gnutella clients for a variety of platforms from here.
Rather than a single application, gnutella is a public protocol with numerous independent implementations, and it is architected to survived both nuclear blasts and lawyers - there is no centralized server.
There is some anonymonity, although it is far from perfect (I'd like to see both the downloads and searched done through encrypted channels) but because there is no central server, search engine or user registry there is no central point of control (or chokehold).
There probably aren't as many titles available as through Napster, but that's mainly because it's not as well known. But if I run Gnutella now, let's see how many files there are available this afternoon... well I'm tired of waiting, it's over 3700 hosts, 413,000 files, and 7,700,000 MB. So even though there may be fewer files available than Napster, there's a lot out there.
Now, I feel it is important to support the artists and I like to have the very best audio fidelity. But if it were not for Gnutella I would have never known that I enjoyed the music of Ladysmith Black Mambazo - particularly not her rendition of the Lion Sleeps Tonight, one of my favorites from my childhood.
Does anyone know of an MP3 to WAV or AIFF decoder for Linux? I don't mean a player, rather one that saves to files. I'd like to make an all-Lion and all-Louie-Louie CD for the amazement and torment of my friends.
So why not integrate the BFS into Linux?
Just because "It's Not Invented Here" doesn't mean it's not a good technology. Remember, Linux didn't even invent Unix.
And I specifically meant to point out the similarities between BFS and ReiserFS in being journaled high-performance filesystems with integrated database properties.
Mike
This is done in the BFS filesystem which is part of the BeOS, which you can download here. The "People" address book database in the BeOS is entirely implemented in the filesystem.
The structure and implementation of the filesystem are described in detail by Dominic Giampolo in Practical File System Design with the Be File System, ISBN 1558604979.
I use the BFS in my applications I write for the BeOS - not just to store files, but I specifically use its indexed attributes for fast keyword searching in Word Services for the BeOS and I think it's the best thing since sliced bread.
While Be's implementation of the BFS is proprietary, there is a GPL'ed read-only Linux implementation of it available here
Daniel Berlin, a BeOS developer who also programs on Linux, has provided an update that works with the 2.4 kernel
I don't think the attributes are available from Linux in the Linux version of the BFS, but they could be and to do so I think would be a significant addition to the OS.
Mike
Some come with source. My favorite so far is gtk_gnutella that I run on Linux.
The one problem I notice with Gnutella is that if I leave it running for a while - even idle - I will eventually need to reboot my cable modem.
You will need an initial host to begin connecting to GnutellaNet. One is always show on the Gnutella home page.
Simply put, type in the name of a few commercial programs, or song names, plus keywords like "serial" and "crack" or "mp3" into the Altavista Advanced Search Form and you'll be on you're way to being an 31337 d00d.
So is the BSA and SPA and RIAA going to crack down on Altavista?
Mike
I tried XFMail and Post Office today and couldn't get either of them to build.
I spent about an hour with each of them. Post Office required a bunch of undocumented environment variables to be set in order to get it to build.
I think it's critically important that no software require an environment variable to get it to basically function. If it does, you can be sure the user will select a product from Microsoft or Apple instead.
This is with a Slackware 7 system.
XFMail hasn't been maintained in a year, and although it's taken new life as Archimedes it hasn't been released yet.
It is possible to retrieve it from CVS and build it that way. I'll give it a try
I provide a link to the page from my homepage named "words I live by".
The total cost of ownership includes these things and more:
- Original purchase price
- Price of upgrades
- Price of original installation
- Price of installing upgrades - including labor and document conversion
- Cost of training users
- Cost of training users to use upgrades
- Cost of downtime due to bugs
- Cost of technical support
- Cost of lost business due to bugs (can run into millions of $)
The total cost of ownership is where Microsoft has the greatest strength. There may be cases where Linux and free software has an advantage, but I'm pretty sure the perception is that Microsoft software is actually cheaper than free software and I think that may actually be the reality when the whole integrated system is taken into account.After all, if the cost of retail purchase is an issue the business owner can easily download the software from one of the many warez sites on the web, and many use pirated Microsoft software rather than use Linux and GPL'ed software legitimately.
Look at what the other side provides:
- A large pool of already-trained users (many trained in our public educational system)
- Certified engineers
- Easy-to-find solutions (retail stores, ecommerce, vars, consultants)
- Low-cost and free technical support for many items
- "For Dummies" books
What I would suggest any free software author do when they're getting a release ready is to contact each of the many free software support businesses and ask them to support your package as part of their business - so they can provide bug fixes, user training and assistance. Don't skimp on the documentation and also take the time to write a training manual, or get someone to write one for you.I also suggest including a list of consultants who will provide support for your program, either for free or for pay, along with your distribution and on your website.
Don't make the assumption that someone using your product can build it from source, read a man page, write a shell script or memorize command line options. If you write a command line program and you don't like GUI, find someone who does to write a GUI interface for your command line tool - and make sure they work well together
Remember that the words "free software" do not send the message "inexpensive" to a businessman; more like "cheap" and "low quality", like that Matisse you passed up at the garage sale because it was priced at a buck fifty.
Rather than emphasizing that linux and its applications are free, emphasize that they come with source code that may be freely modified so that technical support and bug fixes may be readily obtained from anyone.
Consider this simple principle of UI design I try to use: when a window or dialog opens, the user should be able to just start typing without having to click anywhere. This is for the case where there is some normal common choice for the normal place you'd want to start typing - but in many linux apps, there is no text entry selected anywhere when a window opens.
If you want to see nice UI look and feel, don't look to windows, don't look to mac, look to the BeOS. If Linux had the integration and ease of installation of the BeOS it would crush Microsoft and Bill Gates would be licking the penguin poo from Linus' bootheels.
- Completely GUI configuration, no scripts or text files to edit
- Use ISP/hosting service mail servers simply by entering POP and SMTP servers in the preferences
- critically importanthandle multiple email accounts from multiple servers and domains
- Be able to switch email accounts without quitting the program. Eudora for windows or mac can use multiple accounts but you have to quit and start it up with a different config file
- Able to select the "From:" address with a popup menu (and have the right SMTP server used)? This is particularly important to be able to do in replies when I want to reply from a different address than it was sent to
- No configuration of sendmail or any other mail software on my linux box required.
- Arbitrary and unlimited numbers of mail filters, that sort into:
- Unlimited numbers of mailboxes
- Scales to handle tens of thousand of letters in a mailbox, with the ability to search various ways (both in headers and body text) and to sort by header fields
Both Mail-It and Postmaster for the BeOS can do this, and for that reason I use the BeOS when I do my full mail download; most of the time when I read my mail I use elm on linux at my web hosting service Seagull Networks (one of the few web hosts which doesn't just allow shell accounts, but ssh - secure shell access).KMail with KDE lets you use POP and SMTP providers but only works with one account.
If anyone knows of a good mail client that will serve my needs as described on Linux I will gladly switch.
Pretty much the only reason I ordered the DVD option on my Compaq 1800T running BeOS, Linux and NT was so that I could watch movies on airplanes. Being a consultant who just moved away from Silicon Valley, I expect to be traveling a lot.
The machine came stock with Windows 98. Installing NT ate my hard disk so now I have to install a third-party DVD player and I'd rather use Linux than try to get a licensed one working on NT.
They say on their order page that they need to have the shipping address match the credit card address and as I'm out of the country (in Canada) for a few months I explained the situation in the comments field and gave them my phone number.
Then the trouble began.
I got a message from them asking me to "add" my shipping address to my credit card. Well, it's a debit card and you can't do that, the best I could do was change my permanent address with the bank to the place I'm staying at in Canada. I didn't want to do that because I'm not staying here permanently but I really need the equipment. The bank was happy doing that over the phone.
I got a call from Bank Security verifying the transaction so I know that the transaction was approved by the debit card company.
But when they verified my address again it still hadn't gone through. No problem, I thought, I'll just give them the number of the lady at the bank who approved the address change.
Well that wouldn't satisfy them. I ended up spending all day on the phone, alternately with my bank who bent over backwards to be helpful and who assured me they would do everything in their power to get Megahaus to send me their drives, and some obnoxious chick in Megahaus order processing who said - get this - she wasn't permitted to dial an extension when verifying my address.
It is impossible to reach anyone at my bank without dialing an extension. The branches don't even have their own phone numbers. When you dial the number you get a switchboard and the person at the switchboard doesn't have bank record information available.
The chick at Megahaus said if she couldn't get the verfication from the person who answered the phone she wouldn't send me the drives.
Now I could wait three days for my address change to register on Visa's records (isn't this the 21st century) but instead I canceled my order and ordered from Insight instead.
Mike
I miss the nice weather and the vibrant art and music scene of Santa Cruz (but I don't consider Silicon Valley a nice place to live at all; Santa Cruz is separated from it by a range of mountains).
I have met people here who are doing significant software and internet work. While I have an advantage in coming here that I already have contacts in the valley, anyone already here can use the same methods as I do to find clients:
Market Yourself - Tips for High Tech Consultants
BTW - If you get a phone number from Linx Communications it can be a local number anywhere in the US and ring you at home or the office anywhere in the US or Canada (voice mail and fax store and forward too). My business number is in Santa Cruz but rings my home phone in Saint John's.
Mike
I paid $1275 a month for a two bedroom one bath house (half a duplex). It wasn't a very nice place, had no back yard and only a tiny front yard. One car garage and tiny kitchen.
I'm getting married to a woman from Newfoundland and am staying here for a few months until our wedding. In St. John's we're renting a three bedroom house with a large kitchen, two and a half bathrooms, front and back yard. There's both a large living room and a family room.
The rent is US$500 with a US$133 deposit (no last months rent down). In Santa Cruz one of the things contributing to the homelessness that is so common there is that it requires several thousand dollars to move into a place, for first, last, plus a deposit.
But what was getting me about Santa Cruz wasn't the expense. It was the crowding. You couldn't drive across town at 5pm.
I thought that by becoming a consultant I'd get away from those insane Valley freeways, and although I didn't have to commute anymore sometimes I'd want to go downtown to the store or a cafe or something and it would really be a drag.
Housing is so tight that UC Santa Cruz houses students at the old Fort Ord Army base and Monterey and transports them in on buses, an hour's ride.
I used to live in LA and hated it there. I stayed in Santa Cruz because of the rural atmosphere and tight-knit community feel. That's not really there anymore.
We'll be heading back to the states after the wedding but for sure we won't go anywhere near Silicon Valley.
I'm very adamant, and have been for a long time that I will only accept work I can do "from my own office" - which means my home office. You can do this too. Screw the cubes at the valley, stop working for the pointy-haired boss. Throw away your flip tie!
Read how I do it at Market Yourself - Tips for High Tech Consultants
You don't have to move to Newfoundland but you'd have the choice to at least not drive on the freeway anymore if you stay in the valley, or at least move somewhere reasonable that you can afford.
Mike
Somewhere along the line I got a circular slide rule that I still have. Don't have much occasion to use it these days, but I still know how.
And while I write in mostly C++ these days, I still know assembly code, and one way I optimize my C++ is to compile the C++ to assembly rather than machine code, and modify the C++ code while observing the assembled results. Not a lot of kids these days can do that!
Mike
This is probably the hardest path of all. You might think that's it's exciting and high pay and all, and yes while sometimes the paychecks are fat, all too often the clients are bastards and I'm up all night programming on something the client isn't going to pay me any more for and maybe I'll end up getting sued.
I've spent more than one evening searching through the house looking for change dropped on the carpet so I could buy food with it. This because of bad clients. So I don't suggest it for the timid.
On the other hand, it is a better life. I was rotting in my salaryman job. I hardly ever showed up for work more than four hours a day on the last perm job I had largely because I didn't give a damn. But I put in long hours now, because I enjoy it and I'm happy to give the hours when I need to.
It's important to make the distinction between making a hard quality effort and just pushing at the keys all night. I worked a 29 hour day once when I was 23 or so, on my first programming job, and I would never do that again.
On the other hand, I spend a significant amount of time these days, and have throughout my career, studying the fundamentals of my work.
I've been reading STL Tutorial and Reference Guide by Mussel and Saini lately, and I think the most inspiring Slashdot feature since I became a regular reader was the C++ Answers from Bjarne Stroustrup. I'm starting to work in a more thorough way at understanding C++ in a fundamental way, and I believe this will be reflected in my work.
Note that this is different than learning the latest technology-of-the-day, say COM+ or even Bonobo. Sure there's lots of great technologies available for our use and go ahead and learn how to use them, but don't waste a lot of time learning them in depth. Learn the fundamentals in depth.
Even C++ will go the way of FORTRAN someday, but there are some essential principles there that are of lasting value and it is those things that I am trying to glean from my studies.
This is what I advise you to do to.
By the way, I didn't just end up as a consultant. As you might guess from my article Manic Depressive Geeks early on in my career I felt my prospects for a traditional job were poor and I would do better to start my own business where no one could take it away because of my history of mental illness.
I soon found that I really didn't know enough so in the jobs I did get I was very determined to learn as much as I could, and also early on settled on the strategy of always choosing jobs based on what I could learn from them for the future, rather than what they paid or what potential for advancement they created.
Mike
I give a link to my original policy on recruiters and agencies in which I say that I will work with them under strict conditions - conditions that they would almost never meet, yet I held out the policy to be fair.
But because of the general ignorance and downright rudeness of headhunters and recruiters, I felt it was time to take a stand and not just stop working with them, but be public about it and encourage others to stop working with them also.
Sometime soon I will write a page for employers about why they shouldn't work with recruiters either and what they can do instead.
Right now though I have a helpful page entitled Market Yourself - Tips for High Tech Consultants which explains in detail how I find good clients without the use of agencies or recruiters, and how you can too. It also goes into further details of the problems of working with recruiters and why I think they're an all around bad idea.
And if you're a recruiter reading this, be sure to read the Word I Live By.
Mike
The creep was working with him as a potential business partner when he suddenly and mysteriously backed out. A few months later my friend did a trademark registration search on the name of the domain this guy was working with him on when he found that this creep had registered my friends domain as his own trademark.
On the trademark registration form you have to swear under penalty of perjury that you have listed all the potentially similar trademarks that you are aware of. I think simply stealing one that you were previously working with as a partner would count as being aware of it don't you?
My friend isn't going to fuck around with suing the guy or getting his trademark back. He's just going to put the guy in federal prison.
How could this story apply to patents?
Mike
Tilting at Windmills for a Better Tomorrow.
Apple had always promoted the use of its new "Apple Event" technology by giving spellcheckers as an example; instead of propriety OEM spellcheckers that are different for every application, the user could have a single speller that is shared among all their applications. Since Working Software published Spellswell we felt we should take the lead in this.
It works really well and in fact can be used for any text operation, such as grammar checkers, address books, HTML verification and the like. Text encryption would work fine and I was working on a text encryptor but never finished it. I since led the binding of it to the BeOS (where is uses BMessages instead of Apple events) which you can read about here and I'd like to make an XWindows version, perhaps using the Corba API's provided by Gnome.
Recently I was contacted by someone who was searching for prior art. It seems someone patented interapplication spellchecking protocols and he has the hope that Word Services was developed early enough to invalidate that patent. I don't know the patent in question or who holds the patent.
What I especially have a gripe about is that I only started working on this method because the idea of it had been promoted for several years by Apple as an obvious application of a new technology they were promoting.
Mike
Note that I generally prefer programming in C++ for my own applications for various reasons (I like manual memory allocation and pointers, and tweaking code, and stuffing bits and stuff) but that's not what a beginner needs to know about, they need to get stuff running quickly and easy without ever having to reboot their machine because of a pointer bug.
I'm not sure what are the right books for a kid, maybe "learn Java in 21 days".
One nice part is that once you teach them how to write an Applet they can show off to their friends on their web pages.
For an IDE, I suggest MetroWerks CodeWarrior for Java. Get CodeWarrior Pro if you want to do C++ too. CodeWarrior supports a variety of processors and OSes. When they move over to Linux (and they will move over to Linux after your gentle urging), they can use the CodeWarrior IDE on Linux for a familiar UI and won't have to write makefiles.
That's the other thing - first way to scare off a beginner is to require him to write a makefile to compile a project.
Mike
Why You Should Use Encryption
Note that while, yes, encryption is processor expensive, I suspect the work to decode all the JPEG images on a "content rich" website is probably a lot greater than the work required to encrypt and decrypt all those images for transmission.
The beauty of today's modern processors is that there is really no problem with just running encrypting everything. If the BIOS would support decrypting the OS as it boots, most of us would have no objection to encrypting pretty much everything on our disks, maybe even including the virtual memory. Really.
My 450 MHz pentium III laptop has no problem playing MPEG movies off a PGPDisk encrypted volume that is stored either on NTFS or FAT (where the encrypted volume is either NTFS or FAT itself - and you know FAT's not a fast filesystem).
Where the performance issues really count is for the servers and for those you'd certainly want hardware encryption. I'd be happy to donate a couple hundred bucks to Slashdot if it went toward implementing an SSL encrypted slashdot server, wouldn't you?
Clients have no problem with encryption in software. PGPDisk you have to pay for but I believe there is filesystem encryption for Windows PCs that is free. Let's see... ScramDisk, lots of good links at Yahoo 's encryption software page
I remember seeing an australian partition encryption utility there, I recall it implemented an australian government encryption standard as well as the more common ones, but I don't see it anymore.
And of course there's the linux encrypting kernel.
No, there's no reason not to encrypt. I think the main obstacle isn't export controls - it's user interface. Encryption is hard to learn. Compare using an encryption tool to, say, downloading an image from your new digital camera via USB on Windows or Mac. It should be really easy or no one will use it.
Mike
I'd like to see Slashdot, for example, have the option of being served up on 128-bit SSL. I mean all the pages on the site. It would probably be best for the slashdot folks if this were done with hardware encryption support.
For one thing, encrypting all one's casual traffic helps to provide cover for people who really do have something to hide.
I recommend using a web hosting service which provides secure shell login access. One such web hosting service is Seagull Networks. Here is how I retrieve my POP mail through SSH port forwarding. The tip entry gives BeOS specific instructions but the basic idea should work on any platform for which SSH is available.
And yes I know my email is sent to seagull in the clear, but what this does is generate encrypted traffic (generally a good thing) and also prevents my ISP from snooping on me unless they hack into my hosting service.
If you work in a company and are concerned that your employer may be snooping on your personal email (you're not mailing out your resume are you? Know how an ethernet sniffer works?) then you should definitely use SSH for your mail.
Also on my laptop I use PGPDisk to encrypt my Quicken Checkbook and source code on NT, and the Linux Encrypting Kernel to encrypt source code on Linux. If someone steals my laptop, my clients won't have all their trade secrets stolen too.
Mike
Rather than a single application, gnutella is a public protocol with numerous independent implementations, and it is architected to survived both nuclear blasts and lawyers - there is no centralized server.
There is some anonymonity, although it is far from perfect (I'd like to see both the downloads and searched done through encrypted channels) but because there is no central server, search engine or user registry there is no central point of control (or chokehold).
There probably aren't as many titles available as through Napster, but that's mainly because it's not as well known. But if I run Gnutella now, let's see how many files there are available this afternoon... well I'm tired of waiting, it's over 3700 hosts, 413,000 files, and 7,700,000 MB. So even though there may be fewer files available than Napster, there's a lot out there.
Mike
(And yes, I know you're likely to have to reboot or go to someone else's machine to view the animation, but trust me it's worth the effort).
Mike