last updated:26 Nov 2003 15:12 UK time
|
 |
|
(Comments added for week ending Sun 23 Nov 2003) | View Other Weeks
|
|
| OT: Protecting clients' data to cover yourself? | Sun 23 Nov | PC Support Guy |
| Hi, my first time here. Be kind. :) This is a slightly off-topic question for JOS.
I am starting a PC support business. I intend to physically go out to customers businesses and help with their current PC or server problems. (My competence is fine, I think, based on the number of toasted systems of friends, family, and my own which I have restored to health.)
One of the key liability issues that I am obsessing over is how to deal with the protection of the end user clients existing data, to the extent that I am not accused of deleting or removing needed, irreplaceable files in the vast majority of cases. *Particularly* for semi-knowlegeable end-users.
Example scenario #1: the clients Windows installation is hosed by spyware and possible viruses. I propose to install and run an anti-virus package in order to clean out their system. Possibly, in doing so, the AV removes certain of the clients critical data files. Or the client accuses me of this.
Example #2: the client wants their old PCs data migrated to a new laptop. In order to do this cost-effectively, I remove the HD from the existing system and plug it into a secondary
IDE connector on the new system in order to copy data over. Static or a stray exposed power connector zaps the HD (unlikely but possible) and they lose the HD and its data.
More?... make up your own scenarios.
The *only* ways I can see to avoid liability and to protect the client and my reputation are as follows:
Ask clients to sign a preprinted release of liability that indemnifies me from damages, and which explains the distantly possible but still possible risks of opening up a PC case.
and/or,
Carry along a portable HD and back up all clients data on the spot before opening any cases. Which can be several hours. Which makes my services non cost effective for them.
I am also concerned about the superstitious client who will blame me for anything that happens on their system 3 mos after I work on their PC.
I would guess that in the vast majority of cases, the companies that do this kind of work make their customers sign a release before commencing any work, and they go bare without any attempt to do a proactive backup.
My thought is that just one screwup could destroy a support providers reputation so its worth doing more than essentially nothing. Or at least offering the service of doing a backup if the client requires.
Thoughts? |
| Sun 23 Nov | Damian | Contracts!
Get the to sign the liability waiver. Offer to do a backup as well, but make sure you have something in writing. |
| Sun 23 Nov | FullNameRequired | in new zealand we have insurance that covers this....theres likely (surely) to be an equivalent in the US.
also, you _dont_ need to be there while it backs up the data.
turn up, start the backup, bugger off.
come back several hours later and make the changes :)
I dunno...but if/when I start mucking about with _real_ data for _real companies_ I _really_ like having backups.
_really_ do.
_really_
personally, if a company came to me and said that they had hired a computer expert to work with their machines, and he (a) didn't want to make backups and (b) wanted them to sign away liability, I would....grin.... |
| Sun 23 Nov | FullNameRequired | I should have mentioned a possible solution.
Get it into the contract that certain specific folders _only_ will be used to store data important enough for backup.
Then you can backup those only each time.
If they still contain months of data then its still going to take hours to backup, but sometimes this cannot be helped.
(let them specify as many folders as they want as being important enough for backup, and use some scripts to automate the backup process _and_ perform a hash etc to check that the backup has worked) |
| Sun 23 Nov | PC Support Guy | >> turn up, start the backup, bugger off.
>> come back several hours later and make the changes :)
Impractical in the kind of business I'm going to be doing. The client will be some free standing business somewhere that requires a drive to get there and back. The backup drive is my property and I would be leaving it with the client. I imagine that in most cases, it will be most practical to simply stay with the PC, unless the client has other problems to be addressed. I'm reckoning that the backup will be (my) billable straight time.
Good points on waivers and backups, though.
Anyway, do you or does anyone else have a recommendation on a backup technology? Portable tape drive, or a portable USB hard drive? Other? |
| Sun 23 Nov | PC Support Guy | Oh, FullNameRequired, I just saw your second post. I should add that I expect many service calls to be one shot deals. Yes, if I work with a client repeatedly, then backups can become economical for them and your ideas are excellent, thank you.
What I am trying to figure out is how to make backups affordable with the 'worst case' assumptions (client and I are new to each other, the client is a drive away from my office so back and forth is impractical, etc.) |
| Sun 23 Nov | FullNameRequired | 'The client will be some free standing business somewhere that requires a drive to get there and back.'
yes....? Im not sure exactly how that makes it impractical.
cars are easy, and you _can_ charge the client travelling time for that specific situation (give them the choice...2 hours traveling time in the middle, or 6 hours waiting doing nothing _or_ they perform the backup of that machine themselves before you arrive.
(they will choose do to the backup themselves, and then fail to do so 90% of the time until they get used to it, so expect to have to be tough about it) |
| Sun 23 Nov | FullNameRequired | 'What I am trying to figure out is how to make backups affordable with the 'worst case' assumptions (client and I are new to each other, the client is a drive away from my office so back and forth is impractical, etc.)'
ahh. cant be done, sorry :)
you can make backups pretty quick by using firewire etc, but that assumes a certain level of tech available, and it assumes that they have a certain quantity of data only.
Honestly, one-off backups are _bad_, computers are _great_ at automating repetitive jobs, but hopeless at doing one off type work. |
| Sun 23 Nov | Dan Brown | Use an extra hard drive and Norton Ghost. You can back up everything quickly. This is especially easy if you bring your own computer to run Ghost.
Insurance is likely to be unaffordable. Insurance companies like being able to estimate risks, and they can't determine the cost of you being accused of destroying all financial records of a client. |
| Sun 23 Nov | Robert Jacobson | This type of business sounds like a recipie for disputes. Client comes to you with hosed disk, asks you to fix it, and you can't recover everything. Even if you're not responsible for the loss of data, it will be hard for you to prove that to the satisfaction of a disgruntled client.
There are certain devices that will automatically make a byte-for-byte clone an entire hard drive -- is that what you're thinking of? I don't know about their speed, but it sounds like the best protection.
At a minimum, you should give the customer the option of doing a backup. Present it to the customer as 'For $X I can try to repair your hard drive but can't guarantee against the loss of data. For an additional $Y, I can first make a backup of your hard drive to provide additional safeguards.' If they decline the backup option, they won't have much to complain about if things go south.
Of course, get a waiver form too -- and check with a lawyer. |
| Sun 23 Nov | anon | Years ago I would do the occasional moonlighting to fix folks problems not for money but because friends of friends would be asking me since I 'knew something about computers'.
I would tell them to back up everything beforehand and they would do a bit of it but there'd always be some weird thing they'd forget and then they would blame me for losing it. For a while I tried to back stuff up for them, but that is a big mistake since you are assuming responsibility for the lost files when you do that.
If I was doing this nowadays, I would carry an assortment of hard drives with me and I would start by pulling their old hard drive and reinstalling from whatever system cds they had. I would charge them three times my wholesale cost for the harddrive, plus a nice installation fee. I would set up their old harddrive as a slave drive so they can copy back their important data files at their leisure.
Another problem you always run into with home users is that they will have 'forgotten' their master CDs for several hundred of the most popular programs. They will swear to you they do have them somewhere and ask you to install copies from your own disks. They will insist that 'the last guy did this for me'. Of course, if they ever get busted for piracy, they will say that you installed the programs without their knowledge. So don't do it! |
|
| Source code for this board | Sun 23 Nov | Moosebumps |
| I remember there have been several threads about the source code for this board. I cant seem to find them in the archive (usabilitymustdie). How do you guys search that archive? Can anyone find those threads?
Anyway Im wondering how much work it is to set up a message board like this. |
| Sun 23 Nov | Dennis Atkins | 1 usabilitymust die is not an archive - it's a metaarchive.
2 to search jos use google with site:discuss.fogcreek.com
3 joel does not make his source code available, but at least four people have made clones of the board
4 maybe someone should make a jos faq |
| Sun 23 Nov | Alex Chernavsky | PHP / MySQL version:
http://www.johnsadventures.com/backend/DiscussionForum/APHPDiscussionForum.html |
| Sun 23 Nov | Santa Claus | ASP version @ http://www.sswltd.com |
| Sun 23 Nov | Robert Jacobson | '2 to search jos use google with site:discuss.fogcreek.com'
Doesn't work for me. It turns up some older topics, but not anything recent. (For example, I searched for 'Xbox' -- which was in a topic I started a few weeks ago -- but got nothing.)
My guess is that since there isn't any direct way to browse to older topics (ones that have fallen off the bottom of the list) they're not getting spidered by Google. |
| Sun 23 Nov | Robert Jacobson | "but got nothing" -- meant that I didn't get that particular thread. Google returned some older theads from 2001 and 2002, but nothing more recent. |
| Sun 23 Nov | www.marktaw.com | Google doesn't like sites that radically change (read: &ixReplies=99) every time it visits. |
|
| Web Hosting | Sun 23 Nov | Frederik Slijkerman |
| A few months ago, Ive chosen Stargate ( http://www.stargate.com ) as the web hosting provider for a new web site for my small software company. The main reason was that Stargate offers a lot of bandwidth for a reasonable price (10GB/$10), and you need some bandwidth if youre selling downloadable software via your site.
Unfortunately, service has been spotty so far. The site is down one or two times a week for several hours, especially the ASP pages, and weve had several other problems. Im thinking of migrating to another hosting provider, maybe to http://www.ev1servers.net/ but Id like to get some advice first. A quick Google search didnt help, so I thought Id ask here. What are good providers, and do any of you have problems with Stargate as well? Thanks! |
| Sun 23 Nov | www.marktaw.com | You might be better off asking in Webmaster World or in that forum that RackShack runs, I forget the name. You may want to look at the Netcraft stats for any host you're looking at.
Personally, I've been a satisfied Pair customer for years. They don't compete on price/space typically, but they've been rock solid where other hosts aren't. |
| Sun 23 Nov | Ori Berger | I'm a satisfied http://34sp.com customer. I have several domains on their 2$/month program. I know many other people who use them (many through my recommendation), and they've all had a very positive experience.
Not affiliated in any way, just a happy customer. |
| Sun 23 Nov | Jan Derk | For 18 months now I lease a dedicated server at ev1servers and I can't remember being down ever this year. The big but is that their servers are unmanaged. They only do reboots and restores. The good thing is that their forums are great. If you are too scared of that Linux command prompt you can always hire one of the forum moderators to manage the server for you.
For normal hosting accounts I would stay away though. It's low priority to them and they put you on one of those old and very slow Cobalt Pizza boxes. You are better of with pair.com or futurequest.net for standard hosting accounts.
And the web site Mark is referring to is:
http://www.webhostingtalk.com
it is a great resource, which rackshack (now ev1servers) recently sold. So they no longer the own it. |
| Sun 23 Nov | Bored Bystander | I had Futurequest for several years and only left them when I set up a 'root' host at www.rosehosting.com. FQ was extremely reliable and responsive. However, they certainly aren't a price leader and they charge $25 (flat one time rate) for every domain you attach to a hosting account. |
| Sun 23 Nov | Joe Blandy | > Personally, I've been a satisfied Pair customer for years.
I'll second that. I've been with them for a little over 2 years and I've never had a problem. |
| Sun 23 Nov | J. D. Trollinger | The hosting industry seems to attract a lot of unsavory characters. Friends of mine got burned by the company described here:
http://www.snopes.com/inboxer/scams/bhcom.htm
You might also see these earlier discussions:
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=24776&ixReplies=18
http://discuss.fogcreek.com/citydesk/default.asp?cmd=show&ixPost=3246&ixReplies=6 |
| Sun 23 Nov | jbarn | Ditto to the Pair recommendation from Blandy and MarkTAW. Pair is really excellent. Reliable servers, good customer service. |
|
| The Anti-Bionic Office | Sun 23 Nov | Crater Moon |
| I just got this link to Wired story about an experiment in office space design at an advertising agency that, according to the writer, was a dismal failure. Interesting to contrast with the Bionic Office design:
http://www.wired.com/wired/archive/7.02/chiat.html?pg=1&topic=&topic_set= |
| Sun 23 Nov | Sam Livingston-Gray | Awesome story.
<< Chiat had anticipated this pathetic human reaction, and was ready. He declared that 'nesting' - parking in any one place for more than a day - was strictly forbidden. In the 'Chiat High' he'd created, he acted as both principal and hall monitor. Says Rabosky: 'Jay would walk around, and he'd give you this look and say, 'Did you sit here yesterday?' And he'd make you get up and move.' >>
Sounds like someone never read Snow Crash, especially Neal Stephenson's description of working in Fedland. (= |
| Sun 23 Nov | John C. | And an interesting contrast:
http://www.siliconvalley.com/mld/siliconvalley/7281904.htm |
| Sun 23 Nov | Crater Moon | I'm not very excited about that siliconvalley.com story. It quotes executives about how much money it saves them. Nothing from the employee side of things. |
| Sun 23 Nov | Frederic Faure | I think that it was at Arthur Andersen in Paris that they went with this idea a couple of years ago. Sorry, I can't find any link, but I remember watching a documentary on TV about this. AA employees who needed to spend some time at the office, ie. when they weren't out meeting customers or working from home, had to make reservations at least 24h before showing up. Don't know if AA is still running things this way.
I seem to recall people didn't like using totally anonymous desks, and never having the same neighbors. Besides, what about the loss of information due to lack of face-to-face interaction with co-workers. |
| Sun 23 Nov | Dennis Atkins | Great article. Amazing no one sow the writing on the wall when that poor woman had to drag her files around the building in a little red wagon, looking for an empty desk.
Yeah, that's a great use of the time of a talented creative person.
Also amazing is the idea that high school lockers and going to classes is a productve way to produce products.
I remember in college I searched for several weeks until I found an unused professors office. I moved my computer, my radio, my coffee machine, a cot, blankets and my bookcase into that office and put a fictitious name on the door. While other students were scrambling to sign up for mainframe time, I just headed to my office, made some coffee and got my projects done. i always seemed to have more free time than the other students and in the end I graduated Summa Cum Laude and #2 in a class of 800. |
| Sun 23 Nov | Scot Doyle | dennis, that story brought a smile to my face :-) good show. |
|
| Stupid Users | Sun 23 Nov | Alice |
| Ive also being thinking about the whole stupid user thing. The underlying philosophy of GUI design seems to be to cater to the lowest denominator of stupidity.
You cant deny that some people really ARE stupid. But perhaps instead of just excepting this as an immutable unchangeable fact of life we should be trying to think of clever little ways to trick our users into becoming smarter?
Im still a complete newbie to the whole world of Linux and software design, slowly plodding my way through documentation. - and I must say that some of it is pretty damn confusing.
I think that documentation should be considered an essential part of an (open source) operating system, not some kind of optional add-on. What is the use of an operating system which nobody can understand?
Most programmers, however, if you ask them how they think the platonic OS would be designed dont even *mention* the documentation.
I have found in my attempts to read the documentation which exists for Linux that, often you must have read later chapters before you can understand earlier chapters, and ALL the documentation assumes that you have a basic grounding in general computer programming principles and mathematics.
This is okay for me because I do have a basic grounding in general computer programming principles and mathematics, but this is not true of most people.
Most people, for example, wouldnt have the faintest idea what a compiler is, or what the difference is between source code and an executable. Most people probably wouldnt even know the difference between a file and an executable, theyre both just icons on the desktop after all...
Also, most people dont have a clue what a parameter is. This is why they couldnt use a CLI if their life depended on it. They dont have a conceptual model in their mind of a function as a little black box with input going in one side, and output coming out the other.
I dont think its necessary for everybody to understand pointer arithmetic and integration by parts, but I think that in this day and age, people who use computers regularly should have some kind of a clue as to how they work.
Joel explained in his article that you have to make sure that your interface co-incide with your users model of how the program works. This is 100% true. But I think that as well as adjusting our programs to match the model which users have of how computers work, we need to adjust the model which users have so that it corresponds a little bit more with reality.
This cant be done by giving a user a Linux box without X, and telling them to type man man and work out the rest for themselves.
It has to be done in baby-steps and people who do have a clue are the people who have to break down the conceptual model into byte sized chunks which all the stupid users can digest.
I have this idea of an operating system, which an 8 year old (or a 30 year old) with no clues about how a computer works, can sit down at, and learn about computers whilst using one.
Since most readers dont read, it will probably have to be done with flashy animations and music and lots of diagrams etc....
So... To summarize: I reckon, if Linux wants to have a really funky GUI which totally kicks microsofts arse, then it has to be designed in such away that it is usuable by complete newbies, but at the same time forces its users to become more intellegent in an easy step-by-step way (rather than just confronting them with a cliff like learning climb and saying: climb or go-buy-microsoft)
If all the stupid users out there actually did have some kind of idea how their computers worked then I think they would get a lot more out of them and generally be happier. |
| Sun 23 Nov | ajs | This comes up a lot.
The correct answer is - Stupid programmer. Yeah, you behind the keyboard. Quit thinking you know how to do the users job. Actually go and do the users job, then go back and design your GUI.
It's called domain knowledge. Go get some.
If your users are brain surgeons, would you call them stupid? What about astronomers? Waiters? Mechanics? Receptionists? Nurses? Surveyors? Carpenters? IC designers? Graphic artists?
It's a big world out there, if you only know how to program, you don't know jack.
(I don't know jack either - but I know I don't) |
| Sun 23 Nov | Interaction Architect | I often hear people claim that they're not computer literate when trying to use some application or other. I think what they really mean is the application is not 'people literate'. |
| Sun 23 Nov | Mike | 'I think what they really mean is the application is not 'people literate'.' And yet other people can use the app easily.
Yes you should pay attentions to how users expect something to work, but you also have to accept the fact that there are a lot of dumb ass users out there to. You can take the 'no user left behind' mantra too far. |
| Sun 23 Nov | Mike Swieton | When someone asks me how I would design an OS, I don't mention documentation. That's because I consider it an expected part of the product. Not everyone omits that because they don't want docs, most of my coworkers omit it because *everyone* wants docs. But not everyone thinks they're OS should use the Fromatic Boogle instead of the Warkly Farkbag.
And I take issue with the assignment of all the stupidity on one side of the fence. Sure, many many bad user interfaces are the fault of bad program design. But many people also cannot figure out the application because they are dumb. There is blame on both sides.
I reject your suggestion that surgeons (for example) can't stupid. If a member of that profession can't use a given application, it may be because they are dumb. It may also be because the application is misdesigned, but it may not be, not always.
Sure, I could not do their job, but I should hope that if I tried, I wouldn't use a bone saw when a syringe was called for. Which is exactly what many of them do when using computers (not necessarily all or most, but at least one). Just because I can't do what they do doesn't make me dumb. And it doesn't mean that they can't be dumb.
I may be stupid, but that doesn't mean that no one else can be too. |
| Sun 23 Nov | sgf | It's irrelevant whether the users are stupid or not. They are who they are and they will decide to buy your application or not. If they can't use it, it's of no consequence that it's 'their fault'. They still didn't buy your app.
The stupid programmers are the ones who don't see this. |
| Sun 23 Nov | www.marktaw.com | Intuitive does not mean stupid.
Think of automobiles. A poor UI on the radio can kill people because they look at the radio instead of the road. A doctor could be just as susceptible as a burger flipper.
Again, referring back to Donald Norman's The Design of Everyday Things, every function should have a button so you don't have to go searching through menu's to find things. That button should also obviously do what you want it to do.
Computers rarely have buttons anymore, you right click, left click, double click on the same icon to bring up different menus.
The difference between a computer and a word processor is that a word processor is specailized and you can easily put a button for every function on it. An OS is supposed to be generic so that the same UI applies to all programs.
Microsoft and Apple deliberately standardized the user interface between programs so that a bold B meant bold and an italicized I meant italics. The standardization surely helped this become the universally recognized symbol for these things, but also that each button had one and only one purpose surely helped.
File / Edit / Preferences / Help etc. are standardized menus, yet users continually have to hunt for what they want to do in them. |
| Sun 23 Nov | Mike Swieton | It's not irrelevant whether the users are stupid or not. If all of the users are stupid, you must make things very very obvious. But what do you do if only 10 users are stupid? You cater to the biggest market, smart users.
There are many areas in which it's not possible to make it easy for an expert to use and easy for a novice, and easy for everyone in the middle. In these cases, you have to decide who you're going to leave behind.
It's just as dumb for a programmer to make an interface that is for the novice user when his market is experts as it is to make an expert interface for novices.
Making an experts-only interface does not make a stupid programmer; making such an interface in a novices-only market is stupid though. |
| Sun 23 Nov | . | Consider this contrast:
When users can't understand software, the programmers get blamed.
When people ask questions about the law, there's no hint of saying the lawyers are too dumb to make the law clearer. Instead there's a clamour of posts advising to 'see a lawyer,' implying the user is the dumb one. |
| Sun 23 Nov | no name | 'When people ask questions about the law, there's no hint of saying the lawyers are too dumb to make the law clearer. Instead there's a clamour of posts advising to 'see a lawyer,' implying the user is the dumb one.'
People don't say 'see a lawyer' because the law is something that just naturally needs lawyers or because people are 'too dumb' to understand it. They say it because any other advice will result in lawyers making life hell for the foolish person who didn't submit to them. A lawer will often give the same advice that some random person here would give, but an insurance company will only cover the legal liability if there's a lawer's receipt. Please note that I quite clearly stated the lawyer was not being consulted for their superior intellect or even for their knowledge of the law, so your assertion that 'see a lawer' implies that people are dumb is simply wrong.
It is not implying that people are 'too dumb' to understand the law, but instead acknowledging the fact that the law is a minefield and that consulting a lawyer is necessary not to avoid the mines but to ensure you can get your leg stitched back on (with a few scars) when the lawyer makes a mistake.
When people discuss what the law should be, rather than what it is, the most common idea is that the law is too complicated, and should be made simpler and easier to understand, even though practical means of achieving that are harder to come up with. |
| Sun 23 Nov | . | You mention insurance in one paragraph, but not in the other. However that's not generally the reason people are exhorted to see a lawyer.
In any case, working on that logic, users are often instructed to consult experienced support people, and businesses are often instructed to use experienced developers, but they don't, and still direct blame to programmers. (Oh, and Microsoft.) |
| Sun 23 Nov | www.marktaw.com | Oh great, now we have " " arguing with "." |
| Sun 23 Nov | ! | > Oh great, now we have ' ' arguing with '.'
Well, I say fuck 'em both |
|
| Linux Refactoring | Sun 23 Nov | Alice |
| What does everybody think about rewriting Linux, or parts of it (such as X perhaps) in a higher-level, object oriented language such as python? |
| Sun 23 Nov | Clay Dowling | I think that plan smells like old socks. X is slow enough already, let's not handicap it with a language that will add to the problem. |
| Sun 23 Nov | Alice | Which is more important:
a) The speed at which X (or the kernel) runs on the cpu
b) The speed at which a programmer writting an application for X (or Linux) can get their head around the API? |
| Sun 23 Nov | Mike | Which is more important:
a) The speed at which X (or the kernel) runs on the cpu
b) The speed at which a programmer writting an application for X (or Linux) can get their head around the API?
For the end user a
For the developer a - because you aren't going solve the x problem with a scripting language choice b is the developer thinking about getting x rewritten as easily as possible. Python might be a great language, but it does not have the performance you need for a gui server. |
| Sun 23 Nov | Frederic Faure | Besides, if Linux is going to make major in-roads on the desktop, who cares about a windowing system that can send its display on another host? This is 1970's technology :-) |
| Sun 23 Nov | rd | Frederic,
Well, Microsoft care for one. As Joel noted, XAML looks an awful lot like NeWS.
Sure, XFree86 might not be the ideal implementation. Better perhaps to adopt the Apple model by adding an X11 compatability layer to a native display.
But asking that Linux should abandon X11 altogether is a really silly idea, not least becuase it involves throwing away countless hours of work on windowing toolkits like GTK+ and QT. |
| Sun 23 Nov | Frederic Faure | I know that we have to stick with X because dumping it would mean rewriting just about every GUI-based Unix apps but still... it's kinda funny to see port 6000 open on a desktop host, which _no one_ will ever write too from the network :-) |
| Sun 23 Nov | Moose | I use Linux only as an hardware abstraction layer. On top of Linux and XFree86 I run Squeak. One of the fathers of Squeak is the man who invented the term 'object oriented': Alan Kay. You can download Squeak at
http://www.squeak.org |
| Sun 23 Nov | MS Developer | I *totally* support rewriting the Linux Kernel in Python. That's a plain good idea whose time has come! |
| Sun 23 Nov | Mike Swieton | I question whether or not the kernel needs rewriting. Is there some fundamental problem with it?
As for X, I also question that. I don't think X has problems that require a revolutionary change. The number 1 problem cited with X is the inconsistant actions of the applications. But that is not a fault with X doing something badly or being broken. It's a problem with X having never implemented something (common widget set). That can be added.
I don't think a rewrite is necessary. I also think a good rewrite is really not possible, or at least not feasible, if you wish to maintain backwards compatibility. Which you must, because there are many thousands of useful and good applications for X. |
| Sun 23 Nov | GP | By the way, rewriting something in another language has nothing to do with "Refactoring". |
| Sun 23 Nov | Slashbot | What does everybody think about refurbishing cars, or parts of it (such as the steering wheel) using lighter materials such as carbon fibres? |
| Sun 23 Nov | Ori Berger | X isn't slow. Used right, with the right drivers, it's about as fast as Win32 used right. The network transparency costs very little, and if you insist, you can use shared memory to completely eliminate the costs (losing the network transparency along the way, unfortunately).
Check out FLTK [ http://fltk.org ] - It's a graphic toolkit, that works on both Win32 and X. It makes full use of the features of both systems, and is fast and crispy on both. It's faster than any other toolkit I've tried on both Win32 and X, (except, perhaps, the K GUI). |
| Sun 23 Nov | CEO On the Take | I'm right with the idea that loads of programmers should spend their weekends and evenings rewriting the kernel in Python. For free. Do it. |
| Sun 23 Nov | Beth | Scripting languages are great for lots of things. Kernel programming isn't really one of them. |
| Sun 23 Nov | Slashbot | Don't rewrite the Linux kernel in Python. Start from scratch. |
|
| Biz with importers | Sun 23 Nov | Evgeny Gesin /Javadesk/ |
| Is anyone worked with large importers of electronics and computers,
which sell via third-party on-line stores?
- What average man-hours you spent into integrating with the
importers backend?
- Are they capable of providing order status acknowledgment (like:
awaiting payment, order shipped, order problem, etc.) and updating
order status in your automatic system?
- What minimal/average/maximum discounts do they offer?
- What was your ROI? (or the time to bankruptcy ;)
All stories are very welcome. |
| Sun 23 Nov | Evgeny Gesin /Javadesk/ | I meant not discount, but what percent (%) importers pay from "total" sales.. |
|
| Build tool for VB6 | Sun 23 Nov | ICBW |
| I just started working for a software company that uses VB6 as its main development environment. I had some experience with VB in the past, but need a lot of work on it to get up to speed. As to the desirability of learning VB6 these days, with the proliferation of .Net in the dev world, I will leave that to a different thread :-).
I worked previously in a Java shop. So first of all, I’m looking for a good tool (like Ant) to automate the build process. At this point, I need to find something that is free as the budget for tools seems to be non-existent here. Are there any recommendations for a tool to use?
Also, I would be very happy to get recommendations for any good VB resource sites and/or mailing lists. There are so many sites out there, learning which ones are good would be a big help and time saver for me.
Thanks! |
| Sun 23 Nov | Robert Jacobson | This site seems to be good for VB6 (and VB.Net) resources:
http://www.vbaccelerator.com/home/index.asp |
| Sun 23 Nov | Phil | http://www.positive-g.com/dailybuild/index.html |
| Sun 23 Nov | KayJay | As a VB Developer myself, I am most comfortable and have learnt a lot at http://www.vbforums.com |
| Sun 23 Nov | mb | nant apparently has a VB6 build component. if you've used ant, this would seem the natural place to go.
http://nantcontrib.sourceforge.net/help/tasks/vb6task.html |
| Sun 23 Nov | Sathyaish Chakravarthy | >Also, I would be very happy to get recommendations for any good VB resource sites and/or mailing lists. There are so many sites out there, learning which ones are good would be a big help and time saver for me.
The first thing you could do is to get familiar with the development environment. Roam around the VB6 IDE, open a standard project, click on the blank form and hit the F4 key to bring up the properties window. Browse through the form properties in the properties window and read along the propery descriptions at the bottom of the window. Alongside, open the MSDN and look for their documentation. Do this for all the intrinsic controls. The intrinsic controls are those that are present in your toolbox by default, i.e. without adding any external controls from the Project -> Components dialog.
Having done so, after a few days, read the Karl Moore columns/articles for VB beginners on VBWorld (http://www.vbworld.com). He makes everything seem as easy as cakewalk. Then you can subscribe to InformIT (http://www.informit.com) and read from the library, a host of useful articles and book excerpts. Besides this, you will find the following sites extremely useful:
(1) Dave McCarter's Visual Basic Tips and Tricks (http://www.vbtt.com)
(2) Rod Stephen's VB Helper (http://vb-helper.com)
(3) http://www.vbexplorer.com
(4) http://www.thescarms.com
(5) http://www.codeguru.com/vb
(6) http://www.vbip.com
(7) http://www.winsockvb.com
(8) http://www.vb2thmax.com
(9) http://www.mvps.org
(10) http://www.cgvb.com
(11) http://www.freevbcode.com
(12) http://www.codeoftheweek.com
I am sure I am forgetting many other interesting ones, but these are one of the few that come to mind and are extremely helpful for beginners.
One more good site is http://www.vbworld.com. So is the VB section of http://www.planetsourcecode.com.
Books:
==========
(1) If you're enrolled for a course, then your course book should be the first place to look.
(2) Mastering VB6 (BPB Publication)
(3) Visual Basic 6 Unleashed - by Rob Thayer - for COM, ActiveX control/DLL creation, and a host of other topics like TAPI, MAPI, SAPI, Winsock etc.
(4) A Visual Basic 6 Developer's Handbook/Toolkit (don't remember) - by Hank Marquis and Eric Smith
(5) Waite Group's Visual Basic Tips and Tricks
(6) Dave McCarter's VB Tips and Tricks (supplement to the site http://www.vbtt.com)
Then you could move on to subjects such as Win32 API programming. A good site for API reference with VB is http://www.allapi.net. Alongside, the following books will help you:
(1) Dan Appleman's 'A Visual Basic programmer's guide to the Win32 API' (the last edition was written for VB5 but it will help you along with VB6 too)
(2) Steven Roman's 'Win32 API Programming with Visual Basic' (One of the best sources I've found, very lightweight, you can read them at night like bedtime stories) This is O'reilly publication available from Shroff Publishers and Distributors.
(3) Later on, when you're about 2 years into VB, you will like to read Bruce McKinney's 'Hardcore Visual Basic' onlineat http://www.mvps.org. It was earlier published in the MSDN till April 2001. Its now been removed from MSDN and is only available at MVPS.ORG online. The hard copies are out of print although if you like one, you can get one from eBay at $300 (USD).
(4) Visual Basic Developer's Guide to COM and COM+ - by Wayne S Freeze (SAM's Techmedia publication)
Besides this, you'll want to buy some Bill Waughn's book on ADO. You can start learning quick if you participated in VB forum discussions. Here are the three best forums, IMHO:
(1) Extreme Visual Basic ( http://www.visualbasicforum.com)
(2) VBForums ( http://www.vbforums.com)
(3) Code Guru Forums ( http://www.codeguru.com/forum)
Other forums, that are not-so-good, IMHO:
(1) http://www.tek-tips.com
(2) Open ITx vb mailing list ( http://www.vb.ittoolbox.com)
(3) QuickTechUSA (http://www.quicktechusa.com/msgboardvb/wwwboard.pl)
(4) Custom Code Factory ( http://www.custom-code-factory.com)
Hope that helps. |
|
| Bayes filtering, invented by... | Sun 23 Nov | rOD Begbie |
| Thomas Bayes, shorely.
First applied towards spam filtering by Paul Graham.
Rod. |
| Sun 23 Nov | Phoenix | Actually, this publication from Microsoft Research predates Paul Graham's 'plan for spam':
http://research.microsoft.com/~horvitz/junkfilter.htm |
| Sun 23 Nov | Rob Mayoff | Jason Rennie published a paper on Bayesian filtering of e-mail in 1998, and has been working on his implementation of it (called ifile) since at least 1997.
http://www.watson.org/~jrennie/ifile/ |
| Sun 23 Nov | Crimson | Paul Graham himself mentions that there were others (specifically at MS) who worked on Bayesian filtering before himself. The problem wasn't the idea -- it was the implementation. I |
| Sun 23 Nov | Robert Jacobson | How sad that Microsoft was sitting on this idea for years, but couldn't develop a halfway decent spam filter for Outlook until Outlook 2003. |
| Sun 23 Nov | heh | > The problem wasn't the idea -- it was the implementation.
It wasn't the implementation or the idea, it was a matter of visibility. His essay about Viaweb and Lisp was widely circulated some time earlier.
Bayesian learning is about 15 years old. |
| Sun 23 Nov | CdR | Invented? No. Popularized? Yes, sure.
Popfile http://popfile.sourceforge.net/ was also around before Graham's article, and it's still among the very best. The main feature it has over any other (except ifile I suppose) is that it's not used just for spam vs. not-spam filtering but instead it can filter anything. You want all securities-related mail in a separate bucket? Or all mailing lists in the same bucket? It handles it beautifully.
You know popfile is the best the first time you receive email from someone you've never corresponded with before, and its still filtered into the correct bucket, based solely on content. For example, signing up on some site, and receiving the password and popfile just /knows/ where I would want such mails. |
| Sun 23 Nov | mathstench | 'Thomas Bayes, shorely.'
Thomas Bayes died in 1762. He came up with Bayes's rule. I.e. conditional probability. He didn't invent bayesian filtering. |
| Sun 23 Nov | as | It's always puzzled me why it's called Bayesian filtering when Paul Graham's article doesn't contain anything that even looks like an example of Bayes' theorem. |
| Sun 23 Nov | mathstench | "bayesian" in this sense is just an adjective that means "uses subjective probabilities". any technique that builds off of the idea that you update the likelihood that a given statement is true (i.e. that a message is spam) based on new evidence can be said to fall under bayesianism. |
| Sun 23 Nov | Matthew Lock | Credit correctly to go Paul Graham because after he published 'A Plan for Spam' there was an explosion of open source efforts to control spam by statistical means.
Graham never claims to have invented the idea by the way: http://www.paulgraham.com/msftpatent.html
By the way, curious that MS has a patent on some aspects of Bayesian spam filtering. |
| Sun 23 Nov | Justin Mason | Check citeseer -- there's a whole stack of papers that predated PG's work regarding the application of Bayesian classifiers to spam filtering.
But Graham's article certainly popularised it very nicely ;) |
| Sun 23 Nov | Matthew Lock | Probably the main factors were the interesting-ness of Graham's writing and the timeliness of him releasing the paper - just about the time when spam became a major headache. |
| Sun 23 Nov | Interaction Architect | Don't filter spam, just legislate it away:
http://rss.com.com/2100-1024_3-5110622.html?part=rss&tag=feed&subj=news
I'm serious...and don't call me Shirley. |
|
| JoS - Delphi... | Sat 22 Nov | Confused |
| I hear Delphi mentioned a lot here. How many professional Delphi programmers can there be out there and are most card-carrying JoSers?
Note, this is not a scientific test... :)
Monster.com has ~174 Delphi jobs [1] vs ~3290 [2]
Seems like this board has attracted most of them.
This isnt a flame against Delphi, just confused at how the number of people on this board rave about Delphi compared to the (apparent) demand (or lack thereof)
for Delphi programmers...
[1] http://jobsearch.monster.com/jobsearch.asp?q=delphi&sort=rv&vw=b&cy=US&re=14&brd=1%2C1862%2C1863
[2] http://jobsearch.monster.com/jobsearch.asp?q=visual+basic&sort=rv&vw=b&cy=US&re=14&brd=1%2C1862%2C1863 |
| Sat 22 Nov | Confused | sorry, comparing Monster.com hits for Delphi (174) vs Visual Basic (3290) |
| Sat 22 Nov | Bored Bystander | >> just confused at how the number of people on this board rave about Delphi compared to the (apparent) demand (or lack thereof) for Delphi programmers...
I 'are' one of the programmers to whom you're referring and your description of the attitude is pretty accurate.
Delphi developers have a 'siege' mentality for several concurrent reasons:
Delphi has been marketed, priced and positioned absolutely horribly from the start. Borland/Inprise literally snatched defeat from the jaws of victory. Most of us are extremely frustrated with this state of affairs. Borland seems to manage to sell enough copies to keep the brand alive but the market penetration in the real world has been weak since Delphi was announced.
Delphi is exceptionally productive for desktop applications, so (IMO) there is not the great demand for developers to compensate for a lame development environment.
Delphi tends to be picked by smaller companies that have well-defined functional reasons for choosing their programming tools. Smaller companies are extremely selective and spotty in their hiring practices. Whereas larger companies make the choice of programming environment a more political issue, and FUD factors ('nobody was ever fired for recommending Microsoft') come into play. So the market demand for Delphi skills has always been extremely weak and spotty.
Technically, Delphi gives you (insert 3 minute infomercial here) on a silver platter.
Basically, most of us are frustrated - it's a superior tool sold by a stupid clueless company that has demonstrated through actions that it doesn't understand its market at all.
So from that frustration there arises a sort of evangelical zeal to be heard. |
| Sat 22 Nov | Cletus | 'Basically, most of us are frustrated - it's a superior tool sold by a stupid clueless company that has demonstrated through actions that it doesn't understand its market at all.'
AMEN! Very well put. |
| Sat 22 Nov | Cletus | 'How many professional Delphi programmers can there be out there '
Perhaps, it's the same guy, with many alter ego's, posting under different aliases :) |
| Sat 22 Nov | Dennis Forbes | With all due respect to Visual Basic (...is that an insult?...) you'll find it under-represented in virtually all "advanced" software development forums. At the same time, fringe technologies like Delphi, Python, etc, get the lion's share of the advocacy. |
| Sat 22 Nov | Xxxxx Xxx | A typical software has a lifespan of several years. The
software tool company better not get bankrupt while
the software it is written in is being maintained.
Borland does not have my trust in this aspect. Whats
more, it can't even decide on what moniker to adopt. |
| Sat 22 Nov | Li-fan Chen | Some people don't use Monster |
| Sat 22 Nov | Confused | hotjobs.com 59 vs 732
dice.com 82 vs 1181 |
| Sun 23 Nov | Mike | As with many things in computing. Popularity is inversely proportional to quality. |
| Sun 23 Nov | Phoenix | Delphi is disproportionately popular in Central Europe and Russia. But I'm sure that didn't generate many sales for Borland :-)
Probably the reason is the long tradition of Turbo Pascal for DOS - for several years 'programming' meant 'Turbo Pascal' and nothing else. |
| Sun 23 Nov | Matthew Lock | I'm sure that anyone who did a Computer Science major up until the mid 90s (when a couple of years of Pascal was mandatory) felt that Pascal left a bad taste in your mouth. That certainly couldn't have helped Delphi. |
| Sun 23 Nov | Sum Dum Gai | Borland have unfortunately never seemed to really have a plan. There's a saying that goes 'Better a bad plan than no plan at all', but unfortunately Borland don't appear to have heard it.
Or their plan is so bad that it just appears they don't have one ... |
| Sun 23 Nov | one programmer's opinion | When Delphi first came out there sure seemed like there were a lot of young PC desktop developers who were interested in this product. The problem is that you can't just produce a superior software development environment and expect the corporate business to embrace it.
Most schools at the time taught VB, C++, mainframe technology, etc. -- not Pascal. In the early to mid 1990s, cheap programming labor in the United States primarily consisted of recent college graduates. Since many of those graduating students weren't officially (by taking a class) exposed to Delphi while in school ....
Imo, among many other things Borland should have given their product away for free to all educational type of institutions. Also, I think it would have helped Borland if they had initially dumped the product onto the market at a severely discounted price.
My feeling is that Delphi is primarily being used a lot nowadays by hobbyists and shareware type software developers (i.e. people who are independent in some manner) in the United States. This type of software developer is much more likely to visit a forum such as this one then say your typical overworked, stressed out, business application developer. The last thing your average joe programmer wants to do is learn yet another programming language and set of development tools. |
| Sun 23 Nov | Kyle Cordes (kylecordes.com) | Delphi is also quite popular among vertical market software vendors. Such companies tend to have a small number of developers, and also tend to keep quiet about their use of Delphi. They may be perfectly content that their competitors and customers assume they are using something else. |
| Sun 23 Nov | Clay Dowling | The rabid advocacy comes from another factor as well. As far as a development model and environment go, Borland does understand what's needed, and Microsoft doesn't. Any of the Borland tools are easier to use and produce a good looking app than anything Microsoft puts out.
If you've tried to use Visual C++, you'll understand. That product is exceptionally non-visual. Snag Delphi or C++ Builder and you'll see that it's pretty trivial to build a good looking, even driven app. Borland's tools knock Microsoft's tools down and take their lunch money on a daily basis. |
| Sun 23 Nov | Sunish | Delphi gives the power of VC and ease of VB for the developer, but alas in how its marketed its neither the power of VC or VB
Mostly delphi is used by one man companies who don't at all recruit people via monster or whatever |
| Sun 23 Nov | Robert Jacobson | I'm a VB.Net/C# developer. I have no experience with Delphi -- it sounds like a fine language, but I don't have a compelling reason to switch.
A few months ago I had some legacy Pascal code that I wanted to play around with, so I downloaded a trial version of Delphi from Borland. Being used to Visual Studio, the Delphi IDE looked rather... well... quirky. The strangest thing, IMO, was how instead of using a standard MDI interface, it had one window for the menu/toolbars and separate, independent windows for code modules. (Maybe there's a way to get an MDI interface, but I couldn't find it.) It gave me an unpleasant first impression.
Just my two cents... |
| Sun 23 Nov | jcm | Being one of those 1 man shop already mentioned on this board, I feel strongly toward Delphi and the productivity boost it gives me. I can say though that I am impressed with the job Borland is doing. And in fact, in a year or two, as .NET goes mainstream probably will use Delphi Octane to migrate my code to .NET and embrace C#.
Time will tell. Borland sucks, Delphi clearly not. |
|
| going independent (sort of) | Sat 22 Nov | indie |
| Im close to landing my first independent contracting gig (part-time, Im still maintaining my day job). Anyone out there have advice, dos/donts, links to resources, etc. ? |
| Sat 22 Nov | Li-fan Chen | I think a little more detail would help?
Are you to be elected the president of the japan? Or the janitor for a small company? |
| Sat 22 Nov | Confused | gee, this is a software forum.....
frequented by programmers.....
hmmm.... |
| Sun 23 Nov | hoser | Most employment agreements prohibit moonlighting. |
| Sun 23 Nov | Simon Lucy | That would include all those policemen working as bouncers in bars then... |
| Sun 23 Nov | Dustin Alexander | 1) Don't undercharge.
This will destroy your life and your relationship with your clients. Most good consultants prefer to lose clients rather than undercharge, because they realize the damage to their careers and reputations this can cause.
2) Be realistic.
Be more realistic than you are when quoting for your day job. You are NOT going to be able to work many 16 hour days and through many weekends in a row for long. Be realistic about your workload and take it easy. Make sure your client is aware that you have other obligations and is ok with taking the backseat to other elements in your life.
3) Make sure its legal.
Make sure your current employer will have no grounds to go after you or even fire you for your side job. It can be one hell of a blow to have all these elements of your life coordinated and then find out you've been assassinating yourself at your day job.
4) Figure out where you want to go NOW
If you want to do this for the rest of your life, one client will not do it. The sooner you can figure out marketing and the political game, the better you will do in the long run. You are now building a business, not just working for someone else. Focus on all the aspects of building that business. Read some books, take some classes, and pay attention to the little details.
5) Cover Yourself
Get bonded. A good 1M bond can cost as little as $500 and will save you a lot of concern if the client turns out to be a feature creep specialist or you make a mistake. Liability is one of the number one overlooked issues when going into business for yourself.
6) Get a contract.
Get a contract. Get everything, including all expectations, signed off on and develop a method early on to get client acceptance. This is much more important now than when working for a salary, especially when you may be dealing with a smaller project that is more subject change.
There's a few lines in an eternal bin of device.
Many years ago, when I was getting into this business, a wise man once told me: It takes three years to build a successful business. No man can or should do it in any less. The first year you will spend screwing yourself. After that, you will spend the second year getting screwed by your clients. It is only in the third year that you will have the wisdom to know your own abilities and the cynicism to understand those of your clients. |
| Sun 23 Nov | Dustin Alexander | hmm s/device/advice. Strange that. Must be too deep in the keyboard drivers this morning. |
|
| Is .NET overkill for Desktop Apps? | Sat 22 Nov | Cletus |
| I write desktop and small utility applications in Delphi for the company I work for. The nice thing about using delphi is that the apps compile to a single exe (no deployment hassles, dll hell etc), OO framework, and generally the apps are pretty fast. Some of the utitlity apps are small enough that can still fit on a floppy. We may have to start look into converting our desktop apps to .NET, so that we can be .NET compliant and have one code base (server-side apps are in .NET). I dont mind, and I am not complaining, if this is going to keep me employed, but I ask myself what benefit is this for the consumer of the software (internal and external customers)? If a user of the software wants a copy of some of the software, all I have to do is email them an exe (usually 2mb or less) or put it on a floppy and hand it to them. Now in the .NET scenario, I have to make sure the user has the runtime engine (20 MB install), the latest version of IE, the latest windows updates. Plus, I dont know if there will be any noticeable performance gains in a .NET app. All in all, it seems like .NET is overkill for desktop development. I can be totally wrong, and I am willing to be corrected.
I am not trying to bash .NET as a development enviroment. What I have learned so far, it seems like a very elegant framework (similar to Delphi/VCL) and I look forward to learning more and working with it. I am just trying to understand what the benefits are for using .NET for utility and shrink-wrapped applications. |
| Sat 22 Nov | Mark Hoffman | 'I have to make sure the user has the runtime engine (20 MB install), the latest version of IE, the latest windows updates.'
There is a little hyperbole there...They don't necessarily have to have the latest version of IE and they don't have to be fully patched. They do need the .NET Framework installed. In the future, this will be installed with the OS. For now, yeah, it's a separate install.
I don't really look at the choice of development tools in the 'what advantage does this have to my customer? viewpoint. If the application can easily be installed and run on my target market's computers and answers their needs, does it really matter what development tool it's written in?
If having your clients install the Framework is going to be a burden, then by all means stick with Delphi. |
| Sat 22 Nov | Dennis Forbes | If the customer has the framework, which is getting closer and closer to being an acceptable assumption, .net can actually yield some tremendously tiny "binaries" - An interactive modal dialog app with a couple of labels and buttons that set value yields a release "binary" of 6.6KB. |
| Sat 22 Nov | runtime | You say you 'must' switch from Delphi to .NET. But if you are already succcesful in Delphi, WHY bother switching? You have Delphi code that works. You would have to rewrite from scratch on .NET (and you know how popular that is on THIS web site). :-D
Sure, your server-side software might be .NET, but are they maintained by the same developers? How much code sharing will their actually be? Is it enough to warrant the extra costs of rewriting and deployment headaches? |
| Sat 22 Nov | Frederic Faure | Besides, if you want to build web applications to paying customers, I understand that Delphi can build ActiveX controls. If they don't mind being restricted to an IE-compatible browser, I think you should give it a shot before diving into server-side scripting with ASP.Net. |
| Sun 23 Nov | Kevin | Um, you do know that Delphi 8 for .NET was released last week, right? |
| Sun 23 Nov | Mitch & Murray (from downtown) | Delphi 8 for .NET was _announced_ last week, not _released_. It will be a while yet before it is finalized. |
| Sun 23 Nov | C# fan | I finished an application (3000 LOC C#) a week ago. I worked with the client feedback. I think I sent +-20 versions by email. The actual exe is 50k.
In this case, a tiny exe + a big runtime payoff. |
| Sun 23 Nov | Cletus | 'I think I sent +-20 versions by email. The actual exe is 50k.
In this case, a tiny exe + a big runtime payoff.'
This looks promising. If I understand correctly, there is a one time 'penalty' (for lack of a better term) for the user in downloading the runtime once and then distributing applications become quite manageable.
Thanks to everyone for all of your feedback. |
|
| Microsoft "Empower" Program | Sat 22 Nov | Curious entrepreneur |
| Has anyone tried this program from Microsoft ? Are there any bad aspects to it ? |
| Sat 22 Nov | Anon. Coward | Have you looked at the main page of Joel's website? He gave a long review just a couple weeks ago, and it's still there. |
| Sun 23 Nov | Simon Lucy | Currently the US Empower program is being discounted at 50%, $375. I'm about to find out if the UK are going to do the same. |
| Sun 23 Nov | Kentasy | Discount ? Wow. I already thought it was a good deal. In fact, it seems 'too good to be true' so I am wondering what could be bad...
There is a 12 month deadline of course and the testing requirements, but both of these can be good as well by setting a goal and minimum quality requirements.
Thanks Simon for the heads up on the possible discount... |
| Sun 23 Nov | Nick | It's a trap. Read the fine print:
1) All licenses expire in 1 year.
2) You need to get your app Win certified.
3) You need to join a MS partnership program.
And then estimate the real cost. Thanks, Joel. |
| Sun 23 Nov | Tim Sullivan | > 1) All licenses expire in 1 year.
The membership expires in one year, as do all other standard MSDN subscriptions.
> 2) You need to get your app Win certified.
No, you don't. You need to make a 'reasonable commercial effort' to do so. The program only needs a 'verified' test, which is $800 for the Windows XP test.
> 3) You need to join a MS partnership program.
No, you do not. Again, you need to make a 'reasonable commerical effort' to do so, assuming you pass certification, which you may not. In any case, it's $2500.
So, for $3675 (of which only $375 needs to be paid up front, the rest are more or less discretionary - 'we cannot afford it' is a good reasonable excuse why you can't get tested) for software worth (5 * $2,199), or $10,995.
It's not a trap. It's a deal, any way you cut it. For $375 you get 10K worth of software, unless you've got a lot of money for testing. I don't know about you, but sign me the hell up. |
| Sun 23 Nov | Robert Jacobson | Thx for the details Tim. Just out of curiosity, schedules tend to slip -- what happens if your program actually is released in 24 months instead of 12? Does Microsoft bill you for the software, or take your firstborn child? |
|
| Stupidity Video | Sat 22 Nov | Saturday the 22nd |
| http://www.softwaremarketsolution.com/files/StupidityInterview-147kbps.wmv
Has Chapman talking about book, marketing stuff. Very funny segment on Dalai Lama. Talks about Joel. |
| Sat 22 Nov | tapiwa | Jeez, a 50Meg download... Has anyone else got a smaller version, or indeed a transcript? |
| Sat 22 Nov | tapiwa | Have just been to their websites ...
http://www.softwaremarketsolution.com/
That there is one UGLY website. |
| Sat 22 Nov | Saturday the 22nd | Why download? Streaming format.
The link is at www.insearchofstupidity.com.
Didn't look at the other site. Not sure how pretty it is but has a lot of good stuff on it. Never knew much about focus groups. |
| Sat 22 Nov | Evgeny Gesin /Javadesk/ | I downloaded the video. There are some funny cartoons. |
| Sat 22 Nov | no name | Great information humorous stuff but who's basement did they shoot it in and he could be the geekdom poster boy. |
| Sat 22 Nov | Stephen Jones | Streaming video at 147kbps - not really on for a dial up or ISDN connection. |
| Sat 22 Nov | Frederic Faure | Speaking of which... do you know of a good editing application to edit and convert WMV files to eg. AVI or RealVideo? |
| Sat 22 Nov | Tayssir John Gabbour | Very entertaining video, good use of the web for excerpts. But is there a rational reason not to have excerpts on Amazon? Many Apress titles seem to take advantage of them. After investing time reading them, customers probably also look for book websites. |
| Sat 22 Nov | Frederic Faure | I no longer get any sound around 7:30 in the video. |
| Sat 22 Nov | Fairlight |
The Wordpro & Wordpro 2000 annecdote is actually
quite funny. |
| Sun 23 Nov | no name | Man, that guy comes off as an arrogant moron for the most part. |
| Sun 23 Nov | Simon Lucy | Hmmm, arrogant possibly, moron certainly not. I'd guess the point about institutional memory kind of missed you. |
| Sun 23 Nov | Fairlight |
A lot of people are arrogant if your definition of arrongant
is knowing your subject well. |
| Sun 23 Nov | Sunday the 23 | 'Man, that guy comes off as an arrogant moron for the most part. '
So YOU'RE the guy who put the Dalai Lama on that poster! |
| Sun 23 Nov | | IMO, hindsight is 20/20 - if this guy had the insight into why these projects failed (for example, at micropro) while they were in the process of failing and turned the companies around or pointed it out to management, etc - then I would give him more credit.
For example, today it's plain as day why the .com implosion occurred. Anybody with a brain can see that. But how many startup companies realized (at the height of the .com boom) that they would have to figure out a way to be profitable in a short order or close its doors? There may have been a few, and those companies are most likely still in business. Does that make me an expert or really intelligent? No.
In conclusion, it's not hard to look back in time and point out other people's mistakes. It's a completely different thing to realize the mistakes in 'real-time' and try to change them. If this guy was so insightful, he might be the CEO of MicroPro today for saving the company 20 years ago and it's flagship product WordStar XP would be kicking Word's ass. ;-) |
| Sun 23 Nov | Simon Lucy | I remember the Micropro debacle and as an OEM we told them it was an impossible situation that Wordstar 2000 couldn't use the huge printer database that Wordstar had.
But as was said in the presentation, internally Micropro had a complete war between those that had developed Wordstar 3 and Wordstar 2000. Nothing anybody said made the slightest difference to them.
At the same time I was porting Microsoft Word, which had fewer features and was much harder to port than WS and it was around that time that it started to make inroads into the market. |
| Sun 23 Nov | Fairlight |
Simon Lucy :
Have you worked with Richard Brodie and Charles Simonyi ? |
| Sun 23 Nov | Saturday the 22nd | 'if this guy had the insight into why these projects failed (for example, at micropro) while they were in the process of failing and turned the companies around or pointed it out to management, '
Might help if you read the book. |
|
| VB.Net Code Help in logging user activity. | Sat 22 Nov | JD |
| Hi All,
I am trying to make application similar to Worktime.
http://www.nestersoft.com/worktime/
[No no, I am not trying to create a competing product but I want to create a simple application for my personal use + learn more of .NET]
Now, requirement is that this tool should capture the time user has spent on particular application. I looked in to Process class under System.Diagnostics namespace but it can tell me which processes are running, does it have window title etc. But I coudlnt find property which indicates that this process is currently receiving user input/focuc.
Is there any object which gives me details about the application which user is interacting with? Also get event indicating that user has started using another application??
Any links/resources/sample code will be really helpful.
JD
http://jdk.phpkid.org |
| Sat 22 Nov | | Only one window at a time can receive focus. So check which application is active, as that is the window receiving focus.
Then time it. |
| Sat 22 Nov | JD | And that is what I want to know. How do I know which application is 'active'?
Let me relook at process class properties/methods.
JD
http://jdk.phpkid.org |
| Sun 23 Nov | JD | It's hard for me to believe that no one here as any pointers/suggestions to offer??
Guys, please help me!!!!!!
JD |
| Sun 23 Nov | Christopher Wells | How about the Windows API function called "GetForegroundWindow". |
| Sun 23 Nov | JD | Yep,
I just found it before I could check the this forum again!
I will re-state that my aim is to find how much time user has spent on each of the window he has opened.
I am using timer control with interval of 1 second.
I am capturing foreground window and checking if I already have that 'Window Title' in my list. If yes, then I add one second to the time spent for that particular window.
Here's how I have done as of now.
Declare Function GetActiveWindow Lib 'user32.dll' () As Integer
Declare Function GetWindowText Lib 'user32.dll' Alias 'GetWindowTextA' (ByVal hwnd As Integer, ByVal lpString As System.Text.StringBuilder, ByVal cch As Integer) As Integer
Declare Function GetWindowTextLength Lib 'user32.dll' Alias 'GetWindowTextLengthA' (ByVal hwnd As Integer) As Integer
Declare Function GetForegroundWindow Lib 'user32' () As Integer
Private Sub tmrPoll_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrPoll.Tick
Dim hwnd As Integer = GetForegroundWindow
Dim sBuild As New System.Text.StringBuilder(GetWindowTextLength(hwnd) + 1)
GetWindowText(hwnd, sBuild, sBuild.Capacity)
Dim iSeconds As Integer
If htApps.ContainsKey(sBuild.ToString()) Then
htApps.Item(sBuild.ToString) = htApps.Item(sBuild.ToString) + 1
Else
htApps.Add(sBuild.ToString(), 0)
End If
End Sub
Have I picked up the correct way OR you think that same thing can be achieved in much better way?
Kindly share your views,
Thanks,
JD |
|
| GUI design (Linux) | Fri 21 Nov | Alice |
| I have been thinking about how to design a GUI for Linux. I know youre all microsoft people so you probably dont care, but this is what I thought:
Why not have multiple modes for the GUI, depending on the different types of user?
1. a mode for people who only ever use their computer for word processing.
2. a mode for people who only ever use their computer to play games
3. a mode for people who only ever use their computer to surf the net and send email and chat etc...
4. a mode for computer programmers
5. a mode for system administrators
6. a mode for graphic artists
7. a mode for musicians
8. a mode for business people
etc...
So the layout of the desktop and what features are available depends on what mode youre in. Then you make your imaginary characters and get designing. Things irrelevent to your purpose are invisible so that theyre not distracting.
Of course there should ALWAYS be abuser mode. IE the shell (or X with 4 x-terms running on on of the virtual desktops, and documentation open on the other 3) |
| Sat 22 Nov | Damian | OK
I am a musician as well as a programmer that runs a business and also does some system administration.
What mode should I use ? |
| Sat 22 Nov | HeWhoMustBeConfused | The best place to start designing a GUI for Linux is to get rid of X!
That steaming pile of crap is the biggest impediment to the development and acceptance of the Linux desktop. |
| Sat 22 Nov | Chris Hoess | Mmmmph. I think this idea is likely to crash and burn for the same reason as 'novice' vs 'expert' user interfaces; see http://www.definedesign.org/article.php?op=Print&sid=120 and note particularly that 'we are not novices or experts with regard to whole systems or applications, but go through the learning and automatic phases more or less independently with regard to each feature or set of similar features.'
I believe the same is likely to apply with regards to the 'modes' you've put forth here; people may have one mode that's their primary mode of use, but they want to be able to painlessly do many other things as well. (See also eMachines, demise of, for an attempt to attract users who 'only use the computer for email'.) |
| Sat 22 Nov | hoser | Sounds like a job for Microsoft Bob. |
| Sat 22 Nov | Ron E. | Sounds like 'Perspectives' in Eclipse/WSAD. |
| Sat 22 Nov | Eric Debois | I think this is the completely wrong approach from a usabillity perspective.
The desing should be simplified, not specialized. Often, I think, the things that annoy the pro and confuses the noob are one and the same.
Boil things down to core functionality and the noob will have a sporting chance to actually learn and understand how it works. The pro will appreciate the lack of fluff and bloat.
my 2c |
| Sat 22 Nov | Cowboy Coder | I think the problem is the limited scope that you are suggesting that users desire. For example:
'1. a mode for people who only ever use their computer for word processing.'
Do you remember when the typewriter market was falling off but before the widespread adoption of PC's? There were word processors on the market that did just that -- gussied-up typewriters, really. When PC's became affordable for businesses and the mass market, word processors went the way of the typewriter. You one will want to spend $100's on a fancy typewriter. |
| Sat 22 Nov | Stephen Jones | But how often do we actually see the desktop nowadays.
When I upgraded to W95 I thought it really great to be able to have all these icons to click on the desktop, but with the increase in hardware specs I now find I've always got a slurry of programs open, and scarcely ever see the bare desktop.
The big problem you have with the Linux GUI is basically that you have a whole pack of cards tottering there. You've got the shell, and then the X Window manager on top of the shell, and then KDE or GNOME and then the application. Compare that to NT/2K/XP where the video driver has ring 0 access.
Anyway Linux desktops are skinnable, and you can have four different ones running tabbed at present. The complaints are much more to do with unresponsiveness, unreliablity and difficulty to code for. |
| Sat 22 Nov | Blizbee | 'The best place to start designing a GUI for Linux is to get rid of X!
That steaming pile of crap is the biggest impediment to the development and acceptance of the Linux desktop.'
So true. It bears all of you reading it again.
..and again |
| Sat 22 Nov | Chris Andrews | If you want your video driver to be in ring 0, you can have that on Linux too - Nvidia's X support runs in-kernel; probably others do too.
Thing is though, as soon as you introduce third-party code to the kernel, you're asking for trouble - and it doesn't matter if it's Linux, Windows or the Mac. The only proper crashes I've had on OSX have been while running random extra kernel code, and my experiences on Linux and Windows are similar.
It's a shame that current systems don't make more use of the various levels of privilege available, so less-trusted drivers could be isolated. |
| Sat 22 Nov | Alex | 'The best place to start designing a GUI for Linux is to get rid of X!'
And why is this, and what do you think is going to replace it? Seriously, why do you think X is so useless? BTW don't bring up the network overhead troll, that's not true, when running on the same machine the client and server don't use network sockets to communicate. |
| Sat 22 Nov | Marx | I've heard there is a great alternative to Linux, it's called UNIX, anyone heard of it? |
| Sat 22 Nov | Tim Sullivan | > what do you think is going to replace it?
Apple did a pretty good job of replacing it in Mac OS X. I suspect that was key to making the OS usable with a GUI.
As for why it sucks, there is a whole chapter about it in chapter 7 of the Unix Hater's Handbook: http://research.microsoft.com/~daniel/unix-haters.html |
| Sat 22 Nov | hoser | 'BTW don't bring up the network overhead troll, that's not true,...'
When the X server is on the same machine as the X client, the 'unix sockets' are used in place of TCP sockets. There is a performance improvement of about 2:1 over TCP, but still slow. (Unix or local sockets are like a named pipe, with a better interface).
This thread is so filled with inaccurate and false statements, its not even worth unwinding. |
| Sat 22 Nov | . | Alice, go do that development (of the multiple UI's) and get back to us when you're finished and have put Microsoft in its place. Thanks. |
| Sat 22 Nov | Alex | As has been said many many times before, the network transparency does not affect the local transport. The X team amongst others have done tests (you know, where you measure things), and the implementation (using unix sockets, which are massively efficient data-transports, and shared-memory (no transport at all)) is as fast as you can get. It's within the theoretical margin of error of the peak performance of the system. Nothing goes faster.
I can't say this any simpler. X is massively efficient on the local channel. Direct-X on the PC is a different name for the same thing - an API into the low-level drivers.
You might argue that the low-level drivers are in need of optimisation, and I might agree in some cases, but that would still be the case for any new system. X itself is pretty bloody good at getting the maximum performance out of any hardware you throw at it - try running the 2-D blit in X11perf, then multiply the area * bitdepth * fps, divide by your AGP bandwidth and read the number you get .... You'll be surprised if you're running nvidia or ATI cards. Even venerable matrox cards push the bandwidth limit ... |
| Sat 22 Nov | DanG | Alex did you cut and paste that from slashdot? Or were you the author of the exact some post on slashdot? |
| Sat 22 Nov | Li-fan Chen | Stanford's Life Stream is at one extreme of personalization. Where the navigational system will probably make the life behind you (yesterday, day before, etc) and the project you deal with populate the day ahead. You'll have threads that are very personalized to you that exist throughout time and you can just fast forward and rewind. On the other hand you can have a gui everyone must use like Mac Desktop. Some how the designers of the future will probably settle on something in the middle. |
| Sun 23 Nov | hoser | Alex,
Indeed you may be correct. I'll take a look into it. Though, I have benchmarked X versus linux framebuffer, and X compares very poorly for the exact same operations. The framebuffer operations are nearly 2x faster (2D operations).
But, as it is, I have some experience with X driver development (for a proprietary chip set), and I'll have a chance to do some measurements of my own in the near future. |
| Sun 23 Nov | Alice | Wow! I'm suprised that 19 people replied to my post in only a day.
Firstly. People DO spend riddiculous amounts of money on glorified type writters. Most of the people I know who use computers ONLY use them for word processing and email. Even websurfing is relatively rare.
Secondly, there should be an easy and obvious way to change modes, so if you are a business man and a musician then you can switch between the two modes. How often do you *really* compose music and do stock market forcasts at the same time?
Linux is already multi-everything so you could always have musician mode running on one virtual X terminal and business mode running on another one. |
| Sun 23 Nov | ajs | I have developed applications with different interfaces for different users. They actually work quite well.
One problem with software is the 'one size fits all' interface, usually described as a steaming dog turd.
One system I did had one screen for sales, another for accounts, and another for technical. (You could easily change screens if you wanted to). Each screen had slightly different info. A good example was contact info. Accounts wants to ring the person who pays the bills. Tech want the person who knows where the fuse box is. Sales wants to call someone to take them to lunch. The company needs all three contacts, but individuals don't.
It's easy to add new screens for different classes of employees.
One I'm working on now has 2 data entry screens, a dummies one and a normal one. The dummies one is for someone just off the street (temps), where you can plonk them down with the minimum of training. No weird jargon, mouse driven, etc. It's slow, but ok.
The normal screen is 100% keyboard. No point hiring a fast typist if they need to touch the mouse. Fields autotab when full. Text is autoselected. For a fast typist, to correct the previous field they hit shift-tab, and re-type it. None of this trying to correct it like in the dummies screen.
The dummies screen is also good for showing at trade shows and to the CEO. See, it's user friendly! The normal screen isn't, but that's the point. Once users get familiar with the job (not the application) they move from the dummies screen to the normal screen. |
| Sun 23 Nov | www.marktaw.com | Computers are no longer typewriters, they're massive information storage databases and communications tools. (read: you use it to get on the internet) Word processing is the least of their functions.
Instant messages, email, web browser. These are the hub of the modern day computer. The typewriter, unless you were a secretary, stayed in the closet most of the time and came out two or three times a year.
Perhaps if you want to change the UI for different sets of users, you should think of modifying the UI depending on whether or not what you're doing is online, or actually is paperwork. |
|
| .net benchamarking | Fri 21 Nov | Marx |
| Hi coders,
Im a late adopter to .net and Im astonished at how slow its execution code is.
To be fair its a great IDE and, yes, its a powerful and flexible environment to work in, but what good is that when the outputted code is so lame?
I was recently tasked with writing an analyser for IIS log files. It involves a lot of file reading of files, a bit of file writing and tons of string analysis.
I wrote it in VB6 first and was not suprised that the execution time was a bit slower than Id have liked, but it did the job. I wondered if a .net version might improve things so I rewrote it in .net - a complete rewrite - not a VB6 to .net conversion.
Shock ! it takes, on average about 10% longer than the VB6 version to crunch the data files, and thats not counting the long wait for the apps GUI to make an appearance. on my desktop
I was interested now, so I dug out my (dusty) old copy of Delphi, installed it, struggled for hours with the syntax, cos Ive forgotten most of the Delphi/Pascal I ever knew, but in the end I got it working and it is 3 to 4 times faster than the VB6; furthermore, Ive not yet looked to optimize it, and as my Delphi skills are not great I suspect there is room for improvement in there.
DEV TOOLS
VB app in VB6
.net app in .net 2003 with Framewrok 1.1
Delphi app in Delphi2 - yes, version 2 - nearly 8 years older than my version .net !
HARDWARE
Pentium 2.6 with WinXP Pro
Im interested to know if anyone has had similar experiences; there must be loads of us porting perfectly good VB6 code to work under the .net framework. Is it worth it? |
| Fri 21 Nov | Johnny Bravo | I doubt it's fair to compare Visual Basic (.Net) to Delphi. Visual Basic does not produce machine code, while Delphi does.
If you happen to understand German, there's been a comparison of C/C++, C#, Delphi and Java lately, i.e. execution time of machine code/intermediate code, using the usual IDEs and compilers, with standard tasks (object creation, recursion etc.). Interestingly C# and Java did fall back behind the other two that far, sometimes being even faster than compiled code.
For what it's worth. |
| Fri 21 Nov | Johnny Bravo | Forgot to mention it was in c't magazine. |
| Fri 21 Nov | Marx | CORRECTIONS
'...involves a lot of file reading of files...' should of course, read '...involves a lot of file reading...'
And I know how to spell 'Framework' - honest ;) |
| Fri 21 Nov | Robert Jacobson | My experience has been the complete opposite -- code runs many times faster in VB.Net than VB6. Obviously, your milage may differ depending on what your code is doing and how it's implemented.
There really isn't any objective way to measure whether Language A is faster/slower than Language B, since any test will merely show how fast that particular code runs. (I remember one lovely flamewar between C# and Java folks over which was faster for making some obscure regular expression calls, and the results were completely skewed by how the code was implemented.)
I'd be willing to bet, however, that you could get dramatic improvements by profiling your code and optimizing the most time-consuming portions.
DevPartner Community Profiler (free):
http://www.compuware.com/products/devpartner/profiler/
'Performance Optimization in Visual Basic .NET'
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchperfopt.asp
'Writing High-Performance Managed Applications'
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/highperfmanagedapps.asp |
| Fri 21 Nov | Cletus | 'I was interested now, so I dug out my (dusty) old copy of Delphi, installed it, struggled for hours with the syntax, 'cos I've forgotten most of the Delphi/Pascal I ever knew, but in the end I got it working and it is 3 to 4 times faster than the VB6; '
A buddy of mine had a similar experience in converting a small utility graphics application (originially created with delphi) to .NET. The .net app was 3 to 4 times slower at rendering then the previous application.
It might have something to do with the following :
The .NET Abstraction Pile
http://software.ericsink.com/Abstraction_Pile.html |
| Fri 21 Nov | Marx | Hi Johnny, I appreciate your point, and thanks for the links.
But, that does not really address what I meant, which I should make clearer.
If you accept that .net is slow to run, then what is it good for? It might be nice to dev in, I like it, but the end-users won't be impressed. |
| Fri 21 Nov | Rick Childress | Marx,
What framework classes are you using to read, write and manipulate the files? |
| Fri 21 Nov | Robert Jacobson | Cletus, the .Net Framework uses GDI+ for rendering, and the GDI+ drivers aren't hardware accelerated. Unfortunately, that means that a graphics-heavy application in VB.Net or C# for now may be more sluggish than one in another language.
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=eN32%23sBqBHA.2128%40tkmsftngp07
(Complete thread) |
| Fri 21 Nov | Cletus | 'If you accept that .net is slow to run, then what is it good for? It might be nice to dev in, I like it, but the end-users won't be impressed. '
Oh, but you can tell your customers that the application is '.NET' compliant now :) |
| Fri 21 Nov | Johnny Bravo | .Net itself is not 'slow'. What exactly do you mean?
If you mean the intermediate code produced by Visual Studio .Net's IDE, or the free SDK compilers (which is the same) which then gets executed in the CLR: actually such code is optimized beforehand or during runtime so there should really be not a bottleneck there.
I know some peps here will jump on me for this example but take a look at the Quake 3 port from C/C++ to Managed C++ in .Net. It's frame rate dropped only by 10%, so obviously it's neither the .Net Framework's libraries nor the CLR which are 'slow'.
Perhaps you could give us some more details of the application you ported. |
| Fri 21 Nov | Mitch & Murray (from downtown) | That's a Quake 2 port. The Q3 source has not been released by the Great Carmack (yet). |
| Fri 21 Nov | Marx | Rick,
I don't have the code with me, but I *think* I used the .net StreamReader. I don't think the file i/o is the bottleneck - but I've not profiled it. My gusess is it's the string analysis, I have to check for a substring many times per line, with a variable substitution for part of the string test.
Another point that might be of interest is that I'm using the ASP File System Object in the VB6 app, rather than VB's native file i/o statements and that improved the VB6 performance dramatically.
And, LOL Cletus, that is so true |
| Fri 21 Nov | Marx | Johnny wrote
>.Net itself is not 'slow'. What exactly do you mean?<
I mean that the runtime of the .net 'exe' is slower than I expected.
TYI I used Visual Studio .net
And, WOW, what a response, looks like someone (me) opened a can of whoopass - let's not have a flame now all you .net evangelists ;) |
| Fri 21 Nov | nojuan@nowhere.com | If your doing lots of string manipulation, one thing to look out for is to use StringBuilder, instead of String. Everytime you do anything with a string a new one gets allocated which can result in a huge number of objects being created. |
| Fri 21 Nov | Johnny Bravo | Marx,
it might be viable to examine your code for possible replacement opportunities of intuitive string operations with regular expressions. Depending on the task at hand that might give you another performance boost as regexes can be compiled for faster repeated execution, and are lighter on execution overhead than general string methods. |
| Fri 21 Nov | Marx | RegEx is a thought I don't know it would be faster than the InStr/IndexOf functions I'm using now, but all things being equal I could also use the RegEx functions in the VB6 app, I'm already referencing the ASP library, so I'd guess that any improvements would go across the board and apply equally to the .net and VB6 performance equally. |
| Fri 21 Nov | Guy Incognito | It would be interesting to see your code (and a sample data file). It's very possible your doing something that could be optimized. Profiling it first is an important step though, otherwise your taking shots in the dark. |
| Fri 21 Nov | Dennis Forbes | Note that from what I've heard about the Quake 2 ".net port", it primarily consisted of a huge swath of unmanaged code with a small subsection of managed code, though someone really got their 15 minutes for that. |
| Fri 21 Nov | Dennis Forbes | As a sidenote, .net was never meant to be a barnburner and was really intended for the java/ASP/VB crowd where any performance is adequate (and where you can say 'Uh...it has a recompilation optimizer...' and the minions will parrot it without ever doing a single empirical benchmark set to see for themselves. The overwhelming majority of .net advocates have never done any sort of benchmark, and just take claims of greatness at face value). Having said this, early on I was working on a performance critical project that basically acted as a message processor for MSMQ. Of course a .net evangelist coworker simple _believed_ (in the religious sense) that .net would represent all that was good in the world, and it would surely be the fastest thing since sliced bread (oh, and it has 'native' access to MSMQ versus the 'bulky' COM access...you know, apart from the fact that the 'native' framework calls are simply stubs just like the COM stubs). I threw together two benchmarks, one in Delphi 5 and one in .net (C# using all best practices) and the Delphi 5 code absolutely trounced the .net code.
None of this is meant to deprecate .net: It truly is a great environment, and the functionality in the Framework is simply extraordinary (though there are still some amazing gaps, like most graph technologies). And of course comparing it to the interpreted ASP is night and day. |
| Fri 21 Nov | Clutch Cargo | Someone once told me that publishing .Net benchmarking (or benchamarking) results was a violation of the license. |
| Fri 21 Nov | Robert Jacobson | >Someone once told me that publishing .Net benchmarking (or benchamarking) results was a violation of the license.<
There's actually a clause to that effect in the Visual Studio EULA. It's completely stupid and almost certainly legally unenforceable. |
| Fri 21 Nov | Robert Jacobson | BTW, I might fall into the .Net evangelist camp, but it's silly for anyone to assert that any one language (or framework) is 'the best' for all situations.
I used to work in the printing industry, where we had the adage 'you can have it done quickly, done right and done inexpensively -- pick any two.' Picking the right language for a job is the same situation -- you can maximize ease of development, professional results (fewer bugs, better GUI, etc.) or maximum performance, but not all at the same time.
If performance is your chief criteria, like if you're developing the latest 3D game or number-crunching scientific application, of course you should use a compiled language like (unmanaged) C++. If you're developing a typical business app where you want to get a product to market quickly and as professionally as possible, where performance isn't critical, C++ isn't the best choice.
Applications running on the .Net Framework aren't going to be quite as fast as a C++ app, but are certainly within the same ballpark -- which is good enough for most needs. |
| Sat 22 Nov | Chris Nahr | Well, I did some small benchmarks of my own and found that C# 1.0 and Managed C++ were about 10-20% slower than unmanaged MS VC++ 7.0 on average, and around 50% slower in the worst case (numerical algorithms).
However, this only refers to computational performance. If you have lots of I/O going on (GUI, disk, keyboard) there won't be a noticeable difference.
Also, memory allocation is extremely fast in .NET. I haven't benchmarked it against unmanaged code but I did notice that avoiding memory allocations makes practically no performance difference in .NET. |
| Sat 22 Nov | Marx | >Someone once told me that publishing .Net benchmarking (or benchamarking) results was a violation of the license.<
Crikey, will the MS Police be paying me a visit for speaking without license?
There's some interesting stuff been postedin here, on a bit of a sidenote, I got to wondering about the Delphi compiler(s) - did Borland continue tweaking.optimizing the compiler: is an app compiled in Delphi 5 'faster' (I'll put 'faster' in quotes since it looks like I'm not allowed to say it otherwise ;)) than one compiled in Delphi2 ? |
| Sat 22 Nov | Marx | Denis wrote:
Denis I think we'd all agree that it's best to use the best tool you have for the job, allowing for the real-world considerations, for example my skills in Delphi are not great, my C is worse and my TASM/MASM non existant.
But back to VB, one of the reasons I posted was that I was amazed to see slow old VB out-performing the all new .net
I accept all the points made re profiling and optimization, perhaps .net's string builder would boost the .net app, and perhaps I've not used the best methods available under .net, but what I have ended up with is a near equivilance of code between the VB6 and .net apps with each using their 'native' functions - excepting that the VB6 app uses the ASP File System Object (which proved faster than VB's native file handlers). And, as I said slow old VB6 out-performed .net and Delphi2 a 7 year old tool out-performed both by upto 4 times. |
| Sat 22 Nov | Robert Jacobson | Marx, your experience is very, very atypical. Every benchmark I've seen, coupled with my own experience, shows that VB.Net is usually many times faster than VB6.
The bottleneck is probably with your code. If you optimize it you will see different results. Simply complaining that 'my unoptimized code is slow' is a tautology. |
| Sat 22 Nov | Robert Jacobson | Also, you can't compare "identical" code between VB6 and VB.Net. The danger of VB.Net is that it looks very similar to VB6, but is actually a completely different language -- and has to be opmized diferently. You can't make an "apples to apples" comparison If you would just show us your code, we could probably identify the bottlenecks very quickly. |
| Sat 22 Nov | Marx | Rob, fuck the science
Let's get real world - how do I make a SLOW .Net app beat a 7 yr old Delphi app ? |
| Sat 22 Nov | Marx | Do tell me, I'd like to hear |
| Sat 22 Nov | Gwyn | I switched to VB.NET last year and did some benchmarking on varioius small units of code. I did some particular investigation into the performance of VB Collections as opposed to arraylists and hashtables to determine whether my 'super collection' class (one where the keys can be retrieved for example plus lots of other goodies) which actually uses an arraylist and a hashtable would be feasible or not...
I found .NET blistering fast. It was about 10 times faster than VB in the collection testing and in all other aspects in my client server development it's been all I expected and more. |
| Sat 22 Nov | Cletus | ' did Borland continue tweaking.optimizing the compiler: is an app compiled in Delphi 5 'faster' (I'll put 'faster' in quotes since it looks like I'm not allowed to say it otherwise ;)) than one compiled in Delphi2 ?'
Marx,
Your best bet to get an answer for your question would be to post your question on the Borland Newsgroups. There are a lot of knowledgeable people on the newsgroups who could answer your question specifically. |
| Sat 22 Nov | Robert Jacobson | Marx, your original question was 'why is my VB.Net app slower than my VB6 app.' Several people (including me) have given you pointers about how to optimize your code, and have even offered to look at your code to find the performance bottlenecks. Instead, you just keep complaining about VB.Net's supposedly poor performance while stubbornly refusing to do any to improve the your code's performance.
If you genuinely want help, email the code to me or post it online someplace. Otherwise please drop the subject -- you asked for our help, we offered it, and you ignored it. |
| Sun 23 Nov | Guy Incognito | If your looking for an in-depth benchmarking essay that compares C#, Java, and C++ (various compilers), check out this free download from Windows Developer magazine (free registration unfortunately required):
Does C# Measure Up:
http://www.wd-mag.com/wdn/webextra/2003/0313/ |
| Sun 23 Nov | Guy Incognito | Marx,
In Delphi 2, are you using an 8 bit ANSI character string (Char or ANSIChar) or a 16 bit Unicode character string (WideChar)?
Since you admit that your code is doing a lot of string parsing/manipulation, the differences in how strings are treated (allocated/referenced) between runtimes (managed/unmanaged) is going to play a significant role in the speed of each implementation. |
|
| GetEnvironmentVariable API Call Broken in WinXP? | Fri 21 Nov | Norrick |
| I know, I know, this is not a tech support orum. But there are so many sharp coders here, I figure this is worth a try.
I have inherited an application that uses the GetEnvironmentVariable API to identify a machine for purposes of authenticating that a certain application can be accessed from that machine. For those unfamiliar, heres the code that makes this call:
***START***
Declare Function GetEnvironmentVariable Lib kernel32 Alias GetEnvironmentVariableA (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Function GetClientName() As String
Dim strBuffer As String
Dim iLenBuffer As Integer
Dim retval As Integer
On Error GoTo Err_GetClientName
strBuffer = Space(255)
iLenBuffer = 255
retval = GetEnvironmentVariable(CLIENTNAME, strBuffer, iLenBuffer)
If Len(Trim(strBuffer)) <> 0 Then
strBuffer = Left(strBuffer, Len(Trim(strBuffer)) - 1)
Else
probably no client name
strBuffer =
End If
Exit_GetClientName:
Exit Function
Err_GetClientName:
MsgBox Err.Description, , Error in Function modUtil.GetClientName
Resume Exit_GetClientName
Resume 0 .FOR TROUBLESHOOTING
End Function
***END***
In Windows98, the following entry must be made in AutoExec.bat before making the API call:
SET CLIENTNAME=FOOBAR
When you make the API call, bam! The string FOOBAR is returned.
On an XP machine, the code runs and bam! An empty string is returned.
OK, I think to myself. XP doesnt really use AutoExec.bat, it uses AutoExec.NT. Ill set the ClientName in that file instead! But that doesnt work either.
I notice that on XP, every so often the call will return the string Console. Aha! I said. On XP this API call is looking in the registry, not in a .bat file. SO I searched the registry for every place where the string Console existed, and one by one replaced them with FOOBAR and re-ran the code. I still got nothing.
Ten I wet to Control Panel > System > Advanced > Environment Variables and added a system variable named CLIENTNAME with a value of FOOBAR.
That did not work either, and now I am out of ideas.
Is there anyone who owns the API to the degree that they can tell me where exactly GetEnvironmentVariable is looking to get the value it returns? I am well and truly stumped. |
| Fri 21 Nov | Rob Warner | Did you reboot after adding the environment variable to the control panel? |
| Fri 21 Nov | Philip Dickerson | This particular section of code is incorrect, although I don't know if it's causing the specific issue that you are seeing:
retval = GetEnvironmentVariable('CLIENTNAME', strBuffer, iLenBuffer)
If Len(Trim(strBuffer)) <> 0 Then
strBuffer = Left(strBuffer, Len(Trim(strBuffer)) - 1)
The GetEnvironmentVariable method, like many API calls, returns 0 for an error, or a non-zero buffer length if it succeeds (note that the buffer length returned by the API may be larger than the length of the buffer passed in, meaning that the buffer is not large enough).
The code above should be similar to:
retval = GetEnvironmentVariable('CLIENTNAME', strBuffer, iLenBuffer)
If retval <> 0 Then
strBuffer = Left(strBuffer, retval) ' NOTE: this may need to be 'retval - 1' if the return value buffer length includes the trailing null terminator character
Else
' no CLIENTNAME found, should also check LastDllError and see if it's equal to ERROR_ENVVAR_NOT_FOUND. |
| Fri 21 Nov | Philip Dickerson | If you really want the actual client machine name, you may want to use one of the API methods GetComputerName or GetComputerNameEx. This retrieves the NetBIOS name or DNS name of the computer, and does not depend on any environment variables. |
| Fri 21 Nov | GuyIncognito | 2 suggestions:
1) Return a value from the function by assigning a value to GetClientName:
GetClientName = strBuffer
2) Try to query a known environment variable such as 'TEMP'. |
| Fri 21 Nov | GuyIncognito | I agree with Dickerson, but the %CLIENTNAME% environment variable should return a similar value. I'd tend to go with Dickerson's suggestion though because it is heavily documented whereas the list of valid Windows enviromental variables doesn't seem to be. |
| Fri 21 Nov | Chris Tavares | Oh, by the way, you do NOT need to reboot an NT class machine (NT, 2000, XP) just to set an environment variable, like you did under Win9x. |
| Fri 21 Nov | Insert half smiley here. | GetEnvironmentVariable gets its information from the environment variables :)
Did you restart the IDE after changing the environment variable?
(The IDE won't get the updated environment until you run it; your program runs as a child of the IDE, and children inherit the environment of their parent.) |
| Fri 21 Nov | Norrick | Dickerson wins...IF his code will return the computer name of a machine accessgin the app via Remote Desktop Connection.
Since this is an inherited app and there was no documentation, I've talked to everyone who had a hand in the project - nobody knows why the original developer did it this way. And the original developer is nowhere to be found. |
| Fri 21 Nov | Norrick | '1) Return a value from the function by assigning a value to GetClientName:
GetClientName = strBuffer'
The function does do that, but I accidentally clipped it out when I pasted it in here and tried to format it nicely. My bad. |
| Fri 21 Nov | christopher baus (www.baus.net) | Chris is right. Don't reboot. Microsoft finally got environment variables right in Windows 2000. You don't even need to restart explorer anymore!! Hip, Hip hooray! |
| Sun 23 Nov | Simon Lucy | At a guess it was done that way in the first place to work in multiple environments, DOS, Novell networks, Lan Manager, etc, etc.
From, umm NT I think, onwards environment variables became case sensitive, though some early shells capitalised them on input. Is the casing the same?
The original environment was a pointer to a list of null terminated strings you had to navigate yourself (DOS programming was such fun), but the API call should abstract you away from that. |
| Sun 23 Nov | Simon Lucy | Oh, I should read more carefully.
Autoexec.nt only gets run at the beginning of a console session, its not run on startup. If you want to set an environment string on startup then you need to jimmy a small app that's referenced in the Registry.
Or, if its a constant for that machine then you can set the environment string using Control Panel/System. This can be either for the whole machine or just the current user. |
| Sun 23 Nov | Mike Treit | 'From, umm NT I think, onwards environment variables became case sensitive...'
That's not true - environment variables in NT are not case sensitive. Most enviornment variables are stored in the registry, which is case-insensitive...if you try to create a new environment variable with a different case than an existing one, it simply overwrites the existing variable. |
|
| IT is being moved to the 5th Floor | Fri 21 Nov | matt |
| Ive just recieved word that our department is to be moved from our dimly-lit tech enclave of engineering, tech support, and QA, to the blarinlgy lit, noisy 5th floor, shared by accounting, marketing, and suits of all sizes and colors and shapes.
I must admit this is making me a bit unhappy. I avoid going down there whenever possible. I just took this job a few months back, and a part of my decision was based on the work environment- one which is radically changing.
What to do? |
| Fri 21 Nov | It's all about you |
While I feel your pain, at some level, these 'woe is me' posts are getting a bit tiresome.
I would have thought your choices were clear: quit, suck it up, or get involved and try to build the environment you think is best for the group.
Note that whining about it on a technical web board isn't among the choices. |
| Fri 21 Nov | matt | Forgive me. Whining was not my intention, rather to start a conversation of working conditions and arbitrary changes to them. I see now that I am petulant and a whiner. Thanks for your help. |
| Fri 21 Nov | It's all about you | Now you're whining, sarcastically. |
| Fri 21 Nov | tapiwa | Man must cease attributing his problems to his environment, and learn again to exercise his will -- his personal responsibility.
-- Albert Schweitzer
A strong, successful man is not the victim of his environment. He creates favorable conditions. His own inherent force and energy compel things to turn out as he desires.
-- Orison Swett Marden |
| Fri 21 Nov | It's all about ME | I'm boring, unsupportive, and argumentative! Look at me! LOOK AT ME! |
| Fri 21 Nov | Kyralessa | I can beat that.
Our university contracts with a local hospital (which used to belong to us, but is now entirely a separate entity) to run our e-mail. Said hospital is switching to a new e-mail system which, among other things, requires a SSN from each person with a mailbox. So after deliberation and consultation with the legal department, our business manager and our department head submitted all our SSNs to them. No consent from any of us; not even any notification to any of us. I only found out about it by accident.
So...how would you respond to that? |
| Fri 21 Nov | Kyralessa | No, using fake SSNs is not an option; they already tried, and this hospital's system spit them back out as invalid. |
| Fri 21 Nov | It's all about you | We used to live in a hole in the ground. Then we got tossed out and had to go live in the lake. |
| Fri 21 Nov | wtf | I've never heard of such an email system. Who makes it? And what do hospitals know about running email, anyway. How bizarre. |
| Fri 21 Nov | tapiwa | WTF... I hear you... What the fcuk??
So this email is only for use by americans huh? Rest of the world does not do SSNs!! |
| Fri 21 Nov | Nate Silva | They gave your SSN to some random e-mail admin without your permission?! |
| Fri 21 Nov | www.marktaw.com | University students are now being identified by their SSN and it's printed on their ID card. Lose your ID card and someone has your name and SSN.
Actually, I think this was a big news item a few years ago. |
| Fri 21 Nov | Chris Tavares | At least in Connecticut there's a state law requiring that organizations CANNOT use your SSN in a way that can be traced back to you. Drove the University of Connecticut nuts for a while.
Considering it's a hospital you're dealing with, I wonder if you could sue under HIPAA? |
| Fri 21 Nov | John C. | What a strange design decision. There are lots of Americans who do not have SSNs, as I learned to my dismay when implementing a medical billing system many years back. Plus lots of resident non-citizens without work authorization, such as students. |
| Fri 21 Nov | www.marktaw.com | 'Making a 9-digit number up at random is a bad idea, as it may coincide with someone's real number and cause them some amount of grief. It's better to use a number like 078-05-1120, which was printed on 'sample' cards inserted in thousands of new wallets sold in the 40's and 50's. It's been used so widely that both the IRS and SSA recognize it immediately as bogus, while most clerks haven't heard of it. There were at least 40 different people in the Selective Service database at one point who gave this number as their SSN. The Social Security Administration recommends that people showing Social Security cards in advertisements use numbers in the range 987-65-4320 through 987-65-4329.'
It's scary, when I was trying to find this information on Google, ALL of the ads were how to a) find someone through their SSN or b) find someone's SSN. |
| Fri 21 Nov | Lou | It is possible that the Hospital is using the SSN to uniquely identify the recipient of the email for HIPAA reasons. As for being able to sue under HIPAA, they would have to disclose your SSN to someone outside of the organization for it to be a problem. There may be a valid reason for these HIPAA partners to be doing this (though I can see the cause for concern).
And do note that federal regulations coming down next year will require SSN to stop being used as an identification mechanism. It is causing quite a headache. |
| Fri 21 Nov | pdq | There is some logic to the format of SSNs. The first three digits depend on the state. |
| Fri 21 Nov | Oh my | Kyralessa, tell the ACLU. |
| Fri 21 Nov | mb | not the ACLU. Just ask the legal department if they now assume all liability for identity theft, since they gave out your identifying information without asking. |
| Fri 21 Nov | Oh my | Matt, I was once in a situation such as you describe. After we moved, it was almost impossible to do the thinking work we needed to do because of the raucous noise and backslapping that used to on around us.
One day I was trying to work something out while a bunch of business guys and managers were standing nearby waiting to enter a meeting room, yacking on and on, and I walked over to them and told them to shut up. They did.
Until then, they had thought we were quiet because we were so impressed with their exciting lives.
Our work involved mathematical financial software for trading. |
| Fri 21 Nov | no name | "All about you", you're lucky, at least you've got a lake. |
| Fri 21 Nov | Kyralessa | Currently I'm working on obtaining, from our university legal department, a written justification of why they advised our staff that it was perfectly OK to disclose all these SSNs without any consent or notification. I expect to know more on Monday.
(Note that the hospital to whom the SSNs were disclosed is a separate business from us. But I don't think this falls under HIPAA because the numbers were disclosed TO the hospital FROM the university. I haven't ruled HIPAA out yet. But I suspect that, like the ADA, it's only enforceable by private or public lawsuit; anybody know?)
And meanwhile I am updating my resume. |
| Fri 21 Nov | Darcy Horrocks | >I'm boring, unsupportive, and argumentative! Look at me! LOOK AT ME!
true irony relies on _contrast_
repetitive bleating of brittle snoidisms exponentially degrades the humour
> It's all about ME
quite |
| Fri 21 Nov | Matt Latourette | 'Note that the hospital to whom the SSNs were disclosed is a separate business from us. But I don't think this falls under HIPAA because the numbers were disclosed TO the hospital FROM the university. I haven't ruled HIPAA out yet.'
You can go ahead and rule HIPAA out. It doesn't apply here. The university did not acquire your SSN by providing health care to you. Your SSN is not Protected Health Information in this context and the information disclosure is not governed by HIPAA.
I am not a lawyer. This is not legal advice. |
| Fri 21 Nov | Mr. Fancypants | Burn down the building -- but don't forget to take your red swingline stapler with you before you go. |
| Sat 22 Nov | Bill K Ramsey | Some here seem to consider this frivolous. I went through this exact same thing with my current employer. When I started, the MIS department was on the 3rd floor. We had a cluster of offices to ourselves, which tended to make the 'group consciousness' (yes, I see you back there rolling your eyes) more cohesive.
After my first year we were moved to the 4th floor (with analysts, marketing/sales,etc). It **completely** changed everything.
Physical location *does* make a difference. No, I didn't quit. I like the company and the job. But it did change things substantially. |
| Sat 22 Nov | Katie Lucas | I used to work in environments where people would have noisy group meetings nearby. I started, eventually, joining in. Of course along the way I'd have to get them starting to explain all the background to the meeting...
People do get the message after a while... |
| Sat 22 Nov | realist | I've really gotten over the whole work enviroment issue, I once wrote a consignment system for a trucking company where the IT team were housed in the truck weighing station. Every ten minutes a 40 ton (ton not tonne) truck would roll onto the scales and our screens and chairs would rattle while the weighing was done, not to mention the roar of noisy 8-10 litre diesel engines as it roared off.
Impossible to work in, No. Difficult, Yes.
After working for 8 months (team of 3) on this software the week we finished UAT the company got sold and our software ended up gathering dust on a CD softwhere in somebodies top draw.
Maybe this is what happens to companies that put developers in a truck weighing station! |
| Sun 23 Nov | Dennis Atkins | Realist,
How complex was the software that took 24 man-months to write in the weigh-station? Do you think they would have saved money renting a decent quiet office for $500/month and putting 2 guys in there for 3 months to accomplish the same? |
|
| Obscure acronyms | Fri 21 Nov | Sathyaish Chakravarthy |
| A search on the acronym finder website reports,
XLANG stands for:
Web Services for Business Process Design
I found that a bit wierd for an expanded acronym. |
| Fri 21 Nov | tapiwa | ACRONYM acr. - A Completely Random Order Never Yields Meaning.
-- Devil's IT Dictionary |
| Fri 21 Nov | Sathyaish Chakravarthy | That's creatively intelligent. LOL |
| Fri 21 Nov | happy to be working | PCMCIA
People Can't Memorize Computer Industry Acronyms |
| Fri 21 Nov | Rob VH | I always stick to TLAs. Those longer ones are the work of the devil. |
| Fri 21 Nov | Alex | TLAs are good if you know what they mean ;) |
| Fri 21 Nov | wtf | I'm not trying to be funny but what does TLA stand for again? I know I used to know. |
| Fri 21 Nov | Wasting time | USDRDA - The U.S. Department of Reducdancy Department of America |
| Fri 21 Nov | anon | TLA ==> 3 Letter Acronym. |
| Fri 21 Nov | Nate Silva | No, anon, TLA stands for "Two Letter Acronym". |
| Fri 21 Nov | Alyosha` | Are you sure that it doesn't refer to a Twelve Letter Acronym? |
| Fri 21 Nov | Marco Qualizza | Sorry, Nate, but anon had it right: TLA, being itself a TLA, stands for Three Letter Acronym (although Two Letter Acronym would have been funnier :-) ) |
| Fri 21 Nov | Alex | Too Late for Anything :)) |
| Sat 22 Nov | HeWhoMustBeConfused | Nate, sorry, but TLA *is* Three-Letter-Acronym. It was originally coined from the widespread use of SNA, IMS, DB2 and many other TLAs in the IBM software environment. |
| Sat 22 Nov | Cowboy Coder | XLANG is not an acronym. The ALL CAPS make it look like one, but it isn't.
Second, re 'Two Letter Acronym' - doesn't anyone get sarcasm anymore? |
| Sat 22 Nov | Marx | A bit off topic, but my boss often says 'PWD' to mean password - he prefers the acronym, which I'd assume is intended to quicken speech amongst the knowledgeable, yet 'PWD' has 4 sylables and 'password' has 2 :) |
| Sat 22 Nov | no name | Not to mention that it's not an acronym. |
| Sat 22 Nov | Marx | True, it's not as such, but it's an allowed ADO connection string atrribute, and he's a DBA by training. |
| Sat 22 Nov | Marx | Another thing I often hear is 'PIN number' or similar, where the acronym's end word is repeated. Now, how do you spell 'pedantic' ? |
| Sat 22 Nov | Brian | What do you mean? I use my PIN number every time I use the ATM machine.
Off to code more ASP pages! |
| Sat 22 Nov | Marx | And don't ask me about how often I say DSN when I mean DNS or vice versa |
| Sat 22 Nov | Stephen Jones | Windows 2000 is built on NT technology according to MS.
Normally this redendancy happens when the acronym enters the mainstream, but not to the extent that you can just give the letters. CDRom disk, is another common one. |
| Sat 22 Nov | Marx | Did someon say NeXt ? lol |
| Sat 22 Nov | Name expired | TLB - Three Letter Bullsh*t :) |
| Sun 23 Nov | theendisnear | XLANG aint no acronym, it is an abbreviation.
for example:
USA is an acronym standing for United States of America,
eg is an abbreviation for example
folks, 'Dont get carried away with all those weird names' |
| Sun 23 Nov | ajs | Gee, nobody mentioned TWAIN - Technology Without An Interesting Name.
Oh, the grammar nazis have more-or-less declared ASP pages to be ok, since ASP refers to a technology (ie a thing), and saying AS pages sounds silly.
Not quite sure what the status of PIN number is, but I have heard 'what is your personal PIN number?' used at a bank. |
| Sun 23 Nov | H. Lally Singh | PWD always meant 'print working directory' to me. |
|
| An outsourcing/offshoring opinion article | Fri 21 Nov | one programmer's opinion |
| from a programmer.
Outsourcing and Offshore Coders: Good or Evil?
By Adam Nelson
http://www.codeproject.com/gen/work/offshore.asp
While I havent thoroughly read this article yet (just skimmed it and saved it to my hard disk), I did read around 30 of the 393 commentary posts.
Even though I dont agree with many of the authors beliefs/opinions, I thought he did a good job because he didnt just whip up an opinion piece and throw it on the web. He also spent a lot of time responding to people who took the time to post comments on the article he wrote. Imo, this fact along with authors stance (he seems to be a pro multi-national corporation advocate) is about the only thing that differentiates this particular outsourcing/offshoring opinion article from say a similar recent posting that was made at the Slashdot web site where over a 1000 people responded.
Anyway, I posted this link here for those folks who are interested in reading more about this topic. |
| Fri 21 Nov | Alan Wilson | Interesting article, but I believe it a bit utopian. We are a planet of people who want to be the 'winners.' His example of New Jersey is the reason many companies do not tell anyone they are using off-shore resources. Or they keep it secret from the staff (at least as long as possible.) Avoid the bad PR, by just not mentioning it.
First, everyone striking out on your own, would be equivalent to farming. Just as it is impractical to grow my own wheat, how many Office products can be consumed. 'Well, if yours is better…', someone else's will be worse and the net result is one job replaces one job. ZERO sum gain.
Even if you have the 'one sure thing' it will only last as long as it takes the $12/hour programmer to make a copy, and distribute it at 1/10 the cost. Negative gain.
Then there is the fallacy that is constantly repeated and that is that we are in a competition with India, Russia, Costa Rica, etc. No we are not. A competition is like a race. We are all on the same track, running the same course, and trying to figure a way to overcome the course. How many people would consider the 100-yard dash a fair race if the team from India got to run a flat track, and the team from England had to run a 40 degree incline?
Third world/Emerging nations have learned a lot. First, competition with the US can be one-way. For example, an company from India, bidding on a state contract (like NJ), gets additional points from being a minority. That they are going to off-shore the entire deal is not considered. Indian's in the US get minority status. (+1 for India). A NJ company attempting to off shore work from India cannot. In order to bid in India, you have to prove (as the bidder) that such resources are not available locally. If anyone bids against you, it is obvious your claim is without merit. (+100 for India)
Well then, let's just move to India. …Sorry. India does not have an open immigration policy. Much like bidding, you have to be hired by an Indian company (or a company with a base in India), who must provide one of two pieces of information. Either, your skills are unique and cannot be found in India, or you are providing the expertise needed to import the work to India. (Important note: Cannot be found in India, means anywhere in the entire country, with such few exceptions that it falls on the ridiculous.)
But let's just say you manage to make it through all these requirements. All you need to is get a permit. Ask anyone who has ever attempted it, without subbing the work to an Indian company, and this process makes the DMV look like Valhalla. It is a process that is designed to prevent foreign competition within the country.
Emerging nations want our business. They don't want our help and they don't want to help us. The street is very much one way. It is American arrogance that believes that because we have rules about how companies compete, everyone does. They do, but they are in most part protectionist. His analogy about Steel Tariffs was correct, but misinterpreted.
When we attempted to stop steel from being dumped, it was not just tariffs that increased the price, the companies did too. They wanted American businesses to put pressure on political leaders to stop interfering. Once we lose all ability to produce steel, do you really believe another country will look out for our best interests? What happens when an Anti-American leadership takes over India, or the countries we now import steel from decide they don't like our policies toward…woman in the workplace?
It all falls back to the claim that protectionists are 'bad'. I will agree. If they stop, we should too. But until they do. Until it is as easy for me to get a job in Costa Rica, India, or Russia, this is an exercise in utopian principles. |
| Fri 21 Nov | Foolish Jordan | Alan asks: Once we lose all ability to produce steel, do you really believe another country will look out for our best interests?
Yes. Because they earn valuable dollars for it. |
| Fri 21 Nov | Alan Wilson | Nope - that would be a reason to look out for their best interest.
If XYZ country is the maker of all our steel and they decide they now want to be the maker of all our automobiles, just cut steel costs to their own auto companies by 80%.
We would still need to buy steel, our price did not go up, but we are losing the auto industry. |
| Fri 21 Nov | tapiwa | Allan, you speak on behalf of some unknown entity and call it we.
100yrs ago, the US did not have an auto industry. Why is it now suddenly critical to the survival of mankind?
If the US auto industry dies because it can't compete with cheap imports, then good. It means every household is now paying less per car. Any amount of subsidy is free money from whatever govt is subsidising their industry.
Folk will have more $$ to spend on other purchases. This boosts other sections of the economy.
Sure, people will lose jobs, and some businesses will go bankrupt, but that's life. If we wanted to protect jobs at all costs, we would still all be cruising around on horses and horses drawn carriages.
IIRC, 17 companies went bust within the first month of Stephenson opening his rail link between Liverpool and Manchester. |
| Fri 21 Nov | John | Another story on washingtontimes saying that R&D work is also moving to India
http://www.washtimes.com/technology/reed.htm |
| Fri 21 Nov | Me | The article is a pretentious load of crap that fits the old paradigm of seeking to boost the author's own standing by imputing problems to defeciencies in those affected.
Most of it reads as if it was lifted from JOS. So it's not only bankrupt and pretentious; it's also dishonest.
Please don't post this type of crap to JOS. |
| Fri 21 Nov | Alan Wilson | Tapiwa - you make it sound that cheaper is always in our best interest. If America could not compete because our auto industry was old, lacked ideas, or was inefficient, I would also agree.
But what if, the island of Salamasond produced steel so cheaply that they sold it for $.01/ton. Soon, they would become the only resource for steel. They decide to get into the auto business. So, they start selling it to their auto companies for $.0001/ton. Would you say the auto industry had failed? That GM should figure out a way to make their cars 100 times cheaper to compete?
The problem with conceptual arguments are they imply all things are equal. At $100/oz, everyone would become Steel barons. But the problem is that the process of become a manufacturer takes years. In that time we would all be driving Salamas. At the same time, the sales in autos would be used to buy out anyone who attempted to compete.
If in doubt, consider diamonds. They are possible the most artificially controlled substance on the planet. Their cost having nothing to do with the creation or mining, but control of all outlets. |
| Fri 21 Nov | Bill Tomlinson | Alan,
Here's three reasons why countries keep trading (there are others):
1) Fear. No country only exports. They all import as well. So if they shut off their exports, all the other countries will stop exporting to them in retaliation which will cripple them.
2) Greed. Foreign money coming into your country is really good.
3) Enlightened self interest. Read up on 'comparative advantage'. |
| Fri 21 Nov | Bill Carlson | Is software fundamentally different from other goods that have import tariffs? It's possible to imagine a scenario where US Customs would enforce criminal penalties against those who didn't pay tariffs on import of intellectual property.
Obviously, this couldn't be strictly enforced, but it would be dangerous for a legit company to hire overseas remote workers without it appearing on their financials somehow. The tariff would be a markup on salaries paid to foreign workers or contractors.
I'm not making an argument for protectionism, but I am curious as to why software is viewed as an exception to protectionist policy, given the large amount of potential job losses... |
| Fri 21 Nov | anonymous | My argument against this article is that it's so one-sided. He doesn't have the objectivity to provide a scientific article where he actually knows what he's talking about. There are reasons to restrict free trade between nations. Nations go to war and transportation occasionally suffers catastrophes. There is a large case to not be dependent on other geographic regions. So you must find the balance on benefitting from trade, but ensuring you don't suffer certain levels of risk.
There are regions that actually can supply things as cheaply as Alan's $.01/ton steel. The material is oil. And we see the cost of dependence. Another example is our dependence on drugs, which is artificially scarce so it imprisons many citizens and leads to additional crime.
I am not arguing pro/con anything, except maybe against economic extremism. |
| Fri 21 Nov | no name | The diamond example is pretty good, actually. Just search for artificial diamonds on Google.
http://www.wired.com/wired/archive/11.09/diamond.html
There's the first link. |
| Fri 21 Nov | uncronopio | There are competitive advantages (e.g., large capitalization, higher technological and labor skills) and comparative advantages (e.g., access to natural resources, low cost labor). When someone states that 'competition is not fair' should take both into account. Protectionism will keep costs higher than necessary for the customers and will stifle innovation, because companies won't have the need to introduce changes if their position in the market is not challenged.
Then you get things like Brazil's computer industry or certain agricultural sectors in Europe and USA, which make costs much higher than necessary. I certainly prefer to see my taxes used in a much more useful way (e.g., better access to education and health) rather than supporting inefficient producers. |
| Fri 21 Nov | - | You could say that offshoring stifles innovation -- US workers can not work for $8/day because the living expenses are too high in the US. Shoot, that's not even enough to pay for your gas and auto insurance. So the result of IP workers able to accept $8/day is to remove the US from the field. That means less competition and poorer products.
Product improvements require *healthy* competition. Healthy competition is where there is a level playing field. This is not that situation. In this situation, pretectionism would level the playing field and increase competition and improve the quality of products. |
| Fri 21 Nov | - | uncronopio,
Dozens of studies ovwer the decades have shown that american farmers are by far the most productive in the world. So when you say price supports are supporting inefficient production, I wonder what you are comparing it to? Name one country, just one, that has more efficient farm production that the US. |
| Fri 21 Nov | - | http://www.purdue.edu/UNS/html4ever/9703.Martin.productivity.html
'Since World War II, farm labor productivity has increased over sevenfold,' says Marshall Martin, professor and associate head of the Department of Agricultural Economics at Purdue University. 'In contrast, labor productivity in the nonfarm business sector during the same time period has increased only 2.6 fold.'
--
The fact of the matter is that American farm productivity is so massive, so overwhelming, especially compared to other segments of the economy, such is IT which have had zero productivity gains, that there is a massive glut of product being created -- far more than can be consumed in the US. This is good for the world because foreign countries with inefficient farming practices would starve if not for the possibility to buy American farm products, which we have kindly subsidized in order to make them affordable to poor folks overseas. For Nigeria or Taiwan to grow their own foodstuffs would colt htem many times more than the cost to import from the US. |
| Fri 21 Nov | uncronopio | New Zealand's dairy industry is more efficient and competitive than USA's.
Fruit and Salmon producer's in Chile are more efficient.
I could keep going if you want... |
| Fri 21 Nov | uncronopio | Productive needs to be defined on terms of inputs and costs of production. If you produce large quantities but do require massive amounts of inputs, then your efficiency is very low. For example, if your cows are very big, but require lots of food, their feeding efficiency is crap, so you won't make much money with them. If you were efficient why would you require any subsidies? New Zealand dairy farmers are not subsidised. |
| Fri 21 Nov | uncronopio | ...and they dominate the milk world market (pressed post too early) and have high living standards. |
| Fri 21 Nov | T. Norman | Most American farm subsidies don't make food cheaper ... they are designed to make food more expensive. The subsidies aren't used to lower the cost of production; they are used to buy produce from the farmers at artificially high prices, or to pay them to burn crops or get rid of livestock, in order to keep supply down and prices up. |
| Fri 21 Nov | From the office of ... | > Protectionism will keep costs higher than necessary for the customers and will stifle innovation, because companies won't have the need to introduce changes if their position in the market is not challenged.
This is not necessarily true. Countries in South America have dreadful ecomomies precisely because they believed the globalisation rubbish in the early 1990's and removed all protections for their economies, which are now a joke.
In contrast, China maintained very strict protection and thrived. |
| Fri 21 Nov | T. Norman | Full protectionism is often better than the one-sided protectionism that takes place in these so-called 'free trade' agreements. Goods are free to move from country to country, but the workers who produced the goods are almost always stuck in their country of citizenship.
With protectionism of labor in place, work flows to the places where it is more efficient on a per dollar basis, even though it is often much less efficient on a per person per day basis. When a country loses jobs because of the cheap labor elsewhere, the workers cannot move to the countries where the work is. The result is a set of unemployed individuals who don't produce anything until and unless they are able to find other jobs, which may not be possible for many of them in an economy that was hit by a massive loss of jobs.
Much of the offshoring of manufacturing, programming, and other services would not have happened if there wasn't protectionism in place restricting who can work in which country. Large numbers of workers would not be willing to accept extremely low wages if they could freely move to another country that pays five times as much. And offshoring largely depends on access to large numbers of cheap workers.
But with a free market for goods AND labor, the work would flow to places where it is more efficient per person per day, because wages could not be artificially depressed by taking advantage of a captive workforce. |
| Fri 21 Nov | - | Are you guys aware of the fact that the Freedom to Farm Act eliminated government price supports on American farm products?
What are your sources of information? The World Socialist Worker's News?
The US has no tarrifs on almos all agricultural products. This is very very different from the situation in almost every other country.
I think you guys have an understanding of the situation that is pretty much the opposite of reality. |
| Fri 21 Nov | - | T Norman,
Do you have information on farmers being paid to burn crops any time within the last 15 years? Not saying it's not happening, but I've never seen it or heard of anyone who has done it, though I did study in school that it was done many years ago. |
| Fri 21 Nov | - | Here's one where Indian farmers are having the crops burned agaidnst their will by Indian Government Stormtroopers who are shills for the multinationals:
http://www.kisanwatch.org/eng/special_reports/spr_bt_ctn1.htm
And here's one where farmers in the US burn to improve soil conditions (the soot makes it more alkaline and it kills weed seeds), mimicking the natural order of prarie fires:
http://www.northidahofarmers.org/factsvsmyths.htm
But information about uncle sam paying farmers to burn crops in order to destroy them and thus create artificial shortages (that's what your talking about right?), just isn't something I can find references too, even though I do hear about this all teh time from Racical Leftists, Anarcists and One-World-Order Advocates. |
| Fri 21 Nov | - | unc,
It's absolutely true that salmon fishing is more productive in Chile where they have no environmental regulation than in the US.
Here's some information about the excessive salmon regulation in the US salmon industry:
http://www.juneauempire.com/stories/060202/sta_fishindustry.shtml
Note that there are currently NO price supports for salmon, though fishermen are asking for them since they are going broke trying to compete with other countries like Chile that don't have a problem with trashing the environment.
I hadn't though of fishing as being a form of farming. US fishing is definitely a lot less efficient than that of most other nations due to all teh environmental and other regulations.
Do you have information on price supports for US fruit producers, your other information? I find no evidence that there are US price supports for US fruit producers. |
| Sat 22 Nov | uncronopio | 'This is not necessarily true. Countries in South America have dreadful economies precisely because they believed the globalisation rubbish in the early 1990's and removed all protections for their economies, which are now a joke.'
'In contrast, China maintained very strict protection and thrived.'
Countries in South America do not owe their economic situation to free trade, but to political instability, common place corruption and reliance on commodities. In fact, they have had 'dreadful economies' for much longer than any free trade agreement or since opened to international markets. Many countries tried strict protection, but most of them do not have China's negotiation muscle (and market size). The USA's economy is much more dependent on trade, and if it decides to close will certainly face retaliation from other countries that will close to imports from the USA.
While it is truth that some of USA's competitors do not have the same level of environmental regulations, they are coming into place (slowly), in many cases as part of the conditions in free trade agreements.
Incidentally, I normally include agriculture, forestry and fisheries as one package in this type of discussions, because they usually have similar structures and even are assigned to the same ministry (like here in Australia).
It is interesting that some people in the forum ask for a level playing field. Some (many?) programmers offshore do not have access to the quality of infrastructure, books, transportations, etc that programmers in the USA take for granted, and I don't see them here whining about level fields.
As I mentioned in another thread, programmers never cared about the consequences of their work, reducing staffing in other sectors of the economy or even for allowing off-shoring to succeed. Programmers stayed silent while weren't affected, so shouldn't expect much sympathy from the rest of the population. |
| Sat 22 Nov | uncronopio | I don't have any information on support to fruit producers in the USA, and I think they are not subsidised. I believe that they do not face that strong competition from Chile and New Zealand (with lower production but higher transportation costs) because of seasonality: the latter are in the Southern Hemisphere, with opposite production seasons. |
| Sat 22 Nov | Stephen Jones | The one thing that farmers in the third world want is to be able to 'inefficiently' produce their own food instead of being undercut by US and EU subsidized farmers.
The export subsidies are a mess; I can buy Danish butter cheaper than New Zealand butter, which as anyone who knows the comparative costs will tell you is nonsense.
American steel is a mess because it is inefficient. We are not dealing with dumping here and the WTO has decided that there is no justification for the tariffs (the EU is in the process of drawing up a WTO approved multi-billion packet of retaliatory tariffs aimed at hurting states where the republicans won mariginally in the last election).
I worked in the steel industry in Saudi from 1998-1999. We sent a load of trainees over to the US and Mexico. The general opinion was that the organization in Monterey was much more efficient than the American one.
Wage rates have little to do with the steel industry's competiveness. There is a million dollar or higher capital debt for each worker at the Saudi plant. The three main costs are the start up cost, electricity or gas (which explains why you have steel factories in Saudi) and raw materials (a country with a lot of scrap such as the US is actually in a very strong position here).
The most important figure is the yield, which is the percentage of steel that can be used the first time around and in Japan this gets to 98% or 99%, which explains how Japan has a steel industry. There is also a lot of profit to be made in speciality steels.
And finally there is the penalty of being the first. Long standing plants will be less efficient than new ones. Incidentally in terms of efficiency the US is well ahead of the ex-USSR or Chna, which have absolutely horrendous yields, often below 50%. Check up Encarta or Brittanica for the latest figures. |
| Sat 22 Nov | no name | Farm Subsidy Payments to Fortune 500 Companies vs. the Average Payment to the Bottom 80 Percent of Farm Subsidy Recipients Nationally (1996 - 2000)
http://www.ewg.org/farm/subsidies/fortune500.php |
| Sat 22 Nov | From the office of ... | uncronopio, the fact remains that the South American countries embraced free trade and opened their markets exactly as they were told to do, and their fortunes declined relative to other economies that refused to do this. |
| Sat 22 Nov | Stephen Jones | Depends which country; Chile seemed to do OK (although the changeover in the 70's was literally brutal). Argentina collapsed though.
In general rapid free marketism as a development strategy depends on their being a large number of losers to buttress the smaller number of winners. |
| Sat 22 Nov | Marx | As a community we have power. When a corporate takes their business - our jobs - offshore we can boycott them. Remember how Adobe vs Sklyarov buckled, it was quick and easy.
Between us we generate, handle and turnover billion$ - don't let the greedy corps steal our jobs and exploit the 3rd world. |
| Sun 23 Nov | Stephen Jones | Dear Marx,
What a joke! Why on earth should Japanese, EU and South American programmers boycott a product to favour Americans over Indians or Russians? Out of sympathy for Bush's foreign policy perhaps?
Perhaps we should all start to boycott companies that use American programmers to keep jobs local?
|
|
| Interesting take on airline marketing | Fri 21 Nov | Alex |
| http://www.skyhighairlines.com/
Wish youd thought of it first? |
| Fri 21 Nov | Ashamed To Put a Name | May be I'm dumb, but I didn't get anything... Any clarifications appreciated. |
| Fri 21 Nov | no name | Shouldn't someone start 'mile high airline'? On long enough flights everyone gets their turn in the toilet with their partner (or someone else's if they choose). Those in first class cam have their own curained off area, because let's face it nobody wants to see what a bunch of old businessmen get up to anyway.
And all airlines should make all the fat people sit at the back of the aircraft. That will make the nose lighter and make it easier to take-off, thus saving fuel. |
| Fri 21 Nov | MR | It's a humor site. Laugh. :) |
| Fri 21 Nov | Nobby Good Guy | A few links on the site seem to suggest that it is run by Alaska Airlines.
Now why can't more big companies take the piss out of themselves/their industry like this. |
| Fri 21 Nov | tapiwa | Yup, it looks like the domain is owned by Alaska Airlines
http://network-tools.com/default.asp?prog=xwhois&Netnic=whois.arin.net&host=skyhighairlines.com |
| Fri 21 Nov | John C. | Years ago, Alaska Airlines used to have ads (radio, and maybe TV too) featuring a fictional company called Sky-High Airlines. I can still remember the little jingle they used. The commercials would start out with a cheesy pitch for Sky-High Airlines, and then switch to a more serious announcer who said something along the lines of "When you're tired of getting screwed over by airlines that make empty promises, choose Alaska Airlines, where we give you the respect you deserve." (This is heavily paraphrased.) So it wouldn't surprise me at all if somebody at Alaska decided to extend the parody onto the Web... |
| Fri 21 Nov | fool for python | Shop at Walmart, fly to vegas. They recently ran ads in the local vegas paper for high level execs.
http://www.iqjet.com/pages/1/index.htm |
| Sun 23 Nov | ChrisO | JohnC,
I think that page is from AlaskaAir because on the Baggage Tracker page it says something about Alaska Air won't lose your baggage.
... and then I did a whois on it and it was registered by Dean.Duvall@AlaskaAir.com , I think that answers the question. |
| Sun 23 Nov | The voice of rationality | I heard about on the radio. Yes, it's "Guerilla Marketing" from Alaska Air. It's subtle though, you have to look for the plugs. |
| Sun 23 Nov | no name | Fly United. |
|
| An end to blog spam | Fri 21 Nov | Alex |
| Spammers post their links to www.freeviagra.com on a million blogs and Google suddenly concludes that a million sites point to this mega-popular website.
In other words, the PageRank gets tricked. What all bloggers should do is agree on some made-up tag to essentially instruct google to ignore a link and not count it towards its pagerank.
So the html would look like this
Wow! I found this cool website! Check it out! www.freeviagra.com
Browsers will automatically skip over the unknown tag, so no harm done. Eventually Google will acknowledge the existence of this tag and tweak its googlebot accordingly.
Choke on it spammers. |
| Fri 21 Nov | no name | Too human-intensive, I think. Got a way to automate it? |
| Fri 21 Nov | . | The blog software will automate it. |
| Fri 21 Nov | no name | But the nopagerank tag could be used by web designers on links other than comment spam. No links from my site to my competitors. Which means the google results get biased, a slippery slope... |
| Fri 21 Nov | Li-fan Chen | Alex, you can't use a tag like that because people could use it everywhere and basically it bans google from taking an interest in indexing your page. I don't expect little web publishers to ever want to ban google from indexing, but a major media company would probably use it to ban all indexing. And with a tag like this you can't assume it works unless google respect the tag everywhere, you can't selectively observe it. |
| Fri 21 Nov | Alex | Why would anyone in a real world scenario not want the links on their site indexed?
Give me examples. |
| Fri 21 Nov | Ori Berger | It's a good suggestion, I think. It's a way to tell google that even though it _does_ index this page, a part of the content is actually not controlled (in a sense) by the site's owner, and should be considered less vital in determining the popularity of the _pointed to_ sites.
It has nothing to do with banning indexing in the first place; Anyone who wants to do that already does that through robots.txt or filtering the useragent 'GoogleScout'.
This achieves exactly what Joel achieves by redirecting the links back to fogcreek, and only then redirecting back to the real site -- except that, if Google honours this tagt, it'll be a matter of updating the page templates for most message boards, which is signifcantly simpler and easily done by many people. |
| Fri 21 Nov | Simon Lucy | I want a phone that's a phone, you know?
Something with buttons my fingers can push without feeling clumsy, something I can read at a regular distance. Something that's nicely illuminated but for the purpose of legibility not a beacon to every mugger within a hundred yards.
I want a phone that has a battery that doesn't die ever more rapidly.
I don't want to surf web sites, get news, pay for someone elses adverts nor send incomprehensible messages with all the vowels missing or replaced by numbers.
I just want a phone. |
| Fri 21 Nov | Simon Lucy | Ok, that was bizarre. I'll let people guess where it was supposed to be posted.
Perhaps what I really want is a brain. |
| Fri 21 Nov | Lou | Actually you could set up a MT plugin to expand the characters in the site. I'd imagine Google would misinterpret the link but the rendered site would still work.
Its much like the email hiding by expanding the email address' characters. You could set the plugin/code to only do this on comment area submissions.
But someone would have to verify that Google would indeed misinterpret the results it read. Last I heard the googlebot just scanned the source file and not a rendered equivalent, so it should work. |
| Fri 21 Nov | Less is more | Simon, I'm not going to guess, but I do know what you mean. I'm damn sure there is a market for a neat looking mobile that makes and recieves calls and... that's it. Maybe a phonebook so that I can keep track of everyone's numbers, but that's all. |
| Fri 21 Nov | Chris | This is something Google needs to fix on their own, not through telling bloggers to add some new tag. How arrogant would that be... |
| Fri 21 Nov | Foolish Jordan | I don't understand. If the blogger is putting that comment on their site, presumably they're doing it because they WANT google to pick it up, so what's the blogger's incentive to use your fancy new tag? |
| Fri 21 Nov | mb | the blogger (the person writing the blog) is being attacked and their site is being abused to generate rankings for other sites the blogger wants nothing to do with.
so they want to add 'nofollowlinks' (yes, there is ALREADY a tag for this, META NAME='ROBOTS' CONTENT=' NOFOLLOW') to their comment template, thus instructing the robot not to follow links. of course, a robot might not follow it.
what's new in this particular suggestion is that this be made a 'nesting' tag, so particular links can be marked as nofollow. this might be useful if comments and regular entries are mixed together on the same page.
or you can just make sure comments don't allow live URLs. as happened here for a while--bad for an active message board, but good for rarely used comments. |
| Fri 21 Nov | shiggins | I thought this was an interesting anti-spam measure.
http://www.hutteman.com/weblog/2003/11/20-144.html
Althought, it would require a coordinated effort among the bloggers (the downfall I think), it's a different way of looking at the battle. |
| Fri 21 Nov | Aussie Chick | I am sorry, but I don't see how this is a good idea.
I mean, if I post something saying 'hey this is a good site' then it should affect the google page rank, because I have obviously thought it important enough to share with my colleagues, which is what pagerank is all about.
so 100s of people post a link to www.viagra.com, well then there must be something special at that site. |
| Fri 21 Nov | mb | what's not a good idea?
page rank?
comment spam?
trying to redirect comment spam?
trying to eliminate comment spam?
blogging?
linking? |
| Fri 21 Nov | shiggins | Chick,
Please tell me you are being sarcastic. How is it 'ok' to utilize others sites for your advertising? |
| Fri 21 Nov | Johnny Bravo | Actually I find Alex proposal quite smart. Easy. Simple. Yet efficient.
And to those who find such a measure too intrusive: C'mon, it's an optional thing, no one would force you to use it. It will do no harm to user agents who do not recognize it, too.
To those who find the measure too complicated: I guess Google will introduce such features in the near future anyway. People use standardized tags for browser clients, why not introduce a standard so search engines know how to treat your pages? As long as it's free, i.e. not limited to Google, I think it's just another cool extension, probably in the form of a custom namespace.
Still not convinced? People use -moz-whatever in their stylesheets, and no one bothers (actually, it's standards-compliant, too). |
| Fri 21 Nov | matt | 1. No one will use it, because
2. No one cares. |
| Fri 21 Nov | Martin Dittus | Very interesting idea. Somehow along the lines of Berners-Lee's Semantic Web -- each piece of information (in this case: site content, user comments on a page) is described with a characterization, which makes it easier for agents/search engines to separate between the different chunks of information, and handle it differently.
I am shure we will see some of this in future markup languages.
(For an introduction to the Semantic Web concept see e.g. http://www.sciam.com/article.cfm?articleID=00048144-10D2-1C70-84A9809EC588EF21 ) |
| Fri 21 Nov | Aussie Chick | Sorry, first I was refering to the original poster, and secondly, I don't agree with advertising this way etc.
What I am refering to is when find a neat site, and post it here because I know (well am pretty sure) that you lot will find it interesting. I think these links deserve to effect the google page rank.
I stuck with the www.viagra.com example because it had been used. My assumption being that it was 100s of genuine people interested in viagra who has said to their mates, hey 'check out this great viagra site...' |
| Fri 21 Nov | Martin Dittus | I generally agree with you. But the problem is that the Internet has a different content structure from when PageRank was designed: today we have more sites where users can add content (comments), which can also include links.
This makes the evaluation of a link more difficult: PageRank builds on the assumption that all links on a site are to be treated the same (at least I assume that), so links in user comments get rated with the PageRank of the site on which they are posted; but the author of the comment is normally not the author of the site. Weblog spam abuses this assumption.
It's hard to automatically distinguish valid links from spam, and you are right in that the existence of website spam should not affect the 'value' of user comments in terms of search engine relevance. But by comparing the ratio of user-provided links to author-provided links one could make assumptions about their importance: if a given site has been linked in n % more user comments than website articles this can either mean the links are spam, or that maybe there is a new trend which has not yet caught the attention of content authors. An analysis of the surrounding text might help here (i.e. do all coments look alike? -> probably spam).
When evaluating a website, search engines treat some of the elements of the document different than normal text (page title, meta tags, headlines, ...). I think it would make sense to add means of distinguishing between site owner/site user content.
More ideas? Interesting discussion! |
| Fri 21 Nov | Alex | To Aussie Chick...
When you post an interesting link to a blog, everyone *will* be able to see it, click on it, etc. That's the point of sharing in a community.
BUT it won't ATIFICIALLY INFLATE THAT SITE'S RANKING IN GOOGLE.
Which is what spammers exploit. |
| Sat 22 Nov | Johnny Bravo | Aussie Chick,
any market mechanic that can be exploited in a way that effort < revenues WILL be exploited. Although I must admit I find your naivity charming. |
| Sat 22 Nov | Marx | 99.99% of blogs ARE spam, God, who wants to read this
November 20 2003
Woke up today and scratched my scrotum
November 21 2003
Scrotum is still itchy, I scratched it again. By the way did I talk about me yet?
November 22 2003
Posted to this cool forum http://discuss.fogcreek.com/ then I scratched my scrotum
That's all for today, more of the same tomorrow |
| Sat 22 Nov | Clay Dowling | While I admit that blog spam is a pain, and in general I feel that my state should open a hunting season on spammers, I don't think that automation is the key. As a blog owner, it seems like there's some responsibility to maintain the site. If my site dedicated to personal scratching accepts comments, and there are some comments that I think need to get the boot, then I should get in there and put the boots to them. If I'm not interested in taking the time to moderate the discussion on my site, I should probably discontinue the discussion portion of the site. |
| Sun 23 Nov | Alex | I pretty much agree. Maintaining a clean blog should be every blogger's responsibility.
Maybe this tag would come in handy when the sheer volume of blog comments grows to become unmanageable. |
| Sun 23 Nov | Aussie Chick | Johnny,
My naevity, yes well I will admit to that!
But I do know that anything that can be expolited will be exploited, this is the sad case of the world. Where there is genuine need, there are people who will take just because they can. |
|
| Publicity from this site/forum | Fri 21 Nov | Roose |
| I wonder if there is any way to quantify how much additional revenue is generated by the advertising that this site gives Fog Creeks products.
It seems like there are tons and tons of people visiting this site, and posting every day, and I wonder how much of it transfers to sales of the software.
Are there any other examples of products that became profitable by building an online community such as this?
How many copies do you think CityDesk sells? I have no idea how big the market is for such software. |
| Fri 21 Nov | ChrisO | It did for me - 11 licences for FogBugz |
| Fri 21 Nov | one programmer's opinion | 'Are there any other examples of products that became profitable by building an online community such as this?'
Not that I can think of. Yes, there are probably quite a few small companies that have generated most of their sales primarily from the strength of the online community they have created. However, none of the ones that I am aware of have done it by creating a website and then writing and posting software development articles on it.
Typically, the employees of these small but successful companies spend a lot of time interacting with their customers. Joel has done this to some extent, however, most of the posts on this particular forum don't pertain to the products that FogCreek sells.
If you are looking for some examples of strong online communities that have helped the company generate sales here are two that I know of:
Battlefront.com - sells a unique and awesome WWII computer game called Combat Mission.
Online Support Forum: http://www.battlefront.com/cgi-bin/bbs/ultimatebb.cgi
Indigorose.com - sells several commercial computer applications such as AutoPlay Media Studio.
Online Support Forum: http://www.indigorose.com/ubbthreads/ubbthreads.php |
| Fri 21 Nov | tapiwa | ArsDigita did. At least for a while |
| Fri 21 Nov | tapiwa | check out http://philip.greenspun.com/panda/community for more on the power of communities, even in commercial environments. |
| Fri 21 Nov | Mauricio Macedo | Yep, Joel did a very nice thing: he first *gave* to now *receive*. This remembers me of the cluetrain manifesto. Now he has more than $40,000 in sales per month due to such insights and lessons for the programming community.
Interesting note from a venture capitalist:
http://www.ventureblog.com/articles/indiv/2003/000010.html
Joel Goes Bigtime
By naval on March 5, 2003 05:42 PM | Print
Categories: Software
One of my favorite bloggers, Joel Spolsky (who I won't link to since we're still in stealth mode) sent out another great piece via email, this one on building communities through software. Somewhere near the end he dropped the bombshell that his mailing list has 18,000 people. Given that Joel is not a spammer, that his blog is tightly focused on software development, and that most people who post on his forums have intelligent things to say, I'm impressed. Joel has demonstrated the power of blogging for his business. By staying tightly focused, writing good original pieces, and having good instincts on design and community building, Joel has captured the email addresses and more importantly, trust, of 18,000 potential customers who will keep him in business for life. |
| Fri 21 Nov | Roose | Interesting, thanks for your comments. I didn't realize there was such a big market for Fog Creek's software BTW...
Do you guys know of any online communities which help sales of women's products? (e.g. clothes, make-up, jewelry) I know there are lots of women's forums on the net (and women according to some outnumber men now), but I'm wondering if there are any that support commercial services. |
| Fri 21 Nov | tapiwa | Roose, I really recommend reading the first couple of chapter of Philip and Alex's Guide to Web Publishing, the book by Philip Greenspun.
I think that it is a must read for anyone planning on building an online community. Plus, the book is available online for free.
http://philip.greenspun.com/panda/ |
| Fri 21 Nov | tapiwa | About women's communities, the best places to start looking would be the female magazine's websites.
There are a few. The one tha immediately springs to mind is iVillage. http://ivillage.com/ |
| Fri 21 Nov | Roose | I wonder why more people don't do this, since it appears so powerful?
Maybe it's because it's pretty hard to write something that a lot of people will actually want to read. Not anyone could write the articles that Joel does.
I wonder how those sites like about.com are doing now? Anyone actually read their stuff? |
| Fri 21 Nov | Marx | I think the 'community' dimension of a site is very important. It builds brand loyalty and introduces 'sticky content', so, OK, the brand is not important here, but the obvious point has to be you won't sell a thing if nobody comes. |
| Sun 23 Nov | The voice of rationality | I agree that Joel's built a successful blog with a fairly fanatical reader base.
What's always puzzled me though, is that the readership of the blog is so different than that of his core product.
I mean, we're all potential customers for FogBugz, but CityDesk? It seems like the CityDesk market is completely different than the readers of this Forum. |
|
| Application Architecture 101 | Fri 21 Nov | Cowboy Coder |
| Up to this point I have been able to design applications in my head. I would get a vision for what the application should do and how it should do it. I would visualize all the major components, how each of the components would be designed, how they would be tested, what the UI should contain, how the data would flow, etc. Then I would jot down a few notes and be off and running.
Basically, Im a cowboy coder. I dont use any formal methodologies.
I always knew that someday this would catch up to me and now it has. Im starting a project (an enterprise database application) that is too large and complex to get a good vision of in my head, and Im just not sure where to start.
Any of you architecture gurus have an X-step process that you follow when designing applications? |
| Fri 21 Nov | Mike Swieton | Repeat after me: 'No silver bullet!'
Now say it again. There is no methodology that can make it work.
I suggest you read Fowler's Patterns of Enterprise Application Architecture. He basically gives you an overview of the design of an enterprise database app, and then describes 40 or so useful patterns. There's some more information on his web site, http://www.martinfowler.com
That won't tell you much about methodology, but it may give you a bit more insight about the design.
As far as methodologies go, I should state that my employer uses XP to great success. We also work with some really first-rate people, as well.
Hope this helps! |
| Fri 21 Nov | jm | Cowboy, you are probably a GOOD designer, if you've been doing it successfully so far.
The idea that using some formal process automatically equates with good design is just not on. In fact, it very easily hides atrocious design. People who cannot design can just step through things and draw little diagrams, so that it looks like they're doing useful work, when the design quotient is dreadful.
This is the reality of a lot of enterprise apps these days. |
| Fri 21 Nov | Vince | One thing that has helped me though, is by reading fowler, and others, (I'm particularly liking Java Enterprise Design Patterns), is that they point out a lot of flaws. You don't have to use their patterns, but they point out a lot of quirks that can come up sooner or later, and just having those in the back of your head can be invaluable. |
| Fri 21 Nov | henrik | I think the main issue is not what methodolgy to use, rather what type of conceptual model is suitable for describing the system. My rule of thumb is that it should contain about 15 things on the top level, regardless of wheter you are designing a space shuttle or a toaster. Depending on the scope of the system, you will need to model the parts of this top model with varying formalism. The reason for having 15 things is that around that number is the max normal persons can handle complexity wise without too much brain strain.
The criteria for a successful conceptual model is that you should be able to discuss the main technical trade-offs using the entities in this model. This means that you have to be very specific about what the linse, arrosws, clouds and boxes mean.
Use UML or what ever. I rarely use formal UML for large systems, since I'm not really comfortable with it's symbols. I tend to make up my own, even though that means I have to be very careful to describe the semantics of thise symbols.
I find this easier in most cases since the symbols in the model often seems more natural for the problem space than the more abstract package, class, component etc. For lower level closer-to-code models UML is fine.
hope it helps
/H |
| Fri 21 Nov | Matt H. |
If you're sick of code and fix, I'd recommend 'How to be lazy without really trying'
http://magnonel.guild.net/~schwern/talks/How_To_Be_Lazy_Redux/What_Works/slide001.html
Once you've got a handle on that, then i'd recommend XP or another, not disciplined iterative model. But How to be lazy is a great start. |
| Fri 21 Nov | one programmer's opinion | If you don't know where to start then it might be the case that this particular project is bigger than what one person (or at least you) is capable of doing by themselves in a timely manner.
Question: Are you responsible for doing everything or will you be working with others such as an analyst? In other words, tell us more about your job responsibilities.
Maybe a complete software development methodology that you can adapt and follow is what you are really looking for? If not, you can always attempt to adopt certain design practices that a particular enterprise software developer uses. Mike Swieton already mentioned Martin Fowler. This person has written several books that discuss the approach he uses when tasked with designing an object-oriented enterprise software application/system. Peter Coad is another book author who has written several books on designing object-oriented enterprise software applications/systems.
I am sure someone will come along and post a whole slew of appropriate book authors that they feel you should check out. |
| Fri 21 Nov | tapiwa | No ARCHITECTURE is so haughty as that which is simple.
--John Ruskin, 1819-1900, British Critic, Social Theorist |
| Fri 21 Nov | tapiwa | Architecture is easy: you just stare at the paper until droplets of blood appear on your forehead.
-- Unknown |
| Fri 21 Nov | Cowboy Coder | Writing is easy. All you do is stare at a blank sheet of paper until drops of blood form on your forehead.
-- Gene Fowler |
| Fri 21 Nov | Mark Hoffman | 'People who cannot design can just step through things and draw little diagrams, so that it looks like they're doing useful work, when the design quotient is dreadful'
Perhaps, but I hope you aren't suggesting that people who 'draw little diagrams' only do it to pretend that they are working.
I use Visio Architect a lot to help me with my designs. I build my ERDs there as well as to design my classes with their UML tools. (C# code primarily)
I don't use all of the UML features, nor do I stick with a specific methodology. But like the original poster says, once you get beyond a relatively small design, it becomes near impossible to keep everything in your head. You need something to help organize your thoughts. |
| Fri 21 Nov | tapiwa | Cowboy Coder, thank you for the attribution. Will update my archive. |
| Fri 21 Nov | Exception guy | (respectfully)
I've got a pithy historical quote for any situation.
--Tapiwa |
| Fri 21 Nov | hoser | It is interesting the way this thread has gone: moderately anti-heavyweight architecture.
There have been other times architecture has been mentioned where 'vee must have discipline, yah?' has been the dominant mode.
Anyone consider 'hoser' for their safe word? |
| Fri 21 Nov | tapiwa | Exception guy... I just need to get out more! :-)
I pick my favorite quotation and store them in my mind as ready armor, offensive or defensive, amid the struggle of this turbulent existence.
-- Robert Burns, 1759-1796
It is a good thing for an uneducated man to read books of quotations. . . . The quotations, when engraved upon the memory, give you good thoughts. They also make you anxious to read the authors and look for more.
-- Winston Churchill |
| Fri 21 Nov | Cowboy Coder | A little more background on me:
I am the sole 'in-house' programmer for a 6t00+ manufacturing company. The budget's still tight, so contracting a senior architect is not feasible. The majority of my projects are small to medium sized ASP and now ASP.Net applications. There have been some larger applications that I've developed, but they have grown incrementally over time. I have read Fowler's 'UML Distilled', and I am familiar with a number of the tools for design. I need to get started on this soon, so I don't have the luxury of spending a few weeks reading Fowler's new book or any other.
Maybe I'm just in a rut. I just feel like I'm stuck and I need a kick in the ass to get going on it. Something like: start here, then do this, then this, and this, ..., and finally this.
Any one got a simple 'Sponge Bob's instructions for blowing a bubble' type of process that they generally follow? |
| Fri 21 Nov | suggestion | Why not build the system in pieces? If you are careful about putting up good interfaces, most systems can be built piece by piece. Should help with the complexity and get value to your users earlier. |
| Sun 23 Nov | Simon Lucy | Often large systems look horrendously complicated and sap the gumption to just start because they have lots of agregations of tiny complications that seem to descend into fractally complicated combinations.
In reality, those agregations really are fractal, they look much the same as every other kind of software system you've likely come across before.
And if someone smells 'Patterns' at this point, its true but at a greater level of abstraction.
If you can see the interfaces between whole subsystems then you can cleave the development into those subsystems (and later cleave them into smaller units). If you can't see the interfaces then begin with the Use Cases.
But make those Use Cases tell you a story about what a user sees of the application and expects back from the application. (this of course is not the entire system just the user's view but its a beginning).
Then you can begin to descibe the conditions and processes that are going to be required and you'll start to see the recurring pattern of the system . Once you see that pattern the interfaces will fall into place and you'll be less panicky.
In Zen and the Art of Motorcycle Maintenance, Pirsig talks about a class in Rhetoric (is there such a thing nowadays?), that was having a problem in writing anything about a subject, even the view out of the window.
And so he had them write about a brick in the wall and they were able to write and some of them found it hard to stop. The gumption leak was stopped because the noise of trying to comprehend a whole scene no longer overwhelmed the student's capacity to write it down. The whole scene was too strident, they couldn't determine where to begin. Given a tiny subset (that the example is itself self-similar is purposeful) allowed them to control what they perceived and write about it.
System design is like that. Find the story you can tell about the system, then tell it to someone else. |
| Sun 23 Nov | Eric Debois | This may be a silly suggestion, I dont know. I dont do enterprise level stuff. What I do, sometimes, is start with the overall goal of the app and the break it down into smaller and smaller parts untill I have a heirarchy. If you do it carefully and work it over a couple of times, this map can be used as a model for the program. Prolly best for procedural coding though.
Like so:
1: Let users edit HTML documents
1.1: WYSIWYG editig
1.2: Source text editing
1.1.1: Manage formating
1.1.2: Manage page layout
1.2.1: Standard textedit features
..and so on untill you have a bigass tree structure. I think this method is originally for writing academic papers though :D but it works well enought for games and stuff. |
|
| The Lifestyle | Fri 21 Nov | Dustin Alexander |
| So, since I seem to be in one of my more social moods today, I figured Id take advantage by asking a question for a change.
This question has two parts, so be careful with it. These things can be tricky.
1) What is your current lifestyle?
2) What is your ideal lifestyle?
In otherwords, what are the typical elements of your day and how you go about it, and what would you like them to be? |
| Fri 21 Nov | no name | Hard to have a lifestyle when working 15 hour days, 7 days a week for the past few weeks... *grumble* |
| Fri 21 Nov | Sven | I get up around 10 am. Then i send some email. then i go to the gym. then I play my piano for a few hours. then I send some more email. then I do about 3 hours of programming, depending on my mood. Then I go out to eat, or go to a bar. Then I go home. My ideal lifestyle, I would like to remove the email and programming parts, and replace them with more going to the gym, or maybe snowboarding, or spanish lessons, or reading a book, or perhaps having sexual intercourse with one of the better looking girls from the bar. |
| Fri 21 Nov | Aussie Chick | I live with my husband (no children) and we are never do housework, we both work 40hr a week (business hours) he is an electrician.
My ideal lifestyle is that I work from home, never employ people, but have contacts (ie people with various skills that I can contract out to on occasion).
I would like to have some children, and suprisingly (well to my previously very tomboyish self) I would love to have time to be able to clean the house and cook and do nice things for my husband.
I would like to get back into running, and definetly want to be out jogging with the pram when I have children, I would like a house that is always clean, I relax better when things are clean. Ithis would probably mean hiring a housekeeper for half a day a week, before I suck (and hate) housecleaning.
Throw in a 12-18month working holiday to England, and I would be a happy lass.
I would also like to be going to church more often, reading my bible everyday and talking to God a lot more then I do. |
| Fri 21 Nov | Louanne van Houten | Aussie chick, I know what you mean about never having time to go to church or study the bible. Always seems to be the thing that gets dropped off the end of the 'lifestyle'. *sigh*
A friend of mind suggested this, buy a cheap bible and either tear out, (or photocopy if you don't want to do this), passages that you would like to study. Then mail them to yourself. When you get the mail, you while be reminded that you should take the five minutes out of your 'lifestyle' to read it. You just have to remember to send them, but I'm assured that once you get into the habit, it's easy.
Like most programmers, I think my ideal lifestyle would also include more exercise... :-) |
| Fri 21 Nov | cerrone supernature | I'd like to have sex with all the living organism in this planet that's my ultimate goal beside learning how the heck CLR works in .NET. |
| Fri 21 Nov | Alyosha` | Stay away from my cat, dude. |
| Fri 21 Nov | no name | A bit of gardening, a lot skiing. Currently I don't have a garden andthe snow hasn't arrived :( |
| Fri 21 Nov | Scot Doyle | Get up and prepare for the day, walk to my study and work on a product i'm creating for java developers (thinking, testing, coding). Cruise blogs and techy sites learning as much as i can about possible competing and complementary products and technologies. Meet occasionally with a buddy I am working on a different startup with. Have lunch with friends from previous jobs.
Very content right now, as I'm working towards specific goals, so I wouldn't change anything significant. |
| Fri 21 Nov | Bored Bystander | >> perhaps having sexual intercourse with one of the better looking girls from the bar.
Sven
>> I would also like to be going to church more often, reading my bible everyday and talking to God a lot more then I do.
Aussie Chick
>> I'd like to have sex with all the living organism in this planet that's my ultimate goal beside learning how the heck CLR works in .NET.
cerrone supernature
-----------------------------
I think portions of this thread illustrate the image problem that programmers have. Noble & Godly to depraved, that's us. ;-)
Pick a story and stick to it! |
| Fri 21 Nov | tapiwa | My definition of success is to live your life in a way that causes you to feel a ton of pleasure and very little pain -- and because of your lifestyle, have the people around you feel a lot more pleasure than they do pain.
-- Anthony Robbins
Currently work stupid hours (new job).
Would like more time to follow my passions. (microlights and hunting)
Would like to not need to sleep (waste of time)
Would like more time to learn new stuff (genetic algorithms and neural nets)
Would like to have enough $$ to afford the new Rolls Royce (wow... that car has presence)
Would like to be able to drink 12 pints of Guiness and not get drunk. Whisky too! |
| Fri 21 Nov | Mark Hoffman | 'I'd like to have sex with all the living organism in this planet that's my ultimate goal beside learning how the heck CLR works in .NET. '
http://msdn.microsoft.com/netframework/using/understanding/clr/default.aspx
That'll take care of the CLR part. Now that just leaves the other thing. |
| Sat 22 Nov | matt | Wake up 7 AM.
Shower, Shit, Shave
Coffee
Breakfast
Kiss Wife
25 min commute
arrive office 8 AM
Read email
Handle all immediate tasks (put out fires)
on Bad weeks, this repeats until 5 PM
on Good weeks, I work on other projects
Lunch @ 2 PM, usually just 30 mins
out the door 5 sharp
45 minute commute
6PM arrive home
kiss wife
dinner
Heineken
TV
Beer
Sex, possibly
Sleep.
On weekends, I skate my secret training facility. |
| Sat 22 Nov | Marx | Matt, how come it takes you 20mins longer to travel from work to home than it does to travel from home to work ? |
| Sat 22 Nov | matt | San Diego Freeways. It's a Northbound vs. Southbound thing.
Most people get in late- after 9AM - so the AM commute is quick. But in the afternoons, rush hour is from 5-7PM, and EVERYONE is goin' home. |
| Sat 22 Nov | secretAgent | where do you work, matt? my goal is to have a secret skate training facility, but warehouse real estate in Boston is way too expensive. |
| Sat 22 Nov | realist | Last year I had an almost perfect work routine, on Mondays I would get a flight to Sydney (Australia) sit around the office talk to a few people, stay the night, have a few meetings, and then fly home to Melbourne and do the actual development from my study for the next few days. This project lasted about 6 months and I really, really enjoyed it. It was a huge success too.
Alas, now the posting by Matt rings true for me too. |
| Sun 23 Nov | Bella | > Would like to not need to sleep (waste of time)
Actually, sleep is some of the most IMORTANT time. Your body needs this on healing and preserving itself. Lack of sleep = psychologocal problems, mental problems, health problems, etc.
Make it a PRIORITY, if you care to be more optimally productive during the other 16 hours. |
|
| World Class Programmer in 5 Years ? | Thu 20 Nov | Rookie Coder |
|
Can you be a world class programmer within 5 years of experience in the business ?
By world class I mean as some of you call it
a purist, a Craftsman which think that coding is an art,
his programs are nicely design, you could read his code like a good book.
What are the list of books you which can help to attain this level of expertise, beside practising. |
| Thu 20 Nov | timothy | No. Absolutely not. |
| Thu 20 Nov | anon | Any time I start to confuse code with a good book, take me out back of the barn and shoot me.
To me, a world class programmer is one that can produce an application that everyone on the planet wants to buy for $999.99. That's a world class programmer. |
| Thu 20 Nov | Sum Dum Gai | Well, not everyone can be a world class programmer in 5 years, but some people could.
I'd go as far as to say if you're not world class in 5 years you never will be. If you've spent that long doing what you're doing and you still don't 'get it', I don't see why spending another 50 years is going to help you. |
| Thu 20 Nov | Alyosha` | There's no such thing as a world class programmer. Such a description is highly subjective and depends on what field of expertise we're talking about. You can be an expert in a very narrow field, or you can be a jack of all trades and master of none.
One thing for certain, though - you don't need to be elite to write good, clean code.
Also, there is no book I would recommend that would be a better teacher than practice and experience; reading a book without experimenting is close to useless. |
| Thu 20 Nov | M | Are referring to the other post suggesting that programmers can be categorized as either “engineer” or “craftsman”? Are you suggesting a craftsman is better than an engineer? |
| Thu 20 Nov | box | No, you can't.
The problem with development is that you learn so much you keep thinking that's all there is. Then you learn some more.
Rookie's definition of world class actually isn't: '... his programs are nicely design, you could read his code like a good book.'
There's a lot more to it than this. |
| Thu 20 Nov | pdq | Sometimes insight, ability, enthusiasm (e.g. talent) is better than knowelge and experience. And sometimes not. |
| Thu 20 Nov | Walter Rumsby | I was surprised (and imprssed) to find out that Mike Cannon-Brookes (who runs Atlassian - rougly an Australia, Java-based equivalent of FogCreek; contributor to several high profile Java open source projects; and co-authour of a book on development with open source tools in Java) just turned 24.
I think it's possible, but not probably. Your environment shapes you and most of the time most people aren't going to be in an environment that will allow them to get to 'world class' stage in 5 years (and they'd have to be in that environment for the whole 5 years methinks). |
| Thu 20 Nov | Walter Rumsby | impressed/possible
bleh |
| Thu 20 Nov | Mike Swieton | I think it's more interesting to look at time than age. So the guy was 24? Honestly, I am not really surprised at him accomplishing something if he started before he could drive.
I've been programming since the seventh grade, and I feel that that gave be a great leg up on the competition. It's how long you've been doing it, not how old you are. There is no substitute for experiance. |
| Thu 20 Nov | Sum Dum Gai | No, I'd say there's no substitute for talent. Without the talent, all the experience in the world isn't going to help you.
You can't polish a turd. |
| Thu 20 Nov | Uh Oh! | Obviously talent and experience are important, but I think this is enhanced by those around you -- mentors, professors, co-workers and so forth, who help you along the way.
Smart people tend to hang with smart people.
Look around, you are only as good as your peers. |
| Thu 20 Nov | Jack of All | It's nice to see the enthuiasm of youth in here every once in a while...
'Can I become a World Class Programmer' vs 'How the hell do I find meaning in my job'
Everything you are, you are because of the choices you made. Everything you will be, you will be because of the choices you make. |
| Thu 20 Nov | Christopher Wells | > What are the list of books you which can help to attain this level of expertise, beside practising.
_Code Complete_ |
| Fri 21 Nov | Chris Pearce | 'The Pragmatic Programmer: From Journeyman to Master' by Andrew Hunt is very good.
'C++ In Action' by Batrosz Milewski is good too. He has some good ideas, but I really hate his coding style. Don't let this be the first C++ book you read.
The key isn't to read the books, it's to understand them, and use them as thought-provokers. |
| Fri 21 Nov | Vince | Why is it that everyone talks about learning technical things, and reading books, whatnot, and not about being productive. Not to sound arrogant, but, when I *really* get into the zone, I'm a world class programmer. I've had other REAL world class programmers with say that i've done excellent stuff. The problem is, that doesn't happen too often. Most of the time i'm a pretty darn good java coder, but not living up to my full potential. Like i'm permenantly working at 70% brainpower for most of the week. I'd like to learn how to "get into the zone" more often. One of the goals I've made for myself in the next couple months, is to learn how to really focus, and attempt to get into the zone. I think *thats* how you can become a world class programmer, and if someone has tips on *that*, i'll gladly listen like the neophyte that I am. |
| Fri 21 Nov | Ori Berger | My 2c:
You have to read code fluently first. After you can read a program made of 100,000 lines of code in almost any language (there aren't many differences for the _reader_), in a reasonable time, reasonable depending on the language (e.g., 100,000 lines of APL and 100,000 lines of x86 assembly are vastly different in information content), and be able to more or less reproduce the same functionality without going back to the original source, in any other language you have experience with -- you're a master.
You should be able to do that with many kinds of programs too - databases, compilers, raytracers, data compression, communication, games, ....
Can that be achieved in 5 years? I suppose so, if you're talented and spend lots of time. It definitely isn't easy or common. |
| Fri 21 Nov | Matt H. |
---Everything below can be summed up in 'Create a professional development plan.' But, here's some ways to do that ...
]
1) Choose your langauge(s), but not too many. Become an expert in that langauge. If that langauge has a CPAN, actively contribute to the body of knowledge for that language. Join a user group. If no user group exists in your area, found one.
2) Learn about traditional software engineering. Version Control, Requirements gathering, software development models. Learn about patterns and the Gand Of Four. (GOF)
3) Write your tests before you code. Looking into Extreme Programming.
4) Learn to refactor, and simple design. Look into quality and how it applies to software - both how to test defects out of your systems, and how to develop the systems so a minimal number of defects go in in the first place.
5) Practice, practice, practice while you do 1-4. Learn by doing. If you find you aren't growing professionally, find a new job.
6) Join a professional society - these are like user groups, but typically publish a magazine and are larger. IEEE or ACM are two good ones. (I belong to the American Society for Quality). If you want to be a sys admin, think about SAGE. Learn the 'professional development ladder' of that society and climb it.
7) Consider an advanced degree
8) Write for publication. Even if it's just a BLOG. Refine and refine your work - it will help turn your 'feelings' into a worldview you can articulate.
9) Find a mentor who is where you want to be and learn from him.
10) Learn communication and negotiation skills. Toastmasters, How to win friends and influence people, the 7 secrets of highly effective people, etc. If you can't get the job in the first place, or make an effective point in a critical meeting, 1-9 above isn't going to save you.
good luck! |
| Fri 21 Nov | Just me (Sir to you) | The obvious place to start would be http://www.dummies.com/WileyCDA/DummiesTitle/productCd-0764553453,subcat-JOB.html , but I would call that the long road.
http://www.dummies.com/WileyCDA/DummiesTitle/productCd-0764538152,subcat-FAMILY.html can get you the same results in 24 hours, if you are really good.
Rookie> using System;
Rookie> using System.Windows.Forms;
Rookie> class World
Rookie> {
Rookie> static void Main( string[] args )
HotPoker> Hmmm
HotPoker> Rookie, you are a world class programmer
HotPoker> a purist!
Rookie> I think coding is an art
HotPoker> *purs*
Rookie> My programs are nicely designed
Rookie> MessageBox.Show('Hello World!', 'Rookie sayz...');
HotPoker>*moans*
HotPoker> Ah! Oh! Your code reads like a good book! |
| Fri 21 Nov | Mr Jack | World Class Programmers DO NOT think coding is an art. |
| Fri 21 Nov | Mark Hoffman | See, this is where we get into the definition of what is a programmer.
Is a programmer just someone who is exceptionally skilled at writing code?
Does it include architecture and design skills? Because plenty of skilled C++ programmers couldn't design anything larger than small systems. They are amazingly knowledgeable at the intricacies of a specific OS, but ask them to design a large Point of Sale system and they are lost.
Does it include the ability to pull requirements from a user's head? Plenty of skilled architects who can create flexible and scalable designs are such poor communicators they are hopeless at extracting requirements from users.
Some programmers have all of these skills. Some have a few. It's impossible to define what a 'World Class Programmer' is unless you first define what a programmer is.
Which of course..is impossible as well since it's different from person to person. |
| Fri 21 Nov | NathanJ | World class programmers don't think of programming as art? Are you saying that you are a world class programmer and you don't think programming is art?
I think it's possible to become world class in 5 years. But you need to have the talent to begin with like other people suggested. Also, I'm assuming that in addition to the 5 years of experience you previously have a CS training or some other large exposure to computers.
Finally, I think many corporate environments do not provide a fertile ground to become 'world class'. You really need to seek out excellence on your own. |
| Fri 21 Nov | Sven | If you had 5 years of non stop programming experience, you would be pretty damn world class after 5 years. The bad asses I know got to bad ass mode by being hermits for about a year and a half. We're talking 7 days a week, 16 hour days.
When most people say '5 years of experience' on their resume, what they have 5 years of experience of is not 5 years of programming experience, they have 5 years of experience programming 1.5 hours a day 5 days per week.
At this clip, you will never be a world class programmer.
Think about the martial arts. Every stupid karate class I took as a kid stressed the notion that you might eventually master karate with 30 years of training.
This makes absolutely no sense, because the enemy is invading now, so you better not take until age 45 to master the judo chop.
Keanu Reeves got dumped into a 4 month 10 hour a day kung fu bootcamp before filming the matrix, and is indistinguishable on screen from most other kung fu action hero, aside from the obvious maniacs like Bruce Lee, Jet Li,Jackie Chan, etc.
So to answer the question, yes 5 years is MORE than enough time to go from zero to hero, provided you bust ass for 5 years. |
| Fri 21 Nov | John Topley (www.johntopley.com) | 'The key isn't to read the books, it's to understand them, and use them as thought-provokers.'
Er, how can you understand them if you haven't read them? |
| Fri 21 Nov | T. Norman | World class programmers:
John Carmack
Richard Stallman
Donald Knuth
The leads of the Google team
Linus Torvalds
The guy who modified Half-Life into Counterstrike
Justin Frankel (Winamp)
Yes, it is possible to become a world class programmer in 5 years or less of industry experience, but probably not in 5 years since writing their first program. Those guys who created world famous applications at a young age were programming on their own from their teenage years or before.
I also would consider architecture and design to be part of the capabilities of a 'world class programmer.' |
| Fri 21 Nov | no name | Re 24 year old guys with businesses selling gear to lots of big companies - this can be done and does happen, but it's also remarkable how many of those 22- 24 year olds have daddies on the boards of said companies, or with similar connections.
Nepotism is a wonderful thing. |
| Fri 21 Nov | Alyosha` | Those are all very FAMOUS programmers. I don't know if 'famous' and 'world class' are synonymous.
Richard Stallman is famous for having married software and Marxism into a coherent theology. Bjarne Stroustroup is famous for inventing the Rube Goldberg contraption that is C++. Shawn Fanning is famous for having written in essence a very simple program that appealed to the kleptomaniac side of everyone.
Anyways I reject the whole 'world class programmer' label as meaningless. It could mean anything. It could mean prolific, or controversial, or rich, or well-respected, or clever, or experienced. The label only is conducive to hero-worship (by the hoi polloi) or self-gratifying egotistical elitism (by the so-called WPCs of the world). So who really cares? |
| Fri 21 Nov | no name | I think you just told us who really cares. |
| Sat 22 Nov | T. Norman | Famous != world class. I deliberately didn't include Shawn Fanning on the list; I don't consider what he built to be all that great technically. But Stallman is world class for the software he wrote, almost single-handedly, like gcc, gdb, emacs and much of the GNU collection, especially given that they were written some 15 years ago.
I consider 'world class' to mean 'built something that only a few hundred programmers in the world would be capable of at the time.' |
| Sat 22 Nov | Screw the RIAA | Hey man,
Shawn Fanning has l33t skillz, you gotta give him his props! |
| Sat 22 Nov | Mark Hoffman | 'Richard Stallman is famous for having married software and Marxism into a coherent theology.'
That should be a quote on the dust jacket of Stallman's book... |
| Sat 22 Nov | Marx | Anon wrote
>To me, a world class programmer is one that can produce an application that everyone on the planet wants to buy for $999.99. That's a world class programmer. <
Pardon my French, but that is poo. M$oft is a triumph of marketing, not OS or application design.
They sell there stuff for under $999.99 and it is widely-regarded in Windoze 9x, 2000, XP and Office as a 'must-have'. Office is quite good, where Windows is not; but suggesting that you can equate quality with ubiquity is like suggesting that Justin Timberlake is better than Bach 'cos more people like him. |
| Sun 23 Nov | . | You're right Marx. 600 million people have been completely deceived. Every single one of them, including big companies that perform extensive analysis of the market, have chosen the wrong software for their needs.
By the way, it's a bit of an insult for you to take the name Marx. The real Marx was actually a very smart guy. Read some of the stuff he wrote. It's a pity he was tarnished by the bolsheviks. If he was alive today, he would be insightful like Joel. |
| Sun 23 Nov | Screw the RIAA | >By the way, it's a bit of an insult for you to take the name
>Marx. The real Marx was actually a very smart guy.
Marx was also the last name of the Marx Brothers.
Personally, I think Groucho Marx was a very smart guy too. |
|
| Why are we doing this guys? | Thu 20 Nov | RP |
| I wake up, take a bath and go to work.
I look at Suns Java website, I open my IDE, I look at the problem at hand and start banging away at the keyboard.
A couple of weeks ago it was the same thing, but instead of an IDE I opened an SSH connection, vi and started to work on C++.
Why am I doing this?
I tried to be one of the groupies. I was always on top of the last buzzwords, I tried to know when to use a float and a double, I tried to know the TreeModel to work with JTree... and for what?
Im tired. Ive been in this game because I saw myself going somewhere and now I lost my faith. Im sorry, but I just dont believe in this anymore. |
| Thu 20 Nov | Mark Hoffman | My coffee maker broke too. Makes the whole day tough, 'eh? |
| Thu 20 Nov | not an artist | I wake up, take a bath and go to my studio.
I look at my pallette, grab my brush, I look at the canvas and start painting away.
A couple of weeks ago it was the same thing, but instead of a brush I grabbed some bristol board, a pen and started to draw.
Why am I doing this?
I tried to be one of the groupies. I was always on top of the latest techniques, I tried to know when to crosshatch and when to stipple ... and for what?
I'm tired. I've been in this game because I saw myself going somewhere and now I lost my faith. I'm sorry, but I just don't believe in this anymore. |
| Thu 20 Nov | Evgeny Gesin /Javadesk/ | These things happen. Walk to the sea and look at the sky. When you done that last time? |
| Thu 20 Nov | GenX'er | I wake up, take a bath and go to the recording studio.
I look at my music notes, grab my guitar, I look at the hot groupies and start playing away.
A couple of weeks ago it was the same thing, but instead of an blonde I grabbed brunette, a bass and started to play.
Why am I doing this?
I tried all of the groupies. I was always on top of the latest techniques, I tried to know when to play guitar and when to play bass ... and for what?
I'm tired. I've been in this game because I saw myself going somewhere and now I lost my faith. I'm sorry, but I just don't believe in this anymore. |
| Thu 20 Nov | Bob | Maybe the reason why most software development has become a commodity to be outsourced to the lowest bidder is because it's boring and menial?
That's how I feel about it, and I'm trying everything I can to come up with a new career that is unique, fun, and has a future.
I always enjoyed photography, maybe I'll start doing portraits and weddings. I'd still get to use a computer and play with high tech equipment, but I'd also get to interact with normal people that talk about things other than pointers.
Of course, I'd still get into useless arguments, but this time it would be about Bronica vs. Hasselblad rather than Java vs. .NET. |
| Thu 20 Nov | Slashbot | I wake up, take a bath and go to work.
I look at Joel's On Software forum, I grasp my dictionary, I look up the idioms Philo uses and start banging away at the keyboard.
A couple of weeks ago it was the same thing, but instead of posting to JOS I frequented Slashdot, flamed forth and back, and ranted and chanted like the purest zealot.
Why am I doing this?
I tried to be one of the flamers. I was always at the bottom of karma highscores, I tried to know when to insult and when to row back, I tried to know how to set up the bait most blatantly... and for what?
I'm tired. I've been in this game because I saw myself going somewhere and now I lost my faith. I'm sorry, but I just don't believe in this anymore. |
| Thu 20 Nov | Ishmael | Call me Ishmael. Some years ago -- never mind how long precisely -- haveing little or no money in my purse, and nothing particular to interest me on shore, I though I would sail about a little and and see the watery part of the world. It is a way I have of driving off the spleen, and regulating the circulation. Whenever I find myself growing grim about the mouth; whenever it is a damp, drizzly November in my soul; whenever I find myself involuntarily pausing before coffin warehouses, and bringing up the rear of ever funeral I meet; and especially whenever my hypos get such an upper hand of me, that it requires a strong moral principle to prevent me from deliberately stepping into the street, and methodically knocking people's hats off -- then I account it high time to get to sea as soon as I can. This is my substitute for pistol and ball. With a philosophical flourish Cato throws himself upon his sword; I quietly take to the ship. There is nothing surprising in this. If they but knew it, almost all men in their degree, some time or other, cherish very nearly the same feelings towards the ocean with me. |
| Thu 20 Nov | Dustin Alexander | not an artist,
I appreciate the metaphor.
I once had a convesation between myself (a poet at the time), a technical architect, and a painter. The conversation travelled in circles for a time before settling on a long and interesting dialogue in which I discovered something fundamental: we were speaking the same language. We had found common ground discussing things such as rhythm and flow, theme and structure. This language is common to one element of humanity and that is passion. I have found that all people with passion for what they do understand certain primitive concepts. To clariy and bring in the topic at hand, regardless of canvas, passion is the paint.
I wake up, take a bath and go to my bosses studio.
I begin to paint, but discover that all the colors that I had brought have been secreted away, replaced by the 'approved' shade of gray that my boss has supplied.
A couple of weeks ago it was the same thing, but instead of my paints, it was my brushes that needed to be replaced. They did not conform to the Rational Painting Standard.
Why am I doing this?
After 8 hours, I go home. I'm tired. I've been in this game because I saw myself going somewhere and now I lost my faith. I'm covered in gray paint and my fingers hurt from holding bad brushes.
I go to my studio. I look at the clock. The sun is setting, but it rises somewhere else. I have 10 hours, may 12 before I will pass out. I grab my brush, and the colors I want. And then I start to paint. |
| Thu 20 Nov | X. J. Scott | 'whenever I find myself involuntarily pausing before coffin warehouses, and bringing up the rear of ever funeral I meet'
You got that right Tapiwa/Ishmael!
I just don't understand why people don't realize Melville is the most hilarious and fun author of all time. |
| Thu 20 Nov | The Notorious Mickey B. | I wake up, take a bath and go to the recording studio.
I look at my rap lyrics, grab my crotch, I look at a group of hotties and start rappin' 'bout smokin' crack, givin' props to my dogs chillin' in da crib.
A couple of weeks ago it was the same thing, but instead of a stank ho, I grabbed a gangsta bitch, some Malt liquor and started to rap.
Why am I doing this?
I tried all of the groupies. I was always on top of the latest techniques, I tried to know when to be laid back and when to bust caps... and for what?
I'm tired. I've been in this game because I saw myself going somewhere and now I lost my faith. I'm sorry, but I just don't believe in this anymore. |
| Thu 20 Nov | Sven | hi bob:
http://www.photo.net/mjohnston/column32/ |
| Thu 20 Nov | Johnny Bravo | A Why-am-I-doing-this-poetry-slam. Cool. |
| Thu 20 Nov | Thomas | I believe there are (at least) two types of developers.
The first is one who wants to know what all the rules are, so he can work within them and produce something that functions according to those rules. He probably doesn't care too much about what tools or technology he uses, he just wants to get the job done (write the code) according to the requirements and specifications set forth. For him, the reward is producing something that meets these requirements. I will call this type an Engineer.
The second type of developer is a Craftsman. The craftsman's values are centered on creativity and quality. He wants to code something new, and he wants it to be high quality. He'll keep himself updated on new tools, technologies and techniques. He'll spend the extra 80% effort to get the remaining 20% quality. And he wants his solution to be an elegant, effective fit to the problem proposed. What doesn't interest him is conformance to a set of rules that may inhibit his ability to produce a creative, high-quality solution.
The Craftsman needs a flexible environment that will foster his creativity, not stifle it.
I think we have a lot of craftsmen on this board.
-Thomas |
| Thu 20 Nov | Observant | You guys have a bath? Cool. |
| Thu 20 Nov | eclectic_echidna | To get paid, so I can eat and buy the things I need (car) to get paid, so I can eat and buy the things I need to get paid, so I can eat and buy the things I need to get paid, so I can eat and buy the things I need to get paid, so I can eat and buy the things I need to get paid, so I can eat and buy the things I need to get paid, so I can eat and buy the things I need to get paid, so I can eat and buy the things I need to get paid, so I can eat and buy the things I need to get paid, so I can...
--
ee |
| Thu 20 Nov | pupos | with these re-wordings, are you guys trying to make the point that these feelings are universal and have nothing to do with the particulars of the tasks at hand, but rather the unavoidable futility and repetition of human existence? or are you just being goofy? i'm honestly not sure.
because i DO think software development, in these real world jobs we have, is more boring and pointless than being a painter, musician, or gangsta rapper. and i'm all of the above!! :) although i only get paid for software dev.
so, what are you guys saying? i'm thinking that not one of you is anything but a software developer, and perhaps you're suggesting that the grass is simply always greener on the other side. but personally i think the grass IS a lot greener when you get paid to produce paintings or music. (and it probably gets you higher :) |
| Thu 20 Nov | Devil's Advocate | The grass is always greener on the other side of the fence. |
| Thu 20 Nov | GP | Come on, pupos, when programmers commit suicides or become junkies at the same rate as professional singers or actors, we'll see. |
| Thu 20 Nov | Alyosha` | Did I miss a meme or something? |
| Thu 20 Nov | Almost Anonymous | I think it's, "bring a meme to work day"... I really must mark that on my calendar. |
| Thu 20 Nov | pdq | I wish
I could write
a haiku
in this space |
| Thu 20 Nov | Dustin Alexander | This post should be edited and preserved. Not often do you get a bunch of techs waxing eloquent on philosophical issues.
There is definitely an element in the human condition from which these types of concerns are drawn. Many people, regardless of expertise are fundamentally unhappy with their positions in life. Human beings don't seem to be made for repetitive sets of complex actions. It tends to be the simpler elements that make us happy.
A large part of the unhappiness associated with being an software engineer has to do with building for other people. An engineer's job is to build the often uninspiring dreams of others whilst his own languish in obscurity.
In the life as a consultant, every great dream he builds is for others; is tainted with his own. There are so many situations where something can be made better, improved, or reworked; so many instances where others came so close to ideal but miss the mark. And the engineer puts so much of himself into these projects, finding that instead of building their dream alone, he has engineered an amalgam so complex that he cannot differentiate his from theirs.
And it is this final state that hurts the most, that sends us into the darkest depths of depression. That our dreams, our ideas, would be owned by others for $40 an hour. This is a fraction of the price that we pay for those hours.
As for the comment that engineering itself is more prone to boredom than others, those who say such things should find another profession. I have been a poet, an writer, a businessman, a saleperson, a ...
Never have I felt more alive than when architecting a solution to a problem no one has solved. That computers are the medium for that solution, and math its natural language, that I was born in a time when that medium is readily available and simple to apply, is a blessing I am thankful for. Who can find boredom in changing the nature of the things around them? |
| Thu 20 Nov | Jack of All | 'that it requires a strong moral principle to prevent me from deliberately stepping into the street, and methodically knocking people's hats off'
That just cracks me up. A control freak wishing he could let go!
For some reason that reminds me of...
'Sometimes when I get up in the morning, I feel very peculiar. I feel like I've just got to bite a cat! I feel like if I don't bite a cat before sundown, I'll go crazy! But then I just take a deep breath and forget about it. That's what is known as real maturity.'
-- Snoopy |
| Thu 20 Nov | Bored Bystander | Dustin A. ---
Damn! Wish I had posted that.
>> A large part of the unhappiness associated with being an software engineer has to do with building for other people. An engineer's job is to build the often uninspiring dreams of others whilst his own languish in obscurity.
Ohhhhhh man. This is so true it hurts. I'm exactly in the dead center of this proposition right now.
Also, RP started the other thread 'Being pushed'. Which is the anthrax-flavored cherry on the 'sundae of despair' that is SW engineering for pay: you're often 'rewarded' by being screwed out of your position.
NOT SELF PITY. Just the truth... |
| Thu 20 Nov | Dustin Alexander | Ah, Bored, my brush with a degree in literature pays dividends in concept if not in grammar. :)
I am liberally appropriating your anthrax flavored cherry on the sundae of despair comment. If you see it elsewhere, it came from you and you can get in line to sue me behind SCO.
On RPs issue:
We live and breath the stuff of a profession the primary requirement of which is the automation of the work of others. Do we create knowledge workers or do we create the unemployed and unemployable, human beings that are a legacy of ancient ideals slowly being phased out of the system? Is it any wonder that when we build a bridge, it is used to destroy our jobs? Couldn't this be considered karmatic and just; a kismet that some would say we define for ourselves? Are we not just as replacable as the systems we automate?
Perhaps not in our own eyes, but see for a moment from the eyes of your employer.
Appreciation in the halls we walk is the most scarce of resources. Why? Because we are hired to build systems no one understands. When you pick up your telephone, you don't pause for a moment of reverence, considering the technician who designed the routing system. Most have no understanding of the complexities of the subject and hence no appreciation for the improbablilty of a working result. They just dial. The same is true of software. Aren't you just another cog in the metasystem, the system that gave birth to the system in place?
I see these as fundamental disconnects between reality and reality as perceived by the job market: That we are seen as components to be automated along with the systems we automate, and that the working system is considered with the fundamentals of your role safely buried in the black box it has become. How much simpler to fire you and replace you with a machined part from India than take the time to understand your importance. |
| Thu 20 Nov | Bored Bystander | >> I am liberally appropriating your anthrax flavored cherry on the sundae of despair comment. If you see it elsewhere, it came from you and you can get in line to sue me behind SCO.
And likewise with your post. Tell you what, let's just make this easy and agree to sue each other. :-)
Your prose is well considered.
When I was younger I took it for granted that automation of everything was the grand ideal that every good engineer worked toward. I looked down on the people who were displaced by my 'stuff'. And I held myself morally above anyone who wasn't 'in' the elite clubs to which I belonged.
I guess that's the flip side - it's karma coming up to bite me on the rear end for my college boy preppie snobbery.
I can't speak for everyone in this field who has lost their job, but part of me feels like I deserve some of what I've reaped. And my 'attitude' certainly was never the most toxic of those that I've witnessed. |
| Thu 20 Nov | Dustin Alexander | Here, here. We get far too little reality in these discussions sometimes. Something comes to mind about throwing stones from glass houses.
Not that I feel most of us should be unemployed. But perhaps the idea that we have a 'right' to be employed is a bit arrogant. From each according to his need, to each according to his ability. Cycles dictate slumps. We also do not do a great job of promoting ourselves, which doesn't help in our evaluation. |
| Fri 21 Nov | Dustin Alexander | RP, in answer to your despair: There is an answer, although perhaps not in this post or any of the posts above it.
It seems like you've been having a bad few weeks. You're working for a company that doesn't appreciate you, doing code that you probably don't appreciate. Any of us would ask the questions you are in the position you are in. Most of us have.
Here's a suggestion: Save up if you need to; take a break. If you're truly apathetic about what you are doing, you need to evaluate where you are going in life. You ask why you are doing this? Try to answer that question. For money? For stability? As a job? If the answer to these is yes, you need to get out. This profession will kill you with that mindset. It will suck the life right out of you.
So, take a break. Go on a vacation. Go to Venice. It'll be gone soon. It's sinking, you know. Get a decent hotel. Buy yourself some good food. Watch the sun rise. Think about the insignifigance of this tiny little planet and everyone on it. Why carry such a heavy burden? Put things in perspective.
Then, as you are floating down one of those canals, think about the sun you just watched. Think about the equation that determines our orbit around it, the function that defines its path through time and space. Look at the water below you. Within that water lies encrypted every footstep on every shore from the birth of man to the present.
Think about your future in that perspective. Try to find joy in these things as an engineer. If you cannot, become a painter. But if you can, then ask what you were born to be doing. What life were you born to live? Which of your footsteps will be encrypted for future generations to read? Or will you build the reader?
Whenever I am low, I remember these things and I try to dream of what my role in them is, however insignificant. What can I build that will play a part on this stage? In what role have I been cast on the playlist of creation's future?
When I think of these things, I find that the shackles of depression that hang about me are lifted. They were put there by adherence to a common meme, but an inconsequential one. You do not have to bow to the work ethics of a society as small as our own. Forge your own path. Build your own dreams. |
| Fri 21 Nov | realist | You're waxing lyrical about a simple supply/demand situation. |
| Fri 21 Nov | Chris Winters | Dustin: 'A large part of the unhappiness associated with being an software engineer has to do with building for other people. An engineer's job is to build the often uninspiring dreams of others whilst his own languish in obscurity.'
This is a large part of the hole that programming open source fills. At least for me, and I suspect for other folks as well. |
| Fri 21 Nov | Dustin Alexander | This is an issue I think a lot about. It has deeply affected me, my family, and my friends. It has led to decisions that have changed my life multiple times, and indecisions ranging from sequences of depression to problems with alcoholism and thoughts of suicide. I wax lyrical because this 'issue of supply and demand' is an issue of the life I live, why I live it, and what I will leave behind. To imply that what this is an 'issue of supply and demand' is to callously disregard one of the fundamental meanings of my life.
I may be over-verbal at times (this is an issue that has followed me throughout my life), but I refuse to apologize for trying to convey something that is important to me in a manner that suits my passion for the subject to someone who may find meaning in what I have to say. Obviously, you are not that person.
And in the future, when you lose your job or your will to go on, how much comfort will thoughts of supply and demand be to you while you sleep? |
| Fri 21 Nov | Dustin Alexander | At least I kept myself from quoting Shakespeare.
....
I didn't did I? |
| Fri 21 Nov | cerrone supernature | you know what your problem is? you are EXTREMELY exhausted.
My suggestion? Grab a six pack and a good girl on girl action and you will recuperate and will forget all these philosophical rants. |
| Fri 21 Nov | Chris Hanson | I'd probably feel just like the original poster if I had to use crap and write software to work with crap all day, every day.
That's why everything I do is on Mac OS X. It's a system I enjoy using and writing for. Do I get bored? Sure, there are some things that are tedious even with Cocoa development. But most of the time it's a lot of fun building something new with good tools on a good foundation, and when I get bored I just think of how much users are going to enjoy what I'm creating.
It's a similar to the feeling you get as a game developer. (I've worked on games too. Worked a few Mac ports of PC titles too.) |
| Fri 21 Nov | Sven | the great thing about being a software developer, is that most other software developers are complete idiots. thus, if you are moderately competant, you can work about 10 hours per week, and spend the rest of the week doing whatever the fuck you want (i like to play piano and have sex with girls), while your peers fret about treeviews and whether or not emacs is better than VI. |
| Fri 21 Nov | cerrone supernature | sven
I couldn't agree more.
Perhaps you should include mé·nage à trois in your busy schedule. |
| Fri 21 Nov | A cynic writes | It's well paid indoor work with no heavy lifting. |
| Fri 21 Nov | Mr Jack | Doing anything not for money is better than doing that same thing for money.
Programming is at heart interesting, creative and challenging. Doing it eight hours a day, five days a week, 46 weeks a year is not.
Still a whole load better than any alternative I can currently see though. |
| Fri 21 Nov | Bored Bystander | Sven, you're borderline depraved (just checked out the lifestyle thread) but you have a great point.... |
| Fri 21 Nov | Bella | I wake up, take a bath and put a nice dress.
I look at Hollywood Whores site, I read my messages, answer quotes and wait for my first client. I look at the dick at hand and start sucking away at the thing.
A couple of weeks ago it was the same thing, but instead of a dick I was in all fours, on an anal bondage with three guys.
Why am I doing this?
I tried to be one of the hookers. I was always on top of the biggest dicks, I tried to know when to use a thong and a dildo, I tried to know the kamasutra to make it out with three... and for what?
I'm tired. I've been in this game because I saw myself going somewhere and now I lost my faith. I'm sorry, but I just don't believe in this anymore. |
| Fri 21 Nov | cerrone supernature | Bella
I think you're the only one that should do your job no matter what. Society needs you girl! don't turn your back on the nation! be a patriot!!! |
| Sat 22 Nov | it_ranter | 'When I was younger I took it for granted that automation of everything was the grand ideal that every good engineer worked toward. I looked down on the people who were displaced by my 'stuff'. And I held myself morally above anyone who wasn't 'in' the elite clubs to which I belonged.'
Well, I don't know what the snobbery is in this belief.
Unproductive work is always far worse than no work. Always. Without fail. If something can be automated, cheaply, it should.
That is not an arrogant belief, or a strong desire to displace people from work. It is in fact quite the opposite. Work that is unproductive or wasteful has no meaning. People should never work just for the sake of doing work. Work is a means to an end; it's inherently a purposeful activity.
I would rather be cast out of this profession than spend the rest of my life doing work just for the sake of itself. I like to know that I contribute something of necessity, of value, not that I'm just a case for pity or indulgence, doing work because work is in itself good.
Certainly the transition from labor to automation is rough. That it's so, I think, is a fault of bad business decisions made by executives who live up high where the air is too thin. But that's still a short-term problem; ultimately, a task that can be automated will be nothing but a waste of time or an indulgence to do manually.
Think about it: if farming had not been automated, then we would have a lot of people employed doing work in the fields. But would the world as a whole be better for it, despite their displacement? |
| Sat 22 Nov | it_ranter | ^
As an addendum, the belief to which I'm referring is that 'everything should be automated.' We shouldn't look down on the displaced; but as I said, their fate is largely the result of bad business.
Arguably, so is ours, with the rampant and often ill-considered outsourcing. |
| Sat 22 Nov | Bored Bystander | it_ranter:
I'm currently on the horns of the dilemma of doing work for its own sake.
I am on a contract that has migrated into development for the sake of the client's misguided and generally illiterate 'wet dreams' about SW architecture.
I think only being completely idle would be a worse feeling than working on ill-conceived crap that is useless. I'm about to bail.
I think where our capitalist society has dropped the ball is in wholesale destruction of jobs with no thought given to what will take the place of those jobs.
What I stated earlier in the thread that you're quoting is just a twinge of recognition that I was once part of the 'capitalist tool' portion of the economy that was merrily destroying jobs, and have gradually gone instead to the other part of the economy looking for a purpose.
In the past the retrenchment from destruction of jobs has been organic, it's happened over relatively long periods of time and workers have had some advance warning that the offshoring trends were in place.
In contrast, the IT scene has gone from HTML and shallow script kiddies and web lightweights earning 6 figures in the late 90s to senior CS types with lengthy ('useful') track records having to spam their resumes across entire regions of the country in 2003. We've snapped from a grossly overinflated scene to depression in about 3 years. |
| Sat 22 Nov | it_ranter | Bored:
Well, I think the effect of this cycle and the past ten years will ultimately be positive on workers. More and more, we're rejecting the notion of 'loyalty' to companies. That is a good thing. Companies have never shown employees the slightest hint of loyalty, and more rarely even a businesslike attitude towards the development of labor, so why should employees feel that way?
People in the marketplace should, I think, find themselves searching within for the real value they can provide instead of just droning on day by day. If the market forces them to do so; then all the better.
If this depression makes us all less tolerant towards working towards the uninspiring--and often unprofitable--dreams of others, then that's for the better. Even if it's extremely unpleasant now.
I understand the negative feelings towards about the wild swings in employment. Again, it's really just bad business. The CxO crowd just doesn't understand technology.
There's that notion now that software can be replaced by 'packages,' which are hobbled together by so-called analysts; instead of paying developers to own the business logic of a particular organization. These analysts 'appreciate' technology, and their background is primarily schmoozing--you know, managing 'business' and working their way up the ladder.
But, you know...great software is like a Porsche. It's built from the ground up with care, and it works because you know it inside and out. Anything hobbled together from large-scale components is more like...well, a used car built from the ground up. That's just an inescapable fact. When I write code; I know what I write works, and I can fix the bugs. When we use large-scale libraries, there are no guarantees except bogus 'case studies' and expensive consulting to provide support for basic maintenance.
However the market has retrenched, no business will ever escape the basic facts of how software is created and maintained. They're trying their damndest now, but it'll never work. IT will remain a sinkhole of money as long as businesses believe they can fudge it, and maintain their air of false 'we understand business, who gives a damn about technology' superiority.
Eventually something has to give. IT is going to be too important to fudge, eventually. When McDonald's automates their customer service systems to serve the general public, will it be enough to have a hotline to India to figure out why SAP Burger Deluxe stopped taking orders for four hours? Probably not. :) |
| Sat 22 Nov | Stephen Jones | But isn't one of the reasons the scene is so dire precisely the fact that there was so much money spent in the boom.
And I suspect one of the reasons behind decisions to outsource is that Managers reckon that as IT projects come in overschedule and way over budget then they might as well ensure they're not going to be paying top-whack for all the hours they hadn't initially budgeted for. |
| Sat 22 Nov | no name | It's seems that automation was once a useful tool to advance everyones well being. The automation of farming freed up millions of farm workers to go work in the factories to produce goods that everyone needed. It freed up people to go to school so they could advance themselves.
This is where things started to get competitive. If factory X can produce Y widgets at a cost of Z but factory A can produce Y * 2 widgets at a cost of Z / 2 then obviously factory A will win in the war on price and it probably has produced that widget with just as good a quality as factory X.
So factory X says, well I'm gonna build a factory in Mexico using the same automation with the same number of workers as factory A, but I'll only have to pay them (Current Salary of Employee / 8) so I'll lower my costs more than factory A and I should regain my competitivie edge.
You now have all of factory X's workers being replaced by foreign labor, so all employees of factory X seek work elsewhere. The problem is automation is so rampant that factory X's workers can't find 'factory work', the work they know how to do, so some go to school, some commit suicide, some find jobs that can't be automated.
Greed. The one word that sums it all up. A local fraternal benefit organization with assets of over 15 billion dollars recently outsourced most of their programming work to India. This move displaced 25 - 30 of their IT staff and saved them 3 million a year. Was it necessary to outsource? No. They could have easily kept these people. What's 3 million dollars compared to their cash holdings of nearly 5 billion. That's like comparing a penny to a thousand dollar bill. You may say that 3 million per year over time is a lot of many and I would agree but 25 - 30 people holding down full time positions in a community and spending their money in the same and surrounding communities is far more productive for everyone than the measly 3 million dollars saved.
Many people believe the question to ask is, 'Until the cost of outsourcing work equals the cost of developing it on shore, Is the quality of the outsourced work greater than or equal to the quality of work of our own IT staff?'. This question doesn't even occur to management types. The question they ask is, 'How much money will we save?'. Now when they get together with managers from other companies they have something to say, 'We outsourced 12 million in development this year.' What's never mentioned by managers is the people affected. Greed.
Didn't anyone learn anything from The Lord of the Rings. |
| Sat 22 Nov | Stephen Jones | Inconsistent argumenting.
You don't outsource industries where's there's a load of automation. Don't need to. The 'manufacturing' industries that go abroad to take advantage of lower labour costs are those like garments and shoes that are highly labour-intensive. |
| Sat 22 Nov | Stephen Jones | Another thing to bear in mind is that the number of programmers needed is likely to decline as the industry matures. At some stage the programs are written, and we don't need to do it again.
An analogy is employment for civil engineers in Saudi Arabia. In the 70's there was a massive need for civil engineers for the infrastructure. The result was that KFUPM in Dhahran, the leading university in the Kngdom, turned out hundreds of civil engineering graduates. Fifteen years later most of the work was done, and the number of vacancies for Civil Engineers plummeted. In 1998 the number of graduates in Civil Engineering was four. |
| Sat 22 Nov | realist | Dustin - No criticism intended I think your thoughts and observations were very well put, and interesting.
Ultimately, I'm glad people 'wax lyrical' about anything!
Cheers |
| Sun 23 Nov | Dustin Alexander | :)
Sorry bout that. It is often easy to misread tone on these things. This happens with a special sort of ease when its early in the morning.
You are, of course, correct in your comment on supply and demand. What I was trying to say (and perhaps I said it) is that the mathematical macrocosm that defines the situation makes no difference on our perceptions of what occurs. Since this post began with an emotional statement, it is the realm of emotion and not realism that I attempted to address.
Thanks. |
| Sun 23 Nov | analyst | it_ranter, your comment about developers being replaced by 'analysts' probably comes from one of the recent stories (CNet maybe?). I saw that one too.
You should realise that writer's interpretation of events was naive. I think from memory he was also the one who said 'object oriented programming' had also made developers redundant.
The whole concept that developers are something different from analysts is about 15 years out of date. That invalidates the premise of the article. |
| Sun 23 Nov | analyst | Stephen Jones, no, I don't think the demise of the boom is the cause of the problems at all.
The people who were brought into the industry by the boom were the html coders, graphics artists and writers, and they have survived fine because web activity increased in corporates.
The problems are occurring for career programmers - the people who worked in companies writing software. The problems facing those people arose separately from the boom, and are mainly to do with the h1b boom and lately, the offshoring, which are related.
There is one way the boom contributed to those problems. It provided the impetus industry needed to get approval for lots more h1b's, even though they weren't really needed. Most of the boom was web stuff, not programming. |
| Sun 23 Nov | Bella | > Programming is at heart interesting, creative and challenging. Doing it eight hours a day, five days a week, 46 weeks a year is not.
I agree with this. Musicians, Athletes, artists all have creative and performance bursts and peaks, and PLENTY OF DOWNTIME. Corporate slaves, on the other hand, get 3 weeks off. What percentage of musicians can tour for a year straight? (Nevermind 30 years straight) What athlete plays 50 weeks a year? None. What artist creates 8 hours a day?
You are simply burnt out. everyone will tell you to take a break or a vacation.... Yes, can't hurt, but this is only a QUICK FIX. Also look at the LONG TERM PICTURE. (To avoid the cycle, and to make the situation better) Perhaps you should choose WHAT type of code you are writing. How your code will be used may affect how you feel about doing it day in day out. ie: re-ignite the passion, somehow.
BUT, like those other professions, find a more balanced workweek (40 hours). Find time to REGULARLY enjoy non work things (not just a 2 week vacation once a year). Or, find a new profession entirely. |
|
| C/C++ programming question | Thu 20 Nov | Russell Thackston |
| Ive been developing in Java for 5+ years now and somehow Ive found myself in an introductory C/C++ class (working on my Masters). Last week the professor began covering pointers (you should see the blank stares from about half the class), and he spent half the class time on iterating through arrays with pointers instead of subscripts. Good so far.
Assuming a is a pointer to an array, he explained this code:
for (int i = 0; i < 6; i++)
for (int j = 0; j < 6; j++)
{
cout << *a; // display value
a++; // move pointer
}
No problem... But then he spent twenty minutes explaining how it would be better to use this:
for (int i = 0; i < 6; i++)
for (int j = 0; j < 6; j++)
cout << *a++; // display value and move pointer
We then had a long discussion about how...
*a++ != *(a++) != (*a)++
Im pretty sure he lost two-thirds of the class.
My question is this: Would you consider it common practice to use *a++? Is this something so common to C\C++ programs that it should be taught in an intro class?
As for myself, I always code defensively. Im less likely to make mistakes if my code is broken into discrete, readable steps (see the first example). On the other hand, this is probably a gatekeeper course in which students must sink or swim.
BTW- I am not criticizing the technique. I am merely questioning its use in an intro-level class. |
| Thu 20 Nov | Len Holgate (www.lenholgate.com) | > But then he spent twenty minutes explaining how it would be better to use this:
What were his arguments for why it was 'better'? |
| Thu 20 Nov | Russell Thackston | You know, he never really gave any reasons!
Shorter code, I assume... Maybe *he* thinks it follows a standard. |
| Thu 20 Nov | Justin Johnson | Like most programmers of terse languages, C/C++ programmers sometimes get a little too in love with clever, concise idioms that work the way an expert would expect, forgetting that not everyone's an expert.
Stick to your defensive coding, and don't worry about the prof: he's just showing off. Just because you can write code a certain way doesn't mean it's a good idea.
Although the line about *a++ != *(a++) != (*a)++ is one you should bother to figure out and commit to memory, since it's a compact expression of scoping and precedence in operators. Understanding the example will go a long way towards learning C++. Walk through it a few times and you'll see what I mean. |
| Thu 20 Nov | Mister Fancypants | I think he's dead wrong.
There are plenty of things you 'can' do in C/C++ that you still shouldn't do simply because they make the code more confusing without any positive benefit other than showing that the programmer knows C/C++'s order of evaluation (and whoop-de-do for him).
Leave the single-line coding gymnastics to the Perl freaks... In C/C++, the compiler (assuming it isn't broken) is going to generate the same code for either of those cases, so there is no reason to not use the form that is more easily parsable by humans. |
| Thu 20 Nov | Dennis Forbes | Defensive coding is good, however sometimes it can be used as a form of mental-laziness - it saves investigating how the compiler and runtime operates, for instance. In this case C/C++ has a very clear order of operator precedence and associativity that dictate exactly how such behaviours will operate. Adding parenthesis overrides the order of precedence, which is why your examples are functionally different.
I remember one co-worker who insisted upon making it a 'standard' that all smart-pointers were assigned nil at the end of each function to 'avoid memory leaks'...yet in doing so they were intentionally deciding to treat smart pointers as 'magical' rather than understand how they work and why the nil assignment was just a wasted operation. |
| Thu 20 Nov | no name | Agreed with Justin above, that C/C++ programmers have a culture of 'economy of expression'.
In addition, I would say it's appropriate to teach this stuff so you're not lost when you get exposed to it later on.
Look at the source for strcpy for example:
void strcpy (char *s, char *t)
{
while (*s++ = *t++)
;
}
It's just a common practice in the language, even if it's not the most readable.
Speaking of obfuscation, they have contests for it... |
| Thu 20 Nov | no name | I don't know whether it's better, but it's certainly an idiom.
Any c/c++ programmer that's been doing it for a while instantly recognizes it & knows what it means. |
| Thu 20 Nov | Michael Kohne | You also might want to take into account what the compiler is going to do with it. On most of today's processors, with today's optimizers, I suspect you'll get no difference, but in a non-optimized case, the *a++ might compile down into one instruction easier than *a; a++; would.
Even if you don't use this idiom, if you plan to program in C/C++, you BETTER know what it means. Otherwise you're toast.
Oh yea, and if you are doing C++ you also ought to know when to prefer ++i instead of i++. |
| Thu 20 Nov | runtime | I write my code so that only one logical operation happens per line of code. I am a bear of little mind, so I want my code to proceed one simple step at a time (within reason). If some code is too clever, refactor it into a new function and give it a descriptive function name.
Brian Kernighan once said:
'Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.' |
| Thu 20 Nov | Mister Fancypants |
the *a++ might compile down into one instruction easier than *a; a++; would.
It won't compile down to one instruction in either case, with any compiler, on any CPU.
Perhaps the convoluted case obscures this fact, thus yet another reason why it shouldn't be used. |
| Thu 20 Nov | Mister Fancypants | Doh, I forgot, no HTML here. The stuff between </i> is a quote. |
| Thu 20 Nov | Dennis Atkins | The other posters beat me to the word idiom.
You'll see *x++ a *lot* in C and C++ code. You need to know what it means. Don't use it if you don't want but there is no doubt that you will see code that uses it.
Likewise,
x = x+1;
and
x++;
do pretty much the same thing.
In the old days, compilers would certainly use an increment operator to do this and sometimes such code resulted in better performance. Modern compilers on the other hand will theoretically optimize it all and such shortcuts are not necessary.
Me, I use *x++ and y++ and ?: all the time when its appropriate. |
| Thu 20 Nov | Roose | I used to be against this sort of, but once you get used to it, it's second nature. Just write like 5 loops a day with this style, and you'll get it. The trick is to know the idiom well enough that you will not write off-by-one bugs and you can spot off-by-one bugs from a mile away.
As others mentioned, if you're doing any significant C programming, you'll have to know it just to read other people's code. |
| Thu 20 Nov | Dennis Atkins | Oh and it's not better, so the instructor was wrong there. But it's definitely appropriate for an intro class. |
| Thu 20 Nov | Dennis Atkins | Regarding pointers, I always set pointers to nil when deallocating them, just as I always assert that pointers are non-nil when there is no conseivable way that they could be nil. The purpose of this is so that when that contract is broken by some other coder or occasionally myself, I am alerted to the problem right where it happens rather than wonder why there is a memory leak or where exactly the rare slammer is coming from. |
| Thu 20 Nov | Dennis Atkins | 'It won't compile down to one instruction in either case, with any compiler, on any CPU.'
Mister Fancypants,
Your astonishing level of ignorance regarding processors and compilers is showing. |
| Thu 20 Nov | Brad Wilson | '*a++ != *(a++) != (*a)++'
I'm amazed that I got all the way through this message, and am the first one to realize that the first half of this statement is wrong.
*a++ is equivalent to *(a++). |
| Thu 20 Nov | Almost Anonymous | '*a++ is equivalent to *(a++). '
Oh and this is why I hate C++...
The deference operator and ++ have the same precedence so I assume that in the first case a is deferenced and result is incremented. In the second case, a is incremented and the result is deferenced. Thus they are different.
However, correct me if I'm wrong! |
| Thu 20 Nov | Dennis Atkins | Brad,
Actually the value dereferenced differs. |
| Thu 20 Nov | Dennis Atkins | To the OP,
A good rule in C is 'When in doubt, parenthesize.'
C's precedence rules are not entirely rational and even Dennis Ritchie now says that he got it wrong. Thus, intuition is not your guide. Parenthesize whenever possible, possibly excepting the *x++ idiom, where parens would be used to call attention to something being done messed up.
Instead of *(x++), one should definitely use *++x which does == *(x++). |
| Thu 20 Nov | Groby | '*a++ != *(a++) != (*a)++'
'*a++ is the same as *(a++)'
Uh, beg to differ.
Let's assume a points to memory location 100, the basic type is one memory cell wide, and the contents of location 100 on are {1,3,...}.
*a++: Dereference, increment pointer. a is 101, result is 1
*(a++): Increment pointer, dereference. a is 101, result is 3
(*a)++: Dereference, increment result. a is 100, result is 2.
Understanding the difference is elemental to understanding C/C++. If you don't get it, those are not your languages. Seriously.
I'm amazed that it's a problem for people who actually /do/ try to stay educated (viz. reading JoS). Makes me curious about hard-to-get idioms in Java, Ruby, Python, etc. that seem totally obvious to the experienced practitioner. |
| Thu 20 Nov | Brent | heh. strcpy.
compare the 'production' version from say, NetBSD (or FreeBSD or OpenBSD or GNU) to the job-interview-favorite from K&R mentioned above sometime.
http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/lib/libc/string/strcpy.c?rev=1.11&content-type=text/
It's generally pretty instructive to check out the BSD versions of every example in K&R that's an oversimplified version of a Unix utility or C library function. I've been working through K&R2 like finger exercises lately, making it more interesting by being severe about checking for every error that a library function can return. Not that I think that's necessarily how One Should Code, it's just so that I remember in the future that I've made a design decision every time I choose to ignore a return value.
And to the original poster, yes, incrementing pointers in assignments is a pretty common C and C++ idiom. |
| Thu 20 Nov | Brent | whoops, this link should work:
http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/lib/libc/string/strcpy.c |
| Thu 20 Nov | Dennis Forbes | 'I'm amazed that I got all the way through this message, and am the first one to realize that the first half of this statement is wrong.'
No, you're just the first one to mention it. :-) I haven't had much time with C++ over the past year, so I wasn't confident in my own observation, though a follow-up test in C++ proved it.
int *deref, val1[2], val2;
val1[0]=90210;
val1[1]=55274;
deref= &val1[0];
val2 = *deref++;
printf('*deref++ = %d\n\r',val2);
deref= &val1[0];
val2 = *(deref++);
printf('*(deref++) = %d\n\r',val2);
Yields
*deref++ = 90210
*(deref++) = 90210
(Which just goes to prove that sticking parenthesis defensively isn't always doing what you might expect if you don't know what to expect from the compiler) |
| Thu 20 Nov | Byron | Groby, you almost got it right.
*a++ and *(a++) are the same thing.
In both of them, first the postfix increment operator takes place, returning the value of 'a' BEFORE any such increment, to be used in the derefence. So, assuming we have:
int z[] = {5,6,7};
int *a=z,*b=z;
int foo;
foo = *a++; /* foo is now 5, but *a is 6 after this statement */
foo = *(b++); /* foo is still 5, and now *b is 6 */
Remember, the ++ operator returns the value of the variable before the increment takes place (although it may increment the variable at any point (doesn't matter in this case)).
So, we have *a++ is the same as *(a++) and *++a is the same as *(++a). This makes sense given the table of precedence given in K&R2 on page 53. The ++ operator has a higher precedence than the unary * does.
So, of course, (*a)++ is different from *a++. :) |
| Thu 20 Nov | i like i | Next time you are interviewed by Joel and he asks for a function to reverse a string, whip out:
void strrev(char *start) {
char *end = start + strlen(start) - 1;
while(end > start)
*start++ ^= *end ^= *start ^= *end--;
} |
| Thu 20 Nov | Dennis Atkins | Ah shoot. Looks like I need to go back to school. I am such an idiot.
Good catch Brad. |
| Thu 20 Nov | Dennis Atkins | I can't believe there are fundamental things about C that I am wrong about after programming in it for 20 years. I really need to switch over to Python exclusively. Or maybe I should start a shrimp farm... |
| Thu 20 Nov | Dennis Atkins | Ah, my dear dear i like i, that is a beautiful solution there. |
| Thu 20 Nov | Nick | Pointer arithmetic is used in place of array references to speedup the code. It can result in faster running programs depending upon the compiler, the machine, and sometimes the procedure in which it's used.
The other added benefit is that if you write your loop without an incremented variable [e.g., a while (*a++) instead of a for (i = 0; ...) loop] is that a register does not need to be used for the incremented variable. Freeing up a register can also speedup the code if another variable can now use that register instead of being stored on the stack or the L1 cache.
So it only really makes a difference when you are trying to optimize the code.
Lastly, think of it not in terms of where computers and computing are now. Think of it in the historical context of memory and processor speed was more limited and tighter, faster code was essential. |
| Thu 20 Nov | as | And let's not forget the 'production' version of 'Hello, world' from the GNU folks:
ftp://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz |
| Thu 20 Nov | son of parnas | As a long time c/c++ programmer i never
combine dereferencing and pointer math.
Everytime i look at such code i go huh and have to
remember how everything works. |
| Thu 20 Nov | i like i | well it wasn't the fastest, but adding three statements just to have a temp in the swap takes up far to much time typing!
Short code isn't always fastest.
I always use *ptr++: stops them sacking me |
| Thu 20 Nov | Nice | wait to you start overloading those operators.. |
| Thu 20 Nov | Almost Anonymous | I was wrong -- I had a sneaking suspicion I was wrong. I basically did what any newbie C/C++ programmer would do and googled for operator precedence.
I do a lot of C++ coding but I generally stay from the prefix/postfix operators combined with pointers (or in the middle of complex expressions). It's just too damn confusing -- I like code to tell me in no uncertain terms what it means. |
| Thu 20 Nov | Brent | as:
The GNU 'Hello, world' is pretty entertaining, and I know I learned a couple things from it when I first stumbled across it. It's really a pretty good example of how to put together a source package according to the GNU standards, which are also worth reading.
On the other hand, the mail reader is a little over the top.
son of parnas:
Yeah, I'm not a big fan of the idiom either, but it's pretty standard, and mastering it puts you in probably the 90th percentile or so of working programmers. |
| Thu 20 Nov | Vince | 'Leave the single-line coding gymnastics to the Perl freaks'
I think that wins the award for 'JoS quote of the week!'.
--vince |
| Thu 20 Nov | Brent | Oh, and Nick:
I'm under the opposite impression but I haven't run any tests. The story usually goes that if you're doing anything more complicated than running straight-through a null-terminated string, using array notation gives the compiler a better chance to look for optimizations. Again, I haven't run any tests nor have I looked at the internals of any modern compilers, so the story I'm repeating here could be dead wrong, or maybe hasn't been true for ten years or something.
I do personally prefer to use array notation whenever it makes sense for clarity's sake. Premature optimization is the root of all evil, after all. |
| Thu 20 Nov | Dustin Alexander | As a 'perl freak' I'm inclined to agree. Leave those single line code elements to us. Nothing makes us happier than writing an entire decompiler from a bash command line with perl -e. Unless, of course, we can somehow gate it into the processor manually with switches.
;-) |
| Thu 20 Nov | Julian | In my years as a C coder, I never used (a == b++) notation, and I usually used array notion instead of incrementing pointers when iterating. It just made the code a lot easier to read and write. And that stuff was never the bottleneck when I profiled the code.
In general pointers are very useful; a C class should focus on the situations where pointers are the best way to do things.
On the other hand, my looping code has lots of break and continue statements, which seem to confuse other coders. Every programmer has some idioms they prefer and some that they aren't comfortable with. |
| Thu 20 Nov | Groby | Thanks Byron!
Lessons learned:
a) *Never* post code I haven't tested. The probability of it being wrong is close to 1.
b) I should get the heck out of C/C++. (I wish I could. I really do) |
| Thu 20 Nov | Christopher Wells | > Would you consider it common practice to use '*a++'?
No, it's only used in school.
Textbooks say you can implement strcpy using something like 'while (*a++ = *b++);' ... whereas a real-world library implementation of strcpy may be written in assembler, copy 32 bits aligned at a time (for run-time efficiency over readability).
For readability, I prefer your method, like '*a; ++a;'
Re operator precedence, if you or anyone you know might ever get it wrong, use the parentheses ... parentheses are cheap.
Incidentally, when I increment I use like 'for (int i = 0; i != 6; ++i)' instead of like 'for (int i = 0; i < 6; i++)'.
> Is this something so common to C\C++ programs that it should be taught in an intro class?
It is taught in intro classes, and therefore you need to know it, because other programmers will be doing that and you need to be able to read what they've done. |
| Fri 21 Nov | Nick | Brent,
I have run tests - just last week in fact. I had two functions that handle very large arrays to optimize. In one function, switching to pointers improved performance by 1.5X. In the other, it reduced performance by 3X. So, there's no hard and pat rule. It's just one option to try when you're getting down to brass tacks.
Usually, however, I ...
-- Don't use tricky pointer arithmetic constructs because 2 months later they confuse me just as much as the next guy who reads my code.
-- Avoid mixing left and right associate precedence operators in a single line.
-- Use parentheses instead of memorizing precedence rules. |
| Fri 21 Nov | Dustin Alexander | Try some regular expressions. Fun:
/^(\w+)*\s*(\w+)\s+((?:'.+'|\S)*)\s*(.*)\s+([X0-9*]+)\s*$/
I apparently wrote this a few months ago. Do I know what it does? Sure, because I wrote a comment on top of it that said something along the lines of: This ugly mother does ... Otherwise, would have had to run through it by hand.
Moral of the story: Write it like that if you never need to touch it again. Otherwise, break it into pieces. |
| Fri 21 Nov | Mister Fancypants | Using pointer arithmetic when arrays will suffice is counterproductive in this day and age, not only for the people who will read the source, but for actual runtime efficiency.
Please read up on aliasing and how it relates to modern compiler optimization. |
| Sat 22 Nov | Alex | Actually *p++ is better coding than *p; p++ because, while you're using the pointer, you are already thinking, okay, next I'll need to increment this thing.... oh, how convenient, I can say it right here, and not *remember* to say it later. |
| Sat 22 Nov | Christopher Wells | If you use "while(*a++ = *b++);" as a strcpy, then you end up doing one more increment than is necessary. |
| Sun 23 Nov | Dennis Atkins | Ack!
Please you guys, look into assembly.
Many processors support register indirect addressing with postincrement, and many support registor indirect addressign with predecrementing. This is why we see *x++ and *--y. So 'while (*a++ = *b++);' takes an awful lot fewer instructions I think a lot of you are surmising.
On the 86 architecture, there's even a -single- instruction that will do the entire strcpy! |
| Sun 23 Nov | Christopher Wells | > Many processors support register indirect addressing with postincrement
Really? If you're thinking of the x86 'lodsb', I've never seen a compiler emit one of those.
> On the 86 architecture, there's even a -single- instruction that will do the entire strcpy!
Which one? 'rep movsb' is two, and needs you to initialize [e]cx.
In answer to the OP's question, I commonly see preincrement (e.g. ++i) and rarely or never see post-increment nor decrement.
Also, using the MSVC compiler, 'cout << *a; a++;' emits the same number of opcodes as 'cout << *a++;' (so there's no objective reason to say that the latter is better ... it's just a matter of coding style). |
|
| The Irony of Outsourcing | Thu 20 Nov | Just me (Sir to you) |
| http://www.ventureblog.com/articles/indiv/2003/000208.html
Good piece on outsourcing by Kevin Laws:
Economically, trade is no different than other technologies. Economist David Friedman of Santa Clara University puts it most succinctly: there are two ways to make a car -- you can either make it in Detroit or grow it in Iowa. You already know how to make it in Detroit. You get a bunch of iron ore, smelt it into steel, and have an assembly line of robots and workers shape it into a finished vehicle.
To grow it in Iowa, you plant car seeds in the ground (also known as wheat), wait until they sprout, and harvest them. Take the harvest and put it into a big boat marked to Japan and let it sail off. A few months later a brand new car comes back.
As far as the economy is concerned, it has exactly the same effect on workers and consumers if we use a boat marked to Japan or a fantastic new technology invented in Silicon Valley called the wheat-to-car-converter. Either way, if it takes you less effort to grow wheat into a car than it does to make it in Detroit, then you should grow wheat. Either way, jobs in Detroit would be lost, and either way people get cheaper cars. Trade is just another technology. |
| Thu 20 Nov | no name | I'm sure there's a dangling pointer in there somewhere... |
| Thu 20 Nov | Rob VH | Does the author mean to say 'technology is like any other trade'? The other way 'round doesn't make any sense.
The ultimate question on outsourcing is whether it is truly more efficient to develop software in India or Country XYZ than it is to develop software in the US. If that answer turns out to be yes, then the loss of software jobs in the US is inevitable; in the absence of protectionist intervention by the government. |
| Thu 20 Nov | anon |
Actually, the analogy is not totally correct.
Toyota, and Japanese car makers in general, succeed because they do things BETTER than other car makers (this is lean manufacturing, but that's a different topic).
But why do you think that Toyota builds car plants in North America? Sure, pressure from the U.S. government might be part of that, but it's not decisive.
It's because Toyota can't remain lean while shipping product across oceans. It's a lot harder to do JIT when the stuff you need is in a ship's hold for weeks at a time.
There is a similar, though much weaker, argument against outsourcing. It's a lot harder to be agile in software development when part or all of your team is 12 time zones and 10,000 miles away. |
| Thu 20 Nov | hoser | Good article. |
| Thu 20 Nov | anon | The Iowa analogy is misguided. While on the surface it appears reasonable, even logical, it fails the long term test.
If you take a long term look at the process, then everyone who produces a product from scratch will be able to buy products that are manufactured. As 'no one' works in manufacturing, this is a boon for the farmers, miners, and doctors of the world. However, not everyone can be a farmer, miner or doctor.
There is neither the space (land) nor the need. Once all processes are automated beyond the need for humans then the cost is pure materials, and support. However ALL processes, including farming, mining, and medicine are also being automated. What do we do now that everyone cannot be a farmer, miner, or doctor either? It will be more cost effective to have people do dangerous jobs than machines. People will be cheaper and easier to replace than machines.
Unfortunately, I do not see the 'Star Trek' like future where we are all free to pursue our personal goals. Instead, it will look more like the Time Machine with the Eloi and the Morlochs. But which is which? |
| Thu 20 Nov | Just me (Sir to you) | 'However ALL processes, including farming, mining, and medicine are also being automated. What do we do now ...'
We breed like crazy, murder, rape, pilage and burn. Sounds familiar?
'Welcome to newshour ...'
The only question is: Will we do it here, or in 'the Matrix'? |
| Thu 20 Nov | Frederic Faure | And how does the author of the article explain why Japan decided to go for heavy industry after WW2, when it held no chance against the US, instead of sticking to fabric and cheap gadgets?
Could it be higher added-value, and balance of power on the world scene? |
| Thu 20 Nov | Ged Byrne | Economically, the observation is correct.
If you consider just the flow of capital and products, there is no difference.
However, the whole economic abstraction is leaky. Very leaky. In addition to capital and products, there is also the movement of knowledge.
Econmic development is not a static process, it is being constantly improved.
How is this process improved? By obvserving what is happening, and working out how to do it better (better can be measured many ways. Lets just say that the change increases your ability to compete in the market.)
How do you observe the process when it is taking place on the other side of the work, while you are sleeping.
Meanwhile, over in another timezone, the outsourcing company is busy coding to the specs they receive.
The outsourcing company, and its employees are busy learning.
What do they learn?
- How widgets are made.
- That their foreign paymasters, who had seemed to inconceveibly clever at making widgets, weren't so bright at all. They could have made widgets so much better.
While this is happening its all change over at Widgets Inc. A whole new generation of staff who don't know a thing about widgets takes over the company.
Now Widgets Inc no longer know how to make Widgets. They only know how to send instructions over to the other side of the world.
Some employers at Outsourcing Co go and set up there own shop.
Newcomers Ltd make better Widgets for less money, and require lower profit margins.
They export the Widgets and go into direct competition against Widgets Inc.
Since Newcomers Ltd have been making this stuff for years, and understand every stage of the process they are agile in the market. There early product is laughed at, but they quickly adapt to the demands of the new market and finally dominate.
The people at Widgets Inc look at their gant charts and talk about opening new revenue streams. They know about money, but not Widgets.
They fire what little staff they have left, then sell the company as a growing concern as a reseller for Newcomers Ltd. |
| Thu 20 Nov | Just me (Sir to you) | 'But why do you think that Toyota builds car plants in North America? Sure, pressure from the U.S. government might be part of that, but it's not decisive. '
Can't say much about the USA, but the only reason there will be some car plants left in Western Europe for the next 5-10 years is massive government subsidies that have to cancel out the economics of moving.
'It's because Toyota can't remain lean while shipping product across oceans. It's a lot harder to do JIT when the stuff you need is in a ship's hold for weeks at a time. '
By that reasoning all US market Toyota plants should be found in Mexico? |
| Thu 20 Nov | anon |
Nice post, Ged.
I would just point out that while it might be implied that Newcomer Ltd is a foreign company created from outsourcing, it doesn't necessarily have to be the case. If you're an agile company, anywhere, you'd have an advantage over a less agile company regardless of whether they're outsourcing or not. |
| Thu 20 Nov | Stephen Jones | Just Me. The relative cost of labour is low for a car plant, and even lower for a steel plant.
The problem I suspect in Japan could be more price of land, though I think the American and European decisions are political and pre-emptive.
Ged, what you say is true, but firstly any company 'outsourcing' its core business would probably be setting NewcomersLtd as a subsidiary.
And if it was outsourcing services, then it doesn't care about losing non-core competencies. |
| Thu 20 Nov | A cynic writes | All this discussion seems to leave out a few real world factors - currency exchange rates being a biggie.
About 10 years ago a friend of mine went to work in Japan for 18 months. Part way through the yen rose dramatically (about 50% against the pound) - suddenly making Japanese goods expensive and cutting his wages at a stroke.
If you ship a significant element of your wealth making capacity overseas your currency will devalue and your exports become cheaper.
Currency markets, interest rates and international trade forms one big messy feedback system. Overall subcontracting work overseas can make sense - it's just no consulation when it's your job that's exported. |
| Thu 20 Nov | Just me (Sir to you) | Stephen,
don't forget the more stringent environmental regulations. You are right that it is much more than just the wage differences. |
| Thu 20 Nov | Ged Byrne | Your right, the situation I'm describing is about managment losing touch with what the company actually does.
Outsourcing is just one possible cause. |
| Thu 20 Nov | bpd | 'But why do you think that Toyota builds car plants in North America?'
Tariffs. |
| Thu 20 Nov | Dennis Atkins | You guys talking about tariffs and shipping costs are without a clue. It's cost effective to ship watermelons in refrigerated cargo planes from New Zealand to the US and sell them at 7 cents a pound.
The reason Japan outsources its manufacturing to the US and other areas is for one reason only -- the labor costs in the US are substantially less than in Japan. Not just salary, but it's a heck of a lot easier to lay off American staff than Japanese. And the Japanese workers tend to want stuff like benefits and so forth. |
| Thu 20 Nov | Dennis Atkins | anon,
Ged's point was that the outsource workers have a huge advantage because they are not just fully trained in the widget domain, but they have become the world's leading experts in their manufacturer and the parent company has no domain knowledge at all beyond golfing and gutting the pension plan.
A agile startup has an advantage, but no where near that of the outsourcerees. This may be different in manufacturing but the widget outsourceree is also doing the design work as well... |
| Thu 20 Nov | bpd | Dennis responds: 'You guys talking about tariffs and shipping costs are without a clue.'
Clueless? Perhaps so. The questioner asked, perhaps rhetorically, why I thought Toyota builds car plants in N.A. and I gave my thought/opinion on the matter. Frankly, it's rather rude of you to be critical - even if my opinion has no basis in fact. I'm sure you can offer your own opinion without being critical of others'.
I don't suppose you've spoken to Toyota's upper-management to get the 'cluefull' reason. But even if you had, the criticism was unnecessary and adds nothing to the exchange.
'It's cost effective to ship watermelons in refrigerated cargo planes from New Zealand to the US and sell them at 7 cents a pound.'
Perhaps the tariffs on watermelon significantly differ from those on automobiles. |
| Thu 20 Nov | Dennis Atkins | bpd,
Sorry - in these parts, 'without a clue' just means uninformed on the particular issue, meant to call attention to speculating. It's not a slam. A slam is something like 'dumbass' or 'idiot' or such and I am not using any of those. 'Without a clue' is rather innocuous. Sorry for the confusion. |
| Thu 20 Nov | Dennis Atkins | Also, to respond more directly, Japan and the US have a zero for zero agreement on passenger cars since around 1972 I think -- neither country taxes the import of the other country's products in this area. There is however a 25% tariff on imported Japanese trucks, which does support the US truckmaking industry and explains why japanese trucks are rather rare to see. There was talk of a 100% tariff on a small class of japanese extreme-luxury cars, but that never went through.
I think I have heard but am not sure that US and NZ have a bilateral zero-tariff trade agreement on many agricultural products, which is a complementary deal that benefits both countries tremendously since the trade is similar in products and quantities but simply 180 degrees out of phase with regards to the seasons. |
| Thu 20 Nov | Dennis Atkins | Should also mention that Europe has a 10% tariff on imported japanese passenger cars and china has a 100% tariff, yet japan does not manufacture cars in either of those countries. The reasons are that in europe, labor costs and lay-off laws are comparably restrictive to those in japan and so there is not enough of an advantage. In china, the labor costs are lower but the problem is corruption and quality control. |
| Thu 20 Nov | Jim Rankin | 'Frankly, it's rather rude of you to be critical - even if my opinion has no basis in fact.'
In other words, 'The fact of my not having a clue does not give you the right to say I am clueless.'
Personally, I would say that those who don't like being flamed should avoid Internet discussion groups. |
| Thu 20 Nov | bpd | 'In other words, 'The fact of my not having a clue does not give you the right to say I am clueless.''
Rights are a whole other issue. I was talking about politeness.
'Personally, I would say that those who don't like being flamed should avoid Internet discussion groups.'
Based on your stated opinion, you either like being flamed or normally avoid Internet discussion groups. Which is it?
How about: Those that wish to flame (i.e., be critical or insulting) should avoid Internet discussion groups. Wouldn't that make for better discussion groups? |
| Thu 20 Nov | uncronopio | Leaving aside the flaming issue, the original post is about economic efficiency. If it is cheaper to develop a similar quality product (or service) offshore, there is where the jobs will go. Not doing it is equivalent to artificially keeping prices up for consumers.
Of course the real question is 'can we get similar quality for a lower price?' In some cases we will be able to get it and in other we won't. I don't know what is the percentage for each case, but eventually offshoring will be a majority. Programming and programmers are becoming a commodity, and only those with very distinctive skills (or very specific niche) will stay afloat. |
| Thu 20 Nov | Frederic Faure | To follow up on uncronopio's post... there remains to determine what 'economic efficiency' means. Currently, economic theory is brain-dead (smoking, then dying from lung cancer both increase the GNP) because, for intellectual convenience, it leaves out all information that cannot be modelized.
As for offshoring code... that reminds me of a book on MS, which explained that, originally, MS had development teams scattered accross the US, but at some point, decided to move everyone back to Redmond and build the big campus they now have, simply because the lack of face-to-face interaction resulted in higher costs. In other words, the _real_ cost had to include lost productivity and lower quality due to misunderstandings, etc.
If Adam Smith and his beautiful theory of private self-interest were true (ie. humans only care about $)... members of the first world would have stopped having kids decades ago, since they're a cost, while it makes a lot of sense in the short term to keep having a lot of kids in the third world, where kids are put to work at 5, and take of their parents when they're old. Likewise, why bother entertaining a wife/gf when you can just have your sexual needs outsourced by a prostitute? :-) |
| Thu 20 Nov | uncronopio | The funny thing is that programmers have been churning out code for quite a while, and their work had the effect of massive staff reductions in other sectors of the economy. Programmers did not say anything about these effects because they were not the ones being layed off. Now that things don't look that great for programmers you worry... |
| Thu 20 Nov | M | uncronopio - That is a decent point. I remember my first large IT program I finished; we were told that they could now get rid of five people from the support staff. This was disturbing to me, but I didn’t worry so much at the time because it was the booming .com era.
Efficiency is a national pastime. |
| Thu 20 Nov | Walter Rumsby | Dennis,
On the NZ-US trade thing that's not the way it is. Australia and US are approaching a free trade deal, and the US makes special concessions to Australia (e.g. tarriffs do not apply to Australian steel imports but they do apply to most other importers). I'm not 100% sure if such a free trade deal would include agricultural goods (or more acurately I'm not sure of how agricultural trade would be handled under such a deal).
Australia has aligned itself pretty closely to the Bush doctrine relative to other foreign powers and I have the impression that John Howard (Australian PM) would do anything to get a free trade deal with the US. My reading is that he sincerely believes that would be the best possible thing for Australia (even if it makes Australia a greater target for terrorism for instance; annoys neighbouring states, e.g. Indonesia, Malaysia; etc).
Conversely New Zealand historically (at least under left-wing governments in the mid-80s and currently) has made a point of emphasising its own foreign policy agenda (e.g. no nuclear [war]ship visits since 1984; disagreement over the recent Iraq war) and is also saddled with the fact that it has a small population (just went over 4 million this year, while Australia just went over 20 million this month).
There is talk that a free-trade deal between NZ and the US might follow a deal with Australia, but the benefits to the US aren't as significant as those from a deal with Australia - NZ's consumer base is too small, 70% of NZ's exports are agricultural [not sure of the measurement criteria, but that's what I heard recently] and farm subsidies in the US are substantial (i.e. Indian farmers cannot compete with US and European agricultural products imported to/dumped on [pick one] India because US and Europe subsidise so heavily) which would still make untarriffed NZ goods expensive to US consumers despite $NZ 1 being about $US 0.50 [currently around $0.60] and NZ possibly/probably being a cheaper place to produce goods (and for Larry Ellison to sail his yachts and to make movies and Brad and Jen to honeymoon, etc).
If we look at tarriffs/subsidies the question is do the subsidies benefit the US or hurt the US? Although goods may be cheaper, consumers are basically paying what they save through their taxes. If uneconomic farms are being propped up then the consumer is actually paying more than they need to via taxation. Conversely removing subsidies will lead to job losses, business closures, etc.
The situation is that agricultural producers who want to get access to the US market want the subsidies to stop and (most) agricultural producers in the US don't want the subsidies to stop. This issue is a significant one for US senators with a large enough percentage of farmers as potential voters, i.e. even if GWB wanted to remove subsidies the majority of senators would probably vote against such a move.
NZ abandoned farm subsidies in the mid-80s partly under the impression that most other nations would follow suit (and partly because it couldn't afford to keep paying them). Right now we are a long way from international agricultural free trade. Despite the hardship to the local farming community at the time, my impression is that the consensus opinion is that removing the subsidies was ultimately a good thing. Sort of the situation Ged was outlining - survival of the fittest.
Maybe the solution is to stop farm US subsidies so Indian farmers aren't forced to get jobs for Winpro. :)
PS. I suspect Australia may be a better source of watermelons than NZ - I don't think NZ has the climate.
PPS. I heard that Joel briefly studied at Auckland University (NZ) or something like that. Is this true, Joel? |
| Thu 20 Nov | Jeremy | Frederic, actually if you look at numbers, birth rates are falling in the US and (especially) Western Europe.
http://news.bbc.co.uk/1/hi/health/2895109.stm |
| Thu 20 Nov | Frederic Faure | I know that the birth rate is falling (although not in Sweden and France, probably due to better accomodations and gov't subsidies, making it possible for women to manage kids and work), but the trend is there.
At any rate, I took this example to show that classic theories from the usual suspects (Smith, Ricardo, Malthus) start with a modelization of society that is so simplified as to be plain wrong (my example on having kids), or were only true at some point in history (Malthus, who didn't take into account a little notion called 'productivity'... making his theory on overpopulation rather pointless.)
It's amazing that otherwise rational people prefer to stick to theories that they realize to be wrong by experience rather than go without some form of 'explanation'. Just like little kids :-) |
| Thu 20 Nov | X. J. Scott | I'm in the US, have a farm and do not recieve any money from the government, nor do any other farmers I know in my area. Yet I'm sure there are some out there.
As it is, most family farms are barely getting by, or are consistently losing money. The big factory farms are doing better since their cost of production is lower, due to the use of pesticides and GMO.
I'd much rather see the government end corporate welfare instead. |
| Thu 20 Nov | Walter Rumsby | Try growing sugar cane - I saw a documentary about the subsidies US sugar cane growers get. Pretty high.
Salon had an article about US farm subsidies that I recall being pretty informative:
http://www.salon.com/tech/feature/2002/05/01/farmers/index.html |
| Fri 21 Nov | From the office of ... | Walter, your discussion of free trade deals is a bit naive, to say the least. So is your inclusion of defence alignment, and I note you neglect to define the relevance of that.
New Zealand's gung-ho economic reforms under the conservative Muldoon government are generally considered to have been disastrous for the bulk of the population. That's why New Zealand kicked the Muldoon government out so convincingly.
Similar reforms by the conservative Kennett government in Victoria, Australia were equally disastrous for the bulk of the population, which is why he again was kicked out by such a thumping margin he went into depression.
(Programmers, think you've got depression! Try politics.)
Many groups in Australia are extremely concerned about the pending US trade deal, and that even includes farmers. Your glowing description of John Howard suggests you're gullible. Many groups in Australia consider the trade deal will largely benefit corporate managements and no-one else. |
| Fri 21 Nov | From the office of ... | Agriculture subsidies in the US generally benefit large agribusiness companies, not family farmers. It's the old story. |
| Fri 21 Nov | Sven | In general agriculture subsidies might beneift huge agribusiness, but where i grew up (minnesota) agriculture subsidies certainly benefitted a number of lazy-ass family sugar-beet farms, one of the STUPIDEST subsidies in the world. If only I could have beat the shit out of every lazy sugar beet farming motherfucker who voted against a school bond , because it would raise the property tax on his stupid fucking useless farm , i maybe could have fucking taken calculus in high school. instead we got to cut the band program so that these idiots could buy their illiterate children a new snowmobile. FUCK YOU. |
| Fri 21 Nov | Stephen Jones | The real problem with US and EU subsidies isn't just that they prevent Indian and other third world producers from exporting to the market but that they actually prevent them from producing for their own home markets because US subsidized food can be imported cheaply.
And the US government candidly admits that food aid is used to help US agribusiness, and also as a backdoor for the introduction of GM crops. |
| Fri 21 Nov | Just me (Sir to you) | Frederic,
I still see the world population exploding at an alarming rate ( http://www.prb.org/Content/NavigationMenu/PRB/Educators/Human_Population/Population_Growth/Population_Growth.htm ). You seem to believe that since it is not in your backyard, it is not your problem. Guess what: technology made it so you're not going to keep them out by putting up a simple fence. |
| Fri 21 Nov | Frederic Faure | >>I still see the world population exploding at an alarming rate
... which confirms what I was saying, ie. it does make a lot of sense to have a lot of kids when you're living in a dirt poor nation (5 year olds to the factory, kids taking care of their parents when they're old)... but don't make _any_ sense financially in the first world.
In other words, no, human beings are not motivated just by money alone. If they did, we wouldn't have kids and wouldn't bother with marriage :-)
>>You seem to believe that since it is not in your backyard, it is not your problem
Er.. Quote me, please :-) |
| Sun 23 Nov | Walter Rumsby | From the office of ...
I think you've got me all wrong. I don't really think very much of John Howard's policies - in part they motivated me to leave the country. I didn't say that Australian's in general want the free trade deal, rather that John Howard in particular does. Despite some reservations about his politics I do believe that John Howard (and most politicians) have some desire to improve things - Howard seems to believe that above all else a free trade deal is the thing that's needed, never mind that neighbouring countries have huge populations and could provide even greater economic benefit. If you're not a JH fan and want a laugh - http://johnhoward.blogspot.com/
Re: the relevance of defence groups. If you listen to what the US ambassadors to NZ and Australia say about the position of both countries' Labour/Labor parties it seems quite clear to me that at the very least vague threats are made about trade deals and defence policy. US diplomats in NZ seem to be suggesting that NZ should be a little more like Australia. And right-wing political parties in NZ also make the claim that NZ's foreign policy is putting a free-trade deal with the US at risk (I subscribe to the idea that there isn't as much beneifit to the US of a free-trade deal with NZ - something the NZ finance minster said in an interview with the Economist a few months ago).
Do you remember the bombing of the Rainbow Warrior? French government agents sunk a Greenpeace ship in Auckland harbour. Supposedly US (and other) nations knew of the French plan, but didn't tell the NZ government because they were being punished for their anti-nuclear stance. Foreign policy shapes other policies... why do you think there are export restrictions to Iran, Syria and North Korea? Why does Australia get concessions on its steel imports? How many foreign leaders have got to stay at GWB's ranch (John Howard has, but not many others have).
Also, you've got your facts wrong re: Muldoon. Muldoon was the right-wing leader of NZ from the mid-70s through to the mid-80s. Although his alignment was right-wing he was basically a socialist. His greatest legacy is probably destroying the superannuation scheme put in place by an earlier Labour government that resembles the scheme instituted in Australia in 1992 (and the absence of which seems to be a major concern of the finance spokesmen of the major NZ political parties). From 1984 NZ under both left and right-wing governments has embarked on a series of economic reforms to reduce the state's role. Some of the legislation has been rolled back by the current Labour government (e.g. reacquiring rail and electricity infrastructure) where it seemed that a competitive market would be less efficient and less beneficial to consumers.
Essentially 'dry' economics has been the political orthodoxy in New Zealand for 20 years - the major point of difference between the significant political parties is the 'wetness' of their social policies. Unions, for instance, are significantly more powerful in Australia, even under Kennett and Howard than they have been in New Zealand since (at least) the mid 80s. I personally regard much of economic policy in Australia under John Howard as to the left of the NZ Labour party - GST has been poorly implemented in Australia because of vagaries about its applicability to certain goods. |
|
| web development rates | Fri 21 Nov | Roose |
| Just doing a little survey here... what would you charge a small business for doing say a week of web site work? I am not familiar with this area. How are rates typically structured?
Suppose it was a business like a local restaurant or a jewelry shop... |
| Fri 21 Nov | matt | You can quote an hourly rate or a per-job rate. If the work is poorly defined, go with hourly. |
| Fri 21 Nov | Dustin Alexander | Well, that depends on how your are doing your graphics art. Traditional information architecture and graphics are are two fields, and you need to be aware of the separation when you are doing your pricing.
I've worked contracts involving both these and the rates I found valuable enough to be profitable tend to price the smaller markets out immediately. I recommend starting at a base of $25/hr for graphics design (provided you have an artist with either a degree or significant experience in the field), $30/hr for content and site design. These are good starting prices, provided you want to develop professional looking sites.
If you have little experience or lots of time on your hands, you may want to consider lowering your rates. Don't make the dreadful mistake of undercharging, as it will leave both you and your clients far more unhappy than having no site at all.
I typically used the litmus test of telling a client that the site will cost them over $1000. The clients that don't immediately flee for the door are worth keeping around.
My suggestion, work out the exact nature of the site, break it down into elements and time spent, and bill per hour. Be realistic and charge realistic prices. Clients that cannot afford to pay you what you need to make to survive profitably are not worth having. |
| Fri 21 Nov | no name | Small business owners are used to haggling and you have to be careful.
Dropping the price for a crate of fish from $55 to $52 and guaranteeing delivery by 7 am is no big deal, but that's no way to do web work.
I guess it gets back to fish being well defined, but 'web site' not being so. |
| Sat 22 Nov | Marx | Dustin wrote
That's dead right, poor clients cost development companies money, if you are serious about suceeding you have to be brave enough to turn down business. |
|
| Joel Mentioned on Slashdot | Fri 21 Nov | Friday the 21st |
| Joel wrote the foreword to this book? Slashdot reviewer loved it.
http://books.slashdot.org/books/03/11/19/1333258.shtml |
| Fri 21 Nov | Mitch & Murray (from downtown) | Just wait until the Slashdot crew finds out that Joel has the audacity to actually charge money for his software ... |
| Fri 21 Nov | Dustin Alexander | Actually, Rick posts here occasionally, mostly to discuss ideas related to his book or future books.
As for the book, we've had several long discussions on it here which centered around: Don't buy it if you're looking for hard numbers, but if you're into anecdotal evidence, you'll love it.
Not to restart THAT flamewar.
As for me, I strongly recommend it to those who found The Mythical Man Month & Peopleware valuable and entertaining. It moves in a similar textual fashion. |
| Fri 21 Nov | Crimson | I read a particularly good comment on MS's supposed business genius. I'm not saying MS isn't run by a number of brilliant people. I'm just saying they often get way more credit than they deserve, and this always gets lost in the background when yet another book is released about why company A is buried in the trash heap of history while company B (for now) thrives.
This slashdot reply makes this point eloquoently:
----------------------------------------------------
'Microsoft's past is littered with failures: Microsoft Bob, early versions of Windows, early versions of PocketPC, all versions of Smartphone so far, the original MSN 'Blackbird', LAN Manager, UltimateTV, Windows At Work, Windows DNA, and huge internal projects like Pyramid and Cairo that never even saw the light of day --- these are just some of the examples.
None of these mistakes were fatal simply because Microsoft could always fall back on the revenues of their OS monopoly, and later Office monopoly.
It gets my goat when people point to companies like Netscape and say 'they deserved to be crushed by Microsoft, because they made mistakes'. Everybody makes mistakes. The difference is that the monopolist gets a lot more lives.
Ditto for Intel. What other company could have survived the IA64 debacle? Yet Intel has, on the back of its x86 near-monopoly. '
-----------------------------------------------
Smart people running a (ruthless)monopoly on a resource as ubiquitous as PC is key.
http://books.slashdot.org/comments.pl?sid=86379&cid=7531436 |
| Fri 21 Nov | Dustin Alexander | Agreed. And Ricks book does to some degree come off in a fashion that exults Microsoft. But, to his credit, he doesn't worship them and does mention their failures. He is careful to mention their near brushes with doom and how they dealt with it. His fundamental point is that they have survived by not making a fatal 'stupid mistake' yet, but that they will always be at risk of doing so.
After all, for all the things we can say about Microsoft, they do a good job of courting their developers, expanding their educational community, and providing platform support to vendors. These are a few of the issues that killed the likes of Ashton Tate and Micropro. |
| Sat 22 Nov | | Intel didn't want the x86 monopoly.
When they first launched the 8086 processor, they didn't expect it to catch on like it did. But as more and more people started using it, eventually, they couldn't change the architecture without breaking compatibility with the software already written for it. That's why we have it today. |
| Sat 22 Nov | Saturday the 22nd | 'Everybody makes mistakes. The difference is that the monopolist gets a lot more lives.'
Get real. I read Stupidity. MS competition for OS's for the PC was IBM. Windows vs. OS/2. Claiming that MS beat IBM because of its 'monopoly' is ridiculous. IBM could have yanked that monopoly away in a minute. Besides, OS/2 was supposed to replace DOS in 1987. As Chapman says, IBM was monumentally dumb.
And as loyal WordPerfect user, yeah, I have to say Chapman nailed it again. WordPerfect for Windows 1.0 sucked. |
| Sat 22 Nov | Saturday the 22nd | 'Don't buy it if you're looking for hard numbers, but if you're into anecdotal evidence, you'll love it.'
Not sure how marketing disasters and hard numbers mix. As Chapman says, IBM charged too much for OS/2, it couldn't print (I bought one of the first copies and it didn't support my LJ), Warp was a stupid name, you couldn't buy apps for it, etc etc. Not sure that's 'anecdotal.' Just seems to be the facts. Not sure how you stick that in a spreadsheet. |
| Sat 22 Nov | tapiwa | But OS/2 ran some windows apps better than windows.
I think that was the primary reason for its demise. Developers wrote for Windows, knowing the software would run on OS/2.
If the Linux crowds want to kill windows, they should have tools that write for linux, and then have some free and painless way of having those run on windows. The way they are going now with wine will eventually kill them as it did OS/2.
Get developers used to developing for your platform, even if it runs on other platforms. Get users (read IT buyers/managers) thinking ... this *app I can't live without* (read Office) runs platform OS/2, but is natively built for Windows. At some point, the question becomes why bother with OS/2. |
| Sat 22 Nov | Saturday the 22nd | 'But OS/2 ran some windows apps better than windows.
I think that was the primary reason for its demise. Developers wrote for Windows, knowing the software would run on OS/2.'
Chapman says that was a mistake. But I never had apps run better in OS/2. The subsystem was a disaster. A Windows crash usually brought down OS/2 as well.
OS/2 'crashproof?' Not. |
| Sat 22 Nov | Mike | 'If the Linux crowds want to kill windows, they should have tools that write for linux'
They really need the equivalent of a vb rad sort of environment. And oh, yeah, it should be free. |
| Sat 22 Nov | . | One of the reasons Windows beat OS/2 is that IBM was still thinking big corporates, and used to snub their nose at the little developers who, in the end, turned out to be the innovation factories that created the useful applications.
IBM used to treat little developers as if they should be grateful IBM would even speak to them, whereas Microsoft had come from that same background, and respected and understood those developers. |
|
| Sabbaticals | Fri 21 Nov | Andrew Hurst |
| A while back I was talking to a friend of mine (he runs his own consulting business), and he mentioned the only thing hed done in the past 6 months was make a small boat for sailing around a nearby lake. I asked him about his job, he said he was on a sabbatical. Now Ive heard about this for university professors, but never for Software Engineers. His justification was that you get burnt out after a while, if you dont just take a break completely. Id have to say I agree, though I think he is in a rare situation that he can do that.
How many of you get to take sabbaticals from your job, or know businesses that support it? The closest thing I can think of around my company is saving up 3 months of vacation and using it all at once. |
| Fri 21 Nov | tapiwa | A lot of investment banks and management consultancies not only support it, but strongly recommend it.
This is especially so when one is moving up in the ranks of the company. |
| Fri 21 Nov | Cowboy Coder | Intel employees get a sabbatical every 7 years. |
| Fri 21 Nov | Sven | Well if you run your own consulting business, you can take vacations whenever you want. I took 6 weeks to go to africa, and 3 months to visit my parents back at the ranch where I did very little except drink lemonade and play golf.
I always take 10 days off at christmas. Next week I'm taking 7 days off (I'll be connected via wireless and phone, so it isn't a total holiday, but close enough)
Many consultants do the opposite, they never take vacations ever, because vacations are a double whammy to the pocket book; you lose money because you have to pay for the vacation, and you lose money because you are not working. However, for me the only purpose of work is to be able to afford vacations, so I don't follow that approach.
As far as corporate sabbaticals go, the multinational I'm doing a bit of contract work for does seem to have a year long sabattical policy for employees that have been around for a while. If you work for a huge well established company, and have been around for 5 years, and they like you, even if they don't have a sabattical policy, if you want to take a year off, you have a good chance of being re-hired if that is what you want to do.
the big problem with sabatticals, is rarely after taking one, do I want to go back to work! |
| Fri 21 Nov | GenX'er | In the company I work for all employees get a sabbatical every 7 years......
Nice benefit....
I only have 6 years to go :-) |
| Fri 21 Nov | Aussie Chick | Do you guys get Long Service Leave?
ie when you have worked for the same company for 10yrs+ you get a fully paid 3 month holiday.
As far as I know if you quit at 9 years and 9months you see nadda of it. |
| Fri 21 Nov | Zahid | My company is right in the middle, in that they offer a sabbatical after five years of service, but it's nowhere near a year long -- it's a month. I've been around for just under four years. That's the good news.
The bad news is that I've heard (albeit not from a reliable source!) that our parent company will axe the sabbatical policy some day. I hope they wait a couple of years :) |
| Fri 21 Nov | Prakash S | I took a 100 day sabbatical this year (summer), one of the best things I ever did. I highly recommend it. |
| Fri 21 Nov | Jim Buck | I took a sabbitical last year to live in Warsaw, Poland for a year. :) And, yeah, at the time, I had my own company. I have a "real" job now, but I think having a position or your own company where you can take a sabbitical is totally the way to go. |
| Fri 21 Nov | ChrisO | Being an aussie, I am probably thinking the same as Aussie Chick here when I say shouldn't you have a government requirement for this sort of thing - yes long service leave is compulsory and gives a you a 3 month holiday (that you can take in parts or in whole) after 10 years of service. - sure 3 months isn't a whole year and 10 years is a long time, but to tell you the truth I get bored by the last week if I take a whole month off work at christmas time, so I couldn't handle a whole year off.
And also this comment 'My company is right in the middle, in that they offer a sabbatical after five years of service, but it's nowhere near a year long -- it's a month. ' - in Australia you get a month of paid holiday every 12 months. How much do you get in the states? Also is a 'sabbatical' paid or unpaid? |
| Fri 21 Nov | Chris Tavares | Typical paid vacation time for 'short timers' (less than 5 years with the company) is 2 weeks. Plus about another week of paid holidays scattered around the calendar.
Yeah, it sucks. |
| Fri 21 Nov | Chris Tavares | Umm, I meant to put 'Typical paid vacation IN THE US...'
Sorry about that. |
| Fri 21 Nov | Roger Townsend | Here, we get 6 weeks paid vacation time per year. In addition to this, there is a 1 year paid sabbatical every seven years. I used the last two to do research that was of interest to me and each sabbatical resulted in a couple of papers, though I'm not required to do anything. Some researchers just go on extended hiking tours in Asia, or build hot air balloons, or whatever. I'll probably do something like that at during my next one in 2008.
Regular employees just get the 6 weeks. Only the people who do research and development get sabbaticals. Of note is that executive-level people don't get sabbaticals. I'm sure the powers that be would like to change this so that researchers don't get any time off and executives get sabbaticals, but until they can pull it off they'll have to be satisfied wih merely making 34 times more than the top paid researcher here does. |
| Sat 22 Nov | uncronopio | I get 4 weeks paid vacation per year, and three months long service leave (you could call it a sabbatical) after 10 years in the job (I have 9 years, 4 months to go). In Australia, by the way. |
| Sat 22 Nov | Brad Wilson | I took a sabbatical for 5 months of 2001. It was called "being laid off". I don't recommend doing it that way, though. :-p |
| Sat 22 Nov | Scot Doyle | Ya, its really sad that there is so much pressure to find a job after being laid off, as if your value as an employee is somehow inversely correlated to the amount of time it takes to find a new one. Assuming that there is some savings to live off of, this seems like a natural time to take a break.
Which brings up the question... do all of you folks talking about mandatory sabbaticals continue to receive full salary? |
| Sat 22 Nov | Marx | Andrew wrote
>His justification was that you get burnt out after a while, if you don't just take a break completely<
I'm feeling that way a little as I get older. I used to love programming/development with a passion, I still enjoy it but wonder if a sabattical would restore the joy. I can't see it happening as I work for a small company but agree that company bosses should look at this and allow - even unpaid - free time. |
|
| Do you know of a free data-analysis tool? | Fri 21 Nov | Sathyaish Chakravarthy |
| Anyone knows of a free data-analysis tool that aids market researchers enter and analyse data collected from surveys etc.?
Ive searched Google and have also used Excel. Anything else? |
| Fri 21 Nov | tapiwa | Freshmeat is your friend
http://freshmeat.net/search/?q=data+analysis§ion=projects
So is sourcefoge. Use google to search this one though... their search sucks.
data analysis site:sourceforge.net
Looks like there are quite a few tools that might suit your requirements. |
| Fri 21 Nov | tapiwa | 'When we believe that we are analysing data we are really only trying out our stock of existing ideas to see which one might fit. It is true that if our stock of ideas is rich then our analysis will be adequate.
But the analysis of data will not by itself produce new ideas. This is a rather important point, because the whole basis of science and progress is based on the belief that the analysis of data will produce all the ideas we need in order to move forward. In fact, the creator of new ideas must do a lot of `idea work' in his or her mind and then check our these ideas against the data. Just analysing the data is not enough. '
-- Edward de Bono |
| Fri 21 Nov | Dominic Fitzpatrick | 'This is a rather important point, because the whole basis of science and progress is based on the belief that the analysis of data will produce all the ideas we need in order to move forward'
All respect to Mr de Bono but this looks like a very weak straw man. |
| Fri 21 Nov | no name | Indeed it leaves out things like theoretical physics, doesn't it? "We have observed that X happens. We don't really know why, because current data doesn't allow for that (e.g. whatever causes it cannot be measured by todays instruments)." |
| Fri 21 Nov | tapiwa | I'm with Edward on this one.
The problem with these theoretical sciences, and sciences by observation is that they can lead to false conclusions
Look at the data below.
1 is a prime number
3 ditto
31 ditto
331 ditto
3331 ditto
33331 ditto
333331 ditto
3333331 ditto
33333331 ditto
333333331 is *NOT* a prime number
There are many similar cases where there are exceptions to apprant observations.
Read a book called 'Does God play dice?' for more on 'science' by observation.
http://www.amazon.com/exec/obidos/tg/detail/-/0631232516/002-9287697-9666423?v=glance |
| Fri 21 Nov | Dominic Fitzpatrick | I don't dispute that observation produces errors and false claims.
However, I have never come across the suggestion in science that ideas are generated by data analysis or even observation since reading about Francis Bacon.
In the prime number example, there is the idea that 'all numbers of the pattern 3...1 (err, can't embed TeX can I?) are prime. This is easily disproven, as you did. If someone comes to the conclusion that all numbers in that pattern are prime, they would be incompetent, not guilty of allowing data to produce ideas.
I am not even sure what it would mean to just analyse data without any preconcieved ideas on what you are looking for. |
| Fri 21 Nov | uncronopio | If you are thinking of statistical data analysis, R is a free version of (or inspired by) Splus. You can enter the data in Excel and analyse it using R (which is available for many operating systems). Have a look at http://www.r-project.org
There is also this page ( http://members.aol.com/johnp71/javasta2.html ), which has hundreds of links to free statistical software.
Concerning data analysis, it does not necessarily create new ideas, but it helps you to challenge concepts and reviewing your hypothesis. This is quite important in the process of modifying or creating ideas. O course, you can be taking a shower and have great ideas without any piece of data to support them ;-) |
| Sat 22 Nov | Stephen Jones | There is simply so much data to analyze that a scientist normally first makes the hypothesis and then looks at the data to see if it fits.
Indeed certain intellectual climates lend themselves to certain discoveries. Darwinism was based on Ricardo and Adam Smith, and Marx wished to dedicate 'Das Kapital' to Darwin but Darwin declined. |
| Sat 22 Nov | Fredrik Svensson | At CERN in Geneva, Switzerland they develop ROOT.
http://root.cern.ch/
'The ROOT system provides a set of OO frameworks with all the functionality needed to handle and analyse large amounts of data in a very efficient way. Having the data defined as a set of objects, specialised storage methods are used to get direct access to the separate attributes of the selected objects, without having to touch the bulk of the data. Included are histograming methods in 1, 2 and 3 dimensions, curve fitting, function evaluation, minimisation, graphics and visualization classes to allow the easy setup of an analysis system that can query and process the data interactively or in batch mode.' |
| Sat 22 Nov | Li-fan Chen | Back before Crystal acquired Seagate Software Seagate had a tool call Seagate analysis, there was a free version they passed out for a while, but no longer. |
| Sat 22 Nov | Li-fan Chen | MS Office or Open Office both have analytics capable spreadsheet applications. Open is free, but Office is standard on most office desktops. You'll be able to do some pretty nice analysis on these tools. Either one can connect to remote data sources. On another note, SQL Server's data warehousing comes free with the RDBMS. |
|
| Visual Studio Evaluation | Thu 20 Nov | Tom Vu |
| I searched google and microsofts site and am wondering if there is a free download for visual studio. I am trying to compile a *.dsw *.dsp project.
If there is not a free download. Is there a way to convert a dsw to borlands C++ builderX personal edition. |
| Thu 20 Nov | Robert Jacobson | Microsoft has a free 60-day evaluation of Visual Studio that it distributes on CDs or DVDs. They also have a version that you can try online. Both available here.
http://msdn.microsoft.com/vstudio/productinfo/trial/default.aspx |
| Fri 21 Nov | Koos | You could try Dev-C++ http://www.bloodshed.net/dev/devcpp.html
It has an option to import MSVC projects. |
| Sat 22 Nov | Insert half smiley here. | The format of DSP and DSW is fairly obvious. They're just text files; look inside them and see what's what. (The command line switches, you should be able to find somewhere on the online MSDN; like as not, /I and /D are the only ones you'll really need.)
It should be a simple matter to convert them into whatever sort of project file Borland C++ builder uses.
(Unless of course it uses a binary format. That would be very bad, and (were I you) grounds for dumping it! Still, I'm sure it will be able to import at least one type of textual project file, so you should be OK.) |
| Sat 22 Nov | Marx | Tom. I dunno if this will be usefule, nor if it still exists, but MS used to give away a version of VB that would compile to ActiveX - it was called the 'VB Control Creation' edition or similar. |
|
| MS Exchange Server : Sending at a defined time how | Thu 20 Nov | Snacky |
|
Were using MS Exchange Server at the office.
We have around 150 e-mail accounts set up.
Some of our users are sending enourmous attachement (~100 Mega) and sometimes to 50 different addresses.
During the day this is chewing up all our bandwith.
What we would like to know if its possible in Exchange
to define that sort of rule :
- Send e-mails with an attachment bigger than 8 Még only after 20h00 ? (so they dont chew up the bandwith during the day as this has an impact on our FTP transmission module and our client server applications)
Or maybe an add-on ?
Any suggestions ?
Obviously talking to our users is like talking to a wall, they wont bloody listen! ;-)
Any inputs would be appreaciated!
Cheers,
Snacky |
| Thu 20 Nov | Matt Latourette | What's your network infrastructure like? I don't see there being a bandwidth problem with sending 100 MB emails to 50 recipients on a 100 Mbit switched network with a gigabit backplane. I could see it maybe slowing down your Exchange server, but it shouldn't be a problem on a modern network except in situations when it has to go over a low bandwidth channel such as a T1, DSL, or u-wave link to a remote site. |
| Thu 20 Nov | Snacky | Well we are convinced that there are flaws in our Network.
We're soon hiring company to do a full audit of our infrastructure but in the meantime we want to be able to send BIG e-mails after 20h00.
Is there (Ideally cheap) a Way ? |
| Thu 20 Nov | Dan G | Sorry, but I must say it - Email is not a file transfer protocol.
Really.
Set up a network share or an FTP server.
Sending 100mb attachments to 50 people is ludicrous and will stress any mail server, Exchange probably being one of the worse ones for it |
| Thu 20 Nov | dmooney | Exchange probably has a way to set a max size on attachments. Maybe you could use the exchange admin SDK to change that max size on a daily schedule. |
| Thu 20 Nov | mb | you can also set a quota for the user-- 50Mb, and blam, they can't send or receive anything 'til they clean things up. note that's 50Mb total, not per-item. also it might rely on them using the sent items folder (the default).
of course if the user sending 50 Mb files is your boss, you may have to take a different approach.
there might also be some sort of Outlook Policy you can set. |
| Fri 21 Nov | Matt Latourette | 'you can also set a quota for the user-- 50Mb, and blam, they can't send or receive anything 'til they clean things up.'
What a brilliant idea! Let's waste the users' time and get them to hate the IT department by placing quotas on their mailboxes. Then the IT staff can waste their time too on help desk calls whenever someone is trying to send an important email and it won't go through because their mailbox or the recipient's mailbox is full. This also presents a splendid opportunity to really piss off the customers when their emails to tech support or salespeople bounce. I'd have to think pretty hard to come up with a lower yield use of an employee's time than the task of cleaning their mailbox. |
| Fri 21 Nov | Claus Christensen | Exchange does provide this feature. Just open the properties of your smtp connector and go to the "delivery options" tab. There you can configure a special transmit schedule for long messages (lets you define what's considered "long" as well). |
| Fri 21 Nov | M | Matt L. - Are you telling me the form I had to fill out and get two levels of manager approval to up my exchange mailbox from 50 to 60 mb was a waste of my time? You know disc space isn't cheap these days, unless you consider nickels and dimes loose change. :) |
| Fri 21 Nov | Stephen Jones | I had to do the same to get the mailbox we use to store job applicants letters and which is accessed by three or more people exempted from the 60MB rule. The main folder has 16,000 messages (none with attachments as I strip them out and save elsewhere) on it and thus takes up most of the space.
The problem isn't the quota though; it's the hurdles you have to go through to get exempted. |
| Fri 21 Nov | Just me (Sir to you) | 'Sending 100mb attachments to 50 people is ludicrous and will stress any mail server, Exchange probably being one of the worse ones for it'
Hey, if this guys system is delivering those messages, it is as least superior to ours (Solaris/qmail). My mail admin would barehandedly strangle anyone within 5 mins. after he discovered an attempt to pull 6,25 GB through his system. |
| Fri 21 Nov | Just me (Sir to you) | Yeah, teah. Make that 6.67 GB for the nitpickers. (Hey, I'm on my first coffee here). |
| Fri 21 Nov | mb | i only suggested the quota for two reasons:
1. until then, no one had suggested an exchange setting. (someone did shortly after)
2. these users clearly have no idea what disk space means, so a quota might be a sensible approach to preventing them from having hundreds of 50 Mb files. Though the particular quota size might be in doubt. (I just found that a big chunk of my mailbox is taken up with 5 5Mb word documents. Gone.) |
| Sat 22 Nov | Marx | >You know disc space isn't cheap these days...<
Er, yes it is |
|
| "warm-chair attrition" | Thu 20 Nov | MD |
| word of the day for today:
http://www.wordspy.com/words/warm-chairattrition.asp
seems to have been invented by the guy who thinks were about to have a drastic labor shortage. Is the term (which seems to me at my crappy startup to be the best new invention ever) going to suffer from its association with somebody who is likely a crackpot?
Our WCA here is roughly 80%. A manic-depressive controlling sales-backgrounded micro-managing CEO is mostly to blame. How about you? |
| Thu 20 Nov | tapiwa | Man's biggest mistake is to believe that he's working for someone else.
-- Nashua Cavalier |
| Thu 20 Nov | MD | 'I'm not working for the CEO. I'm working for the chance to avoid having my home repossessed.'
That seems a lot better. Thanks, man! |
| Thu 20 Nov | M | Economy is bad. Employers no longer treat employees well. Employees don't want to be there and will leave as soon as something better turns up.
Yeah... sounds reasonable to me. |
| Thu 20 Nov | no name | People have always hated their jobs, bosses and co-workers. This sound like another stupid buzzword used by morons pretending they actually might know something. |
| Thu 20 Nov | . | Ever wondered why most economies consider it normal to have around 5 or 6 percent unemployment?
It is that employers have the whip hand over wages and can run things to suit themselves. It's so that all you plebes have to fight for the right to work, even though your work makes more money for the employer.
In a free market, the employer would have to fight to have you work for him or her. |
| Thu 20 Nov | Dustin Alexander | Maybe the 6% are incompetent. |
| Thu 20 Nov | GML | It's been said that employers will pay only enough to keep people from quitting, and employees will work only hard enough to keep from getting fired. Of course, this is the least common denominator theory of employer-employee relationships, but it seems to be true of many companies. |
| Thu 20 Nov | bpd | 'Ever wondered why most economies consider it normal to have around 5 or 6 percent unemployment?'
By 'normal' I assume what is meant is 'expected' or 'usual'.
Isn't it true that in any given population and for any given timeframe there will always be some small percentage that will be 'in between' jobs (for any of a variety of reasons, including difficulty finding/holding a job). But, would this account for the 5 or 6 percent? |
| Thu 20 Nov | Blah | Speaking as the 5 or 6 percent, I'd like to get a job but it seems to me there might be of effort involved. So I think I'll keep my tele watching chair warm instead. |
| Thu 20 Nov | Matt Latourette | 'seems to have been invented by the guy who thinks we're about to have a drastic labor shortage.'
Actually, we are going to have a drastic labor shortage in a few years. That's just a matter of demographics. The Baby Boomers will be retiring soon and because there are so many of them relative to the numbers in the generations following, there are going to be a lot of empty positions that will need filling. That's the good news. The bad news is that because there aren't enough people to fill the void, everyone's job description is going to balloon drastically. |
| Thu 20 Nov | M | The good news: 'The Baby Boomers will be retiring soon'
The bad news: They cannot afford to retire like their parents did. |
| Thu 20 Nov | Jim Rankin | 'Maybe the 6% are incompetent.'
A couple years ago, only 4% were incompetent. |
| Thu 20 Nov | Dustin Alexander | Perhaps it takes a while to shake the incompetent ones out :) |
| Thu 20 Nov | Richard Ponton | Much more than 6% are incompetant, now and 4 years ago.
Unfortunately, 'incompetant' and 'between jobs' is not as 1:1 as we would like.
I worked at one company in 99 where at least 50% of the employees were unqualified when they started. On the job training was equivalent to tossing a newborn baby in a swimming pool to teach them how to swim. It's instictual. They'll figure it out because they need to. Unfortunately, plenty of incompetant people find it easier to learn how to make themselves look impressive in an interview and on their resume rather than learning how to do their job well. Good riddance. |
| Thu 20 Nov | Matt Latourette | 'The bad news: They cannot afford to retire like their parents did.'
The really bad news: Generation X and the following generation are going to pick up the tab for this. |
| Thu 20 Nov | Frederic Faure | The good news: 5/6 of the world population lives in poverty, and a lot of them are young, willing, and able to work.
I wouldn't worry too much about a falling birth rate in the 1st world ;-) |
| Fri 21 Nov | no name | bpd - the normal figure for what you are talking about is ~2-3% as I recall. |
| Fri 21 Nov | Just me (Sir to you) | 'In a free market, the employer would have to fight to have you work for him or her. '
Why? |
| Fri 21 Nov | richard | 'Ever wondered why most economies consider it normal to have around 5 or 6 percent unemployment?'
Because if it was 0% there would be no chance for companies to expand. If it was 1% or 2% inflation would be too high.
5% should be normal. |
| Fri 21 Nov | tapiwa | '5% should be normal. '
Richard, where do you get these figures from.
What is normal? |
| Fri 21 Nov | Bill Tomlinson | Would it be too much to ask for people to take a freshmen course in economics before we continue?
Yeah, I guess so. Anyway, the dismal science tells us that low unemployment causes inflation. Or at least, unemployment below a certain level causes inflation (they call that level the non-accelerating inflation rate of unemployment (NAIRU)). And generally, high inflation is considered to be a Bad Thing, so we accept less than full employment (even if we knew of a practical way to achive full employment).
Now, this idea is fairly accepted, but not universally accepted. And deciding the NAIRU for a particular economy requires a bit of guesswork. But a fear of high inflation is basically why we don't strive for full employment. |
| Fri 21 Nov | Dennis Atkins | > the dismal science tells us that low unemployment causes inflation
I thought inflation is caused by the government printing more money - it's a stealth tax. |
| Sat 22 Nov | Stephen Jones | Dennis, the guy is talking about what is known as wage-driven inflation. Eventually more money will be created to pay for the higher wages, but it is not the prime mover here, as it can be when the government prints money to balance the books. |
| Sat 22 Nov | tapiwa | 'Would it be too much to ask for people to take a freshmen course in economics before we continue?'
You are almost suggesting that if we all did, we would agree. One of my three majors was Economics, and I still don't buy the argument.
Underpinning it all is the premise that spare capacity is a good thing. Spare capacity means you can grow without wage inflation.
In this day and age, a lot of successful businesses are so because they have no fat. How much spare capacity does Walmart strive for? Dell? Spare capacity, even in the job sector is fat.
To pick an arbitrary number (5%), and call this normal is just silly. |
| Sat 22 Nov | Stephen Jones | I would say between 3-5% unemployment is the sweet point - however I have little faith in economic macro-planning to enable us to get there.
The other point not made is that the US's great technical strides were the result of a shortage of labour. If labour is cheap why invest in mechanization.
There are places in India where people carry loads on their bags for hudreds of kilometers in competition with bullock carts, tractors, and lorries. Better than starving but hardly a general incentive towards efficiency. |
|
| WEB services | Thu 20 Nov | Seemore |
| Hello,
I am currently working in a company where our bread and butter is EDI data excahnge. We have agencies all over the world and exchange critical data using EDI. (works nicely)
New project comes along (offered by external company)
basicaly trying to replace EDI file exchange with WEB service.
I willl really appreciate your expert opinion on the drawbacks of the WEB services (in their current status) . Pluses i think i know.
Thanks |
| Thu 20 Nov | Richard Ponton | The #1 drawback to Web Services right now is the fact that authentication is not yet part of the official standard.
It's coming, but it's not here yet.
If your service is going to be open to the public, this is fine.
If your service needs to be restricted to paying customers, then you need to implement your own authentication mechanism or trust in the security of the transport layer.
If you implement your own authentication mechanism, then your clients must read the damn spec and implement it on their side too, which defeats half the point of using Web Services instead of something more efficient. Furthermore, you risk reinventing the wheel badly.
If you rely on the security of the transport layer (like using HTTPS and SSL Client Certificates), then your service is only as secure as the transport layer. Hard-coding authorized IP addresses is an easy, but ultimately insecure method of securing the transport layer.
There are groups (like WS-I) working on this, but it's not at version 1.0 yet. |
| Thu 20 Nov | HeWhoMustBeConfused | Authentication is nowhere near as difficult as the web services zealots will have you believe, which is probably because most of the structure (complexity) in web services is totally unnecessary!
1. Use SSL for encryption of traffic.
2. Register your users in your database (user-id/pwd)
3. The first message in a session is LOGON, which returns a session token.
4. Each message returns the token to maintain the session thread.
5. Each response to a message returns a (new?) token.
There.
Authenticated users.
Secure sessions.
Now, use a SIMPLE data format (yes, your old EDI format will still work), perhaps YAML (see earlier thread), and only use XML as a last resort unless you have shares in a carrier providing bandwidth-by-the-bit.
Your customers will be happy :) |
| Thu 20 Nov | Li-fan Chen | HeWhoMustBeConfused, session management looks about that easy from Mars, but if you get into it it's a little more complex than that. But okay... |
| Thu 20 Nov | Li-fan Chen | Another problem, Web is definitely not the most reliable medium for reliable file transfer, so you have to accomodate this weakness with some sort of abstraction that makes it look perfect without human intervention. Web services is quite raw, you don't have anything that will do job request/answer submissions retransmits (you have to deal it with by writing a tunneling library). I think web services standards has implemented transactions though, but I haven't use it enough to know for sure. |
| Thu 20 Nov | Li-fan Chen | http://www.eweek.com/article2/0,4149,1276856,00.asp |
| Thu 20 Nov | Li-fan Chen | There's two way to handle transactions.
1. The destination server attempts to [acknowledge message delivery], or
2. the destinationa server attempts to report back on the completion (or failure) of request.
If your only requirement is store and forward acknowledgement it's probably not that hard to find something in the web services standard that supports this, the second one is probably the interesting cookie to crack. |
| Thu 20 Nov | Clay Dowling | The authentication issues with Web Services are identical to those of EDI. Principally, neither standard deals with authentication at all. What you get is essentially another transport mechanism.
It is entirely possible to implement web services as CGI programs. Since the HTTP protocol already supports authentication, using that might be a good idea. Technically it's not part of the SOAP protocol, but since the protocol is designed to run over HTTP, take advantage of the things you inherit. |
| Thu 20 Nov | HeWhoMustBeConfused | Li-Fan Chen, it really IS that easy. I know because our major software product is currently doing it for a number of customers around the Asia Pacific region. We're about to launch another product doing exactly the same thing.
The saddest thing about web services is the way that people have over-complicated the whole subject. Now we've got yet another internet boom-and-bust technology in the making. |
| Sat 22 Nov | Duncan Smart | You could wait until WS-Authentication (or whatever it's called) has been standardised, or if your transport is HTTP, well... as far as I can see, it's a solved problem. SSL (server certificates) along with client certificates too. |
|
| XP question (delete by all means if inappropriate) | Wed 19 Nov | Alex |
| Hi everyone, Im sorry for the off-topic-ness but I thought Id rather hear from the smart people here than from techie users who answer on regular boards.
I just installed Windows XP on a clean system, with nothing else, not even Office. Now I connect (with dial-up) and there is a CONSTANT upload to somewhere, I dont know where.
I dont do anything, there are no tasks running, and it keeps *uploading at full speed*. Help?
After 30 minutes, the connection status has 30 megabytes uploaded and a few megabytes downloaded. I just surfed and read email.
Again I apologize to Joel and everyone, and thanks for your help. |
| Wed 19 Nov | Aussie Chick | Don't know hte answer but try:
http://www.experts-exchange.com
This is a good Q&A site for these sort of questions. |
| Wed 19 Nov | Li-fan Chen | You have been rooted. Or.. in layman's term...
1. There are people on the internet interested in infiltrating other people's computer.
2. Most computers (stock) are insecure.
3. There are hacking tools that can crack into a stock computer using known weaknesses in as little as a few seconds, completely subverting your PC into a 'zombie'.
Turning your PC into a FTP server, keystroke recorder, distributed denial of service attack agent, spam mail server, etc etc by uploading remote programs into your machine. Basically if you are using your machine, all you'll notice is lots of unattributable uploads.
4. There are scanners you can download to scan the entire internet looking for computers like yours. Even if you are behind a firewall, a subverted laptop on your network can spread the problem if it was insecure too (unless you have departmental perimeter firewalls and application filters in place.
Most of these tools are very advanced and you won't find too many evidence pointing to how to 1) identify it or 2) delete it or 3) prevent it from happening again without a complete reinstall.
You need to talk to person in your company's responsible for internet security and ask for help. |
| Wed 19 Nov | Li-fan Chen | Here's a fun read (there are details you might not understand right away, but the exposure would be good for you anyway):
http://www.grc.com/dos/grcdos.htm |
| Wed 19 Nov | Ebola | Welcome to Windows. Please pick up your virus at the door. |
| Wed 19 Nov | Roose | Something similar happened to me too after a CLEAN install. The problem is that a clean install from the CD does not contain any patches. And thus it is like leaving your car parked with the doors wide open and the key in the ignition.
So as soon as it finishes the XP install from CD, upgrade to the latest service pack, and then run Windows Update to get all the latest patches.
Don't visit any websites before you do that. |
| Wed 19 Nov | mb | doesn't matter if you visit websites--your local network is probably being scanned all the time. though some websites will initiate a scan when you visit them.
get zonealarm or similar software firewall on a CD, re-install disconnected from the net, install zonealarm, then re-connect.
what does netstat -a tell you? |
| Wed 19 Nov | Alex | C:\DOCUME~1\ALEXAN~1>netstat -a
Active Connections
Proto Local Address Foreign Address State
TCP alex:epmap alex:0 LISTENING
TCP alex:microsoft-ds alex:0 LISTENING
TCP alex:707 alex:0 LISTENING
TCP alex:1025 alex:0 LISTENING
TCP alex:1029 alex:0 LISTENING
TCP alex:1484 alex:0 LISTENING
TCP alex:2274 alex:0 LISTENING
TCP alex:2276 alex:0 LISTENING
TCP alex:2277 alex:0 LISTENING
TCP alex:2278 alex:0 LISTENING
TCP alex:2280 alex:0 LISTENING
TCP alex:5000 alex:0 LISTENING
TCP alex:5101 alex:0 LISTENING
TCP alex:2274 hobbes.fogcreek.com:http ESTABLISHED
TCP alex:2276 hobbes.fogcreek.com:http ESTABLISHED
TCP alex:2277 hobbes.fogcreek.com:http ESTABLISHED
TCP alex:2278 hobbes.fogcreek.com:http ESTABLISHED
TCP alex:2280 cs93.msg.sc5.yahoo.com:5050 ESTABLISHED
UDP alex:epmap *:*
UDP alex:microsoft-ds *:*
UDP alex:isakmp *:*
UDP alex:1026 *:*
UDP alex:1035 *:*
UDP alex:1051 *:*
UDP alex:1856 *:*
UDP alex:ntp *:*
UDP alex:1050 *:*
UDP alex:1686 *:*
UDP alex:1900 *:*
UDP alex:tftp *:*
UDP alex:ntp *:*
UDP alex:1900 *:*
C:\DOCUME~1\ALEXAN~1> |
| Wed 19 Nov | hoser | That's a lot of sockets sitting there listening, waiting for someone to connect to. Just for fun, you might run a separate computer with ethereal and watch the traffic and see where all that data goes when big brother connects to your computer... |
| Wed 19 Nov | Alex | I'm sitting home alone, no extra computers to spare...
P.S. This kind of sucks. |
| Wed 19 Nov | Alex | Also what I don't understand is how can I be uploading and downloading at full speed at the same time.
During a download the 'received' counter increases by about 5 KB every second -- so the download hogs up everything my 56k modem can offer -- BUT the 'sent' counter is is growing by anywhere from 4 to TEN kilobytes every second - so either it's sending empty packets that compress a lot, or I don't know. |
| Wed 19 Nov | Han Solo | epmap is the EndPoint Mapper for DCOM aka TCP:135. It is the port of choice for the blaster virus. You really do not want this open to the world.
See http://securityresponse.symantec.com/avcenter/venc/data/w32.blaster.worm.html |
| Wed 19 Nov | Han Solo | FYI:
On XP you can also run netstat -ao to get the process id of the process holding the port open. From there you can go into task manager and figure out which process has the open connections. They you may be able to close them with end process. Course some processes you will not have permission to close -- epmap is general run by system -- you can't close system. |
| Wed 19 Nov | Alex | A 'Grandma' question to stop this nonsense...
I went to Windows Updates and it found 15 updates for me. Total = 20 MB. I'm downloading the whole batch as we speak.
QUESTION... will this end my problems? |
| Wed 19 Nov | Alex | The CD I installed from had Service Pack 1 to start with.
After I installed it said 'you don't need to do anything to install SP1, if you installed from this CD, this means you have SP1 too.' |
| Wed 19 Nov | Jim Lyon | The safest was to install XP:
Install from CD without plugging in your ethernet cable.
From the Network Connections window, right-click on 'Local Area Connection' and choose properties.
From the 'Advanced' tab, enable Internet Firewall.
Then attach the network cable, and install all patches. |
| Wed 19 Nov | no name | QUESTION... will this end my problems?
ANSWER... welcome to earth. we hope you'll enjoy your stay, but suggest staying well away from computers while you're here.
Assuming that nothing unfortunate has been installed on your computer without your knowledge then you'll be safe until the next security hole is found by the bad guys, or a new patch breaks an old patch and reopens an old hole.
If something unfortunate is on your computer (which sounds, um, quite likely), then it's time to reformt, reinstall, and repatch - or at least try a decent virus checker and hope like hell that said virus checker manages to run before that unfortunate problem hijacks it. Have a nice week. :) |
| Thu 20 Nov | Alex | Yep, it is happening.
ZoneAlarm Pro Alert: The firewall has blocked Internet access to your computer (UDP Port 1028) from 203.190.196.232 (UDP Port 666).
Reformatting. |
| Thu 20 Nov | www.marktaw.com | It was mentioned in passing, but I'll mention it again.
Install the Ethereal Packet Sniffer http://www.ethereal.com/ and it will record the actual packets being sent from your computer. |
| Thu 20 Nov | Me | Alex, the downloads are probably automatic upgrades. Downloading does involve acknowlements as part of the TCP process, which will show up as 'uploads.'
This is not to say there's not also malicious activity going on, and you certainly should be running Zonealarm or something similar.
Reinstalling and being careful is the right decision. |
| Thu 20 Nov | Robert Jacobson | It's very likely just downloading software updates from Microsoft. Under the default settings, Windows XP will automatically download patches. Since you just did a reinstallation of Windows, it will have to download every patch again -- which over a 56K modem would take some time. |
| Thu 20 Nov | Alex | It's not updates.
I specifically checked off Automatic Updates, and it still goes on at warp speed.
(Anyway, I'm not sure normal 'confirmation' packets sent during a download process can amount to several times as much as the download itself. I've downloaded before, and the ratio is always way below 1.)
I'll reformat, reinstall XP, and get all the updates before I do anything else. Thanks a lot everyone for helping! |
| Thu 20 Nov | drazen | Check info about Nachi virus at some AV software site.
Before you connect to internet delete/rename tftp.exe from your windows/system32 folder.
Disable DCOM (use dcomcnfg.exe).
Then you connect to internet and obtain fixes from MS. |
| Thu 20 Nov | Stephen Jones | The sent counter sometimes goes crazy. Zone Alarm should detect things going out; attempts to access your computer will also be trapped expect anything from ten to fifty an hour. |
| Thu 20 Nov | Li-fan Chen | Oh you are on ppp over modem, lol. Well, no one will use you modem connection for DDOS-attack zombie attacks I suppose. |
| Thu 20 Nov | hoser | I wouldn't Windows expect updates to leave sockets open in a listening state. That would make no sense at all. |
| Thu 20 Nov | hoser | dilselxic ohser. |
| Thu 20 Nov | Just me (Sir to you) | Check out http://isc.sans.org/presentations/xpsurvivalguide.pdf , a step by step guide for safely setting up XP (with pictures).
Once again discovered trough the excellent 'Daily Grind' by Mike Gunderloy http://www.larkware.com/Articles/TheDailyGrind231.html |
| Thu 20 Nov | Call yourself computer-literate? | Alex - just switch the fucking *built-in* firewall on for fuck's sake. |
| Fri 21 Nov | Stephen Jones | I thought the built in firewall ohly controlled inward connections not outward ones. |
| Fri 21 Nov | Alex | Okay, of course I switched on the fucken built-in Firewall, of course I downloaded 15 megabytes of updates, of course I turned off automatic updates so I won't register false positives...
and still the counter's a-ticking...
anyway. |
| Sat 22 Nov | computer alliterate | I think the idea of switching on the firewall ASAP is so that you don't get 'rooted' in the first place by something, which can then, in turn, make outgoing connections. Install a virus scanner: http://www.grisoft.com have a workman-like free version of their Anti-Virus Guard. Also use something like Ad-Aware to root out any spyware which 'phones home' - http://www.lavasoftusa.com/software/adaware/ |
| Sat 22 Nov | computer alliterate | Of course you may have been infected "in utero" by the warez version of XP and/or Office that you installed ;-) |
|
| is MCSE/MCSD useful for the knowledge? | Wed 19 Nov | certifiable |
| Hi,
I am an independent consultant/developer/sysadmin who helps various companies build out intranets. In the past I did mostly huge oracle/web/unix based intranets, but my most recent contract was a sharepoint/XP/SQL Server/Office intranet.
I have to admit that I am not that experienced with windows stuff, but am having fun with it right now, and have long experience building out intranets in general, so I can easily learn stuff on the fly.
However, I would like to just know how to fix something when it breaks, rather than having to dig up the information on newsgroups whenever i run into an issue. The development stuff isnt my main concern, im more concerned with being able to fix systems and DBA issues immediately, rather than digging around for the information.
If I go through the training materials for an MCSE or MCSD and get one of these certifications, will I have internalized most of the information needed to just know how to answer systems-y questions, and fix stuff? Or will I still be referring to the news groups? One reason I ask is when I worked heavily with Oracle, one of the more useful reference books I used was an enormous Oracle certification guide. |
| Wed 19 Nov | no name | I got an MCSD 3 years ago and once completed, found that I still knew next to nothing...
I could write a little bit of code but just a little. 3 years in the trenches and I am almost worth something.
YMMV |
| Wed 19 Nov | RocketJeff | I took the 4 MCSD tests in a period of 2 months during mid-1999 and passed all 4 easily.
I used the VB 6 test (because the C++ tests wern't out yet) and passed both the desktop and distributed tests with just a month of studying. My total practical experience in VB at that point was probably 6 months (and a lot of that was back in VB 3 days...). I did, however, have plenty of C++ Windows development experience which helped.
I did know more due to my studying, but taking the tests and getting the MCSD has done little for my career. I got an MCSD because the company I was working for was an MS Partner and wanted me to get certified - they laid me off about 2 months after I got my certification. No other potential employeer has asked about it. |
| Wed 19 Nov | no | You've got to be kidding right? Browse the books, they're that simple it would be insulting to a newbie. |
| Thu 20 Nov | Ling | Yes and No. If you approach the examination as an opportunity to expand your knowledge and learn as widely as you can, then you will have internalized most of the material that is important for most tasks. However this does not mean that you wont need to refer to newsgroups and other internet forums for exceptional cases.
I really hate it when pple approach learning and getting examined as a chance to add one more paper under their belts. Most people will just read enough pass the exam and not bother getting more in-depth knowledge on the subject. Some will even go futher and cheat (brain dumps!) just to pass the exam. The worst part of this sad story is that it happens at almost all levels of learning.... |
| Thu 20 Nov | Stephen Jones | What the MCSE stuff will do is give you the background so that you can identify the problem more easily. Unfortunately most of the problems that will crop up will not be covered in the books - that's why they're problems :)
The tests were never intended for newbies; they were for people who already had six months to a couple of years experience working with Windows networks.
Try and not get a book tied directly to the exam as your primary source - they tend to be much too restricted to answering the questions. Try a couple of books by Minasi - he covers the why very well. |
| Sat 22 Nov | Marx | I doubt that mister William Gates has an MSD, and the idea of Microsoft setting standards for developers is a bit suspect too. |
|
| Macromedia developers get a shot at AIM | Wed 19 Nov | Michael Sica |
| Macromedia developers get a shot at AIM
http://news.com.com/2100-1032-5109001.html
Hopefully this is a sign of things to come. How great would it be to the AIM feature in other (non-Macromedia Central) apps? (Desktop apps built in Java, VB, etc....) I think this would be more useful than integrating with MSN Messenger, because of tie it has to Windows (they have a Win version and Mac version, but they could drop the Mac version like they did IE).
Actually, I dont know the answer to this question, does MSN Messenger allow 3rd party integration? |
| Wed 19 Nov | runtime | AOL should write a low-level AIM ActiveX Control that can be freely redistributed by other app developers (like Microsoft does with some of its MSVCRT DLLs). Other Windows apps could get integrate with the AIM network, but seamlessly integrate with their apps GUI or create an innovative new GUI. Then VB and Python developers can write their code wrappers for the AIM ActiveX Control. |
| Wed 19 Nov | Michael Sica | i'd like to see something a little more open than a windows activex control. (open as in, open to other platforms) |
| Wed 19 Nov | runtime | good point. I was assuming AOL would want to keep their protocol "enshrouded" behind a closed-source interface. If they really want to interoperate, they should just release the spec for their network protocol. Leave the programming grunt work to all the open-source volunteers and their favorite programming languages. :-) |
| Wed 19 Nov | Michael Sica | that would be cool!
.... thinking out loud ....
i am actually starting to wonder about it though. is the use of an IM program inside another really beneficial? if a person is on a computer, they could just use the regular chat client.
... still rambling ....
but ... what if the fact that the chat program was in another application allowed the conversations to be associated with things inside the main application... or maybe when you do a file transfer through the IM protocol it could be saved in or associated to the main program....
/anyway
yeah, i guess i would like to see all the major chat clients open their protocols for app developers. (unless they already are and i'm just ignorant and too lazy to go check :) ) |
| Wed 19 Nov | Chris Tavares | Having the IM client accessible inside other programs lets you do all sorts of neat stuff with computer generated messages. Consider a multiplayer networked game - you could use the IM system to do the chat system, plus send out status messages (Blue Soldier is down! type stuff) over the same protocol. |
| Wed 19 Nov | runtime | Haven't people already reverse engineered the AIM protocol? Don't Jabber and GAIM interoperate? Is the problem a closed protocol or that AOL's AIM servers block other programs? |
| Wed 19 Nov | www.marktaw.com | It's not hard to set up a packet sniffer and start sending things to the AOL server to see how it responds. gaim, jabber, and trillian all interoperate. Microsoft threatened to bring this to end by introducing authentication protocols and licensing. Yahoo upgraded recently, making everyone scurry to catch up.
Personally, I hate that all my friends are on different networks. I have AIM, Yahoo, MSN and ICQ buddies. Though I'm grateful that someone doesn't control the whole enchilada.
Maybe it's time for the world to look at Waste and develop a set of tools around it to make it more user friendly. |
| Fri 21 Nov | no name | I always wondered...once all the protocols are open, and any client is usable, who runs the central servers and why? Or is there a peer to peer method I haven't heard of?
Wild ideas: the government/some consortium of ISPs, or the central server starts spamming. |
| Fri 21 Nov | www.marktaw.com | > Or is there a peer to peer method I haven't heard of?
http://sourceforge.net/projects/waste/
http://waste.sourceforge.net/
http://news.com.com/2100-1032_3-1011585.html?tag=fd_top |
| Fri 21 Nov | no name | Hmm...okay, but that doesn't solve the problem of 25 of a group connecting with 25 of another group, who connect with 25 of another group, who connect with 25 of another group...
It's a huge interconnected web. Can it be solved using this small model? |
| Sat 22 Nov | www.marktaw.com | Probably not, but it's open source, so if you want something that does that - go ahead and develop it.
There are Network Names in Waste, though you can't be connected to more than one at a time and can only run one instance of Waste at a time.
As far as I can tell, if I'm connected to Brad and Janet, and Janet is connected to Mork and Mindy, I'm peripherally connected to Mork and Mindy, but I don't have to have them on my list. Also, I'm not sure why the network is limited to approx. 50 people, but I think you can stretch it beyond that.
But I'm not sure, I haven't had much time to work with it (read: my friends are firmly entrenched in AIM / Yahoo / MSN and won't give it up. Strangely, almost nobody uses ICQ.) |
| Sat 22 Nov | www.marktaw.com | I was wrong, you can run two instances of Waste with two different networks by creating seperate profiles. |
|
| How big is this boards database? | Wed 19 Nov | Dave B. |
| Im still wondering how big the database for this message board has gotten, so I decided to ... contemplate heh (plus Im bored atm).
Table Structure:
ixPost - 4 bytes
ixParent - 4 bytes
iReplies - 4 bytes
fDeleted - 4 bytes could be 1 bit/1byte or 2,4,8 bytes
dtDate - 4 bytes could also be 8 bytes
sIP - 15 bytes
sTitle - 50 bytes
sAuthor - 128 bytes
sEmail - 128 bytes
mMessage - 2000 bytes
Approx Total (i would guess on the low side) - 2341 bytes
According to:
http://www.usabilitymustdie.com/jos/WW_MonthlyStats.html
There are 78514 comments as of Monday (Updated every monday i think).
Size = 78514 * 2341 = 183801274 / 1048576 = 175.2865543
So the database is approximately 175MB.
Of course, this is probably not accurate either because something tells me that there are one or two more fields in the database that we dont know about and I dont know if this includes the deleted posts (some of which may actually be deleted)... but I would guess an extra 15 bytes per post at a minimum.
At the current monthly average of ~15 comments per item and 400 new items:
400 * 15 * 2341 = 14046000 / 1048576 = ~13 MB added per month
To fill 20 GB on a hard drive:
(20,000 MB - 175 MB) / 13MB per month = 1525 months / 12 months per year = ~127 years.
Ill be dead then... Well back to work. |
| Wed 19 Nov | Joel Spolsky | It's 130 MB now. |
| Wed 19 Nov | Dave B. | I'd bet ya that's because the message field is variable length and not always 2000 bytes (or what have you). |
| Wed 19 Nov | Dignified | Yes, and I haven't seen Albert Kallal (sp?) post lately.
That alone could skew your estimate 45 meg. ;) |
| Wed 19 Nov | Dennis Atkins | Dave B.,
Truely bodacious back of the napkin estimate. And you got it well within the fabled one order of magnitude for great estimaters. I'm impressed. |
| Wed 19 Nov | Billy Boy | Dave:
Interesting estimate, but you forgot to include the fact that the number of posts per month seems to be increasing...actually taking a closer look at the stats it seems that we have hit a plateau.
Never mind.
BB |
| Wed 19 Nov | Tim Lara | >> Yes, and I haven't seen Albert Kallal (sp?) post lately.
LOL!! |
| Wed 19 Nov | Ben Richardson | When you first wrote it you said it was an Access database, has this been migrated to SQL Server? When/why? |
| Wed 19 Nov | -- | Dave B. should interview at Microsoft. |
| Sat 22 Nov | Marx | The Board
Could we have some date info beside the message listings?
And/or could we have them grouped by new messages, then most recent replies? As it stands it's hard to see which threads are being replied to and some of us nosey type like to read lots of them, so trawling through is a pain.
I'm sure some of us would write the board code if you are too busy Joel. |
|
| Safety of smart clients | Fri 21 Nov | Just me (Sir to you) |
| The recent Debian break in ( http://marc.theaimsgroup.com/?l=debian-announce&m=106941381015817&w=2 ) made me wonder.
More and more are going the automatic update route for network delivered apps.? Do you all use code-signing for the files? Does your client verify the signature? Do you use certificates? Do you use OCSP, CLR? Does your client check the certificate status? Do you have a compromise contigency plan? |
| Fri 21 Nov | Johnny Bravo | Obviously not.
One reason might be that it's hard to convince a product manager to invest resources in the abovementioned measures. 'It's finished, so we will ship it!' |
| Fri 21 Nov | Joe V. | As a note, the recent breakin did not affect the archive that updates use. |
|
| health insurance for IC in massachusetts | Fri 21 Nov | consultant |
| hi, this might be completely inappropriate for this forum, but maybe someone out there can help.
I am an independent consultant in MA and I havent had had health insurance for 3 years. Not because I cant afford it, mainly due to youthful stupidity. Im trying to do a bit more snowboarding this season and have aged to the point where I should be more concerned about my health. I also ride my bike to work, which is sort of dangerous in the Boston area. I dont want to have to pay a $30,000 bill out of my own pocket if I blow one of my knees out or get hit by a car.
Ive done a bit of research online and mostly what Ive discovered is that the easy to buy online health insurance usually is not available in MA. The only one ive located is blue cross / blue shield.
Before I sign up for this, do any MA based folks have suggestions for health insurance? |
| Fri 21 Nov | tapiwa | Self insurance. That's what I do. |
| Fri 21 Nov | MSHack | Contact your local chamber of commerce. They usually have a group plan that as a member you can join in. This cut my bill by about 35% over self-insured.
I pay a little over $500/month for a family plan, with pretty good coverage. At $6,000 a year, it sounds like a lot, until you have that first hospital visit. |
| Fri 21 Nov | chump | BC/BS is pretty much the only option in Massachusetts -- I pay around $250/month right now for individual coverage. |
| Fri 21 Nov | mb | remember wherever you are that you may be able to save money by raising your deductible.
if you figure the insurance is only for emergency purposes, a $500 or $1000 deductible may save you enough money that you can put aside the 500-1000 in a year or two. |
|
| Users revolt against bad design | Fri 21 Nov | Peter |
| I think weve all sat in design meetings for hours and hours discussing things that seem incredibly stupid and unworthy of discussion. Yet somehow, eventually they wear us down and we end up agreeing to implement feature X how they insist, against our better judgement.
It would appear that the Nokia N-Gage phone-cum-gaming-console is a poster child for this process gone amuck. Observe how real-life users feel about the design: http://www.sidetalkin.com/ |
| Fri 21 Nov | Sven | i dont know what your point is, but that is a rad fucking website. |
| Fri 21 Nov | Jack of All | um... I don't understand that site at all... wait... no... not at all... |
| Fri 21 Nov | Maximus | Yet another idiotic web site by people with nothing better to do.
You think Nokia will notice?
Rather than taking photos of themselves, those people should have called Nokia and expressed their feelings about 'sidetalking'.
:-( |
| Fri 21 Nov | M | Website asside, if anything, design has become more of a sales point. Nokia this last eighteen months has been trying some risky designs in hopes that they will catch on. Another one is their 3650 in which many people did not like the numeric keypad layout. |
| Fri 21 Nov | Dominic Fitzpatrick | The designers at Nokia don't get that what people really want is a slightly improved 3330. They should stop messing about. |
| Fri 21 Nov | Stephen Jones | I agree with Dominic. I've still got a 3310, bought a few months ago when the last one didn't survie a shower with my clothes on and the phone in the jeans pocket.
What I really want is simply for them to give it PDA abilities and let me synch it by USB to my Outlook address book. |
| Fri 21 Nov | The One You Loved (TOYL) | Maybe, that original poster is one of the guys having his photo on that site. Spammers galore!!! |
| Fri 21 Nov | Interaction Architect | Here's a much better idea for a phone - useful too...
http://graphics.theonion.com/pics_3903/new_swiss_army_phone.jpg |
| Fri 21 Nov | a2800276 | How are they rebelling? It seems like a good percentage of the morons on the site actually own an N-Rage. And it's likely that they were aware of how it's used before they bought it.
Why do you consider it to be bad design, anyway? |
| Fri 21 Nov | tapiwa | Art has to move you and design does not, unless it's a good DESIGN for a bus.
-- David Hockney |
| Fri 21 Nov | Richard Ponton | The phone has long been designed to rest easily in the hand while holding it to the ear.
With th N-Gage design, you have to expend extra effort to keep the phone aligned with your ear. This is bad.
What would be best is a Star Trek TNG badge. It has perfectly working voice dialing. There is no headset to deal with. Completely hands free and no wires.
We're not there yet. |
| Fri 21 Nov | tapiwa | I think the 6x10 series is the sweet spot.
Have had the 6110 and am now on the 6310.
Big enough for me to use, and still small enough to not be a pain to carry. |
| Fri 21 Nov | pdq | Taking a shower with your clothes on and a phone in your pocket?!? |
| Fri 21 Nov | Zahid | I agree with PDQ, my phone never gives me problems after I do that. |
|
| Small software biz at crossroads – VB6 or what? | Thu 20 Nov | Liam |
| A partner and I started a software business almost 3 years ago. Our product is doing ok but not nearly good enough.
ABOUT OUR SOFTWARE
- Approx 2000 users.
- Developed in VB6 with quite a lot (about 6) 3rd components (not helping the download)
- Some of the controls we use are IP*Works, ActiveReports & Sharpgrid (from Data Dynamics) and a few others.
- XML based database.
- Interact with few servers via internet
- Download is about 8MB
- Must run on Win95 to Win XP PC’s (so no.NET yet)
- Use Installshield Express 4 to build the install
WE NEED TO
- Improve the look and feel of application a lot – very dull and gray
- Speed it up
- Make download smaller
- Build in multi language support (screens and menus)
- Bring in Windows XP look and feel
- Add user based scripts to assist users to automate some functions
- more reports
- and many more …..
QUESTION
Do we have other options but development in VB6?
We can’t go to .NET (yet) due to client base (for at least another year or two).
My partner knows VC++, I don’t – so major learning curve there. He is not to keen either.
Should we just plough ahead with VB6 and try to squeeze everything out of it? We are not nearly VB gurus yet !
What about Delphi? I played a bit with it in the last week and liked the user interface of applications and some of the features.
Any other options?
Comments would be appreciated. |
| Thu 20 Nov | Interaction Architect | Have you looked in to HTML Applications? That might be an option.
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/hta/reference/hta_ref_entry.asp |
| Thu 20 Nov | Mark Hoffman | My first question would be 'What do you need to do that VB 6.0 can't do for you?'
With the exception of a smaller download, all of the things you said that you needed can be done with your current language. |
| Thu 20 Nov | AnMFCAndJavaProgrammer | I'd be somewhat wary of building anything which is too dependent on IE -- at least until the lawsuit with Eolas is more resolved. MS might have to begin pulling IE features to become compliant with patent law. Will HTML applications be around in the future? Only MS knows right now.
The more traditional way to improve VB apps is to leave the body of the App in VB, and apply VC++/COM in places where performance is problematic. If one of you is sufficiently competent in VC++, this may be an option.
Rewriting in Delphi? As Joel would say, you have an established, debugged code base in VB. Are you really willing to incur the time penalty to rewrite and re-debug your app? |
| Thu 20 Nov | Robert Jacobson | There are ways to get the XP visual style with some VB6 components by using a manifest and other tricks. (Only works when installed on an XP machine, of course.) This link might help, otherwise try Google:
http://www.vbaccelerator.com/home/VB/Code/Libraries/XP_Visual_Styles/
It sounds like VB.Net is the best long-term plan for you -- since your app is already coded in VB6, and both of you are reasonably proficient with VB, porting would be much less difficult than rewriting it in an entirely different language. (Porting from VB6 to VB.Net isn't trivial.)
The obvious downsides of VB.Net are (1) it's not compatible with Windows 95, and (2) it requires installation of the .Net Framework, which is a 20MB download if the client doesn't already have it installed. (However, the size of the Framework is really only an issue if the app is being downloaded over a modem -- if it's over broadband, or being distributed on a CD, it's not a big deal.)
Out of curiosity, do you know how many customers are still using Windows 95? I can't imagine that it's a significant proportion in 2003.
One possible plan would be to give your VB6 app a fresh layer of paint for now, with the goal of porting it to VB.Net in a year or two. |
| Thu 20 Nov | Frederic Faure | Originally, PowerBasic was known as PB/DLL, and was marketed as an add-on to VB, to let you build DLLs in BASIC for number-crunching.
Run a profiler to investigate what parts of your program are slow, and check if the speed issue is due to some parts in VB (in which case, try PowerBasic or PureBasic, if the latter is able to generated DLLs), or in the OCXs you use (in which case... tough :-)). |
| Thu 20 Nov | Fred | A large number of the customers of my legal software still run Windows95, and suggesting they upgrade is like pulling teeth.
On another note, there is a large financial services company that has something to do with stagecoaches. Their standard desktop runs Windows95 with Office97.
Have fun getting them to run your fancy .NET applications! |
| Thu 20 Nov | Liam | Thanks for comments (so far) & yes the XP themes is looking good -- I tested it quickly and see we do need to change some screens on our app, but it already looking better!
Regarding the user base. We have detail stats of every user. The industry we are in (tools/hardware stores) is not very hi-tech. Allmost 10% still on Win95 and about 15% have 64MB or less memory.
Our application can run on:
- Win 95
- 32MB RAM
- No Internet Explored / MDAC / ODBC installed
- Dial-up internet
So we had to include a html / web browser control to view web pages. We probably will drop the IE requirement as it is holding us back.
I agree:
- we need to stick to VB6 & just do it better
- optimise application using more components
Many thanks for the feedback |
| Thu 20 Nov | christopher baus (www.baus.net) | Hire a professional graphic designer to spruce up the UI. They cost far less than you imagine, and they do things you could never imagine ; )
I think that is a big mistake programmers make when they start their own companies. They think 'we're smart guys, we can do everything.' Certain things, including graphic design, are best left to the specialisits.
Are you sure the performance problems aren't due to some I/O bottleneck rather than VB performance? You said you are using IP*Works.
Now a days computers are fast enough that unless the app is blocking on I/O then performance of the language is rarely a problem.... |
| Thu 20 Nov | Aussie Chick | >On another note, there is a large financial services company that has something to do with stagecoaches. Their standard desktop runs Windows95 with Office97.
The place I work is exactly the same (the 'if it aint broke dont fix it' mentality) |
| Thu 20 Nov | njkayaker | Are you planning on getting your current clients to pay for an upgrade?
What effort will actually increase your profits?
Probably, the best approach is to do small changes to the current app.
If you are not making much money with the current version, rewriting it may effectively kill any profits. |
| Thu 20 Nov | Almost Anonymous | But Windows 95 is broken! |
| Thu 20 Nov | Entrepreneur | Remember, your software is just ONE part of your business.
Have you determined what your top goal is and what the #1 constraint is in reaching that goal?
I.e., the goal is likely PROFIT.
If so, what is the ONE thing that is holding you back?
(I.e., perhaps you could sell to MORE CUSTOMERS, or sell more to the existing customers( upgrades, higher price) or sell an additional program/feature to existing customers).
You MAY find that your SOFTWARE is *not* your #1 constraint right now.
And read:
http://www.dexterity.com/articles/
Great articles on running a software company. |
| Thu 20 Nov | Entrepreneur | Also, how are you going to sell a foreign language version of your product?
Will you need to actually MARKET that version in a foreign language? Do you have that capability/resources? |
| Fri 21 Nov | Liam | I am busy working through the Dexterity notes. Very inspiring and scary -- but very helpfull.
Re. graphic designer person -- very true.
Again -- thanks for all the good points |
| Fri 21 Nov | A cynic writes | I don't know enough about delphi to comment on it - but if you decide to go that route there is a convertor available (it's even been mentioned here before):
http://www.deluxsoftware.com/ |
| Fri 21 Nov | Marc Scheuner | I'd definitely recommend you have a good hard look at Delphi. It's by far not as daunting and challenging as C++ would be, it uses a lot of the same basic principles (designing forms etc.), it has a very large and thriving third-party component market, it can make use of COM with no problems at all, and it still compiles very nicely into a single EXE, if you want to (no runtimes and VBRUN*.dll and stuff like that needed).
It's like VB on stereoids - easy stuff is just as easy as in VB6, but the hard stuff is feasible in Delphi - no need to resort to C++ or other means. You can write services, COM objects, you name it.
We've had very great success with converting a team of 12 developers from VB to Delphi, and after overcoming their initial scepticism, they're all absolutely positive and enthusiastic about the new possibilities Delphi gives them.
And there's Delphi 8 (for .NET) out, too, so once you want to move to .NET, you're all set - just recompile and off you go (in an ideal situation)......
Marc |
| Fri 21 Nov | no name | I agree with Christpher Baus. Get someone to design whatever graphical bits you need, maybe even get someone to look at the UI and come up with something better. Hey, maybe you could do something really revolutionary and ask your customers :) |
| Fri 21 Nov | no name | By the way, there are several scipting possibilities. Personally I like s-lang but I've no idea whether it would work in a VB environment. |
|
| Engaging the thought process | Thu 20 Nov | tapiwa |
| I am a bit peeved by the way people plot two data points in their life, draw a line through it extrapolating towards infinity, and then want to apply those metrics to the whole of society.
In English... All these discussions about how open source is bad, or how expensive outsourcing is, or how one should never wear a suit to an interview, are moot.
Sure, we can share experiences, but to take ones own experience, and want to legislate it for the rest of the planet is silly.
There was link recently to an article by Richard Feyman, and what he calls the Cargo Cult, is a version of folk not engaging the thought process.
True, some companies will get burnt by outsourcing. Others will thrive. Ditto for using open source projects. Ditto for {{insert anything}}. Anecdotal evidence from one source should not be held as gospel. At best, it should just give you a reference point from which to begin your research, or indeed teach you of potential pitfalls to watch out for.
What happened to thinking?? Does it still have a place in society. Do people still practice it??
All the problems of the world could be settled easily if men were only willing to think. The trouble is that men very often resort to all sorts of devices in order not to think, because thinking is such hard work.
-- Thomas J. Watson
A great many people think they are thinking when they are merely rearranging their prejudices.
-- William James
And yes, before I get flamed for arguing that we should think for ourselves, and quoting from other sources....
All truly wise thoughts have been thoughts already thousands of times; but to make them truly ours, we must think them over again honestly, till they take root in our personal experience.
-- Johann Wolfgang Von Goethe |
| Thu 20 Nov | stating_the_obvious | ' I am a bit peeved by the way people plot two data points in their life, draw a line through it extrapolating towards infinity, and then want to apply those metrics to the whole of society'
Aren't you kind of doing the same thing with this post?
'What happened to thinking??'
Who are you to extrapolate your experiences on these boards to the way people think as a whole? :) |
| Thu 20 Nov | anon | I remember reading somewhere that the goal of most companies is simply to keep doing what they've always done. The same could probably be said for humans in general. |
| Thu 20 Nov | Bored Bystander | Thinking is good. Mmm, thought.
Having said that... the straight-line trend extrapolation is the easiest one for almost all people to grasp. It is also in human nature to compare trends and current events to events of the past and then attempt to infer that things will happen in the same way.
He who reads crystal ball eats glass. |
| Thu 20 Nov | Bill Carlson | The old adage 'don't judge a man until you've walked a mile in his shoes' applies more today than ever.
Unfortunately, we're constrained by our direct knowledge and experience. As this is inherently finite, we turn to antedotial evidence. Antedotial evidence is flawed since it almost always comes from hindsight.
It's easy to look at a struggling software company and say 'wow, they're so stupid, trying to do that in J2EE'. Perhaps the direction was set in 1997. Maybe they had a bunch of really bright people debate the point for months. Maybe it was a good decision at the time. You don't really know.
The same principal applies all around us. People judge econonic or foreign policy by results. That's fair. Decisions might have not only seemed brilliant at the time, they may have _been_ brilliant, even though they turned out badly. Were Microsoft engineers dumb in 1992 for not anticipating that desktops would be victimized by buffer overrun attacks in 2003? Hardly. But that decision looks flawed in hindsight.
My tolerance for 'professional critics' is pretty low. Business success is tough to achieve. When you've had a client call and say 'We really want to buy 5,000 seats, but can't do it without feature X', and you don't like feature X, what do you say? You say yes, pocket the money and have a 'tarnished' product. This is how it has to work, even though it may appear to some that your company 'doesn't get it'.
Yes, many, perhaps most, 'bad' industry decisions you see around you were in fact boneheaded. But at least give pause to the idea that maybe they were in fact the product of clear thinking... |
| Fri 21 Nov | tapiwa | 'Who are you to extrapolate your experiences on these boards to the way people think as a whole? '
Two things.
1. I think I is more a case of how people don't think
2. The problem is not just on this board...
A recent example is the story about how comments by Rupert Murdoch were interpreted as a sign that the Sun (UK tabloid) was about to change its slant, and back the Tories instead of Labour.
http://news.bbc.co.uk/1/hi/uk_politics/3272023.stm
The fact that this is newsworthy, and the fact that this might affect the outcome of the next election suggests to me that a lot of people are not doing their own thinking, and have delegated it to the media barons and editors.
Note how a lot of people will adopt the latest GeeWhizz Technology after it is praised by {{insert pundit/'expert'}}, with no regard for whether it will actually suit their particular circumstance.
Not only that, but they then argue that anyone who disagrees with them as a l000za! |
| Fri 21 Nov | A cynic writes | It was ever thus.
It only good point is that it gives those of us who think a *potential* advantage.
Little story - Thales (the first of the greek philosophers) having noticed that there was a correlation between the olive crop and the weather some months earlier rented all of the olive presses well in advance and made a killing.
Why only a *potential* advantage? Because he could have miscalculated. Thinking gives you the chance of stepping outside the herd. Most people prefer to be happily in the middle of it. OTH I'm just an old cynic. |
| Fri 21 Nov | Mark Hoffman | Tapiwa,
You're witnessing human behavior. Trying to change it is pointless, and getting frustrated at the same behavior that has been exhibited for millenia is equally as pointless.
Don't like that some people are 'sheeple'? Good. Don't be one and move on. |
| Fri 21 Nov | tapiwa | While it might have been going on for ages, I will still try and encourage change.
Poor human nature, what horrible crimes have been committed in thy name!
-- Emma Goldman |
|
| Being pushed | Thu 20 Nov | RP |
| I need your advice.
Im being replaced by another programmer from an outsourcing company. My boss, who doesnt have many social skills, instead of taking me to a room and talking to me face to face, has decided to make my life hell.
The entire IT department has been recruited to push me around, whether they like it or not - some of them are my friends who have told me that they were ordered to mistreat me. Of course they only do it in front of my boss.
My bosss boss isnt aware of whats happening, and I seriously doubt he would do something about it. Ive seen this happen to somebody else and ha didnt move a muscle.
Now, what would you guys do? |
| Thu 20 Nov | Mark Hoffman | I'm confused. You said that your boss is behind this, but you also say he isn't aware of what's going on.
Are they trying to get you to quit before they have to lay you off? |
| Thu 20 Nov | Milton | Just do critical mistake everytime someone "push" you and blame it on them. |
| Thu 20 Nov | Bored Bystander | If this is in the US, there is a concept called 'constructive termination'. It basically means that your employer is choosing to terminate you by creating an intolerable work environment. Cases like this can be brought to court and can result in your being paid unemployment, and/or damages for harrasment itself. (IANAL) I've worked in lots of companies that have done this. The company is generally counting on its people rolling over and taking it.
I would document what is being said that is abrasive and abusive, and I would find an employment attorney and spend an hour on a consultation to explore your options. |
| Thu 20 Nov | anon | Along with BB, you need documentation. Be certain to file any exceptional offenses with HR. To protect themselves legally, they will need to investigate.
I saw a person on our team get a free right to retirement after filing and winning a complaint. |
| Thu 20 Nov | Mr Jack | -This is not legal advice-
If I understand correctly in order to have a case you must have raised a complaint with the company first, in order that they can 'correct' the situation. |
| Thu 20 Nov | A cynic writes | In the UK it is called 'constructive dismissal'. Big no no.
Wherever you are the first thing to do is to keep a diary logging the issues, the second get local legal advice - legal systems vary.
Don't write off your firm's internal grievance procedure - but make sure you've documented things first. |
| Thu 20 Nov | Actually I doubt it would work, but as a shen it has potential | Start leaving magazines like "Soldier of Fortune" lying around the office. Brag about your shiny new automatic weapon. Visit websites about wacky cults, militias, and militant groups and ask your colleagues which of them they think you should join for a little "excitement". |
| Thu 20 Nov | tapiwa | If you are already being replaced, why is he making your life hell? |
| Thu 20 Nov | Evgeny Gesin /Javadesk/ | > Now, what would you guys do?
Prepare to leave soon. You have being notified. |
| Thu 20 Nov | M | I had to train my replacement starting in August and ending just a few weeks ago. Unlike you, I now am looking forward to a severance. Take other's advice on the lawyer and documentation. As far as training your replacement, keep a positive attitude for your own sake. There is nothing positive about the situation, but play a game in your mind "they are there for your amusement". :) |
| Thu 20 Nov | Mister Fancypants | What do you mean by "push you around", exactly? |
| Thu 20 Nov | RP | Basically small insults, criticising everything I do, being generally abusive when I'm around. |
| Thu 20 Nov | anonymous | Is it legal to tape record conversations where people admit this to you, or record when you're being abused? I realize this is rather extreme behavior, but they're doing something extremely immoral. No matter what kind of employee you are, only a bad boss can do this.
Obviously legal advice is important. I have always wondered why people do not just carry recording devices all the time, because free people should be able to record what they expereince. |
| Thu 20 Nov | Bored Bystander | Again, talk to a lawyer. A bunch of programmers can't substitute for proper legal advice.
The comment about investigating your company's HR policies is a good one and I would try that first. At least in the US, companies are really big these days on *appearing* respectful to individuals. (the reality is almost always different.) If that doesn't net anything, legal advice would be the next logical step.
An initial consultation (generally pretty cheap, since it's partially the lawyer's marketing/sales session) should allow you to determine where you stand and what action on your part is appropriate. |
| Thu 20 Nov | anon | Absolutely consult a lawyer, but I would also recommend a CYA strategy of getting your resume together and beginning the search for a new job. |
| Thu 20 Nov | MSHack | Talk to a lawyer and if you are in the US, make sure they specialize in Employment Law (may be true elsewhere, but I know it is here).
They can tell you what you need to do, so you can later file a complaint. They can also send a note for you to HR, and your boss indicating they may be asked to investigate. |
| Thu 20 Nov | Ged Byrne | While your waiting for some valid legal advice, keep an incident diary.
Record the date, time, and details of each incident. |
| Thu 20 Nov | Alyosha` | Then post it on JOS.
It makes for interesting reading. |
| Thu 20 Nov | njkayaker | If the boss's boss doesn't know anything about it, then it can't be expected that he'd do anything about it.
Did the boss's boss know about the prior instance of this? |
| Thu 20 Nov | M | Besides working the legal/HR angle, you might want to schedule some time with your boss and boss’s boss to discuss this situation. Explain to him that you feel something has happened, unbeknownst to you, in the last few weeks/days where you feel maybe his confidence is lacking in your work. Ask him to outline a plan and specific measurable expectations of you for the next several weeks/months. If they cannot tell you what their expectations are, how are you to meet them. This is certainly acting on your part, but adds to your case that you have made every effort to accommodate the needs of the company. Most large companies have a 90 day performance plan they will put you on if they are unhappy with you. This will mean you any further problems and you are gone. You should beat them to the punch and get these measurable expectations so you can show you are following them before they can try to use it against you. |
| Thu 20 Nov | Dennis Atkins | The writing's on the wall -- you are going to be dumped and your employer wants to make it as unpleasant as possible for you.
Given this, the mitts are off. The social contract doesn't apply anymore.
The healthiest response here some have hinted at -- Don't get mad, get even.
Yes, see an attorney and document everything that happens to you.
At the same time, get your revenge. Pee in the bosses coffee if you like I suppose. Send anonymous reports to MS and the RIAA of all the programs and CDs the company has illegally pirated. Any thing nasty but barely legal you can think of, do. This is one of those rare cases -- where you have absolute verification that some one is trying to destry your life, in which it is totally ethical and excusabel to screw them back over big time.
But don't get caught. |
| Thu 20 Nov | Mister Fancypants | Also, whatever you do, don't quit.
If they want to fire you, let them be men about it (or let it drag on indefinately). Don't allow them to force you to quit (which impacts your ability to collect unemployment, among other things). |
| Thu 20 Nov | Robert Jacobson | 'In the UK it is called 'constructive dismissal'. Big no no.'
The problem is that in the US, most employment is 'at will' -- which means that an employee can quit, or be fired, at any time for any reason. (There are certain exceptions, like you can't fire someone for racially discriminatory reasons, e.g.)
If an employer can legally dismiss an employee, it can also constructively dismiss the same employee. (However, as BB says, you should still be entitled to unemployment benefits.) The only exception is if the harassment becomes so severe that the harassment itself constitutes grounds for a lawsuit, like sexual harassment or physical abuse. Receiving disparaging comments from coworkers probably doesn't rise to that level, though.
The best advice for now would be to turn the other cheek (and look for other employement.) Otherwise, nicely confront your boss's boss or your boss's boss's boss and tell him to put up or shut up -- end the harassment or lay me off. Of course, document everything.
Do NOT act up and start causing problems. Then they can fire you, which means no unemployment benefits. |
| Thu 20 Nov | Sue them hard sue them long | Employment case law is changing. Some folks are now winning cases brought on grounds of emotional harassment/mental abuse. Also, have been a few that have won disability payments based on work-based mental cruelty. |
| Thu 20 Nov | Bill | Do you have a contract with the company? |
| Thu 20 Nov | Been there | Courts - and settlement negotiations - pay a lot of attention to documentation, so the most important thing to do is write everything down in a little diary.
Generate a few emails if you can and print them out. Tell your boss you're being insulted and abused. Record what he does or doesn't do.
You actually can have a lot of fun.
Instead of hiring a lawyer, you could join a union, who will have a workplace organiser who would be about ten times tougher and smarter than a lawyer, from what I've seen. Lawyers often consider that the employer might represent future business, so they avoid pushing too much. A workplace advocate will push your interests. |
| Thu 20 Nov | Satsuma | RP, face it - you are deluded and you are imagining all this nonsense. I think you need psychotherapy. Maybe your boss's boss will pay for it? |
| Thu 20 Nov | Vince | Perhaps your boss is doing you a fovor. Is it possible he is supposed to terminate you on a certain date, but is not allowed to tell you about it?(then again, if you *quit*....). |
| Thu 20 Nov | Sven | this story is a troll. if an american company didn't like you, they would just fire you. why would they continue PAYING YOUR SALARY and also pushing you around? if you are working in japan, it might be a different story. I don't know about the rest of the world. |
| Thu 20 Nov | Bored Bystander | >> this story is a troll. if an american company didn't like you, they would just fire you.
Absolute bullsh*t. What an ignorant statement. They want RP out.
US companies avoid firing people (even when the employee is antagonistic) because there is always the possibility of a lawsuit. And most companies want to avoid the morale stench created by a firing, at all costs. So the prevailing practice tends to be to make the workplace undesirable for the employee. Make the employee walk, so it looks voluntary and so no unemployment needs to be paid.
The device generally used to do this is the 'probationary period'. One slip-up and the employee is toast. And it tends to be legally airtight because the premise is that the employee is 'in trouble' and he needs to keep a spotless record during this period in order to make amends.
This story sounds more like a company that probably 'should' be using a probationary period device but is too clueless to understand the liability they're incurring for themselves.
YES, most of the US uses at-will employment law. In theory you can be fired instantly for any reason except certain specified cases (protected groups, etc). In practice, most companies would rather avoid the confrontation. So they do slimy things like this. |
| Thu 20 Nov | Sven | I don't know where you have worked, bored bystander, but in my experience, if a company wants to fire someone, they just fire them. I'm assuming he is a white (or asian) male. Companies aren't afraid of lawsuits from these people. They are afraid of being sued when they fire pregnant women.
The beginning of RP's post signals an imaginary situation. He already knows he is being replaced, so he's losing his job anyway. So the company has decided to make his last days hellish, just for fun? There are a lot of sadists in middle management, but I just don't buy this particular story. |
| Thu 20 Nov | AndrewR | >>So the company has decided to make his last days hellish, just for fun
I expect having this person quit would be much cheaper for the company than making them redundant - hence the not-so-gentle persuasion going on.
To the original poster: Most people at work need to worry about their coworker/boss's opinion of them. You are now free of this worry - you know they want you out. So do the absolute bare minimum of work (and do that slowly). Ignore threats and insults - you no longer need to care what these people think of you.
Decide beforehand how long you're willing to keep up this sort of passive resistance in the hope of a redundancy and don't go over it. Polish the 'ol resume and start looking. |
| Thu 20 Nov | . | sven, you've lived a sheltered life. There are plenty of people and plenty of situations who will turn on you and change their treatment once it's known you're getting sacked.
It's the way some people deal with inferiors. It's also a protective mechanism, since people don't want to be seen associating with the guy who's getting sacked.
And there are complete jerks who rebel in this. In other times, they would have been the soliders who killed prisoners. |
| Thu 20 Nov | Robert Jacobson | In the companies I've worked for, lots of incompetent people have been kept around just because nobody wants to be responsible for firing them. Sometimes the managers are afraid of legal repercussions, sometimes they just can't stand being the 'bad guy.'
I have no idea what's really going on here, but the story is plausible to me. I'm sure there's another side to it though. |
| Fri 21 Nov | Sven | 'The entire IT department has been recruited to push me around, whether they like it or not - some of them are my friends who have told me that they were ordered to mistreat me. Of course they only do it in front of my boss.'
sorry. i still don't believe it. doubters, peform a thought experiment. imagine you, at your company. with your manager. imagine the scenario described in quotations above. completely ludicrous. the boss has an all hands meeting to instruct the IT department to mistreat a specific individual? 'ok all you help desk admins. I wan't you all to treat RP like shit for the next two weeks. Whenever you see him, make cracks about his mother. Bump into him in the hallway. Park your car in his spot. Steal his sandwich from the fridge.' Not plausible. Internet troll. Get a life, folks. |
| Fri 21 Nov | . | sven, it's true that RP's description of the problem sounds a bit raw. It could be either way.
It could be a psychology student doing a test for her term paper (I posted this scenario to JOS and observed these reactions ....) or maybe RP exagerates a little. I could see a situation such as RP describes arising by osmosis, but not, as you point out, by fiat. |
| Fri 21 Nov | RP | To sven
I am not in the US. I only saw your remarks the day after I posted this.
Here in my country (inside the EU) the law makes it almost impossible to fire people.
And since my boss doesn't know what to do, he creates this little hell. |
| Fri 21 Nov | Katie Lucas | In that case -- get a lawyer. Get documentation. And then find another job.
You quit, take the other job, and then file for constructive dismissal. If you can make a case for anything else as well, do that. Basically, to me, this looks like they want to make you redundant, but can't because if they make the position redundant, they can't then immediately outsource it.
Gather all the evidence you can, and then get your legal to talk to their legal. |
| Fri 21 Nov | Fernanda Stickpot | Well if the goal is to get rid of him, of course it makes sense just to fire him.
If the goal is to be mean, then firing him and making his life hell on the way out, also makes sense.
And no, I don't think it improbable that some people's goal is to be mean. Of course there are people like that. Or people with other goals who will go all round the houses to accomplish a seemingly straightforward task. It makes no sense if you assume that their goal is to accomplish the task, but when you realize that their actual purpose is to revel in manipulation or control-freakery, their behaviour becomes decipherable. |
|
| Creo Tokens link dead | Thu 20 Nov | Toby Allen |
| Hi Joel,
The link you have for the tokens seems to be incorrect (or now no longer exists) tis seems to be right
http://www.creo.com/global/products/software_solutions/creative/tokens/default.htm |
| Thu 20 Nov | Duncan Smart | But just look at that directory structure -- somebody's gone taxonomy mad. |
| Thu 20 Nov | www.marktaw.com | I was just thinking about tokens yesterday.
I use Trillian as my instant messaging client, and when someone in Yahoo sends me a file, it shows up as a link to their IP address.
This doesn't work if we're both behind firewalls, probably because the IP address I'm being given is on their local network. Conceptually, however, this is very similar to Tokens. |
| Thu 20 Nov | So Man | Damn, I was hoping that they realized that it was a stupid idea and killed it but then you gave a link that worked... |
| Fri 21 Nov | dontPatronizeTheLinks | I AM THE TOKEN LINK!!!!!!!!!!1111 |
|
| Webapp GUI design | Wed 19 Nov | Eric Debois |
| Hey.
Im working on a webapplication and I need ideas for how to make a good usable GUI for it.
The common hierachical -click your way downwards- or search engine like structures does not work.
The problem mainly is that there are about 20 tables involved and all of them should be available for add/update/delete actions, but they do not group in any natural fashion.
My best bet at the moment is to just chuck all those add/update/delete-links in there and then educate the users on how the tables are related. But thats very close to what I cosider a failed gui design.
Had this been a desktop app, I would have used a treeview and a typical properties subform where the user could go in and edit the values for each node. But doing something like this in a webapp would just result in a whole lot of jumping back and forth...
Im not sure I explained the problem to well, but what Im looking for is basicly examples of good web GUIs for apps where the datamodel doesnt map naturally to web pages. |
| Thu 20 Nov | van pelt | there are a lot of web apps out there that use CSS and/or javascript to great effect in presenting data in all sorts of views, be it tree-style, help/popup, expand/collapse... and all without having any further server hits. Pick the presentation you want and search google.
There are an awful lot out there.
The one that I can remember right off the bat is brainjar.com. There is a positively nifty menubar widget there. And I don't have the page up yet, but I'm currently tweaking a tooltip help script to work from an image map... I believe the search I did was for 'imagemap' and 'tooltip'.
Good luck. |
| Thu 20 Nov | anon |
Don't Make Me Think: http://www.amazon.com/exec/obidos/tg/detail/-/0789723107/103-3684273-6047016?v=glance |
| Thu 20 Nov | Chris Tavares | Don't think in terms of the tables.
Think in terms of the tasks the user needs to do.
Users don't want to place a record in the order table. They want to get flowers mailed to their grandmothers. |
| Thu 20 Nov | anon | This link on inductive UI design might help:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/iuiguidelines.asp |
| Thu 20 Nov | Eric Debois | Anon > good link, but not exactly what I need.
I should have been more specific.. The app is a sort of inventory managing app so the functionality is basicly read, write, search and update the database.
The problem is the amount of data and its interconectedness.
Like: Widget A is of type 2 which belongs in category Z and X. Widget A was provided by Supplier A and located at Location Zulu.... and so on.
All in all there is 20 tables that the user needs to be able to add/update/delete in.
Hmm, its really hard to explain this problem. How ever I arragne the pages and links, I cant escape the number of form fields required...so thats not it.
But how ever I arrange it, I also end up with a GUI where the user must jump back and forth and do things in a particular unintuitive order.
Umm.. come to think of it.. maybe a couple of wizards would do the trick.. |
| Thu 20 Nov | Herbert Sitz | One more suggestion that again might be something that won't help you. But you never know. . .
Cooldev has a nice javascript tree component and other menu components that might help organize your UI:
http://javascript.cooldev.com/ |
| Fri 21 Nov | Gavin | 'Complex problems have simple, straightforward, easy-to-understand wrong answers'
So wouldn't a complex system have a simple, straightforward, easy-to-understand wrong solution?
Nonetheless, maybe you should make it widget-centric AND supplier-centric AND location centric etc etc. Give the users the possibilities to look at the data any way they want.
e.g. I'm working with Widget A and I want to change/add suppliers and move it to location X.
e.g. I want to update the list of widgets that Supplier B suppliers at delete an old location.
There will be some redundancy but it is good useful redundancy, sortof like the system being able to support multiple similar workflows. You following me? |
|
| When Will the 'Sunset' of Win32 Happen? | Wed 19 Nov | Bored Bystander |
| Just curious if MS has an official position on this or if anyone has a SWAG based on known facts. Does anyone care to pin a specific year on this event?
My definition of sunset in this context is - an API being termed deprecated (or words to that effect) because it is unable to take full advantage of the currently popular OS or hardware.
Example - Win16s sunset period commenced with the release of Windows 95. Yes, developers knew well in advance that Win16 was on the way out, but nothing on the desktop that was widely available could use the next big thing (Win32) until the actual release of Win95.
PS: I know my definitions will themselves create a firestorm of controversy... as though posing a question was an act of war. |
| Wed 19 Nov | Dave B. | I can't image the Windows API itself ever going away (taken away from programmers). In fact I hope it never does. It enables you to do some really neat things. As far as Win32, I believe it may subside on the dawn of the 64 bit processor generation and their dissemination onto the desktop. After all the Windows API is an interface to the hardware (among other things). What will it be called? Win64 of course. (I'm just speculating.) (In fact I would say that the API is a necessity that can never be thrown out because it is a layer of abstraction in and of itself. Just think how many applications or the components that comprise those applications make use of it.) |
| Wed 19 Nov | Ted | Surely it's not scheduled for death any time soon.
How am I going to interact with hardware? |
| Wed 19 Nov | Bored Bystander | For context, what I've read on this subject indicates that .Net is intended to be the system API in 'some' future time.
Right now the CLR is implemented as a runtime library, but in the future it *will* be the system API and Win32 support will be via a runtime library - the opposite situation that we have today. Or at least this is the understand I've taken.
I've never bought this notion. And perhaps it's just marketspeak and impractical anyway. It would be like Intel saying that x86 instructions are going away and all processors will execute bytecode natively.
Another possibility will be that Win32 native applications will be available and Win32 will still exist as it does today, but only available for use by administrator permission. IE, the default user permission will be to run CLR based and 'managed' Win32 applications only.
I agree, it sounds nuts.
Thoughts? |
| Wed 19 Nov | Dave B. | I don't see it happening. The CLR isn't even close to being an API in fact it uses and is based on the Win32 API. As for having to have administrative privilieges to run a Win32 app... well that's crazy. I don't think QuarkXPress, InDesign, Photoshop or any complex application can be written in managed code (C# or VB.NET). You need the lower level API calls to make these applications happen. So if I wanna run InDesign I have to be administrator? Don't think that would go over very well. |
| Wed 19 Nov | Matthew Lock | The day after we switch to IPv6 |
| Thu 20 Nov | Sum Dum Gai | But the plan is come longhorn that every single one of those 'lower level API calls' we be possible from .NET - they'll all be wrapped.
Infact they're suggesting that the only way to call some of the new APIs will be through managed code.
If this comes to pass, I expect that win32 will die as soon as Longhorn reaches critical mass. |
| Thu 20 Nov | Richard Ponton | Win32 will always be around as backwords compatibility is the bread-and-butter of Microsoft. They can't escape it. If they gave up backwards compatibility, it would leave an opportunity for a new competitor on the desktop. If people have to switch off their old apps anyways, why not look at the apps available on Linux as well?
However, it may be relegated to the unperforming, limited existance that 16-bit programming is today. It'll run through a layer or 50 in a seperate virtual machine. No new apps that need to take advantage of the performance of modern hardware will use it.
Yes, it will happen eventually. Just as DirectX got good enough to kill direct-to-hardware game programming, managed code will get good enough to replace Win32 for doing any nitty-gritty work one might need to do. |
| Thu 20 Nov | Interaction Architect | From Cringely's latest:
'It's particularly grim for the techiest among us because Longhorn -- Microsoft's next version of Windows -- is pretty dedicated to keeping us from doing anything non-boring with our PCs. You can run apps or you can run apps. This really ought to work in favor of Linux and other less-restrictive operating systems, at least among developers.'
http://www.pbs.org/cringely/pulpit/pulpit20031113.html |
| Thu 20 Nov | Robert Moir | Has cringely ever said anything that was worth reading? |
| Thu 20 Nov | Michael Moser | Maybe they will ban WIN32 when they find something that
1) is recognized as THE ULTIMATE security model
2) solves dll hell problems.
my guess is that .net does almost manage to solve both problems,
in other words - the old problems are just taking a different form ... |
| Thu 20 Nov | Mister Fancypants | Cringely is a paid troll. He purposefully authors his articles to get an emotional response from the readers, even if he doesn't really believe what he is saying. This helps him wind up on the front page of Slashdot and other similar community blog sites often, increasing his readership.
Like any troll, the best thing to do is just ignore him. |
| Thu 20 Nov | Eric Debois | >>Cringely is a paid troll.
That can be said for about 70% of the media. IMHO |
| Thu 20 Nov | pdq | Crigley has seemed to go off the deep end recently. I've stopped reading his columns. |
| Thu 20 Nov | trolling for dollars | trolls commenting on trolls on JoS. What will they think of next. |
| Thu 20 Nov | Portabella | > Cringely is a paid troll.
He's primarily an entertainer, and that's what they do.
I read his column every week.
It's often bogus (the corporation to share MP3s comes to mind), but rarely dull. |
| Thu 20 Nov | runtime | Will Longhorn still support Win16 apps? Probably. As mentioned above, I think the Win32 and Win16 APIs will exist. The transition to the CLR API has begun. Many new Longhorn features are ONLY accessible from CLR, but Longhorn is introducing new Win32 APIs.
How many Win16 APIs have been added since Windows 95? Once Microsoft releases an OS with ZERO new Win32 APIs, then you know Win32 is dead (or at least frozen so the Wine project can finally catch up). |
| Thu 20 Nov | Jim Rankin | 'It would be like Intel saying that x86 instructions are going away and all processors will execute bytecode natively. '
Aren't current x86 processors really RISC cores with an x86 front end? |
| Thu 20 Nov | Almost Anonymous | 'Aren't current x86 processors really RISC cores with an x86 front end?'
Essentially yes. However, most of the RISC looking instructions in x86 execute like they do on RISC machines. The large (and mostly legacy) x86 instructions are broken into smaller RISC-like instructions and executed.
This is bit simplified because even RISC cores break instructions down into smaller parts to be executed.
I don't see x86 going anywhere anytime soon. Our computers still boot into real-mode!! It will be kept around forever for backwards compatibility but I assume at some point will switch to a closer-to-the-metal instruction set not a more abstract VM like instruction set. Of course, the closer-to-the-metal instruction set will probably spend most of it's time executing byte codes. (Think transmeta CPU's) |
| Thu 20 Nov | Robert Jacobson | Cringley's column repeats a rumor (which has been floating around for over a year) that the XBox 2 processor will use MSIL as the native instruction set.
I had assumed that since MS was useing the PowerPC architecture, it would have the same instruction set as other G5 processors. Does this rumor have any substance -- would it be possible and practical to reconfigure the PPC to use an MSIL instruction set? |
| Fri 21 Nov | Chris Tavares | I can't see any reason to use MSIL as a native instruction format. The cost would be enormous, you'd have to do all sorts of funky caching to get metadata token lookup done efficiently, and there's already at least one JIT complier for IL -> PowerPC (Rotor runs on MacOS X).
I can see them making the CLR available as a toolset on the XBox no problem - it'd be great to have it. But as the native instruction set? Makes no sense. |
|
| MySQL Gotchas | Wed 19 Nov | Andrew Hurst |
| http://sql-info.de/mysql/gotchas.html
After working with MySQL for about 4 years now, I stumbled upon this url above in a slashdot discussion. Absolutely amazing. I still think MySQL is good for certain things, but I sure am going to look at other databases a bit more closely before I use MySQL in another project.
This isnt a oh my gosh, there is problems with my database! port immediately! thing, but more of a Ive been thinking of starting new projects in postgresql for a while, and that NULL thing just puts me over the top type thing.
Just thought others would like to see this. |
| Wed 19 Nov | Almost Anonymous | I read it. I use MySQL. MySQL sucks. I already knew that; and I have all my experience using it to back that up. At least for now, MySQL is here to stay.
I might evaluate Postgres for the next version of our product. The limitations of MySQL's SQL language is insane. I find myself writing all sorts of contorted SQL queries.
Performance is, however, a huge concern. More then anything, I need to pull records out very fast. MySQL is designed for that purpose above all else. Postgres is a more well-rounded package and thus suffers a bit in that regard.
Lastly, there is the issue of installed base. Everybody has heard of MySQL and it's installed just about everywhere. It's got lots of history. Postgres is more of unknown quantity; less people have heard of it or used it and it's not as installed as MySQL.
Oh well.. still have a few months before I have to make any decisions. |
| Wed 19 Nov | HeWhoMustBeConfused | Almost Anonymous,
If you are committed to open source databases, I suggest you try Firebird. It has all the SQL capabilities you seem to expect, is well supported by a small-but-vibrant community, and works REALLY well.
The only area of criticism I have is with the poor state of ODBC drivers for the product, but I noticed a new driver release on their site last week and haven't had a chance to check it out. |
| Wed 19 Nov | Eric Debois | I use mysql alot too.
If you stay within certain boundaries, it kicks ass. But one needs to know these limits beforehand.
It has been overhyped, which is what creates the problem. Some people seem to think it covers all aspects and is a state of the art RDBM. |
| Wed 19 Nov | Clay Dowling | I have to agree with Eric. It's a great tool within it's limits. For the bulk of what I do, those limits are fine. I've never run into a database that doesn't have gotchas, and it's always a good idea to test things out before committing yourself.
There are definitely alternatives to look at though. I'm the sort of perverse SOB who likes things like Berkeley DB because it reduces external dependencies. SQLite is nice too, for really small projects without a lot of inserts.
My point: MySQL is often chosen as the default tool in the UNIX world, but there are other tools that might be more appropriate for your application. It never hurts to know about more solutions. |
| Wed 19 Nov | Matthew Lock | At just pulling records out of a table, how much faster is MySQL that Postgres? |
| Wed 19 Nov | RocketJeff | >>SQLite is nice too, for really small projects without a lot of inserts.
If you're doing lots of inserts at one time in SQLite, make sure to wrap them all in a single transaction (or at least put a bunch in each transaction). If you don't explicitly use transactions, SQLite will wrap each insert in its own transaction - and all the disk syncing really slows it down. |
| Thu 20 Nov | 1/4 Ain't Bad | Thank you so much for this list/link. This will prove quite useful to me. |
| Thu 20 Nov | John C. | Without denying that these are issues for MySQL, isn't it the case that all databases -- even the really big boys -- have various annoying dark and dangerous corners to watch out for?
To take an example, if I remember correctly (and I am not a hardcore db guy), Oracle does not permit you to distinguish between NULL values and empty strings ('') in a varchar2 field. To my mind that's a humongous oversight. Any db gurus want to convince me that's a useful feature rather than a design flaw? |
| Thu 20 Nov | MR | John C,
I just checked and you are correct for both Oracle 8i and 9i:
SELECT NVL( '', 'this should not show up' ) FROM dual;
result:
'this should not show up'
MS SQL Server and Sybase ASE also suffer from the bizarre handling of null values. Because marking a column as 'null' in SQL Server/ASE results in a variable-length column (for chars) you no longer can insert blank chars in null-able columns.
If you do:
INSERT INTO mytable (null_col, not_null_col ) VALUES( '', '' ) -- two blank chars
It's changed to:
INSERT INTO mytable VALUES( ' ', '' ) -- one space and one blank
I don't know if the latest version of SQL Server still does this.
By way of Oracle's null <-> '' it effectively does the same thing ('blank' chars are really a single space ' ').
These side-effects are a prime example of why nulls are a bad thing. |
| Thu 20 Nov | Saruman | I've been a PostgreSQL user since the late 6.x versions. The current 7.4 release (as of this week) is looking very good and my 7.3 installs have been rock solid ever since I've started using them.
I haven't tried Firebird, SAP DB or SQLite because I've been satisfied with PG. I still use MySQL occasionally for simple lookup databases that are read-only. It's useful for things like Zip code lookup databases.
That's not to say there are no bugs or 'gotchas' with PostgreSQL, just that none of them are that bad. In my mind, the worst ones are:
64-bit integer fields don't use index if you feed them a 32-bit literal, but if you quote the literal as a string, the index will be used after the implicit cast.
Sequence Generators are 32-bit.
Working with dates can sometimes be weird. Mostly for date ranges.
Tuning the query plan analyzer is not always as straightforward as it should be and on complex queries, it may prove to be necessary to discourage PostgreSQL from using sequential scans because actually tuning the QPA to prefer the proper path may harm other queries' performance.
Inserts outside of transactions can be slow.
Trigger performances in 7.3 is not all that great.
Subqueries used with 'IN' and 'NOT IN' are slow in 7.3, better in 7.4.
That being said, I'll take a feature that's slow over a feature that's missing or that behaves weirdly. |
| Thu 20 Nov | MR | Oh, and the fact that I have to use the stupid pseudo-table (dual) is incredibly annoying as well.
In virtually every other DBMS I can do
SELECT getdate()
but in Oracle I have to tack on FROM dual; (ignoring the getdate()/sysdate conversion).
BUT -- we can't simply wring our ands and go 'This sucks but let's accept it'. The more the end-users complain the higher the likelihood that things will get fixed. After all, it’s the squeaky wheel that gets the grease.
A prime example is MySQL’s about-face on foreign keys. Many remember the comment in their documentation on lack of FK support:
(paraphrased) “[FKs] ... are annoying at best and should really be handled in the application.”
The DBMS builds value (e.g. asserts new facts) from data ONLY if you can be assured the data is correct. Handling FKs in your application does NOT assure that your data is correct (as the application is easily circumvented) – the various data anomalies that one encounters when working with a DBMS that is not properly validated in the DBMS can cause data to be virtually worthless (and makes someone spend countless hours fixing it).
After browbeating MySQL with this they *eventually* dropped their condescending (and wrong) statement from the docs and half-assed support of FKs by including the InnoDB table-type.
The problem, though, is that practitioners rarely know what they’re missing so how can you know that what you’re doing is wrong? I often hear ‘right tool for the job’ when defending sub-standard tools (as an aside this worn-out phrase should be stricken from our vocab). The problem with it is that if you don’t know the fundamentals (e.g. why you need constraints) how can you even begin to claim that it’s the ‘right’ tool?
Sort of on topic:
A fun book that, somewhat indirectly, illustrates a lot of gotchas is: “SQL Performance Tuning” by Peter Gulutzan and Trudy Pelzer (ISBN: 0-201-79169-2 for your bookstore searches). For anyone that works with different DBMS products (this book covers InterBase, SQL Server, MySQL, Oracle, and Sybase ASE; not sure why it doesn’t cover DB2) reading this book is a requirement. |
| Thu 20 Nov | Patrik | MR,
>Oh, and the fact that I have to use the stupid pseudo->table (dual) is incredibly annoying as well.
What is it you have against syntactically correct SQL statements all of a sudden? :-) SELECTs without a proper FROM clause would require hacking the SQL syntax parser, to handle the special case of functions.
Also, you dont have to use SÈLECT FROM DUAL to run stored functions, you can select them from any table, along with other colums, but you probably knew that already.
but in Oracle I have to tack on FROM dual; |
| Thu 20 Nov | MR | Patrik,
Other DBMS products don't have a special case for functions.
In MS SQL/Sybase ASE I can do:
SELECT 1
GO
Or in MySQL I can do:
SELECT 1;
Just wishing Oracle didn't require me to tack on the useless 'from dual'. |
| Thu 20 Nov | Richard Ponton | So you're complainging about having to type the extra characters 'FROM DUAL' instead of the much simpler 'GO'?
Wow. Talk about a nitpick. I mean, DUAL is kinda a stupid name for it, but it takes like 5 seconds to understand its use -- it's a table gauranteed to have only one element.
I mean, SELECT function() makes no sense. If you're going to bastardize the SQL syntax, why not just allow 'function();' instead? |
| Thu 20 Nov | ThinkSQL | In standard SQL, as Patrik and Richard pointed out, SELECT without a FROM is invalid.
You can use the VALUES() table constructor without a SELECT or FROM though, e.g. VALUES(CURRENT_DATE).
At least that should be the case if your DBMS claims entry level SQL/92. |
| Fri 21 Nov | MR | I think I raised more important issues than the stupid 'FROM dual' thing, but I guess if that's all you want to pay attention to... :rolls eyes: |
| Fri 21 Nov | Leonardo Herrera | On a semi unrelated topic, I really, really like MySQL's "--i-am-a-dummy" switch. |
|
| Blaming poor UI on user ignorance. | Wed 19 Nov | christopher baus (www.baus.net) |
| I have a theory that if user cant figure out how to perform a task in a system, they blame themselves rather than the software or UI designer. That pops in my mind whenever I struggle with the UI of the POS system at my local Safeway. But recently I rationalized that I obviously know something about software, and maybe the fact that cant tell the system that I have a credit card without a struggle reflects on the system and not me...
Anyways I wrote a description of the problem at:
http://www.baus.net/archives/000025.html |
| Wed 19 Nov | www.marktaw.com | Donald Norman posited this in The Design of Everyday Things. |
| Wed 19 Nov | christopher baus (www.baus.net) | Hmm interesting. I never read that book. I'm not a UI person at all. Like I said usability is command completion at the Unix prompt. |
| Wed 19 Nov | www.marktaw.com | lol.
Yes, users blame themselves for not understanding poor UI. Just think of your mother thinking she's too stupid to program the VCR or check her email.
Put two verbose & logically twisted options in front of someone and when they have a hard time understanding, they'll assume it's because they're not as smart as the person who designed the system... After all, they must be smart, they designed the system. |
| Wed 19 Nov | Jan Derk | I concur: your theory is exactly what Norman's book is about. Users generally blame themselves if they mess up, even when the system is wrong. Almost all problems users are experiencing with software, their video recorder, telephone system or door are due to design bugs.
As most software has some interaction with a user, any programmer that wishes to stand out from the crowd should read GUI books, including the Design of Everyday Things. Many user interfaces suck, because they are build by programmers. You can make a difference by making sure you become both a programmer and a GUI Designer. I never understood why people think programmers can't be designers. Just try. Personally, I liked GUI Bloopers by Johnsen too. |
| Wed 19 Nov | Must be a manager | It's not as simple as this. Lots of users blame either Microsoft or programmers in general whenever they're frustrated, which can arise because:
a) they're new users and the designers deliberately chose to favour experienced users over new users
b) they're less intelligent than general or have unusually poor visual intelligence
c) they're not accustomed to UI's (see a).
UI's are often poorly designed, but this isn't usually the case in the type of high visibility applications or situations that are typically the subject of such complaints.
Use the aeroplane analogy. If someone sits in a 747 cockpit and can't understand it, they don't automatically condemn Boeing for poor UI design. |
| Wed 19 Nov | christopher baus (www.baus.net) | That brings up another point. One UI fits all. Does anyone here think that there should be different UIs for different user classes? I think this is were Windows Server really goes wrong. There doesn't seem to be a recognition that what is good for Grandma's emails might not be appropriate for a 24x7 data center.
Some say Unix is not user friendly, and I'll agree. Until you master it. Then it because quick and easy to manipulate the system. Unix is expert friendly as it has been said. |
| Wed 19 Nov | hoser | I've been kind of convinced that Baus is correct for some time. Users build into their memory a 'method of madness' so that they can circumvent potential catastrophic situations or just know how to navigate the UI. The most common of these is the rule 'save early, save often'. Because if you don't you're asking for trouble when the OS or application dies.
I'm convinced this sort of adaptive learning occurs with even reasonably experienced users. People learn early that 'doing X will incur the wrath of Y'. They learn cause and effect, and what not to do. The people who haven't figured this out yet are considered computer newbies - or worse.
I think that another good example of UI madness is MS Word. Somewhere around Office 97, Word was very predictable - and while not perfect, with a little experimentation and experience, a user could almost always obtain the desired effect (like proper margins, how to link an object, a master document, how templates worked, etc.).
The problem with later versions of Office is that the UI keeps changing, and all that learning becomes for not. Where features are hiding in the menu heirarchy, the formatting tricks you once knew don't work any longer.
Who can be blamed for degenerating back to text files and command lines? All of a sudden, you're getting work done again... |
| Wed 19 Nov | Han Solo | Out of interest, why ask the user at all. Surely a machine can tell if something is a visa or master card based on the format of the number:
see http://www.erikandanna.com/Business/CreditCards/credit_card_authorization.htm
Surely American banks aren't stupid enough to use numbers that are the same as these well known numbers? |
| Wed 19 Nov | christopher baus (www.baus.net) | I think the problem might be the cards that can be used as credit or debit. |
| Wed 19 Nov | christopher baus (www.baus.net) | Hey hoser. (funny I just typed hey hoser.)
It is interesting that you point out the UI inconsistencies in Word. I've been evaulating different text style implementations in different word processors and it turns out Word's implementation is the least consistent. Don't believe me?
Try cutting and pasting text from one document into another. Then try the same thing Open Office Writer. In my opinion Writer does has the correct behavior, but I'm afraid since our customers are more familiar with Word that I might be forced to implement the functionality in a similar manner as word. |
| Wed 19 Nov | Slashbot | Interesting that Mr. Baus starts yet another thread seemingly unrelated to Micro$osft's evil empire at first - which really made me wonder - but then manages to drop two notes why Micro$oft Server and Micro$oft Word fail in one or the other way.
---
Yesterday my car broke while I was on the freeway. It came to a halt just before one huge Micro$oft Office 2003 billboard. There must be a connection between my car's failure and Office 2003's failure to deliver proper XML documents. |
| Wed 19 Nov | www.marktaw.com | You're right, some users will blame Microsoft or Programmers. Others will blame themselves. There is no universal rule that applies in all situations.
Airplanes are different, they're designed for someone who has hundreds of hours of training.
Whenever I get the chance, I use He and She for different situations. Whenever there are two actors I arbitrarily choose one as He and one as She, and I try to go for the opposite of what other people would choose.
The CEO called customer service. She inquired about the Mile High Start bar. The customer service representative responded that he would talk to Bill Gate about it. |
| Wed 19 Nov | christopher baus (www.baus.net) | Ok, X fails horribly because back in the day it was thought that allowing a flexible look and feel would be a benefit and not a drawback. The problems with X probably gave Microsoft a bigger advantage than any other single piece of technology.
Also ask Steve Jobs about UI flexibility. He'd make the same argument about skins. Certainly early this was obvious since xlib, motif, OpenLook, apps all behave differently. Today it still a problem with KDE vs Gnome. So it is pretty obvious that the X Window System has more usability problems than Windows or OSX.
The X Window Systems is so horribly bad, it isn't even worth using it as a basis of a discussion regarding UI design.
Truth be told I haven't read slashdot in over 4 years.
Does that make you feel better?
Also I happen to be a server admin, and dissecting various Text Style implementations, so it is what I know. |
| Wed 19 Nov | Slashbot | Micro$oft is evil. I know it because I happen to be a catholic. |
| Wed 19 Nov | hoser | Christopher,
I'm as frustrated by OpenOffice as I am MS Office. Heck, I cannot even figure out how to create a new template. Ackk.
I kind of gave up on WYSIWYG editors for some time, and then some heavy weight docs need writing, and some nice state diagrams and block diagrams would really help - and now here I am looking like a perfect idiot. Like a hoser that I am.
Whilst I get up to speed, I drew everthing in text and ascii art (ascii art, can you believe it??) and told our PM and tech writer they could do real artwork and word docs, or wait for me to get word literate again... |
| Wed 19 Nov | christopher baus (www.baus.net) | I'm not claiming that Open Office is better than Word or MS Office. It is not (although it is cheaper). I just happened to be looking a one specific feature. Text (or Paragraph) Styles. In that case I believe Open Office's implemenation is more consistent.
The cut and paste functionality in Word changes the copied styles upon pasting. I find this disconcerting. |
| Wed 19 Nov | hoser | >> Word changes the copied styles upon pasting
Oh- that is so true. I had forgotten all about that. You take text from a web page or document, and it pastes it into your document with the source's fonts. Who would think that was normal? |
| Wed 19 Nov | mb | hoser -
large docs? they're the domain of TeX and friends. All text-driven. Though Word does a decent job on them and takes fewer years to learn.
Back to user interface, um, yeah, this sounds like a classic 'the implementation is the spec' issue. After all, the last version worked like that.
Around here, supermarkets usually have either a credit/debit button, or the cashier asks and pushes the right button.
Gas station self-pay pumps have advanced a lot. The latest ones I've seen say 'push here for debit', and otherwise assume credit--no buttons need be pressed at all. |
| Thu 20 Nov | Christopher Baus | ok slashbot... Pull off the mask and explain your catholic comment. I don't appreciate it. Let me make my point clear. While I am no fan of Microsoft, I will give credit where credit is due. Windows is far more usable on the Desktop than any commericial Unix type offering based on X Windows.
I also have a lot of respect for David Cutler and I cut my teeth on his previous baby, VMS. VMS was probably the most advanced OS of its day. David Cutler has been the ONLY software architect that has had the ability to go head to head with the Unix community since as long as go as the 70s. VMS ruled its day, and now WinNT variants rule again.
If you want to make a personal attack, then I suggest you take it off line. You can email me at chris_baus@yahoo.com... |
| Thu 20 Nov | Slashbot | If you wanted to look like a complete idiot, then I'd say you succeeded. |
| Thu 20 Nov | Christopher Baus | Whatever. This forum has gotten as lame as the rest. |
| Thu 20 Nov | Ged Byrne | It not just that people do it to themselves.
I think that some people like software to be complicated because there mastery of it seems to give them a feeling of power and superiority.
Consider some of the comments made when the UI failings of Word were discussed before:
http://discuss.fogcreek.com/JoelOnSoftware/default.asp?cmd=show&ixPost=80530&ixReplies=38
From DJ:
'What a bunch of whiners - either learn how Word works or go back to notepad. '
From SomeBody:
'The problem isn't that Word or Word's options have gotten too complicated. It's that people don't bother to look for them for some reason. Most of the stuff on this thread could've been easily found by typing a few keywords into the help box (it's part of the menu bar in Office XP apps). '
I also hate people who reduce this to a for/against Microsoft thing.
Microsoft produce excellent software.
Microsoft make mistakes.
Live with it.
|
| Thu 20 Nov | Ged Byrne | Christopher,
You think this forum is Lame.
How can you say that the Internet is a bad thing!
Thinking that the sky is purple with yellow dots is just ridiculous.
Do you think Slashbot really is a bot, designed to emulate Slash dot posters? This will explain why his comments are apparantly random. |
| Thu 20 Nov | Undergrad having some fun | Yeah Chris - don't let old slashbot trouble you. He's just an ugly AI-troll developed by some undergraduates at MIT in the spirit of Eliza. Smile! You're on candid trollbridge! |
| Thu 20 Nov | Slashbot | *** STOP: 0x000000 (0x802aa502, 0x000002, 0x000000, 0xFA84001C) IQ_LESS_OR_EQUAL *** Address fa84001c has base at fa840000 - jostrll.SYS
Restart and set the recovery options in the system control panel or the /CRASHDEBUG system start option. If this message reappears, contact your system administrator or technical support group. |
| Thu 20 Nov | Albert D. Kallal | >>Also ask Steve Jobs about UI flexibility. He'd make the same argument about skins.
Actually, skins is fabulous issue, as you are taking the EXACT same functionality and changing how it works. This is different then change the functions, or even HOW THE software works. I other words, there is a user model of how the software works, and then also a user model for the UI.
Just yesterday I was download some skins for my mp3 player on my palm T3.
Take a look at the following web page, and ask yourself which skin is the best?
http://www.aerodrome.us/aeroplayer/skins.html
I certainly like:
Silverline by Michael Fine
The reason for this is that things like the volume control, and the balance control are CLEARLY marked. I would even placed the text below each button as to their function (play, stop etc). The clone of the windows media player is also quite good because of previous exposure.
In all other cases, the designers just assume that some slider will be the volume control, and the user will figure this out (that is a bad assumption). So, you want both a tasteful design, but also one that communicates what the function of the control does.
Looking at different skins for the same piece of software is a very interesting question of:
How can I improve the existing UI...but not have to change the software?
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Thu 20 Nov | Richard Ponton | The original poster talked about the POS system at Safeway and how he was having a hard time figuring out how to get it to do credit.
THIS IS BY DESIGN. Many stores are doing this now.
You see, the retailers give up a % of their profits to the CC companies when you use credit, but they only pay a flat transaction fee for ATM transactions. Therefore, they prefer ATM transactions. The particularly unscrupulous(sp?) merchants charge you an additional fee on top of anything your bank charges you and them.
So you use a VISA Check Card. They ask you for your PIN. You have to hit Cancel and then choose Credit for it to use the VISA part instead of your ATM. It's intentionally unintuitive and IMHO downright unethical. |
| Thu 20 Nov | christopher baus (www.baus.net) | Do you have a reference to this practice? I'd be interested in seeing it, although I don't doubt it. Actually that seems totally logical. |
| Fri 21 Nov | RocketJeff | I have no problem believing that it's intentional, I just have a problem with believing that it's unethical.
What _is_ unethical is that Visa (Mastercard and Amex) were charging merchants the higher credit card processing rates even for PIN transactions ($1.50 for each $100 of a transaction versus $.10 per $100) if the debit card was branded by the credit card company. An article about the settlement of the anti-trust suit is at http://www.finextra.com/fullstory.asp?id=8724
This settlement is also why Visa is running promotions/contests that are eligable only to people who sign their name when using their debit card - for an extra $1.40 per $100, it's well worth the expense!
Since the signature option is _much_ more expensive for the retailer, I don't blame them for making it harder to get to. |
|
| Stopping Spyware | Wed 19 Nov | Dennis Atkins |
| I really hate spyware. There is nothing worse than a program that connects to the internet and exchanges information it doesnt show me and without asking for permission. I feel vialoted when this happens.
Well it turns out that spyware violates federal law. In the following article, information is given about contacting an organization that wants to do something about it and bring spyware authors to justice:
http://story.news.yahoo.com/news?tmpl=story&cid=1804&e=2&u=/washpost/a58655_2003nov18
They ask that everyone who finds spyware or knows anything about it report all details to them. They will create a database and then confront the feds who are supposed to be dealing with this stuff with their findings.
At last! This and the do-not-call list all in one year. Maybe things are really getting better. |
| Wed 19 Nov | Brad | And in the meantime, what are people's favorite anti-spyware programs?
For Windows, I use Spybot Search and Destroy, which seems to do a good job.
For Mac OSX, I haven't found anything yet. I'd love to find a spyware removal tool for the Mac (and don't tell me that the Mac isn't vulnerable to spyware -- that's a myth). I've checked out Little Snitch but that's not really what I want; I want something that scans my computer for known spyware programs and offers to remove them for me. |
| Wed 19 Nov | Robert Jacobson | I'm just as opposed to spyware, but it's a real stretch to say that it's prohibited by existing federal law. The actual report from the Center for Democracy and Technology is much more cautious -- it says that existing law might be applied to prohibit certain kinds of egregious spyware. (E.g., trojans, but not the typical adware.)
http://www.cdt.org/privacy/031100spyware.pdf
(Pages 10-11.) |
| Wed 19 Nov | Sgt. Sausage | ==>And in the meantime, what are people's favorite anti-spyware programs?
I use Ad-Aware by Lavasoft. No particular reason. It was the first one I tried and it worked well, so I've had no reason to switch to anything else.
Personally, I agree. Spyware should be illegal (and should be punishable by death! )
I've recently (last 2 months or so) spent time cleaning spyware from no less than a dozen computers at client sites. It's become a real problem for most of our clients. We have a few large clients, and they're usually AOK as they've got someone on site, and an IT department, that usually protects them from these things -- but the vast majority of our clients are small enough that they can't justify the costs of full-time IT staff (and hence they're dependence on us).
Most don't want to pay the costs associated with setting up their network/computers the 'right' way to protect them from these things. Weird. They've got no problem calling us in when there's a problem though. Some of these machines had become completely unusable due to the proliferation of spyware and other nasties.
How come people can't afford to protect themselves, but when there's a problem, they can afford to pay twice as much to clean up the problems? I'll never understand this! |
| Wed 19 Nov | Brian | How about you don't install it in the first place? It seems like market forces should be sufficient to keep this problem in check. Why do we need federal laws? |
| Wed 19 Nov | Michael Bolton | [For Windows, I use Spybot Search and Destroy, which seems to do a good job.]
I concur. |
| Wed 19 Nov | Dennis Atkins | Brian,
Well sure and let's allow cola companies to add heroin to their products without informing the public of its contents.
If programs clearly disclosed the nature of their spyware activities, it would be Ok. But as it is, people are shocked and surprised to find various apps they use and sometimes have paid for are watching them behind their backs, transmitting data to mysterious locations, and engaging in other unsavory activities.
Regarding federal law, it is a felony to hijack someones internet connection. Hijacking means to use without permission. |
| Wed 19 Nov | hoser | What would be the permission set that I could allow/disallow for my kids on their shared computer, so that:
1. If one of them downloaded spyware, it would only affect that user.
2. Spyware would not have access to all files on the harddrive?
Thanks, |
| Wed 19 Nov | Ori Berger | Spyware, by nature, attempts to cross permission boundaries. ('Permissions only keep honest programs honest').
Install (and keep updated) a Spyware program like Spybot Search & Destroy. Or, if you're extremely tech savvy and love to tinker with stuff, Tiny Personal Firewall (with the integrated Tiny Trojan Trap in the new versions) gives you very fine grained control over what programs can and cannot do - to the extent that you can stop Outlook from saving attachments outside of a predefined directory.
But installing SpybotS&D should keep you pretty well covered from the Spyware angle. |
| Wed 19 Nov | Brian | > Well sure and let's allow cola companies to add heroin to their products without informing the public of its contents.
Nice straw man.
If you don't trust an installation not to put spyware on your machine, why are you installing the software at all? |
| Wed 19 Nov | Dennis Atkins | Well Brian it's pretty clear what sort of software you develop so let's just move one. This thread is for folks who don't want their files or privacy to be compromised, or to at least be notified when that happens.
Any software that connects to the internet without being told to or at least asking permission first and offering the option to show exactly what is being transmitted is a serious security risk.
Anyone who has run software to check outgoing connections has been extremely shocked to find what sorts of apps engage in this material -- just as people would be shocked to find if there was heroin being added to their cola.
Someone who opposes truth in labelling laws, or laws to at least make software that steals information without asking, or hijacks a net connection like Brian is someone that should not be trusted.
Brian, please post the names of your privacy violating applications so we may delete them. After all, you said let the market decide. I want the oopportunity for the truth to be known so I can make a choice as an informed consumer. |
| Wed 19 Nov | Li-fan Chen | If you use antispyware softwares you have to think about what going on in the mind of the antispyware vendor's mind. There are spyware you can remove from your system (some stupid IE toolbar that hooks into everything written by a hacker and distributed over mal-webpages) and there's spyware you can't do anything about (any media player or cd ripper that hooks to CDDB or a web application like hotmail). I think there are very few choices right now but to ensure that from top to bottom you have some perimeter control (Zone Alarm's Application Firewall), practical every day control (Any-spyware, RegEdit/Uninstall), and fine tune control (open source software that you can verify or give you the features Microsoft or Real Network refuses to give you). |
| Wed 19 Nov | Jack of All | Another vote for spybot.
Another app you might want to look at is autoruns.exe found at http://www.sysinternals.com/
It tells all apps that are set to run on startup through reg keys, ini file and startup etc. |
| Thu 20 Nov | Stephen Jones | Actually they used to have loads of cocaine in the original coca-cola recipe but it was taken out some time ago.
Years ago I worked as a loader in the local furit wholesale market, and one of the older admin staff used to send us out to get his non-prescription cough medicine every couple of days. We looked on the label and found out why: forty-five percent opium.
There also used to be an asthma pill you could buy over-the-counter by the name of 'dodo'; pure amphetamine and it was only at the end of the seventies that they caught on.
As presumably they'd catch on some time or other in this neck of the woods, that there is a really neat Ayurvedic medicine that is basically liquid cannabis sativa. Suppose I'd better stock up soon for possible health problems in the future :) |
| Thu 20 Nov | Brad | 'Actually they used to have loads of cocaine in the original coca-cola recipe but it was taken out some time ago.'
You know, I've seen conflicting information on that. I read somewhere that this was just an urban legend or something based on a misreported news story, and that Coca-Cola never actualy contained cocaine, or at least no more than a trace. Has anyone seen a definitive source that confirms it? I've always believed it but now I'm not so sure. |
| Thu 20 Nov | RocketJeff | Continuing the off-topic slant: as with any potential urban legend, I first try to find a reference at http://www.snopes.com/
They have an excellent writeup of 'Coca-Cola used to contain cocaine' at http://www.snopes.com/cokelore/cocaine.asp
Basically, the original Coca-Cola did have some (unknown the actual amount) - but then so did most other patent medicines of the day. The amount declined as Cocaine gained a bad name.
Quote: '...but we do know that by 1902 it was as little as 1/400 of a grain of cocaine per ounce of syrup. Coca-Cola didn't become completely cocaine-free until 1929, but there scarcely any of the drug left in the drink by then' |
| Thu 20 Nov | Brian | Ah Dennis, you got me. Did you also know I eat babies and was a member of the Hitler Youth Squad?
Seriously, your debating tactics are strictly 3rd grade. And on top of that, you don't seem to have understood a thing I've said.
I use AdAware, and I do block apps at the firewall. My point is not that spyware is good. My point is that if you are installing software that you don't trust, you're LUCKY if the worst thing they do is call home to a central server. What are these apps that are installing spyware on your machine, and why are you installing them in the first place? If it were widely known that they install/were spyware, do you think that people would still install them? |
| Thu 20 Nov | Robert Jacobson | I think Dennis just enjoys insulting people. No point to engage him in debate. |
| Fri 21 Nov | Stephen Jones | ---'but there scarcely any of the drug left in the drink by then' ----
Yea, you can hardly expect an American drinks multinational to give you anything but overpriced sugar and water. |
| Fri 21 Nov | Stephen Jones | Incidentally when they debated making cocaine illegal it was said in favour that if they didn't there would soon have been as many as fifty thousand cokeheads in the US.
Good thing they passed the legislation wasn't it? |
|
| What's your document writing approach? | Wed 19 Nov | Sathyaish Chakravarthy |
| Since we’re in the middle of two projects; one successfully delivered and another in the air I am being asked to whip some docs for the garbage, if that’s where they mostly end up. I’ve been given, for the second time this time (the first time was with my previous employer) the task of writing a coding standards document for VB. Here’s what I scribbled in MS Word for a start. Then I went for the scolding I had to take, http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=88097&ixReplies=2
And having come back from the tremor, I feel somewhat discouraged to continue this tone. I think they’d want something more formal and less breezy (I’ll steal a phrase, Joel, if you won’t mind). This is an excerpt, a start. What I usually do when I am asked to write a document is that I take most of the time off my seat that I can in between frequent checks on the Web for related material. Then I go back to the pen and paper and scribble short notes or notes to myself on the skeletal structure of the document. Sometimes when I cannot think of a skeletal structure, I start scribbling pieces of text wherever I can delimited by line breaks. What’s your document writing approach? Would you think it’d be a bad idea to present this sort of line to the angry bosses?
Hello, there! I am your new mentor, depending on who you are, in laying down rules you *can* follow when you write your next program using Visual Basic 6.0. However, I do not contend that your life will change on following these rules. Neither do I wish to make claims on increased productivity with my rules. These rules are more of a result of the six and a half years of my programming experience in Visual Basic mixed with attempts to plagiarize from relevant sources on the Internet. You can look at the references section to the bottom of this document to see whither from I’ve the really great (ahem)-original ideas stolen J. I used to write C++ programs and Windows API programs before I wrote my first Visual Basic program, so you’ll expect a slight bend towards the Object Orientation in this writing. If you already have your set of rules you follow while writing Visual Basic programs, please stick to them! I do not wish to impose my convenience on the world. It is not important what conventions you follow, but how religiously you follow them across your team of programmers. What you will notice as an advantage to following these rules, is that if you have not been following any rules whatsoever earlier, following my rules will improve the readability of your Visual Basic code across the whole of your team of VB programmers, help you divide work across team members following same standards and in some places, it will help you optimize your code for better performance; if you like going hell-for-leather on long drives in the middle of the night.
The last time I was asked to write a document on coding conventions for the convenience of Visual Basic programmers in my company, it was for a telecommunication software company called Sotas India Ltd. (www.sotas.com), now known as Mantas. At the time, I expected that I was on an exercise that would *change the way things would be done* and along the side make me more famous and rich J. Famous, it did make me. Everyone enjoyed reading them. No one followed them. So as a result, we still had a lot of sloppy code floating around on top of the marsh like that algae. Time, as they say, is the greatest preacher. So I had the time to become wiser and in my time, I learnt that there was no such thing as one standard of coding Visual Basic programs. I sifted through dozens of Internet pages hosted by all the who’s-who in the industry, right from Microsoft to Stanford university web sites, all having their own flavor of the convention. The moral of the story we are about to begin translated for three-year-olds is that if we like something and we want to adopt it, then we must make some effort to practice it in order to benefit from it.
Blah… Blah…Woof….Woof…
There are warped ideologies a dime a dozen about the most abused topic in the line of conventions for coding and that is, naming variables. Charles Simonyi or Charles Shobraj, whichever you choose, honestly I don’t care as far as your variables suggest their own purpose. Variable naming, I think, beyond the point that it is sensible enough not to include single character variable names, is something very personal; like sex or religious faith. I dare not ask you to take the 69th position if I prefer it that way. The experience must be yours. I have, for reasons of personal preference, developed a style. Since I am asked to convey a standard, I will divulge on what I prefer doing and you may or may not adopt this for your programming practice.
More Blah… Blah… Blah…
References/Further Reading:
· http://www.xoc.net/standards/rvbanc.asp
· http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q110/2/64.asp&NoWebContent=1
· http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q173/7/38.ASP&NoWebContent=1
· http://www.aivosto.com/vbtips/
· http://www.vbwm.com/art_1997/art_cntr.htm
· http://www.insteptech.com/techlibrary/vbbest_practices.htm
· http://www.xploiter.com/programming/vb/vb5_tutor/appa.htm
· http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvsgen/html/cfr.asp
· http://www.freevbcode.com/ShowCode.Asp?ID=2281
· http://www.informit.com/isapi/product_id~%7BAC9FF62E-40B5-4D0E-AA83-C8AD9CA9F147%7D/content/index.asp
· http://www.digital-lenz.com/
· http://www.visibleprogress.com/downloads.htm
· http://www.visibleprogress.com/visual_basic_coding_standards.htm
· http://www.solutionset.co.uk/info/freeoffer.htm
· http://www.gui.com.au/html/coding_standards.htm
· http://www.freevbcode.com/ShowCode.Asp?ID=2547
· http://mindprod.com/unmain.html
· http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconnamingguidelines.asp
· http://www.insteptech.com/techlibrary/oodesign.htm
· http://www.only4gurus.com/v2/download.asp?ID=4242
· http://www.xoc.net/standards/
· http://www.semdesigns.com/
· http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncomg/html/msdn_basicpmd.asp
· http://www.aivosto.com/project/tutorial.html
· http://www.vbxtras.com/products/vblaw.asp
· http://builder.com.com/5100-6373-5032700.html
· http://abstractvb.com/code/code703.asp
· http://www.vb-faq.com/Articles/Fresle/VB_Coding_Standards.asp
· http://www.vbexplorer.com/VBExplorer/galaxy2.asp
|
| Wed 19 Nov | ajs | How about - 'Keep it short?' |
| Wed 19 Nov | no name | Give him a break! He is having 'one of those' days :) |
| Wed 19 Nov | Sathyaish Chakravarthy | >Give him a break! He is having 'one of those' days :)
Yeah! You're right. I also want to know how one of 'those' days is/was like for you. What is it like being asked to vomit out documents one after the other. And does it make sense to give this kind of a rhetoric to angered turtles or I must adopt a new line of writing that is more formal and less personal? |
| Wed 19 Nov | no name | I can't even read one sentence because it's just a bunch of rambling. If you want to write a document specifiying coding standards then do so. If you want to write a thesis paper on coding standards then go to a uni. Most importantly it seems as if you're bored off your ass and you sure as hell aren't getting any work done by coming on this board and posting this garbage. |
| Wed 19 Nov | Sathyaish Chakravarthy | That was quite an honest opnion. Appreciated. I'd like more criticism. And I mean it. Thanks a tonne. |
| Wed 19 Nov | Michael Bolton | How about just having different sections, i.e., a section on commenting, another section on indenting, etc. with some bullet points under each section? This should make it easier to read and presumably more likely that the developer will actually read it.
Suggested sections: the aforementioned sections on commenting, indenting as well as sections on variable naming, error handling, object cleanup, usage of frameworks and class libraries (i.e., don't reinvent the wheel) |
| Wed 19 Nov | Sathyaish Chakravarthy | Great. I didn't write in the meat of the document in here because:
(1) I've for now only prepared the outline/headings/sub-headings for those topics you mentioned.
(2) It would get too lengthy and not make any sense having that long a post.
The idea behind posting this thread here is that I sincerely admire the way all you guys write. When I read all your posts, I am overwhelmed. I want you guys to tell me:
(1) What is it that you people follow as a document writing approach?
(2) What are the weaknesses in my writing style. One, someone already pointed out, it reads as though it was a bunch of ramblings. Great. I want some more honest criticism if you'll be kind.
If I can have a glimpse of something you senf off to your boss as an official document just to gage the tone.
BTW, I am also learning a lot of writing skills just reading the posts on this forum. Amazing. Thank you all of you guys. More comments please! |
| Wed 19 Nov | A cynic writes | My approach is to write headings and subheadings, then do the key information in each section as bullet points, then expand the bullet points into sentences / paragraphs. What I was taught at school was: One thought = one paragraph.
Every so often I look at a section and if I've used the same form of words more than once, I try to vary the words used.
When I finished if the format doesn't require headings I remove them. and let the paragraph structure divide the document into sections.
Above all if there is a standard (cliched even) way of putting something I use that. Business letters beginning 'Further to our conversation of ...' are as boring as hell - but they are clear and unambigous.
Hope it helps. |
| Wed 19 Nov | Sathyaish Chakravarthy | Yes, it was helpful. You've given me a few leads here I can use. I usually end up writing all raw-material for my document on a rough paper first, which will include some ramblings, as someone just mentioned, along with topics/sub-headings I will like to talk about in the document.
What has been a learning for me in reading your words is:
>One thought = one paragraph.
and
>When I finished if the format doesn't require headings I remove them. and let the paragraph structure divide the document into sections.
Although I never used to do much editing to my writing sometime back, I've started that now. Especially before I post here because the kind of English you guys write is intimidating for a non-English speaker like me. I also edit my official docs that I am writing and these days I end up editing them again and again. Just like you said, I am also very conscious of the repetition of phrases I use.
Could some of you show me some of your official writing stuff in excerpts? |
| Wed 19 Nov | Eric Budd | Don't bother reinventing the wheel. Buy all the developers their own copy of Code Complete.
Done. |
| Wed 19 Nov | A cynic writes | I'll try & sort some out tomorrow (it's going home time GMT) - it's also worth bearing in mind the version of English I write isn't precisely the same version of English I speak.
Hope all goes well. |
| Wed 19 Nov | Sathyaish Chakravarthy | That will be iMMense help. A hearty thanks at that. I look forward to it. |
| Wed 19 Nov | Sathyaish Chakravarthy | >Don't bother reinventing the wheel. Buy all the developers their own copy of Code Complete.
If I could do that, I have a long list that I want to buy for myself. |
| Wed 19 Nov | Sathyaish Chakravarthy | >it's also worth bearing in mind the version of English I write isn't precisely the same version of English I speak
That applies to me too. You must hear me stammer searching for *that* right word while fumbling a dozen others as substitutes to convey the idea *as is*. |
| Wed 19 Nov | www.marktaw.com | > Great. I didn't write in the meat of the document in here because:
This post was great. It was concise and to the point. Why not adopt the style of this post? |
| Wed 19 Nov | Sathyaish Chakravarthy | Wow! Clever guy, Mark! |
| Wed 19 Nov | Sathyaish Chakravarthy | I am begining to get better and better everyday (without help from Dr.J.B.Rhine, please!). I like being around here very much because of the great learning I get in your company. I love the way you guys just talk. You are all so darn good at everything that one only can better themselves everyday by reading this board. I like feeling inferior at times when I read you guys because that's a good thing to feel when you want to learn. Otherwise, before JOS I did not find contact with real life people who were super heros, except by reading articles but that's not first hand contact, right? |
| Wed 19 Nov | www.marktaw.com | ;-)
In writing there's the concept of 'Show don't tell' and your writing was doing a lot of exposition. (Austin Powers anyone?) Like those Victorian Novels and scholarly works I can't stand reading that always tell you what they're going to tell you before they tell you. If the developers are being forced to read this in the first place, you want to ensure that it's as quick a read as you can make it, and well laid out so that they can refer back to it if need be.
Books on Speed Reading will tell you to glance at section headings first to get an overview of what's going on. Then scan paragraphs, then go back and read in depth what you want to read in depth. Odds are this is how your document will be read, not word-for-word, so keep this in mind when laying it out, and trim excess words to make the meat easy to find.
In other words, bold section titles, maybe in a different font, larger fonts for outer sections - your document should look like it was written in an outliner. Go to your favorite reference manual and mimic their layout style.
'In this book I will attempt to prove that Repitition is boring. By constantly Repeating myself I will prove to you that you can't stand Repitition. In the first part, I will rehash what I said just now. In the second section, I will present to you a sample of Reptition by rewording what I said in the first section. Third verse, same as the first.'
I'm guessing you read Joel's essay on writing good requirements where he said to be humorous. I would submit that you should constrain the humor to places where you can insert it, like using humorous (to use Joel's example, names of Muppets) actors and variable names, rather than surrounding everything with it.
The tone and layout should be professional for the same reason you should wear a suit to an interview - you don't want to make a bad impression before you've even gotten started. This task was given to you, presumbably by your boss, and you should treat it that way. |
| Wed 19 Nov | www.marktaw.com | Whoops, inserted a paragraph so that my fictional victorian scholarly work seemed out of place. |
| Wed 19 Nov | Alyosha` | One lesson I've taken from the book, _On Writing Well_: be consise. English is littered with short mumble phrases which add bulk to a sentence without adding meaning. Eliminate them.
(Or I could have said: The English language is littered with lots of useless short mumble phrases which are used in order to add extra bulk to a sentence without adding any real meaning? Get rid of them whenever you see them -- see my point?).
It's hard to tell from a short example which is more readable, but imagine reading a 20-page document written in this style.
Use words sparingly. Write short sentences. Optimize your prose like you'd optimize code for a PIC microcontroller. It makes a difference. |
| Wed 19 Nov | Sathyaish Chakravarthy | Mark, Alyosha, I am smiling loud, all of me is smiling inside and out. |
| Wed 19 Nov | www.marktaw.com | At the same time, reading sentances without connecting phrases can be difficult to do. Paragraphs start reading like a laundry list of sentances rather than paragraphs.
Rather than focusing on the sentance level, I'd suggest you make each point once. Make it only once, and make it in the right spot in the document.
You may also want to read up on basic argumentation, and brush up on essay writing the way you learned to do it in college (or should have - forget the lessons of double spacing lines and padding your writing to fill out all 10 pages). |
| Wed 19 Nov | Sathyaish Chakravarthy | >In writing there's the concept of 'Show don't tell' and your writing was doing a lot of exposition.
Yes, thanks! I must work on that. But that is disappointing. When am I ever going to become one good writer? Then I'll tell you one more secret. When I know enough to write something inside a book, and when I have then mastered the art of writing, I will write a book just for the heck of it - because I want to. ;-)
>Like those Victorian Novels and scholarly works I can't stand reading that always tell you what they're going to tell you before they tell you.
Hey, that reminds me of Steven Roman's style of writing although I admire him fervently, especially for the chapter 6 titled 'Strings' of his book 'Win32 API Programming with Visual Basic'.
>If the developers are being forced to read this in the first place, you want to ensure that it's as quick a read as you can make it, and well laid out so that they can refer back to it if need be.
Woo....I am crying now! I have a lottttt to learn.
>Books on Speed Reading will tell you to glance at section headings first to get an overview of what's going on.
Name a book on speed reading that is popular please? You are probably going to find me spellbound at every thing you mention. Hey, where do you get that? How do you do that?
>Go to your favorite reference manual and mimic their layout style.
Just one PJ I am tempted: Which is my favourite reference manual?
>'In this book I will attempt to prove that Repitition is boring. By constantly Repeating myself I will prove to you that you can't stand Repitition. In the first part, I will rehash what I said just now. In the second section, I will present to you a sample of Reptition by rewording what I said in the first section. Third verse, same as the first.'
Interesting! Where do I get hold of this kinda stuff?
>I'm guessing you read Joel's essay on writing good requirements where he said to be humorous.
All the time! ALL the time. He's such a brat. Yesterday night I thought I'd take some hand outs on Coding Conventions from different Web sites so I could read them at home and come back this morning almost prepared. Somewhere in the middle of the 20th odd web-site I was visiting on the subject, I gave in to the temptation that was itching me to visit JOS again and re-read all those favourite articles from his archive. I went back and read a several of them again over for the umpteenth time. Then I took home some 200 odd pages of which more than a 100 were from JOS. And when I went home, I picked up one of his pages to re-read for the Nth time and then I wouldn't stop reading more and more, again and again. I was stationary, half-lying down, with the TV on in front of me, and my body paralyzed as if with some spell that had caste me into a statue, and my head leaned so my eyes fixed their gaze on the pages in my hands. It went on for hours until I fell asleep. The fellow did not even let me read what I had to be reading, he's so evil. ;0)
>I would submit that you should constrain the humor to places where you can insert it, like using humorous (to use Joel's example, names of Muppets) actors and variable names, rather than surrounding everything with it.
How could I not see that? I guess I did, but I needed someone to point out because I wasn't fully sure if I was kinda overdoing it and sounding like a jerk. Thanks a tonne. I must learn this art too.
>The tone and layout should be professional for the same reason you should wear a suit to an interview - you don't want to make a bad impression before you've even gotten started. This task was given to you, presumbably by your boss, and you should treat it that way.
When will I write something that's half as good as what Joel writes? Actually even a fraction will do.
Alyosha` writes
>Use words sparingly. Write short sentences. Optimize your prose like you'd optimize code for a PIC microcontroller. It makes a difference. '
I got your point. I catch myself doing that often. How do I correct it? I will work my way through. Do you think reading your own material over and again makes you see mistakes in it more clearly, if I must adopt that? |
| Wed 19 Nov | Michael Eisenberg | Proofread. And get someone else to proofread whose use of English you respect. |
| Wed 19 Nov | Sathyaish Chakravarthy | >Proofread. And get someone else to proofread whose use of English you respect.
That was the sort of thing I was trying to do with making this post actually. ;0) |
| Wed 19 Nov | timothy | Sathyaish Chakravarthy:
You talk too much. |
| Wed 19 Nov | Alyosha` | The key to clean, uncluttered writing is not to write perfect prose the first time through, but to revise what you've written, relentlessly removing every unnecessary word and rephrasing every unwieldy sentence. A well tightened-up document often can be half the size of the first draft. |
| Wed 19 Nov | Sathyaish Chakravarthy | Thanks, Alyosha`. You've been a great help. I will put into practice what you've said along with advise I got from others in this post.
And I will also try to talk less, :). |
| Wed 19 Nov | Alex | Joel's writing style is excellent, not only informative but somehow *fun to read*. I read up everything I could find in the archives, and wanted more.
But just following his writing advice -- 'imagine actual persons' or 'put in a joke or two' -- isn't enough. I think you own writing is a bit stuffy, too intense on 'being cute' so people end up offended, and stop reading.
It's a tight rope, writing cute without being insultingly superior. |
| Wed 19 Nov | Sathyaish Chakravarthy | >I think you own writing is a bit stuffy, too intense on 'being cute' so people end up offended, and stop reading.
That was very analytical of you. Did I not say why I love coming here again and again? I guess in time I will learn in your company and the company of others around here. But believe me, I have already begun. |
| Thu 20 Nov | Jack | I would rephrase the part you submitted as follows:
This document describes our company's standard for development in Visual Basic 6.0. Goals of this standard are to:
improve the readability of Visual Basic code;
help to divide work across team members;
help to optimize code for better performance.
At the bottom of this document you will find references that you can check for more background information. |
| Thu 20 Nov | Sathyaish Chakravarthy | After a few hours of meandering around the web and then going back to it, I got it a bit straight-straight. I dig the idea is the just present the fact with a crispy face that cracks on exuding a smile. If you have to smile, just do it mildly. I've been re-working on it over 4 times now, editing it over and over again.
It now reads something like this: (these are excerpts from here and there, not in continuity)
Research has shown that the initial way in which software is constructed can have a dramatic impact on the lifetime cost of software and that enforcement of coding standards early in the development process can significantly reduce maintenance and future development costs.
Coding standards provide a consistent structure and style for source code making it easier for different developers to read and understand each other's code. When developers leave a project and new developers take over, the new developers will find it easier to understand the code if it has a consistent style and structure.
It is highly important that Visual Basic programmers in a team follow a professional discipline in coding in order to improve readability of code and make for easy maintenance of today’s code tomorrow.
Below is a basic protocol that is the hallmark of a seasoned programmer:
Coding Conventions
Optimization Techniques
Best Practices
Further Reading
Coding Conventions
This section concerns itself with defining a set of rules of programming grammar that you can use to make your programs more maintainable. I strongly recommend that you read the Microsoft Publication The Basics of Programming Model Design as an additional reading to this document.
IDE Settings
Without getting into much detail, you must learn to configure your IDE to suit the best practices. Open up your IDE and go to the Tools -> Options menu. From the Editor tab of the Options dialog box, check the Require Variable Declaration box, if not checked already. Move to the General tab, within the Form Grid Settings frame, check the Show Grid box and select the maximum resolution by filling the lowest possible values of 24 in each of the textboxes viz. Width and Height. From the Error Trapping frame in the same tab, select the option Break on All Errors.
Option Explicit
The Visual Basic compiler runs in two modes, the implicit declaration mode and the explicit declaration mode. In the implicit declaration mode you may not declare variables at all. To create a new variable, you’ll just use the new name of the variable and in its first assignment statement; Visual Basic will create it for you. This can be bad since it can lead you to making spelling mistakes in your program leading to creation of redundant variables with almost similar names but different spellings, causing havoc for the code maintenance people. The second mode i.e. the explicit declaration mode requires that you declare every variable before using it. In order to turn on the explicit declaration mode, you must write the Option Explicit statement as the first line of every module in your project.
There's lots more I've written but rather than flooding the thread, I just want to give a feeler so you could tell me if I'm moving in the right track. The sentences in first two paragraphs have been adopted and are from two different sources in the list of URLs I mentioned. Then I've ramified the Coding Conventions in this format:
Naming Conventions
Controls
|