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. |