last updated:09 Feb 2004 15:37 UK time
|
 |
|
(Comments added for week ending Sun 08 Feb 2004) | View Other Weeks
|
|
| Why does the boot process take so long? | Sun 08 Feb | J. D. Trollinger |
| They can put a man on the moon, dagnabbit, then why cant they make a Windows computer that boots in something less than 12 eternities? Think of the quadrillions of lost man-hours spent sitting idly in front of a booting PC.
Seriously, though, is there really no way to make the boot process go much faster? |
| Sun 08 Feb | Kevin Sanders | What OS are you running? When I first installed Windows XP I was very impressed with the boot up speed. I remember reading an article in MSDN Magazine explaining how they had made that a priority. |
| Sun 08 Feb | Philo | 1) Make sure you have a 7200rpm drive
2) Defrag your boot drive
3) Go through your programs and remove stuff you don't need
4) Get a copy of Startup Cop somewhere and make sure you're not loading crap you don't need
5) Check your services - don't run stuff you don't need.
6) Run Adaware
7) Make sure you've got plenty of RAM. It's so cheap you might as well make sure that's not an issue. :)
Philo |
| Sun 08 Feb | James Wilson | Startup is always fast after the first install. Once I've installed everything I use, its much, much slower. Even after eliminating all unnecessary startup programs.
This on a machine thats currently top-of-the-line Intel specs (I875P, 3Ghz P4, DDR400, etc) with gobs of memory and fast SATA disks. |
| Sun 08 Feb | Li-fan Chen | Computer geeks never shut their machines off. Since they designed this stuff it never was a priority, no matter what the marketing drones say otherwise. Even if XP gets it down to 20 nanoseconds, your various spyware, antivirus, instant messengers, xsnow, DHCP client, all has to initialize right? So unless all these guys can be in memory ready to go in a heart beat--that quick boot nirvana will never be achieved. |
| Sun 08 Feb | Dennis Forbes | Interesting thing about anti-virus software: For well over a decade now I've dreamed of the day when I'd have a computer powerful enough that the irritating resource hogging of anti-virus software would be negligable -- that time still hasn't come. I really think it's all relative, and when you're used to using a cutting edge machine, that slight speed decrease is still appreciable.
Of course I've never had a virus since the Atari ST days, so it would have been wasted cycles regardless. |
|
| Web site virtual roots | Sun 08 Feb | Kevin Sanders |
| Say I have the base URL www.domain.com and I want to setup virtual links like so:
www.domain.com/CompanyA
www.domain.com/CompanyB
www.domain.com/CompanyC
etc...
The /Company* suffix should not be a virtual root or a subdirectory. All virtual links would point to the same page, which would be able to see what link was actually entered:
<%
Hypothetical code for Default.asp
Dim currentLink
currentLink = ...
Call Response.Write(Hello & currentLink)
%>
Is this possible?
My platform is IIS running ASP or ASP.NET. |
| Sun 08 Feb | Clay Dowling | It's entirely possible. Check out the SCRIPT_NAME environment variable to figure out what name your application was called by, which will include the path. |
|
| Microsoft: Delphi fans? | Sun 08 Feb | TJ Haeser |
| First Anders, now Chuck and a bunch of others? Whats a better testimony to Delphis quality than MS hiring the minds behind it? |
| Sun 08 Feb | no name | What's a better testimony to its demise? |
| Sun 08 Feb | TJ Haeser | Well, you've got a point there, too. |
| Sun 08 Feb | Har de har har | Did Microsoft hire any of Borland's marketers? |
| Sun 08 Feb | T. Norman | Borland should have hired Microsoft's marketers. |
|
| Automatic Hands Free Backup | Sun 08 Feb | Fuzzball |
| Hi guys,
Does anyone know a good backup program that can automatically do hands-free backup to a secondary hard disk?
By hands-free, I mean: Set a directory to monitor, then when a file changes, automatically back that file up, keeping the last x versions of that file.
Like a Mirra (http://www.mirra.com), except software based.
This would really come in useful as a simple version control system, as well as for files that are not traditionally associated with version control (like versions of a jpeg Im editing).
Thanks in Advance! |
| Sun 08 Feb | www.marktaw.com | 12 Backup & 2nd Folder from 12ghosts.com
Used to be cheaper than it is now. I think there's another backup program that gets mentioned here a lot, but I don't know what it is. |
| Sun 08 Feb | www.marktaw.com | I take it back, it's just 12backup, the features I thought were in 2nd Folder are actually all in 12 backup. |
| Sun 08 Feb | DJ | This is not a stealth marketing ploy - ok?
Try SmartSync Pro from
http://www.smsync.com/
This can do exactly what you want. I use it to sync up my work and home computer. I also use it to back up files to a second hard-drive. |
| Sun 08 Feb | Fuzzball | Hey, thanks guys. I'll check it out. |
|
| Trusting Book Reviews | Sun 08 Feb | Ram Dass |
| I mostly obtain tech books through Amazon - since the cuut backs at where I work this hhas been through my own $$$.
I am mad at the number of dud books I have purchased - despite the favorable reviews on Amazon. I also now look at the sales rank - if it is < 10 000, then I make a purchase. But this is still producing some duds - too many for my own $$$.
I try to track down the books at B&N to have a preview but their selections are not always as comprehensive as Amazon.
Surely Amazon must start retweaking its review section to prevent the skwing of reviews - it is a major pain to send books back to them. |
| Sun 08 Feb | www.marktaw.com | I agree.
After reading 100+ reviews on a book on marketing I realized that nearly all of them were variations on the same theme:
This book is highly usable / I put it into action right away / I never knew how military brainwashing techniques could be used in advertising / I saw an immediate increase in responses to my ads.
I would say 100 of the reviews were those sentances with different phrasing. The remaining 5 or so were negative reviews that said the book was stupid.
It was about then I realized that the author probably wrote all the reviews himself. |
| Sun 08 Feb | Evgeny Gesin /Javadesk.com/ | I reviewed a number of books published by O'Reilly. I usually focus on what is good and not and posted in my user group. I usually spend hours on the web to find good books to purchase, it's not easy to select best titles. |
| Sun 08 Feb | Dennis Atkins | It is pretty difficult. I read *all* the reviews each time, paying particular attention to specific praise, and to specific criticism. Even a little *intelligent* criticism about a book is often key. Most people seem to want to give a generic good or bad review, but fortunately those reviews don't have any depth and can be eliminated.
I also read sample chapters and check for reviews on other sites. I'd say about 40% of the books I get now using this method are really good ones, and 10% more at least worth keeping, and the other half I don't bother finishing.
This system is better than my old one where only 3 in 10 or thereabouts was really good or worth keeping. |
| Sun 08 Feb | Brad Wilson | I'm afraid you can't really trust strangers to review books for you.
The three techniques that work best for me: ask friends, and trust publishers. A few publishers basically only put out great books. O'Reilly is one mentioned earlier; another is Addison-Wesley. And finally (and obviously), trust authors you already know are good writers.
I'm getting out the habit of reading books, though. I've found that by keying into a select few blogs, I can find much of the information I need anyway. I'm rarely after an introductory text any more, so it's always the esoteric things (that nobody's written about) that I'm trying to find out. |
| Sun 08 Feb | www.marktaw.com | Strange, I've always felt I've learned more - both in depth, and new things I never would've known about otherwise from books.
Besides, what else am I going to do during my hour commute on the train? |
| Sun 08 Feb | sally | Since I've been out of work for the past six months and taken to drinking heavily during the day, I find that the quality of the book reviews I write has gone down. I used to atleast read the books before reviewing them, but now I usally base my reviews on what other reviewers have said and whether or not the cover of the book commands my attention. A good rule of thumb is to ignore the reviews I, and people like me, write. |
| Sun 08 Feb | T. Norman | I ignore generic comments expressing like or dislike for the book, and look for specific examples of why the reviewer thought the book was good or bad. I've found that about 3 in 5 books I buy are good.
I also look for used books on eBay which makes the risk of buying a bad book less hurtful. |
| Sun 08 Feb | sgf | I second T. Norman's advice about used books. I've gotten some used books through Amazon that seemed new and still had the CD. $15 instead of $50. |
| Sun 08 Feb | www.marktaw.com | by ebay, do you mean Half.com? I used to get a lot of books through Half, though typically I purchase through Barnes & Noble because of their generous return policy. |
| Sun 08 Feb | veal | Hmmm... could it really be true that there were some hidden costs to abandoning our real bookstores in favor of the immediate dollar-saving gratification of buying online? And now the few remaining bookstores in your town don't carry a broad selection for you to examine?
Damn, what next? You gonna tell us that shopping at WalMart had unseen consequences for our communities?
Stop. Stop. This can't be true. |
| Sun 08 Feb | www.marktaw.com | http://www.google.com/search?q=category+killer+definition |
| Sun 08 Feb | no name | I wait until somebody I trust recommends a book, then I read all the bad reviews it gets on amazon to see if it's something I want to bother with. |
| Sun 08 Feb | Evil Programmer? | A potentially un-ethical solution would be to read it first. I have found that most tech books in my domain are available as e-books orpdfs online somewhere, usually IRC. This is obviously illegal, but perhaps the justification could be the same as software piracies' purported claims? Try before you buy?
I have checked the contents of several tech books this way. If they are good, I buy them. If they aren't, I delete them and stop wasting my time. Is this too immoral to consider? Or maybe this is the way that things *should* work? Hmmm... |
| Sun 08 Feb | Mike Swieton | I usually just restrict myself to recomendations from JoS. I've had great success with this :) |
| Sun 08 Feb | Gareth McCaughan | Some techniques:
0. Do not be afraid to ignore many reviews *completely*. If you read a review and it's obvious that the reviewer is an idiot, or hasn't read the book, or has needs or interests utterly different from yours, then you have to act like it simply didn't exist. You will find that a substantial fraction of reviews are worthless, so ignore the averages.
1. Read reviews to find out concrete facts about the book. 'Some random person on Amazon rated it 3/5' is not a concrete fact.
2. Ignore reviews that gush or rage. They tend to be written by idiots. If you can tell that the reviewer is not an idiot, that's different.
3. Look out for reviews by people whose taste you know. You're unlikely to find many of those at Amazon, but there are a number of individuals' book review sites out there...
4. When reading a review, try to work out what sort of person the reviewer is; ignore reviews where you can't tell at all (they are generally too vague) and ones where you can tell that the reviewer is very different from you.
5. When at all possible, read some of the book first. (I'm fortunate: I have access to a good university library, though it doesn't have anything like all the books I'm interested in.)
6. Don't buy things on impulse. Stick them in a list (I have about 300 items in my amazon.co.uk wishlist, which I maintain purely for my own use) and reconsider when you're about to buy.
(My personal success rate for recent Amazon purchases is about 80% good : 20% OK : 0% bad.) |
| Sun 08 Feb | Nick | I've seen quite a lot of well written reviews on Amazon. I have never been dissatisfied with any purchase from there that 1) had a 4-5 star rating; 2) had been rated by at least 15 people; 3) at least a couple of the reviewers gave concrete reasons why they liked the book.
Another good source for books reviews is the ACCU book review section: http://www.accu.org/bookreviews/public/index.htm |
| Sun 08 Feb | Foolish Jordan | The best way to get book reviews is to find people who don't make money only for good reviews. Just as stock analysts make 90% of their recommendations to 'buy' becasuse that generates commissions for their company, you can't trust reviews on Amazon because they are only useful as long as they generate revenues for Amazon (see http://www.corante.com/bottomline/archives/001253.html for an allegation). Note that even Joel's reviews are suspect because Amazon gives him a few cents for each person that buys based on his reference. Given the traffic that JoS gets, I'm sure that adds up to a lot of cents.
Of course, just because Joel gets money from the recommendations doesn't mean that his recommendations are bad, just that you have to take them with an extra grain of salt. Remember who's getting paid and why and your life will go a lot more smoothly. |
|
| Programmed Death Of The Programmer ? | Sun 08 Feb | Hot Croissant |
|
Do you reckon that we can still recommend to a 18 years old
younger to become a Software Engineer ?
Do you think that programming will soon be a viable career compared to finance or marketing ? |
| Sun 08 Feb | Hot Croissant | Do you think that programming will soon NOT be a viable career. |
| Sun 08 Feb | Chris | Yes, there will continue to be work for smart motivated people in software development. |
| Sun 08 Feb | no name | In the US I wouldn't recommend that someone begin a career in computer programming unless they somehow knew that upon graduation they would be able to obtain a position or that person was set on being an entreprenuer or consultant. Most likely job in the US would be a sysadmin, tech sales, computer service etc.
There are still a lot of people who think that marking up text is programming and that because they marked up some text and uploaded a file that they deserve 50k a year plus paid vacation. |
| Sun 08 Feb | ;-) | Do 18-year-olds listen to recommendations? |
| Sun 08 Feb | Eric Debois | ...Should they? |
| Sun 08 Feb | Dennis Forbes | Can you swagger through university, assured of a high paying job on graduation as it was in the late 90s? No. Can you work hard at something you love, and come out with the tools to possibly get into a great field? Yes. Just as it is with virtually all careers and fields and study.
It is unfortunate, but not everyone graduates with a great job that is in their field of study. Perhaps it's exaggerated in computer science because of the high number of introverts: While people with english or history degrees just make a transitions into sales, or any of dozens of other non-specific but liberally trained and intelligent careers, computer science grads are much more likely to keep hammering away at computer science forever. |
| Sun 08 Feb | FredF | 20 years ago, we were told that, thanks to tools like dBase, developers would soon be out of business, as users would write their own business applications.
Mmmm... |
| Sun 08 Feb | guilty as charged | Given today's accelerating rate of change in technology, it is foolhardy to advise young people on any particular career for the long haul; chances are they'll have to retrain at some point no matter what they go into. A career in programming (or any other job based on rapidly changing technology) is, and will remain, a moving target.
My career advice is to become an entrepreneur, whether it is in programming or whatever you like doing best. Develop a product or service for a need you think isn't being met. Maybe it will sell and maybe it won't; but you can always try again with another idea. Whatever happens, it beats working on a product or service for someone else, who then makes the profit from your efforts--and lays you off when the business declines/is sold off/goes bust. |
| Sun 08 Feb | Dennis Atkins | I was telling kids to stay out of programming, but recently I have become aware of this new meme - 'Digital Pearl Harbor'. The idea is that some terror attack is coming that will be exactly the same as the proposed y2k disaster - bank accounts will be lost, gas pumps wlil stop working, everyone without gold will be out of luck for buying food. The only solution? All buffers must be made secure! All programs must be made CERTIFIED secure or they will not be alloweed to be sold by 2010. Companies will be legally and criminally liable for any bugs or crashes.
Legislation is coming! Refactor your self into a security or lock down analyst and you'll be all set. It's the next big thing. |
| Sun 08 Feb | Immature programmer | Speaking as someone who has a CS degree and has had some success in software development, I would still recommend AGAINST CS and a career in software development
True, the very smart and motivated can do fine. If a kid writes code as a hobby and has the mentality of 'I just can't think of anything else I'd rather do', ok, fine, they should go for it. Otherwise, it's not worth the trouble of spending all that time in school only to endure modern dysfunctional corporate culture when there are other, more rewarding careers to be had.
Guilty as charged said
> My career advice is to become an entrepreneur, ....
>Whatever happens, it beats working on a product or
> service for someone else, who then makes the profit
> from your efforts--and lays you off when the business
> declines/is sold off/goes bust.
Yup, strongly second that.
> Most likely job in the US would be a sysadmin, tech
> sales, computer service etc.
Umm ... isn't that true today. Most jobs for average CS graduates are VERY boring with mediocre pay.
True, outside of running your own business, there's interesting work to be had if one works hard enough. Like 3D graphics/game development, embedded software/firmware, real-time systems, the hard stuff. But those aren't exactly gold-mines. Do it only if you love doing it is what I would say. |
| Sun 08 Feb | veal | You ought not recommend *any* career to a youngster. Let them find their own passions.
And on the other side of the equation, for the sake of my sanity, please, please, please don't steer anyone into this field that didn't come to it out of a passion to build things and an especially natural aptitude for programming. We have far too many of them to dispose of already. |
| Sun 08 Feb | www.marktaw.com | Reminds me of a conversation I overheard in a TGI Fridays a few years ago during the .com boom.
'I was thinking of learning Java. With Java I can work anywhere in the country, I can be near my kids in California, I can stay here, I can go down south... Or I was thinking of learning Windows.'
There are two questions raised here.
1. Someone approaches you whose passionate about programming and has created a small app that does xyz by the time they graduated high school. Do you recommend they study computer science in college as a possible career path?
2. Someone approaches you who isn't sure what to do with their lives, but thinks programming might be a good trade to get into. They're creative and it's skilled rather than unskilled, and less annoying than management or marketing or banking. Do you recommend they get into programming?
I suspect that boom or bust your advice would be basically the same for each of them, just with different cautionary tales in each instance. |
| Sun 08 Feb | Philo | Echoing the sentiments here, but especially veal's - if someone asks 'what should I study?' then you simply don't answer. (Or you at least say 'whatever you enjoy')
If they ask 'I really like programming - should I go with CS?' then of course.
Studying what you're passionate about is always the right answer. If nothing else, you'll tend to get higher grades, which is never a bad thing.
Philo |
| Sun 08 Feb | realist | No, it's not a field to go into, unless you want to spend your career competing with cheap overseas labour.
If you think you're immune from this by dint of superior skill, you should buy a lottery ticket. |
| Sun 08 Feb | . | 'No, it's not a field to go into, unless you want to spend your career competing with cheap overseas labour.'...
...say the fear monger. In reality India has had a significant IT sector since the early 90s, and if anything India is pulling itself up (salaries are sky rocketing) rather than the other way around.
The whole India thing is tha natural result of an oversized IT sector in general (which it was -- grossly. Most firms were spending far too much on IT): It was a last gasp attempt at getting some projects done within a constricted budget, but then things equalize. |
| Sun 08 Feb | AnonAnonAnon | Recommend this field like you would to someone becoming an artist. Do it because you love it, for it is not going to pay the bills in most areas.
With the Walmarting of American business, unless you can create your own business (recognizing that over 60% of first time businesses fail), you will be working at low income, based on your education, wages. |
| Sun 08 Feb | Sum Dum Gai | You should tell them that being a programmer is just like being an accountant, only you get less respect, and you only get to work with computers, not money, so there's less oppourtunity for white collar crime such as embezzlement. ;) |
| Sun 08 Feb | realist | What's your point, dot number 1003? |
| Sun 08 Feb | T. Norman | It isn't fearmongering to say we are competing against cheap overseas labor. It's reality.
It's only fearmongering to say that we *can't* compete against them. Because we CAN compete. But it will require dedication to be able to provide more price/performance than the cheap laborers. No more careers based on nothing but 'teach yourself in 21 days'. No more careers based on learning one language for a mainframe and sitting down for 25 years without learning anything else. |
| Sun 08 Feb | Sum Dum Gai | You can compete, but why bother?
Why bust a gut putting in all that extra work, when one can get a much easier job in some other field where you don't compete against cheaper overseas labour to the same extent, and hence get higher pay?
That's the problem I see with outsourcing jobs to the third world. Sure the good people in first world countries probably can compete. I'm just not sure that all of them will want to bother.
If you start to lose a significant percentage of the best people from IT, then IT in the first world is dead. It's only profitable as it is because the best people carry the rest. Lose the best, and you may as well offshore it all. |
|
| Quick hardware / VS.Net question | Sun 08 Feb | Nick |
| Im turning to the JoS crowd as a last resort. Ive looked everywhere else for answers to this.
Anyway, Im running VS.Net 2003 on my PC. Often when I leave it idle for long periods, open and close other applications, then switch back to it, it hangs. It gets about half way through the redraw and just stops. The CPU usage chart in task manager shows 99% with no other apps running other than services, Norton, and the other usual suspects.
My PC has 512MB RAM, so I figured maybe Id bump it to 1024 (which is what Ive seen recommended). The problem is that I have a Dell Dimension 8200, and Dell sold 2 versions of it - one with a 400 MHz front side bus and one with a 533 MHz front side bus. The 2 versions take different types of memory.
Ive looked all through my system settings and cant find out what my FSB speed is. Anyone know where I can find it?
Also, before I throw a bunch of money at this problem, has anyone else experienced problems with VS.Net like this? |
| Sun 08 Feb | Mike Treit | I don't have an answer for your particular problem with VS.NET, but a couple of comments:
1. Adding RAM is almost certainly not going to help. The fact that your CPU is saturated is completely unrelated to the amount of memory you have. Now, if the issue was that your hard drive was thrashing like crazy, then maybe you are paging a lot because you are out of memory - but that doesn't sound like the issue.
2. Inspecting the working set and pagefile usage of the processes on your system should confirm that the issue is not that you are running out of memory.
3. You should check what process is running the CPU up to 100%. If it's really an issue with VS.NET, it will probably be the devenv process.
4. Try using the performance monitor MMC snap-in to check what else is happening with the process in question: is it stuck doing file I/O? Spinning up large numbers of threads?
5. Using FileMon or RegMon (or similar utilities) to see what the process is reading and writing might give some clues.
6. Attaching a debugger to the process and trying to get a call stack (though you probably won't have debug symbols, so it might be tricky) or stepping through the code in the offending thread(s) might give some indication of where it's having problems. |
| Sun 08 Feb | Mike Treit | By the way, if I had to guess, my first bet would be on a bug in your video driver...make sure you're fully patched and have up-to-date drivers for all your hardware. |
| Sun 08 Feb | Kentasy | Have you tried using AdAware or something similar to clean your PC ?
Maybe a small app like WinRam turbo will useful in clearing up memory...
I remember way back when using the beta documentation would steal all my memory - don't use the local MSDN help. Use Google instead... :) |
| Sun 08 Feb | Philo | Regarding what kind of Dell you have - try support.dell.com and put in your five-letter product key (on the back or bottom of your PC). Alternatively, get SiSoft's Sandra which will tell you the FSB and should identify your current memory.
The BIOS should also tell you. :-)
Philo |
| Sun 08 Feb | Robert Jacobson | Definitely don't worry about extra RAM... VS 2003 ran adequately on my pokey laptop with 256MB. Something's corrupted.
Why not just do a reformat-and-reinstall-Windows? Usually good for all that ails you. (Insert snarky /. comment here. ) |
| Sun 08 Feb | Dan G | I highly doubt its a hardware problem, more a VS.NET problem.
A re-install might or might not fix it, or possibly you can shut it down when you aren't using it. |
|
| Business idea pursuit | Sun 08 Feb | Pursuer |
| A quick disclaimer... I am not entirely sure if what I am about to present here has ever been discussed. I did a quick search, but the keywords I picked returned many seemingly irrelevant topics. If I am repeating an earlier topic, I apologize.
Now that thats out of the way, here is what I would like to talk about. To give you an up front summary, I would like to have my own company at some point in time. I have been working for corporations until now, and I would like my drone days to end at some point.
Obviously I need an idea to start a business from what I generate some income. I do get an idea or two every now and then which could potentially be turned into a business. I have to admit that I never had an idea that has never been thought before. Frankly, I dont really see it happening any time soon either, but you never know. :)
My ideas are often improvements on what already exists. More like my version of if it was done this way, it would be a lot better kinda things, or along the lines of I wish I had this feature in this product, or this is stupid. If i had done it, I would have done it this way... Every now and then, I also get seemingly not so common (commodity) ideas, but when I do a google search I realize there are a few startups already working on the thing or something very similar.
Assuming that my ideas are already thought of things, then the question becomes, do I go ahead and try to get my business up and running and perhaps succeed, OR, forget the whole thing since it is being done already. I suppose the answer depends on what the idea is, who is already doing it, how saturated is the market, etc.. etc... I realize there is a lot to be discussed in this area, but I dont want to discuss any of this since there is plenty of forum discussions and articles/books on this stuff. What I want to concentrate on is a few specific examples, and perhaps your own experiences if you care to share so that I might perhaps get some insight.
Lets start simple. The pizza business... Just in my neighborhood, I know of 5 local pizza places not including Papa Johns, Pizza Hut and Dominos... I always wonder how these guys stay in business. What makes a guy or a gal to say I want my own pizza business damn it!. Obviously there is a ton of competition, but I know the pizza places in my neighborhood have been around for as long as I have been around, so they must be making at least enough money to stay in business. I personally would think starting a pizza place is risky due to market saturation and the fact that I personally dont think there could be enough product differentiation to say My pizza is better in such and such ways. The existing pizza places do that, but I -as a consumer- dont believe them. I have never said I want Papa Johns pizza because they use fresh ingredients even if they might think thats whats bringing me to their product. :)
This example can be extended to other food related products. How about McDonalds, Burger King and Wendys? If I want a burger, I go to the closest one unless I get snatched by a KFC before I get there. I cant see enough of a product differentiation amongst them. I dont see other local burger joints popping up in my neighborhood probably for this reason. I dont even know how they stay in business when there is one of each of these places every 100ft as far as the eye can see.
Let me jump to a more technical example. How about internet search engines? I know of a dozen but I have been using Google almost exclusively for quite some time now. Was it always that way? Nope. I used to use Altavista a lot... I think I heard Google from a friend one time, and I have been hooked ever since. The mind boggling part of Google is that before it existed, there were many other search engines out there already: Yahoo, Excite, Altavista, Metacrawler, Lycos... Some died, some are still around. So apparently one day the founders of Google said We can make a better one damn it!, and they did it, and it worked... But if I were them, I would say, The market is saturated. I better move on. I couldnt take it up against Yahoo and others. Google obviously works great. It returns very good results. That is a differentiating factor now, but back when they started, that couldnt have been a differentiating factor because it is every internet search engines goal to return the most relevant results... Just because Google was intended to be better doesnt mean that goal would be fulfilled... It is almost arrogant for the Google guys to have even thought that they could do it better. Obviously their business plan said more than We know we can do it better. Just watch and see. I wonder what it actually said. :)
Another example... The company I currently work for designs, manufactures and markets industrial motion controllers. Heck, I am not even sure how we differentiate ourselves. When I turn the pages of a Motion Control magazine, I see zillions of products that look just like ours. They claim to be achieveing the same things... How are we still in business? Well, I dont know. I am not management. :) Clearly, we do have some things we do differently, or better, or cheaper so that customers pick us, but these things we are better at are not immediately apparent to me even though I design the damn products. As you see, I am the engineer that makes it happen, but I dont come up with the ideas.
Similarly throughout history there have been industries with intense competition. For example the auto industry once had between 300-500 companies making cars. Today we have far less, but still seem to be quite a bit to me.
There are zillions of products with equivalent competitors: TV, toothpaste, shoes, glasses, computers, furniture...
To summarize this long post, what I am getting at is, when I do have an idea that is already being used to generate cash for others, how do I know that I can jump in, create a similar product and try making money? What tempted Burger King to join McDonalds and expect to get profitable? What thought process (business plan) OKed Pizza Hut to coexist with Dominos? How can Lowes expect to make money when there is Home Depot? So on and so forth...
I realize that I dont have the full understanding for I have no official training other than engineering. I could have made some bad assumptions in my examples. If so, please correct me so that I can learn.
When those of you out there with your own businesses that went into a marketplace which had products similar to yours, what thought process did you go through and end up at the conclusion that you can still make it? How about you Joel if you are reading these lines?
I would like to thank you for reading my post if you actually made it all the way down here!! :) |
| Sun 08 Feb | Mike Treit | Having a great idea is only the first step in creating a successful business.
I once took a class focused on starting a small business and it was extremely valuable to learn how to write a business plan, how to sell your idea so as to get financing, etc.
The majority of all start-up companies fail, and most of the time it is not due to having the wrong idea (though that happens as well), but executing on that idea improperly, not getting enough money up front to stay the course during the inevitable hard time getting the business off the ground, etc.
I should say as a disclaimer that I don't run my own business.
In fact, the biggest thing I took away from the class was that I never want to run my own business: the pain of dealing with all the minutiae of taxes, payroll, personnel, etc. was the antihesis of what I enjoy doing.
So: learn the 'business' side of running your own business before you decide to take the plunge, and make sure you understand what it takes to survive once you do get that great idea.
Good luck. |
| Sun 08 Feb | Nick | Have you read any of Eric Sink's articles on MSDN? He's got a series going on starting and running your own software company. Also, he has a number of relevant articles on his blog.
The one on choosing your competition is good: http://software.ericsink.com/Choose_Your_Competition.html |
| Sun 08 Feb | Aussie Chick | Just to pick up on a couple of things you said
'I personally would think starting a pizza place is risky due to market saturation and the fact that I personally don't think there could be enough product differentiation to say 'My pizza is better in such and such ways'. '
and
[although in reference to the differences betweem Mcdonalds, Wendy's etc. Though overall used to explain the scariness of market saturation] 'I can't see enough of a product differentiation amongst them.'
I will reflect on this analogy, we buy our pizzas from La Porchetta, a small local run (if not then a very very small unheard of franchise) pizza place. Make the yummiest pizzas around. My brother-in-law swears by some place by the some video store up on High Street. Speaking of which a good number of the pizza places are right beside a video store. Our favourite video store is beside one, our second favourite video store is beside La Porchetta's....
If we are not eating pizza we are eating Chinese, we only ever buy the chinese from Westlake chinese, this is not only because it has the funkiest chinesiest dine-in (an old house, with round entrance ways to the rooms), but they make the best lemon chicken in town....
I am rambling to make a bit of a point. There are many ways to stand out from your competition, even sometimes your price can be higher and you still stand out. I don't care about prices when I eat chinese, because I know one store that it just so good.
As for pizza, I have one big chain we will use (dominos) but I would prefer La Porchettas, and I would never bother with Pizza hut etc. This is my personal preference. My brother-in-law swears by another small local run joint.
And then there is the 'place the pizza joint next to a video store idea', I have definite favourites among video stores, and so am naturally lead to order pizzas from the video store next door, hey they are close I will give them a try, they might be as good as La Porchettas, I will just try them once and see.
More then just market saturation of pizzas, there are acutally thousands of people wanting pizza for all different reason (taste, convenience, price) and this saturation of pizza joints serves to suit the needs of many people.
Heck two years ago my number one rule for living and philosophy for life was 'don't eat pizza' and while that could form the basis of a whole new thread, I actually eat pizza now (ate it twice this weekend), why? well my philosophies still stand, but La Porchettas make a yummy pizza, and Dominoes do an edible one too. Who would of thought?
I hope beneath my bizzara explanation you can see me messing around with the mentalities of potential customers. Whatever your business, not be afraid of market saturation, don't be stupid about it, but don't write yourself off, you just may be the next La Porchettas, a pizza joint where your waitress could be the 9yr daughter of the owner, and you have no hope of getting a park because the place is packed and some crazy guy with a boat trailer who couldn't find a park has just stopped smack bang in the middle of the road so cars a queued back for ages, and cars wanting to leave just can't (did I mention you can order pasta there as well?) |
| Sun 08 Feb | The real Entrepreneur | When I first started my business, 8 or so years ago, I worried about market saturation and competition.
We reached a point where we had $2k / month in sales doing this part time.
I almost quit at that time, but I wasn't enjoying my day job (programming) and thought 'If I could do anything, if I were a millionaire, what would I do'? Answer: start this company.
So I did. I've found that many of our customers have never heard of our competition (3 companies in this very small niche field). An others preferred us to the 20 year incumbent.
SUMMARY
1. Customers don't have perfect knowledge. Just because *you* are aware of all the competition, doesn't mean customers are.
2. Running a business is hard. You have to get a lot of things right: right product features, reasonably well written program, effective marketing, etc. Very few companies do all 3 right. In fact, my competition doesn't do ANY of these very well.
3. If you can do something for a customer cheaper, better, and eaiser than they're doing it now (manually or with some competing product) then you have the potential for a business.
The trick is: can you provide the above AND still make enough to pay your salary. |
| Sun 08 Feb | The real Entrepreneur | HOW TO GET STARTED
I approached my business (without realizing it) using the scientific method.
I did everytyhing as an experiment (or prototype) first, on a small scale, then put that into mass production.
For example:
1. Used iterative approach to programming (before XP was popular). I'd make a prototype and then test it with customers.
2. With marketing, I'd try advertising in a venue and measure the results. From this I elminated one venue that cost us 4x another one and boosted the better performing venue.
3. With sales, I'd pay attention to what people's objections/concerns were on the phone and reflect that in sales literature. ('Oh, people respond to *quanitfication* (numbers!), so I'll point out that our trial program lets you try 1,000,000 excercises).
Approaching it in this trial and error mode, you can start small, part time.
1. Create a rough (Beta) program that meets customers needs.
2. Refine that program to release it. See if you can sell some copies with test marketing/advertising. Goal here is not to make a lot of money (though that would be NICE). Goal is to TEST the market. BTW, Joel has written some GREAT articles on this. Search on 'shipping is a feature'.
3. Once you've proven there is a demand, work on it full time, quit your day job. (with 6 months savings in the bank!!)
CREATING THE PRODUCT IS MAYBE 25% OF THE EFFORT
The other 75% is : marketing, sales, tech support, order fullfillment, etc.
BUT.... all of the above is easy to learn. Lots of people have done those things. So, you can test your idea with only 25% commitment. You can write the program in your spare time.
LASTLY... if WRITING the program is a fulltime job for you, then realize that you may then need to hire people when you ramp up into full production (sales, marketing, etc.) and adjust your revenue needs accordingly. |
| Sun 08 Feb | Aussie Chick | >1. Customers don't have perfect knowledge. Just because *you* are aware of all the competition, doesn't mean customers are.
That's a good point, my husband and I were talking about the number of Electrical firms in Toowoomba. We concluded that you don't need to be cheap/better then *all* the competition, just cheaper/better then the other two firms that the potential client has any intention of calling. |
| Sun 08 Feb | Spider | Pizza places can have what economics types call a 'geographical monopoly'. In other words, you get your pizza from the closest pizza place. That is their product differentiation - where they are located.
The same phenomenon does not occur to anywhere near the same extent with software packages, although some people like 'local' support, which might of course might just mean a local phone number switched through to somewhere else. |
| Sun 08 Feb | no name | In a nutshell:
Determine the size of the market,
Determine the percent of the market you can reasonably capture (almost impossible to judge if you haven't done sales).
Do the math & see if that amount of the market will support the enterprise while giving a healthy return on your money. |
| Sun 08 Feb | one programmer's opinion | Starting your own small business is not for the faint of heart and some industries are tougher than others to break into. I am assuming that you are interested in owning some type of software related business. My advice to you is to start educating yourself on entrepreneurship and don't limit yourself by thinking that the only business you are capable of running has to be computer related.
To start your long journey you might want to do the following:
* Check local TV listings for any online educational programs that discuss entrepreneurship and tape record them so you can watch them at your leisure.
* Buy some relevant books.
* Checkout any local organizations such as SCORE (an organization comprised of retired business people who advise small business owners)
* Check out your local library and look for relevant books, tapes, CDs, etc.
* If possible attend a class on entrepreneurship.
* Search the world wide web for online magazines, forums, articles, etc. that discuss topics such as starting your own business. |
| Sun 08 Feb | Tom Vu | >>>To give you an up front summary, I would like to have my own company at some point in time. I have been working for corporations until now, and I would like my drone days to end at some point. <<<
You should analyze at yourself first. Why have you always been a drone at a corporation? Why didn't you at least work for an entrprenurial company?
And if you are serious, take a marketing class or acting class. |
| Sun 08 Feb | T.J. | Buy the latest edition of 'Start Your Own Business' by the Entrepreneur Magainze staff.
Do everything in the book.
You will be VERY far along in the process of success in your business.
I have used this book a couple times, and came to a realization during the intensive process the number of flaws within my business process. So instead of wasting money and end up being in intensive debt, I saved and stucked with my own career. |
| Sun 08 Feb | Anonx | If you want to get involved with running your own business I would recommend reading the following books:
“The E Myth Revisited” – Michael E. Gerber
“Thinking Like An Entrepreneur” – Peter I. Hupalo
“Think and Grow Rich” – Napoleon Hill
Some of these books are better than others. I would take some of the ideas with a grain of salt and others make it a mantra to live by. I haven’t started my own business yet but these books have helped me along the way to refine my thought processes on business
I don’t think there is any magic trick to it just a lot of hard work and hours involved. If you work in technology then you should be used to that part. |
| Sun 08 Feb | Chris | A lot of people make a lot of money on commodity items. There are other ways to differentiate your company even if the products from other companies are pretty similar. Companies use marketing, customer service and other value adds to sell commodity items. |
| Sun 08 Feb | Herbert Sitz | Joel has an interesting article comparing the Ben and Jerry's type startup (small, slow, cheap startup with existing competition) to the Amazon type startup (big, fast, expensive startup designed to stake out new niche). A lot of it is relevant to questions by the original poster in this thread:
http://www.joelonsoftware.com/articles/fog0000000056.html |
| Sun 08 Feb | guilty as charged | Joel misses one other model: the small, slow-growth niche business with little or no competition.
I've seen several businesses become successful using this model, and most of them still exist, making a profit year after year, primarily because the market is not large enough to attract competition.
There's nothing wrong with setting your sights to a more reasonable level than becoming the next Amazon--or even Ben and Jerries. Our economy thrives on small businesses that never become big businesses. |
| Sun 08 Feb | Pursuer | Thank you for all your excellent points.
I did read almost all of Joel's articles, the ones on Dexterity.com and also Eric.Weblog(). After some of you mentioned specific ones, I reread them. I do agree that I would rather go into a market where there are established customers so that I know at least what I want to do works. What I need to figure out I guess is how well it is working for the current customers, if there is any room for improvement, and how I can exploit the situation.
One of my fears is that I know absolutely nothing about marketing. I few of my friends who majored in business in college took some (basic) marketing classes. I glanced over their textbooks, and also discussed with them what they learned. The whole thing sounded like a big joke! As I mentioned earlier, I am an engineer. I work with facts, numbers, concrete things. Marketing is something I am pretty foreign to. Being who I am, I don't think I fit into any major demographic. I can tell because I find most commercials to be stupid, disgusting and a waste of time/money etc.. I sat down one day and tried to think of anything that I bought because I saw an add or a commercial. I couldn't think of anything.... Anyways, if you have any good marketing related book/article/website suggestions, I am all ears.
Apart from this point, I am also uneasy when it comes to uncertainty which is I understand to be a big part of running a business. I am going to have to get used to it. On other other hand, I know current business owners are not operating in complete darkness either. There has to be some visibility. Going back to my examples, Google had to have known something to start doing what they did. Otherwise, what is the point of taking on already established portals with their own search engines. To be honest, I can't believe I changed my own search habits. Somehow they made me switch over. That's impressive. I am not entirely sure how they did it. I never saw a single commercial on TV, I did not get any incentives,... It would be nice to know what they knew back when they started. Perhaps they didn't know they would be so successful either.
I also read some very contradicting things about market research. Some say conducting a market research for a potential product is a waste of time and money. Other articles claim it is very useful to get to know your potential customers... What do you guys/gals think about this? It would be interesting to sit down with Dean Kamen and talk about what went wrong with Segway... I love his prior work. He is a genious of some kind. How could he have not seen that this product was a bust even though it is a very cool thing? I know for a fact that 'cool' doesn't cut it. It has to be practical, and Segway is just not very practical. Not at $5000 anyway. Not to mention it requires special changes in law. My point is, this guy is very smart at some level. I am sure he has important and smart other friends in all kinds of fields who could have warned him, corrected him or gave him ideas to make his product a success... But still, somehow something went wrong. Will it ever catch on? I don't know, but I won't be buying one. That's for sure. Doing an extensive market research is not very feasible for me anyway even if definitely needed one. I would have to think twice about it.
The bottom line is, as I see it, there is nothing like actually doing something. I hate to learn as I go. I'd rather know about what's coming my way first as much as possible. It seems like there is only so much I can learn from reading books/articles and hearing about others' experiences. I just don't want to be a complete idiot and take too much risk right from the start. I am just having difficulty calculating the amount of risk I would be taking if I pursue my ideas.
Someone mentioned that I should consider why I worked for corporations until now? Well, I have graduated from college about 4 years ago. I wanted to get some reallife experience first. And I can tell I need even more. :) I think I am quite competent at an intellctual level. Heck, I see many start ups founded by college graduates, or recent graduates. I don't think age is really a problem in these matters. What matters is the idea.
I follow TR100, and other similar compilations of youngsters succeeding. Most of the time I ask myself, 'What is the use of what you are doing dude?'. Quite frankly, I get really mad when some MIT dude claims that in the near future, our TVs, microwaves, fridges and doorknobs are going to communicate with each other. In the meantime, I cannot
communicate with my parents who live in a different country because the lines are crappy or the satellite doesn't have enough channels or whatever the heck the problem is.. Does anyone *really* care that their toaster can read the newspaper with its built-in state of the art SoC chip? Will you pay to buy that thing? Where is the market research in that? Why can't we first fix what is already broken before introducing new problems? :)
I seem to be having trouble finding good ideas. Most of what I have thought up so far has been done to death or is being done already. As I mentioned earlied, I am not very convinced that I will ever have a unique idea in my lifetime. I just can't tell if my already-being-done idea is good enough to compete with the existing solutions. I guess somehow I will have to be the judge of that.
Thanks for listening. |
| Sun 08 Feb | no name | You're gonna have to learn to be concise if you want to get ahead, Pursuer. |
| Sun 08 Feb | braid_ged |
Action not knowledge.
Successful people know they will probably fail, so they do it, fail, try again, fail, improve a little, fail, then eventually before you know it their standards have risen and their 'bigger failures' and viewed by others as success.
Dont think if you study and think about something for long enough you will one day achieve perfect understanding and then go out there and succeed.
You are going to fail, you can only learn by trying not thinking, _no_one_ understands marketing or why some ideas spread and some die. Even the people who are good at things almost always dont actually understand how they work.
The biggest advantage you could have is not contained in a book or in somones words of sage advice but rather a strong belief that eventually you will acheive what you set out to achieve.
Think about it, dont talkers always see forty thousand complicated details in every plan, and the successful people usually talk for a little while then say 'yeah well I dont know, we should try it and see'. |
|
| "Our main focus is the IP [intellectual property] | Sun 08 Feb | FullNameRequired |
|
http://www.internetnews.com/infra/article.php/3309531
unbelievable.
how can companies dedicated to the idea of suing other companies for IP infringement _possibly_ be seen as a good thing?
and yet this is what the american legal system is positively encouraging. |
| Sun 08 Feb | Patent Victim | I think the whole patenting system as it stands today is flawed since very obvious things can apparently be patented. You can even patent things that don't exist yet, but could be made. I don't know how companies can patent these things when they clearly break the rules... Sweet sound of money perhaps?
The whole thing is about to blow up in our faces. With all the cameras installed everywhere, the big brother, and the little brother, and the sista's, and the uncles watching over our every action, we'll soon start getting bills/fines in the mail claiming that we infringed on some stupid, silly, obvious patent by squeezing our toothpaste a certain way on our toothbrushes, or waving our hand to a friend as a 'hello' gesture.
At that point, I'll volunteer to fly to Mars to repair the crippled rovers and stay there for future missions. :) |
| Sun 08 Feb | Stephen Jones | ------'You can even patent things that don't exist yet, but could be made'-------
You've always been able to do so. The protection given by the patent was to compensate for the time and money in making something. You would however lose the patent rights if you did not attempt to make the thing within a reasonable time frame. |
| Sun 08 Feb | Fat Albert | Current statutory law says that a patent gives one 'the right to exclude others from making, using, or selling' the invention for twenty years from the filing of the patent application (35 USC 154). Therefore, the owner of the patent never needs to even attempt to build or market the invention. He can simply sit around and wait for someone else to build a market in his invention, and then sue the other party for patent infringement.
Federal Trademark law does require the registrant of a trademark to use the mark in commerce. Current law allows a registrant five years after registration to build a market in products using the trademark.
The theory behind the 20-year term in patent law is that it provides an incentive for inventors to make their new inventions public. The inventor gets a monopoly on the invention for twenty years and the public gets the invention once the patent expires.
The problem with software patents and business method patents (as I see it) is that the PTO is allowing patents that cover broad concepts in these areas. For instance, the PTO might allow a patent that covers the following:
1. A web site that allows users to list items for sale
2. The web site then displays the items to the public
3. The web site accepts bids from users for a certain amount of time
4. When the time period expires, the lister sells the item to the winning bidder
Of course, this is just the centuries old concept of an auction, with the only twist being that it is done on the Internet. The value here is not in the concept, but in the implementation. So, what happens is someone gets a patent on this in 1994 (with the patent probably being examined by someone with a biology degree) and then waits for a company like Ebay to do the hard work of implementation and marketing. Once Ebay becomes successful, the patent owner sues and receives a mega-judgement for essentially contributing nothing at all to society.
Unfortunately, not many people with software backgrounds become judges or patent examiners, so it's tough to envision the situation changing any time soon. Most companies probably just look at it as another tax on doing business (the patent tax) and just accept that they can't be as profitable or as efficient as they could be without the patent system. |
| Sun 08 Feb | T. Norman | Or they leave the United States, rather than putting up with nonsense like software patents, the DMCA, and encryption legislation.
A couple years ago I read about a guy who actually renounced his US citizenship to move to Antigua to set up a software company because of the legal crap he would otherwise have to put up with. Rivals may be able to use the legal system to keep his products of out the US, but they can't enforce a judgement against him or stop him from doing business. |
| Sun 08 Feb | Tony Chang | Albert, using your reasoning the airplane should not have been patentable since its just the age old concept of a bird in flight. Or the automobile the age old concept of the carriage. Or the calculator the age old concept of the abacus.
In other words, updating an old idea to use modern technology has always been patentable. |
| Sun 08 Feb | FredF | >> In other words, updating an old idea to use modern technology has always been patentable
The problem being..
1. who gets to judge whether an idea is new or not?
2. are the people at the PTO (and its equivalent in other countries) technically competent in the software business?
3. are the _judges_ who are called to settle disputes competent
4. Considering how fast the software industry moves, should we apply the same rule as in slower areas, eg. what about 5 years or protection instead of 20?
5. what about the risk of slowing the advancement of science, if researchers in universities and software developers in the private sector can no longer share ideas freely, waste time making sure that any idea they hit upon could not already be covered by a patent, and risk losing billions in case a totally incompetent judge rules that yes, this idea turns out to be covered by said patent?
6. I can't think of a sixth point, so I'm going to fetch a cold beer in the fridge. Anybody wants one? |
| Sun 08 Feb | T. Norman | >>In other words, updating an old idea to use modern technology has always been patentable.
But why should it? Usually the underlying technology itself which predates the alleged invention is the only innovative aspect, not the act of 'doing Y with technology X.' The transistor radio was a great and useful invention; the act of 'transmitting music to transistor radios' is not. |
| Sun 08 Feb | Stephen Jones | What people at the Patent Office in the US do is search for prior art. The question of whether the subject of the patent is obvious or not is something that will only come up in a court of law. It is not something that concerns the initial granting of a patent. The searches are thorough, but the fact that many techniques in software are no better documented than the average piece of code means that plenty of things get through.
Philo can no doubt provide more accurate information, and I think there are a couple of other ex-lawyers on the forum.
Incidentally patent law can vary immensely from country to country, though since IP became part of the WTO there has been pressure from the
States for harmonization, normally in the sense of a closer approximation to the US model. |
| Sun 08 Feb | FullNameRequired | 'States for harmonization, normally in the sense of a closer approximation to the US model.'
Ive always suspected that what happened was someone in the US government realised that potentially the US economy could have a real advantage if business, software and hardware patents were seriously strengthened, and also were reflected internationally.
IMO something along those lines has led to the relatively recent softening of patent requirements, and the concurrent push by the US government to encourage other countries to formalize the automatic acceptance of patents granted in the US.
Whether this is a good idea or not long term probably depends on your POV, but in the short term its led to the interesting situation where the only real targets for US companies to make money from their IP are in the US, so effectively we are eating our own tail.
Long term I guess we can count on IP being a national export, similar to...ummm....whatever else we export internationally....GE corn perhaps?
:) personally I believe that software patents in particular are pure evil, and I have a limited patience for many hardware patents as well. |
| Sun 08 Feb | | Stephen,
Unfortunately, the employees of the USPTO do not search for prior art - they search for prior patents. That's what is mostly to blame - if the USPTO people did as much research as some companies do (companies that don't want to invest thousands in filing a patent that will do them no good), we'd be much better off. |
| Sun 08 Feb | Fat Albert | Stephen,
U.S. Patent Examiners reject patents based on obviousness all the time. The rejection is issued under 35 U.S.C. 103.
However, please don't let your utter lack of knowledge about U.S. Patent Law keep you from spouting off about it. An Internet message board is the appropriate place for such misinformation and if you keep posting on this topic long enough, something you write is bound to be correct. Good luck.
Fat |
| Sun 08 Feb | FullNameRequired | 'However, please don't let your utter lack of knowledge about U.S. Patent Law keep you from spouting off about it. '
hey fat albert, its rare to have such a pleasant, knowledgable, affable chap partake of the joys of this forum.
Ive often wondered why there was no _expert_ on the various topics (law, computer programming, whinging about work mates etc) that we could use to gently point out the occasional inaccuracy that creeps into the dialog we enjoy on this forum in a pleasant and helpful manner.
nice to see youve decided to fulfill that need :) welcome to the JOS forum, I look forward to reading more of your gentle rebuttals on various points of law and other areas where you have expertise in the future. |
|
| A sorting challenge | Sat 07 Feb | Gwyn |
| I have the frequent need to sort alphanumeric data in a sensible format and standard sort methods do not achieve this.
When we sort numbers we treat the number as right justified and sort, so 2 comes before 10 (0...002 is less than 0...010)
When we sort strings we treat the string as left justified and sort (2 comes before 10).
So, lets say I have a mixed alphanumeric string representing, say, a change record id and sort it.. I get the following result:
CR-1
CR-100340534
CR-2
Now this is not useful. I could pad all numbers to be a certain size but CR-000000001 is not as visually fetching as CR-1
In the same list I could get other format ids; e.g. BUG1, BUG2 etc. so I dont want to be applying some logic based on fixed formatting.
I can further complicate this by wanting to sort, say, version or release numbers. So now I want:
1.0.1
2.0a
10.2
10.2.2
10.2.2a
10.2.2b
10.2.2.1
The only way I can think is to break the string down into a number of parts at each change of character type.. for example 2.0.14 becomes an array of typed parts:
(number) 2
(alpha) .
(number) 0
(alpha) a
and then I can try comparing two values on a part by part basis, using an appropriate method, and if comparing a number against an alpha that the alpha always comes first.
Anyone come across a standard algorithm for this sort of thing? |
| Sat 07 Feb | Greg Kellerman | I dunno, treat each period or other puctuation as a delimiter and then a change of data type as if it was delimited also.
10.2.3a.4 would become 10,2,3,a,4
I'm not an Algorithm master by any means but I'm first this time. Actually I came across this kind of things a long time ago when I was doing Bus Parts. I sorted them wrong and messed up the mechanics. If only I had read the book first!
Unfortunately it was a card system in books, well before I had a computer. |
| Sat 07 Feb | FullNameRequired | separate the data used for sorting and the data used for display. |
| Sat 07 Feb | Alex.ro | I think what FullNameRequired means is (here goes the contrived example):
You have data in the form number.shortstring.number.number. E.g.:
12.NYC.100.1
what you do is construct an integer value from it, in this case, the 12 goes into the uppermost byte, NYC somehow goes into the next byte, etc.
So now you can sort based on numbers instead of having a complicated 'compare' function for your data.
Of course, cramming an arbitrary string into an integer of limited size is a different story. Perhaps you have a finite dictionary, this would work fine.
(Sorry if I'm being amateurish, probably am.) |
| Sat 07 Feb | www.marktaw.com | I thought he meant copy the field into another one, then add all the leading zero's you want in the 2nd one that nobody ever sees but you sort on.
record_id | record_id_sort
1 | 00000000001
123123 | 00000123123 |
| Sat 07 Feb | Philip Dickerson | If the data is stored in a database and you can do your sorting in a SQL query, you might get some ideas from this previous topic:
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=97221
that discussed sorting data that is mixed alpha and numeric. |
| Sun 08 Feb | Robert Jacobson | You could also store the data internally as, e.g. 'CR-000000001' and use a regex or function to convert it to 'CR-1' for display purposes. (Just trim any zeroes that follow a nonnumeric character.) That way you don't have store two separate values or worry about keeping the two values in sync.
For more complicated numbers like '10.2.2a,' you could split the value into array of strings, with one string for each alpha sequence or numeric sequence (treating the punctuation as a delimiter.) For example, '10.2.2a' would map to an array with four elements, {'10', '2', 2', 'a'}. Then, have a function that determines which of two values has the lower sort order by stepping through the elements in the arrays.
For example, {'1', '0', '1'} comes before {'2', '0', 'a'} based on the first elements in the array (one comes before two.) Similarly, {'10', '2', '2'} comes before {'10', '2', '2', '1'} because the first three elements are identical, but the second value has a fourth element.
Conceptually, it's similar to the traditional problem of sorting by lastname/firstname, where you first compare the lastnames of two Person objects, and then compare the firstnames if necessary (if the lastnames are identical.)
If you're using a Dotnet language, you could encapsulate this sort-order logic by using the IComparable interface. (The Comparable interface in Java looks similar.) Here's an example in C#:
http://builder.com.com/5100-6373-1058827.html |
| Sun 08 Feb | Nick | Separate the string into its parts and do a bucket sort, e.g. a radix sort. |
| Sun 08 Feb | Gwyn | Thanks for your comments guys.
I'll have a look at the Radix sort..
It is .NET and I'm already using the IComparable interface for other things.
And no I can't separate the display and stored data as it will often be something supplied as a string by the user (which has some implicit meaning to the user, but not to the computer) |
| Sun 08 Feb | DJ | '(which has some implicit meaning to the user, but not to the computer) '
I'm sorry but doesn't the computer need to know the meaning if it is to sort it properly?? Or do you what some generic number-text parser / sorter thing? |
|
| most productive fired first? | Sat 07 Feb | Tony Chang |
| I tend to agree with some posters that a productive *but* expensive person can be first to get shown the door. Its happened to me and Ive seen it done to others.
-- from a comment in a recent thread.
This seems like good thread fodder. What does every one think? Probably it goes both ways. But I bet there are lots of cases where the best employees are let go first and it has to do with politics.
I read a book on the manufacturing industry years ago and it said that you have a lot of stuff going on where if one employee is much better than other ones, that makes the other guys look bad. So they will have a word with that guy to make clear he needs to pace himself to the average, otherwise management will ask why isnt everybody as quick as Joe Newbie. If Joe doesnt slow down, then pretty soon a plan is put in place to teach Joe a lesson. Sabatoge his work, everybody ignores him, refuses to help him. Bump into the guy in the cafeteria. Slash his tires. Poison his dog. Standard junior high school I mean Trade Union practices to make sure he gets the message.
Some of my first jobs were in manufacturing and Ive seen these tactics first hand myself, Im sure others here have as well. The nail that sticks up gets pounded down. Tall poppies get cut.
The thing thaht is less often discussed is that it goes on in IT too but its not as consciously deliberate and planned out/tactical as it is in union shops since they actually have a formal methodology of intimidation.
So, in some places, the reputation of the top guys has been ruined by those hes made to look bad. When its time for axings, get rid of that troublemaker first.
This happens in all shops that dont have management that really keeps on top of things and knows for certain what sort of code each developer is producing. |
| Sat 07 Feb | enlightened one | Getting fired is all about politics. Whether you're good or not generally takes a back seat to whether you are liked. |
| Sat 07 Feb | Tony Chang | Sometimes firing is for cause, but i do t hink that it is often political. And in the case of layoffs, a list is made and I guarantee you that that list is always made with all the care of a popularity contest for prom queen. |
| Sat 07 Feb | Joel Spolsky | Tony, I saw this "have a word" tactic happen in a not-so-blue-collar environment: Bell Labs! |
| Sat 07 Feb | no name | Sometimes a nail that sticks up deserves to get pounded down. Taking on extra work without any chance of being rewarded for doing so doesn't make a lot of sense to many people.
Why would a sherpa offer to carry extra supplies up Mount Everest unless someone was willing to pay them more money to do so? Carrying supplies up this mountain is a dangerous job, I am pretty sure most sherpas wouldn't dream of making their job more dangerous for themselves free of charge. |
| Sat 07 Feb | Bored Bystander | I certainly don't presume to have any unified field theory in place to explain dismissals.
But in line with the foregoing observations, I think that the key fireable offense in many companies is to be 'subversive'. Subversion is defined here as inducing others to think in ways that are not intended by the local management.
Here's one scenario (I've lived it several times.) A high producer is right in the line of fire in this regard because it's probable that someone who demands a lot out of themselves also demands a lot out of others whom they support. So, the occupational risk associated with being a productive technologist in a rank-and-file job is frustration. Frustration then leads to cynicism, which then leads to complaining, and/or negative but accurate observations.
And the negative but accurate 'emperor is buck naked' observations are usually fodder for dismissal, because they are subversive statements; they make people think more deeply than they would otherwise.
Most average companies operate on the Orwellian 'reality is anything Big Brother says it is' principle. Only outstanding companies transcend this trap. There aren't many outstanding companies, since they're at the top of the bell curve.
Another job risk is just excessive stress and demand. In a job 13 years ago I was essentially fired because I melted down emotionally after being dogged nonstop by the assholes I reported to for completion of a project that involved 10K lines of C code developed and debugged solely by me from scratch. The application found its way essentially unchanged into their next product suite, and I was out the door, spoken of as a loose cannon and deserving firing.
This company made money off of a product developed by someone they basically raped mentally. I think this happens a lot in this industry. |
| Sat 07 Feb | Christopher Hester | I got fired for going on a hunting trip to Mexico and not telling my boss. I was going to tell her, but i doubt she would have understood that was more important than an upcoming but as always was going to be delayed 'launch.' I liked that job, o' well. |
| Sat 07 Feb | Tony Chang | Hi Joel! Don't just tease me with that! Tell the story of what happened at Bell Labs? |
| Sat 07 Feb | Sum Dum Gai | THere is the flip side of the problem too:
If you're good, you'll sometimes be the last to be let go from a sinking ship.
Sometimes it's a good thing to be layed off - ast least you can focus 100% on finding a new job. I mean, you could just quit, but it seems irresponsible to quit when you don't have new employment lined up. |
| Sat 07 Feb | Philo | Christopher - I would've fired you for that, too. Now if you came in and said 'I have a hunting trip that's been scheduled for two months, and if I don't go I'm going to go insane' then it's a tougher call, but to just vanish? The pink slip would be on your desk after the fifth day of absence.
As for daisy-cutting, I agree with the general principle that if management is incompetent enough, then it's not 'fire the best people' to them - it's 'fire the troublemakers.' It's like the guy at Camel who got called into the director's office and told 'stop agreeing with the contractors' - his response was 'I will when they stop being right.'
One other situation is when you have contractors on staff. Then generally each of them is a line item in the budget. So there's:
Personnel Expenses ------------- $2,500,000
John Smith --------------------------- $125,000
So when cost-cutting time comes around, it's really obvious to the Board of Directors where there's some easy cash to save (never mind that John is the guy who built and maintains their flagship product...)
Philo |
| Sat 07 Feb | Smitty | 'So, in some places, the reputation of the top guys has been ruined by those he's made to look bad. When its time for axings, get rid of that troublemaker first.'
This is the natural instinct of insecure, petty, neurotic, jealous co-workers. Instead of putting their energies forth in a positive, constructive way by improving themselves and and improving their production, they will always put forth their efforts into deconstruction and will tear down anyone who is seen to rise above the pack. These type of folks can never rise above their pressuppostions. Unfortunately we live on planet earth and these are the people we have to work with. The moral of the story here is that when we get to work with that stellar person, we should try to emulate those things about that person's productivity we admire (or in other's cases what we are jealous of). |
| Sat 07 Feb | Joel Spolsky | ... I had a summer internship there, many many years ago, and at the end of the summer a co-worker gave me a little lecture about being overproductive and making the permanent employees "who have careers to worry about" look bad in comparison. |
| Sat 07 Feb | Christopher Hester | Of course I deserved it. I deserved it for the lack of work I did fofor the six months leading up to that as well. That is the only way I would have been so brazen, as up until that point, that typeof behavior tolerated. If only i had set up an automated 'working from home today' email for a few days, I could still be on easy street.
I am not even remotely complaining. |
| Sat 07 Feb | Smitty | 'Of course I deserved it. '
I don't understand the point of your post. Basically you're saying you got fired for jerking your boss around. That seems like the kind of stuff you pull when you're working at the ol' Mickey D's (you know, calling off work at the last minute on a friday nite cuz your buddies want to go out). |
| Sat 07 Feb | Christopher Hester | Mickey D's is a more classy place than that shop |
| Sat 07 Feb | no name | 'That seems like the kind of stuff you pull when you're working at the ol' Mickey D's '
If more people treated their careers like they did their McD's jobs, I think the world would be a better place. |
| Sat 07 Feb | no name | Christopher, any advice to someone that's in the same situation you were in? The company I work for is, to put it mildly, morally-challenged. |
| Sun 08 Feb | veal | Here's the Unified Field Theory on layoff selections...
During a layoff, *all* stay-or-go choices are based upon one thing and one thing only: the opinion of the deciding manager about which keep-set will most likely secure that manager's career. This simple rule accounts for all the correct observations above. |
| Sun 08 Feb | James U-S | My business partner was in that situation at his last job. He was in charge of a new department (looking at improvements to the business with the goal of saving money) but very productive, very good at what he did but he was expensive. He was made redundant last year by new management as part of a big change in the company and is now my business partner in our new consultancy company.
I think a big problem is a lack of foresight. If managers / directors could find it in themselves to look further ahead than the typical 'now' and 'cash' outlooks they would make better decisions and any short term losses would be paid back many times over by long term gains. It's just a case of having the confidence to look ahead and make decisions that aren't necessarily the typical reaction. |
| Sun 08 Feb | no name | This is where the whole field of pop-economics has led us astray: A company acts in it's own self interest. Which anyone that has worked for more than a few days know is false. A company doesn't act. People that are running the company act in _their_ own self interest. It just so happens that what's usually good for the company is good for the leader, but not always. |
| Sun 08 Feb | Christopher Hester | Advice seeker: Keep the resume current, cash reserves high, then enjoy yourself. Try not to let the disfunction around you affect your stress level. And don't ever act like there is anything wrong. You might get canned for rocking the gravy boat that you and the rest are on. They want to live in la la land just as much as you. Don't try to be the guy that is going to bring dignity and work ethic to the company. And know your situation is not the norm. There are many well run compaines I am assuming.
I actually got fired for letting our CFO know that we were wasting about $80,000 a month on managed hosting, we were using only half of the boxes we had allocated. My boss was disfunctional, and threw cash at every problem, which we were running out of. I thought i was doing the right thing, the hunting trip was just the icing.
The first post anecdotal, people get fired for all kinds of reasons, many for cause. |
| Sun 08 Feb | Stephen Jones | What you are saying Christopher is very true. The ostensible reason for a disciplinary dismissal is almost never the real one. Short of murdering a couple of ful time members of staff (or interns if your code is a bit iffy) it is always something else that gets management thinking of how to sack you. |
| Sun 08 Feb | veal | Blank hit the nail square atop its head. I feel a strange compulsion to repeat the salient phrase chantlike. When you come to recognize this point, very many realities of the business world burst into clear focus.
A company doesn't act.
A company doesn't act.
A company doesn't act. |
| Sun 08 Feb | T. Norman | Exactly. Corporate decisions are taken in the best interests of the decision makers, not the best interests of the company. If a big layoff enables the fat cats to convince the compensation board that they saved the company millions and deserve a big bonus, that is what will be done even if that layoff causes the company to lose market share next year and become unprofitable.
If they were really making decisions for the health of the company, they'd also take a pay cut when they did the layoffs. |
|
| HLP to CHM Help converter | Sat 07 Feb | Roose |
| Is there such a thing? I googled and couldnt find anything. I have a large application with help in the old HLP format and it would be nice if I could view it in HTML help instead. It would be even better if it could convert to the new .net help format. |
| Sat 07 Feb | Guillermo | I think Help & Manual can, and export to pdf and others, too.
http://www.ec-software.com/ |
| Sun 08 Feb | Matt Foley | +1 for Help & Manual. Very, very nice piece of software. |
| Sun 08 Feb | Jan Derk | And another vote for Help & Manual. Now if only they could make editing tables easier. |
| Sun 08 Feb | Roose | I downloaded it because it said it was 'fully functional' for 14 days, but of course it only decompiles 100 topics! I HATE when they don't fully disclose the limitations...
I can't justify $280 for a one-time conversion (cost more than the software whose help I'm converting). Does anyone know of another solution?
thanks. |
|
| Anders Hejlsberg on C# | Sat 07 Feb | Dan Maas |
| Note sure if this has been posted befure - I saw it on Slashdot today:
http://msdn.microsoft.com/vcsharp/homepageheadlines/hejlsberg/default.aspx
Im not familiar with Borland or Delphi so this was my first introduction to Anders... Wow, this guy is very, very smart. Hes a real hacker, not a substance-smoking academic. The kind of person you rarely see designing a major programming language... I wish there were more people like this in the Free Software world. |
| Sat 07 Feb | Tony Chang | Larry Wall is the one guy I'd say is as smart and insightful when it comes to language design. Are there any others? (Not just smart but brilliant.) |
| Sat 07 Feb | Your Uncle Bill | 'I wish there were more people like this in the Free Software world.'
Yeah, but most people as talented and smart as Anders want to *gasp* get paid for their time and efforts and not rely on the charity of others. So they stick with more profitable ventures, such as working for for-profit companies. Oh the horrors. |
| Sat 07 Feb | Li-fan Chen | Dan, do you even use open source software? |
| Sat 07 Feb | Egor Shipovalov | Uncle Bill, it's no more common for a Free Software developer to be unemployed and rely on someone's charity, than for an "ordinary" developer. In fact, it even less common, as OSS is typically written by those who earn enough to afford it. |
| Sat 07 Feb | Your Uncle Bill | Egor,
My point wasn't aimed at the average Open Source developer, but rather that most people of the caliber of Anders who tend to become leaders will prefer to work for a for-profit company because they recognize the instrinsic worth they bring and want to get paid for it.
Even Torvalds himself wrang his hands on several occassions wondering how in the world he was going to make a living. All I'm saying is that it's fairly rare to find leaders with the brains of Torvalds who want to dedicate themselves to Open Source. |
| Sat 07 Feb | Egor Shipovalov | By the way, the guy doesn't seem to know the difference between a function reference, and a closure:
'Anders Hejlsberg: Delegates add a kind of expressiveness that you don't get with classes or interfaces, which is why I think they are important. Programming languages that have gone before us have recognized that they are important. They have many names: function pointers, member function pointers. In LISP they are closures. '
You need variable(s) in higher lexical scope referred in the function to make a closure. Otherwise you just have a function reference, not a closure, right? |
| Sat 07 Feb | I Hate Whiners | 'By the way, the guy doesn't seem to know the difference between a function reference, and a closure:'
Here comes the ego-driven, technical nit-picking that techies are so famous for, and makes the universally unloved (and annoying) by non-techies.
I'm guessing that the creator of both C# and Delphi probably knows the difference, and if he doesn't, he probably doesn't give a shit either because it doesn't look like it has held him back much. |
| Sat 07 Feb | Li-fan Chen | Anders did make some pretty good points (nothing new if you program in java) against java and the various mantrras you've heard java's marketers insist as The Word(TM)... althought not all of us would be around to enjoy it... the next ".Net-killer"'s architect would no doubt have a lot of monkey doo doo to sling at .Net. |
| Sat 07 Feb | AnonAnonAnon | In the end we have:
JAVA
- owned by SUN
- run by SUN
- evolved by the masses
- avaliable on multiple OS
C#
- owned by MS
- run by MS (please don't make me laugh about 'standards bodies')
- evolved by MS
- available on Windows
The last item is what sold JAVA to the masses. Being 'better' was merely a perk. |
| Sat 07 Feb | Smitty | I believe Chuck Jazdzewski of Borland (co-designer of Delphi with Anders) has also joined the ranks of Microsoft. Should be interesting to see this dynamic duo back together again.
Could only be good for C#/VS.NET. |
| Sat 07 Feb | Mark Hoffman | 'The last item is what sold JAVA to the masses. Being 'better' was merely a perk. '
Yawn...Let's not ignite another pointless religious war over Java vs C#. That's been done to death a zillion times here. |
| Sat 07 Feb | K | Egor, I believe that you're missing his point. You're bringing up the issue of dynamic vs. lexical scoping, but he's talking about the importance of functions as first-class data types. |
| Sun 08 Feb | Synder |
Re: closures. I'll agree with Egor that the sentence parses somewhat oddly. He does seem to have jumbled simple references to functions together with references to functions + lexical scope. C# will do this sometime in 2004 with the release 'Whidbey'. Search this chat, posted this weekend, for the word closure. http://msdn.microsoft.com/chats/vstudio/vstudio_011603.asp Fair enough Hejlsberg doesn't know exactly what's released yet. More than likely he's already using some alpha-alpha-alpha longhorn release...
Then you will be able to do the classic return counters example something like this:
delegate int ACounter ();
ACounter getCounter()
{
int total = 0;
return new delegate {
return total++;
}
}
The whole series has been an interesting read. Hejlsberg is obviously a very bright guy. |
| Sun 08 Feb | Egor Shipovalov | K, I understand what he's talking about, he just used a wrong (and misleading) term for some reason. I program in LISP and Perl most of the time, which use closures extensively, and believe me, when you use this term, you NEVER refer to just 'function the data type'.
Synder, thanks a lot for your point. Very interesting, and probably just explains it.
Sorry if it sounded like I'm really knocking Hejlsberg. I'm not. I find both Delphi and C# beatiful, innovative languages. He's clearly head and shoulders above Gosling when it comes to vision and creativity. |
| Sun 08 Feb | Synder |
To be fair to Gosling, Hejlsberg has had nearly a decade of watching Java in the real-world to learn from. Maybe Delphi would be a better comparision? That said, many people consider Delphi a great langauge/environment. As Hejlsberg mentions in the interview, some of the things in Java are relics of its particular past. The type speciifc instructions lend themselves to a simpler interpreter - consistent with a language designed for consumer apilicances (see http://java.sun.com/features/1998/05/birthday.html ). I certainly thank Gosling for the simple miracle of mainstreaming a garbage-collected language. Massive Libraries, bundled GUI toolkit, cross-platform, secure runtime. Despite its rough edges, Gosling did set a high bar for Hejlsberg and Microsoft. |
| Sun 08 Feb | Dan Shappir | > To be fair to Gosling, Hejlsberg has had nearly a decade of watching Java in the real-world to learn from.
To be really fair, both have had four decades of LISP, about three decades of Smalltalk, two of decades of Squeak and O'Caml and a decade of Haskell to learn from.
LISP and Smalltalk for example had GC, massive libraries, GUI toolkits, cross-platform secure runtimes in the 70s!!! What they didn't have was Sun and MS marketing. |
| Sun 08 Feb | Brad Wilson | 'To be fair to Gosling, Hejlsberg has had nearly a decade of watching Java in the real-world to learn from.'
To be fair-er, it was more like 5 years. We were already hearing about what was coming with .NET in 1999.
Oh, and what the guy above me said, too. :) Smalltalk was a language that was a few decades ahead of its time. |
|
| External Modem better than Internal Modem? | Sat 07 Feb | didot |
| hi guyz... one of my friends said that I should get an external modem instead of an internal modem because the external moden boosts the incoming and outgoing signal because it is connected to a power source whereas the internal modem runs off the pci power slot... what ever that means... so should i get an external or internal modem... cant get dsl/cable where I am... well maybe by satellite but heard that was expensive. |
| Sat 07 Feb | Stephen Jones | I have an external US Robotics modem on the desktop and an internal winmodem on the laptop. I haven't noticed any significant difference in speed.
There are good reasons for paying extra for a hardware modem, as opposed to a winmodem. The latter, which include nearly all internal modems, use the CPU for part of their work, and more importantly, are software dependent, so you can't use them with Linux or BSD if you dual boot. Whether that makes it worth the difference in price is another matter. |
| Sat 07 Feb | Li-fan Chen | Actually you can also buy something called "hard" internal modems. It lessens some CPU-dependence. |
| Sat 07 Feb | T. Norman | No difference in performance.
The only thing better about the external modem is compatibility. Much easier to configure, less likely to conflict with existing hardware, and they work with generic modem drivers for practically any operating system. |
| Sat 07 Feb | T. Norman | P.S. I was referring to external modems that connect to the serial port. USB and parallel port modems have less OS and hardware compatibility. |
| Sat 07 Feb | Addicted to broadband | Modem? What's that? You mean one of those old dial up thingies? Do they still make them? :) |
| Sat 07 Feb | Tony Chang | I REALLY like external modems with LEDs because then I can monitor with certainty unusual (ie: spyware) activity. This has alerted me to certain spyware activity that other spyware checking software had missed. Some of the spyware will mess with your activity monitor so on the computer it appears there is no activity, but the external modem's led just don't lie. |
| Sat 07 Feb | Bored Bystander | External modems that I have used have certainly seemed more able to make a high quality connection more reliably than most internal modems. And I agree with the other posts that the diagnostic lights on an external modem are helpful in troubleshooting.
I have used trouble free internal modems, but the prevalence of 'winmodems' a few years ago that rely on the computer itself for signal processing gave all internal modems a black eye. Plus, winmodems are highly dependent on having a driver available for the OS, and therefore are sometimes useless with Linux. |
| Sat 07 Feb | Dennis Forbes | The power scenario is a non-issue and should be ignored - power from the PCI bus is power, and a modem will never need more than a trickle.
Having said that, a lot of people prefer external modems simply because they give more visual feedback, are easier to swap if you have a defective unit/upgrade/etc, and touching on a point that others have made: A modem is a DSP unit that relies on the purity of the signal, and inside of a computer case is a high electromagnetic environment. Given that it's reasonable to assume that an external unit would be less affected by this. I doubt the difference is more than marginal though. |
| Sat 07 Feb | Li-fan Chen | Dennis, you hit a spot there, if anything, I hope sound card makers would move these devices or chips out of the system and onto external casings. My PVR at home makes audible every little disk access or heavy processing that comes the unit's way. |
| Sat 07 Feb | FredF | >> Actually you can also buy something called 'hard' internal modems. It lessens some CPU-dependence
As far as I know, Multitech is pretty much the only mfg left that offers a controller-based internal modem these days. Too bad all the others are win/softmodems. |
| Sun 08 Feb | Ravi | Where I live, it seems external modems are much more reliable than internal ones. Infact our ISP recommends external modems. They are less prone to disconnect, and have higher response time. Infact we can't play counter strike with internal modems, because of the response time. Apart from this external modems are more well built and are of higher quality, while the internal modems market is way too competitive to be able to bear high quality internal modems. People who buy internal modems do so because they want it cheap. Not because of desk space or lack of a free serial port.
But does any one the reason behind producing USB modems? They are 'external' but non the less very much a soft modem, *and* they cost just the same as serial port ones. |
| Sun 08 Feb | Dennis Forbes | 'But does any one the reason behind producing USB modems? They are 'external' but non the less very much a soft modem'
I haven't been in the modem game for years (I was suprized to find a new laptop had one built-in), but I see no reason why an external USB modem would be 'soft'. By 'soft' I mean the 'Winmodem' design where all of the DAC processing was offloaded to a software driver that leveraged the processing power of the CPU in your PC. USB modems may need special drivers simply because they aren't in the traditional serial modem slot, but I see no reason why they inherently are more likely to be of the 'soft' kind. |
| Sun 08 Feb | Stephen Jones | I thought US actually made it much easier to write drivers because the USB host had a generic driver which meant part of the work was done.
Certainly scanner support in Linux increased greatly with USB scanners becoming common and the advent of the 2.4 version of the kernel. |
| Sun 08 Feb | Philo | 'I was suprized to find a new laptop had one built-in'
Don't travel much, eh?
Go to a hotel, you're back in 33.6-land. [ugh]
(I finally stayed at a place with high-speed in the room last week. I hope it continues to grow)
Philo |
| Sun 08 Feb | Stephen Jones | Dear Philo,
Never mind the hotels. Many small places in the USA (and big places everywhere else) still only have dial-up or satellite - and sometimes you're back in 24Kbs land.
Also plenty of people only use the internet to occasionally check mail. Anything but dialup is overkill. |
| Sun 08 Feb | Brad Wilson | We live in one of those 'small places', and until recently, our choices were dialup (we did get 40-ish K), or ISDN for $100/month. Now, we're geeks with good paying jobs, so we opted for the ISDN, but surely we were virtually the only ones. Any form of DSL (including IDSL) was impossible with the 40,000 feet between us and the CO.
However, about 6 months ago, an ISP rented space on one of those giant towers, and brought in wireless. It's a great solution for the last-mile problem, IMO. |
|
| SpamBayes | Sat 07 Feb | T.J. |
| Some folks on this forum are delirious about SpamBayes...
But after wasting 2 hours trying to figure out how to make it work on the Windows platform, which came after 2 hours of figuring out how to make it work with Apache on my Linux box, my answer is: GET A DAMN INSTALLER!
There are many reasons why I chose against using Outlook. I do not see why an automated script can convert the latest source into an installable binary package for Windows and Linux.
That is my major problem on dealing with free software -- I wasted over $200 worth of my time and efforts getting this to work.
It is a shame, since I really would like to find out if it can get my e-mails under control. |
| Sat 07 Feb | T.J. | PostScript -- the person who decided that Python should require an 'ctrl-Z' then 'enter', and map the 'quit' command to a comment instructing you to use the ‘right’ command, should be shot.
Heck, that person who decided to change it from Python 2.2 (“Ctrl-D”) also should be shot.
(For the clueless -- If I can type 'quit' and get that message... Why not just shut up and let me quit anyway?) |
| Sat 07 Feb | www.marktaw.com | http://prdownloads.sourceforge.net/spambayes/SpamBayes-Outlook-Setup-0081.exe?download
SpamBayes-Outlook-Setup-0081.exe |
| Sat 07 Feb | www.marktaw.com | I thought Linux guys were used to compiling and configuring.... :P |
| Sat 07 Feb | T.J. | Mark --
Lemme quote what I said:
'There are many reasons why I chose against using Outlook.'
I use Calypso because it is better than Outlook for me.
-T.J. |
| Sat 07 Feb | www.marktaw.com | Yeah sorry, I jumped the gun a bit there.
I do wish SpamBeyes would somehow work with Thunderbird, but it comes with it's own bayesian spam filter that works well enough for me. No false negatives, and about 80-90% effectiveness in identifying spam. |
| Sat 07 Feb | lr |
I got it installed on my windows machine in about 15 minutes. What problem did you have?
Note that it will work with any email client if you set your email client to pull from localhost and have spambayes serve as the relay.
I'm using it with outlook express. |
| Sat 07 Feb | T.J. | I would love it if they build a plugin for Thunderbird, although I do want to wait a few more generations as I didn't really have much success with Thunderbird 0.4 in equaling if not bettering Calypso (and I was SO ready to dump Calypso... that stupid feature of requiring you to wait 2 seconds before the e-mail is set as read... ugh.)
As for installing -- it is all about trying to get Python to behave nicely. I have no experience with Python as a development environment, and very little of it as an execution environment. Just compile it, package it, and use an installer to put everything where you want it.
As for the Linux users being used to compile and install -- I'm too old for that now. I compile and install with my own programs, and I am already using scripts to make it automatic. If I can do it, why can't they? (Remember, this is not your simple ./configure && ./make && ./make install procedure SpamBayes want you to do.) |
| Sat 07 Feb | FredF | If you just need a spam filter for a POP3 mail client under Windows... and you still can't get SB to install... give K9 a try. I've been using it for a couple of months now, and am very satisfied with it.
http://www.keir.net/k9.html
Just unzip, add this to Windows' StartUp directory so it runs at boot-time, run, and set up your email client to connect to localhost on port 9999, with login = pop.isp.net/110/mylogin |
| Sat 07 Feb | T.J. | My original goal was to have a centralized location within my internal network to handle mail (and all the spam that comes with it), and can be accessed securely from anywhere (securely = encryption and passwords). That went out the window when I realize that the best solution was to take a lot of time, learn the email systems, its variety of options, and so on...
I really do not have time for it. I shudder to wonders how parents could manage their time with their kids and still stay ahead of the pack in their career. I am already extremely busy learning about new technology for development, and new concepts for Data Warehousing. Well, not new -- but new to me. I have no time to just sit down in front of my Linux box and figure things out. This is the #1 reason why I switched from Gentoo to Fedora Core 1.
After all, if I take the time and effort to do that, where will I have the time to have fun? Having fun help me preserve my sanity, after all.
So after listening to my rant, could someone recommend very user-friendly (as in point-and-click) tool that would do what I want (be able to pop3/smtp to it from anywhere and get mail, or even better -- have a webmail interface, with pop3/smtp within the local network?) Oh yeah, archiving mail in some standard format would be nice too...
Thanks for the k9 reference, will look at it tonight or tomorrow. |
| Sat 07 Feb | Damian | Have a look at http://assp.sourceforge.net/ It's a server side SMTP proxy done in Perl.
Has some good walkthroughs on the site so it shouldn't take you more than an hour to set up. I've been using it for the last few weeks with great success. |
| Sat 07 Feb | www.marktaw.com | Squirrel Mail does mail via a web interface. You'd have to worry about your own SSL. I doubt it does spam filtering. |
| Sat 07 Feb | www.marktaw.com | .. and I don't think it's a server. :) |
| Sat 07 Feb | Dan Maas | I use fetchmail (which is easy to configure) to grab email from POP3 servers and store it on my central Linux machine. Then I SSH into the Linux machine to read my mail.
It works great, but not if you want a GUI email client. In that case, you'd probably have to set up an IMAP server, which is not something you can do in 5 minutes. (also GUI email client support of IMAP tends to be pretty slow and crappy) |
| Sat 07 Feb | Matthew Lock | If you want an easy to install bayesian-esque mail filter try popfile. It has a proper windows installer, and you can use the Outclass Outlook plugin so you have a nice toolbar to control popfile in Outlook.
Popfile http://popfile.sourceforge.net
Outclass http://www.vargonsoft.com/Outclass/ |
| Sun 08 Feb | Martin Dittus | I second the K9 recommendation. 99.2% accuracy, only one false positive in ~2,000 mails. (but I also started by manually classifying an inbox of ~300 mails, just to speed things up) |
|
| Books on structuring procedural code | Sat 07 Feb | Eric Debois |
| Ive never had any major problems with OO concepts. I my first non trivial program was OO and it has always seemed quite natural to me.
From time to time I give game programming a go. Usually in plain C or BASIC. What happends is usually this:
I get to about a 1000 loc and all of a sudden my code is a mess. I think about it and realize that I need a generic event buffer in global scope and a big ass switch statment in the main loop.
I rewrite and get to about 1000 loc and now something else causes my code become spaghetti. I relize I need to make an abstraction layer for the screen rendering and rewrites again.
Now, Im pretty sure Im not the first to make these discoveries so there must be good books and online texts out there!
Can anyone recommend something on how to structure and manage procedural code? |
| Sat 07 Feb | Eric Debois | ...With regards to games in particular... best practices and stuff like that...
Thanks |
| Sat 07 Feb | Christopher Wells | I'd say _Code Complete_ (the original edition, I haven't read the second), and _Refactoring_ (which is about refactoring OOD but is applicable to procedural code too).
Is there any difference between OOP and procedural code? For example, consider the C library functions which take a 'FILE*' parameter: they're procedures, but there's an obvious mapping from them to methods of a 'File' class. So if you can do OOD, then can't you design procedural code similarly?
> generic event buffer in global scope
... singleton ...
> big ass switch statment in the main loop
... dispatching ...
> an abstraction layer for the screen rendering
... which OO analysis would have predicted. |
| Sat 07 Feb | l33t h4x0r | The key to procedural code is to recognize when to make a procedure.
If you switch statements look like this:
switch (variable)
{
case 1:
if (this || that)
{
}
else
{
}
.
.
.
case 2:
}
Then you obviously need to make logical functions for each case:
switch(variable)
{
case 1: DoGraphics(); break;
case 2: DoAI(); break;
}
It's a matter of experience to recognize these functions and the general order they should be called. It's also a matter of experience to be able to know what functions are generally required. Procedural programming requires a lot of refactoring, reworking and experience but if done right your program will be simple to follow, easy to read and extensible. |
| Sat 07 Feb | no name | Command Pattern |
| Sat 07 Feb | Dennis Atkins | Eric,
Just to clarify - are you ok writing OO programs but not procedural over 1000 LOC? Or are you ok as long as its not games code? Or are having a problem with all code over 1000LOC?
Trying to ascertain if this is a question about architicting large programs or a question about architecting large game programs, and if so which sorts (3d shooter, 2d sprites...) |
| Sat 07 Feb | Dennis Atkins | Because I am assuming when you use 'procedural' and 'oo' that you are intentionally distinguishing between the two - they are different.
I am also assuming that for some reason you have decided to use procedural and not OO technicques for your game design, and I am assuming when you say 'I am comfortable with OO', that you are expert at refactoring and design patterns and are rejecting these techniques in favor of procedural methods for some reason on this particular game project. |
| Sat 07 Feb | Eric Debois | I have no problems with writing larger OO apps, though I wouldnt call my self an expert. I have no procedural programming experience to speak of (neither games nor apps).
The programming Ive done has always been data oriented and the approaches that seem logical to me fail when I try to write games. It all turns to spaghetti.
My reasons for wanting to learn how to do stuff in a purly procedural fashion are mainly that most games seem to be written that way. Tutorials and books etc assume it. And besides, Id like to know wtf Im missing here.
Problem is that the books ive read so far doesnt adress game development or procedural development from a larger scope. So thats where this thread comes in.
I've been meaning to read code complete for ages, maybe its time I got to it. |
| Sat 07 Feb | Egor Shipovalov | '...most games seem to be written that way'
Hardly. I knew a guy who worked in a game company at that time (circa 1999), and they were entirely C++ shop, with heavy use of OO. |
| Sat 07 Feb | VPC | Maybe there is a theory about it, but my idea
of 'structuring procedural code' would come to this:
- organize data into structures,
- use pointers to functions (put them into structs to).
And do it all the time.
So when you are going into new territory and when you're
not completely sure how things would evolve, delay details
by calling functions that do net exist just jet. Then when you
know what are you doing, move repeating code into
separate procs. If there is a need for variations for specific instances of the task, supply pointers to functions
and that would be all to it.
If you can find Andre LaMothe's book Tricks of The Windows
Game Programming Gurus, look for Appendix D: C++ Primer.
On 20 pages he explains C++ to C programmers and I think
you could use that, but in reverse.
And one final idea: restrict yourself to never use any OS
API call more than once. It may sound strange, but if you
can keep to that 90% of the time (aside from SetRect() and
other things you could write yourself) it would prevent
turning your code into spaghetti and as a side effect it'll
become portable as I am discovering myself lately. |
| Sun 08 Feb | Game programmer | Eric, books are written that way because the only people who write books on game programming are the ones who aren't very good.
I've designed games since 1994 using strong OO principles.
Maybe you're just not a top notch engineer? |
|
| Is goto dead? | Sat 07 Feb | Egor Shipovalov |
| If you designed your dream language, would it have goto operator? And why?
Mine certaintly would. Although I feel a need for it maybe once or twice a year... |
| Sat 07 Feb | Almost Anonymous | I think you can get all the effects of goto with something akin to an exception. I believe PERL 6 has something like this in it.
Mostly gotos are used to escape from large nested loops (a bad idea, in of itself) and there are probably better ways to structure such a construct. |
| Sat 07 Feb | anonymous | Perl already has goto. It also has redo which can be used to jump to the beginning of a block. |
| Sat 07 Feb | Egor Shipovalov | Perl has all kinds of goto's, including computed and non-local ones, plus a few other control constructs you won't find anywhere else.
What I'm wondering about is how many experienced developers consider goto a worthwile feature and use it, at least sparingly... |
| Sat 07 Feb | Christopher Wells | It's useful for breaking out of an inner loop, or for jumping to a 'finalise' clause; in both cases an alternative is to put the nested loop in a subroutine, and use 'return' instead. |
| Sat 07 Feb | sgf | I have no strong feeling against gotos, but even so I've *never* uesd one in 10+ years of writing C/C++. So I can't imagine *needing* it in my dream language.
Actually my dream language would have just one keyword:
DoExactlyWhatIWant_NotWhatISaid :) |
| Sat 07 Feb | Dennis Atkins | Goto is never necessary but it can make code much easier to read and maintain in a small set of situations, these are covered in Code Complete I think.
I would include goto. I like the Perl idea of distinguishing between forward and backwards gotos.
Goto is easy to abuse and thus I think a CS course discussing it should cover the small number of situations in which goto can be helpful and the alternatives for those who wish to not use goto.
Likewise, in a woodworking shop, a bandsaw should be available, but the carpenters should be well trained in how to avoid cutting their fingers off with it. |
| Sat 07 Feb | Almost Anonymous | Like sjf, I haven't used a goto since the line numbered basic days. I also have never needed to use any tricks, like using flags, to get out of nested loops. |
| Sat 07 Feb | scruffie | I use gotos in my C code for error-handling. The trick for keeping it clear is to do forward jumps only. Without goto, there's too many conditionals, along with repeated clean-up code, when handling errors, that it obscures the logic of the original code.
Programming in Python, I've never felt the need for a goto -- handling errors with exceptions is much cleaner. |
| Sat 07 Feb | VPC | Here and there someone in some committee decides that
some feature is dangerous and wipes it out of the language. Like pointers or the way switch works in C# or in
Pascal.
Personally, I hate goto, but I really wouldn't know how
to do anything without pointers and I like my switch to
share few cases together (but then I make a comment
like // no break here).
So keep goto, keep pointers keep everything, but tell
programmers that some stuff is dangerous or let them
learn by themselves. |
| Sat 07 Feb | Dan Maas | "goto" is great for crude emulation of exceptions in plain C. It is also sometimes useful for implementing inner loops of interpreters or VMs (use goto for each opcode to avoid function calls). But I'm not sure it's very useful beyond these things. Certainly there is no purpose for "goto" in higher-level languages. |
| Sat 07 Feb | Alex.ro | The keyword for "goto" should be "uglyuglygoto" so programmers would have a bad feeling every time they use it. |
| Sat 07 Feb | sgf | Actually, the most useful statement for a new language would "comefrom". Very useful during debugging... |
| Sun 08 Feb | Chris Nahr | Whether goto is dead or not depends on what programs you write. Goto is, and will always remain, extremely useful for "mathematical" algorithms where refactoring inner-loop code into small subroutines is both difficult (speaking names are hard to find, too many in/out parameters to pass) and undesirable for efficiency reasons. If you never write such code, as I understond most goto haters don't, you'll probably never need goto in a modern language. |
| Sun 08 Feb | Gwyn | 'The keyword for 'goto' should be 'uglyuglygoto' so programmers would have a bad feeling every time they use it.'
Beautiful!
Comment of the week! |
| Sun 08 Feb | S.Tanna | We need goto: the language should trust me to make the right decisions case-by-case, not force some committees' broad general decisions on me. If I use goto, it's on my conscious
Dream language? I used to think about that kind of think years ago, but as I ain't going to write a compiler, I live with what I got.
I reasonably happy with C++ despite it's many warts
I would like some additions, starting with an enhanced break statement that can apply to a higher level (e.g an outer for loop which must presumably be labelled in some way) than the most nested
e.g.
for ( int y = ...etc.... ) as loopy
{
for ( int x = ...etc.... ) as loopx
{
switch ( z[x][y] )
{
// etc...
case whatever:
break loopx ; // would break to point 1
case soomething:
break loopy ; // would break to point 2
}
} // for x
// <--- point 1
} // for y
// <--- point 2 |
| Sun 08 Feb | Chris Nahr | Hmm, I think the obvious criticism would be this: if you're going to jump across flow control constructs, and you have to use labels anyway, then you might as well use goto. |
| Sun 08 Feb | Egor Shipovalov | S.Tanna, Perl has such a feature. It allows you to break out from, redo or continue any particular labeled loop you're in. While it does come in handy sometimes, those cases are fairly rare and non-trivial.
Chris, goto knows nothing about loop counters or iterators, but Perl's labeled constructs do. |
| Sun 08 Feb | Fredrik Svensson | EWD1308
http://www.cs.utexas.edu/users/EWD/
Gives a short introduction to EWDs paper to ACM about the gotostatement.
The EWD papers have a lot of interesting reading, and it shows that the problems comming up in todays programming, has often been worked on and discussed already in the 1960:ies. I have personally seen code with floatingpoint number problems that were solved a long time ago and with papers online explaining how to avoid the problems. The Mhz speed may have changed but many of the rules are the same.
'Finally a short story for the record. In 1968, the Communications of the ACM published a text of mine under the title 'The goto statement considered harmful', which |