last updated:06 Aug 2003 15:07 UK time
|
 |
|
(Comments added for week ending Sun 09 Feb 2003) | View Other Weeks
|
|
| ...another reason not to load access on user wkstn | Sun 09 Feb | crusty admin |
| Friday at work we get a call from a user that was working with access. They were implementing a check box on a form. It was a checkbox didnt link to anything in a table anywhere. So it was useful if you printed out the form.
I am taking a database class this semester and was talking with the instructor. He spoke of a large HMO that has decided to stop deploying access as part of the standard corporate build as it seems an audit turned up about 1200 databases the IT department wasnt managing or didnt even know about. They are working on mandating centralization anyway they can. I can sympathize with them when I see the kind of crap people that think they know access do.
I think software needs user requirements in addition to system requirements.
A requirement for access could be:
*must be able to understand and implement all forms of normalization |
| Sun 09 Feb | Herbert Sitz | Crusty Admin -- Were you Crusty Admin during the mid-80's when a PC on a person's desk freed them from their dependence on department mainframes the long IT dept. wait list just to get a simple report?
Yes, there are databases that need to be implemented on a department-wide level. And there are power users who strike off on their own and get in over their heads with Access.
But it seems to me like the empowerment PC's and programs like Access and Excel off to individual users has in general been a good thing.
It looks like the circle is turning full-round now with servers starting to regain paramount importance. But if I were a user I don't think I'd like it.
Access and Excel give computer-savvy users the ability to do a lot on their own, yes, even when they don't quite know what they're doing. It's not a perfect situation, but it's far better than having users being completely dependent on an IT department. |
| Sun 09 Feb | Contrary Mary | Ah, yes. And these IT nazis are the sort of guys who are amazed when, in a 'cost-cutting' move, their department is shut down and all the work out-sourced overseas. |
| Sun 09 Feb | Alberto | Right on, power to the people I say!
Management is the issue here, not the installation of a useful tool on peoples desktops.
System admin cannot be the tail that wags the dog. |
| Sun 09 Feb | Jeff | Actually, in the case cited in the original post (at an HMO) there are government regulations & procedures that have to be followed for computer systems that deal with patent information. How many end-users know of these resulations and insure that their little application meets the requirements. This could cost the HMO a lot of money in fines and CMP's (Civil Monetary Penalties). |
| Sun 09 Feb | crusty admin | 'Crusty Admin -- Were you Crusty Admin during the mid-80's when a PC on a person's desk freed them from their dependence on department mainframes the long IT dept. wait list just to get a simple report?'
No I didn't get involved until mid 90's
'Ah, yes. And these IT nazis are the sort of guys who are amazed when, in a 'cost-cutting' move, their department is shut down and all the work out-sourced overseas.'
Developement might move over seas, admin typically needs to be done on site to a greater degree.
'Right on, power to the people I say!'
Good thinking, most people don't have a clue. 'Hey, I've got a great idea, lets let the patients perform surgery on themselves. Who better to know their needs then they.'
'System admin cannot be the tail that wags the dog.'
True. The job is to implement the computer functionality required by the company. The end user may not like everything we do, but then they are getting paid to be here and do a job. If they want to play with their PC, they can do it at home.
'This could cost the HMO a lot of money in fines and CMP's (Civil Monetary Penalties).'
YES, YES YES!!
Finally someone sees my point. A companies data is its most precious asset after workers. Maybe it is ahead of workers. Pay enough and you can always hire more bodies, you can't undo stolen, missing, misused data.
By central control, I meant that a company must know where its data is at all times and must have policies on who accesses it, who they can share it with etc. Do you think even one of these 1200 users with access databases performed regular backups? If they did, it was probably done on a floppy stuck to the side of the pc's case with a magnet. |
|
| Sun on Java... | Sun 09 Feb | Andrew Cherry |
| http://developers.slashdot.org/article.pl?sid=03/02/09/1347215&mode=thread&tid=108
is the subject under discussion... A staggering admission if true. Opinions from the JoS crowd? Especially those who actually use it - or those like myself who are forced to use it at Uni... |
| Sun 09 Feb | Eric Debois | Note that the memo deals only with the JRE on Solaris and not Java as such. That java needs alot of ram is hardly new to anyone though.
Id like to see the source of this text verified in some way before I start drawing conclusions. |
| Sun 09 Feb | Nice | osnews covered this, and the quality/noise at osnews is more favourable than /.
http://www.osnews.com/comment.php?news_id=2737 |
| Sun 09 Feb | Sun rise or Sunset? | Is it even remotely possible that this is 'fire and motion' by Sun.
For the last two years or so, all they do is look like they are falling apart. McNealy blasts MS every chance he gets. Gosling runs down .net at Java conference. It looks like they are going know where fast.
Is Sun out of ideas and on the way out, or could they be working on someting really cool and this is their way of 'mouth wide shut'?
Could I have worked more JOS isms into one post? Probably not. |
| Sun 09 Feb | Roland Kaufmann | It was mentioned on the Slashdot thread (although admittedly not a very trusted source in itself), that none of the names listed on the memo have Sun addresses, so at first it appears to be a hoax. |
| Sun 09 Feb | Rodger Donaldson | With my systems guy hat on, they all ring very true - a client of mine has a key app that only works on one particular build of a 1.3.x series Sun JRE in a Solaris environment, because of known bugs in other versions. They can't roll forward or backward, because of random breakage in the JREs.
Deploying Java is a big ol' schmozzle, and most people end up shipping their own JRE to make it work. |
| Sun 09 Feb | raindog | >> It was mentioned on the Slashdot thread (although admittedly not a very trusted source in itself), that none of the names listed on the memo have Sun addresses, so at first it appears to be a hoax.
Someone doesn't know how to use search engines... I checked two of the names at random and found that they are working for Sun. Also, I know one of the guys personally.
But of course, it proves nothing and it still might be a hoax... |
| Sun 09 Feb | | It was obvious that Java was on the way out when Sun outsourced it to an Indian company. Really, you don't do that if you care about the product. |
| Sun 09 Feb | Tj | This memo has an inconsistency with my experience. I once distributed a stripped-down Java with an app, guarding against backwards-compat breaks. Just look at the README in the JRE directory, which has legal info on this. |
|
| Generating Windows Icons | Sun 09 Feb | Matthew Lock |
| Im building a little application to show the current outdoor temperature in the system tray on Windows.
(Currently 104 F in Australia today!)
I am right in thinking that you cant directly display text in the system tray but can only use icons instead?
If so does anyone know of a way or a library of windows icons so I dont have to make an icon for all possible temperatures? |
| Sun 09 Feb | Randy Simons | I've made a similiar application to display the (very) local temperature in the system tray.
Here are some (slightly modified) function I've created for this:
HICON PaintIcon(double fTemp, COLORREF colorref) {
HDC hScreenDC,hMemDC;
HICON hIcon;
ICONINFO IconInfo;
HGDIOBJ hOldBM;
char pszTemp[64];
sprintf(pszTemp,'%.0f°',fabs(fTemp));
hScreenDC=GetDC(NULL);
hMemDC=CreateCompatibleDC(hScreenDC);
IconInfo.hbmColor=CreateCompatibleBitmap(hScreenDC,16,16);
IconInfo.hbmMask=CreateCompatibleBitmap(hMemDC,16,16);
IconInfo.fIcon=TRUE;
ReleaseDC(NULL,hScreenDC);
//draw the icon mask, to get correct transparancy
hOldBM=SelectObject(hMemDC,IconInfo.hbmMask);
PatBlt(hMemDC,0,0,16,16,WHITENESS);
DisplayText(hMemDC, 0x0, pszBlaat);
//draw the temp in the correct colour.
SelectObject(hMemDC,IconInfo.hbmColor);
PatBlt(hMemDC,0,0,16,16,BLACKNESS);
DisplayText(hMemDC, colorref, pszBlaat);
SelectObject(hMemDC,hOldBM);
DeleteDC(hMemDC);
hIcon=CreateIconIndirect(&IconInfo);
DeleteObject(IconInfo.hbmColor);
DeleteObject(IconInfo.hbmMask);
return hIcon;
}
void DisplayText(HDC hDC,COLORREF colorref,char *pszText) {
SelectObject(hDC,hIconFont);
SetTextColor(hDC,colorref);
SetTextAlign(hDC,TA_CENTER);
SetBkMode(hDC,TRANSPARENT);
TextOut(hDC,8,-1,pszText,strlen(pszText));
}
and you'll need
hIconFont=CreateFont(14,0,0,0,FW_NORMAL,FALSE,0,0,DEFAULT_CHARSET,0,0,0,0,'Arial');
somewhere.
Use PaintIcon to get a handle to an icon you can use to draw the systray-icon. Don't forget to destroy it with DestroyIcon() after sending in to the systray.
HTH,
Randy |
|
| Digital Cameras - 2:3 or 3:4 | Sun 09 Feb | anonymous |
| I am considering buying a digital camera.
The majority of camera seem to have a height to width ratio of 3:4 - for example 1200x1600 or 1536x2048.
I would assume this would print well (for example) at 6x8.
But the majority of prints I will print will be at 4x6 at a photo shop (which is 2:3 ratio rather than 3:4). But not many cameras do a 2:3 ratio. The Kodak Easyshare LS443 is one of very few that I have found that are 2:3.
So, my question is - for those people who use a digital camera and print them at 4x6 - what do you do? Do you manually crop it yourself? Let the photo shop do it for you? Or use a 2:3 camera?
Thanks |
| Sun 09 Feb | Gwyn | I've now had a digital camera for about 6 months and to be honest I almost never get prints done! It's (relatively) expensive and doesn't look as impressive as viewing them on a screen!
The original idea was to upload to a print provider but it just didn't seem worth doing in the end. If we want to look at the photos or sohow some friends then we just grab the laptop and run a slideshow.
Incidentally I bought a Fujifilm Finepix F401 and it's excellent. It's light and small, has as many features as I would want and produces great photos. One of the main reasons for chosing it though was that it has a docking cradle which you just drop it in and it recharges the batteries if they need it... I figured if I got a camera where I had to take the batteries out then I'd always end up with flat batteries in it! |
| Sun 09 Feb | Dino | Anonymous,
you need 300 dpi to print true picture quality. If your camera is 1200x1600 the best you have without interpolation is 4x6. With the 15?? x 20?? you get up to 5x7.
For a 8x10 you need 2400 x 3000 pixel camera (7MP).
Interpolation is ok, but introduces distorsions in the image and the more you interpolate the bigger the distorsion.
Cheers
Dino |
Sun 09 Feb | anonymous | Dino,
you need 300 dpi to print true picture quality. If your camera is 1200x1600 the best you have without interpolation is 4x6.
You miss the point of my question. I am not asking about quality or anything like that. I am asking how people who print at 4x6 manage the fact that the picture is TAKEN at 3:4 (eg 1200x1600) yet PRINTED at 2:3 (assuming it is printed at 4x6).
Thanks |
| Sun 09 Feb | pb | The whole digital photography industry is way behind where it should be in terms of customer experience. I have a Canon Elph 100 which takes very nice pictures for 2 megapixel and the size is great (was looking at the Casio Exilim which has an even better form but doesn't have as good a picture quality). I just got an HP Photosmart 130 printer which seems to be one of only a very few printers that focuses on the thing that virtually anyone who prints out digital phots wants: 4x6s. I can't for the life of me figure out why there are so few printers in this category. Do people really print out their pics on 8x11 and cut them? This seems insane. And 'borderless' really isn't that big a deal considering how much better bordered pics look. And everything is still way too expensive. It's criminal that Ofoto, et. al. charge 50 cents per picture. And self printing with my setup looks to be about that cost as well. Costco seems to be able to do it for 19 cents. What give?
So to answer your question, I have to manually crop to 4x6 in iPhoto before printing. My printer will print 4x6 directly from flash memory but I haven't tried it yet. I didn't like that at first but have since found that it's not too difficult and you get slightly better designed prints because you do get to crop each one. |
| Sun 09 Feb | raindog | I print photos at home with Epson Stylus Photo and always crop images before printing. Also, I don't care much whether it is 3:2 or 4:3 ratio. It depends on picture. Some photos look better cropped to square shape, for example.
From the other hand, for people printing at Ofoto, Wallmart, Costco, etc. it might be a problem. The printers will crop the photo for you, but you might prefer the other way to crop.
Many higher-end consumer cameras (Nikon Coolpix, Sony) support both 4:3 and 3:2 ratio. Of course, all the digital SLRs support 3:2. |
|
| Thinking about JoS and PParadise... | Sat 08 Feb | Enjoy |
| I just visited ProgrammersParadise.com, the website of the company for which catalogue our poster boy Joel writes articles. As far as I can see, there are not only products listed there, but also quite a few interviews and articles. Ofcourse, they serve promotional purposes (i.e. interview with [lets say] Borland CEO on a Borland promo page), but isnt PParadise using Joels articles for promotional purposes, too?
Being from old Europe (I couldnt resist it ;))), I cannot order the North American catalogue for the reasons mentioned in a thread at this website a few weeks ago. Anyway, Id love to read about Joels expiriences with software products from a software developers perspective.
So whats the reason for PParadise NOT to publish these articles (so far just one, but hopefuly more will follow) at their website? And what do you think about starting a champaigne (to collect signatures) to get PParadise change their minds and finally make Joels article available to the whole planet! According to the translations theres demand on this information across both oceans. |
| Sat 08 Feb | Mitch & Murray (from downtown) | One thing you must understand about outfits like Programmer's Paradise and others who publish a printed and mailed catalog:
Every square inch of space in the catalog is sold in one way or another. Space is sold in these catalogs just like a magazine. If there is a big interview with someone from Borland, Borland bought the pages either with cash, a product barter (catalog space for free units to sell, very common), or something.
Ever notice the Programmer's Paradise 'featured product' section in magazines like Dr. Dobbs? PP buys the page and then resell's the 1/9 page ads to their customers, making a fair buck on the whole operation.
Joel is doing the same thing - he is writing articles for the 'catalog' and getting something in return - since the PP web site does not seem to be selling Fog Creek software, maybe he bartered a couple thousand email addresses in exchange for the article. In the old days joints like PP would sell snail mail addresses of their customers, already printed on stickers or machine readable (on 5.25' floppies back then) ready to go.
The rule of thumb used to be that to get sold by PP or somebody like that, you had to buy a 1/4 page ad when they first started carrying your products. Generally this cost between $2K and $3K. They would normally insist on a 40% reseller discount, so if you wanted to barter product for the ad (very common) you would have to give them ton of your stuff at 40% off to satisfy the ad barter cost. Basically you were the very last guy to get paid if you got paid at all.
It is the dumbest business model I have ever seen, and very few make money at it over a long period of time. The ones that do charge out the ass for their stuff just so they can pay for their fancy schmancy reseller 'partners'.
I'm not bitter - just weary of outfits like PP - they are one of the last operations like them still standing, Mitch & Murray has been around the block with them and many of their (no longer in business) buddies.
Don't even ask me about 'Component Source'. ACK. |
| Sat 08 Feb | Prakash S | 'Joel is doing the same thing - he is writing articles for the 'catalog' and getting something in return - since the PP web site does not seem to be selling Fog Creek software, maybe he bartered a couple thousand email addresses in exchange for the article'
- Do you have the beef to support this? |
| Sun 09 Feb | Mitch & Murray (from downtown) | I have no 'beef' with what Joel is doing - but I've been in the developer tools business for almost 20 years, including dealings with PP and many of their fallen comrades, and I known first hand that nothing happens for free - that is the way the world works.
That does not make Joel's gig with PP bad. Both parties are getting something out of the arrangement, and that is how bidness happens. |
| Sun 09 Feb | Dennis Atkins | M&M,
I'm with Prakash here. Where's the beef to support this?
Your comments go beyond idle speculation and I believe would be considered libellous in some jurisdictions. Proceed with caution. I do recall that you posted some stuff about PP before and didn't back up your statements. Perhaps this would be the time to provide some clarification of what you are getting at. |
| Sun 09 Feb | Mitch & Murray (from downtown) | Sorry guys, not wanting to make a stink here. I am just relating to you how the software reseller business works. As I think I mentioned before, we are a software tools vendor and have dealt with catalog resellers for years.
Nothing libelous about my comments that I can see - I am just commenting on how the business works. It sounds like many of you have no experience with it - hence the slack jaws of disbelief.
Call up PP and ask them for a media kit for their catalog - they will send you their rate card and their requirements for doing business with you. It is not secret information. |
| Sun 09 Feb | Bored Bystander | Mitch and Murray:
>> since the PP web site does not seem to be selling Fog Creek software, maybe he bartered a couple thousand email addresses in exchange for the article.
This alone appears to be the hypothesis you stated that is the object of the contention.
I personally found this statement that Joel would have paid to author *this* particular article odd to weird. The article was a summary of the use and benefits of VMWare, basically a pitch for VMWare, and contains nothing about Fog Creek's products except a short blurb and a link at the bottom of the article to Joel's editorial site Joelonsoftware.com.
My guess (not that it carries any weight) is that an article like this would be worth writing for free in exchange for having a URL appear in print in a widely distributed catalog. If I were Joel, I would w/o a doubt *NOT* pay to lend my name without some benefit. I could see the article being contributed in exchange for a byline; paying to be in print crosses a line. I dunno, maybe I'm off base here.
After all, while the ink is worth *something* to the author - the catalog is in the corresponding position of requiring intellectually respected people in the industry, and not merely corporate shills, to occasionally help them pitch their products.
Anyway - on the email sharing theory verging on libel - there is a subculture in current geekdom that specifies that sharing of email addresses is a sort of internet identity theft and is 'almost' the worst thing that an online company can do to its customers. Hence the promotion of this theory to 'libelous'.
Personally, I think that people who get incredibly hot and bothered about SPAM must lead very blessed lives devoid of real problems... but what do I know. |
| Sun 09 Feb | Bored Bystander | >> Personally, I think that people who get incredibly hot and bothered about SPAM
Whoops, I better clarify this statement. I'm not speaking of system administrators who deal with SPAM traffic load and problems resulting from viruses embedded in incoming email.
I meant among those in the 'should get a life camp' the zealots who consider the sale of an email address from Legitimate vendor A to Legit Vendor B to be tantamount to crushing babies under white hot steel rollers. |
| Sun 09 Feb | Mitch & Murray (from downtown) | Sorry, you misunderstood me - perhaps I was not clear, in which case I apologize.
For writing the article I meant to suggest that Joel may have been compensated via some email sales leads - he receives the leads from PP in exchange for writing the story, not the other way around. Certainly he should get something for his troubles, and these catalog resellers generally like to barter for something rather than cough up cash.
It is just conjecture on my part, based on previous practices in the industry. Maybe he got nothing out of the deal at all other than a brief mention of him and his company in the article. I really don't know, I was guessing based on what I have seen (any been offered myself) before.
Example - buy a magazine ad and the mag will frequently throw in 5000 names from their subscriber list for you to use as you see fit to sweeten the deal.
Sorry to have ruffled feathers here. I am not suggesting that anything sleazy was taking place. |
| Sun 09 Feb | Bored Bystander | Thanks for clarifying. It did sound weird and I think everyone else got the same impression I did.
One thing, though - I would bet good money that some developers *would* pay to write and place even a generic tech article for a catalog/magazine like Programmer's Paradise, just to get a sample of a high profile published work out there. I wonder if P.P. had ever considered this new source of revenue... exploiting developer vanity for cash. :-)
BTW - on catalogs - I used to hear that the founder of Zac Catalogs (now defunct) made a mint off of that business. I wonder why they closed... |
| Sun 09 Feb | Mitch & Murray (from downtown) | Well, we did business with the ZAC Catalog, and I can tell you _exactly_ why they closed .... |
|
| Career Strategy | Sat 08 Feb | Prakash S |
| What is your current position/ title/ and
where do you see yourself going in the next few years? |
| Sat 08 Feb | Chief Complainer | Now: Senior Scapegoat
Going: out of my mind :) |
| Sun 09 Feb | Vincent Marquez | This is something i've been thinking a lot about lately. I've landed myself a few solid development positions, but i'm now starting to see the 'glass ceiling' so to speak, mostly because i'm still working at my degree, and also because i'm so young.
I've been putting myself into 'lead' positions more and more of late, and I've been trying to overcome my chaotic tendancies and teach myself Proccess (even though my company unofficially discourages it). I definatly see myself in a management position in the next 5 or so years, but I also have a feeling that it will be an uphill battle getting there. I look forward to the challenge though.
How 'bout you Prakash? No fun if i'm the only one spilling my guts. |
| Sun 09 Feb | Prakash S | 'How 'bout you Prakash? No fun if i'm the only one spilling my guts. '
- Fair enough..
I have been thinking of this for a while too... and do see the 'glass ceiling' that you talk about.. which is why I am looking at various oportunites/ alternatives that would get me into upper management sooner rather than later.
This would be something like PM roles if I take up a tech job, am also thinking about joining companies like Bain (the management consultancy route...)
I am giving myself around 5 yrs to get there. |
| Sun 09 Feb | Prakash S | 'Proccess (even though my company unofficially discourages it). '
-why do they discourage it? I am guessing they don't pay for you to go to school, either. |
| Sun 09 Feb | Nat Ersoz | >> This would be something like PM roles if I take up a tech job, am also thinking about joining companies like Bain (the management consultancy route...)
Hmmm. You are perceptive young one. Perceptive, and sly.
Most management roads run through the PM role. It is rare, but not impossible, that an engineer gains promotion without some sort of PM feather in their hat.
You can work your ass off, be invaluable to your company's product, but at the end of the day they'll promote someone else.
I won't be surprised if someday I'm working for you. Damn kids... |
| Sun 09 Feb | realist | You guys make me laugh, so inexperienced, so full of your, as yet, unproven abilities.
You've got attitude, not aptitude, and that's all at this stage.
I think you should both aim for president of the united states, don't try to be too quick, give yourself at least five years.
Then you'll be in a role fit for your ability.
Some other things to consider are:
Surgeon General
Astronaut
Famous scientist
World Leader
Work out a cure a currently incurable disease
Go get em'!!! |
| Sun 09 Feb | Prakash S | 'Perceptive, and sly.'
- Thanks for the perceptive part, but explain that sly part to me again!
'I won't be surprised if someday I'm working for you. Damn kids... '
Hey Nat, I am sure I could learn a few things from you, and could teach you a thing or two:-) |
| Sun 09 Feb | Prakash S | 'Realist'
You forgot NBA All Star! |
|
| The Poetry of Programming -- design examples | Sat 08 Feb | Nick |
| In The Poetry of Programming ( http://java.sun.com/features/2002/11/gabriel_qa.html ), Richard Gabriel of Sun says:
... what do people do when theyre being trained, for example, to get a Master of Fine Arts in poetry? They study great works of poetry. Do we do that in our software engineering disciplines? No. You dont look at the source code for great pieces of software. Or look at the architecture of great pieces of software. You dont look at their design.
Can anyone site some great examples of well written / designed code? Im particularly interested in C++. |
| Sat 08 Feb | Nick | I meant 'cite', not 'site'. |
| Sat 08 Feb | PC | [writing software is a creative activity that requires a lot of interaction with the people who are going to use it. Writing software is a highly iterative, dynamic process requiring user feedback.]
That's a quote from the article. I have always felt this way but it's so frustrating that most people don't seem to understand.
By the way, I don't consider myself simply a programmer. Including my past careers and education, and my hobbies, I'm a visual artist/ linguist /psychologist /musician-songwriter /programmer. There is not a single person I have ever spoken to who has any idea why this makes sense.
I understand what this guy is saying about programming being like writing poetry. I admit I don't get much chance to write the kind of highly complex and advanced programs he's probably talking about. But I know how it feels to write music and lyrics, or to paint pictures, and I know I get a similar feeling when coding. I have also done scientific research and I feel that programming resembles science as well as art (debugging is like experiementing). It's the only thing I've ever done that combines creative writing, science, and practical usefulness.
Donald Knuth has also made comments about programming being creative, like composing music. But I don't know any programmers, including on this forum, who feel this way.
And my friends and relatives have absolutely no idea why I went from art to linguistics to programming. They can't see any connection whatsoever.
And the programmers where I work have no concept of interaction with users. They spent years on a system only to find out the users hate it. They are thinking like engineers, not like artists. |
| Sat 08 Feb | S.C. | I think programming is more like a craft than science or art. |
| Sun 09 Feb | Dino | Try
http://www.westnet.com/mirrors/99bottles/beer.html
the C++ with templates implementation is quite amusing
Dino |
| Sun 09 Feb | william newman | I'm not sure there's much consensus about what the great works of software are. It might be more straightforward to choose software which has been useful and successful. Arguably it could play the same role as the real-world schematics you can find in some EE books: not necessarily great art, but useful information about how nontrivial things have been accomplished reasonably successfully in the past.
It's particularly easy and convenient to look at free software. There's a large amount of nontrivial free software out there to look at, including some which started out non-free (like Doom:-). Unfortunately (since you said you're particularly interested in C++) only a small proportion of it is written in C++. A small proportion of a large amount should still be a significant amount of code, but offhand I can't think of a particularly successful or long-lived free C++ project to suggest. Lots of C, though, including the GNU tools, net tools like apache and bind, the various free Unix-alikes, libraries to do everything from databases to numerical integration to graphics to crypto, chess-playing programs (gnuchess and crafty, off the top of my head), and compilers and interpreters for many other languages. |
|
| DB Grammar Defs and Software that ALMOST works | Sat 08 Feb | Dave B. |
| Weve seen Interface and Database definitions within a database and some agree that there are circumstances in which these are useful, while others believe it is an inexperienced developer trying to prove that he has created something brilliant when indeed he has needlessy complicated his own software.
Lets add Grammar to the above list of meta-data. In the MS-Access database that is part of the project I am working on, there are the Interface and the Database within a database defintions. To top it all off there is the ever so wonderful Grammar definition via database tables. aka Biggest-Mess-I-Have-Ever-Seen.
Most of us know that it takes a simple grammar to parse simple expressions (i.e. (x + 5) * 7 ). There are tools to create such grammars (Lex, Yacc; flex, bison) and, in fact, the code to parse such a grammar is easily implemented without those tools. So why define such a monster in a database? I dont know. What I do know is that I have tables such as OperandA, Operator, OperandB and ConnectOp. Does it make sense? Yes, it seems logical and it also ->appears<- to fill its intended purpose. Its purpose is to define named rates. This allows the user to select which rate he/she wants to use to determine a price.
The key statement here is that it only appears to fill its intended purpose. It only appears to work. It should work, but the fact is that it doesnt. If it did, I wouldnt be working on it.
The problem is that the ConnectOp only works with the + operator, although there is code to handle the other operators, the code is wrong and does not work and unfortunately this grammar in a database is connect to the interface and database in a database definitions making it a PITA to debug.
Instead, this Rate definition system should be seperate from the database and the interface. There should be no dependency on either except to store the rate formula in a field in the appropriate database table. In other words the database should make provisions to store the rate and the interface should make provisions to display and edit the rate formula. The rate should not provide itself space in the database and a form on the screen. The rate should only be able to evaluate itself.
Ill say this about the rate system, If it would have been properly designed to begin with, it would work.
This whole application that I am working on ALMOST works. ALMOST doesnt cut it. Every customer I have spoken with has said It just looks like it should work. I agree it does LOOK like it should work, but it doesnt.
Which brings up my final point. I believe that it is immoral to sell an application that does not, by definition, work. What I mean is, that if it does not accomplish useful work, then I believe you have absolutely no right to sell that application.
Business(wo)men say we need to sell it to keep the business alive. They say a few bugs wont hurt. There is a HUGE difference between a few bugs in an application and an application that does not work or accomplish something useful, an appication that on the surface only appears to work. Convincing a hard-headed business(wo)man of the situation at hand is tough especially when he/she is about to go belly-up. Imagine for a second if the application had not been sold (only marketed) and that it would have been thoroughly tested to ensure that it accomplished its tasks. It sure would save everyone a lot of headaches.
Has anyone else worked on applications that almost work or only appear to work?
How did you handle it?
How did you inform your boss of the situation (As if they dont know, but you never know. I made a bug list and handed it in... I dont think he was too happy. heh)?
Do you believe its right to sell an application that does not work with the intent to make it work at a later date?
Has anyone ever implemented this grammar in a database with success? |
| Sat 08 Feb | Chad R. Millen |
Has anyone else worked on applications that almost work or only 'appear' to work?
Yep. Same situation as you described, project handed over by some incompetent.
How did you handle it?
I convinced management that there were some fundamental architectural flaws (it redefined spaghetti code) and urged them to rewrite/refactor the software. They already suspected that was the case so it was an easy sell.
How did you inform your boss of the situation (As if they don't know, but you never know. I made a bug list and handed it in... I don't think he was too happy. heh)?
I prepared a presentation describing my proposal. I outlined the benefits of my ideas and contrasted them to the exisiting situation.
Do you believe it's right to sell an application that does not work with the intent to make it work at a later date?
No.
Has anyone ever implemented this grammar in a database with success?
We had to implement a grammar into our product. Basically, you could take a predefined set up inputs from the database and apply any valid mathematical formula to them. We considered 4 solutions:
1. Grammar in db
2. lexx/yacc
3. Inline parser
4. Integrate VBA
#1 was nixed pretty quickly. It was slow, messy and difficult to extend.
#2 we all liked, since it was the real way to solve this problem but it was going to take a long time to implement our solution. Plus finding a proper lexer and parser was a little more difficult than we would have liked (licencing issues, cost, etc.).
#3 was just as good technically, as #2, but time was a factor here (development/testing).
#4 was the choice we went with. Basically, it involved building an editor to input the expressions in a friendly way. It was the quickest way to get this feature to market, but its not the most 'technically' robust solution.
However, it works and our customers are thrilled with the results. I guess, that what counts in the end.
Good luck! |
| Sat 08 Feb | Joe Paradise |
Business(wo)men say we need to sell it to keep the business alive. They say a few bugs won't hurt.
What you described sounds more like fundamental flaws in the app than a 'few bugs'. Even your customers are saying that it doesn't work.
Has anyone else worked on applications that almost work or only 'appear' to work?
Oh, too many. IMO your company is at a crossroads. Where it goes from here is entirely up to your 'hard-headed business(wo)men'. They will either:
A) push the product to market prematurely, thereby irritating customers who thought they were buying a working product, erode any potential profit margin with added support costs, burn out employees by frantically trying to fix bugs, and permanently damage their reputation in the industry,
or,
B) get off their asses and earn their fat salaries by pursuing investment (or other income sources), giving you the time to fix the issues and produce a quality product that will be warmly received and cause your customers to name their firstborn children after you.
So which will it be? I've never worked for or even heard of a company that didn't choose option A. Based on what you've said, it doesn't sound like your company will be the exception.
If I were you, I'd make a presentation like Chad suggested above, and if they choose option A, start looking for another job.
Bottom line is that you can't polish a turd. If your company decides to try, let them find someone else to do it. |
| Sun 09 Feb | Albert D. Kallal | Hum, ok as I rub my hands and crack my fingers before I place them on my keyboard. Lets look at this.
>>What I do know is that I have tables such as OperandA, Operator, OperandB and ConnectOp. Does it make sense?
Does that make sense? Hum, sure. If you don’t want to write a general expression parser, then you simply place some combo boxes on a screen.
The first combo box will be a restricted list values/fields from OperandA
2nd combo box will be the operator
3rd combo box will be a restricted list values/fields from Operandb
Presto, the code to process the above is now simple. You don’t need a parser anymore!
Field1 =comboOperandA
Field2 = comboOperandB
StrSql = “select “ & Field1 & “ “ & Operator & & Field2 & _
“as MyResult from tblRates where RateType = ?? bla bla bal
Anyway, you get the idea. Even the result is not a SQL expression, but some code that grabs the field values and a simple “case” statement for the operand (ie: multiply, or add), then the whole approach seems quite simple.
Thus, a whole rate table can be built as a few fields based on some combo 'lookup' boxes to those simple tables. Hum, yea…it seems to make sense on the surface.
I mean, a full expression parser was / is not available, and would in fact be quite difficult to implement anyway. Are we taking general values/variables in the expression? Do the values come from a table? I would think that a full general expression parser would present a very difficult training problem from a GUI point of view. In addtion, how to integrate a general exprssion into the system would be VERY hard.
Having a few combos to select those values from those tables makes a lot of sense.
The only real enemy here is what does the code look like that looks up a rate, and does the calculation? Is it isolated in one spot? Are we dealing with a SQL expression that are created from the values? Just what/how is the expression to calculate on?
As for the ethics. Hum, I have not comment, but I have never delivered anything that does not work.
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
| Sun 09 Feb | Dave B. | Well Albert, as I stated in my original post, it does appear to work when you first examine the problem and does in fact 'work'. (Or it would work if it were coded correctly). I cannot explain, in so many words, the entire scope of the problem on this message board.
The first part of the problem comes from the fact that only the '+' operator works in the ConnectOp column. This is a problem with the code.
The next problem comes when you try to establish an operator hierarchy due to the absence of parenthesis. The only way to do this is to have the customer 'rearrange' their equations so they are evaluted correctly.
For example (very simplified):
Let's say that our rate was calculated with this formula:
4 + (3 * 2).
The customer expects to be able to place that very formula in the program, but they can't without 're-working' it.
OperandA Operator OperandB ConnectOp
4 + ? ?
3 * 2 END
So they have to think and re-work the formula:
OperandA Operator OperandB ConnectOp
3 * 2 +
4 END
Again, very simplified case.
The target audience for the application is not 'into' math, so it would be beneficial to make this as easy as possible.
Now if you or anyone else has any SOLID idea how to include operator hierarchy in this scheme I will hear you out, but the fact is I have already written a parser.
Now, to me, this parser was very easy to write. Perhaps becuase I have done this before. I wrote the whole thing in VB 6.0 and it took about a days work. Granted if you are not familiar with parsers and so on, then this task may seem daunting to you. To me it was an enjoyable experience.
So now the customer simply enters their equation in a text box and it is stored in the database 'Rate' table as a set of tokens. It is then executed when called for through the very simple parser/executor.
This is as opposed to forcing users to manually select operands and operators from combo-boxes to 'build' equations.
I guess if the original database method had worked (and worked with operator precedence) I would have left it alone, but it did'nt work and I could not find a reasonable solution for it, so I implemented the one that I knew worked and also the one that I had the know how to do.
I am always open to suggestions though and if anyone can tell me how to implement operator precendence in a Database Grammar, I would be interested. |
|
| cs masters | Fri 07 Feb | sock |
| does considering going back to school be an option for prorammers currently out of work?Would getting a cs masters help in the long run?I am thinking about it |
| Fri 07 Feb | Benji Smith | The current prevailing opinion is either that getting a masters will be a brilliant move that will profit you enormously in the long run or it will be a collossal waste of time that will not only make you unhirable but also unhappy.
I'm getting my masters because I think it will be fun. That's all that matters.
The opinions of the members of this board are so diverse that you should remember to take it all with a grain of salt and go with your own gut feeling on the matter. |
| Fri 07 Feb | S.C. | Who knows the long run? When I decided to read a CS degree, I thought it'd be good 'in the long run.' And yes, that was before the bubble bursted.
But if you really wanna go back to school, you might wanna read something different, like financial engineering. It's kinda related to CS so what you have learned is not completely wasted, but it also gives you a wider range of choices.
If a programmer can't get a job now, it's unlikely that he'll get one two years later, even with an extra MPhil on his resume. |
| Sat 08 Feb | Mike Swieton | If you wish to go into teaching, a masters will be very valuable. Apparently here they require one.
Whether or not you wish to teach is entirely a different question, but... |
| Sat 08 Feb | Ged Byrne | One of the big problems with a CS master full time is that you don't really have anything solid until the end of your studies.
Personally I'm studying part time for my master and I'm still in work.
Here in the UK none of the larger organisation will consider a non graduate for a position. Part time an undergraduate degree takes 7 years, but a masters only takes 3. Its clear which one is preferable. Besides, for an experienced professional the undergraduate level stuff is very boring.
Some may say that if a hirer is going to make a hiring decision on something as unreliable as a degree, then your better of without them. Personally I think that only a fool blocks themselves out of the market. |
| Sat 08 Feb | Prakash S | http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=10310
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=24232
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=18367
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=25681
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=7054
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=13286
shld keep u going for a while... |
| Sat 08 Feb | Gwyn | If it ever came to needing a degree to get a job and I really wanted (or needed) that job then I'd have no qualms about inventing a degree! Noone ever checks adademic qualifications.. but even if they asked for a certificate it's not hard these days to create something impressive from a borrowed one!
Thing is, after 16 years in the business that degree counts for next to nothing in practical terms but the lack of it can still be held against you... I'd rather not work for a company that didn't understand this but if I really needed that job... well.. fair game I reckon |
| Sat 08 Feb | Mitch & Murray (from downtown) | Gwyn:
Not every firm is so lax at verifying education and references.
Fake a degree and if it comes out later your ass will be fired. Fake a degree during the interview process and somebody might just call the cops.
It is called 'fraud'. |
| Sun 09 Feb | Gwyn | Strictly speaking, I'm not sure if it is fraud.
'Fake a degree and if it comes out later your ass will be fired'
I have to say I think this would depend. It got you through the door. If you've been doing good work ever since then they're unlikely to 'throw the baby out with the bathwater'.
And in the interview process? Not so sure they could call the cops! Anyway, a lot of people artificially inflate their experience, the salary they were last paid, their skills etc. This is no less 'fraudulent'.
And as I say after 16 years they're unlikely to be too interested in what you did academically. They just expect to see a tick in the box and then they're happy. |
| Sun 09 Feb | Beth Linker | Starting a degree program that takes 2-3 years to complete doesn't really solve the problem of being out of work now. It may be a good idea if you're seeing lots of job postings for people who have that degree, but otherwise it's unlikely to make a big difference. |
| Sun 09 Feb | Nice | If you're unemployed now, and have the money to fund it (unless you are in Sweden where it would be free ;-) ), pursue it. At least you spend your unemployed time upskilling instead of twiddling.
So, if you are speculating that things aren't going to change in the time it takes you to get your masters, then go for it. |
| Sun 09 Feb | Prakash S | '(unless you are in Sweden where it would be free ;-) )'
what else is free in Sweden? :-) |
| Sun 09 Feb | Roland Kaufmann | > what else is free in Sweden? :-)
Health care, amongst other things. However, it is not really 'free' as you pay it with taxes (unless you emigrate right after you are finished of course -- but then you don't get the health care package). |
| Sun 09 Feb | Prakash S | sweet! |
| Sun 09 Feb | doobius | Some of us are pretty good at upskilling on our own.
Having a degree is better than not having a degree. If you have one, it's a sunk cost and it won't be held against you.
Getting one is not necessarily better than not getting one as you must evaluate the return on your investment. |
|
| Mental Health Issues in Software Development | Fri 07 Feb | tim |
| This is an important issue but I dont think I have really seen it discussed compared
to the other management aspects of software development.
I believe that it will need to be discussed in the future as there are more people who are employed in positions where they are unhappy due to
the poor state of the IT industry as it is no longer a case of If you dont like it, just leave for many people now.
An example of this is that the FAQ for the popular discussion group alt.sysadmin.recovery
now contains information on dealing with prescription medication and advice on dealing with depression and suicide. This is from a group that usually shies away from discussion of anything that could help them in their workplace.
The all too familiar situation of an employee coming back to work heavily armed almost seems like a cliché, but it is important to know that people dont just snap - it is often a result of pressures built up over months or years.
Other problems with employees may not have as severe consequences as the above scenario, but may lead to other situations such as resulting in sexual harassment claims due to the person not being able to understand the difference between someone just showing normal courtesy and being interested in a relationship. This can be compounded by the other people in their workplace who seem to continually put them down without knowing that they have a serious condition.
Employees also like to joke about their boss being mad without knowing the true situation.
I have worked on one software project where the leader of the team was undergoing treatment for clinical depression and didnt tell any of the project members until after the software had been completed - this led to some problems with the team members as they thought the leader wasnt supporting them as he should have been and only wanted to criticise (it was a symptom of his condition.)
If you have anything to add to this I would really like to hear your opinions on this issue.
Thanks. |
| Fri 07 Feb | Bored Bystander | Er, funny you mentioned this today.
As background: I'm a consultant; I work offsite out of my home office, doing a lot of 'heavy lifting' type custom software development. Right now in this part of the country the weather has been sh*tty for the last 3 months, so I don't do much outside. My wife works three days a week during the day for 12 hour shifts, so I literally can go for a week without human contact other than my wife or perhaps a run to the store, spending perhaps 80% of my waking hours in the house, much of that by myself.
Anyway - I had an issue with my checking account so I spoke with the business banking rep at the branch bank today after I made some deposits. I was stunned how *unnatural* it felt to me to converse with a non technical person, and how *odd* it felt to make the acquaintance of a new person. Even forming sentences in real time (not typing in a online forum) was somewhat challenging...
This, I realized, is absolutely NOT healthy! And I don't want to live this way.
I got into similar introversion patterns years ago when I worked as an FTE in someone else's office, but it never felt this strange to simply get out and speak to someone.
The work in this field can be mentally stimulating and quite challenging, but the work itself is NOT social and, often, there is simply no way to integrate socialbility with the patterns of solo effort that one needs to focus properly on the work.
It's kind of unfair, too. SOMEONE needs to do this crap. But we techies become fringe members of society and outsiders through the act of doing the work itself. The work itself, as I have experienced both in periods of heavy work and no technical work, actually seems to 'rewire' your brain against being readily socialble. I have yet to meet anyone who does 'intense' stuff in this field who is fully social in the conventional sense that most non tech people consider is normal. Most techies I've worked around that have been heavyweights have been chock full of strange little ticks and mannerisms.
What I think I need to do in my own case for the simple sake of mental health is to perhaps join and participate in some service clubs (Lion's, Rotary, etc, whomever will have me :-) ) and try to move into a less mentally 'intense' niche... |
| Fri 07 Feb | Nat Ersoz | Mental Health in Software Development?
Sounds like a great idea. Where do I get some? |
| Fri 07 Feb | Depressed | I'm a regular JoS poster, but prefer to remain anonymous on this thread.
I suffer from clinical depression and have for 13 years. I am what is known as 'refractory', or not responsive to medication. My job of four years requires me to be the de-facto leader of a small team of developers. About 50% of my job is human interaction.
Strangely, this is the easier half for me to manage. On the technical end, I'm unmotivated and have extreme difficulty concentrating for more than a few minutes at a time.
There are a couple issues that I'm curious about:
- Does programming attract people who 'feel less' than others and are drawn to 'cold' occupations such as engineering? Or is it the other way around? Do people who 'feel things deeply' become programmers to evade meaningful interaction? Does anyone have a feel for the split?
- Has any research been done on what types of depression (and there are several discrete types) are commonly associated with those in technical fields? |
| Fri 07 Feb | Not bored | Bored, I think it's normal for human interaction skills to change if someone's intensively involved in, say, lone software development, or lone physics research, or whatever. Hence the cliche of the nutty professor.
Like anything, though, we humans adapt to it. I've been in the situation you describe, and then been placed in senior management roles that required a lot of talking and meeting and, although it did indeed seem noticeably different, I adapted to it. |
| Fri 07 Feb | Mitch & Murray (from downtown) | I have worked out of a home office for the last 12 years, and slowly morphed into the Jack Nicholson character in 'The Shining'. Not in a violent sort of way, but just as a prisoner of the isolation inherent in working that way. I should also mention that I live in the midwest USA at 42N+ and one year I counted the sunny days between November and May and got an average of less than 2 per month. As we say in the technical trades, the whole arrangement Sucks Ass.
In the fall of 2002 I decided to go back to school to finally finish my undegraduate degree that I originally started in 1976 (I am 44 - bet you never booted a PDP-8!) and begin a Masters in CPS. This has been a HUGE breath of fresh air, and I both massively enjoy the interaction in the academic environment (even though _some_ of the profs truly don't know shit) and at the same time arrive back at the home office fired up and ready to code some real Whoop Ass.
You get the picture .... do the bidness but get out and about with whatever peers you can find, when you can find them. If nothing else, you'll realize that you're not so dumb as your late night flop-sweat sessions made you think. |
| Sat 08 Feb | Dino | There is something insane about software development: it is virtual, it's all bits flipping on and off inside a computer and reality gets hidden in the process.
For example even typing this message has something unreal to it: I'm communicating with virtual people, with no faces, no body, just a message on the screen. Developing software is a lot worse: after let's say 30 man years of work we end up with a CD in box??? All that work fits on CD .... ??? Unreal ...
Maybe some of the posts on JoS are computer generated, maybe we're part of Turing test, maybe this is the Mattrix typing ;-) .
This virtuality is alienating, it is not healthy ... it diminishes our humanity.
Cheers
Dino |
| Sat 08 Feb | PC | I had been thinking about this very subject. I have always prefered the kind of work or hobbies that require a lot of time alone. There is a mental state called 'flow' that people get into when concentrating intensely on a challenging and/or creative project. Since I love to be in that state I have gravitated towards solitary work and when I discovered programming it seemed like the perfect job for me.
But of course this kind of work is only satisfying for some aspects of your personality. My sociable extroverted side can really suffer.
As someone mentioned, the days when it was easy to leave a job if you weren't happy are over. We have no choice but to fit in and get along with everyone at the office we happen to work in now, and that can be a depressing thought.
In my previous careers there was usually a social aspect, and now there is much less. I'm the only programmer in my department who looks forward to meetings, and would like to have more, because at least it's a chance to talk instead of type.
There are days when I spend a lot of time here because at least it's a chance to interact with human beings. |
| Sat 08 Feb | Hit A Nerve | This one cuts a little to close to home.
A little work background:
Independent consultant for 3 years now, mostly back-end, server-side stuff (exciting I know). I used to have a home office, but now rent office space. Previously, I was a dot-commer and prior to that, small business consulting/custom software.
A little personality background:
Out going, extroverted, funny and love to be around people. I have always played competitive sports. I am generally well received in new social settings and have never had a problem interacting with people. I am not apt to shy away from attention.
Where things took a turn:
My latest project has been a two year hell. The people are nice, the project is interesting but the push to get the thing to market was unbearable. 80-100 hour weeks for months on end. They paid me a lot of money. The kind of cash you might consider selling your first born for.
How I knew I was in trouble:
Bored Bystander describes the following moment 'going out into the world':
This captures my experience almost exactly. I went from being a relatively likeable outgoing guy, to a bumbling, creepy, idiot in less than a year!
How I turned it around:
1. Capped things at 50 hours a week, no exceptions. I told my boss, he didn't have any problems.
2. Got back into sports, in a big way.
3. Made plans to see friends. Weekends away, that sort of thing. The kind of plans that can't be broken.
4. Started going to the gym. Although I like sports, I hate the gym. Or so I thought. Its my new social club.
5. Joined the Chamber of Commerce.
6. Got an office. Working from home sucked the life out of me. I found a cheap space, but its mine. I get up and drive to work like everyone else now. Of all of the things I have done, this has had the most positive impact.
I always considered myself strong mentally, not susceptible to this type of thing. I got my life back and it will always stay that way. I have realized how fragile that the state of 'happiness' can be. |
| Sat 08 Feb | Prakash S | Sort of related:
I dunno after how long, but the other day I picked up a pencil to give an exam and man did it feel strange... it felt like I was being re-acquainted with someone I knew very well a long time back...an eerie kind of feeling
Scared the shit out of me.. |
| Sat 08 Feb | B# | Prakash
Same thing happened to me but it wasn't a pencil I picked up!
And for the record, I've become a total loon too. |
| Sat 08 Feb | WNC | I got a day job over a year ago for a financial software group. I find I get more work done, even in cube hell, than I did at home. There were either too many distractions at home with children or there weren’t enough distractions.
This past week though, I was doing a special on the side project for a friend and I was stuck and started talking to my wife ((who asks me “how do you do this again?” every time she wants to “erase this thing” [format a floppy] – she keeps her stuff on a floppy even though I’ve tried to explain that a CD-R is better)). She literally helped me finish writing an application. Granted she didn’t have a clue what we were talking about, but there was genius in the social interaction. I had a billion ideas while I was talking to her and we worked together for hours. A couple days later I asked my son to help me out and he helped me a great deal. He’s pretty PC savvy (he could work at my office and run rings around most of the people there- he’s a power user on the verge of becoming a power programmer at a pre-teen age). [we way underestimate the mental and creative power of children and of course *over* estimate the power of our own children]
For some of us, I think the value of programming in teams (isn’t that extreme programming – working in pairs) is related to our sanity. I know that when the conditions are right, I can do good work by myself. But I’ve also found that the social interaction with other people shoots sparks off in my brain. Perhaps that’s the genius of extreme programming.
I go to church every week and get a lot of social interaction with people I would never meet otherwise – seventy and eighty year olds can provide conversations that would blow your mind– as well as young professionals like myself.
So, I have narrowly avoided going into that strange world that hacker-hermits live in by having a family with several children, a day job and a social group (church). |
| Sun 09 Feb | Herbert Sitz | As a consultant who spends 90% of my time working alone at home, I empathize with much of what's been said. Sad to say, but I don't think I could do it (sanely) without having at least the companionship of my dog.
Some questions posed in this thread have suggested that it is not something peculiar to software development that creates anti-social behavior, but rather something about people (mostly men) with anti-social behavior that draws them to software development. There was a really interesting article about that in the Atlantic Monthly a year or so ago, which I couldn't find. But I did find another article on the web that was on the same topic.
Basically, there is a theory running around now that autism is a condition that (1) is a disease that affects males far, far more often than females, and (2) is a disease that has a very wide spectrum of severity, so that it's not just possible to say 'John is autistic', and 'Sam isn't autistic', but rather that it's more accurate to say that a large percentage of males are autistic, with some displaying very mild symptoms so that they're not normally classified as autistic, while others with more obvious symptions are classified as having the disease.
One curious note is that the very high percentage of children being born in Silicon Valley who have profound autistic symptoms is part of what has prompted recent research.
You can read one of the introductory articles here:
http://www.spectator.co.uk/article.php3?table=old§ion=current&issue=2002-11-23&id=2520
This paragraph offers a taste of it:
'Autism, in its many guises, is an overwhelmingly male affliction, characterised by an abnormality in social development and communication skills and, usually, an obsessional interest in all sorts of weird, mechanistic stuff, from an early age (usually between three and five years). The current thesis among those studying autism holds that the condition is simply an extreme example of male behaviour. '
The theory offers an explanation of why men seem to be more interested and better at technical jobs than women: many of the men who are good at technical things have mild degrees of autism. This autism, which goes hand-in-hand with technical prowess, often isn't noticed because the men do not have huge social problems. But they nevertheless are identifiable as being somewhat quirky in social matters.
I don't feel qualified to judge whether the theory is a good one or not. But it does provide an interesting explanation for much of what can be seen by anybody. The Atlantic Monthly article I read back in late 2001 was quite a bit more detailed, and would be worth digging up if anyone's interested. And I guess the book by Simon Baron-Cohen would be the place to get it straight from the horse's mouth. |
| Sun 09 Feb | realist | I was wondering how much stress is caused by boredom.
So often now work is unchallenging and I have come to the realisation that software development is only interesting to me about 10% of the time.
This morning I sat down at my PC, booted it up, logged it on, then just glazed my eyes over and did nothing for about ten minutes.
This is really unusual for me as I'm a pretty active outgoing sort of guy.
Also just working with some of the screw ups you can meet in the IT game (people like you) can suck the juices out of you.
Most of us have overrated our talents, thinking that we are as smart as you needed to be back when the industry was in its infancy.
Like all growing industries, eventually it becomes mature, like it is now.
It was ok while it was growing, even fun, but now it's a mature industry with too many drones in it, and I'm starting to turn into one.
Soon, I'll be on the next wave. |
|
| Nice software company web design templates? | Fri 07 Feb | plasma |
| Im looking to build a basic web site for my software company, but we need something that looks very professional. The samples that come with Front Page and Dreamweaver dont cut it.
What I really want is a piece of software that can automate button creation for me - Id choose a background, font, and style, and then it would take a list of words and create normal, highlighted, and selected images for me and put them into a directory, with names like high_search.gif, etc. If this product came with a set of nice templates, so much the better.
I dont need any kind of WYSIWYG HTML markup tools, as plenty of those exist already.
Any ideas? |
| Fri 07 Feb | Eric Debois | IMHO graphical buttons does not give a 'pro' impression to begin with. They increase the serverload and load times for no good reason.
You can do ALOT with stylesheets and it usually end up looking cleaner and more strict. Remeber that you can hook background images to blocks and controll them via script or pseudo-selectors. That way you can have a spiffy look for your buttons with rollover effects etc, but the stylesheet makes them on the fly because you hooked it to the anchor-tag.
Layout-wise there are only two ways to structure a page these days. Menu to the left, or menu on the top. Or possibly both if you have a lot of content. Avoid getting to creative if you want your site to be accessible and easy to use. |
| Fri 07 Feb | TK | I'm button creation ignorant so I'm all ears. On most sites I feel like somebody wasted a lot of time doing buttons or they have the tool you are looking for. So, I'm not a great appreciator of graphical menu buttons; but once in a while they turn out great.
I just redid a site because the original web guy went AWOL. The first thing I did was to dump the buttons because I needed to add stuff to the menu and had no way to create more of the same buttons. Nobody misses them. |
| Fri 07 Feb | Anon when dumb | A word of advice: don't use graphical buttons or -God forbids- applets that draw a button that changes its color when the mouse hovers over it.
Take a look to some nice corporate web pages. Oracle, Sun, IBM, Microsoft, SAP, MySQL, are good examples. Nice graphics, but the key is 'layout.' |
| Fri 07 Feb | Troy King | I also despise graphical buttons -- they scream 'Beginner!'
That said, the app 'Buttonz & Tilez' is probably the closest you'll find to what you want, for free: http://www.b-zone.de/software/bt.htm . It won't do them all at once, but you could generate all your regulars at once, and all your depressed buttons at once.
I did once see an app that did what you want, but I can't remember what it was called. It was by one of the big boys, like Adobe, and was kind of expensive. |
| Fri 07 Feb | pb | While I'm not a big fan of image buttons, I think everyone is kidding themselves if they thing they are in any way amateurish. In fact, you will not find many professionally-designed company sites without them. You can definitely get some good effects with DHTML these days but that is a fairly rarifed world (e.g., zeldman.com, boxesandarrows.com, stopdesign.com).
There are lots of outfits that sell inexpensive, well-designed tremplates. For example: http://www.templatemonster.com/ |
| Fri 07 Feb | Troy King | No, pb, I'm not kidding myself. The template sites appeal specifically to beginners and amateurs. There's nothing wrong with being a beginner or an amateur, but it shoudn't be confused with professionalism. Image buttons take away from useability, period, and nothing you can say will change that.
On the very page you posted a link to, I had to study the page and move my mouse over things to determine whether they were clickable or not. That's way more thought than I want to put in to 'show me some pretty templates and I might even buy one.'
Except for the top-level use of graphical tabs, which are time-tested easy-to-use devices, sites like Microsoft, Amazon, and Yahoo make links look like links -- underlined text, usually blue. Tell me this -- without putting your mouse there, what does the image at the top left of this very discussion page do when you click it?
Maybe you think graphic buttons should have text on them, and that makes it okay, but that's a whole other can of useability worms that better informed people than me have written about. This kind of discussion never goes anywhere, though. Some people think the appearance of a page is more important than its useability, style over substance. Others think useability is king. I'm of the latter -- if I have to fiddle with a page to figure it out, I'm history, and so is any money you'd have made from me. |
| Sat 08 Feb | Matthew Lock | To quote David Ogilvy one of the greatest advertisers:
'What you say is more important that how you say it'.
Worry a lot more about what you will say that how it will look. |
| Sat 08 Feb | Hardware Guy | > To quote David Ogilvy one of the greatest advertisers:
>
> 'What you say is more important that how you say it'.
70% how you look, 20% how you sound, 10% what you say.' - Eddie Izzard
Pay attention to the content *and* the look. The world is neither as fair nor as rational as we want it to be. |
| Sat 08 Feb | tapiwa | I hate buttons.
I hate them as a user, and I hate them as a webpage builder. They are so 90s darling (if you live in SW London you will get the joke :)
I am not a web designer professionally, but I have done about five or six site redesigns in the last year or so for friends, and friends' businesses and the first thing I always get rid of is the graphic buttons, and the unnecessary java/javasrcipt.
I feel I have been successful if I create a site with only 1 graphic, for the logo. Still I am just a simpleton so .... ...
A lot of sites out there remind me of the time when word processors really took off... people would use ten fonts and a couple of clip art pictures in their documents, because they had them.
Still, there was a package called Net Objects Fusion which is a wysiwig html editor. It created buttons for you when you generated you website. |
| Sat 08 Feb | Eric Debois | I just wanted to add that using images restrict your layout to a certain size, which makes it harder to get it to work with different resolutions. |
| Sat 08 Feb | Wayne Venables | plasma,
Do yourself a favour, hire a company to design your website professionally. Have them to the HTML, the graphics, etc to your specifications. Don't spend more than a few grand on it. Don't pay for maintenance, do that yourself. You can probably stretch the basic design to your needs pretty easily. Don't use Frontpage (Dreamweaver is good for WYSIWYG). If you need some new graphical element, go back to the company and get them to design it.
Good luck. |
| Sat 08 Feb | pb | Troy, go back and re-read the original inquiry. This has nothing to do with usability. |
| Sun 09 Feb | Troy King | pb, it does pertain to usability when someone uses graphical buttons. And in case you didn't notice, I did point plasma to some software that did what was asked. |
|
| CVS Help needed | Fri 07 Feb | drazen |
| Hi,
I am trying to start with CVS. I SetUp CVSNT and Wincvs client and I am pretty much stuck.
I check out few modules and they all got version 1.1.1.1 . i changed one and commit changes and now this module have version 1.2 ? Where does those extra ones come from and where did they went? And why do I see all other files on disk? And can you configure this thing to work with local CVS server? I tried but I got lost with those first do unix style /, and then switch to DOS style with : and \
I tried Perforce (free for small teams) and it was almost as complicated as CVS.
I am using TeamsSource from Borland, and it is one really nice and really easy to use source controls system. It just works, no need for super ultra deluxe administration. Bad thing is that Borland stopped with development.
No more crying.
Please help me find CVS client with decent documentation (step by step tutorials preffered).
Is this CVS really that complicated or am I just plain stupid?
drazen |
| Fri 07 Feb | Nitin Bhide | CVS is complecated to setup and once set up generally works very well. I have used it CVSNT server, CVS server on Solaris and WinCVS as client. All worked.
Here is a link I find very useful in seting up the CVSNT server
http://www.devguy.com/fp/cfgmgmt/cvs/cvs_admin_nt.htm
Other one on using WinCVS 'while keeping your mental health'.
http://www.computas.com/pub/wincvs-howto/ |
| Fri 07 Feb | Gregor Brandt | Also try:
http://www.majentis.com/Files/Free_Docs/wincvs.doc
Gregor |
| Fri 07 Feb | Wayne Venables | Firstly, I would also suggest you download TortoiseCVS; it's a CVS client that integrates with Explorer. Just right-click on a directory or file and get all the options you need.
The revision numbers in CVS really don't mean much so you can pretty much ignore them. However, a 4 digit revision number is for a branch and a 2 digit number is for the HEAD branch. When you do an initial import it's to a branch (hence the 1.1.1.1) but then you work on the HEAD (1.2).
CVS uses /CVS directories sprinkled throughout your source tree to manage your source. You can checkout a clean version without those directories if you need to (for source distribution, perhaps).
Tortoise is a very simple client; it only has a few options! |
| Fri 07 Feb | Jan Derk | For anyone trying CVS: what some people don't know (at least I didn't when I started): You don't need to run a CVS server. You can also put your CVS source base in a local directory.
I also recommend Tortoise. It recently has gotten even better. So if your running an older version, you do want to upgrade. And while you're at it, dump those ugly icons and get the TBF ones:
http://www.tortoisecvs.org/faq.html#howchangedefaulticons
Jan Derk |
| Fri 07 Feb | Andrew Hurst | And don't forget, read this book!
http://cvsbook.red-bean.com/cvsbook.html
Its published under and Open Source License. So you can read it, print it, etc. There is only 4 chapters missing from the printed version of the book that cover the social aspects of running a project. I think that book is a better manual than the Cedvarkist (sp?) (The official CVS manual).
Hope that helps.
Also, I use WinCVS for my cvs gui, I haven't tried tortiseCVS though. http://www.wincvs.org/ |
| Sat 08 Feb | Robert Cowham | Just for reference - regarding Perforce you might try posting on the Perforce User mailing list - lots of helpful people there.
http://maillist.perforce.com/mailman/listinfo/perforce-user |
| Sat 08 Feb | drazen | Thank you for advices. |
| Sat 08 Feb | drazen | OK, I managed to setup cvs and it works with WinCVS and TortoiseCVS.
But, it is very slow.
Simple diff for small source takes 10-15 seconds.
I have everything on local PC. I tried with :local: and :pserver: |
| Sat 08 Feb | Wayne Venables | I've never found CVS to be slow... I actually use it instead of sync software (Network/Unplugged) to keep my laptop up to date (it's an order of magnatude faster).
HOWEVER, I run the CVS server on my Linux box and connect to it from Windows over the LAN. I suspect your bottleneck is the Windows server... has anyone else had experience using it? |
| Sat 08 Feb | drazen | It needed reinstall. While experimenting I obviously set something somewhere in configuration that CVS did not like. I uninstalled everything (cvsnt, wincvs, tortoise) and then reinstalled those packages and now it works fine.
I can not decide on client. Tortoise and wincvs are both plain ugly.
Wincvs has unintuitive interface and documentation is awfull.
Tortoise messed up my explorer view. I do not need any CVS info in dirs that are not my work dirs. Icons are ugly.
Did anyone ever tried TeamSource from Borland. It is extremly simple to setup, to use, super simple and intuitive interface. Unfortunately, now when Borland bought Starteam, it is definitely gone. |
| Sat 08 Feb | Neil Butterworth | If you only do Windows programming and you want something very powerful yet very easy to set up & use, take a look at QVCS from www.qumasoft.com. It's not free (USD 25.00 per seat with a 2 month free trial) but I can strongly recommend it. |
Sat 08 Feb | Jan Derk |
Tortoise messed up my explorer view.
It's caused by the buggy Windows icons cache. Here's how to fix that:
http://www.tortoisecvs.org/faq.html#whyisiconcachebuggy
About the ugliness, get the icons I mentioned above. You can just copy and paste them into the Tortoise folder. |
| Sat 08 Feb | Wayne Venables | I use tortiose as I mentioned above; I've never had it mess up non-work directories (on Win2k or WinXP) and I don't use the default icons (which are ugly).
I never use WinCVS, although it is installed if for some reason I need to do something complicated. |
| Sun 09 Feb | drazen | Really nice forum here.
Thank you very much. I managed to sort everything out over this weekend. Wincvs works, Tortoise works with nicer icons, everything is in place as it supposed to be.
Thanks again for pointers, they were really helpfull. |
|
| Do only geniuses get hired in US | Fri 07 Feb | anon |
| I am not an American. I have around 4 years experience in IT (Basically Oracle and VB/Oracle Forms etc).
I have sent around 300 resumes without even a reply from anyone. I consider myself quite competent- above average and concscentious programmer.
This has left me seriously disillusioned. I do not understand why i dont even get a call!!. Even for jobs which i think my skills are an overkill, i dont get responses.!
I do not mention that i am a foreigner (Meaning i need H1B visa sponsorship). But what tips can someone give me here which will help me get an interview call atleast?. Excluding visiting job sites and networking-i dont know anyone.
Is there any special things i need to add in my resume or format it in some fashion- do all these make any difference? |
| Fri 07 Feb | T. Norman | Americans also find that they have to send out over 500 resumes to get a job, and sometimes even that isn't enough.
Generally, you do have to be outstanding in this economy to get hired, and based on your self-description there are thousands and thousands of equally qualified people as you who are still unemployed. |
| Fri 07 Feb | Dino | No, usually companies do not require geniuses to get the work done. They need normal people, with good skills that solve more problems than they create.
Yet, there is a phsyhological factor that reverses this statement to 'We couldn't find anybody qualified ...'. This factor is fear: the fear of loosing ones job.
As long as the company needs new people - people that could not be found in thousands resumes - our jobs are safe. Right?
With less jobs on the market this is quite an understandable reaction, but the end result is that the IT job market is driven by fear.
Be patient and persistent. Good luck
Dino |
| Fri 07 Feb | Albert D. Kallal | No, you don’t have to be a Genius at all.
However, most of the industry is laying off people right now. We have been loosing a good 500,000+ in the tech industry for few years back to back since the dot.com melt down.
This causes two problems, first, companies are not hiring right now (they are still laying off, and we probably have another 500,000 to go).
The 2nd problem is that the people laid off have to move on into other industries. All the people laid off in the last few years are still job hunting, and hoping to land the good paying job that they *used* to have.
As their savings run out, or their room mate gets tired of paying the rent, then these job seekers will finally move on into other industry’s and out of the IT sector. When that happens, then the job market will improve.
Since you seem to be global thinking, the best place right now for jobs seems to be India, and they are experiencing a hiring boom right now. They are expanding and hiring people as fast as possible. Thus, that might be an area to look into. In fact, many articles hint that they are going through a boom right now. It certainly seems like the place to be right now.
In North America, we still have to absorb those 1 million + workers that have been laid off, and that will take a considerable amount of time. In fact, a large portion of those workers will have move on, as that number of laid off people is very large. To absorb that many workers is going to take years and years, especially with layoffs still occurring.
There are some jobs in North America that do open up. In fact, in the last month I have been emailed at least 4 real job offers in the pick database area.
Hence, if you have some special skills that are not general, then some jobs do come up from time to time. The other area that I still seems comes up is software project management/mangers. Project management of course means you need good experience on managing projects and people. That kind of solid experience is hard to get, and thus there is still is some demands in that area. If what you have is hard to get, then you can still find work.
In addition, many of the jobs now are asking for a degree or diploma in computer studies. Again, with so many to choose from, this is one easy way to cut down the applicants (and they still get too many!!).
The whole process here is about companies that turn code into dollars. If by hiring you they can make more money, then of course, they will hire you..right?
My thoughts on jobs can be read at:
http://www.attcanada.net/%7ekallal.msn/Articles/fog0000000004.html
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
| Fri 07 Feb | Bella | > As long as the company needs new people - people that could not be found in thousands resumes - our jobs are safe. Right?
I think I've seen this happen. At my last client, I would overhear another group going through the hiring process, trying to find a new member for their team. They spent what seemed like months and months critiqueing resumes and interviewing. They must have spent 2-3 hours a day discussing what was wrong with this resume or that applicant. It got to the point where I didn't know what they did for this firm BESIDES screen resumes.
I think they were looking for the 'perfect' candidate that did not exist. And dismissing applicant after applicant made them seem so much more elite. Ironically, no existing worker in the building would have been hired under this type of scrutiny, including themselves. I am certain they were just being this way b/c they had the liberty to do so. |
| Fri 07 Feb | programmer | Anyone who focuses their job search on sending out resumes is taking the wrong approach. RESUMES will not get you a job in this market. NETWORKING will.
You need to put yourself out there -- meet other programmers -- get involved in professional organizations -- volunteer -- play golf with executives -- play racquetball with CIOs -- become active in organizations where there are lots of tech people.
Turn the 'whole you' -- not just the part that is represented on your resume -- into an asset that other people know and want to have 'on board' at their company. |
| Fri 07 Feb | Prakash S | Don't take it personally, but its not you, its the economy.
Another thing, sending resumes is not the greatest way to get employed in this economy.
Network pound the pavement my friend!!!
all the luck! |
| Fri 07 Feb | Better Than Being Unemployed | > The other area that I still seems comes up is software
> project management/mangers. Project management of
> course means you need good experience on managing
> projects and people. That kind of solid experience is hard
> to get, and thus there is still is some demands in that
> area. If what you have is hard to get, then you can still
> find work.
Well, I've just been sent on a project management course for the week, and it's been great. I've definitely found I prefer it to an all-out technical role.
Trouble is, I haven't got any 'real' experience, maybe a year and a bit on an ad hoc basis. But I've seen so many project disasters (more than a few I've posted on here) that I'm convinced I've got a good idea on what to do based on what not to do.
Ah well, we'll see.... |
| Fri 07 Feb | | Companies want a superstar programmer to do menial mind numbing work for no pay. I think successful technical people would be successful in any field and are moving on. |
| Fri 07 Feb | sock | Does anybody know if hiring is taking place in the Math,scientific programming field?I have experience with 3D geometry,but that field seems kind of limited |
| Fri 07 Feb | Vincent Marquez | I think programmer has it right, unfortunatly, it seems like a lot of these people posting about not getting a job after 300 resumes don't have any contacts. To those having trouble finding jobs: be persistant, once you get in, if you ARE above average as you say, things will work out. Good developers are hard to come by, and if you are one, your felow workers, your boss, and others in the company will know.
A fair warning though, has any one of us EVER met a developer who doesn't claim to be 'above average'? EVERYONE seems to think that they're smarter then average. I'm including the guys who have a rudementary knowledge of HTML, and can barely hack up VB. To everyone looking for a job and having trouble, re-evaluate your skills, spend some time working on your weaknesses. |
| Fri 07 Feb | Prakash S | 'To everyone looking for a job and having trouble, re-evaluate your skills, spend some time working on your weaknesses. '
Good point, Vincent.
There is no point being technically brilliant if you have no clue about how to manage, plan your career. That is another thing you should work at. |
| Fri 07 Feb | T. Norman | And there is also no point thinking you are technically brilliant when you really aren't. |
| Fri 07 Feb | Benji Smith | You are sending out too many resumes.
You can't possibly keep track of the names and contact information of all 300 of the people doing the hiring at those companies. You can't possibly call and talk to them and get an in at the company. You can't possibly write a personalized cover letter to 300 resumes.
It's likely that you're making a very generic impression on the people hiring at the organizations where you've applied. You would be much better off making a very genuine and personal connection at 20 - 40 companies (that you know are looking for people with your skillsets) than you are making a very generic impression at 300 companies. |
| Fri 07 Feb | Matthew Lock | The title of this thread reminds me of a Simpsons episode:
Bart (in back of a police car): Do you you need straight A's to be a cop?
Cops: (Burst out laughing)
Most IT job web sites are all re-advertising the same jobs, or made up jobs. I sent out loads of resumes to those jobs without one response. But I have got all the jobs I applied for from the local paper in the last year.
So my advise is to check that paper first. |
| Fri 07 Feb | HeyMacarana | Job websites don't work. Forget it. Only 2-3% of all hires occur through websites.
The rest are mainly through networking and mostly through employees recommending their friends as potential hires to their employers.
If you're not able to network then you're pretty much screwed. Sorry to be so harsh, but that's the reality in this economy. You can't afford to be anti-social.
And to answer your question -- No, it doesn't take a genius in technology, but it does take a smart and gregarious, outgoing person to make the contacts necessary to get a job.
So maybe instead of directing all of your time and energy in trying to be a better coder, perhaps you could work more on your social skills. It's always better to be well rounded anyhow.
There's lots of ignorant and crappy programmers out there that HAVE and can GET jobs, while there's probably a lot of smarter and more competent developers who can't get in because they're unable to schmooze with managers.
So to sum it all up, the following which is a cliche, but is still very true: 'It's not what you know, but who you know.' |
| Sat 08 Feb | tim | I found that once I got past a certain number of job applications in a fortnight I started to get calls for the same job from different recruitment companies.
It would probably be best if you could ask people you know in the industry to keep an eye out for openings for you.
Thanks. |
| Sat 08 Feb | Alyosha` | I agree with what HeyMacarana, Matthew Lock, and Benji Smith have said about job websites. Admittedly, my job search has been upwards of a year and still going, but my experience with recruiters and job boards has been that they are universally a waste of time. Each posting probably recieves 200 or more resumes, so in order to compete, your resume has to be not only sufficient but spectacular. This problem is compounded by the fact that recruiters really don't care about what you know, or how bright you are, so much as what you've worked on before. Many of them don't have any clue about the skills they are recruiting for. Example: after explaining that I've worked with ATL at my last job, the typical response is, 'that's nice [as she makes a checkmark on her list], but do you also know COM, ActiveX, C++, and have you worked with Visual Studio before?'
I almost never receive responses back from recruiters, and my applications to specific company's job search databases seem to be routed directly to File Thirteen. But every time I hear from a friend-of-a-friend about a manager that may be hiring, I almost always get a call back.
(by the way, if anyone knows of anyone hiring in the Seattle area, feel free to contact me. =-) |
| Sat 08 Feb | Prakash S | Alyosha`,
If you give me the names of the companies you are targeting , I could give you a few leads. Send me an email.
best, |
| Sun 09 Feb | Andrew Reid | >>sock wrote: 'Does anybody know if hiring is
>>taking place in the Math,scientific programming
>>field?I have experience with 3D geometry,but that
>>field seems kind of limited'
Start talking to games developers. http://www.gamasutra.com might be a good place to start. |
|
| Good resources for Access XP development? | Fri 07 Feb | Wayne Earl |
| A friend of mine has an Access XP-based application that his company is using, and he wants me to take a look at making some improvements to it. Trouble is, while Ive done a great deal of work with databases (SQL server, Oracle, MySQL, Postgresql, etc. etc.), Ive never even touched Access.
This looks like a good oppertunity to expand my skillset, if only I had a really good reference for working with Access. Can anyone recommend to me books, websites, etc. that deal with Access XP-based application development? Any help would be appreciated. |
| Fri 07 Feb | Herbert Sitz | Access XP (also called Access 2002) is almost the same as Access 2000 , which was itself similar to Access 97. Access 2000 and Access 2002 use VBA6 as their programming language, which is almost identical to straight VB. A good introduction to programming Access using VBA is:
Beginning Access 2000 VBA by Smith & Sussman, published by Wrox.
The 'bible' of Access books is the 2 volume set by Getz and Litwin, the Access 2002 Developer's Handbook, v. 1 and v. 2.
My favorite site for help with Access is www.tek-tips.com, which has five or six forums devoted to Access that get huge amounts of traffic. Microsoft Newsgroups could also be quite helpful. |
| Fri 07 Feb | WNC | What you really want is information about Microsoft Jet, which is the database engine used in Microsoft Access and Excel.
A book I liked was 'Microsoft Jet Database Engine Programmer's Guide' by Dan Haught and Jim Ferguson. Published in 1997, it's still a very good book. (http://www.amazon.com/exec/obidos/ASIN/1572313420/qid%3D1044653906/sr%3D11-1/ref%3Dsr%5F11%5F1/002-8354863-5725669). |
| Fri 07 Feb | Prakash S | Wayne,
http://www.customguide.com/access2002.htm
I think the Eval version should suit you just fine,..
best, |
| Fri 07 Feb | Herbert Sitz | WNC may be right that what you really want is information about Jet. But perhaps not.
Access really comprises two big parts: (1) the Jet database engine and (2) the form/report/ui/VBA framework that you can use to build applications that access the Jet database.
Jet and Jet SQL have a few peculiarities, but really isn't too different from most other SQL dialects. The main thing to remember with Jet is that it's a fileserver-based system rather than a true database server.
You could build a non-Access-based program to access data in your friend's Access/Jet database in much the same way as you write programs to access any other back end.
If you're modifying a program that is already written using the Access 2002 user-interface, though, that will mean working within the framework of Access forms and reports, and using VBA as the programming language. It would take a bit more to come up to speed on these than it would to just learn how to use a Jet database as a back-end for a non-Access user interface. |
| Fri 07 Feb | Kyralessa | I second the recommendation for the Getz/Litwin/Gunderloy books; they're among the few three-inch books on the shelves that are actually full of enough good information to warrant their size.
But those books assume you're reasonably familiar with Access; if you've done so little Access that you really need to start from nothing, try this book, which takes you through designing tables, queries, forms, reports, etc. in Access:
http://www.course.com/catalog/product.cfm?isbn=0-619-02089-X
You should also check out the newsgroup comp.databases.ms-access, where a lot of professional Access developers post to ask and answer questions. |
| Sat 08 Feb | Albert D. Kallal | You have got some first rate advice here already.
Also, use the newsgroups.
Comp.databases.ms-access
And the Microsoft ones (which are their busiest ones they have!!).
Microsoft.public.access.forms
Microsoft.public.access.formscoding
Microsoft.public.access.reports
Microsoft.public.access.multiuser
Bookmark: www.mvps.org/access
Read the access 10 commands:
http://www.mvps.org/access/tencommandments.htm
Get some books…for sure!!!
There used to be good book included with every office cd.
A copy of the cd version (access97) can be found at:
http://www.microsoft.com/accessdev/articles/bapp97/toc.htm
The above is very good start, and will apply mostly to xp also.
A few more things:
I never have considered ms-access a database. It really is a GUI database client system.
Of course, in fact the database engine is most often JET, but then again you often will see the product used as a client to sql-server or whatever.
So, in effect while sql-server has no tools for the front end, ms-access really does not have any tools for the “back end”, or the database!
However, when you create a ADP project, you are working directly with sql-server. The table designs and manager actually is a mini replacement for the sql enterprise manager when you do this. The jury is still debating as to if ADP projects are worth the trouble right now.
Regardless, your sql skills, and concepts of database stuff will give you a big jump start. Main thing you will miss is that you don’t have server side sql procedures. (you will miss this…very much!!). This just means your designs will not rely on server side stored procedures. Often the solution in place of stored procedures is to use several queries based on EACH other. The other cool thing is that you can define a function in VB and use that as an expression in the column in the sql. (again, this is often a substitute for t-sql code). (ms-access people miss the fact of VB functions when going to t-sql!).
The programming language as mentioned here is VBA. It really is the same as VB for all intensive purposes.
So, you have a tall order here. You need strong VB programming skills and you have to learn a new IDE.
The other major difference from VB is the forms. The forms model in access is considerably more complex then the VB forms. There is about 40% more methods and events for a access form. The large portion of these extra features are due to the concept that forms are data bound. Learning the forms is the secret to unlocking ms-access. You have to learn how forms work in access (this is #1 on your list). This why it is a true RAD database tool.
Forms in access are most interesting since they can be imbedded in each other (sub forms). Forms also can be flipped into what is called continues mode to create a data grid.
A continues form thus results in all controls (including buttons) to repeat. That means that a simple set of controls on a form will repeat over and over to become a grid.
The real beauty of a continues for as a grid means that once you learn how to use a basic form, then all that stuff you learned can now be applied to a continuos form Hence, that same rich forms model that has all kinds of events and methods with VB code can now be used for a complex grid. You don’t have to go out and learn another complex grid control. (a large amount of learning is saved here). Further, since it is a form, the data is editable (if you wish). The values for a cell can also be based on a vb functon (really nice!). Here is my concept on how a search form in ms-access should work. Note also how the controls “repeat” in the “sub-form” screen shots.
http://www.attcanada.net/~kallal.msn/Search/index.html
Sub forms are another key concept that accomplishes many things.
My thoughts on sub-forms:
http://www.attcanada.net/%7ekallal.msn/Articles/fog0000000005.html
I cannot stress how you need to get a book. 1 hour working with a book is like 20 hours of playing around.
Also, some real nice tips on ms-access development are contained in a article of mine when I converted a pick application to access. It is good read for any project you start!
Check out:
http://www.attcanada.net/%7ekallal.msn/Articles/fog0000000003.html
Last but not least:
Ms-access is not viewed as a serious tool by a large portion of the developer community. Be prepared to get some egg on your face when you mention ms-access. Just say your are writing some sql and VB code. Since that is what ms-access works with anyway.
Ms-access has it’s place, and is a great tool. When access is used right, and for the right reasons, then it can turn a given number of dollars into more useful code then just about any tool available.
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
| Sat 08 Feb | Dave | Just to illustrate what CAN be done with Microsoft Access, you can visit our Web site at http://www.bid2win.com.
Our product sells for $6,000 a seat, and is built 100% in Microsoft Access 97 with all code in VBA. It's the result of about 18 man years of work.
Here's a screen shot of the 'heart and soul' of the system: http://www.bid2win.com/product/images/lgEstimate-Detail.gif. |
| Sat 08 Feb | Dave | Oops. Those periods are screwing up the links:
http://www.bid2win.com
http://www.bid2win.com/product/images/lgEstimate-Detail.gif |
|
| Do we still need VARS? | Fri 07 Feb | Albert D. Kallal |
| I was just answering a question on this board about Traverse Accounting. It is down about 13 posts from this one.
In that post, I give out a few ideas on how to generate more business, and how to increase billing hours. While I talk about the accounting package Traverse, I do also talk about the benefits of packageing other’s peoples software with your own. (you might want to read that post before you come back and finish here).
One of the suggestions I gave was to become a VAR (Value added Reseller). I have dealt with a good many VARS over the years, but have not actually considered becoming a VAR (gee, missed opportunities here!!). (I do a lot of consulting work for vars in my town..but am NOT one!).
I am also considering using VARS for my own products. The use of a VAR can make sense when you need support people for your product in a given City/area. (you don’t have to pay them either!..but you loose out on consulting fees). They sell and integrate your product. They do all the hassle work. Of course this generates business for them, and thus it is usually a happy marriage.
SCO unix, Pick systems are two very good examples that built very successful VAR networks over the years.
A good many hardware computer vendors also built up their companies this way).
With the advent of remote support, and standard desktop OS’s like windows, do any of you still think that the VAR business model works well for software today? Do we still need to be a physical person i the City we are selling the product?
Any of you still consider using VARS? Either becoming one, or using VARS to sell your products?
Am I talking about buggy whips here?
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
| Fri 07 Feb | Geoff in Vancouver BC | I think the answer to your question depends upon your market, and the value that the reseller is adding. As a customer, I don't see the value a VAR can add to products aimed at a technologically savy audience (For whom remote support technologies are well suited), however small and medium-sized businesses with weak internal IT departments can benefit from the training and implementation support offered by a good, service-oriented VAR. As a developer, I see the benefit of partnering with a VAR if that VAR can bring my product to the attention of local businesses and offer them the kind of hands-on support I mentioned above. To be more specific: Fog Creek wouldn’t benefit from a VAR relationship because the typical Fog Bugz customer probably won’t need too much hand holding, while City Desk is straight-forward enough that anyone should be able to pick it up. Even if a network of VARs offered Joel greater marketing support, their cut of the profits wouldn’t justify their existence. On the other hand, a local CRM vendor uses an extensive network of VARs to provide training, implementation support, and even hardware that the developer simply couldn’t afford to offer. So the short form of my $0.02 is: A VAR is a viable option if it adds VALUE and doesn’t just RESELL. |
| Fri 07 Feb | Joel Spolsky | Actually many CityDesk sales come through VARs; there is a growing network of web builders who create sites for their customers using CityDesk and then hand the site over to the customers to maintain themselves.
Most small businesses and organizations don't have the skills to design and build their own web sites; they hire web designers to create the site. And these designers can get a serious competitive advantage if they give their customers a site that can be easily updated with CityDesk instead of requiring the designer to make every change. |
| Sat 08 Feb | Albert D. Kallal | My reason for considering using VARS is if I integrate a accounting package into my travel software.
The reason for this is that the accounting software will take some training and set up. That training and setup can’t easily be done remotely right now. However, I am looking into ways to address this (ie: Video-Professor/screen capture type learning materials).
Thus, software that takes some on site work presents a challenge for me to sell outside of a geoparphiasl area.
I can either improve or create learning materials, or consider using VARS to do this for me.
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
| Sat 08 Feb | Geoff in Vancouver BC | Joel,
You say that many sites are created by VARs: are these people with some form of contract with you, or indie designers that chose to recommend your product because it is the best in its class? |
|
| The Database Database | Thu 06 Feb | ODN |
| The recent thread Dont Define the Interface in the Database made me think of a database design pattern I observed a coworker using in many of his projects. He defined the database in the database.
The basic concept is to use just a few tables that are designed to represent as many arbitrary tables as necessary. In its simplest manifestation, you have a table table, a table column table, and a value table, with a row id field in the value table. The row id can be broken out into a separate table for referential integrity purposes if desired.
This simplistic approach results in all data from any table being stored in a single value field, which means there isnt any type checking, and all data elements should be serializable to the datatype of this field, usually a string. A fuller-featured version of this model would store the datatype in the table column table, and perhaps have different value tables for each datatype.
This approach came in handy when we had a client who insisted on minimal physical schema changes on a project with constantly changing requirements. Once we set up this database within a database, we were able to add new tables and fields without having to make any more physical schema changes. Of course we paid for this dearly in performance when we reconstituted tables full of data for reporting purposes.
As you can probably imagine, this approach also became a nightmare to maintain, since some crucial information such as datatype had been hardwired into code. But when done properly, it allowed great flexibility, such as for a survey engine that allowed the definition of multiple surveys (similar to tables) with different types of questions (similar to columns with different datatypes) with different answers (the value table).
What has been your experience with this database design pattern? What scenarios did you feel justified its use, and where did it fall apart? Has anyone gone so far as to implement their own referential integrity? |
| Thu 06 Feb | Wayne Venables | This is very similar to the 'Graphical' database construct. (It's called graphical because of it's use in things like CAD).
Instead of using columns you use rows in another table as the columns and the rows. In your example, this was extended to tables as well.
In it's minimalist form you get a table like this:
RowID
ColumnID
Value
This sort of layout is very good for unstructured data. (Think user-defined columns)
I had the choice of using this method in one of my projects but instead decided to just serialize any unstructured data into a blob field. Better performance, but you can't query on that data. |
| Thu 06 Feb | Dave B. | Being the author of the 'Don't Define the Interface in the Database' thread, you can probably guess my viewpoint. The whole idea is wrong. How can you justify something like this? You say the client requested it and that it allowed flexibility. Hmm... The brilliant programmer that schemed up the database I'm working on started to implement something like this for use with the reports. So not only would he have had the Interface in the database, but he would have also had this rather confuscated database definition within a database simply to add some tables that defined reports.
Why don'nt you simply use something like DAO along with a simple utility that allows you to add a table (with fields) to the database (or for that matter create the whole database). That's all the functionality you have implemented anyway. Except you have done so with such a convoluted scheme that it seems to me that it would be almost unmanageable. |
| Thu 06 Feb | Wayne Venables | Dynamically adjusting actual database columns dynamically in software is a hell too. Possibly less hell than what is described about.
It's all about the right tool for the right job. It doesn't sound like the developers on that project really saved themselves anything. The still had to add columns and tables but they had to go through a level of indirection to do it. Why'd they do it, I don't know. |
| Thu 06 Feb | ODN | I tend to agree with you, Dave. For the most part, the way my coworker used 'the database database' felt very wrongheaded to me. Especially because he didn't realize that he was actually building a database within a database until I told him that's what he was doing. Once we had a name for it, he delighted in suggesting it every chance he got, whether or not it was appropriate. You give a man a hammer....
But it got me to thinking, since I felt there was still a kernel of usefulness there, if only I could find a scenario that justified it. I believe that using the technique entirely as a substitute for making schema changes is a foolish approach to take. You are always better off implementing the table directly if possible.
But there are scenarios such as the generic survey engine I mentioned where there is a need for this kind of fill-in-the-user-defined-template flexibility. This is more of a special-purpose use of the database database pattern that is obviously tailored to fit the needs of a survey engine. I think it is rare that the database database pattern is useful and justified in its pure form, but I'm guessing there are many uses for it when modified slightly to fit a specific need. |
| Thu 06 Feb | ODN | I did write up a little utility that converts the structure and content of actual tables into the database database structure, and can reconstitute them back into real tables as needed. I was working toward creating a data access layer that allows you to work with tables that are in the database database just like you work with regular tables, with the ability to change whether the table was virtual or real without impacting your code. This way, if you were making frequent schema changes in the database database, you could periodically transition them out into real tables, which would minimize the frequency of physical schema changes, plus allow you to eventually regain the performance that was lost. But unless someone can think of a justifiable scenario for this, I don't think it's worth my while to pursue it. |
| Fri 07 Feb | Wayne Venables | Is there any real reason to continue using this database database structure?
If I were you I'd just use you utility to convert the structure to normal databases and be done with it.
Frequent schema changes are not that difficult to do without this structure. |
| Fri 07 Feb | Li-fan Chen | This is coming out of my ass, but I think the Arsdigita Community System (now a RedHat open source CRM system) at one time contemplated putting all table fields into one single field in one single table for simpliciity reasons--I don't know if they ever followed through. For some reason this was something Oracle had no problem with, and if you had 'great programmers' it was somehow a good idea.
If you use SQL Server 2000 you would start to worry about performance, because scanning an ordinary table now would have to scan 10 times more rows to get the job done. You can solve this by using partitioned tables that is joined again using a view. This would improve performance for backups/restored/adds/deletes/searches.
But on the other hand, if 99% of your fields are varchars anyway and your domain of business is playing with text and more text--such a table makes some sense I guess. |
| Fri 07 Feb | Karel | It is called the mother of all datamodels(TM).
David Hay has it in his datamodel patterns.
I have used it with good effect under appropriate circumsatnces. Mine has a few tables more than Hays' 7. I also distinguish between Descriptive Qualitative and Quantitative observations (values in your model) Then Units comes into it as well. And inheritance.
An IEEE software last year featured this by on of the OMT (rumbaugh) guys - they said about 30% performance hit. |
| Fri 07 Feb | Simon Lucy | metadata ~ data about data
The furthest I pushed this was a schema design that defined fields, variables and constraints for a UK Personal Tax Database because in any one tax year there would be a variation in both the data stored, the constraints and types.
It also had the capacity to attach code to the Tax rules.
So you ended up with a table of definitions for all tax years and for a particular tax year for a particular client you generated a real table with the correct fields and constraints. |
| Fri 07 Feb | Gwyn | My current development is taking the approach being discussed here to add user fields to items. The actual data for these fields gets store twice
(1) all serialized in a column of the item that has the extra fields
(2) in an index table where each field/value combination will be in a row.
Storing twice? This is a bit of an overhead isn't it?
Yes, but in the system 99% will be reads and queries and only 1% writes therefore this approach is taken to ensure that reads and queries are performed quickly; the hit on database size and on write-time is acceptable.
It is not possible to dynamically add columns to tables (for other reasons too complicated to explain here)
Works a treat... but creates a big database! |
| Fri 07 Feb | Anonymous Coward | I consistently use this model in my database. It works great!
Let me rephrase that a little. The 'real data model' for the application uses traditiona (real) tables. In most applications, users want to define custom fields and other 'defined on the fly by the end user' entities that cannot, by definition, be hard-coded into the schema by the developer during development. A the DatabaseWithinADatabase pattern/model works quite well for allowing the end-user to define this stuff on-the-fly.
I would *not*, however base the core data model on this pattern. |
| Fri 07 Feb | Benji Smith | Goodness sakes, this is a disaster.
How in the world can you do a 'select sum(sales) from dailysales' if all of your numeric values are stored internally as strings? |
| Fri 07 Feb | Duncan Smart | It's worth beraing in mind that most databases use the 'database database' approach anyway.
Eg, in a SQL Server database you have:
* sysobjects: defining tables amongst other things,
* syscolumns: er, your columns...,
* sysreferences: relationships/constraints
etc
So infact what you are doing is creating a 'database-database-database' :-) |
| Fri 07 Feb | Anonymous Coward | >> It's worth beraing in mind that most databases use the 'database database' approach anyway.
>> Eg, in a SQL Server database you have:
(snip)
>> So infact what you are doing is creating a 'database-database-database' :-)
Yeah, but if you use the vendor's approach to metadata you at least have access to a SQL engine, DB drivers, and programming logic that can work with that metadata!
This subject seems like a distinct step backwards, the kind of thing that a junior developer feels like a genius for pulling off due to its sheer complexity and which becomes an albatross around some other poor schmuck's neck when it comes time for maintenance.
Sometimes I read such enthusiasm for hand-rolling one's own engine to substitute for the vendor's existing system or creating some other weird little trinket that I wonder what some people have to demonstrate to prove that they did their work... |
| Sat 08 Feb | Robert Cowham | This sounds like somewhat like the Sentences database: http://www.lazysoft.com/technology.htm
Instead of using a separate, unique table for every different type of data, Lazy Software's Associative Model of Data uses a single, generic structure to contain all types of data. Information about the logical structure of the data and the rules that govern it are stored alongside the data in the database.
However, see also: http://www.pgro.uk7.net/lazyness_1.htm ! |
| Sat 08 Feb | T. Norman | >'It's worth beraing in mind that most databases use the 'database database' approach anyway. '
But the difference is that the data in their 'database database' is mostly automatically maintained, instead of having to be manipulated by programming gymnastics. When you do a CREATE TABLE, the column definitions automatically get populated into the relevant metadata tables - neither you nor the DB maker has to worry about it any more.
The 'database database' may make sense if the complexities of that approach are built once, hidden behind a simplified interface, and require little or no future maintenance. However, that definitely does not seem to be the case with the original poster. To modify, debug, or extend that application, you have to know the insane mechanisms of how to read and write the details of the 'database database'. |
|
| KHTML-Win32 | Thu 06 Feb | pb |
| Anyone who wants to work on a project that has good, real-world interface challenges and will potentially be used by 10s or 100s of thousands of users ought to go help this guy out: http://khtml-win32.sourceforge.net/ |
| Fri 07 Feb | Curious | Just what exactly is KHTML?
It was not clear from the link. |
| Fri 07 Feb | Joel Spolsky | I couldn't figure it out, either.
I thought I was stupid :) |
| Fri 07 Feb | Prakash S | HTML with a K, duh!!!! :-) |
| Fri 07 Feb | Nathan Silva | Open source HTML rendering engine from the KDE people. It's what Apple's new Safari web browser is built on. |
| Fri 07 Feb | pb | Yep, should have been more explicit. With the browser wars supposedly over, who'd be stupid enough to build a new browser, right? But with Apple recently demonstrating that there's still life in the battles and with Mozilla stumbling for 4 years and with the KDE having put together a tight entry, working on a new browser actually might be fun again. And doesn't everyone like working on products that might be used by 10's or 100's of thousands of users? |
| Fri 07 Feb | Troy King | You bet. Bring on the browsers. The more the merrier. Good luck beating Opera, though. It's telepathic, you know. |
| Sat 08 Feb | Dan Maas | I think the idea is to port KHTML (an HTML rendering library) to Win32, without using any kind of POSIX emulation (X11, pthreads, etc), which entails re-writing those portions to use the Win32 equivalents (GDI, Win32 threads, etc). |
|
| Discussion board software? | Thu 06 Feb | sedwo |
| Im searching for Discussion board software that is stable, fast, and hopefully free.
My application for it is to enhance user support and build a community surrounding the product. Joel wrote an article regarding his earlier attempts with this challenge, and eventually broke down to write his own.
What do you recommend? |
| Thu 06 Feb | tapiwa | without a bit more detail, it is quite hard to recommend.
How big is the audience. How tech savy are they?? Do you want something simple and fast. Do you want something with lots of features (read animated smilies)?
There are a lot of different boards php, asp, perl on http://www.hotscripts com |
| Thu 06 Feb | Dave B. | I would write my own. It is not difficult if you know HTML, VBScript, ASP programming and database access via ADO. I could prolly e-mail you a 'sample' one I wrote if you want.
Although I have'nt investigated the alternatives, I have heard that things like EZBoard are clumsy and expensive. |
| Thu 06 Feb | tapiwa | that was supposed to be
http://www.hotscripts.com |
| Thu 06 Feb | Jeff | There are a whole bunch of excellent ones out there for various needs. Some are commercial software (like http://www.vbulletin.com/ ) but there are many that are free (but paid support is usually available also.
For free ones, here are a few:
http://www.invisionboard.com/
http://phpbb.com/
http://www.ikonboard.com/ |
| Thu 06 Feb | Ricardo | Here's another free one
http://www.webwizguide.info/web_wiz_forums/default.asp |
| Thu 06 Feb | Philip Janus | The discussion forum at http://www.asp.net/ is free and has the full source code available.
Philo |
| Thu 06 Feb | ia | Probably, it's a stupid quesion, answered already hunderds of times... But what is the discsussion engine behind the JoS site? I can see that it's writeen in ASP... but is it some proprietary Joel's code or something availaible for free?
It just seems to be the best discussion format I've ever seen (from both logic and presentation points of view). |
| Thu 06 Feb | Patrick Lioi | phpBB is very, very easy to setup and use, and has all the feature's you'd want in a discussion board. |
| Thu 06 Feb | TK | Fog Creeked did their own and wrote about it:
http://www.joelonsoftware.com/articles/fog0000000008.html |
| Thu 06 Feb | ia | Great, thanks, tk! |
| Thu 06 Feb | pb | Don't write your own!
The PHP/MySQL ones are very good:
http://www.phpbb.com/
http://www.vbulletin.com/ |
| Thu 06 Feb | Adam Young | If you are a perl-phine, you can use slash, the code behind slashdot. Runs on MySQL and has an advanced request caching mechanism to get it to deal wiht....Slashdotting? |
| Thu 06 Feb | Alex Chernavsky | J. B. Conners has a forum that looks a lot like the JoelOnSoftware boards:
http://www.jbconners.com/backend/DiscussionForum/APHPDiscussionForum.html
You need PHP and MySQL. |
| Fri 07 Feb | Gertjan de Back | When phpbb and similars are to heavy for your application, I recommend to check out 'phorum', http://phorum.org. It's build on php/mysql and has the most useful features though is still pretty slick. |
| Sat 08 Feb | Justin | We used idealbb ( http://www.idealscience.com ) on a recent site. The demo version is free, the lite version about $300. We used the most expensive version which comes with full asp source (if its mission critical and it fails, at least you can fix it). It runs against SQL Server.
I thought it was really good; Easy to install + customise; easy to use. One of the other developers moaned about not having gone with some other solution - I forget which - but that may have been because he'd used it before.
This is the only bb solution I've done, though. |
|
| Traverse Accounting Software | Thu 06 Feb | Joe |
| Hi all,
We are a small non-profit organization with 100 employees. We are trying to implement CRM/Accounting system and our contractor suggested Traverse Package.
Has any of you used this? What are your thoughts?
Any other suggestions?
(Albert Kallal - I was searching on Google groups, and I read somewhere that you have experience with it :-). What are your thoughts? Thanks.)
Thanks in advance for all your inputs. |
| Fri 07 Feb | Albert D. Kallal | Traverse is a accounting system that was ms-access and JET based. I found it quite slow on a network. This slow ness was both in the speed/response, and also the interface was somewhat clumsy.
This idea of “flow” is a difficult concept to explain. The main selling points for the package is that it can deal with multiple currencies, and the source code is also available. This means that other systems such as custom quotation systems or custom order systems can be integrated into the system.
That “flow” problem I talk about is what makes good software good, and bad software bad. I also believe now Traverse has a SQL-server based version.
It is my sense that the original design of the accounting system was lifted from a older mini computer “basic language” design. You know, those “business” basic 4 and other variants that ran on those older mini computer systems. If you ever seen the code for those systems, then you will know what I mean. Not a pretty sight. Lots of array to “forms” type code. This is only my “sense”, as I don’t know this for a fact in the case of Traverse.
As technology changed, then pc’s and small networks came along, then those products were obviously converted to run on pc’s and low cost networks. As a result, the designs that worked well in a text based procedural type language did not convert well to a event driven GUI type environment. There is a lot of table driven stuff that is obviously is from a design that come from some where else! I could be deal wrong on this..but it sure looked that way to me.
I think the only real standout feature is that you can get the Source code for an additional price (they don’t unlock everything for you..but about 99% is). The small 1% is licensing control stuff anyway. Don’t be fooled by the fact that the product is ms-access. You need first rate developers to modify and extend that system. That means good VB coding skills in addition to ms-access skills.
There is a lot of code in that system. Way Too much for my tastes! I guess what accounting system don’t have too much code and ugly stuff!!
To me, the lack of snappy nesss (response time) was a sign of bad designs.
Many people just assumed that Traverse was not good due to the fact of ms-access and JET. However, the very popular Simply Accounting package is also based on JET, and the mdb file format (same as ms-access).
Simply accounting is very responsive, and has that great “flow” to ease of use that we all talk about. It works like good software should. Note this is a issue of feel and flow, and not the final actual feature list.
Traverse had the all the features. But it lacks good flow. It was a bit of a un-tamed animal. It always seemed overloaded.
It does have the features, but I did not like the design of many reports (way too much code again).
The above is my opinion here. I don’t want to discourage you simply because of my emotional response I am giving here.
At the time (about 4 years ago now), a SQL server based version was not available. I believe that the new version now supports SQL server.
In that range of accounting system (the next step beyond Quicken, and the basic Acc-pac). Business Visions also in a good system for that range.
I not giving Traverse a rave review. I never did see anything in the product that make me go, gee what a great design, or gee what a great system. It is like bland food, and not really well done..but eatable.
I am simply going to state that much of the above is my instincts. I can only suggest that you get a trial period and really test it out. If it serves your needs, then my above comments are not really fair, are they?
I do believe that an accounting system DOES NEED to be modified to some degree for a business to really make it right. This is especially for some types of specialized manufacturing companies. Thus, again, you only need source code and modifications if you need to INTEGRATE other special systems. Otherwise, accounting is just accounting, and most systems will do the job.
Traverse also follows the VAR model (Value Added resellers). This was a fantastic model for pick systems. That means that each city would have some computer vendor/consultant that is the dealer for that product. This can work very well if the product is a good solid product and the var is good.
I mean, for me to offer an integrated accounting package with my software makes me look like a real professional vender. If two companies offer a product, and mine has a accounting system available as an add-on, then I look much better. Just the fact of an accounting module/system being available for your product can increase sales.
There is also more work (billing hours) if they run your accounting system. The support costs and dollars now go to you, and not some other accounting vendor. Thus, becoming a dealer for such systems can generate business for you. (the owners of the software also need you the vendor in the city, and you will get referrals from them as a dealer in your city).
I most certainly could use Traverse. That allows me to offer systems to a business. (my travel software for example could use this). By having a accounting system available, then you can offer more complete systems to customers. You thus “brand” the accounting system as part of the package.
I have considered doing this for my Rides product
check out
http://www.attcanada.net/%7ekallal.msn/Rides/Rides.html
I have not yet chosen an accounting package to integrate with the above Rides package, but I am in the process of looking to do so. My bets right now are with Simply Accouting. (but, I am looking at a slight smaller company size then what Traverse would be used for). I also did not really fall in love with Traverse.
My other choice for accounting system to include/integrate for Rides is:
http://www.accountingsuccess.com/
One last thing:
You must insist on talking to a company that is CURRENTLY using the product and you MUST find out what they like, or don’t like.
DO NOT just go on my above comments, or the comments of some VAR or dealer. Again, you MUST talk to some one who is using the system, and how do they like it.
This is super simple advice. Please at least do that!
Things have changed in the last 4 years, so my thoughts might be out of date concerning Traverse.
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
| Sat 08 Feb | Joe | Thank you very much for inputs Albert,
We are still evaluation various packages, but I will speak to some customers who are actually using it. People who will be using the system actually like the features etc., but I was bit concerned about this whole Access frontend(forms) for SQL Server backend thing. But I will test it more and see where it stands. Once again thank you very much. |
|
| HTML Question | Wed 05 Feb | HTML |
| How do you stop very long strings (i.e. no spacesin them) from deforming tables and other HTML elements. For example, if I had a column of a table that was 25% of the page and a string whose length was 50% of the page, but did not want that string to extend that column width wise, how would I code that. Do I have manually break the string up or truncate it?
Ex.
A normal string
Averyverylongstringthatcauseslotsofproblemswithmycode
Should be:
Averyverylong
stringthatcaus
eslotsofproble
mswithmycode
Any help would be appreciated. |
Wed 05 Feb | Walter Rumsby | Can you put word breaks in there? ie. use the tag, eg:
hereisareallylongstringdude
Other things to try are setting a CSS style for the a block-element in a column, specifying a width and setting an overflow property, eg:
...
|
hereisareallylongstringdude
|
The width could be in pixels (px), ems (em), etc.
According to the CSS spec overflow and clip only work with block (eg. ps, divs, etc) and replaced elements (eg. images), so you'll have to surround your text in a or a or something similar.
IE6 also supports a proposed value of 'ellipsis' for overflow, which might be a nice way of handling things. |
| Wed 05 Feb | HTML | Thanks Walter. I will give that a try. Maybe I should clarify my intentions. I am try to handle rogue strings typed into a textarea. For example:
;asklfj;aslkfj;alskfj;alskfj;alskfj;alskfj;aslkfhj;aslkjf;salkfj;aslkjf;salkfj;aslkjf;aslhkfj;slkfhj;lskjf;laskfj;lsakjf;lskjf;laskjf;lsakfj;lsjfk;lsakfj;alskhfj;lasfjk;lsakjf;aslkfhj;alsfdhj;aslkfj;asldfjk;salfdjk;saldfkj;saldfkjas;lfdkjs;aldfkj;saldfj;asldfjsa;ldfj
Should not extend the column that it is displayed in, but should wrap or be truncated at the column width. |
| Wed 05 Feb | HTML | Looks like Joel truncates them... but how? |
| Wed 05 Feb | anon | It appears that he uses the property 'table-layout: fixed' on his tables. I've been trying to figure out how to do this as well, so I'm glad I found this thread. |
| Wed 05 Feb | Joel Spolsky | ... combined with . View source on this page and you'll see. |
| Wed 05 Feb | Sam Gray | Ironically, it doesn't work in Opera. So this thread scrolls horizontally for me... ;> |
| Wed 05 Feb | anon | It would be ironic if this was a forum for the Opera web browser. |
| Wed 05 Feb | Li-fan Chen | In the VB world
strInPain = Left(strVictim, intMaxNumberOfChars)
truncates. There's a LeftB too for bytes-based truncation.
A quick improvement is to ensure the stuff left out by Left get's wrapped. Use a loop.
OR Look for stretches of text using Regex:
(stretch one of 20 chars)(stretch two of 20 chars) for example and replace it using \1[invisible wrappable character]\2
Both solutions are rough, you have to eyeball it, they aren't perfect. But they are no nonsense and fast.
But that's just two way out of thousands to do it, good luck. |
Thu 06 Feb | Walter Rumsby | The wrap still exists in Mozilla 1.2 too.
Here's a 'side by side' comparison of the two techniques I outlined - using overflow gives you precise control over the width of the column, but I'm not aware of a property that will wrap values in the block.
Constrained Width
|
Averyverylongstringthatcauseslotsofproblemswithmycode
Averyverylongstringthatcauseslotsofproblemswithmycode
|
Averyverylongstringthatcauseslotsofproblemswithmycode
Averyverylongstringthatcauseslotsofproblemswithmycode
|
|
| Thu 06 Feb | Walter Rumsby | Hmm,
The CSS-based approach above works in Mozilla 1.2, but not IE6.
Hmm. |
| Thu 06 Feb | HTML | STYLE='table-layout: fixed'
This tag fixed the problem. Thanks guys.
>> 'The CSS-based approach above works in Mozilla 1.2, but not IE6.'
I can't get the CSS approach to work in IE6 either.
>> 'Ironically, it doesn't work in Opera.'
I don't know if there is a way to make it compatible with all browsers. Seeing as how I'm only interested in IE6, at the moment, the above style tag works along with specifiying column percentages (in my case). |
| Thu 06 Feb | fool for python | specify the column widths only on a colgroup of the first row of the table... no need to do it on every row. |
| Thu 06 Feb | fool for python | ....colgroup OR the first row....
and it gives you progressive rendering:
http://michaelw.net/Articles/TablesvsLists.html |
| Thu 06 Feb | Jeff MacDonald | This is a Microsoft Extension to CSS that should work in > IE 5.5. I've only tested it to work in IE 6.0.2800.1106 on WinXP, but it works fine:
|
| Thu 06 Feb | Steven Wisener | Why not just validate/trunc it when they submit it? |
| Sat 08 Feb | WNC | This thread is an example of why I read JOS almost every day. I learn stuff every single time.
Thanks guys for the intellectual sparks. |
|
| ClearCase Source Control | Wed 05 Feb | RW |
| I am a consultant working in NYC. The last two places that I have worked have each recently switched to Rational ClearCase. In both places management wanted ClearCase and the developers emphatically did not. In all cases where I have seen it used with any success at all there was an employee of Rational on site fixing the problems that came up. Personally, based on my experiences, I will be adding 5% to all time estimates when CC is required.
My questions:
What experiences have others in the JOS community had with this product (positive or negative)?
Is anyone out there using it successfully?
Did you need a Rational employee on site to use it?
What does CC do for you that the other similar products will not?
Thanks in advance. |
| Wed 05 Feb | Joel Spolsky | I had a boss once who had used ClearCase at a previous job. 'It's terrific!' he said. 'I wish we could use it here! It's so good, we had a FULL TIME ADMINISTRATOR at the last place just to keep that thing running!' |
| Wed 05 Feb | Jeff | At my last employer, we had several developers pushing to use ClearCase. They thought it was an excellent product and had used it successfully at previous employeers. The only reason we didn't adopt it was the belt-tightening that was going on (resulting in my being let go during the 3rd round of layoffs).
Of course, we were using Sun's CodeManager to coordinate development being done at three locations (each on a different continent) so it probably would have been a giant step forward. |
| Wed 05 Feb | w.h. | I like the neat way that ClearCase is a viewable as a file system (albeit only on the good platforms) so that you can do continuous integration.
It seems a little heavyweight, however.
In my limited experience, it's decent, but it does seem to need a lot of administration work. I shudder to recomend it because it's expensive.. |
| Wed 05 Feb | mackinac | I am currently using it. The file system model is quite a bit different from standard models, so a certain amount of initial training would be useful. Not a lot, just enough to explain to people what is going on.
Our biggest problems have been a result of a poor version plan. This is not a CC problem. You need a version plan and a plan for creating views.
The system is provided by an IT group, so I don't know if they have an on-site Rational person.
We also use Rational Rose which is a bigger source of trouble. |
| Wed 05 Feb | Nat Ersoz | Correct me if I'm wrong (I've used CC only once before on a 6 month contract project):
For each code change:
ClearCase forces you to branch, change code, check in, merge.
That is, each check out/ check in requires a branch.
Perhaps this was merely policy imposed on the project, I'm not sure. I found this to be absurd.
The sign of a truly powerful CM tool is that you spend a minimum of time thinking about it. It impedes code development, testing, release as little as possible - with as little 'ceremony' and policy as necessary to get the job done.
My experience with CC: I hated it. I've used PVCS, RCS, CVS, and Perforce (and one other proprietary thing: SLM). I like Perforce best and SLM was by far the worst of all possible worlds. An unimaginable heap of crap: not even viable. CC is my least favorite of the viable options. |
| Wed 05 Feb | A Software Build Guy | I have look into ClearCase for some source control issues at my work, Most CM people tend to agree that if you either have a rigid well defined CM Process or a full time Admin (and preferablely both) ClearCase as a tool can be a pleasure to use. Why use it if it requires such over head, Mainly because it goes beyond just source control if combined with their bug tracking tool (ClearQuest) It can be used as a process enforcement and Change Management tool that tracks all changes and issue right to the source code and back to a requirement. Handy if you have FDA or MilSpec style regulation requirements to meet.
Cheers
MAD |
| Wed 05 Feb | mackinac | >>> That is, each check out/ check in requires a branch.
Perhaps this was merely policy imposed on the project, I'm not sure. I found this to be absurd.<<<
It must have been policy. ClearCase does not have such a requirement.
We have a similar policy. It seems quite reasonable to me. Of course, testing occurs on that branch before the changes are merged back in to the main branch that everyone is working with. |
| Wed 05 Feb | A Software Build Guy | Nat,
Out of the box ClearCase attempts to enforce UCM (Rational's CM Process) on any versioned artifact. This is not ideal for alot of projects and this process should have been explaned to you. The Admin/management can change this default process behavior if they choise to and ClearCase can act as 'Normal' source control tool. But part of the function and appeal (to management) is the process enforcement system that is part of ClearCase.
The braching and force merging is the UCMs way of keeping Changes under control (only management approved changes go to the trunk)
cheers
Michael Duran
MAD |
| Wed 05 Feb | Gerard | I've used ClearCase on three separate projects with three separate firms.
I think it's great, especially for large projects with several interrelated deliverables being worked on by different teams.
You do have to read the manual *very carefully* before using it, and you do need to have a policy for how you are going to use it - Clearcase doesn't force a particular model of SCM, rather it supports several common models. Hence the need for an administrator or at least somebody to come up with a policy.
It's also quite expensive.
Nat - looking at your post, I suspect your local policy tended towards overkill if your team had to make a branch for every single file change. That does sound a bit painful!
For the record, I've also used CVS, RCS, SCCS (ugh), VSS and StarTeam - I'd always recommend starting off with CVS if you have a small team and budget to match.
No, I don't have shares in Rational, and I don't work for them either. ;-) |
| Wed 05 Feb | A Software Build Guy | The default policies of ClearCase out of the Box are set for Rational's UCM (I recently talked to a Rational Sales team on site and I asked about it) Yes you can change your policies to reflect your CM Process or lack of one. That said, the tool then uses these policies (weather the default or the ones that have been create to match your process) to controll the use of the tool (It enforces the policies). Is this bad, No not really, All I was pointing out was that the tool was doing what it is told to do by the Admin, management or a Rational rep, in Nat's case It was not the Tools fault so much as a poorly defined, not well thought out, or unexplaned/poorly explaned policy issue with that employers system.
cheers
MAD |
| Wed 05 Feb | pavel | CC was (is) widely deployed in Ericsson (thousand and thousands of installations). The typical end user experience: complex, _very_ hard to use, crashing sometimes. Every group need to have dedicated CC administrator.
I've seen people spending maybe 20% of their time to fight with CC. |
| Wed 05 Feb | Mr Nutty | We use ClearCase at my current company, full UCM mode.
My #1 complaint is that using ClearCase, at least with the UCM process, is that it does NOT make easy things easy. You need to know quite a lot about UCM, ClearCase and ClearQuest just to do simple check-in/check-out activities.
I find it gets in my way a lot more than it helps, since I'm not 100% 'bought-in' on the benefits of UCM.
And learning about ClearCase and ClearQuest can be quite a chore, since for all of their expertise in building OO and component-based software, I'm of the impression that nobody at Rational could design a decent user interface to save their life. To top it off they tend to invent new jargon to explain concepts that everyone else in the industry references in more simple and clear-cut terms (I'm not talking about the UML here, I'm fine with that, I'm talking about VOBs and rebases and such). I'm pretty convinced they do this solely to drive people to their 'Rational University' instruction classes.
I suppose for the release engineer-types, ClearCase is very useful, but as a day-to-day developer used to simpler systems (Perforce, VSS and CVS, specifically) I'm NOT a ClearCase fan. |
| Wed 05 Feb | w.h. | Uh yeah, every single Rational product is designed to fit into their workflow model, their unified process, and the rest of the suite of products. |
| Wed 05 Feb | Dave garbutt | I have been looking into CC for a month or so and I am very impressed. Why?
* No other product (AFAIK) has views where files are all available for read WITHOUT having to make a local, or somewhere , copy. This is much easier to work with than CVS for example.
* This is important for us because we are generating output results which takes programs plus a few Gigs of data.
* The facilities for derived object tracking are exactly what we need. It means for example that dependencies don't need to be tracked explicitly. And if they are then CC can check no unexpected items were also called
DaveG |
| Wed 05 Feb | Mr Nutty | Don't get me wrong, as far as having a flexible feature checklist goes, ClearCase does just about everything and then some. And the software is impressively stable for having such a wide feature set.
But infinite flexibility is not always a good idea if the flexibility comes at the cost of ridiculous usability and administration problems. If it kept the easy things easy and still managed to do all of the advanced stuff, I'd love it, but it doesn't. |
| Thu 06 Feb | treefrog | I work at a major telco manufacturer. I've been using clearcase for a couple of years now. Iwasn't convinced at first (I had been using RCS before), but now I am.
CC is a very powerful tool. We all find it very easy to use. The virtual filesystem it creates (a 'view') is a joy to work through. The merging tools are a joy. They alone are probably worth paying through the nose for.
There are a few places where it seems to fall down though. First, the windows GUI is much much better than the Unix gui. I wish someone would spend some time working on that.
Second, it is sometimes not as clever as it thinks it is - it has this 'wink in' facility where it will try and find a recently compiled version of a file on your branch (to reduce compilation times). In my experience it is also very good at trying to wink in versions compiled for different architectures - not a bonus!
Finally, and most tellingly, where I work we probably have about 300 developers using it. We have at least 2 people working full time just trying to keep it upright. That isn't doing the usual sysadmin stuff - that's stopping CC from falling over.
I'm quite happy to admit that I havn't used all that many other source control systems (SCS, RCS and CVS). For example I havn't tried perforce or bitkeeper. But in my experience, if you can afford it, and if you can afford the deicated tech support to keep it running, there is nothing like it.
In fact, part of me keeps wondering whether I could create an open source version with most of the functionality I need - probably based around Ruby with a RDBM (MySQL ? ) behind it.
regards, treefrog. |
Thu 06 Feb | Jan Derk |
No other product (AFAIK) has views where files are all available for read WITHOUT having to make a local, or somewhere , copy. This is much easier to work with than CVS for example.
You can use a tool like viewCVS to browse through your CVS source base and view any version of any file or even do diffs.
http://viewcvs.sourceforge.net/
Here's a live example for the Apache source code:
http://cvs.apache.org/viewcvs.cgi/apache-1.3/
One advantage of CVS is that it is so big in the open source world that all kinds a great and generally free tools are created. I'm also very curious what will happen with its successor Subversion currently being developed by the creators of CVS.
http://subversion.tigris.org/ |
| Fri 07 Feb | RW | Thanks for your opinions everyone.
This was most helpful. |
| Sat 08 Feb | Robert Cowham | Regarding the CC and read access, whenever you read a file you are of course copying it locally. A virtual file system like VOBs means that every access goes to the server.
This is a two-edged sword. It allows lots of central control and that you can specify things consistently. It also means lots of network traffic and beefy server requirements. |
|
| actively hiring | Tue 04 Feb | concerned |
| Hi all,
Given the state of the economy,does anybody know if any companies are actually hiring developers? |
| Tue 04 Feb | Jeff | Having been laidoff almost 4 months ago, I can tell you about the Chicago market.
THere are companies hiring, but they are all being extremely specific in their requirements, they are taking a long time in looking over resumes, and they don't hire if they don't find someone who meets their long list of requirements.
Also, I once told a recruiter I know/trust that I'd take less money if I could get a position that'd help strengthen my Java skills (I'm mainly C/C++). She chuckled and said that there were plently of Java people willing to take less just to get a job. |
| Tue 04 Feb | mackinac | In the DC area there are companies advertizing on the radio that they are hiring engineers. They are all big govenment contractors and mostly require security clearances. Overall things are still very bad, but there are a few nitches with some hiring. At this point I am getting nervous about my own situation. I am still employed, but my employer will be losing some positions in the near future and there hasn't been much new coming in. |
| Tue 04 Feb | barbarosa | Seattle's still tough. |
| Tue 04 Feb | raindog | I'm in Silicon Valley, and things are really bad here. I've been laid off 2 month ago, no job offers and can't even get an interview, so far. I have almost 20 years of expericnce, C++, Java, Perl, OOD/OOP, UML, etc.
Just for the contrast -- I came here in 1996, sent a dozen of resumes the same day, got an interview in 3 days and a decent offer in a week. |
| Tue 04 Feb | cheapo | I work for a Bay-area company, we have been looking to fill one or two more senior developer spots in our group for the last 6 months to no avail. The quality and/or experience of applicants have been disappointing.
Realtime client-side financial software, MFC, C++, etc... Seems like most financial programmers are on the East Coast. Daytrading experience a big big plus.
Would love to add someone who cares about software quality and usability. |
| Tue 04 Feb | raindog | Yes, I know, tere's the otehr side of the coin... Because so many programmers are unimployed here (10-15%, AFAIK), the signal-to-noice ratio is pretty low. I have a friend who are trying to find right candidate, but with an average of 100 resumes per day they just physically not able to review all candidates. And they are still looking.
Another recent anecdote: a friend of mine posted a QA/developer position on one of the big job boards, went for lunch, got back in 1.5 hours and found 1200 resumes in his mailbox.
So, yes, it's very difficult time for both employers and unimployed. |
| Tue 04 Feb | Prakash S | Microsoft is hiring. |
| Tue 04 Feb | Pavel Levin | Microsoft is always hiring.
It's just damn tricky to get in. |
| Tue 04 Feb | Jeff | And, according to Microsoft's job site, most of the openings they want to fill are in Sales. |
| Tue 04 Feb | Prakash S | yeah, it is tricky to get in, but they are hiring. |
| Wed 05 Feb | dmooney | Sounds like right now it is tricky to get in EVERYWHERE! 1200 resumes! |
| Wed 05 Feb | GK | I've been looking for an average C/C++ developer for some months now. Most of the people rate themselves 8/10 or 9/10 in C and C++. Before the actual interview I usually ask a couple of 'smoke questions' to determine the candidate's knowledge level.
1) int *p = 0; delete p; What's going to happen?
2) int *p = NULL; free(p); What's going to happen?
3) What's the difference between and ?
...
Maybe 10% of people get it right ... |
| Wed 05 Feb | Jeff | 1) & 2) If you have a standards conforming compiler, nothing happens (it's legal to pass 0/NULL to free/delete, they just don't do anything with them).
3) is basically with everything put in the std namespace.
If you job is in Chicago, I'd like to talk with you... |
| Wed 05 Feb | concerned | yeah GK, Null is basically defined as (void*)0, and it's okay to delete Null according to the standards.
Mind calling me for an interview GK? I am pretty much open to relocation anywhere. |
| Wed 05 Feb | mackinac | >>> I've been looking for an average C/C++ developer for some months now. <<<
It is hard to believe that you haven't found a single qualified applicant in several months. Even if you've eliminated 90% with your smoke test, that still leaves a large pool of applicants.
I would be interested in hearing what the size of your total applicant pool had been over those months and how it is that the number of acceptable applicants has been zero. |
| Wed 05 Feb | BS | I'm gonna raise the BS flag on GK. That 'test' does'nt appear to be a very 'defining' piece of material. |
| Wed 05 Feb | Dumas | I think most programmers are now getting offers for less than half what they use to make. In my case, doing boring work was great for alot of $$$ but for peanuts it's a deadend. I am in grad school and moving on along with alot of the smarter people. |
| Wed 05 Feb | GK | Hiring is not as trivial as it seems. When you’re looking for someone who is required to write independently solid code, little things matter. Yes, they do. We all know what happens if people have buffer overflows in their code. Main cause for buffer overflows – “I don’t have enough time to write another fancy if-statement, because nobody will ever pass me data which exceeds my current buffer size”.
Is person who doesn’t know what happens if you delete NULL-pointer a bad programmer? Definitely not. But if you have \emph{n} resumes and \emph{n} is not small number then you have to do some filtering on the data you have. Will this blow some good candidates away? Yes, it’ll. Will it make sure with higher probability that you won’t be wasting your interview time? IMO it’ll.
When it comes to the people who passed the initial screening. Can they explain what’s the difference between SEH and C++ SEH? Do they know when it’s appropriate to use binary tree and when not? Can they explain how to implement semaphore and can they code it? And so on.
Let’s take a sample interview question: “Implement a function which reverses the string.” Simple, right. Everyone can do this in 5 minutes, just two pointers, swap the characters and we’re done. But will the candidate ask: Are we dealing with ANSI or Unicode strings? What's the typical size for the string which will be passed to this function (maybe all strings will be four characters long)? Does the function have to be thread-safe? What should I do in case of invalid parameters: assert, raise an exception, log message somewhere? Etc. etc. And of course the real interview questions are more complicated and raise more unknowns which need to be clarified.
Yes, the bar is high. Bugs cost lots of money. I’m not even referring to differences in productivity between highly competent professional and not so competent person. DeMarco, McConnell, and other classics have written enough about why it’s important to hire good people. |
| Thu 06 Feb | Katie Lucas | Which does raise the question about why everyone is so interested in hiring cheap people.
Seriously -- I keep seeing roles I'm perfectly qualified for advertised week in and week out. They pay 3/4 to 1/2 of what I'm currently on.
I know other really top notch C++ developers. They're earning the same figure.
It's a market where hundreds of people send a CV for every job. And yet I turned up to several interviews and was the only person they saw who could do templates - and they said as much, but price was still their sticking point. They won't pay enough to get me to move.
They want the best, they get hundreds of CVs and still can't hire anyone and no-one thinks that price is still the issue: and it is. |
| Thu 06 Feb | David Clayworth | Jeff and 'concerned'
I think your answers to GK's questions are wrong. While it is fine to pass zero (or NULL) to delete, which will ignore it, I believe that 'free' will treat zero like any other pointer to memory that was not allocated with 'malloc'. The results will be undefined, but probably some sort of memory corruption. |
| Thu 06 Feb | Jeff | >>I believe that 'free' will treat zero like any other pointer to memory that was not allocated with 'malloc'.
Nope, Standard (i.e. ANSI) C allows you to pass NULL (or 0 - same thing) to free and it works 'correctly' with it - it doesn;t do anything.
There are several reasons the ANSI C groups did this. First, malloc(0) can return NULL, and it should be proper to do free(malloc()) - even when is zero.
Also, it makes it easier for the programming practice of setting a free()'d variable to NULL and then not having to worry about 'double frees' and you also don't have to put an 'if...NULL' guard at every free(). |
| Thu 06 Feb | mackinac | GK >>> Hiring is not as trivial as it seems. <<<
I have only a little experience with the hiring process from the employer side. It has never seemed trivial, but then never as complicated as it is for you.
>>> Will this blow some good candidates away? Yes, it’ll. Will it make sure with higher probability that you won’t be wasting your interview time? <<<
If it has taken you months and you still haven't found someone, it sounds like you are wasting time anyway.
>>> Yes, the bar is high. <<<
High? Wow, definitely. I have checked out the Construx web site, Steve McConnel;s company and find that I easily make their 95 percentile. But I won't even try at your company. Sounds like you are going for 99 percentile or better.
How many people of this caliber do you have working for you now and how did you get them? |
| Thu 06 Feb | David Clayworth | Jeff
Going to concede to you on that one. I thought the standard said results were undefined. I checked several reference sites: some (e.g. Novell ) said that passing NULL would have no effect, others (e.g. ACM ) said only that a value not previously allocated would cause undefined results. I can imagine ignoring NULL would be a sensible improvement that most library writers would make, and if the standard says the results are undefined, that would still be standard conforming. Since I don't actually have a copy of the standard I don't know any more. |
| Thu 06 Feb | Jeff | >>...a value not previously allocated would cause undefined results
Yep, freeing any random integer *would* cause undefined results. NULL is a special case - according to the ANSI standard (for both C & C++), malloc/new cannot allocate an actual memory block starting at 0 (since NULL == 0).
The standard does guarantee that freeing/deleting NULL is a valid/defined operation. |
| Thu 06 Feb | The Anti-Bella | 1) int *p = 0; delete p; What's going to happen?
2) int *p = NULL; free(p); What's going to happen?
3) What's the difference between and ?
This is idiotic stuff. Read the Joel article on hiring. Buy a clue. Stop embarrassing yourself.
Geeze. |
| Sat 08 Feb | William C | I've been working, after I graduated, since July 1999 (3 1/2 years). The last 2 years I've been using C++ in a Windows environment, Embedded C++ in a PocketPC environment. For one project I used C++ in a Palm environment, one other project the main language was Visual Basic in a Windows/Tablet PC environment.
I would consider myself a pretty good programmer. My friend/co-worker has referred to me as a programmer that writes 'bug free code'. I think that I'm a good programmer because I am very, very good at debugging (one of the more importan skill IMHO) and I'm very meticulous. VERY meticulous when I code. I can't repeat that enough. That's why I feel I have a low ratio of bugs-to-code written.
Now that being said...
maybe I don't know enough details of the position that GK is hiring for, but I saw this question he asks:
'3) What's the difference between and '
and all I can say to myself is ... I have never used or heard of . Even though I use C++ pretty much every day. But I'm also in a Windows Environment. Also, am I even using often (I've heard/used this one before)? I'm sure in some of the MFC libraries that I use, that file is declared and used, but those details are hidden from me. Most of the time I'm using some MFC abstraction.
That's why interviews like this, where there is some pre-conceived notion that every single C++ programmer has used something like scare the poo out of me. :) But does that make me a bad programmer? How long would it take me to use and understand ? Not long. It's just another library. You look up the functions in that file and figure out how to use them.
I think about how I've interviewed candidates in the past, and I think about how this guy is interviewing people, and I wonder if it would be better for an interview to have more of:
a) code that's already sitting there on a computer that the interview candidate must debug.
or
b) questions like 1,2,3 that could be easily looked up in a 5 minute googling experience.
I might not know something off the top of my head ... well, I knew that you could free/delete NULL ... but sometimes I'm un-sure or maybe not even un-sure, it's just that I'm so meticulous that I double-check while coding (I'm always double-checking until something is fully committed -- you know, 6 months might pass before I try to free/delete NULL again). And I think that's what is important!!!
Maybe I don't know it off the top of my head, but while I am coding, I look these things up. If I know that NULL could possibly get free'd/deleted while writing a function or something, I'm going to go to google and look up what happens if I do something like this. It seems to me that most interview sessions don't test for the fact that I would look this stuff up. How can one test - or as a candidate, how can one show that maybe if I didn't know it off the top of my head OR was 'un-sure', I still would have looked this up and I wouldn't introduce dumb bugs into the code.
This is where maybe pre-written code that the candidate has to debug comes into play. Leave me alone in a room for an hour and let me go to town on some code (just make sure I have access to google!)
==
Later GK brings up this, '“Implement a function which reverses the string.” Simple, right....' And then gets into a long explanation of what he's really looking for. See, the thing is, I've asked questions similar to this. And what I was looking for was to see if they WOULD use two pointers. That was what I was looking for! You know, some people will come in, declare another array, and use this temp array to reverse the string.
So if I was ever asked this question on an interview, until today when I read what GK was looking for, I would have been trying to show you that yes...I do know how to use pointers. Because being on the other side of it, that's what I was looking for. I guess it was dumb to assume things or not 'think outside the box' or something...but I don't know, I've only interviewed at so many places in my life.
The thing that kills me is...as shown by some of the projects I worked on...I do know what a Unicode string is (all strings in PocketPC code are unicode)...and I know there is a difference between that and an ANSI string. Of course, it's not often (because of the environment) that I have to reverse these strings myself. Usually I just need to make sure that I put _T(' ... ') around my strings! So maybe I have to do a quick google search about unicode strings before implementing the reverse string. But I would have thought about that!
I've written thread-safe code ... but then again, I was also using MFC stuff like CSingleLock. So maybe in a C environment I'd have to refresh my memory on some things...but I would do the refreshing. And I would understand it, quickly.
Other stuff mentioned by GK:
1) SEH and C++ SEH. -- See I must not be using 'real' C++ or something (I'm joking here)...but I've never heard of SEH or C++ SEH. And I've been using C++ the past 2 years. Can someone tell me what I'm doing wrong here!? :)
2) Do they know when it’s appropriate to use binary tree and when not? -- Last time I used a binary tree was in college. 4 years ago. It might be a little foggy in my brain, but I can understand this stuff, I can refresh my memory, and get back to using binary trees again.
3) Can they explain how to implement semaphore and can they code it? -- Again, last time I used a semapore was in college.
Obviously if this guy is looking for a senior developer, I suppose he/she should know this stuff off the top of his head. But if he was hiring someone where the requirements were 2+ years of C++ ... a more jr. developer ... I think he'd make me poo myself with the questions he asked! :)
I don't know, the point I'm making is I could easily pick up the stuff he mentioned that I was unfamiliar with or I could easily refresh my memory on any of the topics that were foggy to me in an hour or two of googling.
Also throw in the fact that I would be a jr. developer under the guindance of sr. people (I don't think I'd need to bug them much because I can seek out info on google)
Also, there is the fact that everybody when they first start a job needs a few months of figuring out the companies proprietary code. So I just feel if I was looking at other code for a few months (what every new employee has to do), you pick up on how people are using things, or what they are using, etc. And by the time you learn what the company is doing ... you learn how to use the languages in the same way the company is using it.
This is why I think debugging is more important and this quality doesn't really get brought out of a person during an interview.
Of course...I could also be totally babbling and completely wrong! :) |
|
| A Design problem | Wed 29 Jan | Gwyn |
| Hi, wondered if any of you smart fellows out there might have an idea of how I should/could design a component of my n-tier system.
This part of the system works such that a user supplies some data and one or more files to a client application.
The client application calls a stateless middle-tier server component (think DCOM or .NET remoting single-call objects) and this component validates the data the user supplied, stores the data on a database and stores the file(s) supplied in the servers file structure.
I want to make this operation as atomic as possible (although I accept that storing the files will be outside of the main database transaction - unless someone knows how to tie these together in a Window environment).
What concerns me more is how to time the actions; I can foresee a problem where if the data and file(s) are initially sent across the network (relatively slow operation for larger files) and then the data fails validation then weve just sent a load of data across the network for no good reason (and will have to redo it all again).
An alternative? Send the data only, the server creates a transaction, validates, updates and prior to commit drags the file(s) across. Well this is going to cause poor performance if the transactions do not time out in the meantime.
Another alternative? Send the data, the server validates the data. If successful then were 99.something% likely to succeed so we send the data again but with the file(s) this time. The server starts a transaction, validates and updates the data, and somehow commits both the file updates and the database changes together.
This last alternative seems the most sensible method but involves two calls, one as a dummy run which any performance conscious designer would want to avoid.
Anyone seen this before or got any ideas?
For a parallel system think Continuus/CM Synergy or PVCS Dimensions. These both have to synchronise the uploading and storage of meta-data and files.
The development language is Windows .NET although this should have no impact on the solution.
Thanks in advance |
| Wed 05 Feb | Brian Hall | You haven't said exactly what you mean by 'validation', so I don't know if anything could be done on the client side or not as an added safety measure (not as a replacement for what the server does).
Here's how I would do it:
Client receives user information, then validates the data and the files as much as it can. Insures it's in the proper format, the file isn't broken, etc, as much as it can.
THIS STEP MAY NOT BE NECCESSSARY FOR YOU: The client then sends the client data only to the server, assuming this isn't sufficiently resource intensive to cause a problem, and the server validates it and sends back an OK or an error to the client. This step can fail or be removed, because it is only a safety measure to avoid wasted resources in transferring files.
The client then sends both the file AND THE DATA at the same time to the server, and the server validates everything (both data and file) and then stores them (if you 'check then save, check then save' that allows for there needing to possibly be some clean-up, which is usually BAD, depending upon how the rest of your system is designed - the system can be designed to where this just doesn't matter).
Then it sends back an OK to the client, and you are all done.
The key here is that all that is being done that is not absolutely neccessary (redundant - note that redundancy is not neccessarily bad, which is why humans have two kidneys and an oversized regenerating liver by default) is to minimize the chance of files being transfered wastefully or data/files being stored improperly or unneccessarily.
And all this without sacrifing any degree of security.
This is the best way I can imagine of handling this, without knowing the nitty gritty details about what exactly the data and files are, what they are being validated for, or how the rest of the system accesses the database.
It is also only 1 step beyond The Simplest That Could Possibly work, and it's just a very simple to do optimization which takes little time and is not likely to harm the system.
I think this does what you are wanting to do. Hope this is helpful, and good luck :) |
| Sat 08 Feb | Gwyn | Thanks guys |
|
| What Happened to Delphi Questions??? | Fri 07 Feb | Cletus |
| What Happened to Delphi Questions???
Did it get moved? Or was it removed for lack of traffic? |
| Fri 07 Feb | Bored Bystander | It looked to be absolutely dead when I checked it a few weeks ago. |
| Fri 07 Feb | Joel Spolsky | Removed for lack of traffic.
Although .NET questions seems to be alive and kicking |
| Fri 07 Feb | apw | I think that the topic's age killed off the Delphi group. There was at least 7 to 10 topics on there but they slowly disappeared due to age. Maybe the criteria should be remove topics when (topic age > some age AND # of topics > then max topics displayed) |
|
| And who would think that we would stand still | Fri 07 Feb | Simon Lucy |
| In the process of sifting through the collected detritus of the past 15-20 years (for the on off story see http://thesliver.livejournal.com ), I came across an old printed conference book from a DR Dobbs conference in London about 12 years ago.
One segment was on remuneration within the IT industry, trends and so on.
The levels of pay for senior developers, project managers and similar were almost exactly the same, if not a little higher, as they are now. The one difference is that directors seem to get paid more (OTE probably) now. |
| Fri 07 Feb | Joel Spolsky | in real dollars or nominal dollars? |
| Fri 07 Feb | Simon Lucy | Actually the same numbers in sterling, so actually a fall in real values given inflation. |
|
| T1 line is outdated!!!! | Thu 06 Feb | Gregg Tavares |
| Its funny to me, a T1 like is considered the ultimate connection in America. Wow 1.5meg! You go to most video sites and they ask you Modem?/DSL-Cable/T1?
Well, here in Japan DSL is $25 a month and its 12MEGABIT! or 8 times faster than T1. In Korea they are upto 24megabit DSL for the same price. The biggest DSL provider in Japan is Yahoo. http://bbpromo.yahoo.co.jp/
Yahoo is so agressive they stand around on the streets in front and around the busiest train/subway stations and eletronics stores and hand out FREE DSL MODEMS with 2 months of free service just to try them out.
100Megabit Fiber is available in 80% of the country for just $50 a month from about 6 different companies including NTT (the AT&T of Japan)
I write this hoping that the people in America will wake up and demand better access. I feel like Ameicans dont understand that they are getting substandard service. Especially when I keep hearing references to T1 lines for $1000 a month.
I fear that if America stays stuck at only a few percent *broadband* that in a few years, countries like Japan and Korea where the current generation of kids will grow up in an entirely broadband world are going to really understand the new world far better than their American counterparts. |
| Thu 06 Feb | Bored Bystander | Remember that many superior mathematicians and physicists came out of the old Soviet Union, and one cause of this was the lack of modern computer equipment in the USSR. Sic: the lack of modern infrastructure didn't prevent the most brilliant minds from developing, instead, the emphasis on 'hand' computing w/o calculators apparently encouraged the development of very strong technical minds.
On the other hand, it sounded like I just argued that we should abolish Pentiums and hand out Commodore-64s to our programmers. :-) But the bottom line is, I wouldn't worry about this 'limiting' the development of new talent.
I guess this broadband disparity is evidence of several facts: the US is geographically much larger and much less densely populated than the countries that have cheap and universal broadband, which inhibits the development of 'last mile' connections; and the US has many telecommunications industry players and therefore our communications networks are much more heterogenous. Probably the same factors that cause other countries' wireless phone networks to be functionally superior and cheaper are at play here.
Besides - compare the *overall* cost of living in Japan with that in the US. Probably one could have their own T-1 line here in the US (even at prevailing tariffs) and *still* come out ahead of their counterpart in Japan ... life isn't just cheap DSL. |
| Thu 06 Feb | braid_ged | In the USA telecomunications evolves as the dozens of big players introduce new technology and try and steal customers from each other.
Competition, the way it is supposed to be.
Take a look at Australia, the way our telecommunications and technology infrastructure evolves is that a government commitee/minister has a chat with the 3 or 4 big vested interests who convince him that what benefits them is what's needed.
Richard Alston our communications minister was quoted last year as claiming that broadband access was mainly porn driven :
--------------------------------------------------------------------------
SENATOR RICHARD ALSTON: Well for example, people will tell you that pornography is one of the major reasons why there's been a high take-up rate in South Korea. I haven't confirmed that at first instance but I've been there, I've looked at what's happening. My scepticism has really been about whether there is any compelling national interest in the Government spending money on subsidising roll-outs to consumers. Because at the moment it's pretty much more of same but a bit faster for most consumers.
--------------------------------------------------------------------------
http://whirlpool.net.au/article.cfm/956?show=replies
--------------------------------------------------------------------------
Before anyone starts feeling bad about the raw deal in the US of A imagine what it's like living in a mining and tourism subsidized nation where the normal laws of supply, competition and capitalism don't apply.
There is one big customer, who happens to be the regulator, who happens to be the legislator and who has no real technical understanding at all of anything, ever.
Innovation in Australia means waiting until a few competiting technologies have been tried in America for a few years and then picking one.
Literally, you can see ministers on television announcing the adoption of some new standard, pretending it's innovation when in fact all they did was 'choose' something.
Anyway, rant over.
Braid_ged. |
| Fri 07 Feb | Albert D. Kallal | Well, as mentioned, for $26 us, I am getting about a 6mbit line.
700kB/sec = 6mbit.
However, I don't think what I get is the norm!
However, your point is well taken. I would have to say that the high speed adoption of net in the USA is still very high compared to most places.
I have heard that Europe lags I this regards. However, I can’t really say for sure. This is just a guess off the top of my head.
Just about everyone I know now uses high speed net, and it is reasonability priced.
Most homes with any kids and a few computers now has high speed net and a hub (those hubs are well under 100$ right now). Europe has not yet jumped on the high speed net to such a large degree.
On the other hand, some places are getting much higher speeds when you talk about high speed net.
The general home ADSL in my town is rated up to 1.5 mbits.
That means you see max down load speeds of about 175kb/s
With my high speed cable, I see in general about 600kb/s and that is a good 5 mbits. Some get up to 850kb/s
With some cities adopting newer equipment, I expect to see higher rates yet. I suspect that the adoption rate is the USA for high speed is still higher then most Counties right now. However, the average high speed net in the USA may not be as “fast” as some other countries.
I would still guess that the USA leads in terms of adoption rates for high speed. Both total, and as a %.
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
| Fri 07 Feb | Nick | Population density is one of the key differences between telecommunications in Japan / Korea and the US. Ther high densities allow them to implement these systems very cost-effectively. |
| Fri 07 Feb | | 'I write this hoping that the people in America will wake up and demand better access.'
Then why not write it somewhere more appropriate, like discuss.fogcreek.us or something. |
| Fri 07 Feb | Nice | Korea and Japan, as outlined, have very good access. And they have really invested on it.
The US is a hotch-potch of competition, rather like their mobile phones. Ah well.
Over here in Europe, good internet is easy and cheap in the cities. Except maybe for Britian, which just isn't investing in it.
Here is Sweden modern housing often has 10baseT jacks in every flat. My connection is so fast, I don't even need to measure it. For $20 a month too. Maybe I'm lucky. I just take it for granted ;-) |
| Fri 07 Feb | Daniel Earwicker | Britain is mostly pretty backward when it comes to this stuff but $1000 for 1.5MB is ridiculous.
For about $60 a month I can get 1MB from the company that provides my cable TV. |
| Fri 07 Feb | Gwyn | I live in a semi-rural area in South East England. About 5 miles from a large town and 50 miles from London
The best connection I am offered (without leasing a line) is a 56K dialup (connects at 48K) which is more than $20 a month and cuts me off religiously every 2 hours.
ADSL (500K up, 128K down - but with contention means potentially a lot lower) is not available in a large chunk of the UK and without legislation will not become available as the incumbent BT will not convert exchanges if it is not deemed economically viable for them to do so.
Thing is I don't really have a need for speed at the moment apart from the occasional software download but at this point it becomes an extreme annoyance.
I can foresee a time in the future when house prices are affected by the availability of broadband! |
| Fri 07 Feb | Joel Spolsky | To some extent you're comparing apples (home, consumer bandwidth) and oranges (office connectivity). The home services are priced assuming one family clicking on the web a bit for an hour every night. The office services are priced based on hosting websites and email servers, and with an office full of people all surfing from 9 to 5.
The usual way this is enforced is that DSL and Cable lines only give you one IP address and even that is dynamically assigned, in part to keep you from running web servers and the like which require a fixed IP address.
That said, we'll probably switch to business DSL for our new office, which will be a lot less than a T1, I think around $250/month for the office with a handful of static IP addresses. It's still a better deal than a T1, but I wouldn't do it if we didn't have our important servers in a 100%-uptime facility. |
| Fri 07 Feb | Marc | Its even less than $250 these days. I've seen 1.5mb for $199 (with a two year comit). |
| Fri 07 Feb | tapiwa | Joel
Direct question - do you moderate these boards? If so, what criteria? Moving on ....
I have a post from yesterday mysteriously disappeared. Maybe the moderator thought my claims for the charges by Colt Telecom http://www.colt-telecom.co.uk for broadband were too outrageous to be true.
Still, I have posted a copy of the December invoice
http://www.tapiwa.com/images/colt.jpg . I have erase blacked out a couple of identifying details, but as you will see for yourself, the invoice, for a 2meg pipe, for one month is £1 166.67 or £14k per annum.
That works out to about us$1900 per month! |
| Fri 07 Feb | Mike McNertney | I think some people may be a bit confused here. In most reasonbly sized cities in the US, you can get a pretty fast connection (500K-1Mb+) for $50/month or less. The main limiting factor here is geography, the US is just spread out far more than countries like Japan and Korea, and technology like DSL only provides high speed access over a short range (plus, laying the infrastructure to support it is pretty expensive, I imagine).
What Joel is talking about is high reliability commercial connections, which as you can see they charge through the roof for. My cable internet access is plenty fast, fast enough that I don't bother to measure, but I would never think to use it in a high reliability situation because it just isn't good enough for that.
Anyway, in summary reasonably fast broadband access is available for pretty low prices in the US, mostly limited by geography. High reliability business connections are considerably more expensive |
|
| Steps leading to software release | Thu 06 Feb | Tyson Haverkort |
| Howdy,
So you have done all your development. Your code is tucked away nicely in CVS. My question is what are the best steps to take with regards to releasing? Should one implement a code freeze and halt all new development? Should one split the crew into new development vs bug fixes, or should all developers be spending half their time on bug fixes? What milestones would you set? How do you deal with the extra testing thats required to make sure that there are absolutely no holes?
Thanks,
Tyson |
| Thu 06 Feb | Michael H. Pryor | Whatever you do, document every step you take so if you have to do it again, you remember all the little things you need to do (like updating version numbers, copying files, etc). |
| Thu 06 Feb | Mark Bessey | A popular model around here is:
1. When you get close to the end of the development cycle (feature complete, no major bugs), you create a branch in CVS for the 'release'. As soon as that branch is created, only approved changes are allowed on it (fixes for bugs that need to be fixed for that release).
2. While those last few bugs are being fixed (and testing is being completed), developers with no more work to do for this release go back to working on the main branch, developing features for the next version.
3. When the software on the release branch is ready, you tag it with an obvious tag, then build it, and go through your final candidate testing.
4. After the software has been released to customers, do a merge of any bug fixes from the release branch onto the main branch.
(repeat as necessary)
As far as who should work on bug fixes versus next version features, try to have everybody contribute to both.
Take the effort to automate as much testing as you possibly can, it makes the release process much less stressful.
A previous poster mentioned documenting everything you need to do for the release (setting the version number, etc). I'd go one step farther than that - make sure that your daily builds go through all these steps automatically, including setting the version number to something different for each build.
Right now, I can look at any output file from any build I've done in the past 6 months and tell you exactly what tag in CVS was used to build that software. That makes tracking down regression bugs much easier.
-Mark |
| Thu 06 Feb | Nat Ersoz | Nice description Mark... |
| Thu 06 Feb | robert | Sorry to rain on your parade, but this is an absolutely silly question.
Is this an MP3 player you're writing for your girlfriend or the control system for a manned space vehicle?
There's no reasonable general answer to your question.
'It totally depends.' |
| Thu 06 Feb | Tyson Haverkort | >>Sorry to rain on your parade, but this is an absolutely silly >>question.
And I am humbled by your profound answer.
Thanks Mark, that was pretty much what I was looking for. This is also the model we've followed. I found the merge process a little painful due to the fact that the majority of developers were on the main branch writing new code during the code freeze. I was looking for some ideas on how to make the next release less painful. Maybe the trick is to keep the time between the code freeze and the release as short as possible (at the expense of new development)?
By the way, it's actually a MP3 player for a manned space vehicle. |
| Fri 07 Feb | Simon Lucy | Personally I look forward to MP3 players for robot space vehicles. With skinnable UI of course. |
| Fri 07 Feb | Better Than Being Unemployed | I think Mark has made some good points that can still be applied to your knocked-off-in-the-afternoon MP3 player, albeit on a much lower scale.
Suppose you knock off version 1. Great. Then Girlfriend complains cause she can't do playlists. Hmmm, better go fix that. Then Girlfriend finds a bug which stops large files from playing properly. Oops. Better retrofit that in ... except you're halfway through doing the playlist feature and the retrofit's a complete nightmare.
So there you go. Still possible to screw up on a one man team doing a low quality project. |
|
| Hosting web-site on dial-up? | Thu 06 Feb | Dumb as a Rock |
| I live out in the country. Where the best connection I get is 38.4k.
Is it possible for me to host a website on a server at my home? I dont think my web-site would have an abundance of hits so I think it might be feasible. How would that work since my IP changes everytime I connect to the net. Also how would I go about obtaining a web address (www.something.com) and how would that get referred to my sight. Please excuse my ignorance, I am not up to speed on this stuff. If someone could explain or offer any help that would be appreciated. |
| Thu 06 Feb | Prakash S | 'How would that work since my IP changes everytime I connect to the net. '
I don't think you need a static IP to host a website, not sure though.
'Also how would I go about obtaining a 'web address' (www.something.com) '
http://www.networksolutions.com/
http://www.netandhost.com/
& many more |
| Thu 06 Feb | Jeff | There are so many cheap web-hosting services out there that, IMHO, it doesn't make sense to try to do this on a dial up (or even most DSL/Cable lines). I started with a $5/month host but moved to a $7.77/month host because I needed more disk space.
Actually, one of the main reasons I started with the first web host was to get my own domain so I wouldn't have to worry about changing my email address when I changed ISPs... |
| Thu 06 Feb | Jeff | >>I don't think you need a static IP to host a website, not sure though.
No, but you do if you want your domain name to connect to it...
OTOH, there is http://dyndns.org/ which allows you to host servers on dynamic IP's (via redirection). |
| Thu 06 Feb | Prakash S | 'OTOH, there is http://dyndns.org/ which allows you to host servers on dynamic IP's (via redirection). '
- i was thinking on those lines, thanks jeff. |
| Thu 06 Feb | Devil's Advocate | Dont do 'home-hosting' on a 38.4k line. Your potential clients/visitors are going to be madder than bees. Check out 'colo' as Joel reffered to it if you are going to have anyting more intresting than your vaccation photos online. |
| Thu 06 Feb | Li-fan Chen | http://dyndns.org/ as mentioned before. At that site you will registered for a domain such as: http://sonyisexpensive.dyndns.org.. and download a software tool for your computer.
Whenever you log on to your computer PPP will assign you a dynamic IP address, the tool downloaded from dyndns.org will inform dyndns that they need to tell the world that everyone who wants to go to http://sonyisexpensive.dyndns.org will have to try your needly assigned ip addresses or they will get no where. From then on your only responsibility is to ensure you are connected all the time to the net over the PPP connection.
You can access the web server you install on the same computer you are running the webbrowser by accessing the hostname of 'localhost'. This should automatically work for Windows 2000 and better or most UNIX-like operating systems.
The book, 'Learning TCP/IP', from 'O'Reilly and Associates' can help you explain a lot of background info behind these ideas.
I don't think anyone here would seriously advice you to keep using a time-outable PPP connection for web serving, but there are some freaks here. If you insist on using this technique, try to download a shareware tool that will somehow keep your connection up or redial upon hang-ups. |
| Thu 06 Feb | Li-fan Chen | Your best bet is to spend USD$10-50/monthly for a Unix or Windows 2000 web account where you get at least 50 megs of storage with the possibility of using MySQL or SQL Server. These services are much more available and makes developing these webpages easier. You might as well do this because 38.4k baud will be swamped and you can't use the connection for surfing. That effectively means you either 1) buy another modem/phone line/isp account just to surf because your webserver is swapped on the other connection or 2) use a web hosting service to avoid the whole problem and enjoy T1 or more serving speeds (128Kbps to potentially 1024Kbps for free) |
| Thu 06 Feb | mike wright | There are also some free hosts, such as http://www.freeservers.com
only cost is a small banner ad, pretty innoffensive. |
| Thu 06 Feb | Don Wallace | There are web hosts that claim that they will host content under your own domain for under $10/mo - some for $5/month. Many hosts offer a lower rate if you prepay for 1 year in advance.
At this price level you probably won't get CGI or shell access, but at least your site would be up 100% of the time.
Aside from the quality of service that you'll (not) see with a dial up and a computer that must always be on and connected to the net, the $5/mo is probably less than the electricity that an always-on box would consume. |
| Thu 06 Feb | Jeff | >>At this price level you probably won't get CGI or shell access, but at least your site would be up 100% of the time.
Actually, my first host (the $5/mo one) offers great service and shell access via SSH and full CGI. 50Mb storage, 6Gb transfer/month and a whole bunch of email accounts.
My current host ($7.77/mo) has great service and full CGI access, but no shell (which isn't a big deal). 500Mb storage, 30Gb/mo transfer and 250 email account.
At this price, you should know what you're doing - the hosting company can't afford to hold your hand as you learn how to put a site together. |
| Thu 06 Feb | Tyler Soltis | I use http://dynamicdns.constanttime.com
Pretty good service and fast updates. An issue with a lot of these providers is what they set their TTL's to. I also got my domain name from them. |
| Thu 06 Feb | pb | Don't even think about hosting your site at home through dial-up. It would cost you more than getting a cheap host because your telephone line would be tied up 24/7. Just get free or cheap hosting from someone like freeservers.com or hypermart.net. |
| Thu 06 Feb | Just another dude | http://www.connecticut-web.com/unix.shtml has accounts starting at $12 A YEAR ... full CGI, PHP, database, etc.
Only 10MB, but unless you are image heavy that can go surprisingly far.
I have used them for a couple of accounts for over a year now and no complaints whatsoever (and am not affiliated in any other way). |
| Thu 06 Feb | GiorgioG | http://www.5dollarhosting.com/
These guys are ok...and obviously super-cheap. |
| Thu 06 Feb | Dumb as a Rock | Ok. Let me see if I got this straight.
1. I have to buy the rights to a domain name for a certain period of time.
2. The folks I buy these rights from will enter this domain name in a DNS database.
3. This DNS database then associates my domain name with an IP Address.
4. Some of the folks that sell certain domain name rights also have a system whereby they can dynamically change the IP address that is associated with the domain name that I chose. This allows for hosting a website on a PPP connection in which my IP address changes everytime I connect.
Do any of these online web-hosting places offer facilities where i can run things like ASP, VBScript, Windows type stuff or are they all UNIX PHP, MySql, CGI type deals? |
| Thu 06 Feb | Jeffrey MacDonald | www.brinkster.com offers free web hostingand allows ASP (VB- or JScript) , ASP.Net, and even the ability to hit Access databases from the site. Their free service gives you a domain (something like xyz.brinkster30.com).
I think you need to use their pay service to point your own domain to them, but that gives you 25 email accounts, SQL Server, a library of COM components (not too many, but a few) and some .Net Asseblies. A premium account is $15 or $17 a month. |
| Fri 07 Feb | Li-fan Chen | In response to: 'Do any of these online web-hosting places offer facilities where i can run things like ASP, VBScript, Windows type stuff or are they all UNIX PHP, MySql, CGI type deals?'
There are plenty of both kinds. Most online webhosts tend to charge a slight more for a Microsoft-technology friendly account. Because serving your webpages using Windows 2000 boxes results in server licensing fees they must pay for the entire web hosting operation. I don't think you have to pay double, just maybe 20% to 30% more for the same capabilities. Anyone can recommend a few good ones? |
| Fri 07 Feb | Nathan | i've never had a problem with http://adaptive.net/pricing.asp - i've used them for a number of small websites i've created for clients. a buddy of mine is a reseller for these guys, and gets an amazing deal on sites. if you're interested in this, send me an email. i'll send you more information. |
| Fri 07 Feb | Bored Bystander | 'Dumb as a rock' needs more fundamental help than being pointed at a plethora of inexpensive web hosts. Look at his last reply.
Does anyone have a link to a decent beginner's overview of how domain registration, DNS, and web hosts fit together? I don't have the time to write something up and I figure that someone's already done better than I could. |
| Fri 07 Feb | Geo | Try these
http://www.helpwithhosting.com/beginners_guide/
http://www.hostsearch.com/article14.asp
http://www.hostindex.com/guide2.shtm
http://www.createafreewebsite.net/web_hosting.html
from Google |
| Fri 07 Feb | Geo | Google link
http://www.google.ca/search?hl=en&ie=UTF-8&oe=UTF-8&q=beginner%27s+guide+domain+registration+web+hosting&btnG=Google+Search&meta= |
|
| The importance of rest in productivity... | Thu 06 Feb | Crimson |
| How important do you find getting a good 8 hours of sleep a night for your productivity? Ive started concientously (I wonder how bad I srewed that word up) tracking this and Ive noticed a drammatic effect. Suprise, suprise, right?
Well while I wasnt suprised by a drop in my ability to think clearly and thus be productive, I was suprised by how sharp the dropoff was. For example, we all have to do boring sub-tasks in software projects that no one wants to do, even for the really cool projects that you are excited about. IMO, its your ability to drag through these menial yet important tasks that have a profound effect on your bottom line productivity (ie, spending all your time on all the cool stuff vs spending time on stuff that needs to get done).
I find when my mind is tired, my productivity probably falls by orders of magnitude when Im working on that fun string manipulation function, while the drop is much less significant when Im laying out user interfaces (depending on how tired I am). Enough babbling from me. Anyone else thought about deeper connections between rest vs productivity in the programming industry or how hours of sleep per night affect you? |
| Thu 06 Feb | Forest Chump | I notice that I'm productive and my mind spits out the code in a continuous flow of 1's and 0's if the task is something that I am interested in. I mean sometimes I have to literally pry myself away from the computer. I really want to see that function or program or whatever I'm on working on work.
OTOH if the task is monotonous and boring, then I tend to take frequent breaks and help co-workers or have a snack or chat about programming or whatever.
If you are referring to sleep... well in the military I was told 'Sleep when dead.' I don't think that applies here though as I always feel better and am more productive no matter the task when I get a good nights sleep. |
| Thu 06 Feb | Li-fan Chen | Well first I only get stressed out if there's too much work. And most time-consuming work can be optimized to a certain reasonable degree. So with those things you can't do a thing about they stay boring and it's hard to stay awake paying attention to repetitive and dumb tasks. I don't think this is a problem with just our industry. All we can do is minimize it to the extent possible and always keep an eye out for improvements.
I personally have periods where I can't concentrate. A little after lunch I get knocked out and it's hard to do even interesting things. I usually give up and take a 15 minute nap break in the sitting position or at least go walk around a bit and come back. I have tried staying at the station despite the 'low period' but find it only drags on for two hours without fail. More often than not I really need that 2 hours of clarity to get the day's work done so I opt to take the nap route usually. At first I never knew I could take short naps (when I was a kid I would take naps that last through out the afternoon), but when you have projects waiting and meetings waiting your responsible side of the brain learns to wake your body up after a reasonable period of rest. For me that reasonable period is 12 minutes to 17 minutes. I still use a watch or tiny clock just in case.
Regarding naps: In general Americans and Canadians don't have a habit of taking work naps, or hide it out of shame--the Europeans and the Asians companies recognizes the importance of naps and actually build nap rooms for their customers and employees. For example when I was in Taiwan and visiting Hong Kong last year I find people resting with those airline neck pillows during lunch. No noise will wake them at all! They just really needed that short break. All these guys with neck pillows sitting in their chairs sure look funny, but in Asia apparantly its the norm.
I don't take naps everyday, but after a big meal or after a particularly boring day I find it quite refreshing, and the cost of 15 minutes is minimal when it gives me back so much clarity. You never know what your right brain wants to tell you in that 15 minutes! :-D
-- David |
| Thu 06 Feb | Li-fan Chen | When I don't get enough sleep over an unhealthy length of time it usually results in chronic insomnia. It's usually really hard to cure--not to mention painful or at least very unpleasant.
Napping during the day won't help. According to some sleep experts (I am trying to remember this hehe) long naps will make the effects of insomnia somewhat bearable but in the end it will only make it even worst--especially long naps that strives to replace hours of missing sleep.
All of us are working longer hours for less pay so I don't really know if anyone has any tricks to this. How do you guys sleep well with so much over-time and worries about life?
-- David |
| Thu 06 Feb | programmer | I used to be someone who hated going to bed. I always wanted to stay up late to read, to write, or to watch TV.
I'd stay up until 1 a.m. when I needed to get up at 7 a.m. Since I wouldn't get to sleep until 1:20 a.m. or so, I would be getting less than 6 hours of sleep. I can 'make it' on that amount of sleep for an indefinite period, but it's not fun. I wear out in the afternoons, and when I go home I am dead. All I want to do is sit on the sofa. (However, even if I am very tired, going to the gym always perks me up.)
Now, I have taken on another part-time job, on top of my 40-hour week as an analyst. I have started going to bed earlier, getting 8 hours of sleep.
I love it. I feel much more rested and energetic throughout the day. |
| Thu 06 Feb | Heston Holtmann | I can corroborate your non-scientific findings with my own self-actualizing observations.
If I occasionally (1 or 2 consecutive days) drop below or deviate from my normal average pattern of 7 hours of sleep between 12am to 7am then I am ok; independent of the type of work details I’m doing.
However, if I start to get less then 6 hours of continuous sleep night-after-night or even if I start deviating from my regular sleep time-zone (between 11pm and 8am) then my concentration, work-quality, work-interest, and more importantly general mood starts to degrade dramatically.
The observation that I find most interesting is that my overall mood _seems_ to be a significant factor over every other observed independent variable. My overall _like_ or _dislike_ for the domain of work also _appears_
Being married to a clinical-psychologist does appear to influence the observation-feed-back-loop that makes a difference on what I tend to observe. Or could it just be that I’m deluding myself with all the cool-psycho-babble-info written in the DSM-IV???
I better stop here otherwise I might create a self-actualized paradox and observer myself out of existence! |
| Thu 06 Feb | Crimson | Heston:
Your post describes me to a tee. I have the exact same reactions to that pattern, which I guess shouldn't be a huge suprise as I suspect many people do.
What IS a suprise is that basic rest has never been brought up as a contributing factor in productivity of software engineers. Maybe it's one of those things that's too obvious to be worth mentioning. I dunno. I think a study that correlates productivity (however you measure that) to amount of rest in the software industry could yield some interesting answers. Perhaps part of that order-of-magnitude difference in productivity between OK programmers and so-called super-stars can be explained by something as simple as getting your zzz's?
This seems like such an obvious thing to me and as far as I know, none of the big honchos like Brooks et. al. have ever mentioned something as simple as this in increasing productivity. |
| Thu 06 Feb | T. Norman | Rest -- both in terms of sleep, and time away from work, does make a big difference. If you don't naturally wake up out of bed in the morning (ie you need an alarm clock to wake up), you aren't getting the sleep your body mind and needs. The alarm clock should only be there as a safety measure -- if you get enough sleep, you'll usually wake up before it goes off.
There are times when I've spent hours beating my brain on something, only to come in the next day and solve it with 2 minutes of thought. Sleep and time away from work are very important to productivity.
Study after study has shown that you can't get more than 40-45 net productive hours per week from a programmer on a sustained basis. Progress can be made with 60-80 hour weeks for short bursts like 2-3 weeks, but after that the net productivity tumbles - you make more mistakes and spend time correcting those mistakes, and your ability to come up with simple and elegant solutions is diminished, to the extent that you're netting less than 30 hours. I am lucky to work for a company that finally realizes this. In the mid-90s (before I joined them) they had a zillion dollar project that ran for about 3 years with 60-80 hour weeks as a rule. The code was a mess that took nearly a year to stabilize after its initial release, and they lost many good employees. Recently they completed another large project, in the same language, with 40 hour weeks most of the time, building more functionality in less time with better quality and fewer people. |
| Fri 07 Feb | Chris Winters | Crimson wrote:
<>
Actually, one of the tenets of XP is the 40-hour work week. While this doesn't address sleep directly -- they don't mandate 40 hours of sleeping during the work week :-) -- it does place strong importance on being fresh and not burning out. |
|
| IT Outsourcing Oversees | Thu 06 Feb | KenB |
| I am a programmer analyst (VB6 VB.net, J2EE) in NY who graduated during the boom in 1996. Now things are very different obviously due to market conditions.
Although people are pointing to an economic recovery in the next year or so, I am getting a little scared about all of the articles being written about IT outsourcing to the 3rd world nations like India & China.
It seems like not too long ago there were all these stats in not having enough IT people to fill all of the current jobs as well as the jobs of the future. Many were imported here to fill those positions (many companies pay less $$ an sponser immigrants for permanent residency).
If companies start getting rid of internal IT and outsource to these other countries well have to immigrate there or start flipping burgers!!!!!!!!!
How does everyone feel about this? |
| Thu 06 Feb | Not another horse! | I feel that you should do a search in the archives for outsourcing and read all of the previous responses... (Enter outsourcing in the 'search' box to your left). |
| Thu 06 Feb | GiorgioG | Ken,
I think to sum up what alot of people have said, basically all of the 'shrink-box' software will eventually go to 3rd world countries. I don't particularly like that term btw. Consulting work will stick around because it's so hard to do a good job without face-to-face time with the client. Example: I work out of my home office (for a small consulting firm) and probably meet with customers once or twice a month and find it invaluable. Customers generally don't know how to ask what they are looking to do and being onsite helps alot. Until these companies like InfoSys have offices in every city (which raises their costs, and their prices, etc), you should not have to worry about consulting jobs going away. |
| Thu 06 Feb | Edwin | >> Many were imported here to fill those positions (many companies pay less $$ an sponser immigrants for permanent residency). <<
(This is a tangential point, but I'm irritated by this pervasive misconception.)
It is NOT CHEAPER for a company to sponsor immigrants. Employers are legally required to pay H-1 workers the same wage as they would local employees. As both an immigrant myself and a manager of other immigrant workers I've seen this in action and my employer takes their legal requirements very seriously. You can claim that the presence of migrant tech workers lowers salaries globally by increasing supply vs demand, but it's out-and-out illegal to pay a migrant worker less than their peers doing the same job. Beyond salary costs, the employer ends up paying out $10,000s of dollars on relocation, attorney's fees, etc. |
| Thu 06 Feb | Jeff | >>Employers are legally required to pay H-1 workers the same wage as they would local employees. As both an immigrant myself and a manager of other immigrant workers I've seen this in action and my employer takes their legal requirements very seriously. You can claim that the presence of migrant tech workers lowers salaries globally by increasing supply vs demand, but it's out-and-out illegal to pay a migrant worker less than their peers doing the same job. Beyond salary costs, the employer ends up paying out $10,000s of dollars on relocation, attorney's fees, etc.
I'm glad *your* company is following the law - there are many (possibly a large majority) that either don't follow it or just barely meet the letter of the law (i.e. pay H-1's at the very lowest end of the scale). Just because it's illegal doesn't mean that it's not happening.
Also, I haven't seen any companies that pay H-1's for their relocation costs or attorney's fees - if your's does, it's in the minority.
I've actually been at several places that had H-1 contractors. From talking to them, it was obvious that the contracting company wasn't paying them anywhere near the going rate (even though the comtracting companies were owned by immigrants from the same country).
The last company I worked for had several H-1's and they were paid about the same as everyone else, but again no relocation, attorney's fees, whatever. |
| Thu 06 Feb | tapiwa | All those who have problems with IT jobs moving offshore, or rather, with companies buying their IT solutions from providers living in other countries, should read the following articles.
http://bastiat.org/en/protectionism.html
http://bastiat.org/en/petition.html
They are both very short, entertaining, and far more succint on the matter than I can be. Would be interesting to find out what everyone else thinks about them. |
| Thu 06 Feb | Prakash S | Pretty good articles, though the underlyings are a bit different in this case. |
| Thu 06 Feb | Prakash S | 'It seems like not too long ago there were all these stats in not having enough IT people to fill all of the current jobs as well as the jobs of the future. '
My dad has a Master's degree in Statistics, and this what he says about Stats: 'You can make the numbers say what you want'.
Basically do not go by the numbers. During the boom, a major shortfall was predicted, now all stats are about Outsourcing.
I don't mean to say don't look at the numbers, you should in order to know how wrong all those bozos are whatever they are talking about! |
| Thu 06 Feb | ia | Jeff, my experience was quite the opposite. I have a green card now, but I've been working on two H1 visas for 5 years and have many friends on H1. In every case, company covered all the attorney expences related to H1 preparation and, in many of cases, companies sponsor H1 holders to get green cards. Salary-wise, in 1998 the an official miniumum salary for software developer on H1 visa in California (San Mateo county) was around 80k. I know this exactly, because I hired a H1 guy in that year and still remember all the INS papers.
I don't know how companies could pay less than defined minimum wages to H1-s. Technically, it is illegal, so you can count these poor exploited people as illegal immigrants, not as H1 workers. |
| Thu 06 Feb | Just a thought | And I'd say there is still a shortage - but it ain't in the areas where everyone has the skills and experience. |
| Thu 06 Feb | cheapo | I too, have been on numerous work visas in the last 8 years. All lawyer fees, application fees, relocation have been paid for by the companies doing the hiring. |
| Thu 06 Feb | Daniel Shchyokin | The first article is not a good arguement because it falsly assumes that if Paris were to close off outside trade, the three 'speculators' would be the only ones making ham,butter or wood and that is not true |
| Thu 06 Feb | T. Norman | Large companies that employ H-1Bs where the vast majority of employees are Americans - Intel, Microsoft, Oracle, Merrill Lynch, etc. don't have separate pay scales for H-1B and Americans. I've worked with enough of them and know enough personally to see that they are paid very well. And their employers paid for their relocation costs from India, Canada, and the Caribbean (yes, I said Canada and the Caribbean. Contrary to popular belief, not all H-1B holders are from India and China!)
Where underpayment of H-1B workers exists, it occurs mainly in the the consulting companies that have their headquarters in a certain heavily populated Asian country and hire almost purely employees from their own country (or only their countrymen want to work for them). |
| Fri 07 Feb | tapiwa | Daniel, I sort of agree with you. The article does begin by pointing out that Bastiat 'was the master of the redutio ad absurdum. He used exaggeration to ridicule political ideas'
Taking the extreme case to prove the point. While other Parisians might also produce butter, pork or wood, the central argument remains, that protecting some industries ultimately hurts the populace.
Back of offshore outsourcing. The companies outsource, assume they produce software cheaper. They have money for
a. more software (good for all developers in the world)
b. more of some other goods or services (good for other industries)
c. more profits (good for their shareholders, who incidentally is Mr and Mrs J Blogg via pension funds etc)
Either way, all the parties here are engaging in voluntary exchange of services. Be is producing/buying cheap software, more of other goods, or shares in the companies.
In the alternative, where there is a state mandate to use local developers, the US developers benefit, and the rest of the population is *forced* to buy their services for more than they are worth on the market.
The degree of protectinism (ban vs tariffs) determines the level of coersion in the system, but the loss of freedom of the customers remains. |
|
| Max # of Columns in Excel xp | Thu 06 Feb | Financial Analyst |
| Hi all,
Itd be great if anyone could help me: I need to import tons of data into excel xp (directly through an add-in from the data streaming program, requests are not splitable). BUT: The number of columns seems to be limited to 256. Id require something in the range of 2000 - 4000. Does any of you guys know a way to solve this problem?
Thanks |
| Thu 06 Feb | Albert D. Kallal | 4000 columns?
Hum, that is just not workable with Excel. Even just from a human interface point of view, let alone the large number of columns.
How much torture are you going to inflict on your users?
That data needs to be imported into a database.
One column of 4000 data points should become a set of data.
For example:
Lets assume we have a meter reading device and we get 2000 readings per day from Just ONE meter, and we have 10 meter devices.
You get:
MeterDate MeterStation Reading1 Reading2 …reading 2000
2/2/2003 , 12 , 6.5 , 7.2 …etc. to 2000 readings
2/2/2003 , 13 , 4.5 , 2.2 …etc. to 2000 readings
This data is simply un-workable in the above format. With just 2 meter stations (12, 13) you have 4000 data points.
You need to convert the above a database with only 3 little fields
MeterDate, MeterStation, Reading
2/2/2003 , 12 , 6.5
2/2/2003 , 12 , 7.5
….. etc to 2000 entries
2/2/2003 , 13 , 4.5
2/2/2003 , 13 , 2.2
….etc to 2000 entries
So, now at this point, our table is only 3 columns, and not 2000. Further, the fact that it is in a database means we can do real neat stuff like:
Give me the total reading for all meters in the last 5 days.
Or
Give me the total reading for just meter # 13 for the last 5 days.
The above is just an idea, but I would read in each line with the 4000 entries and suck that into a database. With only the 3 above columns. You could also add a few more columns is needed such as who did the reading etc. Again, then you can sum things by users etc. Databases run circles around Excel in this regards.
Excel is a nice tool to view and edit some financial data. It is NOT a tool to work with something that has 4000 columns.
Excel is the wrong tool here.
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
| Thu 06 Feb | tapiwa | I totally agree with Albert on this one.
My first reaction when I come across something like a 4000 column anything, is to pulll out my baseball bat or number 8 iron, and get medieval on someones ...
Normalise the data. Unfortunately, that probably means using a database instead of a spreadsheet.
Worst case scenario, depending on your data feed, and the number of records, you could transpose your data. So instead of 256*65536 you end up with 65536*256. (max 256 columns and 65536 rows).
Another alternative is to split your 2000 columns across several worksheets. It might get a bit messy though, if you have 10-15 worksheets. |
| Thu 06 Feb | Simon Lucy | Even if you inverted it and made it row events you'd run out of rows on Excel quite quickly, so don't try taking the above advice and apply it in Excel because of the scary word database.
Get someone experienced to do the database and small application, you can get the data out selectively using Excel afterwards. |
| Thu 06 Feb | John Topley | Not strictly true, as the maximum row count in Excel is 65,536 rows but you should use a database. |
| Thu 06 Feb | Financial Analyst | Thanks to all who replied to my question...unfortunately I can't import the data to ms access either. Is there a way to sort of 'merge' worksheets, so that it is basically treated as just one - or alternatively, to invert the sheet (rows to columns and vice versa) - prior to the data import? |
| Thu 06 Feb | Joe Grossberg | >> Normalise the data. Unfortunately, that probably means using a database instead of a spreadsheet. <<
Even before that -- do all of those columns contain data? Ever? As someone who has dealt with importing data, I can tell you that it's quite possible that, with 4000 columns, some are just holdovers from legacy systems. That alone might cut your column count significantly. |
| Thu 06 Feb | Financial Analyst | ...it's all full of numbers. It is a panel over 15 years (yearly data) of 26 variables and up to 2000 - 4000 cases per request. 40.000 cases in all. The data is then transformed through a macro into matlab, sas etc. compatible formats.
it's just that the output looks like this and 256 cases are by far not enough:
date case1 case 2
Var 1 Var1
1
2
3
.
.
date case1 case 2
Var 2 Var 2
1
2
3
.
.
. |
| Thu 06 Feb | anonQAguy | 'Is there a way to sort of 'merge' worksheets, so that it is basically treated as just one - or alternatively, to invert the sheet (rows to columns and vice versa) - prior to the data import?'
No. There's a transpose/paste, but that's only going from a spreadsheet to a spreadsheet, which means you'd have to get it into a spreadsheet first.
If the data is currently in, or can be exported to, a flat ascii format, then I expect you're going to have to write (or get somebody to write for you) some script in perl, for example, to do some pre-processing of this data set to cut it up for you into smaller files. That's if you really are set on putting this into a spreadsheet. Or, if your data would fit into a spreadsheet if transposed, have the external program do the transposition for you.
The closest thing I can think of for you to do is to have some script cut up the data set like I said into manageable chunks first, retaining the right index values for the two dimensions, then you put these 'pages' of data in individual tabs of a spreadsheet. If you're number of rows > 256, you're going to end up having to cut it up into smaller chunks for excel even if you transpose first.
So, the data for row1 - row 65K, columns 1-255 would be on tab 1, then tab 2 would be the data for row1 - row 65K, columns 256 - 510, but you'd repeat the row labels in col 1 of the first tab on each successive tab until you had all the columns you needed. So, your first 65K rows of data might be spread across (total data columns)/255 tabs.
If you needed more rows, then you'd have to start another series of tabs as above with rows 65k+1 and following.
Couple of comments about this alternative -- it would seriously suck to use. Gad! I can't imagine what a nightmare this would be to have to look at--people would go blind. Further, you might well end up with so many tabs in a spreadsheet file that you'd run into some limit on the max number of tabs (don't know if there is one) you can have in one spreadsheet. That could knock even this lousy option out for you as well. Any formulas you did would be possible to write, but horribly inconvenient and likely so error prone that you'd make lots of mistakes; worse, some errors you might not even find and you'd end up with undetectably incorrect output.
I don't see how Excel could possibly be able to serve your needs in this case. I think you're going to have to go the db route, or have somebody do a custom app to do whatever processing/calculations you need done on this data set. |
| Thu 06 Feb | tapiwa | just out of interest, why is db not an option? |
| Thu 06 Feb | njkayaker | This question makes no sense!
'The data is then transformed through a macro into matlab, sas etc. compatible formats.'
Why is Excel even involved?
You don't have systems people that you could (more properly) address this problem to?
Or are you looking for free advice?
Excel is limited to 256 columns, in part, to avoid using it for extreme requests like this. Excel is not the right tool for this. |
| Thu 06 Feb | Self Preservation | Contact your friend who could whip up something like this in access. Wink wink. |
| Fri 07 Feb | Ori Berger | And, study excel's Pivot Tables (that's 'Analysis Server' if you do manage to use MS SQL eventually, or 'Data Pilot' if you use StarOffice/OpenOffice).
You'd find that they simplify and put into a coherent framework a lot of the things you'd take a lot of time to do in other ways. And they are extremely intuitive - but they do take a few minutes of experimentation (or live demonstration, if someone experienced enough can show you) to grok. |
| Fri 07 Feb | Ged Byrne | All us programmers guys are saying no way, but I've seen how financial people can strech a spreadsheet, so I'm keeping my mind open.
How exactly is the data imported? Using the import wizard? From a text file? Using its own add in.
Where is the data coming from? Do you have any access to the request direct?
What are you planning to do with the data once its in your spreadsheet? |
|
| Smokers | Mon 03 Feb | PC |
| I have seen some of them go outside to smoke every 15 minutes. How can they concentrate or get any work done? Im glad they arent allowed to smoke inside, but they should only be allowed to go out three times a day, during breaks.
They are not motivated to quit, because then they have no excuse to get outside and chat with their friends any time they feel like it.
In nice weather, some people spend more time out than in. And they stand right in front of the door, so we have to walk right through their smoke.
I understand they are addicted and helpless. But employers shouldnt make it worse by rewarding them for smoking in this way. |
| Mon 03 Feb | Jutta Jordans | Well, depending on their job, they might be able to keep on working while they go out to smoke. I am a non-smoker myself (as are most of my colleagues), but still I stand up to get a little break, mostl times involving fetching a cup of hot tea from the kitchenette and exchanging a few words with the colleagues I meet there. It does not break my concentration (for as long as I concentrate, I do not feel the need to get up), but it sometimes helps me to clear my head and get rid of a blockade somewhere. I often find bugs or solve other problems directly after returning to my desk.
So, do not envy the smokers of their right to take little breaks, take some yourself, instead. No one keeps up his or her concentration for hours on end, anyway.
ymmv, |
| Mon 03 Feb | Matt Watson | I know exactly how you feel. I have to listen to someone complain about how they don't have enough time to do their work each day, yet I bet she spends at least an hour of her day in the smoke room. |
| Mon 03 Feb | anonQAguy | Well, I'm not a smoker, personally, but grew up with them and am married to one, so I'm pretty familiar with their situation.
Personally, I think way too much fuss is being made over smoking and second-hand smoke today, but the massive 'herd' is hell-bent on an anti-smoking crusade, so by god they're going to have their crusade. I have to pick my battles. If it were up to me to set policy in an office, I'd let smokers smoke at their desks again (like it was 20+ years ago) if they wanted to; I don't care.
I will say that having joined our smokers outside in the office 'smoke hole', the conversation is almost exclusively development/design related.
It's pretty much like this around the pool table too (we still have one). The pool conversation is normally pretty technical; in fact we have about 8 feet of whiteboard right next to the pool table, on which a significant chunk of various projects' design work ends up at some point. So eventhough the smokers are not at their keyboards during these times, their breaks are typically very 'productive' breaks.
At least that's how it is in our shop, might be different in others' I suppose. |
| Mon 03 Feb | Gwyn | Well, i'm an ex-smoker so I can offer some thoughts on the subject...
There is a positive side to smoke breaks - it really improves the networking because you end up standing around talking to people who you wouldn't normally mix with. In the past I've found this quite invaluable for making contacts in the organisation and because you meet them on a social level they are more inclined to be helpful in the work context.
I used to use smoke breaks to take an opportunity to pace up and down outside of the building far away from the madding crowd trying to get my head around problems. And it really used to work..
Limiting smokers to a certain number of breaks during the day is not productive. Unless you've smoked you really cannot appreciate just how nicotine cravings can affect the mental state.
Smokers on the whole do not mind social exclusion and do not wish to inflict their smoking on other people. I don't think smoker use smoking as an excuse to avoid work.. any more than the chap who spends 15 minutes talking to his colleague about last weekend's activities or the chap who disappears off to the lavvy with the latest Computer Weekly.
A smoker will only succeed in giving up when they have decided that they will give up for themselves. No amount of persuasion, coercion, threats or ill-treatment will make a smoker give up if he hasn't made the decision for himself.
I've given up 3 times. First time for 18 months, then for 9 months and latterly for 6 months. I prefer life as a non-smoker. Smoking is unintelligent. It's dangerous. It affects the mental state. I primarily gave up because of health reasons. I still quite like the occasional (e.g. once a month) joint although there's always a risk this could lead back to full time smoking (hence I make a policy never to actually own any of the doings; it would be far too risky!).
One of the biggest things (annoyances) I found was just how much smoking affected my mental state. Immediately after a cigarette my pulse would be increased and my brain would be slightly foggy and I would find it hard to concentrate fully. No sooner had the fog dispersed than I would be feeling the need once more. I think this is something that affected just me in this way; other smokers I've spoken to haven't related the same exerience. Perhaps they were just more hardened.
Nicotine is reportedly the most addictive substance; more so that herion or crack cocaine.
Whilst I don't like living in a nanny-state I do think that the governments should make more effort to stamp out smoking. Not by attacking existing smokers but by stopping new ones. In the UK the legal age of smoking is currently 16. In practice it's a lot lower. But what if the 16 limit was vigorously enforced? And what about if it was raised by one year every year? The UK government shamelessly profits from the sale of tobacco yet they accept no social responsibility for the smoking population. There is little incentive for them to improve the situation when they make so much revenue. |
| Mon 03 Feb | Robert Moir | 'Unless you've smoked you really cannot appreciate just how nicotine cravings can affect the mental state'
I'm glad this wasn't your only argument in favor of smoke breaks, or else we'd also have to provide drug breaks for people addicted to other substances. How about beer breaks for people like me who like a brew?
I don't think theres anything wrong with taking the odd break from work to smoke, get a coffee, or whatever. I judge others and want to be judged myself on whether or not I deliver results, not how long i spent hunched up over my monitor and desk each day.
I also don't think that computer weekly is something you should sneak off into the lavvy to read either. Isn't keeping on top of the industry news part of the job? And doesn't the chance to talk to others while smoking, or getting a coffee also help meet that role? |
| Mon 03 Feb | apw-non smoker wanting a beer break | Whats the difference between taking a smoke break and going outside to have a beer? Being a non-smoker, I imagine if I did decide to go out and have a cig that the effects of the nicotine on my brain would be much more severe than that of one beer. |
| Mon 03 Feb | Gwyn | 'I'm glad this wasn't your only argument in favor of smoke breaks, or else we'd also have to provide drug breaks for people addicted to other substances. How about beer breaks for people like me who like a brew?'
If you employed a drug addict you would expect the guy to behave like a drug addict (he can't help it) and therefore you'd need to make allowances for his addiction.
Similarly with smokers. If you're not prepared to accept their needs then don't employ them! But don't employ someone who tells you that he's a smoker and then start saying 'I wish he didn't have all the negative attributes of a smoker'! |
| Mon 03 Feb | Gwyn | 'Whats the difference between taking a smoke break and going outside to have a beer? Being a non-smoker, I imagine if I did decide to go out and have a cig that the effects of the nicotine on my brain would be much more severe than that of one beer.'
I think you're confusing preference with addiction. You might like a beer but the smoker NEEDS nicotine.
If anyone wants to see just how mind altering a nicotine imbalance can be then chew a piece of nicotine chewing gum or slap a nicotine patch on. The mental state you will experience is of the same degree as an addict experiences when he experiences nicotine withdrawal. |
| Mon 03 Feb | apw-non smoker wanting a beer break | Gwyn wrote:
'I think you're confusing preference with addiction. You might like a beer but the smoker NEEDS nicotine.'
That wasn't my point. The point being that if I went outside and smoked a cig no one would give it a second thought, but if I was drinking a pint of Guinness I would probably be fired. |
| Mon 03 Feb | Kyralessa | 'Personally, I think way too much fuss is being made over smoking and second-hand smoke today, but the massive 'herd' is hell-bent on an anti-smoking crusade, so by god they're going to have their crusade. I have to pick my battles. If it were up to me to set policy in an office, I'd let smokers smoke at their desks again (like it was 20+ years ago) if they wanted to; I don't care.'
If you don't have allergies, then it's not surprising you can't understand how sick cigarette smoke makes some people. It never ceases to amaze me how easily people will dismiss the health risks of smoking and second-hand smoke, calling it a 'crusade' as if it has no reasonable basis. But then there's a flat earth society too; I suppose some people will believe anything, science be damned.
'Smokers on the whole do not mind social exclusion and do not wish to inflict their smoking on other people.'
Of the thousands of smokers I have met in my life, I have encountered exactly ONE who asked if I minded before she lit up. She was the most polite smoker I ever met: Kept her little cloud around her instead of blowing it in all directions, and kept her ash ground down so it didn't float everywhere through the air. Only smoker I ever met who I could stand to be in the same room with while she smoked. Of course, now she doesn't smoke anymore: she started coughing up blood one day and it scared her enough that she quit. Now she complains about how bad her friends' houses smell with all the smoke.
Getting back to programming topics, I do agree that the occasional head-clearing break is a good and necessary thing. My best insights come when I'm not sitting at a PC. |
| Mon 03 Feb | PC | Second-hand smoke makes me feel like I can't breath and am about to vomit. Nicotine is a drug from hell (unlike caffiene which has only positive effects for me).
I agree that getting away from the computer is necessary and so is talking to people. I have considered getting fake cigarettes so I can go outside whenever I want. |
| Mon 03 Feb | Smokinguy | As a smoker and (small) company owner, I'm starting to think about employing only smoking people. Probably would make or lives easier. |
| Mon 03 Feb | Gwyn | Sorry Kyralessa I should have qualified that statement:
'AT WORK smokers on the whole do not mind social exclusion and do not wish to inflict their smoking on other people.'
Outside of work I would respect non-smoking areas but if there is no policy (like in a pub) then I would smoke without asking permission. Which is a probably a bit naughty. If I came to your house I'd ask or just step outside but if you came to my house then you'd have to put up with it!
ps. Went to a place in New Hampshire a couple of years back where you couldn't smoke in the bar but you couldn't take a drink outside of the bar. That was REALLY annoying!
Luckily (for smokers) most British pubs do not have non-smoking policies. |
| Mon 03 Feb | Super | Give me a break. Smoking just plain sucks.
It's not fun to have to deal with smoke when you walk in and out of your building, nor is it fun for your clients.
It's also not fun to deal with other people that constantly reek of stale smoke because they take a smoke break every half hour. |
| Mon 03 Feb | Katie Lucas | Yep, there's no social exclusion in pubs.
Except for those of us sufficiently allergic to cigarette smoke that the air in most pubs is life-threatening. We don't get that degree of social freedom. Of course it's not serious enough to bother anyone so while pubs have to have ramps and accessible loos and have to admit guide dogs, some of us end up having having to simply not go out with friends when their plans involve 'popping into a pub for a bit'.
My other half smoked when we started dating. He stopped, basically, because before he come near me after popping outside for a cigarette he had to change clothing and wash his hair - the smoke in his hair from one cigarette was enough to trigger allergy reactions.
Personally, I'm really keen on this whole 'don't smoke in public' thing. I don't try and stop other people breathing, I don't see why they think they have a right granted to them by almighty god to try and stop me breathing or deny me access to bits of the world with threats of it. |
| Mon 03 Feb | Rick | This is too perfect a setup. No social exclusion in pubs? Perhaps you haven't read the news ;)
http://www.nytimes.com/2003/01/31/international/europe/31IREL.html?ex=1044939600&en=8d3f9fb9d08e8d5d&ei=5062&partner=GOOGLE |
| Mon 03 Feb | My 2 cents | Do we want to control how people think, when they take break, and how much TIME they spend at their desks?
Shouldn't we just care about the result?
'One famous computer researcher who made a lot of discoveries in the computer field said that his firm lost several million dollars because they did not install a $14,000 shower in his office, since all his good ideas come when he's showering. When he moved to a new firm that had a shower, his ideas kept coming out.'
source: http://www.chaosengineers.co.nz/papers/the%20psychology%20of%20programming.html |
| Mon 03 Feb | Non-smoker | >> I used to use smoke breaks to take an opportunity to pace up and down outside of the building far away from the madding crowd trying to get my head around problems. And it really used to work.. <<
I don't smoke, but I can totally see this. Not to be crass, but there have been many times that I've been sitting on the pot and wished I had a notepad. Some of my best ideas come then.
The value in getting away from the desk and having a moment to think about things should not be under-rated.
So, I don't think it's a big deal for smokers to go trotting off and 'waste' company time. The key thing is to manage by objectives and results - not by the clock. |
| Mon 03 Feb | Dignified | I'm surprised how few smokers have posted on this. We must be a dying breed (pun intended).
I personally smoke at our office and take approximately four breaks a day. I concur with those who said it was nice to mix with people who aren't necessarily on your project. I can't tell how many problems I've solved outside with a cigarette in my hand, talking to other smokers. It was usually only 1 or 2 minutes into the smoke before someone outside said 'So I've got this problem with a COM DLL I'm writing...' You can't get that kind of think tank indoors, because if you just walked up to random people in your building who aren't on your project and asked for some advice, you'd get blown off.
As for smoking at your desk, no way. First off, I'd smoke 10 times as much, and would be probably be dead in a matter of weeks. I was really surprised to find that only one person Kyralissa met had asked before lighting up. If I'm with non-smokers at a bar or restaurant, I'll move to another table to have a cigarette, by myself, and then rejoin my group afterwards. As for people smoking outside the entrance, that's just ridiculous. Everywhere I worked we had a place, in the back of the building, where only smokers were. To smoke by an entrance, and have clients and employees walking through that, is just silly.
Anyway, I feel like I have to say all this because smokers already have a bad reputation, and not ALL of them are inconsiderate jerks. |
| Mon 03 Feb | Stephen Jones | I used to smoke four packs a day of Marlboro Reds (when I was younger II was on six packs of Gauloises but I cut down).
Then thirteen months ago I stopped, and haven't had a cigarette since. As you can't smoke in educational buildings, even offices, I used to go out the door for a couple of cigarettes every hour or so. I obviously no longer do so. The effect on my productivity of the time 'gained' has been PRECISELY ZERO. |
| Mon 03 Feb | Just say No | After quitting my productivity went to zero briefly and subsequently trickled back to normal over the ensuing 3 months. Remind me, is nicotine a stimulant?
6 packs a day?!? |
| Mon 03 Feb | Stephen Jones | I quit during the holdiays so did not get time to notice any productivity hit.
On coming back I found that I was prodiucing the same as before, no more, no less.
The 6 packs a day would be at weekends, when I was in my twenties. In the week I would smoke a pack less, so I would normally be smoking four packs a day at weekends and three in the week. I did this for thirty years.
My health incidentally is no different after quitting than before, except I've gained more weight than I wanted to. |
| Mon 03 Feb | PC | Oh come on. Just because you haven't noticed a difference after only one month, you can't claim that quitting smoking does nothing to improve your health.
Before, you were taking poison every day all day long. Now you stopped, and it might take a long time before you feel better. |
| Mon 03 Feb | PC | And furthermore:
You have no idea how bad you really feel. |
| Mon 03 Feb | Stephen Jones | PC where do you get the 'only one month' from. I very clearly stated 13 months, more than enough time to notice.
I may add that if anything I feel less fit, but I don't put that down to not smoking!
Reality doesn't always fiit your prejudices! |
| Mon 03 Feb | PC | Sorry I had missed the 13 month post.
But if you feel worse after quitting,
that obviously is related to other aspects of your lifestyle.
Keep in mind that your brain will be in a constant fog if you neglect the health of your body. |
| Mon 03 Feb | Just say No | The hopeless semantic in me is screaming but I would hesitate to send my children down the 6 pack a day road in a ludicrous attempt to snub my nose. Just my own peccadillo I'm sure.
And for some completely worthless anecdotes Gran has smoked moderately heavily for 74 years while Ma is withering from emphysema and lung cancer at 66. Ever watch that? Now there's some entertainment!
'Oh dark mother! Once more I suckle at your smokey teat!' ~ Gunther |
| Mon 03 Feb | Andrew Reid | Gwyn Wrote:
'Similarly with smokers. If you're not prepared to accept their needs then don't employ them! But don't employ someone who tells you that he's a smoker and then start saying 'I wish he didn't have all the negative attributes of a smoker'!'
I'd have a chat to your lawyer before you tried asking interviewees whether they smoked or not. Pretty sure that wouldn't be legal.
On the other hand, who needs to ask? You can usually smell a heavy smoker as soon as they get within 10 meters. |
| Mon 03 Feb | Daniel Shchyokin | 'How about beer breaks for people like me who like a brew?'
Whats Wrong With Having A Beer at your desk? |
| Mon 03 Feb | PC | If people want to take drugs that make them stupid or crazy I don't care, as long as they stay off the highway.
But drugs that fill the air and get into everyone's lungs are a different story. I do not want to take nicotine or marijuana and should never be forced to. |
| Mon 03 Feb | bah | I don't want to breathe carcinogenic fossil fuel emmisions, and I shouldn't ever be forced to, so everyone should stop driving their cars, flying their planes, running their lawnmowers, and so on. |
| Mon 03 Feb | PC | They don't have to stop, but it wouldn't hurt to cut back. Walk or bicycle if you can, and the air will be cleaner and you will be healthier. |
| Mon 03 Feb | anon | As an employer, is there any reason I can't discriminate based on smoking? I feel quite ill to my stomach if I'm in the same room as someone who just came back from a smoke.
So if they're in the office, I can't function. Sucks to be me, but that's my reality...
Yes, I could miss out on some genius smoking coder, but so far I haven't found that to be the case. Thoughts? |
| Mon 03 Feb | Tobacco Smoke Hater | I’ve never smoked. I’ve never been interested in smoking. I hate going to a restaurant and coming out smelling like smoke. I would really hate it if someone smoked in the office.
All that said, I think government needs to stop messing with smokers. I don’t believe that we need new laws regarding smoking in the U.S. I think we have way too many laws now. We don’t need more. The only problem with our government in the U.S. is that our leaders are endlessly making new laws. We’ve got some great laws now, lets slow down a little on the law thing!
We haven’t made a crime free paradise with all our billions of laws against killing and guns. It’s illegal to kill people in the U.S. in every way imaginable. You can even get in more trouble for killing them if you ‘hated them’ –which seems very stupid to me, “I didn’t hate her, I just raped her.” It’s the beginning of a thought police. All of this has not stopped crime and it is unlikely that 20,000 more laws would either.
I could care less if people in the office go out twenty times a day to smoke. As long as they don’t work for me and as long as I don’t own the company, I could really care less what they do.
Just as long as I don’t have to smell that stuff from my desk. |
| Mon 03 Feb | raindog | Yeah, right, guys...
And please do the same to the other dangerous grug - caffeine! I just hate that coffee smell. And those addicts, can you believe, they are going to kitchen every hour to take their dose. Disgusting!
;) |
| Mon 03 Feb | Java consultant | I'm a smoker and I don't mind rules and laws limiting my ability to smoke in public places. I am all for them. That includes the workplace. I don't think people should be required to breathe second hand smoke, period. I think it does matter how many breaks you take (smoking or othewise), because if you think no one cares how many breaks you take, you end up smoking (or chatting) more. A smoker is just some one who wants to quit. A little encouragement, or a few rules, may be all it takes to actually do so. |
| Mon 03 Feb | raindog | It's interesting that in certain Soviet organization there was a rule:
If you are a smoker, you have official rights to take 10 minutes break every x hours, but if you are not-smoker, you can't stop working (except for lunch break). As a result, almost 100% started to smoke in those organizations. |
| Tue 04 Feb | Alberto | I've found that people who complain about smokers are usually the same ones who complain about everything else.
I only find smoking unacceptable when I'm eating, otherwise, break a lung. |
| Tue 04 Feb | Stasi | Yeah, while we're at it....
That Business Analyst chick that chats to her friends half the day should have her pay docked.
And the indian guy eating his curry for lunch every day makes me want to chuck. Banish him to the outdoors.
The newbie who wont RTFM and keeps hassling me decreases my productivity. He's got to go.
The fat chick who takes up too much room in the corrider as she slowly ambles along is restricting freedom of movement and is an OH&S hazard. She must be banned from access to the fridge.
Right, Who's next? |
| Tue 04 Feb | Devil's Advocate | Next they'll be trying to ban masturbation under the desk! |
| Tue 04 Feb | Had to be there, I guess | 'I don't smoke, but I can totally see this. Not to be crass, but there have been many times that I've been sitting on the pot and wished I had a notepad. Some of my best ideas come then.'
A colleague and I used to joke about this, when I'd come into the room offering a new perspective on some previously unresolved issue. Instead of announcing I had a new idea, I'd inform him that I had just returned from the toilet... |
| Tue 04 Feb | Practical geezer | 'I don't want to breathe carcinogenic fossil fuel emmisions, and I shouldn't ever be forced to, so everyone should stop driving their cars, flying their planes, running their lawnmowers, and so on.'
Life isn't black and white, that's for sure.
But, smoking is a personal choice and affects a person and her immediate surrounding. Stopping removes the impact on the surrounding, without having to give up on anything in life, except the immediate effects of smoking.
You can't erradicate the negative side effects of driving or flying, without society as a whole giving up on other worthwhile aspects as well.
So, every one on the planet can give up smoking and society as a whole would not be worse of. Not so for cars or planes (now).
Not to menion that the concentration of the polution by smoking and driving is entirely different.
You can easily avoid breathing fumes by avoiding standing in the middle of higways. Something you are likely to want to do anyway.
In the majority of places, if not all, that you'd want to be, the concentration of exhausts are minute compared to that of sigaret smoke. |
| Tue 04 Feb | PC | I am not someone who complains about everything. I can see various perspectives on most political questions, so I am never a fanatic or extremist. In fact, I can't stand it when people are one-sided extremists about, for example, environmentalism.
Smoking is, however, one problem I feel strongly about because it is a simple question of right vs. wrong. If smokers aren't restricted by laws, then my life, freedom and health is seriously restricted by them.
There is nothing good about smoking, so I would feel no guilt about depriving someone of the right to smoke.
Second hand tobacco smoke cannot be fairly compared to drugs that are ingested, injected or inhaled. If you are a smoker, or if you are not sensitive to nicotine, you can't possibly appreciate what it's like to be involuntarily forced to breath second hand smoke. To me, and to most non-smokers I have spoken to, it is like being forced to take poison that makes you sick. In the short term it is nauseating and ruins the quality of life completely. In the long term, if you are exposed every day, you wind up with the cardiovascular and circulatory problems that smokers willingly inflict on themselves.
If you are a smoker and still young you probably are not thinking about how this will likely catch up with you during middle age. You probably are not considering that artery disease and circulation problems not only lead to heart attacks and strokes. So what, you think, death would be quick and relatively painless. No, there will probably be years and years when your intellectual functioning is decreased and your brain gradually stops working. Sounds like fun?
'So what?' you think, I'll be over the hill then, who cares if my brain functions or not. Well when you actually get to be 40 or 50 you might be surprised to see you value life even more than you do now. Yes, life gets better for most people, not worse. So take care of your health and stop smoking so you can appreciate it.
There is something else that smokers and smoker's rights advocates seldom consider: Smoke is not necessarily confined by walls. We need laws for apartment buildings, not just for public places. |
| Tue 04 Feb | z | >>> If you don't have allergies, then it's not surprising you can't understand how sick cigarette smoke makes some people. <<<
>>> Except for those of us sufficiently allergic to cigarette smoke that the air in most pubs is life-threatening.<<<
Are there people who are allergic to tobacco smoke? As a non-smoker who grew up in a non-smoking home, I find that tobacco smoke is very irritating. If I sit in a room with people smoking for very long I can be rather sick for hours afterward. But this is not an allergy. It is a normal reaction to nicotine, which is highly toxic. It has been used as an insecticide. Since it is a botanically produced chemical it is possible that people may develop an allergy to it, but I suspect that many people confuse a normal reaction to a highly toxic substance with an allergic reaction to it. |
| Tue 04 Feb | Ian Stallings | I am allergic to cigarette smoke being asthmatic. It really sucks.
But that being said, I don't mind smokers in the same area (such as a bar) as long as they respect my space and don't blow smoke in my face. I find the focus on smoking these days pretty funny considering how many restrictions are being placed on smokers, such as no smoking in public places that are outside. I mean, is smoke gonna kill you outside? Pretty soon you'll have to go off the plant to take a smoke break.
The pendullum swings from far left to far right. |
| Tue 04 Feb | PC | That's right. I am not allergic to smoke, it just makes me sick. And every non-smoker I've spoken to on this subjects feels the same way.
I would also like to add:
I have nothing personal against the smokers I know at work, and they have no idea that I hate smoking. I just think the policy of unlimited cigarette breaks makes it harder for them to quit. If they try to quit, they see all their friends going out without them, and there is pressure to go back to smoking. |
| Tue 04 Feb | Ian Stallings | [Second-hand smoke makes me feel like I can't breath and am about to vomit. Nicotine is a drug from hell (unlike caffiene which has only positive effects for me).]
Funny, I feel the same way about coffee breath bandits that breath starbucks finest in my face. I hate coffee soI guess it should be banned. We'll have to legislate this of course and start a national fund showing the ills of coffee and why it is dangerous. We'll make Stabucks pay for their own demise. But don't worry, that money will get sent right back to them through state ran grants to boost local economies. Legislate that, it's the American way |
| Tue 04 Feb | PC | It's very silly to think that coffee is as dangerous as tobacco. And if you don't like a person's breath, just don't get so close. One person smoking in a room can fill the room with nicotine and tar, and the many poisonous chemicals added by the cigarette companies. Anyone in that room takes in the same chemicals as the smoker. There is scientific evidence that there are long-term health consequences for non-smokers who live in smoke-filled rooms. And, as many non-smokers can testify, the short-term consequences are burning eyes, nausea, coughing, choking and general misery. |
| Tue 04 Feb | Stephen Jones | Dear PC,
You don't like the smell of cigarette smoke. Other people don't like the smell of coffee, cauliflower, perfume or people; I personally dislike the visual pollution of the obese, who to make things worse normally also have bad skin, bad hair and bad dress sense. Having them around my area makes me sick, less productive, and brings the price of my house down.
The symptoms you suggest are the result of bad ventilation, not that tobacco smoke is uniquely harmful. Your comments on second hand smoke verge on the hysterical.
As for the statement, 'it's right v. wrong' that tells us a lot about yourself but very little about the issue. |
| Tue 04 Feb | PC | You're being ridiculous Stephen. I don't care about the smell of cigarette smoke. This is not a question of aesthetics. I don't like to feel I'm being poisoned by dangerous drugs and chemicals. If I took a survey I could prove to you that most non-smokers feel this way. And there is more than enough scientific evidence about the harmful effects of these chemicals on smokers and the non-smokers around them. |
| Tue 04 Feb | Ian Stallings | I wrote that tongue in cheek. Apparently second hand smoke also affects your sense of humor.
As many non coffee drinkers can testify second hand coffee breath can have serious, if not irrepairable damage to your image. People will avoid you. Women will loathe you. Friends wil talk about what happened to you and shake their head. Sad, so sad.
Coffee not only stains your teeth but contains a very addictive drug, caffeine. Caffeine can inhibit your judgement causing accidents and too much* can kill you!
*too much = 1 ton of caffeine dropped on your head. |
| Tue 04 Feb | Stephen Jones | >>>f I took a survey I could prove to you that most non-smokers feel this way.<<<<
If you take a survey you can prove that most people are totally irrational with regard to nearly everything.
Your claim that you are being 'poisoned' by second hand cigarette smoke is comical, unless you actually live in an unventilated room with somebody who smokes six packs a day of Capstan Full Strength, oir work in the snug room of a smokers pub.
You are much more likely to be poisoned by all the chemicals from the exhaust gases in cars, particularly if you ride a bicycle, but in the States smokers are fair game but drivers rignts are sacrosanct. |
| Tue 04 Feb | Stephen Jones | >>>>too much* can kill you!
*too much = 1 ton of caffeine dropped on your head. <<<<<
I'm down to about ten cups of coffee a working day, after drinking as many as thirty, and in fact caffeine can have serious effects on your nervous system. It's also present in massive quantitites in Coca-Cola.
Well over thirty years ago amphetamines such as caffeine were the illegal drug of choice for competition cyclists; it was only after various of them collapsed and died that investigations were made and the drug was banned and replaced by less detectable alternatives. |
| Tue 04 Feb | anon | z asked: 'are there people who are allergic to tobacco smoke?'
I don't know or care whether tobacco smoke actually qualifies as an 'allergy' by a technical definition, since it contains so many poisons and irritants.
However, for people with asthma such as myself, tobacco smoke often can trigger serious breathing difficulties. The resulting attack can mean hospitalization or even death.
Personally I have much more severe attacks to certain brands, while other second-hand smoke (eg wood smoke, and interestingly, pot) does not cause problems.
In my case, it also makes a difference if the smoke is airborne or not as to whether the effect is so severe that I am rolling around on the floor trying to breathe (an apparently scary and definitely embarrassing sight), or (more normally) I am simply sick with terribly sore throat, itchy/running eyes, aching ears and a heaving cough for a week or so.
There are many people with much more severe reactions than I ever have had. You may never have met them, particularly if you live in a society where smoking is allowed in public areas, or if you are a smoker. That's because those of us that have problems with smoke that go beyond the 'serious dislike of smoke' arrange our lives such that we minimize our contact with it.
Unlike the implication (by Stephen Jones) in the following quote: 'You (PC) don't like the smell of cigarette smoke. Other people don't like the smell of coffee, cauliflower, perfume or people.'
It's not a question of likes or dislikes - it's a question of staying alive. |
| Tue 04 Feb | z | >>> The symptoms you suggest are the result of bad ventilation, not that tobacco smoke is uniquely harmful. <<<
I do have a disagreement with DeMarco and Lister. In Peopleware they disparaged companies that banned microwave popcorn because the odor was unprofessional. I like popcorn, but strong odors can be as distracting as noise in the workplace. Office should try to avoid strong odors such as cooking fish or popcorn in the microwave, stale coffee, as well as tobacco smoke. Better ventilation might help, but some sources are worse than others.
One problem with tobacco smoke is that it IS uniquely harmful. There are a lot of widespread air pollutants to worry about, but off hand I can't think of any source of pollution that individuals give off in their offices that are as toxic. |
| Tue 04 Feb | bah | Thanks to a few previous posters for the public service announcements. I needed the reminder about the chemistry, biology, and politics of nicotine addiction because the constant barrage of propaganda in the media just wasn't enough of a fix.
Aside from all the unsupported statements of 'fact' in earlier posts, obviously gleaned mostly from television commercials, let me comment on the following statement:
'There is nothing good about smoking, so I would feel no guilt about depriving someone of the right to smoke. '
This sort of rationalization for co-opting control of someone else's life is easily as dangerous as any of the dubious effects of so-called 'second hand smoke.' If I don't have the basic right to determine what does or does not go into my body, then how can you say I have any rights that are exclusively mine, at all? The danger in such a proposition should be obvious.
And before you argue that you have a similar right and therefore shouldn't be subject to second-hand smoke, the answer is that you do have the same right. The way you enforce it is what is at issue. The way for you to enforce it that least tramples on the rights of others is to leave the area where you are exposed to second-hand smoke or not go there in the first place.
We have 'public property' owned by various governments, so I think it's fair that majority rule applies to whether smoking is or is not permitted there. What I object to is being told what I can do on my own property, in my house or in my business, especially under threat of force or fine.
Also, just to be clear, I am not a smoker and never have been. I dislike the smell of smoke, and I generally don't go places where I know I will likely find people smoking.
By the way,
'And there is more than enough scientific evidence about the harmful effects of these chemicals on smokers and the non-smokers around them. '
Can anyone point to a peer-reviewed study that demonstrates this thesis about harmful effects on non-smokers? I have never seen any compelling evidence, but would be interested in looking at it if it exists. |
| Tue 04 Feb | Just me (Sir to you) | 'I can't think of any source of pollution that individuals give off in their offices that are as toxic.'
http://shellz.freeservers.com/office-killing.htm
'Stagnant office air also circulates the residue of as many as 350 VOCs that are emitted by building materials, furnishings, and office machines. For example, most office paints contain solvents that can cause everything from eye, nose, and throat irritation to digestive and central nervous system damage. Carpeting sometimes contains PVCs that give off the carcinogen dioxin. Furniture is often made of particle board that is bonded with resins made with carcinogen-containing formaldehyde. That's not to mention the pesticides and cleaning products swabbed over offices that, according to the EPA, may also contain carcinogens that can be discharged into the office air.'
Hey, one of my personall dislikes is the smell of people pealing an orange. |
| Tue 04 Feb | Stephen Jones | >>>>>>>>>It's not a question of likes or dislikes - it's a question of staying alive. <<<<<<<<<<
Are you seriously suggesting that tobacco smoke is the only allergen that can cause life-threatening attacks?
If we tried to ban all allergens then we would probably have to ban life, period.
There has been a massive increase in allergies, particulary asthma over the last twenty or thirty years. We are talking about more than 20% of the younger generation being affected.
The most likely culprit is personal hygiene. We kill off so many natural irritants that the immune system adapts by reacting to quite harmless substances.
If you are worried about the health of your young child, it's possibly not tobacco smoke you should be trying to keep him away from, but soap. |
| Tue 04 Feb | Dennis Atkins | 'You don't like the smell of cigarette smoke. Other people don't like the smell of coffee, cauliflower, perfume or people; I personally dislike the visual pollution of the obese, who to make things worse normally also have bad skin, bad hair and bad dress sense. Having them around my area makes me sick, less productive, and brings the price of my house down.'
You really are one of the most inane posters Stephen, spewing your semi-informed propaganda hither and yon. Surely you don't really believe that cigarette smoke is a matter of personal smell preference. No one dies from eating cauliflower or smelling coffee, though perhaps it is true that some asthmatics have died from excess perfume.
That said, I do respect the fact you post with an email address. |
| Tue 04 Feb | Stephen Jones | Dear Dennis,
Nearly all people who die of cigarette smoke are smokers.
The evidence of the effect of so-called second hand smoke is tenuous. Most of the proven cases have been peiople who have shared small unventilated spaces with heavy smokers for a period of thirty years or more.
This situation does not happen any more in the States or most of Europe.
Smokers have allowed themselves to be demonized by a collection of stuck-up prigs whose main pleasure in life is pretending to be hard done by.. |
| Tue 04 Feb | z | >>> 'I can't think of any source of pollution that individuals give off in their offices that are as toxic.'
http://shellz.freeservers.com/office-killing.htm <<<
An interesting article, but not a response to the statement about toxic emissions given off by individuals. |
| Tue 04 Feb | I Hate Whiners | Regarding nicotine, Z wrote:
' but I suspect that many people confuse a normal reaction to a highly toxic substance with an allergic reaction to it. '
If you consider nicotine 'highly toxic', what label do you apply to things such as Cyanide, VX or Mustard gas? If you consider nicotine 'highly toxic' then these other chemicals surely must rank as 'super duper extra duper toxic' huh?
Toxic is one of those fun words that armchair chemist like to toss around to describe anything that has the potential for ill-health. Is nicotine dangerous? Of course it is. But in light of chemicals that can kill you in seconds , I think it's laughable to call it 'highly toxic'. |
| Tue 04 Feb | Jeff | >>Is nicotine dangerous? Of course it is. But in light of chemicals that can kill you in seconds , I think it's laughable to call it 'highly toxic'.
Actually, in pure form, nicotine *is* highly toxic and was used by the KGB in some of their assassinations (as a dart coating or on the tip of a sharpened umbrella). |
| Tue 04 Feb | kgb | >> nicotine *is* highly toxic and was used by the KGB in some of their assassinations
Who told you this, comrade? |
| Tue 04 Feb | CIA | Actually, the KGB were known to use ricin pellets. The CIA was the one that favored using concentrated nicotine. |
| Tue 04 Feb | Dallas Chumly | I’m a smoker, but I don’t drive. Dallas is pushing a smoking ban, though I think there are things much worse. Should I say that because I don’t drive, all drivers are polluting my air, and because I don’t drive, nobody else should be allowed to drive? It’s the same as! Drivers are polluting my air, I don’t drive, therefore nobody should be allowed to drive… Is this the biggest social ill in the world today, or just something for whiners to whine about? |
| Tue 04 Feb | anonQAguy | This happened a number of posts back from anon:
'...In my case, it also makes a difference if the smoke is airborne or not a...'
WTF?
Just one question:
Anybody ever seen smoke that isn't airborne? What is smoke if it isn't airborne...dirt?
How do you inhale it if it's not airborne? |
| Tue 04 Feb | Jeff | >>Anybody ever seen smoke that isn't airborne? What is smoke if it isn't airborne...dirt?
At a former company, they had setup one of the conference rooms as a smoking room. Like the other rooms, it had a glass front wall. Unlike the other rooms, it looked like the company had tinted the window - they didn't, it was just the layer of smoke that accumulated on it (even with good ventilation and 'smoke eater' ash trays).
When they converted the room back to being a normal conference room, the maintance people actually had to use razor blades to scrape the crud off. Imagine what lungs look like after a couple of years |
| Tue 04 Feb | z | >>> Toxic is one of those fun words that armchair chemist like to toss around to describe anything that has the potential for ill-health. Is nicotine dangerous? Of course it is. But in light of chemicals that can kill you in seconds , I think it's laughable to call it 'highly toxic'. <<<
Excerpts from Turkington, 'Poisons and Antidotes':
nicotine - A plant alkaloid found in several species of tobacco and an extremely fast-acting poison that, when eaten, can cause blood vessels to collapse and the muscles of respiration to fail...
The information I can find on cyanide states: 'Death is due to respiratory arrest' [Hazardous Chemicals Desk Reference]. So while it may act in seconds it takes minutes for the victim to actually die.
Another interesting point of comparison is that the OSHA permissible exposure limit for cyanide is ten times higher than for nicotine. One table of LD50 values that I found at a .mil site states that the LD50 for nicotine is only 1/5 that of cyanide.
The information that I have found on LD50 for nicotine is a bit conflicting. The amount in a pack of cigarettes may be fatal, although some sources indicate it may take the amount in several packs.
Let's be blunt about this: nicotine is five times as toxic as cyanide and will kill you just as fast. Why is it 'laughable' to call it highly toxic?
A significant question here is: Have all the warnings and information about cigarette smoking leading to premature death after 20-40 years of smoking obscured the fact that nicotine is also a poison that will kill in small doses within minutes. |
| Tue 04 Feb | z | >>> Should I say that because I don’t drive, all drivers are polluting my air, and because I don’t drive, nobody else should be allowed to drive? <<<
Cars these days have catalytic converters and numerous other features costing hundreds of dollars to reduce pollutants to a fraction of what they were a few decades ago. If smokers want to put a tent over their head or use some other method of injesting nicotine so that the smoke won't affect other people then I won't complain. |
| Tue 04 Feb | Just say No | Z
Thanks for some ACTUAL information. Nuff said! |
| Tue 04 Feb | z | Google can find loads of information on the Internet, but sometimes you have to sift through a lot of garbage. Fortunately, I had some dead tree references.
Now here is one more fun fact about poisons from 'Poisons and Antidotes': There is toxicity rating for poisons from 1, 'practically nontoxic' (it takes a quart to kill you) to 6, 'supertoxic' (just a taste or less than 7 drops will kill). Vitamin C and marijuana get a rating of 1, cyanide and nicotine both get a 6, 'supertoxic' rating. |
| Wed 05 Feb | Ed the Millwright | 'nicotine is five times as toxic as cyanide and will kill you just as fast. Why is it 'laughable' to call it highly toxic?'
Z, You rock with the facts. I really enjoy watching you kick ass. |
| Wed 05 Feb | PC | Face it you nicotine rights advocates, a highly toxic substance should not be forced on innocent people. Smokers are irrational on this subject because they are addicted and addiction interferes with rational thought.
I wouldn't mind if nicotine addicts wanted to drink it or inject it directly into their veins; just don't force me to inhale it. I don't force caffeine on anyone. |
| Wed 05 Feb | Sleeper Service | Now wait a minute PC, I reckon those posters comparing smoking to car driving have actually got a point. Any able-bodied person who commutes less than 5 miles or so to work by car is not doing it out of necessity; this a life-style decision just a choosing to smoke is.
And driving is certainly damaging to others. The high concentration of lead in childrens brains in pre-unleaded times proved that you don't need to be 'sitting in the middle of the highway' to feel the effects of vehicle emissions. Not to mention the environmental aspects of road building or the fact that road accidents are the main single cause of death for 5 - 10 year old children.
This doesn't mean I think cars should be banned. Car drivers pay (in Europe at least) high taxes on their gas - this acts as compensation to society for the destructive effects of driving. Similarly, cigarette smokers pay a hefty premium on each pack, which compensates us for the inconvenience they cause the rest of us.
IMO, this is a reasonable approach. I don't think more laws and bans are a good idea in a free society. Better to let people do what they want, within reason, and tax the things which might inconvenience others. |
| Wed 05 Feb | z | >>> Z, You rock with the facts <<<
Thanks, but I do have to jump in with a correction before someone else does it.
This was an interesting topic so I did some more surfing. It turns out that the numbers published for LD50 values vary quite a bit. By being selective in what numbers to use one could conclude that nicotine is either 5 times more or 5 times less toxic than cyanide. It is still is a small amount of the chemical either way. I'd say the original point is still valid: nicotine is toxic and is comparable to cyanide in toxicity level. It is not too surprising that the values aren't precise. You end up with a lot of dead rats getting those numbers.
There are many other factors to consider in the comparison. Cyanide is a radical, so you have to specify the particular form: HCN or a cyanide salt. There was a recent local news story about a high school student using cyanide to poison a classmate. It took the victim about a day to die, not the 'seconds' that might be popularly believed.
Enough bandwidth used up with all these details. I think there is enough data to show that nicotine can be called 'highly toxic'. If someone disagrees, please give a reason. |
| Wed 05 Feb | Just me (Sir to you) | Given the choice, would you rather spent an afternoon in
a> a closed smokers office inhaling secondary sigaret fumes
b> a closed garage with an SUV, inhaling secondary exhaust fumes |
| Wed 05 Feb | anon | 'Anybody ever seen smoke that isn't airborne? What is smoke if it isn't airborne...dirt?'
According to Dictionary.com (American Heritage Dictionary of the English Language, 4th Ed), smoke is:
1) The vaporous system made up of small particles of carbonaceous matter in the air, resulting mainly from the burning of organic material, such as wood or coal.
2) A suspension of fine solid or liquid particles in a gaseous medium.
3) A cloud of fine particles.
When I referred to smoke not being airborne, I was really referring to the particles in the smoke (which are the problem). These settle onto walls, chairs etc etc. Depending on the kind of material, kind of particle and traffic patterns etc, once the particles have settled, they may or may not be susceptible to becoming airborne later.
If you are interested in learning more about some of the particles (other than dirt) that are emitted by cigarettes, Physicians for a Smoke-Free Canada has a pretty comprehensive (although obviously biased) site. See http://www.smoke-free.ca.
The other thing that you can do (always interesting) is to get one of those automatic smoker things (sometimes sold in curiosity shops). You attach a plastic bag to the intake, and put a cigarette in the other end. Some of them require pumping, others just work. Examine the contents of the bag after the cigarette is finished. Then think about the fact that according to the Canadian Lung Association, your lungs hold onto 85% to 99% of almost all things you inhale. |
| Wed 05 Feb | kgb | In Soviet Russia, we had a popular anti-nikotine slogan, that you could see on posters and baners in every hospital:
'1 gramm of nikotine kills a horse!'
Well... It's not obvious, why would horse smoke. But sounds convincing, anyway :) |
| Wed 05 Feb | anonQAguy | Hey - I agree smoking is unhealthful, likely in the extreme.
I grew up with several heavy smokers in my family, and as a kid, when I washed and cleaned the car, the hardest thing to get clean was the inside of the windows because they were coated with brownish, uh, shit. That was from my folks' cigarettes, clearly (well, the windows certainly weren't clear).
Odd jobs in as a teenager, I did a fair amount of washing customer's cars one summer at a car dealer, and found any number of cars whose interior surfaces -- upholstery, vinyl, dashboards, were coated with sticky, brown goo. Same stuff, because there was no mistaking it was a smoker's car once you got inside it.
Being libertarian, my primary issue with this whole anti-smoking kick is I'm opposed to government legislation about any of it.
Look, I understand the premise of the second hand smoke being that 'hey, if you want to do it to yourself, fine, but it's coming over my way and I can't stop it from doing so, so I'm breathing it and I don't want to be forced to'.
I get it.
Government regulations are normally the last resort anybody should use to try to fix a problem. The more responsibility any of us give to any of our governments to run our lives for us as thinking individuals, our liberty is reduced by exactly that much. No society will ever function perfectly without some inequity or bad luck happening to some of its members; given that, I'd rather err on the side of more freedom and perhaps less perceived safety, than to be completely safe (or at least think I am), because big brother is taking care of me. If we're going to fix the problem of second-hand smoke, I'd much rather we find a different solution than more damned laws. |
| Wed 05 Feb | Kyralessa | Is it just me, or is this one of those topics where everyone has a vehement viewpoint that will never in a million years change? (And, therefore, perhaps the topic should die a miserable death....)
P.S. To Just me (Sir to you): I have to agree with you on that orange thing. Also microwave popcorn. |
| Wed 05 Feb | PC | This is an important topic because non-smokers have had their freedom restricted for too long. And the attitude about it has been changing dramatically in a positive direction.
I did not say anything about wanting more laws passed. I said if I owned a business I would not allow employees to spend a third or more of their day out on cigarette breaks.
Non-smokers have made progress in recovering freedom, and it's more because of public opinion than because of laws. The laws just help support and enforce what most people want anyway.
If you are a smoker with children in your house, for example, haven't you been influenced by the research showing that second-hand smoke damages the health of children?
People are seldom convinced by arguments but they are almost always convinced, eventually, by evidence. |
| Thu 06 Feb | Ian Stallings | PC, your nick certainly is fitting. |
| Thu 06 Feb | PC | No, actually I am not usually politically correct, just the opposite. I have hated second-hand smoke for many years, long before it was politically correct to feel that way. I am always out of synch with the fashions, generally think for myself, generally disagree with everyone I know on most subjects. So no, PC does not stand for politically correct. |
| Fri 07 Feb | Ian Stallings | I stand corrected. I guess you just feel very fed up with being forced to inhale smoke. I can understand that. |
| Fri 07 Feb | PC | Actually I almost never have to inhale second hand smoke, at least not in quantities that bother me. I live in a no-smoking apartment and the office where I work, as I said, does not allow smoking. Most offices seem to be smoke-free these days, thanks to the anti-smoking fanatics.
Apartment houses, on the other hand, don't have any rules about this. Where I can live is therefore restricted, and I resent that. I've had some very bad experiences with second-hand smoke traveling through apartment walls.
I always know when I'm being exposed to toxic levels of nicotine because my heart immediately starts racing, my eyes burn and I feel nauseated. After a while I start choking, and that continues for hours after the exposure. But I can judge the level of nicotine in the air by the immediate effects.
SoI know from my experiences that smoke does not always stay confined within a smoker's walls. |
|
| Space Shuttle Columbia | Sat 01 Feb | RRKSS |
| I am just posting this in memory of the astronauts that flew on the space shuttle. |
| Mon 03 Feb | Gwyn | It's a very sad event but really only for their families.
However, many more sad and unjust things happen everyday throughout the world and I can't help feeling a little aggrieved by the politicians' reaction.
People are unfairly killed every single day and yet Bush or our lovely president Blair don't make a big fuss over it. Does this mean that the astronaut, who understood and accepted the risk and was sadly killed, is less important than Mrs Smith's only son who was knocked down and killed by a drunk driver?
There was an instance of mass-hysteria in the UK when Lady Diana was killed. By God it annoyed me. A couple of people who've led privileged lives die fairly painlessly and instantaneously with almost negligible suffering and the whole country goes stupid.
The Friday before it happened I read about some disturbances in North Africa (Algeria I think) where 200 women and children had been slaughtered. The children had been disembowelled in front of their mothers before they too had been killed. This is absolutely HORIFFIC. A two inch column in the middle of the newspaper is all this was worthy of.
Yes, Columbia blowing up is unfortunate, unpleasant and sad but it needs to be kept in perspective. |
| Mon 03 Feb | Brian B. | Four Marines were killed in a helicopter crash in Texas a couple of weeks ago yet the story was barely mentioned and it seemed like nobody cared. It was just as tragic as the Columbia disaster if you ask me. |
| Mon 03 Feb | I Hate Whiners | To the two simpletons who posted above.
The things you spoke of are horrific, and they happen every day. A billion dollar spacecraft carrying some of the brightest people in the world exploding in the upper atmosphere doesn't happen every day.
Furthermore, the implications of space travel and the resulting technology that the space program provides the entire world, such as CAT scans, means that any disaster in the US space program has far-reaching effects on the entire planet and it is quite newsworthy.
If the extended media coverage of this event surprises you, then you should consider getting more plugged into the way the real world works. |
| Mon 03 Feb | Ichabod Crane | 'I Hate Whiners' is right.
My aunt is dying of cancer. This is tragic to her family and mine but the world will go on. It isn't news worthy - just tragic. It won't affect the rest of the world.
Major accidents like the shuttle have far reaching implications to the future of mankind. Those of us in 'civilized' countries have benefitted a lot from the technologies that come come out of our space program.
Also blaiming Bush and Blair for the way people are responding is nothing more than a simple minded assinine response by people who don't take the time to have a larger world view. |
| Mon 03 Feb | Concerened citizen | Gwyn
You're not alone. Many people feel the same way. Media focuses on issues that are of interest to their owners and totally ignores other equally or more important issues.
Pretty sad state of affairs, I'd say. |
| Mon 03 Feb | Stephen Jones | Varying things affect the 'newsworthiness' of a story, and as long as you realize that the purpose of the media is to produce what people want to read/see/hear.This is true of Holly/Bolly/Wood films, entertainment channels, Ophrah Whitney and Mills and Boone, and the fact that the news media occasionally deal with facts should not be allowed to cloud the issue.
Things that affect newsworthiness:
a) Where the dead come from: one dead Brit or American = 5 dead Frenchmen = 20 dead Russians = 100 dead Indians or Chinese. Strangely enough the figures even hold outside the US or UK, so the local Arab newspaper will carry a story about a small mishap in the States ahead of a major disaster in India, even though it has many, many more Indian readers than American ones.
b) How many die at the same time. 50 Brits dead in one train crash is greater news than the same number dead in separate car crashes on the same day (the latter in fact is hardly likely ever to make the news).
c) The novelty of the death. A space shuttle that blows up (even though its the second time round) is much greater news than a jet plane, let alone just walking across the road. Also being gunned down in the States is old hat, whereas it can still make the front pages in the UK.
d) How much people can identify with the victim. If you haven't known anything about a person before it is hard to be involved in their death. On the other hand the death of Lady Di managed to cause a fortnight's mass hysteria in a sigfificant part of the UK's population.
All this of course does not change the fact that seven people have died in the prime of life, and their families have every right to our condolences. |
| Mon 03 Feb | anonQAguy | We humans are certainly an oddball bunch of creatures, aren't we?
Observations made here about human nature are pretty much correct, as unpalatable as that may seem to some--'If it bleeds, it leads', or so the quip about what's 'newsworthy' goes. Which is one reason I like the quote from the movie 'Contact' about how humans are remarkable because we're capable of such magnificent dreams, and such horrible nightmares. A strange but true dichotomy.
The space program, the people in it, and the fact that we (I mean the 'we' globally; I'm American, but look at our country's ethnic stew, the demographics of the shuttle crew, and the the Russian's efforts as well) keep going back, and keep trying to do more, go higher, farther, etc, is certainly an example of humanity's best and one of humanity's magnificent dreams. |
| Tue 04 Feb | Alberto | What's the point of rating horrors?
I'd say the million people killed in Rwanda a couple of years ago (mostly hacked to death with machetes) got less airplay than the space shuttle crash.
Still, the shuttle crash is sad, and one who cannot feel for the victims is a hard person indeed. |
| Tue 04 Feb | programmer | The shuttle crew died in a meaningful, heroic way -- returning from a mission to space. Their death reflects their willingness to risk their lives to accomplish something for humanity.
So, I am not sad about their deaths -- in my mind, they had the great privilege of dying while completing a great mission. It was their privilege to die heroically.
The families of the shuttle crew will always have this story to tell for generations to come, about how their loved one died doing something great. |
| Fri 07 Feb | tapiwa | A single death is a tragedy; a million deaths is a statistic.
--- Joseph Stalin |
|
| handle connections -select or multithreading? | Thu 06 Feb | sock |
| Which is better to use for multiple client? single thread for each client, or something like select() in UNIX? |
| Thu 06 Feb | IanRae | If you have lots of clients (hundreds or thousands) then select() (or some form of non-blocking i/o) is necessary. If you have lots of clients that do just a little i/o then a pool or worker threads can work well. Otherwise use sock per channel.
If you're app is not already multi-threaded then I would avoid it like the plague. Single threaded apps are much easier to develop and debug. |
| Thu 06 Feb | runtime | Use select() or WaitForMultipleObjects(). |
| Thu 06 Feb | Nat Ersoz | It truly depends on what you're trying to accomplish. Are you writing a massive server with lots of connect requests - and possibly short socket lifetimes (like http)?
Or, perhaps you're writing a streaming server or client which is going to send lots of multicast data over some longer period of time.
Take a look at this Apache document, which will describe the problems of accept() and select() along with some interesting paths for solutions you might chose to investigate.
Are you doing something massive? If so, then the question is not just should I use select() as a demultiplexer vs. threads and no multiplexer. You should look into IO methods and benchmark overheads with respect ot what you want to do.
If its not massive, then just do whatever makes life simple and maintainable. That too will depend upon you application.
Either way, there is no single answer. |
| Thu 06 Feb | Chris Tavares | There are two basic ways to handle multiple connections in the server. You don't mention what OS you're using - I'll assume windows at the moment.
The select() style is known as the Reactor Pattern. You're familiar with the basic idea here.
The other choice is async I/O which is generally better under windows (select() is implemented fairly poorly on Win32). This is the Proactor pattern.
There are writeups on both of these styles with compare/contrast at:
http://www.cs.wustl.edu/~schmidt/patterns-ace.html
Once you get past the theoretical stuff, on Win32 the best way to do high performance servers with many clients is to use I/O completion ports. A completion port is basically a thread pool manager built into the OS specifically for managing I/O requests.
Under Unix, select is pretty much your only option. There are async I/O operations available on some unices, but they all work slightly differently. |
| Thu 06 Feb | Nat Ersoz | http://httpd.apache.org/docs-2.0/misc/perf-tuning.html
Whoops, forget the URL ^^^ |
| Thu 06 Feb | Steven E. Harris | Why is it an either-or question? Consider using the ACE_TP_Reactor from the ACE library. It's not the same as the thread-per-connection model, but can still enjoy some of the same responsiveness.
http://doc.ece.uci.edu/Doxygen/Current/html/ace/classACE__TP__Reactor.html |
| Thu 06 Feb | anon | There's a good discussion of this subject here: http://www.kegel.com/c10k.html |
| Thu 06 Feb | sock | does anybody know how EJB's handle multiple clients internally? does it use one client per thread model? |
|
| IP address to location resolution | Wed 05 Feb | Alex Choo |
| Hello.
Can anyone explain the technology behind IP address to geograhic location resolution?
There are companies like GeoBytes and Quova that sells this service.
Thanks |
| Thu 06 Feb | Li-fan Chen | They work using various of ways. But starting at the very top (think thousands of acres).. basically top level network providers assign regions of ip addresses to geographical location. They had to take away ip addresses a while back to do this, but it was relatively painless because of DNS (you just assign a different ip to the same domain).. But there are times when that just won't work, because the organization using can't give it up--for security reasons for example--that's why those RSA guys are making so much money, because IP and DNS both can be spoofed--and we need client and server authentication using cryptography to ensure you really are downloading service packs from Microsoft, your CIBC account number isn't going to the bahamas, and your Flash upgrade hasn't been hacked...
At lower levels, network providers that are small are shrinking.. or they buy their services (and ip pools) from the big guys. Again, the big guys knows the addresses of the region the little guys are covering. Say any random contiguous zipcode ranges--and you just associate that with the ip number.
Roaming using mobile ip is no problem. Because once the packets exits the laptop over the VPN out of the company firewall it's really home. So if you are in Germany but your company FedEx is in Atlanta, your packets are coming from there. This all helps mapping make sense in the end.
But this is all coming out of my rear end. Check with the experts :D
-- David |
| Thu 06 Feb | Nice | IP addresses (or the block that they are in) can be queried with the address space registrars. This information can often be grepped for the address of the registrant.
This is possibly why when Joel talked recently about Peer1 s/he said that google assumed s/he was in Canada and redirected him/her to google.ca.
Also for fun look at: http://catb.org/~esr/jargon/html/entry/ICBM-address.html |
| Thu 06 Feb | Karl | You can use ARIN.NET to take an IP and find the company that is assigned the block containing that value. For example 'joelonsoftware.com is 66.199.177.116. Using whois on ARIN.NET that maps to:
Peer 1 Network Inc. PEER1-BLK-03 (NET-66-199-128-0-1)
66.199.128.0 - 66.199.191.255
Peer1 Internet Bandwidth PEER1-NYCAT1AVLAN1-04 (NET-66-199-177-112-1)
66.199.177.112 - 66.199.177.127
That does not aways give you a percise location, but it's a start. |
| Thu 06 Feb | Karl | should be:
That does not always give you a precise location, but it's a start.
...and I can't always spell this early... |
| Thu 06 Feb | Li-fan Chen | Part of the reason IP pools were assigned with geography and regions in mind is to reduce the load on most routing tables. It's the table used to look up where to send the packet request from your computer to the destination server. Having pools and regions physically mapped helps reduce the processing power and memory requirements of routers a lot. |
|
| VB.Net vs C# | Wed 05 Feb | B# |
| I am about embark on the .net learning curve and I am torn between VB and C#.
I have almost no C experience (beyond two intro classes) and I have fiddled with VB.net for a couple of days. I feel like a complete rookie (I have 4 years experience with VB 6 dev ) so it occurs that now would be the ideal time to C#.
Any lawful impediment why we shant be joined? |
| Wed 05 Feb | Mr Nutty | VB.NET and C# tend to be so similar except very superficial syntax differences that I don't think it makes a particular difference which one you learn, particularly since you use a common class API for both.
Learn one and then pick the other one up in about 2 days. Doesn't matter which you learn first, IMO. VB.Net might be a tad easier if you're coming in from a VB background. |
| Wed 05 Feb | Wayne Venables | I just recently installed Visual Studio .net and, like you, I had to decide which language to run with.
I'm an avid VB developer but I also have experience with C, C++, PHP, and other C-like programming languages.
That said, I don't see any point in learning VB.net. The languages are virtually identical except that VB.net is a bit more limited and looks a bit like VB6 code. C# is the primary .net language, you can't really go wrong using it. |
| Wed 05 Feb | Sam Gray | I'm at about the same point (4+ years of VB dev experience, starting .NET) and chose to go with C# over VB for two main reasons: so I don't get confused when I go back to VB6, and so I get practice looking at code that *looks* very different (e.g., uses curly braces), even if it's functionally equivalent to VB.NET. |
| Wed 05 Feb | B# | I am leaning toward C#.
One thing I didn't expect was the resentment I feel for not being able to leverage more of my current VB 6 knowledge (such as it is). I anticipate this wouldn't be as prevalent with C#. |
| Wed 05 Feb | B# | Thanks for the input, it is appreciated! |
| Wed 05 Feb | Sam Gray | Right there with you on the resentment. Learning the language is the easy part -- but the API being so radically different is making me nuts! |
| Thu 06 Feb | Nick | The first (and only) .Net book I've read was a C# book. I was ready to walk away from VB for good, but I'm getting the sense that the ASP.Net community is largely migrating to VB.Net. It's hard to tell though, since I haven't come across too many .aspx web pages.
In the long run, you'll probably end up learning both. |
| Thu 06 Feb | AEB | It doesn't matter which one you use, they both have advantages and disadvantages. (Following based on .net 1.0, haven't spent much time with 1.1)
For example, C# allows you to use unsigned ints/longs and vb.net doesn't. This is actually a win for VB because the unsigned variable types are not CLS compliant (i.e. if you want other languages to call your methods)
In another example, C# is case sensitive and allows you to create public method1() and Method1(). The problem here is that this results in non CLS compliant code, since CLS is case insensitive.
One of the biggest wins for C# is that it allows you to embed XML-formatted documentation into the code (kinda like javadocs) Why VB.Net doesn't have this feature kills me to this day.
I know some of you hate the new API but for someone like me who went from VB6 to Java to .NET, it's like the best of both worlds (windows gui/performance & an object-oriented class library) |
| Thu 06 Feb | Matt Conrad | I am a mostly-VB developer who has found he really likes C#. It just feels nice and clean to me, and making the break to a new language syntax actually helped in adjusting to the new underlying framework.
My first .NET project was in VB.NET and I found the (superficial) similarity to VB more confusing than helpful.
Eventually I will go back and do another VB.NET project, like others I expect to end up learning both. |
| Thu 06 Feb | Sam Gray | I didn't mean to give the impression that I hate the new API -- on the contrary, I can tell that a huge amount of thought went into it, and so far, it's pretty fabulous. It's also huge. Just *learning* it is what's making me nuts. ;> |
| Thu 06 Feb | ODN | I too faced the language choice dilemma. In college I used C++ almost exclusively, but for the past three years have been using VB at work. I chose to use VB.NET for new work, for several reasons.
First, I'm the lone developer on my projects, and want to increase the odds of eventually getting someone else on the 'team'. Plus, if/when I leave, I want to make it easier for my employer to find someone to take over. The lowest-common-denominator/highest-common-factor aspect of VB.NET is an important selling point for me. Because of this, there are fewer uber-geeks in the VB culture, but that's a price I'm willing to pay.
Second, I prefer the more verbose VB.NET equivalent of curly-braces. Yes, it takes more typing, but not that much more if you use IntelliSense to your advantage. I think it makes my code just a bit more self-documenting than I would otherwise get using C#. Some feel the VB style makes the code less aesthetically clean, but then wouldn't commenting your code create the same cleanness problem? I prefer explicitness over cryptic cleanness. It's a similar idea to 'premature optimization is the root of all evil.' I think of curly braces as a form of premature optimization.
Third, an unintended side-benefit of learning to do things the VB.NET way is that I've learned a lot more about the VB problems that VB.NET solves. So it helps me understand better the work-arounds necessary to achieve object-oriented results when I need to do old-fashioned VB 6 work. Reading Francesco Balena's excellent 'Programming Microsoft Visual Basic .NET' book has helped a lot with this, as he also includes his 'Programming Visual Basic 6.0' book on CD with it, with many comparisons and references to VB 6 techniques from the VB.NET text.
The best thing you can do though if you pick VB.NET is make sure you're fluent in C# too, since you will often find in your reading that articles on the more advanced .NET concepts are often demonstrated only in C#. Plus, if the next version of C# supports generics, iterators, anonymous methods, and partial types, but they didn't get around to implementing VB.NET support, I would seriously consider moving primarily to C#. I have run into an instance where I'm forced to work in C# to perform alpha-blended drag-and-drop because a GDI (not .NET's GDI+) function call requires a pointer, which requires you to use C#'s 'unsafe' code section. But for everything else, VB.NET is functionally equivalent and preferable to C# for my needs. |
|
| Website statistical solutions | Wed 05 Feb | Farid |
| Hi all
What web statistical package do you recommend for a medium sized corporate web site?
Currently were using webtrends 5.0. And were wondering whether to upgrade to the latest version of Webtrends or purchase a totally different package.
Your feedback is greatly appreciated. |
| Wed 05 Feb | Jan Derk | I mainly use webalizer. It's old but gives me everything I need. Awstats is good too and improving a lot lately, but it is written in perl thus a little bit slower. Not that you'll notice it on most sites. Reverse DNS lookups have much much more influence on log processing speed. |
| Wed 05 Feb | Nathan Silva | We use WebLog Expert. It's a nice inexpensive clone of WebTrends. |
| Thu 06 Feb | tapiwa | I have used awStats before, and I found it more than sufficient for my needs. Check it out.
http://awstats.sourceforge.net
they also have a comparison with other web analysis sotware on the page |
| Thu 06 Feb | Joel Spolsky | I've just started playing with SiteMill. It seems radically easier to set up than the other packages. It seems to understand log file formats without complicated configuration files. |
| Thu 06 Feb | Joel Spolsky | ... and it's actually called SawMill, not SiteMill. It was the easiest to set up so I'll probably buy it. |
|
| Colocating: Redundancy | Wed 05 Feb | Adam Young |
| Get a second server. Even if it is significantly weaker than the big burly box. If the Big server goes down, have a load balancer set up that can redirect traffic to the smaller one in a pinch. Hardware fails. Plan redundancy into the system.
Put your primary Email server at the colo and use it as a smart host for your office. The minor delay in getting messages is much better than them getting dropped when your T1/DSL/OC3 goes down. Since Joel has seen that happen in the past, it is likely to happen again no matter where they get connectivity from. This should be a different box from the web server. Port filter between the email server and the web server. Keep your network from being crunchy on the oustide with a chewy center.
Make it really easy to run security updates.
Turn off all unnecessary services. FTP is quite hackable. Run all connections through an SSH tunnel. Sorry, I dont know how to do this on MS, can someone with Win experience describe?
Plan code updates as part of your mainenance. Make them easily runnable in batch mode so they can be run at 2AM (low load time) w/o hand holding.
Great article, Joel.
In the Bay Area, check out InReach. They were pretty good to us. They are in Oakland. |
| Wed 05 Feb | Brian Hall | Redundancy and reliability are great for mission critical systems, but doesn't load-balancing across 2-3 servers usually cost a freakin' fortune?
Hard to justify for something that isn't high-value mission critical. |
| Wed 05 Feb | Joel Spolsky | These are all good ideas! If you're looking for a sysadmin, hire Adam.
We'll have a standby backup server (using the old hardware) at the office -- I want geographical diversity because downtown New York City *has* been known to be unavailable for weeks at a time. But that increases the time to go live again in the event of a failure.
Speaking of which... what do people use for their DNS TTLs? I've been using 1 or 3 days, but that means if an IP address changes it takes a while to get through to the world, which can be bad if an IP address must change due to some catastrophe. |
| Wed 05 Feb | Adam Young | I hadn't thopught of this before, but One thing you could do is use DNS round robin to deal with the TTL.
Say you have three locations: SF, Denver, NY. You put each as a DNS entry and each gets 1/3 the traffic. Big problem in NY, and only 1/3 of the people have an invalid DNS entry.
We just accepted the delay since for the most part, it was out of our hands. When you make a DNS change, you can force a push of the info at that time, but it still takes time to propagate to everyone's DNS servers. You could probably trian and error this with an alternative domain name (You did register joelonsoftware.net, .biz, and .org right?)
BTW, I am actually a coder, and only ended up with SysAdmin duties because I didn't have a Sys admin. But thanks for the Vote of Confidence. Necessity is a mother. |
| Wed 05 Feb | BDKR | >>
Redundancy and reliability are great for mission critical systems, but doesn't load-balancing across 2-3 servers usually cost a freakin' fortune?
<<
Whether or not it costs a fortune depends on the route you take. We use Turbo Cluster from Turbo Linux, but are about to go with the Red Hat LVS approach as it seems Turbo Linux has dropped off the face of the planet.
Anyways, we have a heterogenous cluster in the backend working through redundant cluster managers and multiple firewalls. The cost was 1995.00 dollars for 10 boxen not including the cluster managers. That's not a bad cost at all considering that at the time, I wasn't comfortable with the LVS project.
Cheers,
BDKR |
Wed 05 Feb | Jeff |
Get a second server. Even if it is significantly weaker than the big burly box. If the Big server goes down, have a load balancer set up that can redirect traffic to the smaller one in a pinch.
It's easy to stick a load balancer in-front of a bunch of servers. It's much more difficult to make sure all servers have the exact same data at any time. |
| Thu 06 Feb | Robert Moir | Hardly difficult. If you've got the time and budget to play with load balancers you've got the time and budget to buy in a product or write a script that updates all the servers in a web farm with content added to the one server you designate as the 'check-in' server where developers add all new content. |
| Thu 06 Feb | Ralph Chaléon | I'd like to insist about the difference between Load-Balancing and Fail Over.
Load Balancer are still expensive (they were VERY EXPENSIVE 3 or 4 years ago).
I hope it's because the load-balancing strategies (giving weight to one machine depending on its hardware, actual load, etc ...) are complex to implement.
I believe we must be very careful speaking about high availability, because when you start playing SPOF hunting, the fee grows incredibly fast.
When you realize 15 minutes off is acceptable for your system, which is true for nearly EVERYONE including amazon.com (if I want to buy something and the site is down, I'll just try later), you begin to get the point.
On the other hand, it's impossible to get totally fail proof. I assume some south corean sysadmins know exactly what I mean.
Having a site offline is bad, no doubt. But there are easy and cheap things you can do to handle it.
- RAID disks (preferably hardware).
- double power supply.
- A good feeling with the NOC crew of your collocator.
- Good security practices.
Concerning this last point, the use of SSH or Terminal Server through a secured channel (IPSEC or RDP encryption) can be enough. |
| Thu 06 Feb | JP | >It's easy to stick a load balancer in-front of a bunch of >servers. It's much more difficult to make sure all servers >have the exact same data at any time.
Not really. Use some basic servers and mount a couple of disk packs onto them (one for all the live data, second one is for redundancy), then force all changes to be made through a function which will write them to both disk packs. Or even just do a periodic rsync, since the second disk pack is backup data, not live data. |
| Thu 06 Feb | daglenn | Coming from the land of hardware load balancing and web server redundancy to the land of 'how can we get balancing and redundancy on the cheap' I was happy to find a reliable and workable solution (on linux).
Become the authoritative dns for your domains (you resolve all requests) and run dbjdns ( http://cr.yp.to/djbdns/ ) instead of bind and use a small TTL. Using at least two web servers (with djbdns on each, primary and secondary) and your web server of choice on each. Setup djbdns to round-robin your dns requests to your various web server instances (w/inexpensive dual nic card servers you could run 4 instances total of your web server of choice, each individually IP'd). Add your 'web server health monitor of choice' and instruct djbdns to stop sending requests to afflicted servers ( http://cr.yp.to/djbdns/balance.html ). Add this to as much redundant hardware as you can afford (switches, routers, firewalls, etc.).
You now have effective load-balancing which is very similar in concept to a Cisco hardware solution (LocalDirector w/separate 'nanny') but much easier to manage. An aside, anyone running Bind should have their head examined. djbdns is much more robust ( http://cr.yp.to/djbdns/blurb.html ), secure, lightweight, guaranteed ( http://cr.yp.to/djbdns/guarantee.html ), quite easy to administer, virtually bug-free, and financially free.
~dave |
| Thu 06 Feb | daglenn | Argh, djbdns homepage is http://cr.yp.to/djbdns.html .
~dave |
| Thu 06 Feb | Rodger Donaldson | Load balancers aren't just expensive; many of them are extremely immature; for example, you'll read the glossies that claim they can route traffic based on load on the system, but when you unwrap them, you find they go horribly wrong and you end up round robin. Then you discover that they have all sorts of conniptions with cookies and SSL. Oh, the pain of load balancers.
Which isn't to say they aren't getting better, but you really need to try before you buy; my allergy is based around a number of clients who've have more outages caused by load balancers than resolved by them. Moreover, load balancers don't solve the problem of requiring geographical diversity - put a load balancer in New York rotating between Canada, New York, and San Fran, and all the traffic goes to the load balancer. Which is now your single point of failure.
So you'll still want DNS with a short TTL when your load balancer fails; you'll still want DNS with a short TTL when a whole datacenter fails. And unless you're prepared to spend a fortune on equipment, testing, and configuration, DNS is a win for most sites.
Finally, load balancing across DR and Production sites is really attractive, but it does carry a risk - it's very easy to end up relying on your net capacity, and when one centre goes offline, you suddenly discover your performance from the other system(s) is unacceptably slow.
Oh, and make sure when designing the system that you can come out of DR. I'm aware of one company who's core systems replicate from production to DR, but in practise, their DR is a waste of money. Why? They have no idea how to get transactions in the DR environment back to production. So they... never invoke DR for the core system. Not a problem with a common or garden content site, but a bit more important for financial systems... |
|
| New Server at Peer 1 | Wed 05 Feb | anonymous |
| Quoth Joel:
You may be wondering if a single server connected to a T1 was enough for all the traffic this site gets, about 100,000 hits a day, more like 500,000 when I write a new article or get mentioned on slashdot. The short answer is, it was fine. Since I publish the site using CityDesk which simply generates a bunch of plain HTML files, the server doesnt have to do anything tricky like generate each page from a database on the fly.
/quoth
Joel, get some sleep. Come back and reread your article. The processing capabilities of your server and software have, except in rare cases, little to do with how much bandwidth is consumed by those who hit your web site. That is to say that Fog Creeks front page wouldnt be any larger or smaller if it were the exact same content generated dynamically for each visitor. |
| Wed 05 Feb | Joel Spolsky | Agreed. The SINGLE SERVER was the point there. A long time ago I used Manila to generate this site. Manila is written in an interpreted scripting language, and I was running it on a rather slow (Pentium 333) CPU for Joel on Software, and the CPU would go to 100% when it was slashdotted and not quite keep up with the traffic. But when you're serving static files, even a ridiculously outdated CPU could keep a T1 full.
The other part of this paragraph which I omitted was that a T1 just about handles the capacity you need when you get slashdotted, but only just. |
| Wed 05 Feb | Robert Moir | When budgets were tight for a website at work a few years ago I rescued a P133 server from a skip and we run the college web site on that. No one every complained about speed, not even the developers.
And while we hardly had slashdotted kinda volumes of traffic, college websites are busy enough.
Building a web server to serve all or mostly static content is about as easy as it gets. |
| Thu 06 Feb | Michael | Joel, you write: 'so I ran out to J&R Computer World and bought a $35 Linksys 5 port switch so we could hook up all three network jacks.'
So I may have this wrong, but does this mean all your website traffic is going to go through this LInksys box? If so, then it might be worth spending a few more bucks to diminish this single point of failure.
Why? In a previous office setup we lost a lot of productivity one hot week with weird network problems. Replacing all the Linksys switches with another brand fixed all the strangeness. We postulate they were overheating and acting weird.
Of course your cage may stay cool and chances are the Linksys will work just fine (a switch is a switch is a ... ?), but something to think about when high quality switches are now relatively cheap. |
| Thu 06 Feb | pb | BTW, Dave wondered how Joel could get so much more traffic than he (by something like 10x). I reckon is more of a counting difference, no? |
|
| "Really" Starting a Small Business? | Wed 05 Feb | Don Wallace |
| Has Joel ever written an article describing how he bootstrapped Fog Creek Software from essentially nothing? Or *was* it nothing? Im always in search of models of business development that I could apply for my own business.
Sic: most people in this field who have achieved some success speak from the mountaintop and let you know that a miracle occurred and they were blessed of the Almighty and theyre so great and special and that worms like me, by their sights, had better forget about it because were scum... :-) I cant imagine Joel getting anywhere near pompous, though.
IE, a few bullets:
Was Fog Creeks first product or offering CityDesk?
What supported Fog Creek while products were not selling yet?
Did Fog Creek and/or Joel have preexisting relationships and arrangements that were leveraged to get CityDesks name out there? Or was the brand developed slowly and organically as with any shareware or small commercial title?
Im curious especially about how much money and what types of effort to exert in publicizing and marketing a new software product. |
| Wed 05 Feb | Joel Spolsky | The first product was FogBUGZ, followed by CityDesk. We did consulting pretty much from day 1, although that has now tapered off to zero since we can be profitable from software. Brand development was 'organic' and we haven't spent anything more than pocket change on advertising or marketing yet.
So, yeah, it was bootstrapped from nothing. |
| Wed 05 Feb | one programmer's opinion | Yup. I would love to read about this type of stuff as well.
Don Wallace wrote, 'What supported Fog Creek while products were not selling yet?'
Don't quote me, but I believe Joel mentioned a while back that he (and his employees?) does consulting work to supplement the commercial product development work that his company is known for. |
| Wed 05 Feb | pb | FogBugz pre-dated CityDesk by 1-2 years.
There are numerous outlets to getting a product like FogBugz and CityDesk 'out there'. An outfit with follow-through has a big leg up in the marketplace. There are dozens if not hundreds of bug tracking and content management products but most creators lose interest and never follow-through. |
| Wed 05 Feb | Don Wallace | Joel, thanks.
It's especially interesting that you haven't paid significantly for advertising. That's good news because most new businesses are cash starved, and I really don't like throwing out wads of money without a clear way to see payback.
FWIW, I have been doing contracting for the last 10 years and it's getting pretty old to march to someone else's orders and build their business for them. My dissatisfaction with this niche predates the tech bust. Contracting doesn't scale well as a business, either. |
| Wed 05 Feb | J | The great thing about contracting is that it gives you an in-depth window into the needs of a large range of customers. The product at my company was developed from this sort of 'market research' (the kind where the subject actually pays you) and we've done pretty well. |
| Wed 05 Feb | Don Wallace | >> The great thing about contracting is that it gives you an in-depth window into the needs of a large range of customers.
A large drawback in this regard can be doing contracting to develop companies' products. The problem is generally that you're bound by non compete agreements from using your knowledge elsewhere.
This is not so much the case with end user type clients (which I think you're referring to) but a lot of people you wouldn't expect seem to believe that their idea is a potential gold mine and they should hold all the rights in perpetuity.
I'm pretty well convinced that I'm going to have to find the next Great Product Idea on my own and disregard my client based projects. |
| Wed 05 Feb | Alex Chernavsky | Don Wallace wrote:
'It's especially interesting that you haven't paid significantly for advertising.'
Advertising is highly over-rated. I've posted this link before, but here it is again:
http://www.astrocyte-design.com/interests/word-of-mouth.html
I recommend the book that's referenced toward the top of the page. |
| Wed 05 Feb | Tom Davies | I would also like to cast my vote for an article detailing a high-level view of how Fog Creek came to be. There seems to be a lacking of good 'Starting a Software Company', type of information out there. |
| Wed 05 Feb | Brian Hall | I too love to know about how businesses were actually started and gotten off the ground.
I'm personally most interested in the financial aspect. Joel, how'd you pay to get it all started? Loans, other investors, right out of your own savings, etc?
I know it is almost taboo to talk about such things (sort of strange, when you think about it), but I think the detailed business story of Fog Creek would be really interesting. It'd make a great article, and would be especially useful to all those poor wage slaves and independent contractors out there that are considering starting their own business, and wonder how you successfully did it.
And for us business-nerd voyeurs, we'd be especially interested too. :D ;) |
| Wed 05 Feb | Brian Hall | About Advertising:
To anyone in the business-decision field I cannot more highly reccommend the book 'Jump Start Your Business Brain' by guru inventor and marketer Doug Hall. The man's a genius at what he does, really, and he really goes into detail in how to have vastly more effective marketing (including advertising).
It's not that advertising can't pay for itself quickly and be highly effective, it's that so much advertising is so stunningly bad and doesn't utilize any of so many of the scientifically proven findings that are available. I have trouble remembering the last TV commercial or internet advertisement I saw that provided an Overt Benefit, Real Reason To Believe, and a Dramatic Difference - which is what you need to be truly efficient and successful, thus so much advertising on TV and the internet is either a huge waste of money or is way less profitable than it could be.
One must not dismiss the potential power of advertising - but one can equally not afford to think that any old advertising will do, just as one cannot expect to be profitable with just any old product for sale.
For those considering advertising and such directed marketing efforts but doesn't have much time to figure out what they should do, I reccommend two key books on the subject that I just love and reccommend to people everytime the opportunity arrises:
1) Influence: Science and Practice by Robert Cialdini (perfect for salesmen too, which is what admen/marketers basically are)
2) Jump Start Your Business Brain by Doug Hall
They are wonderfully fascinating and informative reads, and they're pretty easy to exploit the hell out of to boost your business' chance of success and increase profitability.
I expect to re-read them many times in the future. |
| Wed 05 Feb | Mitch & Murray (from downtown) | ' ... we haven't spent anything more than pocket change on advertising or marketing yet.'
Well, that is not quite true. JoelOnSoftware is the marketing engine for fog creek, and I would bet running this site over the years has cost a bit more than pocket change.
Just because you didn't buy an ad in Dr. Dobbs doesn't mean you aren't spending money on marketing. |
| Wed 05 Feb | Andrew Reid | 'JoelOnSoftware is the marketing engine for fog creek'
Good point. Who would have heard of FogBUGZ if it wasn't for the widespread popularity of JOS?
Joel should certainly consider hours spent on JOS a marketing investment. |
| Wed 05 Feb | Daniel Shchyokin | Don Wallace wrote:
'It's especially interesting that you haven't paid significantly for advertising.'
Advertising is highly over-rated. I've posted this link before, but here it is again ...'
I disagreed with you at first, but now I have seen the light, In a seperate business I have (Insurance), based on 3 months part time experience, I would say referalls, and aquantinces work at least 10 times better in generating inquiries as advertising. |
| Wed 05 Feb | Steve Wasiura | I think the time FCS spent on JOS still pales in comparison to the thousands (at least) that other companies spend on adverts, and JOS is a sublime way to build an audience for your product, by letting them find their way to your product out of shear curiousity for the mind behind these articles.
... and yes, let's see the PBS version of the creation of the creek. Is Ken Burns available to direct it? |
| Wed 05 Feb | sedwo | Call it a coincidence, but the last couple of weeks (on and off) I've been searching all the archives about how Fog creek came to be. I seriously thought that this story was covered already, and hence didn't bother asking. (duh)
I've been reading almost every article that JOS published, trying to inherit as much understanding and mentorship from it, in regards to currently building my own software business.
Nevertheless, all my searching through the past-to-present archives revealed very little 'technical' aspects with regards to how Joel created fog creek.
The story so far: (IMHO)
His time at Microsoft taught him a lot, and earned him a pretty penny too (~$500,000) through mostly stock. With that money he took a couple of years off to do a bike trip, and some side consulting once in a while. I assume he was slowly brewing FogBUGZ on his own spare time. Once the product was of a mature state, the 'part time' business began more seriously and I assume (again) grew into what it is today. With fog creek turning a profit(?), he probably won't need to dip into his savings to support it.
The details though of how all that came to be and the struggles and triumphs; well, only Joel can comment on that. |
| Thu 06 Feb | edichka | As far as I know, MS stock options mature in about 4-5 years. I'm not sure if Joel spent that mich time there. Just a thought. I despise counting money in other people pockets. |
|
| Starting A Small Business | Wed 05 Feb | CRM |
| Folks,
I am in the midst of getting a start-up off the ground and any assistance that could be offered here would be invaluable, especially from those of you who have treaded down this same path.
As a primarily Windows shop, we have to deal with all things MS. As such, a quick look around and the software costs that we are going to incur seem somewhat ridiculous.
I would require the following for each developer:
* Visual Studio
* Office
* Windows (2000 Pro/Server)
* SQL Server
* Visio
What is the most effective means for managing costs/licensing issues, for at least 5 developers?
MSDN for everyone?
MSDN + a combination of single seat licences?
Other ideas?
For those in this same position, what has been the most effective strategy for you? |
| Wed 05 Feb | Gwyn | Buy one copy of the software (to be fair) and then reuse it a few times! As far as M$ are concerned I would only pay what I feel it's worth. In the past this has been zilch but they've done such a good job with .NET that I've rewarded them by buying an MSDN subscription for myself.
I'm not an out and out software pirate but I'm buggered if I'm paying $x00 for Office at home when I only use it a couple of times a week. I've already got a licence at work that's unused when I'm not there. Same (used to go) for Visual Studio; I've got a licence at work so when I come home and do my own stuff, well I'm just continuing the use of the that licence!
Clearly this is illegal but there's no chance of this being detected so it's becomes more of a moral issue.
I bought Frontpage back in 98 and there were some big bugs in it... Did I get any support from M$? Nope. When I was home the UK office was closed so I rang through to the states. 'Bought it in the UK?' 'Sorry that's a different company we can't help'. When I persisted the bitch just put the phone down!! So I resolved that no more would I pay for M$ software... (until .NET came along...) |
| Wed 05 Feb | Ralph Chaléon | I don't know what your business is exactly about, but I'm sure you'd prefer to keep some cash instead of giving it to M$.
If you can make your customer support the licence fees (like working on a project with included licences), do it.
If you're working on software you want to sell, the 'minimal approach' is perfect.
It's not totally unfair to pay your licences once you begin to make cash. |
| Wed 05 Feb | Simon Lucy | Buy one MSDN subscription to get all of the SDKs and the full Visual Studio and tools. Then for the other 4 developers buy Visual Studio, the lowest spec package available from ebay you might also be able to pick up Academic editions. |
| Wed 05 Feb | Simon Lucy | Oh and for the 'Office' applications use Openoffice for internal use (no cost) and get the MS Office applications with your MSDN subscription. |
| Wed 05 Feb | Marc | One copy of MSDN will give you the basic tools you need. 60% of MSDN isn't licensed, so there isn't a need to purchase the whole thing 5 times.
Most of the PC's you buy will come with Windows 2000 (or can be requested to), so that isn't a problem.
Also, become an OEM. When you are an OEM you have access to the 'Action Pack'. The Action Pack includes Office, Visio, Project, SQL Server, Exchange, Windows, and some other stuff. It costs around $250.
So:
* 1 copy of MSDN
* 5 copies of the 'Action Pack'
* 5 copies of Visual Studio |
| Wed 05 Feb | Gwyn | OEM sounds tempting.. What's the criteria for becoming one and where do you go to do it? |
| Wed 05 Feb | John Ridout | The MS Action Pack is good but is limited to two subscriptions per organisation but that will get you a lot of licences. You don't need to be an OEM ot subscribe to the MS Action Pack. My update for the Action Pack arrived this morning it's a good deal.
Do all your developers need the Enterprise edition of Visual Studio? Will some be fine with the Professional Edition?
'As far as M$ are concerned I would only pay what I feel it's worth.' If you think it's not worth the money don't buy it. There are other tools out there. |
| Wed 05 Feb | Gwyn | There's a big difference between worth paying full price and worth paying part of the full price.
Anyway, had a look at the Action Pack and decided I should probably get it so went and ordered on the M$ site. Well, I tried to. When I put my company details in it sent a mail to my hotmail account with an authorisation code in it. To complete registration you have to type the code in.
Only problem was that my hotmail account had been deactivate. So that's it. I cannot get the code and there is no option to have another email sent or whatever. I rang up the quoted support number. They directed me to another number who said they couldn't help and had no idea who could.
'Can I start a subscription over the phone?' 'Nope, gotta be done online.'
'I can't do it online because your website is shite.' 'Too bad.'
'So I'll just run pirate copies because you don't want to sell me a subscription.' 'If you like'.
Hmmm. Great customer support! |
| Wed 05 Feb | ? | It's Microsoft's problem that you had them send the details to an email account that you hadn't been using? |
| Wed 05 Feb | Gwyn | It only told me it AFTER it sent the authorisation, it didn't say it was going to do so. Also, the hotmail account expires after 30 (?) days of inactivity. I've no idea whether it's inactive or not until I try to use it.
Having been sent a first authorisation there's no way of sending another; you're stuck in a endless loop of scripts that you can't break out of.
So, yes, I would say it is their problem. And the dreadful customer support experience you then receive. |
| Wed 05 Feb | Philip Janus | If you're hiring developers full time, then you're probably paying what, about $100k+ per year for them?
MSDN is less than $2k/year and covers all your MS software needs. (I've seen places where you can pick it up for under $1500). If you contact MS you might even be able to get a better deal (tho I wouldn't hold my breath - this is an area where MS sucks)
Also look at the MS Partner stuff - I'm pretty sure that includes MSDN access and other goodies.
How come people always think software is the most expensive part of the equation?
Philo |
| Wed 05 Feb | pb | Ditto. If you can't afford/justify a few thou per developer, you might consider folding up now.
Not sure what business you have in mind but 5 developers initially sounds high. |
| Wed 05 Feb | Sam Gray | Not all developers live in New York. Some of us can get by quite nicely on $50k/year, thankyouverymuch. (= (Okay, plus benefits, but still nowhere near $100k.)
CRM, you can get a break on software through one of MS's partnering programs. Gotta jump through some hoops, but the software definitely costs less. Details here: http://members.microsoft.com/partner/partnering/programs/CertifiedPartner/ |
| Wed 05 Feb | Ian Stallings | Although I am sure you can get by on 50k I doubt that is the total cost paid by the business for you after benefits unless you are a contractor. If you want full time employees it's more than just a salary you must pay for. |
| Wed 05 Feb | CRM | Folks,
Thanks for all of your suggestions. There are some promising alternatives I hadn't considered!
To clarify for Philip and pb:
How come people always think software is the most expensive part of the equation?
Ditto. If you can't afford/justify a few thou per developer, you might consider folding up now.
I didn't imply that I couldn't afford this software nor did I mention that it was my *highest* cost. I was simply looking to reduce my *software costs for MS products*.
Luckily some good people have pointed me in the right direction.
Thanks all! |
| Wed 05 Feb | Vincent Marquez | Do each of you need the full Enterprise version of Visual Studio? you can buy either the C# or VB version for 99 bucks. Hell, I do backend and ASPX programming in TextPad and the command line compiler. I've even managed to do WinForms programming without the IDE. Also, would everyone need visio? how much diagraming gets done? Maybe a couple diagrams per project? |
| Wed 05 Feb | Dumas | Looks like your starting a business with no knowledge of what goes into it. Use common sense. As most posters stated, you don't need to buy everything for everyone. Didn't they teach you that in MBA school? |
| Wed 05 Feb | Steve Wasiura | I hope you don't skimp on the backup software, media, and off-site storage.
Imagine saving money on software, finding decent developers willing to work hard to produce great products, and then losing it all when static cling zaps your hard drive.
Keep us posted on your progress, and are you making a (nother) CRM product? Sigh... |
| Wed 05 Feb | CRM | Dumas>
Looks like your starting a business with no knowledge of what goes into it. Use common sense ...
Didn't they teach you that in MBA school?
I have been an independent contractor for the last five years. Prior to that I was a corporate code monkey. I have worked in a number of vertical markets with a variety of clients. Basically, I have seen all types of projects, customers and development teams. I have the skill and experience to become successful in this endeavor.
However, on this brief resume you will notice procurement is noticeably absent. It is my belief if you don't know the answer to something, ask someone who does. Which is precisely why I posted this inquiry at JoS.
Seems like common sense to me ...
I hope you don't skimp on the backup software, media, and off-site storage.
Already taken care of! I already have a stable client list so these things were necessary a few years ago.
Keep us posted on your progress, and are you making a (nother) CRM product? Sigh...
A (nother) consulting and custom software shop is how we are going to make our bucks. I have a very solid (and growing!) client list. Now its time to expand to meet the demand.
Thanks again for your help today people! |
| Thu 06 Feb | Marc | 'Not all developers live in New York. Some of us can get by quite nicely on $50k/year, thankyouverymuch. (= (Okay, plus benefits, but still nowhere near $100k.)'
Well, no. But it is around 70k.
Rule of thumb, add 40% to salary for the company's costs (payroll tax, SS tax, etc.). |
|
| Why don't colleges teach stuff one can use!!!!!!!! | Wed 05 Feb | Prakash S |
| after my undergrad education in CS and grad education in CE...
I still do not know the reasons why univs/colleges teach stuff one can use in real life.
If it was upto me I would ask people to stop using Roger Pressman & Ian Sommervile and start using Steve McConnell and Joel Spolsky for software engineering!!!!
Your thougths would be much appreciated, after all we are the people who would like to see the field of software enginnerring progress.
any mistakes in this article can bve attributed to Harvest Moon (http://harvestmoonbrewery.com) |
| Wed 05 Feb | Vincent Marquez | why in the world are you going to college and wasting your money then? Or, at least studying something you seem to realize doesn't really help too much. I've read a lot of your previous posts, and you seem to be a competent, knowledagble person. How can you stand it? I'm still going to college, but i'm trying to learn things that will be useful to me, (business, law, english, etc). |
| Wed 05 Feb | Beating Dead Horses | I officially renounce my JoS readership if we seriously go through this again.
I mean it.
Stop it. |
| Wed 05 Feb | sherlock_yoda | College course are not vocational training centres. They are based on the implicit assumption that you are going to go on to become a researcher not a an employee. Therefore, their teaching has an academic orientation and they try to develop broad abilities rather than particular skills.
Sherlock gently massaging the dead horse |
| Wed 05 Feb | Robert Chevallier | College are suppose to teach you to think. Period. |
| Wed 05 Feb | one programmer's opinion | sherlock_yoda's explaination is probably the closest to the truth.
Btw, Ian Sommervile differentiates between Computer Science and Software Engineering in his book, 'Software Engineering, 6th edition'. Sounds to me that you should be pursuing a Computer Engineering degree rather than a Computer Science degree.
Personally, I feel that most researchers provide little value outside of the educational institution they work at. What do most of them do? Write a few articles each year that only handful of fellow researchers will read? |
| Wed 05 Feb | T. Norman | The jobs out there are too diverse for them to focus on teaching things that you personally will actually use. A CS degree could lead to a job as a database admin or a systems admin, or a programmer in any one of a myriad of specialties, operating systems, and languages.
However, at least 90% of the material will be used by *somebody* in your class at some time in their career, if it isn't you personally. For example, it was eight years after graduation that I was actually able to use my knowledge of big-O complexity to reduce a response time (of another programmer's code) from a few minutes down to a few seconds, taking 5 minutes to solve what another programmer was unable to fix after days of effort.
A CS degree is mainly about exercising your brain so you know how to learn, rather than what you've learned. Having said that, a *good* CS program will teach you certain fundamentals that you actually are likely to use, such as object-oriented concepts. |
| Wed 05 Feb | not my regular made up name | Because the people teaching usually don't practice. They are out of touch. Study something for fun in college. |
| Wed 05 Feb | Brian Hall | sherlock_yoda basically said it exactly right: college is not a vocational training course. Their job, typically, is not to get you ready to go out and get a job in your field.
Fact is, there isn't enough education targetted directly at getting into specific types of jobs, and those that exist rarely seem to come from college, and those that still do exist often don't have enough behind them to convince employers of their value.
Prediction: There will be lots of big opporunities for the future in special and specific job training and certification programs that are focused on what they are really supposed to be doing and who do it well.
Ultimately, college was not designed to do what you wanted it to do. It is for providing a general education in the field of Computer Science and Computer Engineering.
What you apparently wanted instead was something more along the lines of MCSE Training and Certification.
That with an Associates in Computer Science, or maybe at most a BS in Computer Science is, from all that I've seen, about all the certified education required to get just about any job in the whole tech industry. All the rest is Experience.
The Associates to prove general knowledge and the MCSE cert, perhaps along with other certs, and a little experience would have been cheaper in resources (time and money), possibly more enjoyable for you, and would have most likely made you better at whatever it is that you do.
Guess it's too late to tell you that, though. Sorry :( |
| Wed 05 Feb | Stephen Jones | The trouble with college trying to teach you something you really use is that when you graduate you find that nobody is using it any more! |
| Wed 05 Feb | Dave Rothgery | Just a minor FYI - computer engineering is the branch of EE that deals directly with computers. I expect that you meant 'software engineering' -- the kind of stuff Joel talks about in most of his articles. Now, I think that a lot of people with CS degrees (myself included) would have preferred 'software engineering' undergrad program, with less set theory and Lisp, and more software engineering and UI design. |
| Wed 05 Feb | Vincent Marquez | 'College are suppose to teach you to think. Period'
I think this statement is very far from the truth. In any of my college classes, I am able to do well by memorizing. Thats what everyone does. How else can students come out of their third C++ class and not remember how to do basic programming? This happens all the time. I can't speak for other countrys, but I believe that in the US, college is about playing the study game, not about 'thinking'. My friend/mentor recieved a MS in Mathematics at the University of Moscow. He said every test he took was a one on one conversation with the teacher. No written, multiple choice exams. Now that sounds like learning. Its too bad its not done right over here. |
| Wed 05 Feb | Mr. Dude | It seems college taught you to drink beer and spew garbage from your keyboard. What more do you want? |
| Wed 05 Feb | | >>>
College are suppose to teach you to think. Period.
<<<
unfortunately, most large comapanies require their employees to NOT think. these large companies recruit on campus. most student are only familiar with these large companies. bottom line; you are young with nothing to lose. start your own company or start something with some friends. if your smart employment is a safety. |
| Thu 06 Feb | Alberto | Read the stuff on Abstractions.
Useful stuff is useful 'NOW'.
Universities are about the future too.
Universities should'nt be teaching you how to drop buttons on forms in the latest version of visual basic, c# or whatever. You should be able to work that out yourself. |
| Thu 06 Feb | sherlock_yoda | Looking at the 14 replies, it looks like there's life in the dead horse yet
Sherlock ;0) |
| Thu 06 Feb | Vincent Marquez | You know, maybe we should have a forum on Good colleges. Its quite obvious a fair number of us have had horrible experiences being taught computer science. Yet, there are some that I respect too much to think that they were only fooled into thinking they had a good education. So, while most didn't get a good education, some did. |
| Thu 06 Feb | Bark Is Bigger Than My Bite (formerly Beating Dead Horses) | Looks like the old mare is here to stay ...
Unfortunatley, JoS is apparently more addictive than crack and I can't go cold turkey.
With that in mind ... |
| Thu 06 Feb | Pavel Levin | Vincent Marquez,
You seem to have surface knowledge of the oral examinations in Russian universities.
The main problem with such exams is that professor can ask you ANY questions he wants. This is the reason there are professors that don't give ANYBODY above 80%, professors that fail you and make you attempt to pass it for 5-6 times and after that you get thrown out of university and go to Chechnya. That's reality back in Russia.
What's so good about that?
I can give a lot more reasons for I have a lot of friends left there that go to universities.
BTW I got my secondary education in one of ex-USSR republics, where we had oral/written exams and now studying on this continent. So, I have a taste of both worlds. Believe me, I never noticed written examinations impair my ability to understand material deeply enough.
I do not see a single advantage of oral over written exams. |
| Thu 06 Feb | Vincent Marquez | I think you just validated my point, if you'll bear with me.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
The main problem with such exams is that professor can ask you ANY questions he wants. This is the reason there are professors that don't give ANYBODY above 80%...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
I think this is a LOT better then having swarms of students come out of american schools with a CS degree and be both a bad thinker and a bad programmer. An 80% is GOOD, as in, above average. It should be VERY difficult for students to get A's in programming. Those that do are probably the super programmers. Nowdays, students expect A's for doing all their assignments and memorizing everything their told. Thats not how it should be.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Believe me, I never noticed written examinations impair my ability to understand material deeply enough.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
I doubt it does. From that statement, I'm guessing your a self motivated learner, and are very interested in expanding your knowledge about Development and management (given that you read JOS). Unfortunatly, There will be thousands of other students thrown into the job market with you that don't understand the material at all.
Its not the fact that American universities don't allow students to learn-- heck, If I can learn C++ from Orielly, I doubt you can't learn reading a text book and listening to lectures. The problem is American universities don't care if you learn the material or not. |
| Thu 06 Feb | anonQAguy | 'The problem is American universities don't care if you learn the material or not.'
Interesting comment. Actually, **we** as the students are supposed to care more than anyone else whether we learn anything or not at any school. The school isn't supposed to have to force us to learn. It should be a 'pull' from us, and not have to be a 'push' from them.
Now, I realize that's kind of idealistic, but it was my immediate thought upon reading the comment quoted. |
|
| How fast is your internet, and how much? | Tue 04 Feb | Albert D. Kallal |
| Looking at internet prices in Joel’s article made me gasp! A T1 line cost how much?
I pay $40 can ($26 US) per month for my internet. There are NO upload, or download limits for that price! (if you abuse it, they will contact you!).
I regularly get down load speeds of 600kB/sec (that is reported speed in the browser during downloads).
That is a good 4 or 5 mbit download. On real nice sites, I have seen 750 KB/sec. Other of my friends in town get 850 KB/sec downloads.
Not bad for $26 per month..eh. I have always said that Canada has the best internet for the cheapest price..
During the mid day, download speeds from Microsoft site are at 500KB/sec (again, this is the download speed shown in the browser).
50 meg downloads are mesaured in sub-minute times for me!
What do most of your folks get for $26 us per month? Is the above good, or does anyone get more for better price?
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
| Tue 04 Feb | B | 'What do most of your folks get for $26 us per month? Is the above good, or does anyone get more for better price?'
Does anyone get a fast connect in the US for $26? SBC is charging me $50 for 128/768kbit dsl in palo alto CA. |
| Tue 04 Feb | Chris | For $24.95 (Australian) I get 56K dial up - Unlimited rock solid 3k downloads! WooHoo! |
| Tue 04 Feb | Li-fan Chen | I think high-speed coverage in most greater areas of mid-size or larger American cities is pretty good. Usually the prices start at crippled (capped) cable for USD$30 and upwards. It's cheap enough that many people have a hard time justifying ISDN and T1 lines, but it's not reliable enough for most mid-size companies to ditch T1s and up.
The nice thing about the States is that there are clusters of cities most anywhere and unless you are stuck in the farm belt you shouldn't have to worry about having to resort to digital satellite internet down-links and microwave. If you are far enough in Canada things just goes down-hill real fast in terms of coverage.
I am paying CAD$34 for 1200Kbps capped DSL at istop.com, a mom and pop DSL shop servicing Toronto, Ottawa, and friends. The only catch is that I had to buy my modem to get the cheaper rates. I get enough of outages that I can't figure out who to blame (again, multiple vendors up and down the flow). These outages range from half a day to just a few seconds.
If you depend on 10,000+ hits per hour at peak business hours like Joel's probably had to deal with--DSL is not what you need. You can't afford to have thousands of mailing list recipients click on a out of service article (you can step the deployment of the mailing, but that's besides the point). Because their interest will dwindle over time and only a fraction would be interested in trying again. The readership mostly seem to have a busy life and don't have time to click again. So I don't think little outtages will do. Let's say one day Joel or one of his techies writes a not so interesting article, no big lost--but what if another article brings in enough business to pay for years of hard core cohosting??!! Would you want to miss that? You just need one single customer--like IBM or SAP--to show an interest in fog creek software--and most of us would want to miss that click.
-- David |
| Tue 04 Feb | X. J. Scott | For US$24/month, I get a 56k line that has never connected at greater than 28k. But I am out in the country in a rural area. However, the local cable company offers high speed access for $45/month and most of my neighbors go with that, including one bohemian lady up in the hills who refuses to accept an electrical hookup and relies on a generator to recharge her laptop. |
| Wed 05 Feb | Bored Bystander | You folks who have DSL or cable internet are very lucky. There are MANY nooks and crannies that don't seem to have reasonable high speed access options.
I live in a rural area just outside the limits of a smaller city in Ohio. What I was able to (just barely) qualify for was ISDN. The telco attached some sort of repeater or amplifier to the line to enable it to reach to my house, as the standard configuration didn't work.
So, I pay $65/mo to the phone company for the dual channel (2B+1D) ISDN line, which is unmetered, plus $40/mo for the ISP for a non dedicated, dynamic IP account. I do get a solid 128K up and down, almost instantaneous connection, and very high reliability (very few outages.) The ISDN line is also a phone circuit and doubles as a second voice or fax line, as the adapter allows me to plug in a phone or fax and the adapter drops half the bandwidth while the voice call is going out.
ISDN was the *only* reasonable option I could find in terms of bandwidth, ping time, QOS, and cost. Sprint (telco) keeps sending out frustrating DSL advertisements in the mail but they don't reach to this address. Satellite is a big unknown with spotty quality of service, lengthy pings, and bandwidth throttling issues. Cable internet was not offered by the reprobate local Adelphia franchise (the s**tiest excuse ever for a cable company, IMO), and wireless earth based access was possible but would have started at around $150/mo for a 128K circuit.
Learning the setup concepts so that I knew what to order and how to set things up was initially difficult, since ISDN is fragmented by the fact that neither the telco, the equipment vendor, nor the ISP take any responsibility for making sure that all this crap works properly. Yeah, you network guys will say 'it's obvious', I'm a developer and I had to learn it all w/o assistance. The totally blue collar unionized 'tain't my job' lineman jerk who didn't want to give me the time of day once he had things hooked up just *barely* hung out while I tried out the new connection. |
| Wed 05 Feb | raindog | San Jose, cable modem, 2+ Mbps download, 256kbps upload. $60 per month. |
| Wed 05 Feb | Prakash S | NJ, use verizon DSL @ home $ 30 a month split 3 ways,
unlimited wireless connection (T1) @ Rutgers U where I connect otherwise.
Can't imagine life w/o DSL/T1/T3.... |
| Wed 05 Feb | Karl Perry | I'm in northwest Washington state, in a rural resort community. I've got cable modem service at 128Kbps, and I pay USD$29/month plus $5 to rent the modem.
At work, we have DSL from QWest for $70/month 1Mbps each way, and we pay $80/month for ISP services from a local provider with five static IP addresses and web hosting.
I've been very happy with both arrangements (I babysit the connection at work too). |
| Wed 05 Feb | Eric Moore | Silicon valley, 2-line (a seperate data line from the voice line) 384/128kb ADSL for $61/month. Very reliable, legacy configuration thats no longer offered by my carrier.
I'm going to switch to a shared line ADSL configuration at the same speed for $39/month the next time they offer a equipment rebate. |
| Wed 05 Feb | Simon Lucy | After years of paying hundreds of pounds a month for an ISDN connection and then getting a reasonable deal on that and finally getting ADSL for 27 quid a month, we are moving.
The people who's houses we go to see look a little surprised at my question 'is broadband available here?' |
| Wed 05 Feb | Jeffrey MacDonald | Southern California cable modem...39.00/month. According to ZDNet's bandwidth meter at http://webservices.zdnet.com/zdnet/bandwidth/ I'm getting somewhere around 2.3 Mb, but I don't know how accurate this is. |
| Wed 05 Feb | Robert Chevallier | In France, you can get for that price a cable or ADSL connection 512kb download / 128 kb upload |
| Wed 05 Feb | Patrik | 10Mbit/s @ roughly $30 USD / month. |
| Wed 05 Feb | Martin | I have a 1024/256 ADSL line in denmark for around 70 USD. Completely unmetered, pretty stable with a Cisco 677 router. |
| Wed 05 Feb | apw | Easter NC, USA $45 (share with neighbor via 802.11b wireless) cable connection 2.01 Mbps (according to roadrunner's test site, which probably isn't that reliable) |
| Wed 05 Feb | Jeff | There is a large difference between having a T1 and having cable or DSL, but it's not in the possible speed on the line - it's the (supposed) quality of the line and the amount of downtime that is supposed to be tolerated.
T1's are regulated (at least in the US) and are supposed to meet high standards for Quality of Service and availability. Evidently Joel hit a snag on this, and I'd have been complaining to the regulators after a couple of hours.
Also, if you have a T1, you have all of it. Cable users actually share the connection with their neighbors (which is why cable companies don't like people hosting servers). DSL is dependent on the distance to the CO to determine speed, and if the line to the CO has any fibre in it DSL isn't available. |
| Wed 05 Feb | Devil's Advocate | I'm confused. I don't have my own Internet - I thought I shared it with everyone else! ;-) |
| Wed 05 Feb | Just me (Sir to you) | Residential DSL (3Mbit/128Kbit) or Cable (4Mbit/128Kbit (max)) 10GB transfer volume, are around 40$/month here (Europe). |
| Wed 05 Feb | Stephen Jones | Saudi Arabia - dial-up connection 56Kbps, normally connecting at 40-45Kbps. $20 per month, plus phone costs of $1 per hour. DSL is not available at my exchange but is exorbitant at around $150 a month, and connection speeds depending on the ISP as low as 128/64 Kbps. No cable anywhere and Satellite connections officially illegal as they by pass the central censor.
Sri Lanka (off there tomorrow for 2 weeks!) - dial-up conection 56kbps, normally connecting at 40-45kbps
$9 a month (150 hours included only) plus phone charges (vary wildly according to time of day but between $0.60 and $3.00 an hour).
These details should cheer most of you up no end! |
| Wed 05 Feb | robert | 'Also, if you have a T1, you have all of it. Cable users actually share the connection with their neighbors.'
Maybe, but my cable connection sports T3 performance downstream. This 'sharing problem' is a poor marketing gimmick by the DSL folks.
Upstream and running servers is the real catch. |
| Wed 05 Feb | Dave Rothgery | San Diego, cable, unsure of exact speed, $45/mo.
DSL is also available here, but AOL Time-Warner is easier to deal with than Pacific Bell/SBC Pacific Bell/SBC. |
| Wed 05 Feb | Kyralessa | St. Louis: $40/month for cable modem capped at 256 Kbps. (Would be $35/month if I bought my own cable modem.)
I had DSL before; it started at $40 for 1.5Mbps, but after a year they upped it to $50. Anyway the cable modem setup seems more stable, and I haven't experienced the slows-down-when-all-your-neighbors-use-it problem I've always heard about.
Downloads are obviously slower, but fast enough and don't get interrupted. The only thing really slow is downloading Usenet messages in Outlook Express. Not a major concern. |
| Wed 05 Feb | Nathan Silva | So what are the advantages of a T1? Around here a T1 is $600-$800 including the line + ISP service. Our company has this setup and in 5 years it's been down twice, about 4 hours each time.
I've had both DSL and cable at home and they were not as reliable as the T1's been.
So is there any reason I should save $500 a month and switch to DSL? |
| Wed 05 Feb | anonQAguy | Jeff, from your post:
'DSL is dependent on the distance to the CO to determine speed, and if the line to the CO has any fibre in it DSL isn't available.'
Actually, this is beginning to change, though in a fairly small area, so it's not surprising folks may not know about it.
There's now an DSL/ADSL solution for folks (like me) who have fiber 'in the loop'. It's called IFITL (Integrated Fiber in the Loop). I've got ADSL at home that seems to be running around 1.5/256 (down/up).
BellSouth, I think it's about 50 USD/month. It's not widely available, however, as I said, I think just in some areas around Atlanta, GA and some areas of FL.
Here's a link I found that gives some info about it. I don't know anything about how authoritative the source is, but fwiw:
http://www.mynetwatchman.com/kb/IFITL/ifitlintro.htm
Cheers, |
| Thu 06 Feb | smm | St. Petersburg, Russia USD 29 for 500mb/month, RadioEthernet. Speed 64kb. If I download more than 500mb month, fee is USD80/Gb. |
| Thu 06 Feb | tapiwa | note to self ... leave london and move to US.
we are paying just just over £1k (a month!) for 2 megabit pipe for one of our departments. Not sure what corporate pays for main pipe into offices |
|
| Content management and bandwith? Que? | Tue 04 Feb | Rodger Donaldson |
| I fail to see why Joel connects using CityDesk to the adequacy (or otherwise) of a T1 for serving 100,000 pages per day.
Now, if youre using a content management tool like Vignette that wont work with mod_gzip, that would be another story... |
| Tue 04 Feb | Joel Spolsky | The comment was meant to address the adequacy of a single cpu. |
| Wed 05 Feb | fool for python | If you're using Vignette, switch to Zope CMF / Plone or Manila and get a T3 or better with a fraction of the money you save. |
| Thu 06 Feb | Rodger Donaldson | I'd guessed, it just seemed an odd conflation. Either that or a gratuitous plug.
And I couldn't agree more about not using Vignette. Personally, I like Bricolage... |
|
| Help authoring tool | Tue 04 Feb | José Luis Sánchez |
| Im looking for a help authoring tool. Ive read about RoboHelp, but is very expensive. I will evaluate Help&Manual and HelpDevelopmetStudio, but I dont know if there is another tools like these.
Does anybody knows or uses this tools ?
Can anybody suggest me another tool ? Perhaps an OpenSource one ?
Thanks,
José Luis |
| Tue 04 Feb | sherlock_yoda | You could, of course, create your help pages as HTML files. This greatly opens up the number of products you could use (perhapse even good old notebook).
Sherlock |
| Tue 04 Feb | Troy King | I use Help&Manual, and love it. They've always replied immediately to my help requests when I had a question on how to do something, and the product is regularly improved. I also very much like the templating method H&M supports, and the multiple output formats. It's been a very stable product, and for my work, was worth the cost. |
| Tue 04 Feb | Mitch & Murray (from downtown) | Help & Manual. Unlike some others, the price is reasonable as well. |
| Tue 04 Feb | Krista | perl's POD can be converted to man pages, xml, text, html, and latex.
Sun's javahelp is available too.
I would say xml converted to something is a good idea. |
| Tue 04 Feb | Ori Berger | Doxygen. Built for source files, but will work well for any other task (especially if you require math, or multiple output formats). Doxygen's own manual was written with Doxygen, so you can get a good example of the capabilities.
[ http://www.doxygen.org ] |
| Tue 04 Feb | Tim Sullivan | Another vote for Help and Manual. With it's fantasticly intuitive interface (which worked exactly how I expected, shortcut keys and all), it's ability to create help files in WinHelp, HTML help, HTML files, or as a PDF or RTF manual, and it's amazing screen capture/image manipulation tools it makes help file writing a breeze (if not a pleasure).
Oh, and the price is great: $279.
I'm in the process of reworking documentation for a fairly complex component set (including multiple help windows and so on), and it's been a joy working with H+M.
http://www.helpandmanual.com
Just use the trial version for a few days and you'll be a convert. :-) |
| Tue 04 Feb | Chris Dunford | Does Help&Manual generate a standard project that anyone with access to the MS HTML help compiler can compile? |
| Tue 04 Feb | Neil Butterworth | 'Does Help&Manual generate a standard project that anyone with access to the MS HTML help compiler can compile? '
No, it saves it in its own format - this is necessary as H&M can generate RTFs, PDFs, WinHelp and Web Pages, as well as HTML Help. All this from the same source!
If you have any further questions regarding H&M features, can I suggest you talk to the H&M guys directly via their website? My experience is that they are _extremely_ helpful. |
| Wed 05 Feb | Konrad | Am I the only one that is finding their site is down? |
| Thu 06 Feb | Neil Butterworth | 'Am I the only one that is finding their site is down? '
Looks like they have had some problems - the site is now back up at 7th Feb 12:30AM UK Time. |
|
| Ghost vs. VMWare | Mon 03 Feb | Mitch & Murray (from downtown) |
| Anyone besides us recently dump VMWare for Ghost? Since Ghost 2003 supports storing images on plain-vanilla servers and NTFS partitions (which Ghost 2002 did not) we pretty much quit using VMWare for our testing.
Advantages:
Not running in any sort of emulated environment - 100% native hardware.
Disadvantages:
The 5 or so minutes it takes to Ghost an image over to the target machine.
Any comments? |
| Mon 03 Feb | Joel Spolsky | That sounds like a pretty big disadvantage. I can test four or five configurations with VMWare in the time it takes you to create one image. |
| Mon 03 Feb | Mitch & Murray (from downtown) | Yes, but you are doing it in an emulated hardware environment ... |
| Mon 03 Feb | anonQAguy | 5 min to lay down a new Ghost image? Seems like it takes longer than that to me, but maybe the images you're using are quite small.
Well, Ghost can certainly be used for testing environments, and you're right that there are advantages to avoiding the emulation layer, especially for certain test needs. However, there is a handy feature in VMWare that Ghost does not provide, though you'd work around it by having to repeatedly lay down a number of new images. If the time to do so isn't really trivial, it'll add up quickly. The feature in question is the ability VMWare has to set the disk modes {persistent | undoable | non-persistent }. This lets you finely control whether any writes to the virtual disk you just made are retained across guest OS reboots. An example of when this was very handy and quite a time saver was in testing a workflow in a web app where we checked the client for a certain install of flash, then if they didn't meet the min, the user could choose to install flash or not and they'd see one set of pages, if they didn't install, they'd see a different set. This required some repetition to get through the various scenarios, and setting the disk to undoable or in my case non-persistent allowed me to trash the changes made with a flash install upon VM reboot and allow me to return exactly back to the previous state.
As I said, you can do this in particular with Ghost images, but it would have to be awfully fast to be quicker than simply restarting the VM guest OS.
Other features of VMWare you can't get with Ghost:
1) ability to run > 1 virtual machine on one physical machine. For one client, I have to set up 22 different environments. I don't have that many physical machines nor the space for that many in the my lab. VM Ware lets me run two or three on one box. There's no actual hard limit -- that's just how the resources on the box work out.
2) ability to explicitly control network connectivity. Not that you can't turn network connections on or off in a real machine you've laid down with Ghost, but it's quite easy (just a checkbox config change) to completely isolate a guest OS, which can make it a very safe platform for experimenting with dangerous/unknown software or virus contaminated software -- you can permit the host box to still be connected to the network, while having the guest OS completely isolated.
3) ability to explicitly control the amount of resources (memory and diskspace) available to a virtual machine. You want to try something out on a W98SE box with 64 MB RAM and a tiny disk drive? Well, that's easy to configure in VM Ware, and it doesn't require opening any boxes to remove chips.
4) ability to use a box for more than one purpose. For example, I have a bank of QA boxes feeding to a lesser number of monitors/keyboards/mice through several KVM switches. These QA boxes are all identical, and are correctly set up to serve as load boxes when we do performance testing (the test software requires specific OS for it's remote load agents), so that I can crank up a high number of virtual users. I have taken several of these boxes and installed VMWare on them which I normally use for functional testing. So, these boxes do double-duty for me as platforms for functional testing, then when it's time to do performance testing, I just shut down the VMWare and fire up the performance testing software - the VMWare software isn't loaded into memory and as load agents, they don't burn diskspace, so the install of VMWare lying on their drives as a dead image has no affect on thier use as load agent boxes. The performance testing master control box does not have VMWare loaded on it.
In addition, since I may have several different client's projects in the lab at the same time, if I were using Ghost, I'd easily lose that particular box to any use except for say functional testing on client #1's project. Again, this relates to much better flexibility and utilization of our hardware resources using VMWare than we could ever get with a Ghost-only system.
The only odd-ball boxes in the mix are the MAC's. I've got I-Mac's on OS 8x, plus G-4's on OS 9 and OS X. Those I'm stuck using as physical boxes (bummer). I'd asked on this board a couple of months ago about MAC emulators, but those aren't very satisfactory as it turns out. Fortunately, the MAC's seem to segregate the installs of different versions of software such that they don't interfere with each other like they would on a wintel box -- it's nothing to have IE 4.5 (POS - don't ask) and IE 5x both installed on the MAC and they don't seem to bother each other at all; quite unlike they would on a wintel box.
There's probably more, but those come to mind right away.
Please don't misunderstand me -- I think Ghost is a great tool. But like all tools, there are things it's good at and things it's not. For a number of things, VM Ware offers more capabilities, or offers the same with less effort. Maybe VMWare's strong points aren't particularly valuable to you in your situation, but I'd be dead in the water without it, and only having Ghost -- good as it is -- would absolutely not serve my requirements in our lab.
FWIW, we do use Ghost to image our real, physical boxes, and I've got some standard images for the bank of QA boxes (hmm - reminds me that I ought to update those images one of these days here soon ). But for test environments, I use VMWare on that bank of QA boxes. At only 300 USD per copy for VMWare Workstation, the several copies we bought paid for themselves and then some in time and hardware saved on the very first project we worked on. Frankly, I wouldn't want to be without either Ghost or VMWare, just like I want both my linux box and my W2K workstation--right tool for the particular job.
Cheers, |
| Tue 04 Feb | Pete Robinson | 'At only 300 USD per copy for VMWare Workstation, the several copies we bought paid for themselves ...'
Thats 300$ per host machine, as I understand it each instance of the guest O/S needs a licence too ... i.e. a w2k box with an NT guest would require licences for both w2k and nt.
How would that work for say 1 host w2k licence and 10 NT guests? would you need 10 NT licences? What if you only use one NT guest at a time, or 5 whilst testing - is that 1 w2k licence and 5 NT licences? |
| Tue 04 Feb | Just me (Sir to you) | You need an OS licence for each copy you run, whether this is on a 'real' machine or on a VMWare virtual machine.
An MSDN OS (or higher) subscription (around 400$) should cover many scenarios. |
| Tue 04 Feb | anonQAguy | Fair points, Pete -
In our case, our office already had MSDN's we were using for test and development, so that was not a decision cost for us in getting VMWare. We'd been installing those OSs on physical boxes to make our test platforms, so it was effectively no different license-wise for us to use the MSDN to create the guest OS virtual machines for testing. We had/have OS licenses to meet our testing needs--we just didn't have the boxes, space, and the QA dept didn't have the time to do the required shuffling.
It's important to remember that VMWare isn't really designed to save you software costs; you'll still need to obtain the software you're going to run as the guest OSs. VMWare saves you hardware costs and tons of effort if you--like us--have to rapidly and frequently reconfigure to different testing environments. |
| Tue 04 Feb | anonQAguy | Oh - and yes Pete, you have it right.
We have several licenses of VMWare (workstation), each installed on a real, physical box. One license of VMWare / box. I can run as many virtual machines off any of those individual VMWare licenses as the physical box can push.
OS costs are an entirely separate issue as I just described.
Side note - Actually, it's kind of spooky to run several VMs at the same time windowed -- I run on a W2K physical box, then may have a W95(yech) VM, a Redhat VM, and an NT4 VM all up and doing things at the same time, and alt-tab from one to the other from the physical box. VMWare also has limited clipboard (text) support across the virtual 'barrier'. They've done a nice job handling context switching across the virtual barrier as well--click in a VM and your keystrokes and mouse clicks goto the VM. Run to the edge of the windowed VM and after a slight drag, you pop back to the context of the physical box. We usually mount common drives from the VM's, so we can do things like save screen shots of defects to include as attachments to our CRs (defect tracking software client is on the physical machine). You can get yourself confused, though, sometimes; between the KVM switches and the VM's running, sometimes you have to stop and try to remember 'wait--what the hell machine am I on?', especially if you're running a VM full-screen. Running a W2K VM full-screen on a W2K physical box, I have actually lost track and forgotten that I wasn't on the 'real' box. |
| Wed 05 Feb | Li-fan Chen | VMWware turn out to work pretty well with Ghost.
Let's say you start small (because you didn't buy that dual Xeon server yet), install Windows 2000 into
a partition on a multi-partition UIDE drive. Back it up using ghost.
And one day, Perot Consulting pops in and buys out 49% of your stocks in exchange for your soul. Put in a SCSI drive in your lovely Xeon server, restore onto the only NTFS partition on that mirrored hot-swappable disk. Voila!
This is all pointless if you can convert VMware virtual-disk-on-files to hard drive partitions of course. So can you? I think this would be a cool trick, because otherwise you have to chase the Norton Ghost license upgrade treadmill.
Is a hard drive partition dedicated to a VMWare virtual machine still faster than virtual-disk-on-files now days? Anyone? |
| Wed 05 Feb | Benji Smith | VMWare virtual machines don't use their own physical disk partitions. VMWare creates a file on the physical machine which emulates a physical drive from within the emulated VM. In fact, the last time I used VMWare, I seem to remember that it uses several different files and mounts them all together into a single virtual disk.
And, if I remember correctly, there is no way to create a VMWare virtual OS from an existing OS installation, no matter what partition the OS is installed to. Likewise, you can't take a virtual OS installation and create a stand-alone OS on any partition. If you could, that would make my life somewhat easier. |
| Wed 05 Feb | anonQAguy | Actually, I found this quote and pasted it directly from VMWare 3's help files:
From the section on 'Selecting a Disk Type' under 'Creating a New Virtual Machine'
'Existing Physical Disk: An existing physical disk or raw disk is a partition on a physical IDE or SCSI drive connected to the host computer. You use raw disks if you want VMware Workstation to run one or more guest operating systems from existing disk partitions. Raw disks may be set up on both IDE and SCSI devices. At this time, however, booting from an operating system already set up on an existing SCSI disk or partition is experimental. If an existing partition is empty, you can install an operating system in the partition. If the host is a dual-boot or multi-boot system, then bootable partitions on the host computer can also be booted within the virtual machine. If you select this option, you can also choose to hide the type of read-only disk partitions from other operating systems.'
The primary option (not shown above) is to use the Virtual Disk arrangement Benji described.
I've never tried the existing disk option (note the mention of this being experimental), and it would run counter to my needs, so I doubt I will. I'd interpret this quote to mean that it is possible to also set up VMWare to use an actual physical partition. Not sure, again, whether this would enable interesting gymnastics between Ghost and VMWare or not.
And Benji's description of how VMWare works is correct--when you look at the files comprising a VM you've created on the physical host machine, you'll see one or more files representing the disk the VM uses internally, a configuration file(can edit from VMWare's UI or directly in text editor), and an nvram file. You may see additional files depending upon how large you set up the VM's 'disk' to be.
These VM files can be handled (stored, copied, moved, backed up) exactly like normal files from the host box, plus winzip crunches them down pretty well. In fact this is how I manage our VM library--I set up our standard VMs, zip them, and burn them to CDs. The only problem there has been that the VMs for Windows XP, even zipped, don't fit on a CD, so they stay on a network share that's on our normal backup rotation. All in all, quite convenient. If I need a special version of W98SE, for example, I take one of our standard W98SE VM's from the CD, unzip it to the physical box, fire it up and do whatever mods I need to it. Makes it nice to do comparative evaluations of the effects of some patch, for example, or other configuration changes because you know you started from machines that were exact clones of each other, so there's your experimental control. If the physical box can handle it, you can do this side-by-side on the same physical box, run the VMs in windows, and get screen shots from the physical box of the differences displayed in the two VMs. |
| Thu 06 Feb | Li-fan Chen | Benji I think you must have been using a very very old version of VMWare.. all of the scenarios you've just described are possible with VMWare..
it IS possible to mount physical partitions, and it is possible to modify Windows 2000 or Linux to boot up into the virtual machine when they were initially installed to boot on the physical machine, they might not be fun to do, but it's possible.
And I believe the company responsible for the software will only more configurations and possibilities available in the future (well at least with their high end products like the GSX and ESX servers)...
Please check www.vmware.com for the documentation that describes these procedures. |
| Thu 06 Feb | Li-fan Chen | anonQAguy: backups and restores of Windows 2000-based NTFS partitions WORKS using Ghost 2000 and up for Windows 2000 installations created within VMWare. And you can boot into the virtual or physical version.
Again, I agree with caution, just because it never fails for me doesn't mean you should use it in production. Try it if you ever get bored, but you probably don't need the experiental odd feature anyway.
VMWare is great, but I personally think it will take more years of improvement before it becomes truely awesome for the most power-hungry people. |
|
| C++ static code analysis | Wed 29 Jan | Curious |
| I would like to know what tools are you guys using for this purpose. Is it worth the investment ? Has someone done some sort of comparison between the various tools like Code wizard, QAC++ etc ? Is it going to help if we want to standardize the coding practice in a company of say 500 developers ? |
| Thu 06 Feb | Hans | I found CodeWizard pretty helpful |
|
| Field Data Collection Application | Sun 26 Jan | Yaniv |
| Hi all,
I have to develop a mobile data collection application which will be deployed on handhelds and the data collected will be synced to a central database server via modem on the handheld.
I have done the similar stuff using Palm devices. But this time the field condition is very rugged and the filed people are not very computer savvy. I am afraid that the Palm wont be very durable in these conditions. I have looked online and all the rugged handhelds I could find are very expensive, like $1000 a piece. But if I use Palms, I could buy one for $100.
Has anybody here implemented a similar field data collection system? Any ideas or thoughts? Thanks for all your inputs. |
| Wed 05 Feb | Yaniv | anonQAguy,
Sorry for the delay in posting. Thank you very much for your advice. I am still negotiating/working with the cliet to get this project started. Once the contract is in place, I would love to get in touch with you, if I need any help. Thank you once again. |
| Thu 06 Feb | anonQAguy | No sweat, Yaniv - I'll be here. Good luck. |
|
| Server Specs | Wed 05 Feb | Wayne |
| Joel,
I think it would be interesting to hear the full specs on your new Dell server that you are colocating.
Thanks, Wayne |
| Wed 05 Feb | Joel Spolsky | Dell 2650 - Xeon processor (2.4 GHz I think)
1 GB RAM
RAID-1 (mirroring) (2 x 80 GB drives)
dual power supplies, built in dual NIC
oh, you know, 'the usual.' :) |
| Wed 05 Feb | Adam Young | To people that are wondering: There is a big difference between a server live this and a comparably priced workstation.
The cool thing about the dell server I had was that, it was designed to bee tool-less for the things that needed to happen quick, and sinple to get at for things that were more serious.
This was our Database machine for a data intesive site. IWe used the 4U quad PIII Xeon server from Dell (6550). It had multiple power supplies, and they were hot swappable. The disk driver wer raided and also hot swappable. The same goes for the Fan. You didn't even need a screwdriver to get them into the racks (assuming you had the right type of racks, which we didn't at first). You neede a screw driver to get in to the portion of the case where the Motherboard was located. NO those are not hot swappable. It was a very easy case to work on, reliable, redundant, and COLO friendly (except for that rail thing)
We had a couple other 'Servers' up there which were really converted workstations. The biggest difference was that the parts went out more frequenctly. Memory and Hard drives were the worst. The machines had decent power supplies, so those were OK.
I gues the point I'm trying to make is that if this is a mission critical server, get real server hardware. Don't be penny-wise and pound foolish. You'll get pounded.
Here are the specs on Dell servers:
http://www.dell.com/us/en/bsd/products/series_pedge_rkopt_servers.htm |
|
| How to configer the Cocoon Sitemap | Wed 05 Feb | Alan Brady |
| How to configure the Cocoon Sitemap
Im trying to set up my own webapp in Cocoon 2.04 to perform transformation on xml documents however im having difficult setting up the cocoon site map.
The directory structure ive set up under cocoon_home/myproject
Consist of the fallowing
/static
/data
/transforms
for an initial example I want to serve a static html document call index.html stored in the subdir static.
Which will be triggered from the url
localhost:8080/cocoon/project
can anyone give me step by step instruction on how to achieve this ??? |
| Wed 05 Feb | Adam Young | Was the info at
http://durdo.miesto.sk/Cocoon2HowTo/index.html
At all helpful? |
|
| Free database modelling tools? | Wed 05 Feb | Patrik |
| Im in search for a preferrably free data modelling tool that can create a DB model from reading a DB schema.
I need this to do nice ER-diagrams of a MySQL DB. Is there such a tool or am I looking at creating my own for this one?
If you guys knows such a tool, please let me know. It doesnt have to be free.
Thanks. |
| Wed 05 Feb | Simon Lucy | Microsoft should still have VisualModeler 3.1 available for download which will do all that and more.
You might have to search hard for the download though. |
| Wed 05 Feb | tapiwa | http://www.microsoft.com/downloads/results.aspx?productID=&freetext=visiomodeler&DisplayLang=en |
| Wed 05 Feb | tapiwa | there are a number of tools that could fit your bill.
Case studio - http://www.casestudio.com
Win Design - http://www.win-design.com/En-principal.htm
are two that immediately spring to mind. |
| Wed 05 Feb | ODN | If this is just a one-time deal, you might as well go with a trial version of one of the main modeling tools.
I've used Embarcadero's ER/Studio 15-day trial for my one-time diagram printing needs.
http://www.embarcadero.com/downloads/downloaderstudio.asp
ERwin is another popular tool with an evaluation version available for download:
http://ca.com/registration/erwin_registration.htm
If you find you like Object Role Modeling from the free VisioModeler mentioned above, you may eventually want to get Visio for Enterprise Architects, which contains the latest and greatest version of the same ORM tool. Unfortunately it can only be acquired by purchasing Visual Studio .NET Enterprise Architect, the most expensive version.
http://www.microsoft.com/office/visio/evaluation/indepth/devtools.asp |
| Wed 05 Feb | Jeff | I just started using this tool. Quite nice so far and it has direct support for MySQL. http://www.thekompany.com/products/dataarchitect/ |
| Wed 05 Feb | Philip Janus | I've used ER/Win, ERStudio, TOAD, and Visio for database modeling.
I've found Dezign for Databases to be every bit as useful as any of the enterprise tools for db modeling, and it's only $150:
http://www.datanamic.com/download/download_dezign.html
Philo |
| Wed 05 Feb | Karel | Sybase powerdesigner gives you a 45-day evalaution
Powerdesigner gives you
business process modelling (light stuff like ebxml)
OO modeling (full UML, J2ee, .Net, Tomcat, Websphere...)
Conceptual modelling (pure erd)
physical modlling( all the major and minor rdbms)
free model (roll your own)
with intra model generation (eg oom to oom) and
inter model generation(eg oom to pdm - O-R mappings)
a generation template language and scriptable meta model
oh yeas and report gen facility (rtf html)
and enterprise repository to optionally hold all of this
I am a bit biassed but i would like it if Joel would pass an opinion next to erwin and embarcadero.
Remember with pd one tool - no together, no rational, no visio, no bridges (erwin, erstudio to describe) |
| Wed 05 Feb | Patrik | Thanks alot guys. I will check all programs out. |
| Wed 05 Feb | Albert D. Kallal | If you look at the two pages of mine:
The first ER diagram was done with Viso, and is actually the first design doc I use for many of my table designs (only tables ..no fields yet!…that is how my brain works!).
http://www.attcanada.net/~kallal.msn/Articles/PickSql/Appendex1.html
This 2nd ER diagram was done with ms-access using the above one as a design starting point. That is:
http://www.attcanada.net/~kallal.msn/Articles/PickSql/Appendex2.html
Note how some 1 to many relationships show a little “arrow” and some don’t. The difference is that ones with a arrow don’t require a child reocrd.
(thus some tables thus don’t require a child record, and some do. Those are in fact default left joins).
What I like about the ms-access editor is that you can also enforce the relationships. (and you can also jump to the table design from the ER window directly).
MySql VERY recently got some enforceable RI at the table/engine level. This means I am now awaiting that killer ER editor for MySql, since a ER diagram is not much of a design tool unless it lets you put back the RI changes to the database! You need to be able to sync small changes in the ER diagram to the actuall production database (and that should include RI stuff).
Without that feature, you are back down to using DDL statements to setup the referential integrity (RI).
Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com |
|
| Windows Terminal Services problem | Wed 05 Feb | T.S. |
| Hi everyone, Im hoping someone can help...
We have a project that runs as a service and while running it displays an icon in the system tray. Everything works fine normally.
However, if we connect to the machine running the service using Windows Terminal Services then we cant see the tray icon. The service is an interactive service that displays a form when you click on the icon. Does anyone have any ideas about how to get around this problem?
Thanks in advance! |
| Wed 05 Feb | Yves | A number of things spring to mind, depending on your needs.
If your service needs to open a window on the desktop to respond to a query sent through the network interface (an old geographical information system we had insisted on opening a window on the desktop, even though it was producing maps ment for a web server), you have a flag in the services' configuration: allow interaction with desktop.
If you start the service once and then need to click on a ui element to access its functionality (e.g. MS Messenger), then there's an option in Windows TS that lets you define what happens to the desktop when you disconnect. You could then close the TS client (not 'Log Off', but Alt-F4 the client), and if you reconnect to the client then the desktop session is still there. However, I fear the timeout cannot be set to infinity.
VNC _does_ keep your desktop around forever, maybe you should switch to that, even if it's not as good as TS.
Hope that helps |
| Wed 05 Feb | Matt Watson | I agree with the 'Interact with Desktop' post from above. A typical windows service runs under the local system account which does not have access to the desktop, printing, network shares, etc.
One piece of advice I always hear is to create an account with the privliges you need and run your service under that account. You could even just run the service under administrator. |
| Wed 05 Feb | B | Its a well know security warning on windows that allowing services to interact with the desktop makes it possible for the malicious logged in user to elevate to the service's security level.
Basically you cannot completely protect the interaction window from malicious windows messages.
Exceprt from http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncode/html/secure08192002.asp
Services in Microsoft Windows® are generally console applications designed to run unattended with no user interface. However, in some instances, the service may require interaction with the user. Services running in an elevated security context, such as SYSTEM, should not run as interactive services. In the Windows user interface, the desktop is the security boundary, and any application running on the interactive desktop can interact with any window on the interactive desktop, even if that window is invisible. This is true regardless of the security context of the application that creates the window and the security context of the application.
Because of these design features, any service that opens a window on the interactive desktop is exposing itself to applications executed by the logged-on user. If the service attempts to use window messages to control its functionality, then the logged-in user can disrupt that functionality through the use of malicious messages. |
| Wed 05 Feb | Stephen Martin | The only account that can run a service in the interactive WinStation is LocalSystem. When the service starts, if it is marked for interaction with the desktop, it starts the service process in WinSta0 instead of the LocalSystem WinStation so that any windows it shows will be shown on the interactive desktop. In the case of Terminal Services it works exactly the same way _but_ the interactive WinStation is that of the local server session. So if you go over to the terminal server and log on locally it should show your icon as you expect but it can never interact with an arbitrary session.
Interacting with the desktop like this is almost always a poor design decision as well as a potential security breach. What you should normally do (and will have to do for TS) is create your service executable and a separate executable that interacts with the user. These two are set up to communicate using one of the many IPC mechanisms. This way any TS session that needs to can run the user interface (as an icon if that's what you want) and you have much greater control over security. |
| Wed 05 Feb | na | read the API :) - what I mean is that certain functions behave differently under TS, eg the simple MessageBox() function. The icon may not be visible because it's displayed on another desktop. |
| Wed 05 Feb | Rob | See KB article: http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q327618 |
|
| Managing ADO/DAO Connections and Recordsets | Tue 04 Feb | Filumbik |
| Anyone who has worked with ADO or DAO in the VB/VBScript environment has had to deal with connections and recordsets. My question is, How do you manage these?. Do you use classes, functions or simply code everything inline? Do you experience a slow down when using classes?
I would also like to know if setting a recordset to nothing is safe without also closing and setting the connection to nothing. Doesnt setting the recordset to nothing implicitly close AND destroy its connection? I havent been able to dig up any documentation on this. Although MS sample code seems to simply set the Recordset to nothing.
Here is a sample class that I use.
class CDatabase
Private strCon as String, Conn as ADODB.Connection
Public rs as ADODB.Recordset
Private Sub Class_Initialize
strCon = ...
set Conn = new ADODB.Connection
call Conn.Open(strCon,...,...)
End Sub
Public Sub OpenRS( strSQL )
set rs = Conn.Execute( strSQL )
End Sub
Public Sub ExecuteSQL( strSQL )
call Conn.Execute( strSQL )
End Sub
Private Sub Class_Terminate
rs.close
set rs = nothing
Conn.close
set Conn = nothing
End Sub
End Class |
| Tue 04 Feb | Matthew Wills | Filumbik,
Check out:
http://peach.ease.lsoft.com/scripts/wa.exe?A0=visbas-l
We have been discussing a similar ADO issue today. And looking at your code, I can see a few things you should change, which the list will be able to help you with.
Seeya |
| Wed 05 Feb | Li-fan Chen | Use classes, especially if it helps reuse. It's hard to cut and paste without a clearly defined interface. Makes maintaining sites hell. Most companies seem to use VBScript capabilities like include files, class members, private scoping, object life-times at the very least.
If you over abstract things you'll notice things will run at 1/2 or 1/3 speed at the very worst. If you really need to shave off that extra hour and you know how to write elegant and easy to read code without all that abstraction --go for it.
If you write a really bad program you could get 10% of the potential performance. But it's hard to tell without a little reading. With or without classes. Same with ADO. For example the other day I sped up a import job from 2 days to maybe an hoour or two by using one massive ugly TransactSQL stored procedure called via ADO command object instead of ADO adds/selects/updates. It need not be one massive stored procedure, it could be three. But that's not the point, we are just trying to walk around the limits of various technologies and use their strengths instead. The obvious solution was so slow, so we searched on the net for alternatives. |
|
| Binary debugging | Tue 04 Feb | Robert Cowham |
| For anyone interested, there is a good link to Delta Debugging which automates the sort of binary debugging that Joel was talking about recently.
http://www.st.cs.uni-sb.de/dd/
There are even some python scripts provided.
Provocative reading. |
| Wed 05 Feb | | I am going to ghet around to reading that soon, but not today as I have a whole bunch of bugs to kill (hmm, okay, I killed nearly 50% of them this morning, so maybe tomorrow or Monday).
What strikes me although is that because it is easier for us poor old human beings to remember names than IP addresses, it must still be easier to remember 134.96.235.32 than www dot st dot cs dot uni dash sb dot de. Jesus. |
|
| Nice article Joel ... | Tue 04 Feb | Mitch & Murray (from downtown) |
| The new one about colocation is just great - informative without lecturing. You realize, of course, that the Slashdot kids will roast you alive for not running Linux on your shiny new Dell.
One question - what was the high, low, and median prices you got when shopping around for your colocation provider? Please discard Peer 1s _free_ price when you do the numbers.
Good luck with the new box! |
| Tue 04 Feb | Joel Spolsky | Actually Peer1's list prices were the lowest even if I had been paying them, around $300-$500 depending on bandwidth and rack size.
The high end were around $1500 (companies like NTT/Verio and Globix).
Nothing against Linux and I have run Linux servers before and probably will in the future, but here at Fog Creek we just know more about the Microsoft world, and an engineer who knows what he's doing on an 'inferior' operating system (arguable, but, whatever) will outperform an engineer who DOESN'T know what he's doing on a 'superior' operating system. |
| Tue 04 Feb | Justin Frohwirth | Let me say first off that I usually love your articles, but this new one rubs me the wrong way. Why isn't it marked 'advertisement'? You can't tell me you really got hosting for free. It sounds to me like a barter agreement -- they give you 'free' hosting, you mention them all over the place including a whole article about them. I don't have a problem with this business arangement, but it should really be noted as such. By the way, the company I work for does our hosting (managed servers -- colo doesn't make sense for us) through one of those 'reasonable small companies' here in Manhattan and they sweep their floors and are very polite. I agree that the 'high end snobs' stink, having dealt with some of them before, but no reason to slam the little guy in light of your 'free' hosting. |
| Tue 04 Feb | Greg Rosenberg | Maybe so, but there's still lots of great info in there. Nice article Joel. |
| Tue 04 Feb | David Geller | What's wrong with Joel advertising? I like what I get for the $0 I send him every month. |
| Wed 05 Feb | Jan Derk | Yes, thanks for the very nice real world experience article.
I would like to add that there's another option between webhosting on a shared server and colocation. It's a dedicated server. It means that you lease the space within a NOC, bandwidth and the server. With colo you have to bring your own server. On a dedicated server you generally get root access (=full control) to do whatever you want, just like on a colo server.
Recently, there's quite a revolution going on in the dedicated server area. There are now several companies offering dedicated servers with 300/500GB bandwidth for $99 to $150 per month.
There are only two if's for those low priced servers. First, most cheap dedicated servers are unmanaged. Meaning you mess up your server, you fix it or get a system restore. And secondly they are Linux based. Personally, I'm leasing a Compaq DL320 1U server with 400GB traffic at rackshack.net for $129 per month with very good results. Last year showed zero downtime for the server and about 2 hours for the network.
I recommend anyone looking for recommendations/experiences on shared hosting, colo or dedicated servers to check out:
http://www.webhostingtalk.com |
| Wed 05 Feb | Ged Byrne | I'm curious about Peer1's free hosting. At first it doesn't make much sense. An overthrow of Dot Com generosity.
Still, the article would be nice for them. Hosting somebody that people have heard of can be useful in the sales department.
Any other reason why Peer1 are being so generous. Is it just that Candians are so nice they don't like to ask for the money? |
| Wed 05 Feb | Brian Hall | [quote]I'm curious about Peer1's free hosting. At first it doesn't make much sense.[/quote]
[yes I know it isn't a UBB, I just like the clear format]
It does once one understands Corporate Charity, as I shall call it.
They don't even need quid pro quo. The key is, they don't even have to ASK for advertising, because once given something (which to them, by the way, has an exceedingly tiny or no marginal cost) in such a way people tend to behave positively in this sort of position anyway.
Without even asking, if they did much research into reading Joel's site, they could easily predict that chances are that Joel will mention Peer 1, at least, if not write a whole article about it. They might have asked for the link along the side, but they needn't have even done that, and it's probably wise if they don't.
Further, he's rather perfectly positioned to make good, believable referals to prospective customers of Peer 1.
There's a reason many people in various positions aren't permitted to accept gifts of any kind - and there is a reason many people are so interested in giving them gifts. Even if one doesn't understand it, it's clear that there must be some reason for it all.
Once considering all the potential gains Peer 1 stands to make and then comparing them to their costs (which are damn near close to zero), it'd have been a bone-headed move NOT to host the site for free. |
| Wed 05 Feb | Philip Janus | First of all, great article! It's bookmarked as a time-saver to explain colocation to IT newbies.
However, Joel, I think you should go back to Peer 1, get a contract, and start paying them. Why? Because for you colocation is a critical service, and with critical services you must have a contractual relationship. And you cannot have a contract for a gift.
Legal issues aside, let's face it - if Peer 1 grows, and they grow smartly, then that means at certain points in their life their techs will be overworked (you must have the work *before* you hire the support for it). When their techs are overworked, guess who gets put last on the priority list?
Finally, if you're like most people, then things you expect as a matter of course from a vendor become 'asking for favors' when you're getting it for free. You shouldn't have to feel like you're imposing when you call to bitch about bandwidth, downtime, connectivity, etc. (What's the first recourse of the complaining customer? 'What am I paying you for?')
At the very least, negotiate a reduced rate, include advertising in the contract, but sign the piece of paper.
My $.02
Philo |
| Wed 05 Feb | Just me (Sir to you) | Philo,
I am not saying you are wrong but assuming they took on Joel for free because they thought it would give them high visibility towards a certain audience.
- Trouble Triage dude: Listen up. Stuff is down. What to take care of first?
On the left we have that 400$ paying newbie.com customer that no-one has ever heard of and that gets maybe one month of free colo if we do not make the SLA.
On the right we have Spolsky, not paying a dime but everybody in the universe knows that we host him and 1.000 fantastic people (Ed: hey this is my story, so I am allowing it) an hour are looking at this and our pants are on the floor. To work people!
If you are in the shop window, you want to keep the windows clean. |
|
| Speaking of Source Control | Tue 04 Feb | Prakash S |
| Well which one do you use and why?
Rational, CVS, Visual Source Safe..... |
| Tue 04 Feb | happy to be working | CVS. And, since we are a Windows shop, specifially CVSNT. I'd prefer to run a Unix CVS, but CVSNT has proven itself to be stable so far.
We left Visual SourceSafe due to it's licensing policies (too expensive for us), and the past experience some of our developers have had with it.
At a past employer, we had VSS randomly destroy binary files (Word docs, etc). We still don't know why, but I switched them to CVS on Linux, and life got MUCH better.
Take a look at http://www.majentis.com/Products/FreeDocuments.html
if you are interested.
There will be a Tortoise CVS document there as well, in the next few weeks. |
| Tue 04 Feb | Patrik | CVS for UNIX based development, VSS for NT based. |
| Tue 04 Feb | Jeff | Anything but VSS. I use CVS for my personal projects and have used many different systems at jobs, the only one that has ever lost/corrupted source files is VSS. |
| Tue 04 Feb | anonQAguy | We use StarTeam. It's very expensive, and if we hadn't acquired it during the heady days of the 'bubble', we couldn't afford it now.
It's got a lot of characteristics I'd love to change (for example, the security model, for instance, attempts to be ultimately flexible and powerful, but is far too complicated and it's usability needs a lot of work), but on balance it's definitely a net gain for us.
Being able to easily and accurately integrate our change requests with builds has proven especially useful.
If we ever have to move off of an integrated change tracking and source control platform, I'd really miss the benefits of being able to connect the two classes of artifacts as conveniently as we can now. |
| Tue 04 Feb | Mikayla | People keep telling me 'but VSS is much better now, it won't corrupt your source files.' Ah, but I've already switched to CVS at this point, and it does everything I want, including branching (actually useful unlike VSS, if more complex than I'll probably ever use).
The 'new' features that you get out of some of the more costly solutions are neat, but I don't *need* them, and as for cool factor, the 8 basically happy CVS users would probably rather have something else for the same money. Like a copy of DevPartner for everyone. Or a bunch of new test hardware.
Subversion though. That could be neat in a few years. |
| Tue 04 Feb | robert | arch is the future for 'free' version control. If it doesn't replace CVS in the next few years, it will be a shame. |
| Tue 04 Feb | Chris Tavares | Arch will never replace CVS.
The reason: arch is primarily written as Unix shell scripts, and such is almost completely non-portable. Unless you drag the entire unix command set along with it.
If cygwin is the answer, you're asking the wrong question. |
| Tue 04 Feb | Dirk | Perforce. It just works. Though it has a price tag but if you think about it, VSS costs not so much less... |
| Tue 04 Feb | Steven E. Harris | For personal projects, I use BitKeeper, mostly because of its replication capability and its ability to handle file and directory movement and renaming. Otherwise, CVS is good enough.
At work I use both ClearCase and CVS. ClearCase is expensive and doesn't do much out of the box, but it must be appreciated as a powerful toolkit from which a group builds a customized product. In that sense, it's diametrically opposed to an immediately-useful product like CityDesk, but is virtuous nonetheless. |
| Tue 04 Feb | Dorf | I just bought a 'Speak & Source Control.' It makes learning fun! |
| Tue 04 Feb | robert | 'Arch will never replace CVS.
The reason: arch is primarily written as Unix shell scripts, and such is almost completely non-portable. Unless you drag the entire unix command set along with it.
If cygwin is the answer, you're asking the wrong question. '
You're assuming that arch is somehow predicated on shell scripts. It is not. It happens to be prototyped in shell script at the moment. |
| Tue 04 Feb | Ryan LaNeve | We moved from VSS to QSC's Team Coherence (www.qsc.co.uk). It's only been a few months, but it's been fantastic thus far, was priced very, very well, and I can't say enough about the staff. I hesitate to say 'support', as we haven't needed any, but I *have* exchanged many inquiry-type emails with the company - both pre- and post-purchase - and they are always incredibly helpful and responsive.
The integrated issue-tracking module works well for us, also, though our primary concern was revision-control. |
| Tue 04 Feb | David Lewis | We went from CVS to Perforce. It is probably
more reliable than the os it runs on, a
straightforward model that's easy for people
to learn, supports lots of platforms (we use
it on solaris, Windows, AIX and HPUX), atomic
submits, Nice branching from any
point now or in the past... I could go on... |
| Wed 05 Feb | Marc | I'm a huge fan of QSC's Team Coherence. It is the only one I've used that worked out of the box.
I still don't understand how to make CVS work right. Maybe I think not right? :) And CvsGUI is even worse... The UI just gives me a headache!
StarBase is a solid product, but very expensive. It also works without too much bleeding, but some of the more in-depth functions are hard to get working right.
I've also been trying Vault (from the Source Offsite people). Its a .NET/WebService based product. It is still a bit slow (it is still in beta), but it works quite well.
Personally, I would go to QSC every time.
-----
On a side note, has anyone noticed how bad all of the documentation, for ANY SCC product is? They all assume you know how to do SCC and only need to know where to access the functions ('Click here for access to parallel symmetric branching'). Does anyone know a good book on this stuff? |
| Wed 05 Feb | Katie Lucas | We use PVCS over a network link which has ping times exceeding 3000 ms. Yum.
Effect of this; people check out the code at the start of working, and check it back in six weeks later when they're done on a task. Nice.
It's kind of like having all the annoyances of revision control without any of the actual advantages. Needless to say, this setup was designed by people who don't use it because they're in an ivory tower in another office and then imposed on the developers, because 'revision control is a good idea, therefore all revision control systems are a good idea, therefore this revision control system is a good idea.'
It's a good job we don't deal with anything serious. Like, say, the mission critical code for a bank, maybe... |
| Wed 05 Feb | Robert Cowham | There are a heap of books on SCM (Software Configuration Management). Check out:
http://www.enteract.com/~bradapp/acme/scm-readings.html
Also:
http://www.scmpatterns.com/book/ |
|
| The Perfect Code | Tue 04 Feb | Chi Lambda |
| I just came across a fascinating article from 1996 on NASAs On-Board Shuttle Group (they write the software that controls the space shuttles). In light of recent events I thought you might find it interesting too....
This software never crashes. It never needs to be re-booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats: the last three versions of the program -- each 420,000 lines long -- had just one error each. The last 11 versions of this software had a total of 17 errors. Commercial programs of equivalent complexity would have 5,000 errors.
And no coder changes a single line of code without specs carefully outlining the change. Take the upgrade of the software to permit the shuttle to navigate with Global Positioning Satellites, a change that involves just 1.5% of the program, or 6,366 lines of code. The specs for that one change run 2,500 pages, a volume thicker than a phone book. The specs for the current program fill 30 volumes and run 40,000 pages.
http://www.fastcompany.com/online/06/writestuff.html |
| Tue 04 Feb | Me | And id be thrilled if I even saw a half page spec at my company... Maybe that is why we have 1250 bugs in the database from a little over 100000 lines of VFP6 code |
| Tue 04 Feb | Dino | Same year (96) the Ariane 5 missed its first flight. Apparently this was caused by software failure which was caused by inconsistent specifications.
http://www.rvs.uni-bielefeld.de/publications/Incidents/DOCS/Research/Rvs/Misc/Additional/Reports/ariane.html
The guidance system for Ariane 5 was an upgrade from Ariane 4. But Ariane 5 had a different trajectory which pushed one of the numerical parameters out of bounds.
This would have been caught in testing, but only if the testing specification were properly upgraded to work for Araine 5. That didn't happen although the specifications and development processes are at the same level as NASA uses. They still failed.
IMO this points out there is a limitation on how much we can know and control things - maybe in the form:
(# Errors in code) * (# Errors in Specs) >= const
where const depends on the process and is always a positive real.
Meaning ...
One cannot pin down both the errors in the code and the errors in the specs at the same time.
Good code requires uncontrolable huge specs.
Simple specs are too vague resulting in (at best) code with usability problems (not doing what it should)
If the above is true, then our development process would have to deal with these intrinsic uncertainties.
Cheers
Dino |
| Tue 04 Feb | John Topley | Great read - thanks. |
| Tue 04 Feb | Ralph Chaléon | I just like this metric :
bug / code line number
Because it cannot be a metric (let's call it a statistic), it has no sense to say one bug for 480 000 code lines. You could say 10 or 50 it would be exactly the same.
How do you define a bug anyway ?
What I'd like to compare is the amout of time (in europe, we're shy about money) needed to produce this code, including specs.
The whole Methodology, which must look like Maxi XP, should also be very interesting. |
| Tue 04 Feb | Practical geezer | One bug really means, 'One bug found.'
The operative word being 'found.'
Whenever someone asserts that their code is so good, it only had 17 bugs, one has to ask, 'how can you tell?'
Obviously, you can't. And then the question must be asked. Did you only find 17 bugs because your code is so good that even if there are more, they must be so obscure that you wouldn't find them under all the circumstances we tested.
Or, did you only find 17 bugs because you didn't really look all that well.
I expect for any project that involves the lifes of people so absolutely as the space program does, the testing is exhaustive.
But don't ever mistake that for certainty about there not being any bugs. |
| Tue 04 Feb | Matt Watson | I had a professor in college who used to work at NASA and was a specialist in 'Mission Critical' code. It was cool becuase she knew a lot and taught us alot about how not to code bugs to begin with. The problem was, if you had one 'bug' (insert your own definition here, she sure as heck did), you automatically were down to a B and so on and so forth. It was brutal. |
| Tue 04 Feb | Ian Stallings | Of course they fail to mention it cost the cost and time it took. I'll write you a perfect application. Just give me 1 billion dollars and 10 years to perfect it.
It's all relative. The fact is the perfect application is not cost effective in today's commercial software world. But with improved tools and more industry experience it will naturally become better over time, like any industry. |
| Tue 04 Feb | Dino | Practical Geezer,
there is a way to estimate the number of bugs left in the code: is called statistical sampling.
Typical statistical sampling problem is: 'what is the maximum number D of defects I can allow in a sample of X out of Y items, such that the total number of defects does not exceed T +/- err'
Here is how it works:
1) pick up good working code and seed it with bugs. Use known bug patterns.
2) get people to review the code
3) get the code through testing
4) see how many bugs are still there
You can extrapolate based on how many bugs were detected in code reviews and testing, how many bugs are still left in the code within an error margin.
I've seen this done once on a project and the number of bugs in support did not exceed the estimated number of bugs left.
Cheers
Dino |
| Tue 04 Feb | Practical geezer | Dino,
I know, but it does not give you any kind of certainty.
Especially since the bugs in your code are not at all distributed according to the nice laws of nature that make statistical analysis worthwhile.
I am not a statistician, but I remember from 'way back' that statistical analysis is not something to be taken lightly. You have to know quite a lot about what you're analysing and the population that you analyse must adhere to certain rules.
I am not saying, 'don't use statistical analyses to get a feel about things,' just that you have to be very careful about what you conclude.
As you know, there are lies, damned lies, and statistics.
But the bottom line always is, even if the chance of there being a bug left is minute, there is no way to formulate positive proof that it isn't there. Save anything so trivial that it is not worth mentioning :-) |
| Tue 04 Feb | Prakash S | Joel mentioned the same article in one of his writings. |
| Tue 04 Feb | Daniel Shchyokin | Each Engineer would have his own distribution of bugs! |
| Tue 04 Feb | David Clayworth | I like the idea of a course where you drop a grade for every bug found in your code. Most coders (including myself) have never written code debugged to that level, so it's really hard to estimate the amount of effort involved. Even if you never have to code 'maximum reliability' code, some experience of working at the extremes would give you a much better feel of what is required to make code more relaible (or how much effort you can avoid if your code does not have to be so reliable). |
| Tue 04 Feb | w.h. | I have written code to a pretty high level of perfection. Not to a space-shuttle level of perfection, but very good for a commercial software package. It's a small library that gets a lot of use and it has been at least a year since there was a bug found in it. I'm very proud of it, so you'll have to excuse the boasting.
There is no spec, just a lot of experimentation and mental models in my head. Since it's just me and I spent a lot of time researching and measuring the problem, all I really needed to do was document it after development was done. (I have no doubt that if I was coding around something that I didn't have a firm grasp on, I'd need multi-hundred page specifications)
It has a fair load of assertions to make sure that everything is working correctly. Any potential input, no matter how unusual, is handled in a correct fashion. There are two test suites that exercise just about everything in the code. Once is test cases for boundry conditions that I wrote and the other one is sample data. I make sure both will run correctly before I'm comfortable with the code.
This piece of code was also developed with enough of an eye towards the future and enough simplicity that it hasn't needed to be changed, which helps.
It's actually quite nice to have a few pieces of code in a project that are so stable that you can assume them to be correct while debugging a problem in that code path. |
| Tue 04 Feb | w.h. | Last thought -- Process is not necessarily everything. There is not one correct process, there are many different ways to do the process that ensure that the result is correct. This is the flaw with SEI's CMM, IMHO. |
| Tue 04 Feb | WhatTimeIsItEccles | I did a course at university about Formal Methods, this was mostly to do with a formal specification language called 'Z'. The idea was that all functions (in the very general sense) were specified using pure mathematics with pre-conditions and post-conditions. What was nice was that there existed checking programs that could take this notation and check it for completeness. Z is not easy to use, and the step between it and code is great, but it can be used as a firm basis from which later development can be referred back to.
I believe that IBM used Z to reverse engineer CICS from its assembler base (pre 2.0 I think) to a new set of specifications for the C versions, the idea being that the functionality was exactly eqivalent and that any holes in the original assembler code were filled.
Using such formal methods is extremely time consuming and you need mathematicians rather than developers to write and use it. It really only makes sense in life or death or other situations. What was very impressive was that our lecturer stood at the front of the class and said that with such methods you could *prove* that your specification was *correct* in the strictest sense. Its a mighty impressive thing to be able to claim. The problem is then shifted onto compilers and the later stages of development. |
| Tue 04 Feb | Joel Spolsky | I don't really believe in these systems in which you 'mathematically' prove the correctness of code. In real life the mathematical proofs are so difficult and complex, you're just as likely to make a mistake in the proof itself. And in reality that's what happens. |
| Tue 04 Feb | WhatTimeIsItEccles | I wasn't referring to proving the correctness of the code, I agree that is a difficult thing to do. With Z you can prove the correctness of the specification and if you have such firm foundations then it can make for a very strong edifice indeed. The beauty with Z and other systems like it is that there exist programs that do the checking for you.
I think the 'halting problem' is used as a proof that you cannot have a program that can check other programs for correctness/halting, at least not in the general case. |
| Tue 04 Feb | Peter H | 'This software never crashes. It never needs to be re-booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. '
This may be slightly off topic, but one of my arguments against the strategic defense initiative is that the requirements for that program are too complex to be implemented without a lot of bugs. If the shuttle's software is so good, as this poster indicates, would it be possible to make SDI software just as reliable? I hope I'm not comparing apples and oranges. |
| Wed 05 Feb | Dino | Practical Geezer,
At the risk at beating up an expired equine, here are a few thoughts on statistics and software.
'There are lies, damned lies, and statistics' ... that's absolutely true. One must always question the assumptions used for a statistic:
First of all, software bugs are Weibull distributed.
On a note: Poisson (the distribution of indepent events) is a particular case of the Weibull distribution. If there is a memory like type of effect from one event to the next one, the distribution is Weibull.
This is somewhat natural since bugs are accidents and after that there is a process of 'bug interference' where some bugs recombine in normal behavior (two wrongs make a right!) or in skewed problems (they create bigger problems than they should).
And contrary to the common sense, the distribution would not change with who the programmers are, but only some shape parameters.
Nevertheless, with a known distribution one can derive certain facts like - assuming we know how efficient the QA is - the distribution of non-detected bugs. With a known distribution one can calculate probabilities - for example 'what is the probability to have 5 bugs left in the code?', or 'what is the average number of bugs left in the code and how big the deviation from this average?'
This is statistics, it is measurable and the values would help determine 'how many people we need in support?'. In a way, it is a rigurous way to deal with uncertainties if applied correctly.
Seeding bugs in the code would give us a measure of how efficient is the QA. Of course, bug detection has its own statistical distribution and this may complicate things. But that, not now ...
Cheers
Dino |
| Wed 05 Feb | Practical geezer | Dino,
Thanks for the extra information.
Just to be sure, I acknowledge the points you make and never meant to dispute them. Statistics give you a good idea about how much extra testing you may need, how much support, or anything else that might be based on the quality of your product.
So in that way it is very useful.
However, I have seen many take probabilities for certainties and base totally invalid conclusions on totally valid statistics. Hence the word of caution about statistics. Obviously, your not in my target audience :-) |
| Wed 05 Feb | Practical geezer | Correction, 'you're not'. |
|
| CVS: Joel not taking his own advice | Mon 03 Feb | Gregg Tavares |
| Id be very curious to hear why Joel uses CVS. Its pretty clear that Perforce is better and Bit Keeper even better still. Fog Creek being small probably doesnt need the features of Bit Keeper but they probably do need the features of Perforce (atomic checkins)
Joels opinion is a good company uses the best tools money can buy. Does this mean Fog Creek is not a good company? Does it mean CVS is the best tool? (even the CVS team knows that is not the case as you can read their excuses and prayers that somebody will add the missing features)
Whats up with that Joel? |
| Mon 03 Feb | Joel Spolsky | cvs is totally, completely good enough for our needs. When it stops being good enough, we'll consider something else. |
| Tue 04 Feb | Mike Swieton | On a similar note, is there a real difference between 'good enough' and 'best'?
Serously: if it will solve your problems completely, then it's the best. It doesn't matter if something else does more, you don't need it: it's not solving any problems you have.
Just a thought (Also, CVS is free. If it works, use it. Why buy better when 'good enough' is available?).
On a similar note, this reminds me of an important paper: 'Worse is Better'. Perfection is not useful because it is not attainable. 'best' is not useful, because it is massively overkill, and often much more expensive than 'good enough'. |
| Tue 04 Feb | Jeff | My thinking is along the same line as Mike's. In my mind, 'best tools money can buy' still has a cost/benefit factor in the decision as to what is ‘best’.
Is it worth paying 10x as much for a tool that does 2x? It might be, if you need the extra functionality. If you don’t need the functionality, the money’s wasted.
Another factor is the upgrade path. If it’s easy to upgrade to a better/more expensive product when you eventually need the features, I’d use the cheap one that meets my immediate needs (I have other things to do with that money right now). OTOH, if the upgrade path was difficult, and I knew I’d need the advanced features eventually, I’d be more inclined to pay the price for the more advanced one right now. |
| Tue 04 Feb | Bruce Rennie |
Actually, the initial post sounds less like a 'You may not be using the best tool' message than a 'I need to justify my recent expenditures' message.
Only a fool changes things that are working without good reason. Upgrading to the latest shiny new toy is not a good enough reason on it's own. |
| Tue 04 Feb | robert | 'cvs is totally, completely good enough for our needs. When it stops being good enough, we'll consider something else.'
I sincerely doubt it. By 'good enough' I assume you mean 'does everything that we need it to do to reasonably optimize our productivity as it relates to source control' rather than 'we are profitable now and are not interested in being more profitable.' I think you are simply not aware of the practices that more advanced tools allow and the productivity gains that can be made by using them.
For one simple example, you recently talked about doing a 'binary search' to look for a performance bug. You didn't say how you selected your check-outs, nor how you ensured that they represented self-consistent code states, i.e., you didn't cross the boundary of a checkin. You probably glossed over that 'detail' because in CVS you *can't* do that with any level of certainty.
If you had a changeset oriented tool, you could have done this search not only with confidence that each build was self-consistent, but you could have narrowed it down to the specific check-in that caused the changes, not just the day.
And that is the tip of the iceberg... |
| Tue 04 Feb | robert | 'On a similar note, is there a real difference between 'good enough' and 'best'?
Serously: if it will solve your problems completely, then it's the best. It doesn't matter if something else does more, you don't need it: it's not solving any problems you have.'
Would you acknowledge that many shops have problems that they don't think of as problems, or they think those problems are unavoidable, when in fact they are not?
Because Joel, or anyone else, thinks 'CVS is good enough' does no make it *necessarily* so.
Education about the practices surrounding source control is, in my opinion, some of the lowest hanging fruit in software development productivity right now. |
| Tue 04 Feb | Jeff Kotula | Regarding the 'isn't good enough best' thread: The problem with this argument is that it is often used as a rationale to justify mediocrity.
It depends on which side of the question you're on -- producer or consumer -- and how well each side knows what it is actually trying to accomplish. |
| Tue 04 Feb | Nat Ersoz | Perforce is clearly much better than CVS. Its ability to maintain and track through branched code, labelling is painless and can be done by any user - not just administrators, checkins are atomic. Perforce doesn't leave its baggage hanging around in the form of CVS directories all over the place (that is so stinking sloppy, it isn't funny). Perforce is powerful and intuitive. It allows average users to harness the power without becoming a master of it (unlike so many other so-called 'technologies', which are poorly thought out and at the end of 2 years get thrown away for their uselessness).
But changing version control systems takes SO much time and effort that it perpetually gets put off. That's because the marginal gain in productivity does not match the cost - tool cost (low) versus days lost and mistakes made (high).
Anyhoo... |
| Tue 04 Feb | andrew m | 'You probably glossed over that 'detail' because in CVS you *can't* do that with any level of certainty'
Actually, with CVS it is perfectly possible to do what he needed to do. (Not only that, but you can check out a particular version of the software with absolute certainty that you are using the same files as were used the last time that version was built.)
The first step would be to tag the entire code base at the time the daily build is done. (A two line script can issue a command that says 'tag all files with the name 'DAILY_BUILD_'' and then check out a copy of those files to the local hard drive for compiling. The daily build system should include a script to manage the source code - the actual developer shouldn't need to think about it, or remember that it needs to be done.)
You can then easily use one single command to get a copy of the source code (including makefiles, build scripts, etc) from any particular date.
This means that it is trivial to get an exact copy of the source code as built at a particular point in time. Given the size of the Fog Creek development team, knowing the day on which a bug was introduced should be more than sufficient to quickly look at what was done that day and fix it. Getting and compiling the code would be easy - testing it to determine if the bug was present in that build would be the slow and difficult process.
Btw, if you have three people all working in one room, then collisions during committing and checking out files are trivial to avoid. If you have three hundred people scattered around a building with an office for every person, then it's probably worth using a system that does more to prevent collisions. Given the size of Fog Creek Software, CVS may well meet their needs perfectly, even though there are other systems that do things that CVS doesn't. |
| Tue 04 Feb | robert | 'Actually, with CVS it is perfectly possible to do what he needed to do. (Not only that, but you can check out a particular version of the software with absolute certainty that you are using the same files as were used the last time that version was built.)'
That depends on what you mean by 'needed to do.' What he did is check out by date - at least that's what he said he did. Which provides no guarantee that he didn't cross a check-in boundary.
Tagging makes it possible to make any given revision frontier reproducible, but find me a shop that tags every self-consistent revision frontier, and I'll eat my hat. It's extra work and a maintenance nightmare to boot. |
| Wed 05 Feb | Just me (Sir to you) | 'good enough for our needs' is not the same as 'the best money can buy'.
A Pentium II 266 with 128 Mb of Ram and a 15' CRT is 'good enough for our needs' at RatScrapeDevelopers.com, but it is never 'the best money can buy'
50 devs on a shared 10Mbit network with a single dial out ISDN line to the Internet is 'good enough for our needs' at PennyWisePoundFoolish, but never 'the best money can buy'
An EBay $5 copy of Borland JBuilder Pro 4 is 'good enough for our needs', but never ...
you get the picture. |
|
| Fear... | Fri 31 Jan | GiorgioG |
| This is scary stuff IMO...
http://www.businessweek.com/magazine/content/03_05/b3818001.htm |
| Mon 03 Feb | Slava | 2cheapo
>>The company that I work for has begun outsourcing projects to a team of Russian programmers. ..
The Russian code, however is far superior than any of my fellow developers, and much better than a lot of the places I have worked at before.
Might just be one in a million<<
No, not one in a million, might be typical Russian code. There are some historical reasons for it. Today I wrote an e-mail to an American that wants to establish partnership to use Russian developers.
That`s a part of this mail with a very brief and Americanized explanation of a fact that Russians create good code:
'Historical reasons for Russian programmers to be that good: As you might know, in end-1950s computer industry started to grow fast, due to a high demand for calculations and automation in business and military areas. But in Soviet Union Communists' government seemed to ignore this process, taking computers as another 'capitalists' toy'. They were terribly wrong.
In 1960s it became evident that USSR lags behind USA in computer hardware, American computers were simply faster then Soviet ones. It was too late for Soviet Union to cover the gap in hardware performance, we had no Intel, Motorola, DEC and IBM here. This situation became dangerous for Soviet military system, they needed computer-guided weapons, computerized planes and submarines to compete with US.
The situation with labour costs and hardware costs in USSR was quite contrary to the one that US had: labour was cheap (everyone was paid low) while hardware was expensive. So Soviets opted for world's best programmers to cover the gap created by world's best hardware made in USA. Communists invested a lot of money in math research centers, in math education system and in programmers that had to create fastest algorithms ever possible, thus enabling Soviets to keep their weapons on par with American ones.
Today we have no weapons race, our countries aren`t enemies anymore and we can buy American hardware for Russian oil, but we still have our math education and math research school, a scientific background for a new generations of programmers.'
May be 'education' and 'investments in programmers' is an answer to all this 'Fear' topic? |
| Mon 03 Feb | Lauren B. | Well, I'm nervous about it too.
The way I see it, there is no (capitalistic) reason not to move teh work offshore. It's cheaper, which pleases the customer and the shareholder. So why not?
I console myself with the observations I had about a project in the organization where I worked. I was not on the project, but I did some of the documentation for it. The system development was almost entirely outsourced to a consulting company in India. Holy smoke, that system had the worst documentation and error messages I have ever seen. Crappy English grammar, sometimes unintelligible messages, etc. Additionally, they didn't always understand the specs (written in English by the organization), so the system didn't entirely meets its specifications.
Smugly I think, 'hah, only an American can built a successful and usable system for Americans to use!'
Bullcookies. It is only a matter of time until the offshore companies get their act together. I'm sure the first offshore-produced Nikes weren't so good, either.
My socially conscious side says this is great! Raise the standard of living for the world! Let us all share in the wealth!!
My selfish side fears losing the comfy living standard I already have.
I think it's going to happen. |
| Mon 03 Feb | Slava | As I said before...education is a key - if you (your country) will be more educated ->more knowledge ->higher human capital ->higher standard of living.
Invest a little time in yourself, learn something new. It doesn`t guarantee that you`ll get a job, but it will increase the probability.
I`m going to learn Spanish, I`ve almost finished learning touch-typing, and when I finish with Spanish, I`ll try to revive my French:), and I keep myself reading and learning something new -not for my company or my boss, but for myself, to become more valuable.
Don`t give up:) |
| Mon 03 Feb | Stephen Jones | >>>>>'hah, only an American can built a successful and usable system for Americans to use!' <<<<<<
Strange then how Hotmail, designed by an Indian, worked fine until it was taken over by an American. |
| Mon 03 Feb | fool for python | globalism is driven by communication technology, not management decisions. Management is following it, not leading it.
We live on a globe, I embrace the challenge of 'dealing with it' |
| Mon 03 Feb | WNC | As an incurable optimist, I think the United States will probably continue to develop new technology that will create tons of new jobs for the people in our country. A great many out of work programmers become entrepreneurs and it turns into a good thing that they lost their jobs because they end up employing more people. Is the glass half-full or half-empty. You choose your perspective. We are not mindless amoebas being forced around on a spoon. We are human beings reaching for the stars. The market is not a god that leads us around by the nose. |
| Mon 03 Feb | WNC | If you believe you are powerless to effect your destiny you have my pity. It is powerlessness to believe you are at the mercy of a “job market” or a government or a trend. Powerlessness never gets people out of troubled times. |
| Mon 03 Feb | Prakash S | 'Strange then how Hotmail, designed by an Indian, worked fine until it was taken over by an American. '
Not many ppl had heard abt hotmail before microsoft bought it.
Frontpage sold 239 copies (If i remember Charles's book correctly) before Microsoft bought it.
Microsoft does a good job of promoting their software. |
| Tue 04 Feb | cheapo | Hotmail was the first and most popular webmail system at the time Microsoft purchased it.
9.5 Million users at the time of purchase is hardly 'not many ppl'. |
| Wed 05 Feb | Brian Hall | Not in the mood to do my internet-standard 'Economics Lecture' which I do approximately every time I get the chance, usually (but I have an English paper to write :( ).
But just add this to your thinking: having lower-priced goods is the same as having a higher income. It's all about purchasing power.
Income doesn't matter on it's own, which explains why people are materially better off now as compared to the 1970s, but only relative to the cost AND quality of goods that they buy.
The only question is whether or not America as a whole will be made better off by free trade - it's already certain that the world as a whole will be made better off. The answer is: only if entities are providing superior value to their customers (if you are an employee your customer is your employer).
If they are not then they have no right to be paid. There is no divine right to be paid because of who you are or where you live.
Protectionism has always, always, ALWAYS hurt people on the whole, and especially in the long run. Yes, some individuals do get run over in the process. Ok, they get more than run over - it can be a whole lot messier.
Globalization is disruptive - so it technology. Disruption itself seems to me to actually be very valuable - it stirs things up, and it forces people to re-examine things they otherwise never would have, and so often that means Innovation - that's good, at least for those who don't get trampled.
Pretending the government doesn't exist to get in the way, eventually some people will have to change careers (according to one statistic I heard from the US Labor Whatever, most people change careers 2-3 times in their life time anyway). Other people will have to move to keep their jobs - possibly out of the country, yes. Others will keep their careers but will have to switch jobs, and some of those people will get better jobs, and some of those people will get not-as-good jobs. Yet other people will see no change.
For those of us not in the sectors affected, we're likely to be better off because goods are cheaper. Yay!
The only question is whether is winners - those made better off - should have to right checks out to the losers - those made worse off - by change. In other words, should government impose a tax on software, the proceeds of such to be used to pay those ill-effected?
I don't mind taxes for providing education and retraining and living expenses in the mean time for those who are put out of work by changes in the economy, if they are actually used FOR THAT PURPOSE, of course. In the real world they end up being a total waste of money for many reasons...but that's neither here nor there.
Government should not be permitted to get in the way of competition, including global competition. The only question is how and to what extent the government should deal with the aftermath. |
| Wed 05 Feb | Prakash S | Well said Brian. |
| Wed 05 Feb | Stephen Jones | >>>>Protectionism has always, always, ALWAYS hurt people on the whole, and especially in the long run<<<<<<<
Protectionism always hurts in the long run, but for developing countries it can be highly beneficial (Germany in the 1890's or Spain in the !960's and 1970's).
One thing is clear; the US has gained more from globalization than nearly any other economy (Japan probably being the exception). |
|
| How to promote good incidental communication | Fri 31 Jan | Bill Tomlinson |
|
In the recent thread about offices vs. cubes vs. one-big-room the main point of difference between the offices people and the one-big-room people seemed to be the quality of the incidental communications (defined as communications not specifically directed at you). For example:
Good:
Overhearing two co-workers talk about a bug they encountered in the foo routine and noticing that it is similar to the bug youre working on in the bar routine.
Bad:
Overhearing two co-workers talking about who should be kicked off the latest reality show and noticing that you dont care and youve just dropped out of flow.
The people who liked one-big-room seemed to have a lot of the Good and little of the Bad. Whereas the people who didnt like one-big-room (like me) had had a bad experience with lots of Bad and little Good.
This leads me to ask the community:
If you have had a good one-big-room experience, what qualities kept the, if you will, signal-to-noise ratio of incidental communication good?
(policies, procedures, attitudes, office arrangement, etc). |
| Wed 05 Feb | Astarte | IMHO if your flow is constantly interrupted by people outside your team / division, its your manager's problem and you should moan until he fixes it.
Where I work we have a formal seperation of function across division and we have formalized the communication between sales / finance / support people and developers. Interaction is via email and our bug reporting software and one person per team is assigned ' buggable' duty as Issue Manager. This duty rotates every 2 months or so and we have a roaming email which follows that person around. The issue manager also generally has his / her own office, so people popping in to 'quickly ask about x' don't disturb the other developers. I think this works extremely well. The issue manager knows which dev to bug and when, and he understands flow so he doesn't do random drop-bys. When he doesn't know what to do, he escalates to the team leader. This role is stressful for the issue manager, but also a great way to learn and get the bigger picture. Most devs really enjoy the change of pace for a while.
Btw, I don't buy the 'better communication in a shared space' idea. Where I work we are 2 to an office and that works great. People drop into each others offices to discuss technical issues, or to visit friends, but without ever bugging more than 2 people at a time. 'The zone' is your friend :) |
|
| Does usability matter? | Thu 30 Jan | Thomas |
| I place a high value on usability. But I have used some very successful products (and websites) which have very poor usability. And, in thinking over the various processes and criteria which Ive seen used in making buying decisions, usability has been of little or no importance. It appears that usability has only a small effect on the success or failure of a product.
I am at a loss to understand why this is so, since poor usability can have a dramatic impact on productivity. To say nothing of frustration.
So I ask... how much does usability matter? Where is it important? What am I missing here?
-Thomas |
| Wed 05 Feb | Ben Combee | Read a copy of 'Tog on Interface'. One of the things Tog does really well is back-of-envelope calculations of how usability improvements save users money. For example, he used AOL's early Macintosh email system as an example. When you created a new message, the cursor wasn't put into the subject field automatically; you had to manually reposition it with the mouse. Tog estimated that the collective time wasted by the users of AOL just on doing this one task added up to 80 person-years of effort. A little program change would save an amazing amount of money and time over a whole population of users.
Most apps aren't used by such a large population, but if you're making something that you want to reach a large audience, it is worth considering issues of efficiency and simplicity in your user interface. You will win over customers, and they will be eager to see what you do next. |
|
| Where to find good Beta testers? | Wed 29 Jan | sedwo |
| As my software nears completion, testing it (as we are all aware) is of prime importance. But I fear spreading the app. to just anyone. And would like to know how other software companies gather their trustworthy beta testers? What kind of license agreements are written? |
| Wed 05 Feb | dunno wair | Forget Beta, go with VHS. |
| Wed 05 Feb | dunno wair | Oops, next thread. |
|
| VHS Better than BetaMax? | Wed 29 Jan | Matt Watson |
| I know I have always heard the other way around, but this artictle:
http://www.guardian.co.uk/online/comment/story/0,12449,881780,00.html
begs to prove differently. Pretty interesting read about the mix of marketing and technology that I thought some people on this board would appreciate. He also goes into talk about why the WINTel box is superior to other OSes.
This was originally posted on slashdot (twice) so you may have already seen it. |
| Wed 05 Feb | dunno wair | I thought DivX was the new porn standard... |
|
| Syntax, Idioms, and Japanease | Sun 26 Jan | Ori Berger |
| Benji raised the issue of an improved syntax for C++. I strongly disagree with the idea that code readability should be measured in some absolute terms, or by the (relatively objective) non-professional-programmer bystander.
Code should be concise, and verbosity improves clarity only for someone who is not versed. If you work on an ADA project, you very quickly develop strong dislike towards overly verbose languages. That has been my experience, and of many others, anyway. VHDL (an ADA inspired language for hardware design) is infinitely more readable to an untrained eye than Verilog (a C inspired language for hardware design[1]). At least, it seems that way initially, but soon enough you notice that without proper training, you cant make any real sense of code written in either (and it takes you much longer with VHDL to figure that out), and when you do have proper training, the readable syntax of VHDL gets in the way of expressing details concisely and clearly. It may come as a great surprise to you, but C is vastly more popular than ADA and Verilog than VHDL. While the complexities of hardware design strongly stress the need for proper training, it is not less true for pure software.
You cant escape knowing all the little details; if the source says a logical-or b rather than a || b, you still have to be aware that it short circuits, or otherwise you wont be able to read the code. Similarly, you still have to remember that a divide b behaves differently when both arguments are integers than it does if one of them is floating point -- e.g., a divide (a divide 2) will be exactly 2.0 for floating a=1.0, but a division by zero for int a=1 - and it will be approximately 2.0 for many other floating point numbers. And I dont think you would want the operators to be called a shortcircuit-logical-or b and a integer-divide b; And if you do want to call the operators that, you DO know that shortcircuit is a term that some people will require further explanation, along the lines a logical-or-that-evaluates-second-only-if-first-false b. Every programming language has its idioms, and some languages (K, Lisp) even have meta-idioms that guide the creation of new idioms. Its an inherent feature of the software world.
So you might as well spend some time and get used to the syntax. At the extreme, there are languages like APL and K which reduce program lengths 100 to 1000 fold. They look unreadable to anyone not versed in them, but once you get it (not an easy task), they are much more readable. Reading a K line may take 10 times as much, even if you are versed, but if its 1000 times shorter, dont you think the tradeoff is justified? Plus, theres much less place for bugs to hide :)
I recently read an article by a japanease fellow that mourned the decaying use of kanji. That struck me very odd, as I always thought the japanease moving to a phonetic system was making things better for them. His complaint mostly revolved around I can read kanji more than 10 times as fast as I can read the phonetic alphabet (whose name escapes me at the moment. kana, maybe?).
The philosophical debate whether increased complexity justifies the increased barrier to entry for a natural language is one I do not want to get into (at least not in this forum). However, software people are supposed to be professional (yeah, right), and are supposed to make software that works and that can be supported by a software professional. It wont ever be supported by joe user, because of bugs like divide and logical-or. So I think there is _every_ reason for kanji-like programming languages (e.g., K).
You can find a shallow introduction to K in:
[ http://www.kuro5hin.org/story/2002/11/14/22741/791 ]
A few examples of how concise (and strange looking, until you get used to it) K is, can be seen in
[ http://nsl.com/papers/papers.htm ]
And I quote, from the N queens link (a generalization of the 8-queen problem):
qn:{[n],/nq[n;w-1;w+1]w:!n}
nq:{[n;l;r;v]
:[n=#v;,v;,/{nq[n;-1+l,x;1+r,x]v,x}(!n)_dvl v,l,r]}
Would have fit in just two lines if this editbox was slightly wider. An additional line,
bd:`0:_Q(!8)=/:p
prints a solution neatly as an 8x8 board.
As for kanji examples .... sorry, I dont speak japanease :) |
| Wed 05 Feb | Robert Cowham | Check out Paul Graham's article 'Succintness is power':
http://paulgraham.com/power.html |
|
| convert BMP to JPG | Tue 04 Feb | Alex |
| How can I convert .bmp files to .jpg?
Thanks,
Alex |
| Tue 04 Feb | robert | I hope it helps:
http://www.reasoft.com/rea-bmp-change-jpg.shtml |
| Tue 04 Feb | Stephen Jones | Alex,
Ignore the supercilious post just below yours.
It all depends on what graphics program you have. Most graphics programs have the faciltiy to do this (in Corel Photo-Paint it's called export.
To get free programs go to Google and type .jpg + .bmp + convert in the search bar and you will get a slew of programs coming up. |
| Tue 04 Feb | Jeff | The Paint program that comes with Windows XP will save as .jpg |
| Tue 04 Feb | TK | I use Photoshop Elements, it's less than $100 and for me it has been very much worth it for the 1% of it's features that I use. |
| Tue 04 Feb | Nice | I think that even 'MS Paint' (look in your accessories menu off your start menu) can open a bmp file and save as a jpg. And that is free with every copy of windows (at least on win2k) |
| Tue 04 Feb | Ged Byrne | Irfanview does batch conversions, and just about everything else. When of my favourite bits of freeware.
http://www.irfanview.com |
| Tue 04 Feb | Alex | Thank you very much, I've made it |
|
| how difficult is kernel programming? | Tue 04 Feb | hacker |
| How difficult is it for somebody doing high level application development in C++ or Java, to work with low level kernel activities, that is say you were to implement a scheduler or a virtual memory system? I would guess it would be pretty difficult.How much time would it take to develop a VM system from scratch? |
| Tue 04 Feb | Katie Lucas | Depends how complex you want the VM system to be.
Go get a copy of the source to Minix, and 'Operating Systems: Design and Implementation' by Andrew S. Tanenbaum - he wrote Minix and the book as an example of how to build a UNIX for a teaching tool.
That's got enough info in it to get you started on your own OS development work.
If you're thinking of something the complexity of the Linux VM system, don't. It's horribly, horribly complicated. Seriously. It's not funny AT ALL. |
| Tue 04 Feb | Nice | It is incredibly challanging, but that is what makes it really interesting! Quite a few people work on 'hobby' OSes; look at http://www.osnews.com and http://www.mega-tokyo.com/forum/index.php?board=1
Just expect it to suck up all the free time you have, and then some. |
| Tue 04 Feb | Mike Swieton | I've browsed the source of the Linux kernel: it's not too complex. Or that is, the code itself is relatively clean and as easy to get into as any massive project I've ever seen (Which means it's hard, but still...).
In any case, designing any big subsystem like a VM will always be hard, but I've found it surprisingly easy to look at or tweak the odd driver or two.
Minix is great for learning, as that was it's intent: to be simple, a learning OS.
But remember that every open source OS is a big, multi-programmer project: there will be some parts that are hairy by necessity, some that are hairy because of their authors, and some will be good. That's how software works :) |
| Tue 04 Feb | Nat Ersoz | I've found the Linux kernel source to be some of the cleanest code I've ever read. The directory structure is orderly, names are short but descriptive (not polluting names with 'lpsz' style simpleton garbage helps). State is not used when state is not required.
I'm guessing that one reason the code is of such high quality, is that it is subject to near infinite peer review. Not to mention that the people working on it are of such high caliber.
I wouldn't spend time writing a VM from scratch without reading what others have done first. Also, before posting a message to the kernel mailing list, make sure you've done your due diligence (grepping through the tree for keywords, and studying what you find).
FWIW. |
| Tue 04 Feb | John | For anyone who's interested in that sort of thing, there's a complete rewrite of the VM used for Perl in the works, Perl too for that matter. VM's called parrot, language'll be Perl6 - see dev.perl.org |
| Tue 04 Feb | Ori Berger | The Linux VM system is a Virtual *Memory* system, whereas the perl VM system is a Virtual *Machine*. And now back to the subject:
It's going to be hard if your mine has rotted with OO concepts. Kernel programming is really straightforward, once you unlearn common coding practices.
The environment is a bit unforgiving, though - almost any bug sends your machine to that big blue screen of death in the sky.
If you're thinking about Windows kernel programming, another machine and/or VMWare (or Bochs, if you can't afford VMware but can afford the time) is essential, or you'll spend lots of time waiting for the machine to reboot, and risk data corruption.
If you're thinking about Linux, there's User-Mode-Linux (overloading the UML TLA...), which runs a kernel in user mode, giving you all the perks of user mode development, but still lets you develop kernel space apps.
If this is for education, rather than a work think, start with a simpler kernel - DOS style (FreeDos comes with source), Minix, AtheOS or something. |
|
| Franchising Your Code | Mon 03 Feb | Justin Johnson |
| In this thread, http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=27673&ixReplies=5 , Wayne suggests porting FogBUGZ to Perl to make it platform agnostic and increase its platform availability. Joel replies that the cost/benefit analysis doesnt support the effort (as hes said many times before in his explanations of why he doesnt port to Macs). This makes perfect business sense.
However, that doesnt mean a deal cant be made: franchise the code. Give someone like Wayne access to the code with an NDA, and let him port it; in exchange, Wayne gets his port and a residual percentage of sales of the product for that platform. Joel gets to specify in the contract functional and code quality to ensure that the FogBUGZ name isnt damaged by a bad port. Theres no cost to Joel except the administration of the deal, and he receives a slightly diminished share of the profits on a product he wasnt going to develop anyway.
Its not as simple as agreeing to something over email, but I dont see why it isnt doable. |
| Mon 03 Feb | Joel Spolsky | OK, I didn't actually say we wouldn't do it, I just said that it required some kind of cost/benefit analysis, as opposed to being just 'pure goodness' as Wayne presented it. Programmers are apt to present their pet technical ideas as being Pure Goodness, but when I don't hear even the faintest hint of the COST of doing their pet technical projects, that's obviously the first question I'm going to ask.
Let's say that we decide that a port has cost X, and is worth nX (some factor of X). Obviously if n is less than 1, you don't do it, because it's a loss of money. That part is easy.
But what if n>1... now do we do it? Actually, no. Because there are lots of things you can invest your money (and time) in doing. So you want to choose the items with the highest return on investment. Maybe we'd rather develop a new application rather than spend time porting FogBUGZ to another platform. Maybe not. In any case any company always has a lot of opportunities any of which might or might not make money, with various probabilities, and you have to choose the ones that are the best use of limited investments, in time or money. |
| Mon 03 Feb | Justin Johnson | But that's the point: the cost/benefit analysis is different for you and our hypothetical Wayne. Wayne values a port more than you do, and your cost is much, much lower, including your attention, which isn't distracted by a project you wouldn't pursue yourself.
I actually don't care about a port of FogBUGZ. I'm more interested in the idea of franchising code. It strikes me as a good business model for a small software house to expand its market without tying up resources or growing the office. |
| Mon 03 Feb | Wayne Earl | And Joel is completely correct here - you do have to choose your investments wisely. My thinking was that if Joel was going to port to MySQL on the Windows platform, he must have realized that MySQL is a poor database on that platform - performance and stability of MySQL under Windows continues to be an issue to this day. I say this as someone who administers very large MySQL and SQL Server databases - MySQL is not a very good solution on the WIndows platform.
To support MySQL with FogBUGZ is to accept the performance and stability issues with MySQL under Windows, and to incur the additional cost of supporting FogBUGZ users who decide to use MySQL under Windows. Alternatively, FogBUGZ could provide ODBC connectivity to a MySQL database running on a *nix machine, which is an ever greater pain - more hand holding for FogCreek = more $ spent on user support. The other alternative is to offer MySQL compatibility with FogBUGZ but not support it - in my mind, this is never a good idea with a commercial software package (though some might disagree with me).
The other solution to this is to make the application platform agnostic, which would allow better interoperation between MySQL and the application. The cost to port could be framed as a refactoring of the code for the next release of FogBUGZ. Once the code is platform agnostic, FogBUGZ can be marketed to a larger audience.
I am not a Linux zealot - I was actually one of the first adaptors of CityDesk, and have advised a couple of my clients to purchase the software (which they have). I am a firm believer in using the right tool for the right job. Perhaps my line of thinking was different than Joel's, but hey, there's room for everyone here ;-) |
| Mon 03 Feb | Justin Johnson | It also seems that franchising code is relatively risk-free for the franchiser, given a solid contract: if the port is bad, it doesn't get released under the franchise name, in which case the only money lost is some time and lawyer's fees (and there's a crappy competitor out there, next to which the franchiser's product looks good). If the franchisee releases the code under the franchise name without meeting the conditions of the contract, there's clear-cut grounds for a lawsuit. If the port is good but doesn't sell well, there's very minimal overhead for the franchiser to bear, since the sales of the port are incremental for the product overall.
These aren't trivial concerns, but they're relatively minor compared to the larger market concerns any manufacturer has when releasing products. |
| Mon 03 Feb | Prakash S | 'It also seems that franchising code is relatively risk-free for the franchiser....'
which is the reason Microsoft ate up so many smaller companies for dinner! |
| Tue 04 Feb | | Justin Johnson wrote, 'If the port is good but doesn't sell well, there's very minimal overhead for the franchiser to bear, since the sales of the port are incremental for the product overall.'
Well, I can see some customer relation problems here.
Customers who purchased the Mac or Linux version of FogBUGZ are going to expect an upgrade or bug patch when the Windows version gets upgraded or patched. However, because initial sales of FogBUGZ on the Mac were poor -- Wayne (having fullfilled the original contract) is no longer interested in doing business with Joel. |
| Tue 04 Feb | Justin Johnson | There's a couple ways around that. First, franchising is a long-term business relationship, so Wayne's continued receipt of residuals could be contractually tied to his continuing to port the product and provide fixes, upgrades, and new features that are in the standard version in a timely manner. Or, simply sell the port at a slight discount with the disclaimer that it's not as well-supported as the original, or that it may be discontinued. If the port's sales are bad, then you're pissing off a very small customer base, which is probably a valid business decision.
There's an upside for the franchiser here: if the port sells well, it may become financially sound to buy the franchisee out and bring the product in-house. |
| Tue 04 Feb | Steve H | Contract or not, if I'm a small software company my main concern in trying to create this type of relationship would be 'Do I trust that Hypothetical Wayne won't take my IP and screw me?' |
| Tue 04 Feb | fool for python | If you are going to make the effort, look for ways to leverage your effort to increase n such as Python - wxPython.
wxWindows could have been used up front but I agree with Joel regarding being more productive with what you know and actually releasing something on your target platform.
I still can't imagine anyone moving on this without a solid analysis of the relevant market (potential value of n) and an understanding of the financial risks. |
|
| Is CM meaningfully covered in CS programs? | Mon 03 Feb | anonQAguy |
| To you developers out there, esp those with CS academic backgrounds:
Im curious to know whether you folks got any instruction or training in configuration management prior to getting out in the wild.
My degree and background is in engineering, but not CS. However, I have several times had situations arise in shops Ive been part of where **I** was the champion of CM, and in fact knew more about the overall need, process and use of particular tools in CM than a number of the developers--some fairly senior folks. I consider myself good, but not expert at CM.
What has surprised me is first, that I should even be the champion--I cant understand how fairly senior developers could ever not be as strong advocates of CM as I am, and second, that I should know more about how to implement it.
Im reasonably intelligent (get my shoes tied correctly every morning-and without help anymore ;-), and Im certainly not surprised when the developers know tons more about how to architect a system, for example. Im just completely surprised that senior developers would not know way more than I about simple stuff like labeling builds and being able to check out by label; I mean this aint rocket science. The hell of it is that the organizational juice normally lies with the developers, not with QA, so I normally lose the argument when I prepare a procedure and workflow for a project detailing specific CM steps, the procedure gets ignored (and I cant enforce it), then weeks or months later, the inevitable happens and I watch people scramble around trying to handle propagating maintenance changes across branches of code when they havent been tracking what files have gotten altered with each change request (eventhough the particular CM tool makes it just stupid-easy to do)
Ive seen this sort of issue in several shops now.
Are my expectations of developers appreciation for and understanding of CM too high?
Thanks, |
| Mon 03 Feb | Tipsy McStagger | What's CM? |
| Mon 03 Feb | Dennis Atkins | configuration management
no its not covered in any program i've seen but it's easy to pick up and practiced everywhere i've been so i don't see it as a problem |
| Mon 03 Feb | WNC | At the risk of sounding ignorant, I've never heard of it. |
| Mon 03 Feb | Mike Swieton | I've not heard of it either; at least, not by that name.
Do you have a link pointing to a good summary? I can think of a lot of things that CM might mean, but none of them really make sense :)
So far, the CS program here at GVSU has not mentioned that acronym. |
| Mon 03 Feb | Prakash S | i thought it was Content Management when I saw the Topic.
Colleges mostly teach you theorical stuff. |
| Mon 03 Feb | somebody | Configuration Management is often used as a synonym for source control, though it really goes a bit beyond that. It's often referred to as Software Configuration Management or SCM. Search google for that and you'll get tons of hits. |
| Tue 04 Feb | anonQAguy | Hmm. Interesting set of responses so far.
fyi, here's a link to an SEI paper I found in a couple minutes of looking. If you goto the bottom of the page at the link below and click to get the pdf, that's the whole paper, I think. I didn't read it, I only scanned over the front page--it gives a definition and a bit of description of SCM.
www.sei.cmu.edu/legacy/scm/abstracts/abscm_concepts.html
My own brief description of CM or SCM, is that it is essentially the process by which changes to software artifacts are tracked and controlled.
Before the XP supporters (and I consider myself one as well) get all hot and bothered about the use of 'controlled' in such proximity to 'changes', SCM is not a mechanism for stopping or reducing change in any way. It simply describes the field of endeavor by which you can change your software artifacts as you need to without inflicting self-injury--knowing what you changed, who did it, how, and why.
Bare source code control by itself is a subset of SCM, but I guess it's probably the component of SCM developers see most frequently and probably is why it's often the first thing that comes to mind. As other examples, in a shrinkwrap environment, all sorts of things may be tracked configuration items: the master disks that go to the sub contractor who runs the assembly line where the software is loaded into the bare systems, the controlled build environments on which all but dev builds are done, the development environment (e.g. OS and compiler versions and setup parameters), change requests (I'm using the term to include both enhancement requests and bug reports), a CCB (configuration control board - they meet to analyze and evaluate the impact of proposed system changes and to select features for upcoming releases, or to make decisions regarding patches), are all potentially parts of a CM process.
Realizing that software artifacts are going to change, SCM tries to keep it from becoming a chaotic grab-ass. |
| Tue 04 Feb | anonQAguy | Oh, and Dennis -
I'd say that at it's most 'anal' manifestations, a CM system can get fairly complicated perhaps, but I agree with you that for a hell of a lot of projects, the basics are not hard to grasp at all--neither the need for them nor their implementation.
Indeed, CM isn't supposed to get in your way, the mission is to develop the software system properly, not serve a CM process.
Anyway, what you said is kind of how I had thought of it too, hence the surprise I expressed in my original post.
I guess I'm going to have to push to have a little professional development session for our developers and fill in this gap. |
| Tue 04 Feb | Mike Swieton | Ahh, I am now understanding what you're getting at now.
While it's a small data point, here's an answer from here: no. I've not heard anything yet that suggests that anyone in the CS/IS department here at GVSU teaches any of those concepts.
On a tangent: it seems like CM would be split into two categories: pure code-related things (CVS), and management things (assembly line, etc.).
The pure CS program here will probably never cover the management ends, and I doubt they'll cover the source things, as I'm not satisfied with the way they cover more central topics, like on designing large systems.
Maybe MIT does it well :) |
| Tue 04 Feb | Karel | There is a continuum that goes something like
version control <->product data management<->configuration management<->knowledge management
KM seems to be about who interacted with whom on what in the modern enterprise but should rathwer be about product line engineering.
The traditional cm stuff falls far short of what is required in product line engineering |
| Tue 04 Feb | A Software Build Guy | I am 'Mister CM' at my work, In most smaller shops the Build Guy ends up being the CM Guy (Note Build Management is part of CM according to the IEEE) here is a quick over view of CM from a DOD Journal of SE:
http://www.stsc.hill.af.mil/CrossTalk/2003/01/leishman.html
and then you have http://www.daveeaton.com/scm/CMFAQ.html
The CM FAQ.
cheers
MAD |
| Tue 04 Feb | A Software Build Guy | And to answer the orignal Post: NO, I believe this is one of the failings of CS education in the US. |
| Tue 04 Feb | anonQAguy | Software Build Guy - thanks for those links; I just checked them out briefly and they look like good ones I'll need to bookmark.
I appreciate it.
Cheers, |
| Tue 04 Feb | Gwyn | As a CM specialist it was kind of interesting reading all these posts!!! Especially those who had not heard the term (although almost inevitably will be doing some form of informal CM).
What I didn't see mentioned was the word CHANGE.
This is what CM is mostly about; Managing CHANGE to products.
It's also about understanding what your products are their inter-relationships (e.g. a product hierarchy)
Change creates new versions (which must be managed), new builds (which must be made), new releases (which must be released). It's not just about version control. And it's not just about version control of source code. Documents an |