last updated:10 May 2004 12:11 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 09 May 2004) | View Other Weeks
kibibytes, methodologies and other stories | Sun 09 May | tapiwa
In an earlier thread, I was corrected about an error I made regarding kibibytes. http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=139568&ixReplies=6 To be honest, it was the first time I had heard of the word, and its kin, the gibibytes and mebibytes. It seems the IEC introduced the word c1998, but it has not been widely adopted. People (including myself) still use the term kilobyte and its kin, gigabytes and megabytes. The new term “kibibyte” will more accurately describe the number of bytes in a kilobyte—rather than being 1,000, as could be inferred by the prefix “kilo,” a kilobyte actually has 1,024 (2 to the 10th power) bytes. Contrast this with the wholesale adoption of the term methodologies. I still have issues with the way it is used, especially in techie circles. Say what you like, (and I am sure you will), a look into the etymology of this word would reveal that it is the study of methods. XP is a method, not a methodology! In recent years, however, methodology has been increasingly used as a pretentious substitute for method in scientific and technical contexts, as in The oil company has not yet decided on a methodology for restoring the beaches. ..... But the misuse of methodology obscures an important conceptual distinction between the tools of scientific investigation (properly methods) and the principles that determine how such tools are deployed and interpreted. And how does one reconcile a words etymology with its colloquial use?? Any other new words out there that we should look out for? And what do they mean?
Sun 09 May | tapiwa | Forgot to reference properly http://www.quinion.com/words/turnsofphrase/tp-kib1.htm http://dictionary.reference.com/search?q=methodology&r=67
Sun 09 May | tapiwa | just thought up one.. boxen!! very popular on slashdot.
Sun 09 May | Kyralessa | The only people who get any use out of the notion that a kilobyte is 1000 bytes instead of 1024 is drive manufacturers who are trying to justify selling you a "40GB" drive that only holds 37.25GB.  Other than as justification for this common bit of subterfuge, I've never heard the term "kibibytes" or any of its cousins used in any context.
Sun 09 May | Philo | Is there a reason you blew past the first definition of 'methodology'? 'A body of practices, procedures, and rules used by those who work in a discipline or engage in an inquiry; a set of working methods: the methodology of genetic studies; a poll marred by faulty methodology.' I think 'kibibyte' sounds silly and pretentious. And I like 'boxen' to indicate 'multiple server boxes' because 'servers' is ambiguous (and will only get worse with the growth of virtual servers) Philo
Copyright Proof | Sun 09 May | Wayne Hayter
Are there any modern digital methods of proving that you are the orginal copyright owner of a piece of source code? Or does one still use the old method of copying the code to disk and mailing the disk to yourself via certiified snail mail?
Sun 09 May | Robert Jacobson | The old 'mail it to myself' technique isn't foolproof. Anyone could mail himself a blank, unsealed envelope and then stick something in it later. Using this technique would provide some evidence that you actually created this code when you say you did, but it would be easy to challenge in court. One electronic option is to upload your code to a third-party archive or backup service, like XDrive or IBackup. Then it gets stored on the server with a time/date stamp. If you're paranoid, you could find a service that can burn the data to a CD or DVD for you. Then, have the service do that on a regular basis (weekly or monthly.) If you can prove that a neutral third party burned your data to disk on a particular date, that's pretty solid proof that the code actually was created before then.
Sun 09 May | Philo | If we're talking US, then register it with the US Copyright Office. Costs around $100, and you have to register it anyway if you want to file suit for statutory damages (otherwise you're restricted to the actual damages you can prove, which is hard). Philo
Coding is Math? | Sun 09 May | Bummed by Math
Anyone can write a shell script. Very few people can express mathematical concepts in code. -Comments from Slashdot Interesting discussion topic?
Sun 09 May | Elephant | Coding is easy.  Very few people can express their code concepts with mathematics.
Sun 09 May | Kalani | Mathematical concepts like what?  Code itself is a mathematical concept.  Is a PDE more complex or harder to understand than a big computer program?  Not necessarily (nor is the 'core essence' necessarily more complex).
Sun 09 May | matt | I'd say if you /understand/ the mathematical concepts (whichever ones they mean) then expressing them in code is usually fairly trivial, you have the ideas and algorithms in your head and so you're just chasing home implementation details, data types, optimising stuff etc.
Sun 09 May | tapiwa | I sort of agree with the quote. I think it was more valid when most of the coding done was in trying to solve mathematical problems. I would extend it to argue that anone can code. Not everyone is able though to translate business problems/solutions into code.
Sun 09 May | pds | --- 'Given more opinions to draw from, it is inevitable that every conceivable position will be covered. Including all of the completely wrong ones.' --- -My Slashdot theory Having sat through a class teaching BASH scripting, where many of the students couldn't handle even the 'if' command, much less left-quotes, AND Having sat through a class teaching 'numerical methods', i.e. algorithmic methods of solving math problems such as interpolation and such, I can confidently say this: there are many people. Some of them don't know the fundamental concepts of imperative computer languages, and thus can't even begin to understand BASH. Some of them have no concept of mathematical concepts, and have skidded through life memorizing the formulas (formula is plural, if you're speaking in LATIN. Or is that formulae?). The point of this is: to solve a math-heavy problem such as 3D graphics, you're going to have to fully, completely understand matrices and vectors and whatever else. To work with BASH scripting, you're going to have to perfectly understand what each basic command does, otherwise things will turn out wrong or will not work at all. If you don't understand the system you're working with, how are you ever going to represent it in code? If you don't understand the system of coding itself, how are you going to code anything? So it's not a case of 'math=computers' at all. If we want to leave this discussion with some common ground, let me try--I do agree that the ability to learn mathematical concepts is tied to learning computing and computing-ish related topics. They're both abstract concepts, and so it naturally follows that the math nerds have common ground with the computer nerds--besides being huge anime fans, anyway--they all can easily task switch over to the other discipline. All sorts of early computer scientists were mathematicians.
To specify or not to specify ... | Sun 09 May | deja vu
http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=130 Im not one of those gushing UML fanboy types (can you tell), but I do have to work with people who think UML is the best thing since sliced bread. The article above explains strikes a chord because of it. Thoughts ?
Sun 09 May | Lou Franco | I have been in long and complex development efforts that have used Rational Rose and UML class diagrams to generate nearly all C++ headers and stubs. It worked quite well. I can't imagine using class diagrams without generating code unless they are kept super-simple (too hard to maintain). In that mode, I'd only create UML on demand. Recently, I've begun using sequence diagrams again (especially for a distributed system I'm involved in). Anyway, my point is that I've had good experiences with UML. On the first project, nearly half of the team didn't like it. It's especially bad when you need to refactor.
Sun 09 May | kc | Yeah, while I know the bare basics of UML, I've come across some people who start twitching whenever something even *looks* like UML. I just started on brand new system design. It has many smaller pieces within it and lots of different interactions. I've gone about it the easy way. I went and drew one big representation of the system using huge blocks to represent pieces aren't designed yet. Then I went to our CADD department and had them print it out extra large (3 x 5) and I've tacked it to the wall in my office. Now, as we are designing the system and starting to flesh it out, we are steadily drawing each of the pieces in a way that makes sense (using standardized icons - some are UML) in Visio or a comparable tool and literally thumbtack it over the corresponding piece. Each drawing is versioned, dated, and goes into our cvs with all the code. Having the documents stored individually has enforced the idea of 'clean modules' and documented interfaces, but people are able to look at each other's modules and get the gist of things relatively quickly. UML is just another tool. It has some usefulness, but (to use another's words) it's Not a Silver Bullet. KC
Sun 09 May | tapiwa | Hear hear. UML is just a tool. More than just a tool though, UML is a LANGUAGE. Use it in the way that best adds value. You can even use UML without a fancy tool like Relational. Good ol' whiteboard does wonders. I remember reading an article in the Rational magazine a couple years back. This guy wrote that the purpose of UML is to simplify the sharing of ideas. I think he used basic algebra and trigonometry to illustrate the point. You can draw a triangle. You can describe it by the size of its sides, or its angles, or combinations thereof. UML diagrams can be used to describe the system in an easier fashion to fellow developers as well as non developers than showing them code. I think the biggest problem stems from the fact that not enough people know UML out there to use it effectively. At the same time too many people out there know just enough to be dangerous with it. Throw in the people that are so overzealous about UML that the tail is wagging the dog, and you have a recipe for disaster. The two paragraphs below convey the same meaning ' Twinkle, twinkle, little star How I wonder what you are. Up above the earth so high Like a diamond in the sky' ' Scintillate, scintillate, globule vivific Fain would I fathom thy nature specific. Loftily poised on ether capacious Strongly resembling a gem carbonaceous.' which one does it better?
Sun 09 May | HeWhoMustBeConfused | Did Sathyaish Chakravarthy write the second version??
Absolute Confusion with Windows 2000 | Sun 09 May | Chris Crawshaw
Ready for a total confuser?!?! First off, I reasonably good with computer - understand them (most of the time!!) Can kinda work out theyre thinking etc. I put a CD with some data bits on it today, there were various things including a few programs, folders - the usual disk. I wanted a particular program that i knew was on there - checked it on another computer before and after. In the window, it listed all the files, except the one I wanted - a .exe, there were also a couple of other folders missing from within other folders, every other file and folder in the opening window was there. There is also a discrepency in the size of the disk, on this computer it ways 416 meg (with the file missing) and on the other computer it is 475 meg. Any ideas?? Another, extremly weird thing - which makes me think its not a virus - the disk I was using wasnt closed after writing so it could be added to later. I know that open disk can only be read in a CD-writer, but the disk wouldnt open in my CD-writer, but it would in my normal CD-ROM drive, which is the slave. Any help?? I cant understand this at all - really doesnt make any sense to me!! Cheers
Sun 09 May | Tom H | Did you check the file Properties to see if they are Hidden?
Sun 09 May | Dan Maas | I think directory sizes can be different even for the same set of files if the filesystems they are stored on are different. (due to different wasted space characteristics)
Sun 09 May | Chris Crawshaw | yeah, i checked the file properties - 'don't hide hidden files and folders.' Even so they shouldn't be hidden. Interesting, the disk was written on xp pro, and in on windows 2000, could this be a factor? The disk was written using nero, which is also on my computer. The difference in size of the disk from one computer to the other is about 60 meg, and the application is 35 odd meg, and I dnuno what the size of the folders are, but could well be 25 meg difference - a coincidence? Also, I thought a CD would have a set limit of 700 meg (or whatever that particular CD is) so would it change if it viewed on a different OS? Also, as it is still open, you can add more to the CD, but not take stuff away - so surely the size can only increase! I am so totally confused now - take me back to the stone age!!! :s
Sun 09 May | FullNameRequired | 'I am so totally confused no' hey chris, what kind of software development do you do?
Sun 09 May | Almost Anonymous | Two words: corrupt disk?
Sun 09 May | GD | This has occured to me when using VMWare. VMWare would see one version of the disk, and the host OS would see a different version of the disk. The disk was burned but not closed, and had files added later. For some reason, VMWare only saw the first session, and the host OS saw both sessions. Unfortunately, i haven't been able to figure out a fix for it, and had to reburn the disc in one session.
Sun 09 May | Chris Crawshaw | I'm not a softwarre developer - student. Do you have to be to use this forum? I came across it on google and thought I'd ask! corrupt disk? possibly, but its happened on 2 disks today - with the same program. I tried using my mp3 player along a USB cable, similar to a removable hard drive. It was zipped up, I tried copying it and it said it couldn't read source disk or drive, or something similar. the I changed the file extension to .dat, and it still couldn't copy, and wouldn't open from where it was. I could copy other files from it as well - I just dont understand it!?!?! But why did the 'open' disk load, to some degree, in the CD-ROM drive, and not the CD-writer???
Sun 09 May | Chris Crawshaw | I shall check later (I didn't burn the CD) but I think it was done in one session, and the second CD, the first session had the .exe missing from a folder, for the same application. The zip of the application was added to the CD later, which didn't appear in it either, so you could be right there.
Sun 09 May | FullNameRequired | 'Do you have to be to use this forum?' nah, I was just interested cause you didn't sound like a developer. This is JoS, a forum specifically dedicated to providing good, useful windows support gratis as a sign of our love. Are there any other issues we could help you with?
Sun 09 May | Chris Crawshaw | 'Are there any other issues we could help you with?' Well, actually, there was this girl the other day, but . . . only joking! Could it be a problem with windows installer or explorer, cos other applications haven't opened in the past, and i always assumed it was because they were to old for windows 2000. I've heard there is a way, when you install a program, you can tell it, when it opens to open in a windows 9x setting to allow older programs to be used on a new OS. Is this just for windows xp, or can I use it on 2000 without using an emulator? Did that make sense? think my brains been fried!
Sun 09 May | Chris Crawshaw | Ok, just found out, the original disk was burnt in one session, and was closed. I was only the single .exe that i couldn't detect and the folders nested within others. The second CD was burnt in several sessions, and I could only see part of the first session, I viewed the disk after each session, and could only see part of the first session I'm even more confused now! I wouldn't have noticed on the first CD, but out of 78 objects on the disk, its the single thing I want from it, trying very hard not swear!!
Sun 09 May | no name | This is boring Chris. JOS is not a tech support forum for users.
Sun 09 May | Chris Crawshaw | ok, can you suggest another good forum where I may be able to get an answer?
Sun 09 May | tapiwa | dudes, cut the poor guy some slack. I think it is a fairly valid problem which software developers should address. That data on the same CD be readable in some apps/filesystems/OSes and not others is a design problem. Had a similar problem with winamp and a Nickleback CD today. Winamp only sees the video. Windows media player sees everything. Windows CD player (the standard one) sees the audio files. A non savy PC user would assume that the CD does not play on the computer if they had winamp set up as default on their machine. The data is there.... surely as software developers we can do better than this.
Sun 09 May | FullNameRequired | 'That data on the same CD be readable in some apps/filesystems/OSes and not others is a design problem. ' agreed, but its a design problem at a lower level than most of us ever deal with. personally I blame microsoft and their everchanging filesystems. but either way, chris should be approaching the actual people involved....find those third parties and ask them why their software dont work. or, failing that, find a general purpose user forum and post there. but _please_ check it out first and make sure its an appropriate place to post...thats just plain politeness which is kind of important if you expect the forum users to help you out.
Sun 09 May | tapiwa | and the pot says the kettle is black .... http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=71227
Sun 09 May | FullNameRequired | 'and the pot says the kettle is black' heh. I also dont complain at all when regular posters ask similar questions....I guess at some level I make a distinction between regular posters and people who just find the forum on google and post their questions without stopping to think about whether its appropriate. The first case is relatively uncommon, the second seems to be happening increasingly often. ah well...just the other day I was getting annoyed at the # of posters criticising the posts of others for being off-topic, or just plain stupid. maybe its just time I learnt to keep my own mouth shut :)
Sun 09 May | no name | > ok, can you suggest another good forum where I may be able to get an answer? No. Why should I?
Explain this to me... | Sun 09 May | RP
When I was a green developer, I used to go through this thing: developing got me bored. It made me sleepy. I wanted to get up and go do something else instead of cracking my head trying to solve whatever it was that was bothering me. Now that Im not that green, I stopped feeling that. I can spend literally hours looking at a problem and not feel out of focus. I know this comes with experience, but has any of you felt anything like that?
Sun 09 May | _ | Yeah,  I still get it periodically.  It's seems to be directly proportinal to my understanding of the problem and inversely proportinal to the weather.
Sun 09 May | _ | I feel compelled to point out that I can, indeed, spell proportional...  why is that?
Sun 09 May | Scot | Because, _, you desire our respect. And even if we don't know who we are, we can still mock you :-) On the other hand, perhaps you can't stand the loose ends? How tidy is your closet...
Sun 09 May | Scot | Oh the irony... "even if we don't know who you are"...
Sun 09 May | Kyralessa | It's not only programming.  I learned a foreign language while in a foreign country, by practicing it as often as I could, and the mental effort of retraining my brain to think in that language made me physically exhausted.
Sun 09 May | Aaron F Stanton | I think it's that learning burns a lot of calories, which would make one sleepy.  Perhaps creating new neural pathways makes old ones weaker, so you get fuzzy?  I've had the same thing happen.
Sun 09 May | no name | Just the opposite. Now I get bored, never used to.
Sun 09 May | matt | Ehm... perhaps this is obvious to some but what is a 'green' developer?
Sun 09 May | tapiwa | green is a term used to describe something/one that is not quite ready for the big time. I would assume that this is derived from the fact that fruit tends to be green before it is ripe. A green orange is still an orange, but it is not yet ready to be eaten. ... and a #6 is waiting for anyone that decides to point out that some fruits (Granny Smith apples anyone) are still green when they ripen!
Sun 09 May | matt | Oh ok. Well yeah I tend to feel like that sometimes need to take a break from trying to solve problems. Often find it actually helps, when you come back to it you can concentrate better, or often the answer will just 'come to you' when you're not actively working on the problem just relaxing a bit. Don't think that's a bad thing at all
Sun 09 May | _ | We actually paint all the new monkeys green.  After a while the paint fades and we assume they now know something... takes about a year.
Sun 09 May | pds | Learning Ada had that effect for me. See: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=103147&ixReplies=26
Questions for the call center people | Sun 09 May | Sathyaish Chakravarthy
Those of you who work with call centers, would you like to tell me: (1) What function do you perform - tele-calling in a voice process (inbound or outbound), web process (back office), sales, marketing etc. (2) What is your daily routine at work like? Those 8 hours. (3) What software from which vendor do you use? (4) How are your emails or tele-calls monitored? (5) Is there information related to work that you have to share outside of the software you use to log your work in? Like may be sending a file via email using Outlook. Or using a calender or contact management system to store customer info, because you do not have an order management system to store *everything* about a customer?
Sun 09 May | Richard Kuo | Sathyaish, to put this bluntly, posting 5 questions in a row makes you look like a wacko.  Don't spam the board.
Sun 09 May | Brutalacus | LOL!
Sun 09 May | Christopher Wells | I worked for a company whose product is a VoiceXML interpreter, and I attended a conference for call center people. You might like to browse http://www.iccm.com/ The software (from whatever vendor) that provides (inbound) call distribution to agents, or which connects (outbound) calls to agents, will provide supervisory facilities for monitoring the call. One of the issues being addressed by software vendors is the idea that companies have seperated 'silos' of data, from voice contacts and email contacts, that the software should integrate.
Sun 09 May | Almost Anonymous | 'Sathyaish, to put this bluntly, posting 5 questions in a row makes you look like a wacko.' It's the weekend... don't you know that Sathyaish posts 4-6 questions, in a row, every weekend? He's more wacko than you think... :)
Sun 09 May | Wayne | My company makes an platform of products to run a call-center. I won't say the name of my company because I'd like to remain semi-anonymous. 1.) yes, yes, yes, yes. 2.) software maintenance and development, all day. 3.) ours 4.) our 'Agent' program can record phone calls and the data-entry screen. 5.) our software only needs a few pieces of info like the customer's phone number and their account number. All the data entry happens in a screen that the client builds themself with our screen builder and usually the data gets stored in the clients own database.
Sun 09 May | Sathyaish-Defender | Come on, guys, give Sathyaish a break. The guy's obviously got an insatiable desire to learn, so just answer his question or move on.
A few random ideas | Sun 09 May | Sathyaish Chakravarthy
(1) Last night I watched Carry on Dick. There was a word that got me curious as to its origin - diggler. I searched a few slang books I got, but couldnt find a mention of the negolism. Anyone know its origin? I am not asking the meaning, it was clear watching the movie ;-) (2) Acceleration due to gravity is given as the rate of change in velocity. The concept still doesnt sink in. What does it mean to say distance/(time^2)?
Sun 09 May | Tom H | 'Acceleration due to gravity is given as the rate of change in velocity' You need to take an intorductory course in calculus. Velocity is the change in position per unit of time (feet per second). Acceleration is the change in velocity per unit of time (feet per second) per second If the rate at which you are accelerating is changing, you have ((feet per second) per second) per second And so on, ad infinitum
Sun 09 May | matt | Speed and accereleration won't really make full proper sense until you do some calculus. For now though, try not to be mislead or confused by the /units/ of the quantity, m/s^2, when thinking about /how it's calculated/, finding the rate of change of speed (strictly speaking to find this you need to take limits in an approximation, although drawing a tangent to a graph is a good way of visualising it). You don't (typically) calculate acceleration by dividing a length in meters by the square of a time in seconds. What you'd do would be something like: (speed(now) - speed(a second ago)) / 1 second as a first approximation, then (speed(now) - speed(a millisecond ago)) / 1 millisecond then (speed(now) - speed(a microsecond ago)) / 1 microsecond and take the limit as the time period gets closer and closer to zero. Calculus gives you easy ways of doing this (differentiating) if you have a formula for the speed, say.
Sun 09 May | Sathyaish Chakravarthy | >Acceleration is the change in velocity per unit of time (feet per second) per second I know that, and that was what I said - rate of change in velocity (implied per unit of time, or in terms of differential calculus, the change in velocity due to a very small change in time that tends to zero.) >If the rate at which you are accelerating is changing... But I couldn't think of it as something I could understand. I still don't understand it. Although this statement of yours makes it pretty much easy to understand, I am still thinking what it means to measure speed every second. Meaning what is the meaning of measuring the change in speed per unit of time.
Sun 09 May | Sathyaish Chakravarthy | >(speed(now) - speed(a microsecond ago)) / 1 microsecond Thanks, Matt. I got that. But I still dont seem to understand how to think of it out of mathematics. Speed is already a function of time, given a distance. Then what good is it measuring, 'how much change in speed in this time?'
Sun 09 May | Tom H | 'Meaning what is the meaning of measuring the change in speed per unit of time' The concept of 'rate of change' is the same no matter what it is that's changing. If you are gaining weight, the rate of change is how much gain per day (or whatever time increment). If the velocity is changing (getting faster or slower), the rate at which it's getting faster or slower is called acceleration. I think you're trying to find something complicated where it isn't complicated at all.
Sun 09 May | David Roper | As a complete aside, I was once working on some magnetic field data provided by the British Geological Survey. This data is collected every 5 - 10 years and used to estimate the angle between true and magnetic north (i.e. the magnetic field vector at some position and the earth's spin vector) for surveying and navigation. To estimate this into the future you need to know not only the rate of change of the angle with time (velocity, if you like), but the rate at which that rate changes (c.f. acceralation). Every now and then there would be an unexpected change in the 'acceleration', which they called .... A jerk
Sun 09 May | Aaron F Stanton | Think of it in terms of driving your car. At rest you are going 0 meters per second. You hit the gas and 10 seconds later you are going 25 meters per second. If you were undergoing constant acceleration, then you were accelerating at a rate of 2.5 meters per second per second, which is to say that every second you were accelerating your speed increased by 2.5 meters per second. I find that concrete examples in terms that we can relate to in everday life sometimes help explain what are otherwise difficult and abstract concepts. (I used units of meters and seconds because that's what most physics students are taught, and the speeds given are pretty realistic for cars.)
Sun 09 May | Aaron F Stanton | By the way, David Roper is right - change in acceleration is indeed called jerk.  It's typically felt in everyday life in the moment you hit the gas - you're sitting in the car, minding your own business, when suddenly - wham! - an invisible hand slams you back into your seat.  You have abruptly increased the acceleration of your vehicle.
Sun 09 May | Christopher Wells | > Then what good is it measuring, 'how much change in speed in this time?' Because you want to know the answer to 'How rapidly is my speed changing?' For example, you jump off a tall building: half a second later, your speed is only 5 metres per second. If you ignored acceleration, you might think 'so far, so good' ... It's easier to think of acceleration as '(metres per second) per second' than to think of it as 'metres per (second squared)'.
Sun 09 May | _ | That makes perfect sense in terms of coding and flow.  When someone interupts me with inanities and my acceleration changes.  They are invariably referred to as 'Jerk!"
Sun 09 May | Dennis Atkins | Talk to me about this <MOVIE> tag you were using - are there some sites that will insert links to movie databases automatically? And likewise <BOOK> for an amazon link by title? That would be cool.
Sun 09 May | JWA | Based on the title of the movie and they way you implied it's connotation, is it possible it is in reference to Dirk Diggler, the porn star who's life was chronicled in Boogie Nights?
Sun 09 May | no name | i would love to see cary on my dick, but that's another movie and another post that will be deleted soon when Joel reads is
Sun 09 May | Chris Crawshaw | The other way to think of acceleration is as a consequence to a force. Using Newtons Second law, force = mass x acceleration. Also, trying not to confuse you even more, acceleration is change in velocity, which is the vector of speed, meaning its speed in a given direction. Therefore if you change direction you are accelerating - which is why you feel a force when going round a corner in a car. First thing you learn in mechanics at A-Level, before calclus in relation to mechanics
Sun 09 May | matt | OK, sorry i thought you were puzzled about the actual maths. In terms of visualising it/seeing what it's good for... look up/think about newton's laws of motion. As a random example... think about travelling up and down in a lift for example. If the lift is going at constant speed (zero acceleration) it feels to someone inside like it's doing nothing at all. But when it's actually accerlerating, you feel the force acting on you, one way or the other. If it's in free fall then it's like you're weightless inside the lift... Think about things floating about in space. Something in space could carry on moving at a constant speed forever, without any work being done. But to make it actually /accelerate/, you need to apply a force to it and do actual work. Eg squirt fuel out the back of a rocket or something. When things accelerate they are gaining kinetic energy Dunno what to say really, perhaps an introductory mechanics textbook would help connect the maths to real world problems and show you what it's good for.
What's to learn? | Sun 09 May | Sathyaish Chakravarthy
I was considering enrolling for a CS degree. But before that I wanted to relearn some concepts I already learnt in college during my graduation and Cost Accounting degree classes. Below is a list of topics I am revisiting with the aim of: (1) Self-edification, obviously, thats the prime goal. If I wasnt interested genuinely, I wouldnt bother reading them. They excite me. (2) When I enroll for the degree, I shouldnt have problems giving my prelims and my exams. (3) I must enjoy my studying through the course. (4) I must be good at it, and must be able to use these concepts to programming. (5) I must secure a fine job, and broaden my skillset. Heres the list I think is important: (1) Linear Programming (2) Transportation Problems (3) Assignment Problems (4) Differential and Integral Calculus (5) Probability (6) Permutations and Combinations (7) Binomial Theorum (8) Games Theory (9) Queuing Theory (10) Decision Theory (11) PERT & CPM (12) Inventory Control (13) C, Data Structures & Algorithms (14) Statistical Quality Control (SQC) (15) Going to relearn SQL thoroughly (16) Going to try learning some ASM (17) Exponential and Logarithmic Series (18) Functions, Limits and Continuity Is the list relevant? If there are more subjects/concepts I must acquire knowledge of in order to be a better CS student, that I can deploy in programming, please tell me. I am sure there are many other things a good software engineer needs to learn and I want to know them.
Sun 09 May | Justin K. | Threading and concurrency Network Programming
Sun 09 May | son of parnas | Are you going to learn anything about programming?
Sun 09 May | Sathyaish Chakravarthy | >Are you going to learn anything about programming? Like what?
Sun 09 May | Tom H | Your list seems reasonable for a CS degree, although I'm a bit surprised you didn't take several of those math courses as part of an accounting degree. I would consider calculus, probability and statistics, and linear algebra to be prerequisites to accounting.
Sun 09 May | Sathyaish Chakravarthy | I did. I did learn most of the topics in the list. Every few days, in fact, I revisit by trying to solve, say, an LP maximization problem using the Simplex method. Or doing the graph of an Economic Order Quantity problem. There are some topics (most of them) in those list that I have already learnt in school, college and in my Cost Accounting course.
Sun 09 May | Tom Vu | >>What's to learn? How about applying what you have already learned to real world problems.
M=K=Thousand | Sun 09 May | Sathyaish Chakravarthy
M is a Roman for thousand. Where does K come from then? Which language does the word kilo come of?
Sun 09 May | Adam V. | http://dictionary.reference.com/search?q=kilo [French, from Greek khlioi, thousand. See gheslo- in Indo-European Roots.]
Sun 09 May | tapiwa | Except when it comes to computing..... where M refers to 1024 anal I know, but I am sick of hard drive selers short changing folk!
Sun 09 May | Chris Crawshaw | when k = 1000, doesn't M = Mega = 1,000,000?
Sun 09 May | tapiwa | you are right. kilobytes is 1024 bytes megabytes should be 1024 kilobytes which is 1024*1024 bytes!
Sun 09 May | Karel Thönissen (www.hello.nl) | Wrong: kB = kilobyte = 1_000 bytes MB = megabyte = 1_000_000 bytes. This is the official standard. Also: kibibyte = 1024 bytes mebibyte = 1024 x 1024 bytes
Sun 09 May | tapiwa | guess the jury is still out on this one... http://www.webopedia.com/TERM/K/kilobyte.html http://www.quinion.com/words/turnsofphrase/tp-kib1.htm have to admit that this is the first time I have heard of this term, which was supposedly introduced circa '98 (and I have been tinkering with bytes since the mid 80's!). Does not seem to have been accepted too widely. I am sure I would get wierd stares if I order a 250 Gibibyte HDD instead of a 250 Gigabyte one. (where a Giga =10^9 or 1,000,000,000 vs Gibi = 20^30 or 1,073,741,824 ) 7.3% difference.
Lots more, tell me why. | Sun 09 May | Sathyaish Chakravarthy
I read there are sometimes requirements wherein third party vendors are called to integrate, say, an existing CRM with an order management system. Clarified, all of this is for academic purpose. I read this on the Web and also from a white paper from the Yankee Group (http://www.netsuite.com). The question is, how are ERP softwares deployed? Are the database they are shipped with transparent for any other software vendor to start modifying them? Cor, what a wierd question this is. Databases are not compiled binaries, I know, but, I mean can anyone just do anything to their databases? If not, how else could a third party vendor make an integration to link their own application with an existing ERP suite? For eg. An ERP system, say, that caters to the marketing and distribution aspects of a CRM application has a customer table. I am creating an online order management system that must integrate with the existing CRM package. I _must_ know the structure of the customer table and related tables in order to fetch a customer id and work on it. I might want to create another table called Customer_History with two fields: Customer ID (Int) Customer History (NText) Unless I already know the name of the field that stores the customer id in the customer master table in the CRM suite, how would I integrate my own table with the existing suite?
Sun 09 May | Christopher Wells | If you look at http://www.peoplesoft.com/corp/en/products/ent/tools_tech/platforms/index.jsp for example, you'll see that they're not using a proprietary database: instead they're using standard SQL databases such as DB2, Oracle, MS SQL, etc. Because it's a general-purpose database you (the DB administrator or programmer) can use the database's tools to discover the DB schema (the list of tables that the CRM created in the DB when the CRM was installed, the names of fields within each table, etc.). In addition, I think it likely (based on my experience with call center software) that the CRM package has SDKs and/or whitepapers that explain to 3rd parties how to write specific types of add-on that integrate with the CRM.
Sun 09 May | tapiwa | Chris is correct. Most commercial apps, including large accounting and financial apps will use off the shelf databases to store data. Hell, even the daddy of ERPs, SAP have opensourced their database! 'Unless I already know the name of the field that stores the customer id in the customer master table in the CRM suite, how would I integrate my own table with the existing suite?' As Chris said, in a lot of cases, there are white papers, and developers kits for accessing this data. In a lot of cases too, this information does not exist, hence the stupid money it costs for a lot of middleware development. Try reverse engineering a database where all the table names are numbers!
pragmatic innovation on the desktop | Sun 09 May | FullNameReqired
What have you seen _and_ used recently? where did it come from originally? Im not talking about programming languages, favorite IDEs or clever database design, but real, practical ideas in software that either _you_ actually use and that you notice the difference with every day, or that mum & pop actually use. I was able to come up with a couple, but surprisingly few. what am I missing? blocking ad popups (opensource), bayesian email filters (opensource), file navigation in osx 10.3 (apple), tabbed browsing (opensource), Ad Aware & SpyBot ( I visited my inlaws over the weekend, can you tell?) that seems to be it....surely theres more?
Sun 09 May | Matthew Lock | Mouse gestures in Firefox. I believe the first browser to use mouse gestures was Opera?
Sun 09 May | Rhys Keepence | The LaunchBar for OS X. Huge productivity boost.
Sun 09 May | TomA | Gush messaging client. Very nice but the rendering is too slow for practical use on my PC
Sun 09 May | Peter Monsson | I'd like to add Opera.
Sun 09 May | r1ch | Mac OS X Exposé - if only there was a decent implementation of it for Win2k...
Sun 09 May | Longing for the days of OS 9 | Man, that LaunchBar thing is too hard for me to understand right now; have tried it a bunch of times. Maybe it's one of those things that is easier than it seems. Can I look up the man page for printf with it? Does it really have to index all of my favorites in my browser even though they are not really favorits but bookmarks. Anyway, since the theme is OS X, I'll say that I am happy to have found: Labels X - at last I can have my OS 9 labels back the way they are b est - as an icon's tint, and not some weird distracting shiney panther candy bar. DockSwap! - ah, so relieved I am to at last be able to organize the NextStep Dock into multiple sets. It's on ok substitute for the brilliant tabbed putaway folders of OS 9 which should never have been put away from OS X. WindowShade X - I had to pay for it for OS 7.5, and now I have to pay for it for OS X since Apple tossed it out after having bought the original. No matter, WindowShade is just what I need to see behind the window at hand without moving it into the dock (explain why that makes sense again? Then I have to move the mouse to get it back). Expose is overkill for this and besides, CW8.3 doesn't work in Panther, so I'll just stay in Jaguar for the text few years thank you.
Sun 09 May | Alex | The scroll wheel. Media player/program shortcut buttons on the keyboard.
Sun 09 May | Longing for the days of OS 9 | +1 for the scroll wheel. It's the only thing that keeps me from going back to OS 9.
Sun 09 May | Tom H | Kind of depends on what you mean by "recently", but over the past ten years or so the biggest innovation I can think of is the hyperlink. Really changed the way we use computers.
Sun 09 May | FullNameRequired | ' but over the past ten years or so the biggest innovation I can think of is the hyperlink.' actually my definition of 'recently' is a little more recent than that. I was just thinking about things last night (after a fun day cleansing a few of my inlaws windows OS of virusi, malware, adware and other tedious crap) and I was trying to think what, after all the updates between win98, macos8 and winXP and OSX10.3, had _actually_ improved in my use of computers. ie, improved in a noticeable, intelligent way that affects how I use computers everyday. the best I could come up with was tabbed browsing.....but Im sure there must be more...? Im specifically not including IDEs (cause we all love ours best, right?) or big, visionary crapola like web objects or .net....just things that make our lives easier every day. technically I prolly shouldn't have even included ad aware or spybot for windows but I was so overwhelmingly impressed by how easy they make the windows cleanup process that it just seemed picky not to even mention them. great apps, I owe their creators some real gratitude.
Sun 09 May | Darren Collins | VoodooPad as a notekeeping tool on OS X. http://flyingmeat.com/voodoopad.html
Sun 09 May | Nix | - Optical mouse ! - IM
Coder to Developer: warning! | Sun 09 May | igrek
I always listen to Joels recommendations. So, I went to Borders to check the book ...and what a surprise. This is heavily MS-centric (C#/.NET/etc.) book. Its unfortunate that not book title nor reviewers mention this fact. It still might be a very good book, but it should be named "C# coder to developer", or something like this. Big disappointment for me.
Sun 09 May | RB | What computer language would you have preferred? And why does it make a difference?
Sun 09 May | GreenMeanie | Language indifference is one of the primary steps in transitioning from coder to developer
Sun 09 May | Chris Nahr | That's true but the original poster is still correct... much of the book's value consists of links to utilities and practical tips, and those are _exclusively_ for Visual Studio .NET 2003 and the C# language (sometime VB.NET as well).
Sun 09 May | Jesse | Any language that is somewhat common and has a free compiler works great for books about general coding or development.  C# is fine.
Sun 09 May | cabby | igrek is correct that the bulk of this book is very specific to one flavor of programmer: the Windows programmer. I too was disappointed at the bookstore, expecting from Joel's forward to find something in the class of The Pragmatic Programmer, or The Practice of Programming. No luck. Even though I don't write much Windows software anymore (nor even use Windows much anymore) I bought the book anyway, and I'll read it hoping that there might be bits of good general information hiding in there. I buy a lot of books, so to me the risk is minimal: two lunches worth of cash, and maybe a couple nights worth of reading time. If it turns out to be irrelevant to me, I'll just give it to a Windows person or the local library, and not recommend it. One of the things that my pure Windows-programming-only friends (or Unix-only, or Java-only, or Ruby-only, or embedded-only, etc) seem oblivious to is that much of their day-to-day concern and accumulated wisdom is not universal. For instance, to a good Java programmer who does test-first development, a debugger is rarely if ever needed. To many of my C++-in-Windows friends spending hours a week in their debuggers, that's inconcievable. Just from skimming the book, I've noticed several Windows-only issues that Gunderloy gives considerable attention. One is choosing and using an installer tool, primarily a Windows thing. For instance my main machine, a Mac, installing applications consists of dragging them from the CD or disk image into the Application folder. In delivering Mac software, there's nothing similar for me to consider. 'Uninstall' consists of clicking the application name and pressing Command-Delete. To my firmware colleagues, install is something like burning a ROM. Installation scripting is simply not even close to being a universal concern.
Sun 09 May | someone | Don't people get paid to write a foreword?
Sun 09 May | cabby | Reading my own post, and thinking again... The embedded-only folks suffer no delusions that their concerns are universal. They *know* that they are in a unique world. They deserve to be dropped from my list above. It really does seem to be the Windows-only people that suffer most from the belief that their approaches and concerns are universally relevant. That's reason enough to try to shift one's career onto another track. I think about one of the sharpest and most knowledgable programmers I worked with in my Windows programming days, perhaps ending 8 years ago. When I get together with him now, I find that he hasn't changed the way he works or thinks much about programming. Oh sure, he uses a later version of Visual Studio, has tinkered with C# stuff from his MSDN universal subscription, uses the latest SQL server, and whatnot. But the biggest change from a decade ago in how he works is that he now has dual displays. He can't barely carry on an interesting discussion about programming with non-Windows programmers anymore, he's so stuck in that single rut, wide as it is.
Sun 09 May | cabby | [can't barely]  -->  [can barely]
Sun 09 May | Jorel on Software | I think Joel likes it cause Gunderloy uses FogBugz.
Sun 09 May | Prakash S | Maybe Joel should have mentioned the book's website: http://www.codertodeveloper.com/ that would have probably given you a better idea. Mike is an excellent writer (I have bought his previous books as well as this book). You should subscribe to his blog larkware.com - one of my favourites.
Sun 09 May | MX | Well, if I go into the bookstore and find that a book is Unix-centric or Linux-centric, then I get upset. I am a professional Windows programmer. I couldn't ever get Linux projects, even if I tried quite a lot, and even if I have done some Linux development on university projects. Joel's site is Windows-centric. Why are you upset if he reviews a Windows-centric book?
Sun 09 May | Professional Forewords Writers | Sounds like business is not doing well and Joel has succumbed to writing forewords for people. I wonder how much he charges for his services?
Sun 09 May | Julian | >>> Joel's site is Windows-centric. Why are you upset if he reviews a Windows-centric book? That's not the problem. People are upset that Joel reviewed a Windows-centric book without identifying it as such. From my limited online interaction with Mike G., on a book review mailing list, I can vouch for how well he thinks things through and expresses himself.
irreversible | Sun 09 May | irreversible
This is not exactly a software related question, but it could be considered to fall under computer science through math. Anyway, is there such a thing as irreversible operations? What I mean by that is you can go in one direction, but cannot come back to where you started from. I have a few I can think of: one-way hash functions are one such thing. I think the modulo operation is one way as well. Due to the wrap-around effect, one cant always trace back where one came from. Do you guys know of any other?
Sun 09 May | . | Any non-invertible function is "irreversible"
Sun 09 May | Ankur | Lots of things are one-way. You could simply take a number, multiply by zero, and then ask someone to retrieve the original number. But, more to your point: bitwise and / or / xor bitwise shifts
Sun 09 May | trig | The trignometric functions are irreversible if you use them over the domain of real numbers.  For example, if you look at the sine function, you will find that f(x) = f(x + 2*k *pi) for all integer values of k.
Sun 09 May | Roose | A more proper word for this is one-to-one, don't you remember your high school algebra and the "horizontal line test"?
Sun 09 May | Holger | Any function where a loss of information occurs. More exactly, any single operation where a loss of information occurs within a given context. For a or b = 0 you know that both a and b were 0, for a or b = 3 you don't know which was which. The JPG and MP3 compressions are irreversible on the bit level, while they are meant to be 'reversible enough' on the human level. A cryptogaphic hash is irreversible when the original data is lost; it is reversible 'the other way around' when you use it to identify a given file. Thus I suppose the irreversibility of a function is defined within given circumstances; The or-operation is it for the general case with the 0-result as a special case.
Sun 09 May | matt | Ehm... XOR is reversible! since: (a XOR b) XOR b = a (so more like... XORring with a particular constant is reversible) If you're looking for general examples, anything where you end up with less bits than you started with is obviously not gonna be reversible. Phrasing that mathematically, any operation where the cardinality (size) of the image is less than that of the range fails to be 1-1. Neat thing is 'cardinality' is defined especially so that statements like this work for infinite sets aswell as finite ones (although admittedly computer science is mainly interested in the finite ones) Read up on some basic set theory, bijections, surjections, one-to-one mappings, etc. It's really not hard stuff.
Sun 09 May | Philo | Google on 'NP Complete' Should answer your question at a fundamental level *and* keep you busy for the rest of the day. Or you'll have a psychotic episode. YMMV. Philo
Sun 09 May | Roose | What the hell does NP completeness have to do with a function being one-to-one?
Sun 09 May | TomA | format c:
Sun 09 May | Philo | Isn't NP completeness about being able to traverse an operation in either direction with equal ease? OP gives hash functions as an example of irreversibility. But a hash function is NOT irreversible - just test text against the hash until you find a match. However, it is not *easily* reversible - P!=NP, as far as we know. In fact, dwelling on it a bit, NP Completeness is the exact answer to his question. Philo
Sun 09 May | Rob Walker | Its been a long time since the computing theory lectures, but I though NP vs P was about whether you could find the *optimal* solution to a problem with a polynomial time algorithm (vs an exponential one). Classic case is the travelling sales man problem. I don't see that it has a lot to do with reversibility ... though I think there are some cryptographic protocols that rely on certain problems being NP complete and hence unsolvable in a sensible amount of time given current technology (ie. they are irreversible for all practical purposes).
Sun 09 May | matt | and I mean domain, not range. doh.
Sun 09 May | the artist formerly known as prince | Thats one of the differences in computers vs math. Computers have memory buffers, i.e. bitwis or multiply by 0 are irreversible, only if you didn't bother writing down the original in some other part of memory. The only truly irreversible things arent operations on data but operations on system state where the system is out of your control: i.e. you have drop but not creat table privilages on a table in a database
Sun 09 May | Philo | Rob - that's the point. The optimal solution *is* 'the' solution. And there's no easy way to find it. But once you've found it, it's trivial to prove that it's the right answer. The cryptography problem is factoring a number into its two prime factors. To find the factors (as of today) your only option is trial and error. But once you've got two factors, it just takes one calculation on a big calculator to prove it's the right answer. Again, easy function one way, almost impossible the other. If you have a hash, you can run text through the same hashing function until you get the same hash; but once you have it, then no problem to run it through and prove that's the solution. It's all about a problem being childishly easy to solve in one direction, but impossible for the largest computers in the world to solve in the other direction. In other words, the problem is irreversible (or nearly so) Philo
Error reports for non-fatal errors? | Sat 08 May | David (www.davesez.com)
Im putting in automatic error reporting in my desktop consumer app (you may have noticed a few questions in the Ask Joel forum). I have all the code now that displays the dialog and pings FogBUGZ and Im not putting the calls in various places in my code. What Im curious about is those places where the code gets to a point that it shouldnt, but its not something fatal. By that I mean that I can work around these errors so that the end user may never notice them, although some functionality may not be quite right. Id like to know if these sorts of problems are happening in the field, but Im not sure I want to alarm the user with an error dialog if the app can handle the situation by itself. Anyone else deal with these questions in the past?
Sat 08 May | David (www.davesez.com) | Damn my fingers. replace 'not' with 'now' in that first paragraph.
Sat 08 May | Ron | Errorlog.txt
Sat 08 May | Dennis Atkins | Log them and only send the log when/if a more serious error occurs, and only send the bundle of them if the user gives permission. Key is you don't want to be making net connections unless the user initiates, gives permission, and completely understands what is being sent. They should be allowed to refuse to send bug reports. If the program crashes, it is very reasonable to ask if they wish to choose to send a bug report of the program's bug history to assist in improving the program. But if there is a silent recoverable error, you don't want to call attention to it because that is just bothersome. So this solution allows you to dela with it from a best practices as far as the customer in concerned level.
Sun 09 May | Gwyn | Why not make the user aware of the auto-reporting capability, ask them nicely to accept it and provide an option for them to be able to see the log of what was sent and when... should they really want to know..? Chances are they won't, but I'd like the option to see it anyway... especially to get an idea of the scale of stuff it's sending from my machine.
Do you use Active Desktop? | Sat 08 May | Software craftsman
How many of you guys/gals use Active Desktop?  I think thats what its called.  Its the ability to display a webpage as the desktop background.  Is this really a useful feature?  I dont really use it except to play around with it.
Sat 08 May | Almost Anonymous | Always the first thing I turn off.
Sat 08 May | .NET Developer | I suppose I use it, but just to Restore it after my michine crashes. I had never thought of it, but ... why do I need to restore something I don't really use? Is it enabled by default in WinXP ? If it is, then why don't I see it? Why do I have to restore it after my machine crashes just to have my wallpaper back? Could someone explain?
Sat 08 May | Chris Nahr | Yeah, I'm not really sure what it's good for since I turn it off immediately! Maybe Philo can post some propaganda about the purpose of this stuff...
Sat 08 May | Steve Jones (UK) | I don't remember seeing anyone use it. Isn't it a hangover from the IE4 days when Channels and Push Technology was all the rage ?
Sat 08 May | Philo | Not me - my desktop is blue. Of course, I had to check, because I never see it. I turn off all the chrome on Windows systems and set my IE home page to about:blank. I have better things to do with CPU cycles. :-) Philo
Sat 08 May | Philo | 'Isn't it a hangover from the IE4 days when Channels and Push Technology was all the rage ?' Well, this should answer that question - I started fiddling around with it just to see if it's worth anything, and got directed to this: 'Internet Explorer 4.0 Desktop Gallery Posted: August 27, 2001' Philo
Sat 08 May | JWA | First thing I used to turn off because in pre-XP systems it was a HUGE drag on the system.
Sat 08 May | Steve Jones (UK) | QED
Sat 08 May | Thom Lawrence | I have a Google window on my desktop. I sometimes put the BBC News frontpage there. Occasionally, I'll have a 'funky' animated gif or a news ticker or something. I installed a nice calendar thing once. I'd find Active Desktop far more useful if you could actually _browse_ on the desktop, but clicking a link always launches a new instance of IE. But yeah, I use it. Mostly just decoration, but I like it. I've found that almost every single one of the features I used to hate and turn off the moment I installed Windows, I now use. I always hide file extensions, so I can easily rename files. I like the personalized menus now. I love these little things. On the taskbar I have tons of toolbars and stuff. Did you know you can Ctrl-click on window buttons on the task bar, so you can easily tile stuff?). I even use Favourites.
Sat 08 May | Matthew Lock | I used it in the past to add a few web cams of different citys around the world to my desktop, London, Tokyo, Perth etc. You can set them to update every n minutes, so it was quite nice having them change during the day.
Sat 08 May | genx'r | I never used the web page background features of Active Desktop. But Active Desktop was required for NT4 systems in order to get the Quick Launch Toolbar and some other nice features that the Windows 9X & 2000 & XP had built into them. NT4 by itself had inferior GUI features....
Sat 08 May | Steve H | lol! An old boss used to call it 'Active Slowdown' because there was a noticable drag on the system when it was turned on. Today I use it for 2 things: - I wrote an html page that draws the current month's calendar in the upper right-hand corner of the page. that html file gets used as my wallpaper. - I hacked together a simple web-based a to-do list and I use active desktop to display it at home and at work.
Sun 09 May | Xxxxx Xxx | Active Desktop is exceedingly useful for me. I don't keep my bookmark on my IE's 'favorites' menu. Instead, I code my bookmark in a html file and point my Active Desktop to that html file. Whenever I want to frequent a website, I just fire them off my desktop. This is cool! I don’t have to manually launch IE, clicking on the hyperlink alone will kick off a new IE window. Another benefit of using a html-based bookmark is that if I access Internet in the library or cyber cafe, I have access to my bookmark.
Sun 09 May | Sanjay Sheth | I have a custom local weather & traffic page that I put on the AD .. quick way for me to get the latest info without opening webpages.
Sun 09 May | -..FuLL NaME..- | I know back in the days Active Desktop was necessary to use JPG files as background images. But I always converted to BMP myself, and shut it off. Xxxxx Xxx: you can drag the icon in front of the web address from IE to your desktop to create a desktop shortcut. Seems a lot easier to me... ;-)
Sun 09 May | Martin Beckett | I have a cgi app on the server which draws a graph of the CPU load and temperature of our cluster. An html page on the desktop background points at this with a refresh header every 10 secs. So I get a live graph of where the next fire is going to start as my wallpaper.
A definition of spaghetti code... | Sat 08 May | Kyralessa
...if you please.  Because I see a lot of people using the term, but I suspect they mean something different from what I think of when I see the term.  What is spaghetti code, and what programming habits lead to it?
Sat 08 May | Christopher Wells | Google suggests http://info.astrian.net/jargon/terms/s/spaghetti_code.html from the Jargon dictionary. I don't see GOTOs, so instead for me the term implies especially: * Deep layering (A calls B calls C calls D calls E calls ...) *Cyclic dependencies (A calls B calls C calls A) 'Spaghetti' also implies that I'm unable to understand a layer without understanding what's above and below it: for example, imagine 3 layers A, B, and C, each containing a dozen methods like A1, A2, A3, ... B1, B2, ..., C11, C12; if I can understand B1 through B12, then it's a layer and not spaghetti; but if I can only understand B5 by looking at A5 and C5, then it's a strand of spaghetti.
Sat 08 May | Tayssir John Gabbour | http://c2.com/cgi/wiki?SpaghettiCode My operational definition is how much nonlocal code one has to change when modifying a part. (Substitutability of code? Quine's version of 'referential transparency'?) I disagree with the link's reference to Ball of Mud, because I sometimes like the mudball approach, but it has a couple funny jokes. I guess it's really about code that isn't good 'Structured Programming' code, like with gotos. But Dijkstra was apparently shocked at the influence of his 'Goto Considered Harmful' paper; it was originally called 'A Case Against Goto' but the magazine editor (Niklaus Wirth) changed it. So I don't think it has a real meaning, and is just one of those things you say when you think some code is funky. I like the Smalltalk/Patterns term 'smell' better.
Sat 08 May | Eric Debois | Spaghetti is to good code like surreal is to real. You open the fridge and the dog explodes.
Sat 08 May | Noname | Think about how spaghetti gets all tangled up with itself and when you try to pull out a small piece of it two dozen long strands tag along with it.  With spaghetti code, you touch one little piece and the whole system comes dragging along (or crashing down) with it.  The code is so entangled that it becomes practically impossible to test or modify any small piece of it in isolation.
Sat 08 May | Bored Bystander | I left a long term client in February that had become addicted to grandiose 'design visions' that in reality have become deeply layered spaghetti. The owner (a CPA) is also the software designer. He is deeply addicted to 'systems everywhere' to the extent that he is paralyzed by his own creation. He cannot ever get to the point and just code anything. But true to denial, he keeps insisting that one day it will all work in perfect synchrony and it will be perfect! Spaghetti and denial will without a doubt be the death of this company. I told a friend there that he had better be poised to apply as a greeter at Wal-Mart when the sh*t comes down.
Sun 09 May | An Aussie | 'You open the fridge and the dog explodes.' That's brilliant! It just brings back all those memories of inherited projects where you discover that the fridge really is wired to the dog.
Sun 09 May | Simon Lucy | If it sticks to the wall when you throw it at it, you know its done. cf: The stickiness of loops and logic inversion
Sun 09 May | Bored Bystander | >> 'You open the fridge and the dog explodes.' Another me-too. Hilarious.
Sun 09 May | spaghetti classes are stupid | The worst spaghetti I am seeing now is this new fad of breaking down stuff to the point where every single statement gets its own function and the name of the function takes the place of the comment. Comments are then considered unprofessional. I guess this is supposed to assist hackers in reconstructing the source of the program since the comments are now in the executable. The result of course is the entire program is totally unreadible without going back and forth from function to function, up down in out. When in the past you might have a function with 10 lines of code, now the fad is to have thirteen functions of one line each over three levels of indirection, none of which are reused outside the encapsulating grandparent function. Programming using iterator functions is similarly stupid. In the old days you had your loop and your simple three lines of action inside the loop. Now, the same code takes forty lines, including deriving defiining and instantiating templated iterator classes and similar nonsense. Absolute stupidity all around. And the people who write this crap call themselves OO and refactoring gurus and spout their nonsense in expensive books. Crap is crap. Let's call it for what it is.
Does commissioning a study really indicate bias? | Sat 08 May | Philo
Obviously a topic near and dear to my heart. [grin] Trying to stay strictly objective, what is your opinion on the idea that when a company *commissions* a study from a reliable independent source it will affect the outcome of the study? Im not questioning the potential for bias when a company *conducts* the study, or when the study is conducted by a traditionally biased source (for example, Slashdot Study Finds Linux used in 99% of Households or .Net Weekly finds no evidence of Java in business); but lets say theres a think tank that has historically been even-handed. If they release a study commissioned by MS that shows some positive result of MS tech, is it really reasonable to think that a company that builds its business on objectivity would throw it away on one study? The big caveat is that its possible the company that commissioned the study retained release rights, which means if the study comes out negative it wont see the light of day; but that doesnt affect the reliability of the released study. Just looking for some opinions. Or a flamewar. Your call. Philo
Sat 08 May | Almost Anonymous | 'Trying to stay strictly objective, what is your opinion on the idea that when a company *commissions* a study from a reliable independent source it will affect the outcome of the study?' The way I see it is this: The reliable 'independent' source is a business. In the case of software developers (lets say our favourite target: Microsoft) they are looking for a study they can use in advertising. Now, If the study isn't positive, the client CAN'T use it. I submit that it's not good business to produce a product that is useless to your clients! For an independent source to produce a positive report doesn't require a lot of corruption. Slightly changing the methodology of the study and the variables investigated can alter the results substantially. And it's easy to know, ahead of time, what methodology and variables might be favourable to your client. And it's obviously good business to do just that. 'The big caveat is that it's possible the company that commissioned the study retained release rights, which means if the study comes out negative it won't see the light of day; but that doesn't affect the reliability of the released study.' You can commission 5 different studies on the same subject (say TCO) and they'll all likely have 5 different results. Now lets assume that 4 are unfavourable and 1 is favourable... which one will be released? Is that study reliable? Standing alone, it probably is reliable. However, Compared to the 4 that didn't get released -- you could question that study's methodology.
Sat 08 May | Doug | Yes.  Rampant cynicism and the polarization of the vocal minorities on either side of an issue guarantee that any commissioned study would be widely viewed as biased.
Sat 08 May | Stephen Jones | Any company that commissioned an unbiased study would surely be open to a lawsuit by shareholders :) As you have pointed out, the companies normally get round the problem by not releasing studies that are unfavourable. The basic problem though, is that a company that takes on a commission is only doing so because it needs the money, and it knows full well that it is more likely to get repeat custom if the first report is favourable. Rmember that years back auditors such as Arthur Anderson were considered to be impartial. My favourite story regarding this comes from more innocent times. There was an English Lit academic who had devised a theory that claimed that you could identify an author by the average number of syllables he used in a word (or maybe the average number of words in a sentence - I can't remember how). He was given a very large grant by the Bacon society to go through all of Shakespeare's plays together with the works of the various candidates for having written them, including Marlowe, Bacon the Earl of Essex, Elizabeth I, Ben Jonson. After a couple of years research (for this was done in the sixties when computing power was not what it is now) he concluded, as the Bacon society hoped, that Shakespeare's plays weren't written by Shakespeare; the problem for them was that he came to the conclusion they were all written by Christopher Marlowe! (As Christopher Marlowe had died some twenty years before Shakespeare's last known play was written this did present one or two niggling doubts - but the guy had been so generously reimbursed by the Bacon society, that he could spend the next three years writing his book to prove that Marlow hadn't really died at all but instead had hidden in Ann Hathaway's second best bed. Admitedly, he never got round to explaining how the author of 'Dr. Faustus' could have followed it up with such absolute drivel as 'Titus Andronicus' or 'Henry V!', but that is another matter).
Sat 08 May | Noname | There is definite bias. When somebody pays your company $5 million, are you going to tell them that their product sucks compared to the competition? They also don't have to worry about losing their reputation for objectivity, because intelligent folks will assume bias anyway, and the rest will soak up the study results as if they're 100% true. No loss either way. Those that take objectivity seriously are those that refuse to run studies on companies that are paying them. Like Consumer Reports magazine which has no advertising.
Sat 08 May | Eric Debois | There is also the issue with the what and how of what is being studied. For example, small changes in frasing can alter the outcome of a poll pretty drasticly. So, the company ordering the study can very well imprint its bias on the study through the requirements. This is something that even the natural sciences have to struggle with, and they dont have anywhere near as much room for opinion or nebulous concepts like TCO. The best way, IMHO to find out if a technology suit you or not is to find others who have done simmilar things and talk to them yourself.
Sat 08 May | Christopher Wells | > somebody pays your company $5 million If objectivity is desired, I wonder whether it's possible to conceal the client: the client uses a lawyer to hire a research agancy, and the lawyer doesn't disclose who's paying for the study: like the 'blindness' people are supposed to use in clinical trials.
Sat 08 May | Eric Debois | Clinical experiments depend on having a control group for comparison. I think the studies philo is refering to are more in the realm of social studies or something, where you cant really create two separate groups and just test your theory on one of them. Blind study means that the subjects are unaware of which group they belong to. Double blind means that the researchers or people leading the experiment are not aware of this either. It depends an awful lot on what exactly you are investigating, but its generally hard to design blind studys out side of a lab.
Sat 08 May | Scot | What is the purpose of the study?  Is it to convince people that Company X's product is superior to the competiton?  If so, and people find out that Company X commissioned the study, does it really matter if it is objective?  The damage is already done.
Sat 08 May | Herbert Sitz | What damage? Microsoft has commissioned lots of studies like this in the past and they still do it, don't they? I think they're just aware that initially there will be a more or less loud backlash of public opinion when it comes out that the study was commissioned, but that the MS-favorable-results will be out there forever and the backlash over the commissioning will blow over in a relatively short time.
Sat 08 May | Mr. Analogy | I think the PUBLIC doesn't necessarily see the study as biased. I think that you really need to lead them by the nose and say 'look, study XYZ was COMMISSIONED by ABC and it just HAPPENS to show that ABC is good. Seems biased, eh?' I work with medical professionals and even THEY don't see a study as biased (necessarily) if it was comissioned by the company the study benefits. HOWEVER, *I* personally would think there's a strong incentive to be biased,f or the reasons stated by other posters above.
Sat 08 May | mb | right, this is a common trick done by software companies (microsoft is an example), drug companies (to the point where they get people to do 'presentations' at conferences, where the entire content of the presentation except the presenter's name is provided by the drug company), other science-related grant issues (no research is done into the dangers of cell phone radiation because noone will pay for it) (the current administration is also apparently pulling funds for papers which disagree with the govt's desired results). so yes, a commisioned study is almost certainly biased, especially if it's released. but people still believe these studies are independent, so the process will continue. otoh, a study for internal use only may not be biased.
Sat 08 May | no name | The answer is that of course commissioning a study will involve bias. Mainly it will be in selecting the research firm. This is not wrong. It's just democracy. Microsoft will be careful as to which firms it selects, and so will IBM and Red Hat. The research firms know they have to steer a delicate balance between avoiding reports that are obviously biased, and losing future work. The accounting firms are the worst examples of this. They will do anything for a few million. Look the other way while management robs the company then issue an audit certificate, and so on.
Sat 08 May | Li-fan Chen | Philo, are you Bill Gates?
Sat 08 May | Tayssir John Gabbour | Could you give an example of the kind of study we're discussing? I think that would help make things a little more concrete. Without seeing an example, I might believe that there are always 100s of little details to get wrong... and it may be that more errors are made which favor the client.
Sat 08 May | pds | Re: Bill Gates as Philo, It turns out that Bill Gates is indeed Philo, and also responsible for the posts of half of the regular posters here. The other half are aliases for Joel Spolsky, including all the 'employees' of his 'company'. The sporadic technical questions are created by an advanced AI project--in its goal of passing the Turing test, it has attained a milestone of the project, to manage to masquerade as a non-native English speaking teenager. So far, the AI has fooled everyone. Deleted posts are not deleted manually. Instead, they are submitted to the FBI's Carnivore program, and are deleted if they receive a sufficient ranking. All threads are immediately deleted if they use the phrase 'invoke Godwin's law' TWICE. Questions submitted to 'Ask Joel' take some time to answer because they have all been outsourced to India. As the cost of outsourcing increases, and the pendulum of public opinion sways, Joel is considering moving Q&A back in-house, especially after the incident. You remember, right? The one where, due to a small paperwork mixup, one of his contractors answered a question about Linux by posting his tax return forms. Joel's signature, which states that he is a Google shareholder, is appended to the end of every twentieth post. While we're here: it turns out that Robert Scoble is inhuman. I don't know exactly what he/(it?) is, but no human being is able to post forty entries a day, every day of the week, for as long as he has. Have a nice evening. Pete
Sat 08 May | Mike | Doesn't necessarily indicate it, but it is sure implied. It makes it look like the company funding the study bought the results. No one I know takes the Microsoft 'Get the Fact's' campaign seriously. Get the FUD would be a better name.
Sun 09 May | . | Actually outsourcing provides the classic proofs of this. McKinsey's been doing work for Nasscom for years (and would like to continue doing this.) Nasscom asks them to do a study on offshoring. Guess what? Sending jobs to Indian creates jobs in America and makes everyone richer. Gartner gets lots of business for Indian outsourcers and has a growing office in Mumbai. They do a study on offshoring. Guess what? Offshoring benefits everyone.
Sun 09 May | FullNameReqired | Actually the process of creating a non-biased study (within reasonable limits of course) is very well known and pretty much understood. ( I only wish I could remember it a little better) put very roughly its: (0) Decide as exactly as possible what the study is going to investigate (0.5) Decide on a set of questions that are as 'neutral' as possible and do as little as possible beyond extracting the pertinent info. (1) Select the participants of each group as randomly as possible from within the groups of interest (in the case of a MS TCO stdy it would presumably be experienced Linux Admin people vs experienced Windows Admin people) (2) Put the questions to the selected groups and faithfully record every answer (3) Record, look at, view and play with the gathered data until some conclusions about its meaning can be found (4) publish the conclusion, the raw data, the questionaire and the process by which the people were found. Thats pretty much it, anyone who doubrs the conclusions can check out the actual data and if necessary point out the possibility of a different conclusion. If no one can do this persuasively then the conclusions are accepted. The chances of (to pick a company at random) Microsoft using anything even vaguely approaching this method are nil...they have nothing to gain and everything to lose.
Sun 09 May | Simon Lucy | A survey or study commissioned by any body, governmental or corporate, might result in a biased result. More likely is that those findings which support whichever bias is wanted are emphasised by the sponsoring organisation. For instance, a margarine manufacturer may well emphasise results in an independant study that support the consumption of margarine as a factor in reduction in hair loss, whilst at the same time ignore or downplay parallel findings that overconsumption of margarine contributes to impotency. Whichever, the consumer of such reports should always treat subsequent spinning of them by other organisations as exactly that, spinning gold from straw.
Sun 09 May | Philo | 'Philo, are you Bill Gates?' ? Where does that come from on *this* thread? IMHO it's a perfectly objective, neutral question. (May I point out that IBM, Redhat, and Oracle all commission studies as well) Philo
Sun 09 May | . | FullName, your description is for a *survey*, not a study. Different things.
Sun 09 May | raga | '*commissions* a study from a reliable independent source ' The word 'independent' is absolutely innapropriate to that place in the sentence. Reliable? OK, maybe. Less-overtly-biased? Fine. Independent? That's a joke. What's funny is how many folks in the IT world are completely oblivious to these things. I love hearing things like 'so-and-so at VendorX tells me that the VendorX-a-ma-bob is the fastest and most reliable thing-a-ma-bob available for our situation, so I think we should choose that.' [Overheard (surreptitiously) from an actual tool-selection meeting consisting of a dozen managers. No irony sensed. No animals were harmed, nor intelligent people involved, in the above mentioned activity.]
Sun 09 May | Jason | Hope you are not commissioning your thing with Directions on Microsoft folks.
Sun 09 May | Tayssir John Gabbour | Let's put it this way -- if you could get a bunch of whistleblowers like Feynman, Nader, and maybe Chomsky, and they all could write their thoughts on how the study was conducted, as well as what they could do better next time, then I'll agree that's a pretty damn good 'independent' report. (Yes I know Feynman's dead, substitute someone who's willing to piss people off in pursuit of what they think is the truth.. but with a scientfic background.)
Sun 09 May | FullNameRequired | 'your description is for a *survey*, not a study. Different things.' of course they are different things. that is still a good basic blueprint for a study. or, if not, perhaps you would like to provide your own?
Sun 09 May | . | It's easier to do, and certainly to describe, an unbiased survey than an unbiased study. A survey is like a scientific experiment, although of course the choice of questions can sway results. But a 'study' is an interpretation of facts, views or whatever, and interpretation by definition will be subject to the interests, expertise and bias of the researchers.
Sun 09 May | FullNameRequired | 'But a 'study' is an interpretation of facts, views or whatever, and interpretation by definition will be subject to the interests, expertise and bias of the researchers.' which is why its so important to publish the raw data along with the conclusions and to ensure that the process was as provably neutral as possible. The idea isn't to get total agreement on the results, nor to stop people disagreeing with your results. The idea is to get agreement that your conclusions are reasonably based, and to ensure that only the most maddened fanatics are accusing you of hiding the real facts. I really dont see what you are blathering on about?
Sun 09 May | no name | FullName, the selection of which 'facts' to investigate, let alone report on, can decide the outcome of a study, even if subsequent interpretation is as straight as a die. This happens all the time. Governments have favourite research firms that they know will deliver the outcome they want, because of shared interest. Businesses do too. And for that matter, so do social activists.
Sun 09 May | FullNameRequired | ' the selection of which 'facts' to investigate, let alone report on, can decide the outcome of a study, even if subsequent interpretation is as straight as a die. ' well, duh. thats why you make all the decisions public..... ah, forget it, its not like it matters.
Licensing and Ownership | Sat 08 May | nerdo
A few months ago I was approached to develop the website for racealerts.com, including the system that sends automated SMS to our clients. Our initial agreement was I have full ownership of the code, and the person paying me to develop it has the rights to use it and do with it as he sees fit. The site is nearly done, and we are just discussing final payment issues. As I own the code, I figure I have two options: 1. Look for other companies in this field and sell it to them (not sounding too good because the code wasnt designed to be fully portable, but it can be done) 2. Sell him the full ownership of the code. For the ownership, Im only thinking around $300AUD, since I would probably only get around $500 for selling the system to another party, and it saves a lot of work. Is selling ownership of the code a good idea? What could be some drawbacks to this? This is my first time doing a site like this, so any help would be great!
Sat 08 May | whatever | I know nothing about that industry, so my questions aren't mean-spirited. 1. Is there a demand for this stuff? I mean demand that isn't already being filled by another company. Or, demand that isn't being filled by internal developers. 2. Are you capable of selling? Do you cringe in fear at the thought of picking up the phone to call a company and trying to pitch them on your product? If either answer is 'no' then I'd suggest taking your money and run. On the other hand, if there really is a market and you've got the cajones to pursue it then by all means go do that!
Sat 08 May | no name | Since you sorted out ownership up front, you should keep the rights. Give them a permanent licence to use it, but ensure they don't let other consultants walk away with the code. Make that clear. You can certainly get more business doing that sort of work.
Sun 09 May | Dennis Atkins | You are selling several months work for $300AUD? Please explain more about this.
Developer to IT and Back? | Sat 08 May | Without my alias...
Recently Ive been placed at a crossroads. I cant see where either road will take me, and I fear that the road less travelled could dead end. I am presently a developer. I dont have too many years experience although my coding skills are solid. I always saw myself moving into a tech lead position and then ultimately a project management position. Unfortunately where I live, the world revolves around CMM/CMMi and personally I cant stand the stuff. I do not want to become a project manager or a tech lead for a CMM/CMMi project. As stated though, as far as finding work goes at other companies that dont practice or have aspirations to practice these methodologies, its like finding a neede in a haystack. Recently I have been presented with an opportunity to jump off the development road into an intermediate level IT position. I am just as technically competent in this area as I am in the development arena, and I enjoy doing IT on a personal level. What Im worried about is if for some reason I dont enjoy the position, after 4 or 5 years, would it be possible to jump back to the development track, and what would the consequences be? Would I be falling back to an entry to intermediate level position, or with 10 years experience total between IT and dev work, could I fall back into a mid to upper level position? I realize that no one can predict the future, but if the future were today, what would the possible outcomes be? To further add to the dillema, is that I have only been at my current employer for 9 months, and the one before that, slightly longer than a year. If I were to switch, it would be for a reasonable duration of time (4 to 5 years minimum). At my current position, the only person I have any regular contact with is my boss (due to sitting at client site) and thus she is the closest person to a friend where I work now. My current company is going down the CMM track although not with the project Im currently on though. I do however only see another 2 to 3 years of growth at my current company. _ANY_ adivce received will be received well, as Im really at a loss for what to do. Should I take the new offer, and if so, if things dont pan out after a few years, can I make the switch from IT back to development? This time, posting without my traditional alias. . .
Sat 08 May | Sassy | The only advice I can offer you is to weight the developer role (production, engineering) vs the IT role (administration, service). You'll need to decide which you are most comfortable with. One of the things about IT, is that if you have good interpersonal skills - prompt, courteous, productive - you will be seen as an absolute superstar. Developer' world is often a lot more insular and competitive. You also didn't mention what your role will be in the IT organisation. Manager ? DBA ? Network? Desktops? Fax & Copier guy?
Sat 08 May | son of parnas | It's hard to jump back. You would specifically have to keep up your skills, which most people won't do. There's something to be said for jumping in enthusiastically without the comfort of a 'plan' that may not make a bit of sense in 4 years anyway.
Sat 08 May | Without my alias... | Pre-Sales Consultant.  Advising clients as to whether technologies would benefit their organization, and coming up with a solution that should be implemented, prior to the purchase of an end to end system.
Sat 08 May | Sassy | Hmm. Where I work, pre-sales is part of the sales org, not IT. Most of our Sales Engineers are tied to a salesperson for their region, and get comission along with the saleman. Most of the SE's can handle installing our software and some basic troubleshooting and configuration, but I would call it a sales job before I'd call it an IT job.
Sun 09 May | Bill Rushmore | I jumped over to the IT role once. For me it it was the worst mistake I could have made. I tried to get back to development but was impossible and was lucky enoungh to return to what I like else where. One suggestion, move to a place where CMM isn't such a big thing and do what you enjoy.
translation software enquiri | Sat 08 May | mohammed basheer
I need a english malayalam translation,malayalam english translation software.
Sat 08 May | anon to protect the guilty | Yes, you do. So go buy one.
Sat 08 May | MediocreDev | That's the problem with western culture, and especially in North America. All we hear is 'buy' this and 'own' that. These terms are brandished like they are the gate to some higher state of moral bliss... It is coming to a point where people a scared to use shady terms like 'share', 'borrow' and 'download'!! Sorry, long day...
Sat 08 May | no name | Yeah, I'm with MediocreDev. What's a thief gotta do to get an even break around here?
Sat 08 May | Aaron F Stanton | 'Yes, you do. So go buy one. ' Even better: Go write one. You can't be the only person needing it. You've identified a business need, so go fill it and make a profit. I guess you could decide to share it instead, and let a lot of anonymous friends download it for free. That won't put food in your mouth or a roof over your head, but I guess that's the price of sharing.
Sun 09 May | Dennis Atkins | I agree - you should write a good one, then release it as open source free software under the BSD license. There is certainly a demand for high quality free translation software, so you could fill a real need in this field. Best of luck to you my friend.
Sun 09 May | Stephen Jones | Dear Mohammad, If you can find the Mayalam for 'bullshit' it will translate most of this thread. Do a Google search. There is translation software for many Indian languages at $199, but no free translation program. www.keralaindustry.org has a list of what is available and compatible with the free software foundation, but the only translations appear to be of technical words. Frankly, translation software is so awful that you would best give it a miss. About its only serious use is when you are translating a document into multiple languages, and you get the output to be rewritten by a native speaker, thus obviating the need for a translator from the source language. But that is with EU software that has cost tens of millons of Euros to develop.
US Company Background Info | Sat 08 May | Steve Jones (UK)
First of all apologies for being slightly off topic, but I was hoping some of you US-based guys might be able to help. I have a possible new business lead with a firm based in the US and I wanted to get some background data on them, especially financials. In the UK, this would be pretty easy, as you can go to the Government-run Companies House website and buy a copy of the accounts for any UK company, for a nominal fee. Is there an equivalent for US-based companies ?
Sat 08 May | Mark Hoffman | Dun and Bradstreet is one place to try. If they are a publicly traded corporation, then you should be able to access many (if not all) of their filings with the SEC.
Sat 08 May | x | If it's a public company (ie, it's traded on one of the stock markets), the EDGAR database is a good place to start; it's the place that all the required Security and Exchange Commission filings are stored and archived. It's very dull reading, but you won't lack for information :) If they're not publicly traded, Dun and Bradstreet (as mentioned) is good, although all you'll find out with this is the compan's 'credit rating'. Financial info and such wouldn't be in a D&B report. The EDGAR database: www.sec.gov/edgar.shtml
Sat 08 May | David Jones | If you buy one share of the company, then you are entitled to their annual report. This may be worth paying the odd-lot fee to your broker. Some public libraries in North America stock annual reports of large companies. Perhaps this is also true in the UK, or you can hire a research firm to find them for you.
Sun 09 May | Steve Jones (UK) | Thanks guys, but the firm in question is not listed (AFAIK) on NASDAQ, DOW, or anything. I think they are more like a UK Ltd comapny.
Sun 09 May | Simon Lucy | There should still be a D&B report on them, and probably a Standard and Poors as well, S&P.
Sun 09 May | x | If it's a smallish company, you could try to look them up in the Hoover's database http://www.hoovers.com/free I never actually used their pay services, but they have miscellaneous business info, and hopefully some approximate info about sales, number of employees, number of years in business, D&B number, etc. If it's not traded, you won't get much more than this without doing some serious investigative work. Also, try Searching on them in the local newspaper for their city. This is part of my due-diligence on any outfit I don't know much about and it often turns up useful info.
Interview question for VB Entry Level Programmer? | Sat 08 May | Sankar Roy
Plese share your experience in this topics. What you have faced during the Interview as a Entry Level VB Programmer? and how you handeled them..... ? Interviwers are also requested to share their experience. Thanks, Sankar Roy
Sat 08 May | Noname | Question #1: What other languages do you know? Hiring somebody with VB as their only programming language is a recipe for attracting incompetence. You need some evidence that their techincal knowledge extends beyond the confines of VB.
Sat 08 May | Ryan Seacrest | Please explain why "On Error Resume" turns every function into a random number generator.
Sat 08 May | Dave | NoName: Why? Sankar is hiring an entry-level _VB_ programmer. Why would knowledge of another language matter? Would it be better to have a more flexible engineer who could work on a different project using a different language? Yes. But that's not what Sankar appears to be looking for. I agree with your concept--the candidate needs to have a good understanding of programming fundamentals--but the knowledge of one or more other languages won't demonstrate the candidate satisfies this requirement. Sankar: Go read Joel's article on interviewing. Ignore the parts that require an understanding of pointers by doing something like writing code to reverse a string in place. Instead ask the candidate if they understand the difference between the ByRef and ByVal keywords. I spent a lot of time mentoring my developers on this specific point during the six years it took to develop our last product (which, incidentally, was written entirely in VB. Total sales to date ~$16 million.) It IS important that they understand the general concept of a pointer, but I don't believe it's a requirement that an entry-level VB programmer understands how to reverse a string in place using pointer manipulation in C. Here's a link to the article: The Guerrilla Guide to Interviewing http://www.joelonsoftware.com/articles/fog0000000073.html Just remember: Smart and Gets Things Done. Keep repeating that to yourself during the interview process. Good luck! Dave
Sat 08 May | Dave | (I just realized that there isn't a reason why you couldn't have your candidate reverse a string using VB. This would be a good exercise for the candidate to do right in front of you, on the white board, and should give you a good understanding of their level of competence. What's great about this sort of exercise, in my experience, is that you get to see how the candidate breaks down a problem to formulate a solution. The ability to do this, not knowledge of a specific programming language, is the most important thing a candidate can possess.)
Sat 08 May | _ | StrReverse(Var)
Sat 08 May | Noname | 'I agree with your concept--the candidate needs to have a good understanding of programming fundamentals--but the knowledge of one or more other languages won't demonstrate the candidate satisfies this requirement.' Knowing multiple languages is not enough. However I would say that *not* knowing multiple languages is a good indicator that the candidate does *not* have a good grasp of the fundamentals, or at least their perspective would be skewed by their one-language knowledge. Having at least a few months familiarity with multiple languages is not a high requirement for an entry level programmer. Where I went to college even math majors learned 2 or 3 languages by the time they graduated. Unless this is for something like a 9-month contract, it is important even for the entry-level candidates to demonstrate the capability to learn something more than a single programming language. Many programmers actually do not have the capability or desire to do that.
Sat 08 May | Noname | Also, knowing only a single language, especially when that single language is VB, demonstrates a lack of interest in learning about software development and technology.
Sat 08 May | XL | Oh, jeez, the guy is looking for an antry-level VB programmer. If you get a superstar C/C++ programmer with 10 years' experience he'll be gone in no time because he will get bored. So.... Look for: - 'Smart, and get things done' (of course....) - Look at the applicant's portfolio of work. - Asses whether the person's personality is one you can get along with.
Sat 08 May | Noname | I am not talking about professional experience in multiple languages. An entry level programmer should be able to demonstrate at least the level of understanding that is normally gained in college courses, whether the languages were self-taught, learned at a prior job, or learned in college. If you want a programmer who has a high probability of being destined for permanent mediocrity, then go ahead and hire the one-trick VB pony. A programmer with real drive and talent would bring more to the table than just VB.
Sat 08 May | VBer | What about hiring a Windows guy ? Would he have to know about plumbing, roofing and be an electrician too ? What if you just wanted your windows fixed ? Why would you hire a roofer to do your windows ?
Sat 08 May | Kyralessa | Real-life example:  I've done homework programs in Java, C, C++, and COBOL, but haven't programmed professionally in anything but VB.  Would I be considered to know multiple languages?
Sat 08 May | Noname | For an entry level person, yes I would accept that you have adequate knowledge of multiple languages if you can answer questions about the languages you claim to have learned and the programs you wrote.
Sat 08 May | genx'r | Entry Level: What are the advantages / disadvantages of using a COM component / DLL in an application.? What is an N Tier Application? What is a class, property, method, event? What is a collection? What is the advantage of a strongly typed collection? What is encapsulation, polymorphism & how are they beneficial? Basic ADO questions: connection, command, recordset objects. That's some of the basics I have been asked.......
Sun 09 May | Sankar Roy | Hello Friends, Greetings from Sankar !!!!! I am really happy to see your spontaneous reply/comments. But, I am not trying to hire anybody; instead I want to get hired :-). That’s why I have requested to put some 'sample questions' (those who have experience in facing real life Entry level VB Interview) and from the interviewer (questions with what kind of answer you expect). I think this discussion will help a lot of other guys, looking for an entry-level VB Programming Job. By the way, may I get your suggestion about the possibility of getting an entry level VB programming job based on my following qualification: 1. Educational: B.Sc (pure science) 2. Programming: VB6, C++ (Classroom knowledge only) 3. Database: MS ACCESS, Sybase 4. Developed small apps like, Internet Evidence Eraser, E-mail Merger (VB & Access), SMTP Mail Sender, Picture Viewer etc. Thank you all... Waiting for your comments, Sankar Calcutta, India
It's starting again. | Sat 08 May | Sigh.
I have been working on a fairly extensive application for the past year and a half. Ive been utilizing my time in the evenings for this. Ive had a couple other major development projects in my life that were commercially viable products. The problem I am running into is that when it comes time to market the thing, I either become depressed (because the development cycle has ended), or move on to something else that seems much more exciting. I guess if I am being intellectually honest, maybe I just dont know what the hell I am doing when it comes to selling. Or maybe I am just shy and dont want to deal with people. Or maybe I find the feedback process as a rejection of my ideas. Or D) All of the Above. I choose D.
Sat 08 May | MyNameIsSecret(); | I'll go for A. The A problem is solved with getting over B and C.
Sat 08 May | Simon Lucy | There's no reason why you shouldn't be able to sell it, but you need someone to open the door first. Door openers are skilled in their own right, they're the ones that get you in front of the buyer and you get to make your pitch in the right environment. Find a good door opener.
Sat 08 May | Ken Klose | Maybe its fear.  You fear failure?  Or more difficult to acknowledge, you fear success?
Sat 08 May | Craig | Basically you just have to suck in some deep breaths and start knocking on some doors. I have been in your position in the past where I did lots of development on the side, more for fun than anything else. I also never really knew how to get past the development stage and start selling. But after being forced to do it once, I now feel I could do it easily again. You just need to get the ball rolling and you will be right.
Sat 08 May | Interested. | "Sigh", send me an email and let's talk.
Sat 08 May | Mr. Analogy | Marketing is very different from programming, however you can approach both using straightforward problem solving. 1. Are there customers who would pay for this program is they knew about it? 2. How did you verify #1? 3. What does it take to convince one customer to buy the program? (i.e., if it's a single person, they just find out about it, try it and buy it. If it's a corporation, you might need to convince several people (end user, thier boss, the budget person, IT depart, etc.)) 4. How would you make lots of those customers (in #1) aware of your product?
Sat 08 May | Mr. Analogy | Problems are overwhelming when we don't know where to START or how to deconstruct them into smaller, more manageable problems. It SOUNDS like you're overwhelmed by this big problem called 'how do I market & sell my app'. Most independent developers throw thier arms up and do it shareware, essentially (in most cases) sticking thier head in the sand and ignoring the problem.
Sun 09 May | doer | 'Maybe its fear. You fear failure? Or more difficult to acknowledge, you fear success?' Just creating something good is success in the world of creatives. Not selling it might be unfortunate, but 'failure' is no longer a word to worry about.
Sun 09 May | Jordan Lev | When I come to the end of the development cycle, it is never as exciting as the beginning. I think it is because in the beginning everything is a blank slate, and you get these grand plans in your head where everything fits together and the design is clean and sensical. But by the end of the cycle, you have come across so many little problems that you've had to fix in a way that doesn't fit in with your master plan, and you can't keep it all in your head any more. It's like when you start out you are living in a fantasy world of perfect design, but by the end of the project, you are in the real world of bugs and ugly hacks. Not sure what to tell you other than it's a natural part of life, and we should accept it and learn to deal with it for what it is, rather than try to escape it in the fantasy of 'the next perfect project'. Good Luck!
Delphi + CORBA vs. J2EE | Sat 08 May | IJ
Iam working in a small company (5 developers). We are developing accounting software for middle size companies. Before 3 years company decided to develop home-grown app server using Delphi and CORBA (and also Kylix for Linux). I have worked only 1.5 years in this company and i cant ee future for such solution. I think J2EE is the way to go. So, what are main arguments against Delphi + CORBA, or maybe this is good solution?
Sat 08 May | Craig | WHat about .NET? A decision like that cant be made without looking in a lot more detail of the requirements than what you have given us. Software developers are notoriously religious and will recommend their favorite tools, either Corba, COM+, .NET, J2EE or whatever. Good developers pick the best tool for the job and have the skills to adapt to it rather than trying to adapt the project to the tool as is often done.
Sat 08 May | Ribeiro | J2EE. Most of the work has been cut to you.
Sat 08 May | Bored Bystander | I used CORBA several years ago. It seems that it has been on the way out for awhile. It also seemed byzantine (overly complex.)
Sat 08 May | Philo | Interview some prospective users. Ask them this question: Which do you prefer as a user interface? a) Excel b) A custom app designed to suit my job Of course, answer (b) could be phrased in a more user-friendly way, but you get the point. Maybe even present them with a screenshot of your proposed app. I don't know your target market, so I can't guess what the answer will be, but be prepared that more advanced accountants often prefer the flexibility of Excel as a front end. In addition, using Excel as a front end can save you reinventing the wheel. I'm also somewhat unnerved that you specified J2EE when the market is small businesses - doesn't J2EE require an application server? Or is it really a synonym for 'Java' (i.e. in a desktop environment) I'll echo previous posters in that you need to evaluate *why* you think J2EE will serve the project better (development cost, deployment cost, maintenance cost). Identify the differentiators and determine why they apply in this particular case. Finally, I've recently had an opportunity to use some modern Java apps, and they *still* feel 'squidgy' to me - not crisp like Delphi, Python, or .Net apps. Since this makes it a case where the chosen development platform can affect the user experience, again I'd have to recommend doing a lot of user testing on demo apps to see which they prefer. YMMV, Philo
Sat 08 May | John Rusk | I'm not a Java developer, but I noticed a recent comment on these forums from someone who is. The comment was a complaint about the complexity of J2EE and it went something like this: '...a nightmare of libraries on top of libraries on top of libraries. I curse the people who decided that JSP was too messy so we needed Struts, but that was too messy so we need to use JavaServer Faces too.' So, if you do go with Java, watch out for the complexity of J2EE. One other thing: you might like to consider sticking with Delphi. Sometime, maybe quite soon or maybe in a few years time, you can migrate it to .NET using Delphi for .NET. That lets you keep your existing code AND move to a modern platform. See http://www.lemanix.com/lemanix/lemanixisapi.dll/Entry?ID=1167
Sat 08 May | Herbert Sitz | If you do stick with Delphi, you might want to check out the option of converting your current appserver from using CORBA over to using something like the RemObjects remoting library (perhaps also with their DataAbstract addon): http://www.remobjects.com . RemObjects can be used to make services that are accessible via SOAP to any client, while at the same time offering a more efficient binary transfer protocol to clients that can use it. Not sure, but I think they've already included ability to use the more efficient protocol with clients written in any .NET language. Another Delphi remoting library that has some .NET interoperability is kbmMW: http://www.components4developers.com
Sun 09 May | son of parnas | > JSP was too messy so we needed Struts Speaking of libraries, why did we need jsp? Why do we need silly containers like spring to do simple and obvious things? If it weren't for the need to have a web server for servlets we wouldn't fricken app servers either.
Sun 09 May | Walter Rumsby | Avoid J2EE complexity: http://www.springframework.org/ Avoid .NET complexity too: http://www.springframework.net/
Sun 09 May | Walter Rumsby | Why JSP - because it's a lot easier to work with a template than to create the output in servlets. There are alternative templating solutions, e.g. Velocity, that provide a more 'pure' separation of presentation and processing too? Why Spring - because J2EE applications can have oodles of nasty singleton objects, e.g. to represent your persistent layer; Spring applications should only ever have ONE singleton (the BeanFactory) and you can actually write nice classes that may or may not have 'only one instance ever' in your application. The more you work with Spring the more you realise what a good idea