last updated:06 Aug 2003 14:09 UK time
|
 |
|
(Comments added for week ending Sun 27 Jul 2003) | View Other Weeks
|
|
| Web-based software demos | Sun 27 Jul | Kevin Merritt |
| Our fledling startup has a web-based application that I would like our sales reps to demo to prospects without getting on a plane or setting up a premeditated web conference.
My sales rep is already on the phone with the prospect and based on an expression of interest just wants to invite the prospect to our website where my sales rep will drive a brief demo. This is not a scripted demo that we want to can. This is just plain old one-on-one selling. No need for fancy a distributed virtual conference room a la Webex, Raindance or Centra.
The demo is purely web-based, so we dont need full PC to PC remote control or desktop sharing. Also, our prospects are always behind a firewall and shouldnt have to have their network team open up ports.
Any recommendations for a tool that can meet our needs? |
| Sun 27 Jul | Philo | Flash.
Philo |
| Sun 27 Jul | Mike | Make sure your website is not geared to a specific version of IE. If it requires a specific plugin have a place they can download the plugin PRIOR to your meeting. |
| Sun 27 Jul | Joel Spolsky | Set up a server with Windows Terminal Server and a web page with the Terminal Services web client (I think there's a Java Applet version). |
| Sun 27 Jul | GiorgioG | Joel,
How does terminal services help? He wants his rep to drive the demo, and the prospective client to see the result. Also, the terminal server web client still uses port 3389 - so this still won't work behind most corporate firewalls. What you really want is something that streams a real-time generated Flash animation. Sounds pretty specialized, and I've never heard of such a beast. Or you could go with something that'll stream quicktime video, but then you're assuming quicktime is installed on your client's computers. Flash on the other hand is just about on every PC... |
| Sun 27 Jul | Philip Dickerson | What about PlaceWare - http://main.placeware.com/ ? This will let you demo a web-based application from your end while one or more remote attendees watch in their local browser connected to the PlaceWare site. Voice discussions at the same time will be by phone not through any browser add-on. |
| Sun 27 Jul | Kevin Merritt | Phillip,
I have used Placeware before. I haven't looked at it in a while, but when I used it before starting MessageRite last year, I thought it only dished out PowerPoint presentations. Maybe it has changed since Microsoft bought it. It's now called Live Meeting (anecdotally, I do find it amusing that parts of the Live Meeting sales & marketing website are still written in Cold Fusion).
Regardless, I don't like the middle-man model, mostly for the inconvenience of having our prospect go through the process of joining a conference, etc. The other downside is the cost.
I tried one tool that was pretty neat called Glance. It was a desktop sharing system that used Java as it's glue. The main problem with it was the delay in seeing the mouse move on the prospects end. We demo'd it from our office to one of our employees PC's at home (over cable modem) and the 'slave' end was a latent enough to be distracting.
Some of the online sales chat tools (like LivePerson and Groopz) have co-browsing features and the ability to push a web page, but I don't think they can have one person drive the whole demo including doing all of the typing and moving the mouse. |
| Sun 27 Jul | ... | http://www.qarbon.com/ |
| Sun 27 Jul | www.marktaw.com | http://www.webex.com |
| Sun 27 Jul | Rhys Keepence | I agree with ... - go with Viewlet Builder from qarbon. It's dead simple to use - simply run through your demo with the viewlet builder running and you end up with a nice flash animation. |
| Sun 27 Jul | Kevin Merritt | There is no script. The 'demo' is ad hoc. It's reactive to the needs of the prospect.
'Can your application do xxxxxxx?'
'Yes. Follow along all I'll show you how easy it is to do xxxxx.'
Part of the goal is to establish a rapport between the sales rep and the prospect.
RoboDemo, Qarbon, etc. are great for training existing customer on how to do something, but the last thing I want with a prospect on the phone whose willing to interactively demo the application, is to send them a link and have them watch a movie. As long as your app does what it's supposed to do (hence no fear of an ad hoc demo), selling is all about the relationship.
Keep the ideas coming. |
| Sun 27 Jul | www.marktaw.com | WebEx.... They give free demo's every 30 minutes, and guided demos once a day at noon PST. Just drop by and see if it looks good for your purposes.
I learned about them by word of mouth and accidentally went to webx.com.... don't make that mistake when you're talking to your clients. It's webEx... maybe just provide a link to the site from your site, or a redirect to avoid the confusion. |
|
| how relevant is optimization? | Sun 27 Jul | Ben |
| I came across this quote recently while reading an article on codeproject:
And in almost all cases, for almost all parts of almost all programs, classic optimization no longer matters!
The subject of the article was resolving errors that pop up when compiling a release version of a project versus a debug version. The point of the quote above was that sometimes its more efficient to simply turn off a particular optimization that is causing an error rather than spend time debugging and fixing the problem in your code.
I was thinking about optimizations in a more general context, however. How important is classic optimization these days? How often does the time spent on say, hand optimizing a section of code to improve performance slightly, pay off in terms of ROI of that time? Do many developers feel that classic optimization is a waste of time with fast processesors and such? |
| Sun 27 Jul | Philo | Pick a design, build it. When users complain about something being slow, fix it.
Philo |
| Sun 27 Jul | Mickey Petersen | Philo put it in a great way, IMO. Write it first, and if proves too slow, optimize it.
Unless you're an Assembler guru, you will have little luck out-performing a modern-day compiler -- it's simply too 'good'. Of course, this is a matter of opinion.
Nevertheless, you'll find that the techniques used in the early [and late] 90's don't apply any more-- the CPUs of today are so fast it's hardly worth the effort |
| Sun 27 Jul | Vince | Philo, i'm gonna have to disagree. Not all things scale in a linear fashion. I've had times where I wrote something that was blazingly fast, but oh...waith, when there are 500k users a day hitting the site....it starts to crawl. Or when there are over 4 million rows in the database. Or you have more then 100 simultaneous transactions. Sometimes slowdowns come out of the blue. I think its important to unit test the holy shit out of things that may have possible slowdowns. Sure, don't do it if it doesn't matter, but you do NOT want to have to redesign something when you have thousands of customers every day unable to hit your site or use your app. |
| Sun 27 Jul | And the horse you rode in on | In most cases today optimisation isn't the case of optimising for CPU anyway, it's optimising for memory that fits into a particular level of cache.
Memory is that much slower than CPUs that cache misses kill your program's performance much more readily than a few extra instructions.
As far as not debugging your program and just turning off the optimisation, I don't recommend it except as a last resort. Your program obviously has some kind of problem, so do you really want to send it out into the wild and just hope turning off the optimisation has fixed the problem completely? I'd rather not. |
| Sun 27 Jul | Philo | 'I've had times where I wrote something that was blazingly fast, but oh...waith, when there are 500k users a day hitting the site....it starts to crawl. Or when there are over 4 million rows in the database. Or you have more then 100 simultaneous transactions.'
Do these things happen overnight? I've got a half million rows in my busiest table (since Feb), and I profile it about once a month. As the growth accelerates, I'll watch it more carefully.
BTW, there was an assumption that we're talking about an experienced developer - someone whose design is likely to be a 'top ten percent' design anyway. For 99.99% of the applications, top ten percent is good enough. For 99% of the rest, the need for greater scalability will creep up on you, it won't just appear Monday afternoon - so you'll have time to find the flaws and deal with them. For the rest - well, I hope nobody was going to take my advice to just 'throw something together' when redesigning the NYSE data farm. ;-)
So, given that (by my guess) 99.9999% of applications will be well served by a developer's best design, is it worth making the project take three times as long to shave another ten msec off a query?
Philo |
| Sun 27 Jul | Mickey Petersen | I don't know who said this, so pardon my paraphase: 'If you spend all your time optimizing 10% of your code, the remaining 90% will become the bottleneck'. This seems to apply when people do localized optimizations in an area they aren't sure needs it. |
| Sun 27 Jul | Mike Swieton | Don't worry about keeping code 'fast' or even picking a perfect design. Just keep things seperated. Make sure everything with an 'N' in it (N concurrent connections, N records, N gigabytes, etc) is factored out into its well defined little corner, so that you can rewrite it if necessary.
Most things won't need to be rewritten. Just keep an eye on things and make sure it'll be easy to rewrite if it needs it.
Premature optimization is the root of all evil. - Don Knuth. |
| Sun 27 Jul | Rhys Keepence | In client server apps, as long as it isn't _really_ slow I don't bother unless the user complains. My hourly rate is roughly the same as a 512mb stick of RAM - from the clients perspective its generally more cost effective to throw hardware at the problem. |
| Sun 27 Jul | S. Tanna | I think you need to keep the 20,000 feet view of optimization when designing and initially coding a project.
All I mean, at this stage, one of the factors to consider when choosing between different approaches to a problem, is avoiding those approaches which are 'stupidly slow', for only things that'll show up [so don't bother about even stupid slowness in screen painting in a I/O bound app, but do bother about avoiding idiotic methods of querying a database or whatever].
Early on, though you primarily want to focus on modularity and correctness. These are plenty demanding enough.
Once you have a correct and modular and *complete* design, then you can look at more specific optimizations. I spent 1/3 of the time (total = 2 months) on my last project optimizing - and from this and previous experience, I can say you are 100% wasting your time if you don't measure. All those micro-optimizations (little C tricks) are a waste of time if (a) you don't measure, (b) aren't attacking the right problem. Because of (b), I'd say it is always better to write readable code initially rather than tricky, supposedly-fast, code.
Be also aware that when you do get around to these micro-optimizations, you might end up needing to break or bend modularity. Which is another reason to do it last.
Optimization can and is a selling point for many apps. I know from direct personal experience.
And finally let's not forget, optimization for CPU performance is only 1 kind of optimization. Some apps need to be optimized for network bandwidth, database load, or other factors - and again these can be selling points. |
| Sun 27 Jul | Dennis Forbes | 'In most cases today optimisation isn't the case of optimising for CPU anyway, it's optimising for memory that fits into a particular level of cache.'
I've seen this same theme repeated on here several times, and I believe that it all relates back to an MSDN article talking about the overhead of managed code, with some rather rudimentary benchmarks, where it then segued into cache sizes and memory performance. I believe that many seem to be taking this article grossly out of context, just as I believe that the conclusions of the article were grossly simplistic (and is trying to fool people into believing that you needn't worry about what's between you and the hardware anymore -- just that you keep your array sizes small enough).
Most software works on small data sets that exist within a cache, and where it doesn't it often works on sets large enough that the cache has loaded with the required data through prediction by the time it gets to it. The only time some major memory speed roadblock is hit is generally when someone is making an artificial benchmark that jumps around in multi-megabyte datasets just to prove that artificial scenarios hit memory roadblocks. The real-world usefulness of such examples are pretty trivial. Instead with prediction and faster bus speeds, memory for real-world uses has kept up, which is why application benchmarks show a smooth improvement up until the very latest CPUs. |
| Sun 27 Jul | And the horse you rode in on | No they don't ... look at any benchmark site, and you'll see that a new CPU using the same design does not scale anywhere near MHz for MHz. Many benchmakrs it's a matter of a 10% increase in MHz is getting you only a couple of percent increase in performance.
Yet when the bus speeds are upped (memory bandwidth), you see big jumps in performance.
The thing is, anything that's not working on large data sets is unlikely to be CPU bound these days anyway. For the stuff that CPU speed matters for (mostly games, rendering, audio/video work, etc), you're using huge chunks of data.
Databases on the other hand are primarily bound by how fast your disks are, unless you're lucky enough to be able to fit the whole thing into memory. Fortunately, you're very unlikely to be writing a database unless you work for Microsoft, Oracle or IBM. ;) |
|
| Support/maintenance contracts | Sun 27 Jul | rexguo |
| Hello everyone!
Im finishing a J2EE project for a client. The system includes a set of JSPs and database hosted by a 3rd-party web hosting company, and a Java application (Swing-based).
At this stage Im starting to think about the support and maintenance contract that my client requires. How do you freelancers out there go about this?
Do you have a flat-fee yearly contract or a pay-per-incident contract? What are the typical price structures for both types?
Does your contract cover functional additions or modifications, or simply system health maintenance and fixing bugs?
A big thank you for any suggestions and advice! |
| Sun 27 Jul | jm | Typically about 20 percent of purchase price per year just for minor things - not development - up to a defined hourly limit. Anything else is a new job, charged separately. |
|
| great UI design is done by taking away, not adding | Sun 27 Jul | Philo |
| Uh, doesnt that mean the greatest, most useful app in the entire world is Hello World?
I think the subject line is a cutesy phrase without any real meaning - great UI design is about designing good UIs. Yes, its often about knowing when to stop, but that doesnt mean the *only* way to improve on a good product is to remove features.
Philo |
| Sun 27 Jul | Mike Swieton | I'm reminded of a similar phrase:
'Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.' - Antoine de Saint Exupery
I believe she was referring to writing there, but one can critique that phrase on the same merits. It's just another cute reminder phrase, like the KISS principle. It doesn't mean that you should take it literally, it means that complexity when not needed is bad.
To make something more complex than it needs to be is bad. To make it complex enough to do what it needs to is good.
Don't read so much into this, there's not that much there. |
| Sun 27 Jul | dat | Mike, Antoine is male.
http://www.westegg.com/exupery/ |
| Sun 27 Jul | Mike Swieton | Hmm... should have looked at that name a bit closer when I copied that quote ;) Ahh well, he/she/it, what's the difference? It's all subjective anyway... |
| Sun 27 Jul | Andy | What about Einstein's 'Everything should be expressed as simply as possible, but no simpler' (roughly). I think this is saying the same thing. Good UI should be as simple as possible, but no simpler. If you think the original statement is vacuous, then you might think this is too. But I think it makes a good point which most people overlook.
Most bad UIs are cluttered with crap, rather than lacking in the ability to do something. |
| Sun 27 Jul | somebody | I think (I hope) that phrase and those like it aren't meant to be taken literally. I like the Einstein quote for expressing this sort of thing because it also addresses oversimplification.
The reason that things like this are so prevalent in technical fields is that the types of people who get into those fields tend to be more prone to overcomplication than oversimplification. The stereotypical computer programmer likes to use fancy data structures, spends days on unnecessary optimizations, etc. These sort of sayings serve as a reminder to keep the whole picture in mind.
Unfortunately, it's not uncommon these days to encounter people in technical fields that got into it for the money rather than because they are the technical type. I cringe when I see things like what you quoted because there are people who will exploit it as an excuse for their laziness or lack of knowledge. Either extreme can be a bad thing. |
| Sun 27 Jul | S. Tanna | I like the Larry Niven quote (can't be bothered to look it up) about writing, and think same applies to software, but paraphrased:
When you have something important to say, say it as clearly and simply as possible. When you have nothing in particular to say, say it anyway you like. |
| Sun 27 Jul | Philo | 'Most bad UIs are cluttered with crap, rather than lacking in the ability to do something.'
I beg to differ:
http://digilander.libero.it/chiediloapippo/Engineering/iarchitect/mewtab.gif
[g]
Philo |
| Sun 27 Jul | Mickey Petersen | A good UI, in my book, comes down to how you show your information. If you plan on showing lots of things on screen, a grid might be preferable; of course, this assumes you have such a grid at hand. And more importantly, that it supports the featureset you need. If you *need* all the f ancy bells and whistles to show your data and cannot provide it, then your UI would - relatively speaking - be inferior. This, I think, contributes to why so many UI's appear lacking/broken. |
| Sun 27 Jul | www.marktaw.com | A popular session bass player said this about playing country bass:
'Think of the simplest line you can play. And then play half.'
Occam's Razor
'Of two competing theories or explanations, all other things being equal, the simpler one is to be preferred.'
Entia non sunt multiplicanda praeter necessitatem
'Entities should not be multiplied beyond necessity'
Pluralitas non est ponenda sine neccesitate
Plurality should not be posited without necessity
Great UI does what it should, and no more or less. Read Donald Norman. |
|
| Java blog clients | Sat 26 Jul | michael hickin |
| Does anyone know of a good java blog client? (preferably one with a java webstart link)
Thanks. |
| Sun 27 Jul | Evgeny Goldin | The one I'm aware of is of Ted Neward:
http://www.neward.net/index.jsp
http://geekblog.sourceforge.net/ |
| Sun 27 Jul | Evgeny Goldin | Ops, what did you mean by saying ' java blog client' ? Isn't it a browser ? |
| Sun 27 Jul | michael hickin | I meant a java swing application that would allow me to read blogs. |
| Sun 27 Jul | Andrew Reid | Beggregator: http://www.eugenebelyaev.com/beggregator/
It's in development still but the basics are there. |
|
| Visual FoxPro | Sat 26 Jul | Zahid |
| This is a plug for this great, overlooked language from Microsoft. Visual FoxPro has a little bit of a VB feel (case-insensitive, weakly typed) but with built-in data handling (offering both record- and set-based operations) and a much stronger OO implementation -- it has featured true inheritance for ten years now.
While MS markets it now primarily for business objects that manipulate data, it also makes a great front-end tool, and in fact has a decent DBF-based storage system, so you can use it for every tier. Designed right, an all-VFP solution can easily be converted to use a true SQL back-end without a ton of effort.
I could say a lot more -- about a friendly and helpful community, impressive speed (particularly in string manipulation), an upcoming version that incorporates good ideas from .NET, the great commercial frameworks that are available, and a wealth of functions that are in the box -- but I think Im gushing now :)
Disclaimer: I am a developer using this tool. I do not work for MS, nor for any of the framework vendors.
Link: http://msdn.microsoft.com/vfoxpro/ |
| Sat 26 Jul | Albert D. Kallal | Saturday, July 26, 2003
I posted a question here some time age as to how perplexed as to why Fox is not more popular. (by the way...I just noticed that there is no date in any of these posts. I just added the above date to my word macro that puts in my sig).
The Fox developer team was incredible in 1990, and the tradition of this excellence continues to this day.
That talented team continues to develop a first rate product with a single vision:
To make the best database product.
I am not surprised that the product is so good when a team has such single goal and vision.
Anway..that past thread:
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=29933
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Sat 26 Jul | Albert D. Kallal | Ah..there is a date at the end of each post.... |
| Sat 26 Jul | Chris Nahr | Well, out of curiousity I tried to create a little database application using the FoxPro version that ships with the current MSDN Pro subscription, and I wasn't impressed. Very clunky IDE compared to VS.NET, and the language felt like dBase III with some random extensions.
Note that I didn't try to create a real application here, and I'm not a professional database developer to begin with -- FoxPro may well have subtle advantages that I'm missing out of ignorance. But my superficial impression was one of an outdated language with an outdated IDE. |
| Sat 26 Jul | Zahid | Albert, I went back and read through that thread. There seems to be a perception there (not universally held) that VFP is no longer around, but in fact it is. As Simon mentioned there, version 8.0 was released about four months ago, and a local user group will be presented with a version 9.0 preview in about six months.
By the way, the reason VFP is no longer included in Visual Studio is related to the transition to .NET and the requirements for a language to fit in there. Apparently, in order to be CLR-compliant, VFP would have had to lose some of its most useful features (integrated data manipulation and compilation-on-the-fly). That was the stated reason of the MS VFP team for leaving the product out.
In addition, and this is just my speculation, it may be that they were tired of having to share marketing budget with Visual Studio, and felt that they would have a dedicated marketing budget if the product were sold separately. In hindsight, either they weren't thinking that, or they were mistaken, because I still haven't seen much in the way of marketing. |
| Sat 26 Jul | Chris | 'because I still haven't seen much in the way of marketing. '
Except for in magazines like FoxPro Advisor, fat lot of good that does, advertising it to people who by definition already have it (The magazine is about nothing but FoxPro).
And for 90% of people who use VFP and are required by sales to make it use a SQL Server DB instead of the file based DBC files, and then to attempt to produce a web application with it (using something like WestWind) - the simple answer is that you should be using ASP.Net (which is what we will be doing from now on).
My prediction is that Version 9 will be the last (if it is even released) - and if 9 is released then 10 will only come about if they make VFP.Net (much the same way as they made VB.Net. |
| Sat 26 Jul | Zahid | Chris, I agree with you about the marketing. It's a strategy akin to treading water ... it keeps you alive for a while, but doesn't get you anywhere.
Your comment about version 9 may turn out to be accurate. Then again, it wasn't accurate when people were saying the same thing about version 5, seven or eight years ago, and versions 6 through 8 since then. |
| Sun 27 Jul | Chris | Yes but if you look at attendances at events such as Advisor DevCons, 7-8 years ago there was >2000 people, this year I believe there was <400 people (I am probably wrong, it is just what I heard http://fox.wikis.com/wc.dll?Wiki~VFPConferenceAttendance~VFP ). I just think the circumstances are different than they were when Version 5 and 6 came out. |
| Sun 27 Jul | Philo | True, but look at all the other devcons- attendance is almost static. I'll venture that the Advisor DevCons are generally attended by magazine managers and 'fair weather developers' (people who go where the winds blow them) - it's the lesser devcons that indicate the true user community...
In addition, the 3,000 at the 1995 Advisor DevCon was on the leading edge of the dotcom boom, when everyone was into anything IT, and conference budgets were probably picking up steam. (I also wonder *where* it was).
IMHO, looks like VFP simply has a stable core of devs. I wonder what the attendance records of C++ UG/devcons looks like. ;-)
Philo |
| Sun 27 Jul | Zahid | Right, Philo. In fact, Chris, while you were looking at http://fox.wikis.com/wc.dll?Wiki~VFPConferenceAttendance~VFP, you should also have clicked the link to http://fox.wikis.com/wc.dll?Wiki~VFPConferenceCrashMyth
That page demonstrates that DevCon, the VFP conference with the worst attendance drop, has lost about the same number of attendees proportionally as DevCon. And attendance at the conference I went to last year, the Great Lakes Great Database Workshop, has remained stable for the three years it's existed. |
| Sun 27 Jul | Zahid | 'DevCon ... has lost about the same number of attendees proportionally as DevCon'. Who would have thought?
I meant to write, '... as Comdex'. |
|
| Why do programmers do this? | Sat 26 Jul | Maytag Repairman |
| One of my biggest UI complaints -- programs that always start up at a fixed size regardless of screen resolution, and with no way to permanently configure them otherwise.
For example, the popular CD burning program Nero. On my nice 19 LCD monitor at 1280x1024 the program comes up with everything all scrunched up on the left hand side of the screen and lots of empty real estate on the right side of the screen. Every time I run the program, I have to manually drag stuff around -- make the directory tree wider so I can see all the sub-directories -- make all the columns wider so I can read long file names -- and so on ----
Whats the deal here? OK -- maybe theres still a lot of people out there using 13 inch monitors that Im not aware of -- But why cant the program determine what screen resolution Im using and automagically adjust the column widths to take advantage of available screen space?
Is it because:
The programmers are too lazy
Its too hard
It cant be done
It can be done but everyone else in the world is still using a tiny monitor so its not worth the trouble. |
| Sat 26 Jul | | The programmers aren't very good. You often get this with stuff developed by 'multimedia' developers, for example. |
| Sat 26 Jul | | Imo, Nero was probably created by a bunch of programmers who simply don't have a lot of experience with GUI software development.
Multimedia developers typically do have a lot of GUI software development experience simply because it is a big part of what they do for a living. |
| Sat 26 Jul | Trollumination | Resizing is hard, especially for Visual Basic applications which have hard-coded pixel coordinates for every control. So many programs have VB front ends, and there's nothing wrong with that - it's cool to write some custom controls in C++, maybe a few DLLs for heavy lifting, and quickly assemble a GUI, that's just working smarter not harder. Unfortunately, VB just TEMPTS people to make their apps fixed-size to avoid the trouble of handling resize events and just show the controls where they were placed in the form designer.
There are plenty of free resize managers for VB which don't do everything they should, and plenty of commercial resize managers which do a lot more, but it's still a matter of jamming an extra component into your project just to make it resize properly.
Why doesn't Microsoft just include this as part of the language? At least some simple proportional resizing which fires events to allow overriding when this would be undesirable, simple methods to store/retrieve a form's position and max/min state to registry at appropriate times with events fired to allow hooking and overriding when this would be undesirable.... it would make life easier on everyone who uses VB programs.
Maybe VB.NET has this, I don't know because I haven't used it, but I doubt it. Somehow I don't think MSFT would do something this nice - they like to give people a bit of a challenge to make a professional-looking app. |
| Sat 26 Jul | Chris | .NET has actually made this painless. It surprised me, too. The docking and anchoring stuff is great, especially after having to buy ResizeOCX for VB a while back after realizing what a pain it was to write the sizing code.
Chris |
| Sat 26 Jul | John Topley (www.johntopley.com) | Yes, a great Borland invention! |
| Sat 26 Jul | Martin | My Nero (v5) automatically scales the inner windows. |
| Sat 26 Jul | Valentin Semak | Maytag Repairman
Yes, i willnot say that it is not hard, but every time when you want to change something programmers have to do that?
For such people there are many small companies, team and freelancers that develop software and you can make order and they will do that you want. You do not like color of icon go to them and all will be done as you want for your money, if you take application for free, be happy that you can use it for free.
If you use application as Nero, that was developed for many people, why do you think that it is not comfortable in use and has not good GUI, probably many people like it. Also you can try to use Roxio Easy CD Creator, it is more expencive but i like it more.
Also new OS appers very fast, and after XP is become popular, many software needs to remake for be look normal in it.
And why do you say about lazy programmers? In companies that work in software developing programmers have no word on decision of such things as resize depend on screen of user, they can only make suggestion.
Also there are many usefull things that can be integrated in application, but most of the users even will not see it, but programmers has to be paid for it, and user does not want to pay for it, because does not see it. |
| Sat 26 Jul | Mickey Petersen | What other people like in Nero isn't really the point.
A commercial vendor should support something as simple as persistent window settings. Having to personalize a program each time you start it is a pain in the ass for frequent users, and given the fact that it's just a matter of storing the settings in the registry when you quit, and load 'em when you start. |
| Sat 26 Jul | ... | it is because tons of people already use nero even though it doesn't resize. |
| Sat 26 Jul | Craig Thrall | Questions like this illustrate why people put up with software quirks. Nero is the best burning program I've used, so I don't mind putting up with weird UI stuff here. It does the burning part well, and we just hope they fix the UI stuff in the future.
Another example: the integration of Microsoft Project into Outlook is completely horrible:
* You have to double-click the item in Outlook for the reply e-mail to populate.
* You can't resize the UI at all, which means I'm left scrolling left and right in a little spreadsheet grid where I can't see any of the titles because they're not locked in place.
* Hitting 'Enter' sends the schedule update by default. This is completely wrong, because I might be entering task hours into a spreadsheet box and hit enter twice by accident...the result is I send a half updated schedule.
Of course, it's the first release of the software and the only way I know of to do Microsoft Project in an enterprise manner...so we'll curse, throw things and send updates to people we don't mean to until the UI is improved. |
| Sat 26 Jul | Philo | I still don't get MS' conception of 'enterprise' - Project is only just starting to do multi-user, SourceSafe only works with shared folders, the Word sharing model is bizarre at best...
Are there no workgroups in MS larger than four?
Philo |
| Sat 26 Jul | Li-fan Chen | I don't know about you.. but Nero resizes for me.. okay.. let me qualify this. When you use the main MDI window's maximize.. all the little MDI subwindows resize to fit the screen.
If you want to bitch furthur, you might send your complaint to all of the major windowing managers for UN*Xes and billg@microsoft.com. Because no a f*cking program in the world resize like they should when you have dual monitors or one of those pretty plasmas. No algorithms out there will handle all situations.
There has to be a solution for this, but it will probably involve a lot of reprogramming (and GUI framework modifications) to satisfy EVERYONE. But by the time you have perfect resizing working all of us will be quite thoroughly sick of windows in general and will be thoroughly living in some half-ass implementation of Life Streams (standard cs program) or Augmented reality (mit oxygen program) which will hate at a later date. |
| Sat 26 Jul | pb | Games are a totally different story. The visuals are tuned to a specific resolution and the expectation of full screen. I wouldn't generalize too much based on games. |
| Sat 26 Jul | somebody | 'The programmers are too lazy' is possible. It's also possible that they are simply stupid or that management is stupid.
It's literally a matter of minutes and a few lines of code to persist window positions. A reusable anchoring component should take maybe an hour tops to whip together (assuming a long coffee break).
People actually buy components to do this stuff? |
| Sun 27 Jul | Roel Schroeven | I've got the impression that people here are mixing some things up, and that there really are two topics being discussed:
1) The fact that some programs, such as Nero, start up with their predefined (and possibly badly chosen) window size, although they are resizable.
2) The fact that some programs are not resizable, or don't do a very good job of resizing themselves.
The solution to (1) is very easy, it only takes a couple of minutes to store/get the window size in/from the registry. As for (2), that's something different. It annoys me that a lot of dialog boxes in Windows applications are not resizable (e.g. the 'Advanced' tab in Internet Explorer's Internet Options. Fortunately the Open/Save File Dialog is resizable nowadays.
Most GUI applications in Unix, while having other quirks, have all of their windows resizable, and I think that's great.
I suppose it's because the most used Windos GUI libraries don't easily support resizing and automatic rescaling/moving of controls. Borland's VCL makes it a lot easier though, and so does wxWindows. |
| Sun 27 Jul | Andrew Reid | The resizing rule is very simple:
'If the window contains a control that has (or can have) a scrollbar, then the window must be made resizable' |
|
| what's good about having a virtual machine? | Sat 26 Jul | Andy |
| As in the JVM and C# CLR... seriously, not intended to start a religious debate.
I am a C/C++ guy and have been wondering about this. some things I can see:
distribution: to be platform independent, you dont have to distribute multiple binaries. but other than that, why not just make multiple Java compilers for platform independence?
you can distribute the libraries with the runtime environment, no need for messing with all the DLLs...
security: you have a layer of indirection on what can be done to your PC
business standpoint: Sun wanted to make Microsofts OS irrelevant
why does C# have the CLR if it doesnt need to be platform independent? I think I must be missing something here. Isnt it just causing a lot of overhead to have to compile the code before you run it? There must be some more significant benefits than I see. |
| Sat 26 Jul | Andy | Oh and I guess the CLR supports more than C#, but let's assume that we're talking about just one language. Why have the runtime environment. |
| Sat 26 Jul | Scot | what about the ability to distribute executable code in only one format?
also, .net will be running on at least 2 platforms officially, x86 and itanic. |
| Sat 26 Jul | T. Norman | >'distribution: to be platform independent, you don't have to distribute multiple binaries.'
That in itself is a major benefit, which would make it worthwhile to many if no other benefits existed. It's like asking 'other than losing weight and maintaining a healthy heart, why should I exercise?'
The ability to 'sandbox' code to improve security is also a useful benefit of virtual machines. |
| Sat 26 Jul | blargle | there are occasional posts here about making 'software engineers' more accountable for the systems they create. (usually in threads about using the term 'engineer' having certain legal meanings in some places.)
in order to do that we first need to keep a stable platform.
bridge builders don't need to worry about the laws of physics changing ...
perhaps in the future we'll see vm's that are stable and unchanging over decades allowing peopel to become much more familiar with their performance and bugs etc. |
| Sat 26 Jul | Albert D. Kallal | There is good number of advantages.
For example, lets assume that the some memory allocation code needs to be fixed, and this fix will improve both speed, and performance. And, lets also assume that his fix will also improve reliability.
Ok, you simply modify the runtime engine, and ALL EXISTING CODE does not have to re re-compiled. All existing software written instantly gets the advantage of this.
True that in the current windows system, the API’s can also be modified, and thus all code will also gain benefits. Of course, you can from a point of view consider the windows api a runtime engine anyway. Of course, this assumes that everyone is using the api..and that is the problem!.
Regardless, placing a library between the code and the hardware isolates not only the hardware from the software, but also protects the software investment.
The stakes for a new OS is getting very high indeed. If tomorrow all the rage becomes 128 bit processors then what? I don’t think any company can afford to re-write windows, or whatever they use. The investment is too large, and thus a virtual runtime environment can protect the software.
Years ago one person in a basement could write a whole OS. No anymore!
Thus, modifications to the hardware such as new chips, new instructions sets, and new types of memory management can be changed at a hardware level, and then the virtual machine can be modified to work with the new hardware. The result is all software on top will gain these benefits, and still function.
The other problem is that parts of the windows API goes back several thousands of years, and parts of it is really ragged.
MS wants the best, and cleaning the whole mess up was also a goal here.
Of course, there is a performance hit, but it is not too bad, and the due to such low cost hardware, it is software investment that must be protected.
Also, often a runtime is far more efficient from a resources point of view (you loose some processing, but a software written for a virtual engine is usually much smaller then is native compiled code).
You also get a much more powerful instruction set with a pcode engine.
It is strange, but every development tool I have used has been some type of p-code environment. That speaks very high the concept of abstracting hardware from the software. I have always used the most productive tool I can find, and it seems that those tools are usually based on p-code.
So we have:
Pick operating system.
I used that for years, and it have it run on every platform from Intel, to Motorola to Dec to Honeywell computers..
UCSD Pascal system.
Gosh, on a crappy 8bit AppleII+ I could write real nice code, and you got things like Type-ahead which the apple did NOT support. This is a perfect example of how well a virtual machine can run on a crappy little appleII. The 6502 did not exactly have great instruction set. However, the virtual p-code system on a apple had all the trimmings of a VERY good processor design. Using the UCSD Pascal system on a 8bit apple completely transformed the computing experience. All of a sudden the appleII never froze up, and I even got things like type-ahead. It was like going form a econo box to a Mercedes Benz.
VB, ms-access
Again, both of the environments are build around p-code. By VB5, a native compiler option became available, but you can still use the p-code if you want. (the native option does mean that VB speed is the same as c++).
However, ms-access does not give the native option, so it always runs in pcode I have NEVER experience performance problem due to this fact.
FoxPro:
Again, a pcode system.
So, it looks like the most bang for the software dollar comes from pcode systems. It seems every piece of software I used is based on pcode!
Having said all the above, can I assume that CLR for windows .net is only a isolation or API layer, or does it actually have a processor/virtual machine with its own instruction set and registers etc?
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Sat 26 Jul | C++ Love-In | 'the native option does mean that VB speed is the same as c++'
Err...no. The native option means that the limited constructs of the translation from p-code to binary would be done once, however it most certainly doesn't mean that it's 'the same as C++'. |
| Sat 26 Jul | Craig Thrall | From a C++/Java guy:
Platform independence:
With client-side Java, there are different issues (memory usage, UI painting) that can cause code that contains 'if (isMac)' statements.
Having worked on a product that was written on C and shipped on Solaris/AIX/HP-UX/Digital Unix/Windows, there isn't a whole lot of difference between having to understand how the various virtual machines work and how the various POSIX implementations work. Either way, if you're going to support multiple platforms, you're going to have to be able to develop and test on all those platforms.
I think one of the reasons the CLR is important is the multiple language support. That is a very nice thing to have. Isn't one of the reasons for ActiveX/COM in the first place to enable Visual Basic developers to have a simple interface to components? It didn't really make things easier for C++ developers. With a CLR, all the languages can have a common component interface. |
| Sat 26 Jul | Albert D. Kallal | >the native option does mean that VB speed is the same as c++'
>>Err...no. The native option means that the limited constructs of the translation from p-code to binary would be done once, however it most certainly doesn't mean that it's 'the same as C++'.
I not saying it is the same, but I am saying the performance difference between the two languages is not different when you are talking about code that loops or something like a Sieve of Eratosthenes
So many people think that stuff like loops etc runs faster in c++ then does VB. This is simply not the case.
C++ CAN BE faster due to things like threading, and different DESIGNS that you will (and can) use in code. However, simple stuff like loops etc is not different,
and rate of instructions are not much different between the two.
Further, people seem to get all emotionally caught up in this simple issue. This loop speed thing in fact is not such a big deal (too many c++ coders are so aghast at my above statement!...and they should not be!)
Simply put, loops and a sieve of eratosthrens does not constitute software development. (so, I guess if one does not realize this, then the above statement does get the emotions going). C++ also has better optomzing for dead code, but it don't useally help. However, as mentioned, it is the designs used that yield the real difference in performance here.
We had a discussion on this some time ago. You can read the thread here (I don’t care for how the thread ended at all!).
Joel has always said arguments about my language being better then your language type arguments were fun in grade school. We as developers can leave those arguments for slashdot.
However, I do think that it is good thing that this myth about c++ running loops faster then VB is good knowledge for all.
That thread:
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=7598
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Sat 26 Jul | Andy | Hm... doesn't seem like anyone mentioned anything I didn't.
distributing binaries: already mentioned, and I don't see this as a big advantage unless you're doing web apps. If you're doing desktop applications, what's the difference? You also impose upon the user the annoyance of acquiring the VM, if they don't have it.
stable platform: why is a VM a better abstraction for hardware than a compiler and libraries/DLLs?
fixing a memory problem: doesn't really count, that is a benefit of SHARED CODE rather than a VM. As you mentioned, this already happens with DLLs. As long as you keep the same interface, you can change the implementation.
protecting a software investment: you can already do this, with portable programming languages. The compatibility is just taken care of at compile time rather than at run time. Admittedly the VM is a tighter abstraction.
I don't buy the 'writing the whole OS' argument. I bet writing a good VM not trivial either. It's not like some company is going to write a JVM for some platform that Sun doesn't support, just to support some application they have in Java. That would be way too costly. You have to do a lot of the things you would do in writing an OS anyway, namely interfacing with the hardware. This is also an extremely hypothetical example. No one is going to develop a hardware platform without OS support. i.e. Intel knows that microsoft and linux will back their next gen hardware, and Apple knows that Apple with back their next gen hardware.
new chips/new instruction sets: again, why is a VM a better abstraction than a compiler/libraries.
I think the reason that intermediate code is smaller than native code is because you can pass off a lot of stuff to the VM. Like you just compile a hello world in C++ under windows it's probably like 30k-50k. With C#, though I never tried it, it probably could be like 20 bytes.
The 'empirical argument' that Albert mentioned (Fox Pro, VB, MSAccess) is interesting, but I would like to see a logical argument as well. What about the p-code made those systems good.
I agree with craig, that the abstraction of the VM is not airtight. Admittedly it is probably tighter than most platform independent libraries you will find, but you still have to test your Java program on every platform. I think it is possible in C++ to make a tighter layer than most would think. If you write your own, you have the control to tailor it for your own specific application. You know how your application allocates memory, Sun or Microsoft do not. You know how often it accesses disk, and you know what the target hardware level is (high end or low end).
Also, microsoft mentions that if you have m languages and n platforms, you only have to write m+n translators vs. m*n if you have an intermediate language. This is true, but neither system takes advantage of it. Microsoft: m languages, 1 platform -> m translators. Sun: 1 language, n-platforms -> n translators. OK I guess Microsoft is using itanium, as someone mentioned. BUT there is no reason that this has to be done at RUNTIME. This can be done at compile time too. Why compile the code on the fly when you can do it beforehand? I still don't get it. I know there are certain advantages to JIT compilation, because it can optimize stuff at runtime, but I think it is safe to say that overall it is not as fast as pre-compiled code.
No one mentioned run-time type information or garbage collection? What advantages, if any, do these have in being placed in a VM?
So there must be a reason it is so popular now. I would suspect the reasons are as much for business reasons as technical reasons. That is, Sun wanted to make Microsoft's OS irrelevant, and Microsoft now wants to make everybody else's stuff irrelevant unless they write for the CLR.
Why are we missing a C#/Java type language that is compiled? That is, something that is more toward the productivity side of the execution speed/development speed tradeoff than C++ is, but not as far as VB or python perhaps. |
| Sat 26 Jul | Albert D. Kallal | In reference to p-code systems, you do save money.
So, while the CLR or the so called VM would be a huge job to re-write, you actually only re-write the interpreter for that VM.
This means ONLY the interpreter needs to be re-written, not the whole VM. If everyone wrote using the CLR, then porting to another platform, or chip design would not be that hard. (we are not at that point yet).
Writing a small interpreter for the VM is not that big of a task. (much less then re-writing the compilers, re-writing the development tools etc. Heck, you don’t even have to re-compile your code to move it to a different system with a different processor!. Further, you don’t have to test existing code.
If/when MS comes out with a new OS, then all of the existing code, compilers, and even all the development tools can simply be moved to the new system. (saves lots of $$)
So, the only part you re-code is the bottom interpret part that executes the p-code.
Without question this is why the Pick system still exists to day. It was easy to port the system to other micro processors, but the compilers/database OS stuff did not have to be re-written. Now pick runs atop windows NT, or Linux. Without a portable system, these ports of the system would not be easy at all, and pick would died many moons ago.
Also, when I talked about changing memory management, I was speaking in reference to changing the interpreter to take advantage of a new chip or type of memory. Again, this change can be taken advantage of without the need for any high level code to be re-compiled etc no dlls, or noting needs to be changed.
They are cheaper, and more portable.
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Sat 26 Jul | Walter Rumsby | Fact check:
Java VM: 'n' languages can run on a Java VM (see http://www.robert-tolksdorf.de/vmlanguages for a listing; at least one of the Pragamatic Programmers uses JRuby - Ruby running in a JVM; there was a presentation at JavaOne about using Jython - Python running in a JVM - to script Ant; etc).
The difference between Sun's approach and Microsoft's approach is that Sun emphasizes platform neutrality and Microsoft emphasizes language neutrality. |
| Sun 27 Jul | | The portability reason is largely a myth.
C is available for essentially every platform, Java is available for a select few. e.g it was not available in Linux for a long time, and there is still no native java for FreeBSD, which is very popular amongst the larger web sites.
Also, who has had the pleasure of ugrading their apps (and 3rd party apps) from 1.2 to 1.3 to 1.4? Stable platform? I think not. |
| Sun 27 Jul | He-who-would-not-be-named | Both platform neutrality and language neutrality are myths.
If you limit yourself to not using non-portable constructs, then C is the most portable language there is. I don't want to get into the list, but most open source projects run any Unix flavour, including Linux, the BSDs, OS/X and Cygwin, and the platform dependence is usually isolated into one short 'config.h' file which is generated automatically by tools like 'autoconf'.
To maintain platform neutrality in Java, you have to limit yourself to the lowest common denominator. Often, you need more (e.g., finding out how much free space is available on the file system), and then you have to use the native platform and are not better off than using nonportable C in the first place.
And you've probably noticed that most C++ can't be language neutral - templates and multiple inheritence are not supported by the CLR. The fact that many languages have been ported to the CLR / JVM doesn't mean it's 'language neutral' in any way -- CLR Collections are not interchangable with Lisp cons-cell based lists, Python generators, etc -- so you DON'T get to mix languages freely as advertised. If you expect the CLR to work for multiple languages 'as advertised', you're left with choosing a 'skin' for your C#, because your C++.NET won't be C++, your VB.NET won't be VB, your Python.NET won't be Python and your Lisp.NET won't be Lisp. You might as well write C# from the beginning.
The CLR is perhaps slightly more general than the JVM, but it isn't significantly so.
There are advantages to a virtual machine -- binary compatibility being the most important, IMHO -- but neither platform neutrality nor language neutrality are among them. |
| Sun 27 Jul | Joe V | One of the signifigant advantages of the Java/VM model is that there is a wealth of libraries and frameworks that 'just work' on any platform that has a JVM. Although many C/C++ apps (particularly open source applications) are buildable on many platforms (with the config.h example described above), you are held at the mercy of the libraries the application depends on. If an application needs a library that is not available on your platform, you are out of luck. This almost never happens with Java.
Another nice thing about Java is the selection of 'standard' interfaces defined. For example, most Java code that accesses databases uses JDBC. That application would be able to use Oracle, Sybase, SQL Server, DB2, etc., with no changes in code. A cross-platform C/C++ application would need seperate code for each database system. Of course, there is ODBC, but that's not going to help much on non-Microsoft systems. |
| Sun 27 Jul | S. Tanna | > I think one of the reasons the CLR is important is the multiple language support.
Topspeed (later Clarion) had this with native Intel compilers for DOS/Windows in about 1989 or 1990. Multiple language support simply requires a common output format and ability to link the various outputs - no VM required.
Windows or UNIX APIs may be crusty, but in a few years so will VMs become. Crusty is related to length of existence.
Common executable format is a strength of the VM idea - provided the VM is available on all required platforms (in other words all platforms are alike in this fundamental way).
One other point about executable formats, RISC executables can be large!
Personally I think
Java VM = idea to commodotize Windows(1)
Microsoft dot Net VM = could be idea to commodotize Intel(2)
Reason for (1) is self evident to everybody.
Reason for (2) is less obvious, but I would say it's probably in MS's strategic interests (no I'm not some anti-MS conspiracy nut). Why? Because 2 companies make big profits from PCs (MS and Intel), and 2 companies control direction of PCs (MS and Intel). Surely MS would prefer to control the direction of PCs themselves entirely, and also to drive down the price of PC hardware (to allow more profits in software area, aka, MS's field of play) |
|
| Should I become a programmer? | Sat 26 Jul | Warren Henning |
| I hear incredible amounts of pessimism on this forum. The way people describe it, if you have a BS and 5 years of experience youll be lucky to make $25,000/yr and be randomly laid off every few months at the whim of some incompetent manager.
All this negative talk is getting to me. Im young enough that I can basically choose whatever career I want, so Im thinking maybe CS might not even be a good idea. The thing is, I love programming and I always have.
So heres what Im asking to all you negative people: if programming is bad, what field(s) is(are) better?
I was thinking of going into academia, but then Ive been reading articles about gluts of people in grad school, etc. |
| Sat 26 Jul | Dennis Atkins | Hi Warren,
Are you in school now? Working as a developer? If the former, what were your plans before you started spending too much time on the internet listening to the doom and gloom? did you want to do business apps? Game engines? Embedded? What do you in your free time? If this was a star trek world and money was irrelevant, what would you choose to do with your time? Program? Garden? Study history? |
| Sat 26 Jul | Warren Henning | I start school very soon. I was planning to become a programmer. I wanted to do something that was relatively difficult (e.g. compilers). I'm only 18, I've never programmed for money.
I program in my free time. I'm currently working on a project to teach myself MFC.
In a star trek world, I'd divide my time evenly between programming/reading about programming and other sciences: mathematics, physics, chemistry, etc.
I see academia as an escape from the rat race, even if tenure positions are incredibly competitive. I don't care about money a lot (as long as I have enough to live reasonably comfortably and save up some), I'm not too picky about benefits, and I really enjoy learning. |
| Sat 26 Jul | www.marktaw.com | Warren... you sound a little like me, only you can program.
The lesson in life I've learned is not to confuse money and passion. If you have a passion for programming, you may become a good programmer, and you may get a good job, but that doesn't mean you'll be any happier doing it than selling shoes.
I find that your work environment, or your boss, and a certain amount of freedom to find solutions to problems that exist and act on it yourself are far more important than what actual field of work you're in.
Learn to become fiscally responsible so that you can survive the ups & downs of the economy, and you're not worried about getting fired from jobs... you'll be less stressed, and probably more productive because you won't be afraid to do something different.
Ok I haven't answered your question, but I can't. It's your question. If you're concerned with the money, the US Gov't has their Occupational Outlook Handbook that lists a lot of professions and how much money people earn on average and what the demand is, and what they think the demand will be. Though, you said you weren't concerned with the money.
If you're concerned with happiness... Follow Joseph Campbell's and 'Follow your bliss.' Or the Dalai Lama's advice - 'The purpose of life is to be happy.' Move to a small town and learn to control your desires, you'll probably be much happier in the long run.
Oh yeah... Find the thread on this board about what advice you would give your college age self. The majority of the answers were 'have more fun, because you're gonna be a wage slave for the rest of your life.' |
| Sat 26 Jul | | 'I hear incredible amounts of pessimism on this forum.'
Well, if you surf around the World Wide Web for awhile you will find a lot more pessimism than you will ever encounter here.
'Te way people describe it, if you have a BS and 5 years of experience you'll be lucky to make $25,000/yr and be randomly laid off every few months at the whim of some incompetent manager.'
Compared to many jobs in the U.S., the pay can be very good. The $25,000 starting salary you mentioned is probably only be offered at mom and pop type of shops or at very small corporations. Like the construction industry new software development work is cyclical and at many companies the maintenance work has been outsourced to whichever sweatshop puts in the lowest bid. If you do find a job there is a good chance that you will be working as some type of temporary worker. Also, you shouldn't be surprised if you are unable to find anyone willing to hire you as a programmer once you graduate from school. This problem happens in many professional fields.
'All this negative talk is getting to me.'
It should.
'The thing is, I love programming and I always have.'
The great thing about programming is that you can always do it as a hobby or in a moonlighting fashion.
'I'm young enough that I can basically choose whatever career I want, so I'm thinking maybe CS might not even be a good idea. '
You might want to check out this web page: http://heather.cs.ucdavis.edu/itaa.real.html
The web page is titled, 'Debunking the Myth of a Desperate Software Labor Shortage Testimony to the U.S. House Judiciary Committee
Subcommittee on Immigration' by Dr. Norman Matloff.
Warning: this web page is huge and has a lot of H-1B visa stuff on it. Even so, Dr. Matloff does a good job of describing many of the problems programmers working in the U.S. encounter throughout their career. |
| Sat 26 Jul | T. Norman | Do you have a job and live on your own now?
If not, wait a while to decide how important money is to you. Paying the bills can be a lot more costly than you think. Not to mention saving for retirement (Social Security ain't gonna be around when you retire). Add a wife and kids, and double the amounts. |
| Sat 26 Jul | Dennis Atkins | Warren,
Obviously you are not going to feel satisfied with business programming, but you might like scientific visualization software, or doing one-off programs for research analysis.
What if you majored in chemistry or physics or even biochemistry, whichever fascinates you most and minored in CS -- you could take your compiler class that way. (Making sure to check prerequisites, class limitations to majors only, etc, ask the department head at the school you are going to if not sure what you'll need to do to do this).
Since you live modestly and don't need a lot of $ to live on, you can leverage that and be able to do research that you believe contributes to human understanding of the world, or what have you, and not be concerned about how much you get paid doing that. You won't enjoy the politics of business delevopment so don't even worry about that world.
If you do go this route, talk with some in your chosen field and find out if you'll need a masters or doctorate to do work in your field. A very strong background in CS might be the catalyst that turns a lead undergraduate degree into a golden research position.
But do take the opportunity to talk with the heads of a few departments, or any famous researchers who will meet with you and run youir plans past them. They usually love giving life advice so you have nothing to fear if you are shy. |
| Sat 26 Jul | ... | 'if programming is bad, what field(s) is(are) better?'
some obvious choices: hip hop supermogul, professional skateboarder, neurosurgeon, jennifer lopez's lower body masseuse, nascar pit mechanic, etc.
that said, programming is not so bad, what is bad about programming as an occupation is the people. good programmers are usually pretty weird dudes that are hard to have conversations with, even if you are one of them. bad programmers are annoying stinkers who bitch and moan on the internet all day. managerial people in the tech world are usually people who failed at doing something else.
what a lot of people don't realize is that programming is a creative occupation, so you are going to be dealing with a LOT of randomness in your life. by 'creative' i don't necessarily mean artsy-fartsy, i just mean you are creating stuff, and trying to get paid to do it. thus your professional life is more like that of a custom cabinet maker or graphic designer than it is an actuary or a doctor. and contrary to what your parents or high school guidance counselors tell you, it is possible to make a very good living as a graphic designer, or cabinet maker, or even a programmer. you just have to pick your jobs wisely and have some business sense.
the whiners on this forum always seem to forget that the owner of the forum makes his living developing and selling relatively mundane software: a desktop blogging tool and a bug tracker. there are countless bug trackers available, many of them are completely free. You can create a blog with notepad or a perl script. With these amazing artifacts of technical innovation, Joel makes enough money to live in manhattan, build out a new office in tribeca, hire other people, and make a lot of postings to the internet.
this is starting to ramble, but the point i'm attempting to make, is that if you like programming, you should go for it, but don't aim for being a typical programming serf, aim for being a hot programming entrepreneur. |
| Sat 26 Jul | ... | oh and if you want to do something more technically challenging, a friend of mine sold his compiler to intel for a cool $3M last year, so becoming financially successful doing the hard stuff isn't completely unheard of , either. |
| Sat 26 Jul | Happily Providing Solutions Since 1907 | Don't get too hung up on the orbs of negativity (which are usually people trying to justify their own position. That's why you must stay away from boards packed full of the unemployed like the plague--clustered together they rile each other into prophecies of the next great depression. They offer no insight).
While there have been some negative trends in software development over the past couple of years, as there has been in the _entire_ economy, it's the classic cyclical BS (and it gets an inappropriate amount of attention: If you believed the popular media every programmer is out of work right now, downsized because of outsourcing to India, just like in 2000 we all had millions from our .COM exploits. In either case it's a fringe element, but it's amazing how people fail to see that), and only the young or the naive, with no understanding of economics, are casting it as the new world order. In the past three years I went from one good position, to another good position, and then to another good position, all at my own whim and all without a day of downtime between. I am currently making quite a pretty good salary (better than the vast majority of professions, and as a pretty big increase over my prior position despite 'the market') doing what I love (software development and software architecture). While bordering a bit on the realm of egotistical, I am very good at what I do, have a very good reputation among peers and industry as a solution creator, and hence I don't worry much about the competition of millions of people who came into the industry as 'web programmers' or 'Y2K' programmers during the late 1990s/early 2000s.
Here are some tips if you _really_ want to enter this industry, though.
-Don't be a classic hacker with horrible personal hygeine and a condescending/hostile attitude towards others. Accept the 'rules of the game' if you want to play in the Career Challenge. (Most 'hacker' types thing they're above the rules, and are currently sitting unemployed and complaining about the 'Dumb' questions they were asked at interviews).
-Be your own boss, even if you work for others. Never see your employer as your mommy (FAR too common), and see your employer-employee relationship as a win-win situation (I provide value to my employer, and they provide value to me. They owe me nothing beyond that, and vice versa). |
| Sat 26 Jul | Andy | what kind of compiler was it? he wrote it himself? |
| Sat 26 Jul | Alyosha` | It's not so bad out there. I have 3 years experience, $86k/yr. It doesn't seem so unusual among my peers either.
Of course, I was laid off for 18 months in the recent past. The only problem is that it can be feast or famine sometimes. And you really have to know people who know people to get hired anywhere. |
| Sat 26 Jul | Bella | No programmer in the USA works for $25k. there is no concept of 'average salary, taking into account the unemployed. It's a boolean market ....either you have a job, making $80k-$120k (within 1 standard deviation), or you make $0 and are unemployed. Got it? |
| Sat 26 Jul | ... | it was a compiler that targeted chips used in cellular phones |
| Sat 26 Jul | www.marktaw.com | Bella, the very mention of standard deviation introduces the idea that statistically there must be SOMEBODY earning $25,000 even if it is outside of 3 standard deviations and less than 2.5% of the population... Just ast here is someone earning $200,000, there is someone earning $25,000. |
| Sat 26 Jul | . | Warren, I think the situation will not become perfectly clear for another three years, but at the moment I would not advise you to choose programming.
This is really sad because software development is beautiful and can make a good career. However too much of it has been commoditised for the benefit of corporations.
If you can push right through to a PhD, you will be OK.
I think the interesting / worthwhile fields, and the ones with safe futures, are biotechnology and the military. |
| Sat 26 Jul | , | Biotechnology? If you really, truly believe that programming is under some grievous threat (rather than a short term 'something to write about' threat), then why in the world would any other largely intellectual work not be similarly threatened? Biotechnology is nothing more than some basic equipment and a lot of intellectual work: Why don't we set that shop up in India (where, by the way, they have Phds out the yahoo). |
| Sat 26 Jul | T. Norman | Biotech research requires a LOT more than just 'basic equipment.' |
| Sat 26 Jul | Andy | I think the point that is being gotten at, and which I believe is valid, is that programming is becoming commoditized. There doesn't seem to be a whole lot of invention necessary anymore. That is not to say that there is nothing left to be invented, but what most corporations need now seems to be relatively straightforward. All it takes is time and the current set of 'hot tools', and you can arrive at a reasonable solution.
Another problem is that programming excellence doesn't seem to contribute to the bottom line, for some reason. I work in games, and you can have a crap-ass ugly program, with more bugs than necessary, but as long as the game design is good, it will sell. Conversely, you can have a great implementation, but crappy game, and it won't sell. I suspect this isn't limited to just games.
What are people writing out there? Anyone writing anything really interesting? I'm sure there are many more great programs to be written, but it seems like only 0.1% of programmers are actually working on them. The rest are slaving away at dime-a-dozen apps to make money for other people. Which is why you see a lot of negativity here. |
| Sun 27 Jul | opera freak | Mark >> Bella
=) |
| Sun 27 Jul | please clarify | Mark is much greater than Bella?
Bella shifts Mark right? |
| Sun 27 Jul | www.marktaw.com | mark != bella |
| Sun 27 Jul | ... | biotechnology could mean anything. much of it does not require much equipment to set up. You need a phD to work in a biology related field, thus something like 70% of biotech researchers already are indian or chinese (been to grad school lately? americans don't get phDs.) US regulations and societal ethical bias make it hard to do any sort of cutting edge research (stem cell). Chinese culture has no ethical bias against this type of research, thus China is going to be the real 'biotech' hub. |
| Sun 27 Jul | . | The reason I say biotech - and I actually meant medical fields in general - is that they are run by the people that do the work, to a greater extent than programming.
Also, medical is something that affects everyone including politicians, and thus there's always money for it. You won't get MCSE's being hired to do cancer research, etc. |
| Sun 27 Jul | Bella | Marktaw,
FYI, first of all, 2 standard deviations enclose 95% of a normal distribution. 3 stddev's enclose 99.5%. And in stats, >= .05 is generally considered statistically significant. So, no, the mere mention does NOT imply someone HAS to be making $25k. And, as I was referring to the real world, and not a stats textbook, I will reiterate that no one makes $25k as a full time employed programmer. It's either 80-120k or $0. |
| Sun 27 Jul | K | Actually, I made less than $25K last year. I was applying machine learning concepts to a certain class of financial projection problems. |
| Sun 27 Jul | www.marktaw.com | Bella, you might be right, it really doesn't matter. This is a stupid argument, people can decide for themselves what they want to believe is true. |
| Sun 27 Jul | www.marktaw.com | > you might be right, it really doesn't matter.
I meant about the percentage encompassing each standard deviation. That part is semantics and just silly.
I stand firm that there are programmers earning $25k out there somewhere. |
| Sun 27 Jul | T. Norman | >'And, as I was referring to the real world, and not a stats textbook, I will reiterate that no one makes $25k as a full time employed programmer. It's either 80-120k or $0.'
Most programmers make less than $80K. Unless you add in benefits like health and dental insurance, 401k match, etc. |
| Sun 27 Jul | K | marktaw, not just an ephemeral 'somewhere' but in a post directly above yours. :) |
| Sun 27 Jul | ex university programmer | I only recently went above the 80K mark. I programmed quite a few years making less than $30K. |
| Sun 27 Jul | Andy | Were you a grad student as well? Grad students have a different relationship to the university than just employee.
I'd like to work for a university but always wondered if the pay was competitive. Guess not... what are the hours like?
If you normalize my salary to 40 hrs/wk then I would be rapidly approaching $25k... haha... |
| Sun 27 Jul | ... | if you work for a university like Harvard or MIT you can easily make $70K-$100K as a programmer. (I did) |
| Sun 27 Jul | Andy | Was it IT type of work or academic related programming? I would be interested in the latter more. What were the hours like? |
| Sun 27 Jul | Bella | Most programmers I know have around 10 or more years of experience. And in my metro area, I do not know anyone making under $80k. (Adjust your COL numbers if you likv in Oklahoma and have a $350 mortgage payment)
As an aside, out of 30 programmers I keep in contact with, not one is unemployed right now. I believe the IT glut has been PARTLY exaggerated by the media (like everything else) |
| Sun 27 Jul | Bella | Let me add that I do not know anyone who actually works a 40 hour week. More like 50-60/week. |
| Sun 27 Jul | K | Bella, have you already made up your mind or are you willing to ask some questions to verify that the statistical trends you've observed in your small local sample hold true for the wider world? |
| Sun 27 Jul | T. Norman | Salaries may be high in certain cities, but throughout the USA most programmers make less than $80K. The highest nationwide salary survey I've seen puts the average in the low 70's (after including bonuses). Most surveys list the average in the high 50's and low 60's. |
| Sun 27 Jul | T. Norman | >'I believe the IT glut has been PARTLY exaggerated by the media (like everything else)'
It has also been exaggerated by the ease of applying for jobs that the Internet has enabled, and the anal obsessiveness that companies have for specific languages and platforms and even specific version numbers of those languages and platforms.
When 1000 people apply for 1000 jobs, there are enough jobs numerically for all of them. But since the number of applications received is so high, HR will try to narrow it down with arbitrary criteria and by eliminating those that do not have an exact match of buzzwords. 'This guy knows J2EE? Too bad, we need somebody with EJB.' So jobs remain open for several months while people who you and I would recognize as being qualified get ignored and remain unemployed for several months. |
| Sun 27 Jul | opera freak | 'Mark >> Bella'
ok, mark kick bella's ass (and he's a musician)
=) |
| Sun 27 Jul | www.marktaw.com | Opera... if bella is an attention hog, the best way to beat him is ignore him. If everything he says is intended to provoke a response, then the best answer is not to respond.
Reward good behaviour, ignore bad behaviour. |
|
| part time software development rates? | Sat 26 Jul | anon |
| Im transitioning to part time work, for a number of reasons,
extra family pressure and all.
Im now working full-time, Ive negotiated with my boss for 10-12 hours a week, will vary, sometimes 15, sometimes 10, I wont be paid exactly by the hour, but hes agreed on 1000$ a month, which would be around between 40 and 50 hours a month, working out to between $20-25/hr
Is that a reasonable rate, bearing in mind 2 facts, that I am not on contract, and I will transition back to this same job in a permanent position around a year down the road(plus get to work at home)? |
| Sat 26 Jul | GiorgioG | Depends. What about your benefits (health insurance?) If you get to keep that while on part-time, that amount isn't unreasonable. Though I would add some type of clause to the agreement regarding extra hours over the agreed weekly work schedule. You don't want them to work you 40 hours one week b/c of a deadline and then screw you over by not paying for those hours above & beyond the monthly amount. |
| Sat 26 Jul | | You need to be very careful here. What's to stop them working you longer and longer hours, even though they're not paying you for it? Answer: nothing.
Even worse, they'll find 'little' jobs for you to do that 'should only take a few hours.' When the problems hit, you'll be there working 60 hours a week and wearing all the problems.
You need to have timesheets, because that formalises the time worked, and you need a signed agreement stating the hours per week, plus an agreement to pay for additional consulting. |
| Sat 26 Jul | Tom Vu | what are you developing? Code for the space shuttle, you are under paid. Churning out reports, database stuff, excel,web,... then you are fine. |
| Sat 26 Jul | anon | Mostly C++ and Java stuff, but a bit of research in various algorithms as well |
| Sat 26 Jul | Dennis Atkins | 10-12, sometimes 15 means always 15 and sometimes more unless specified in writing. Your contract should be for the total hours per month, and realize that you will almost never mork below whatever maximum is specified.
The salary sounds low for C++/Java but we need to know more. Are you getting full benefits as well? I expect you must be to considering this salary. Are you in the US? Are you in a metropolitan or in a rural area? Which one? How many years experience do you have and what are your credentials?
Also, is it that your boss only hass 15 hrs a week of work needed total (you are the only C++ guy there)? Is his only alternative to hire a full time employee at $70k and have that guy reading the newspaper for 25 hrs a week?
And why not work as a consultant, billing at $60/hr? That's a fair rate for a contract C++ guy, which is usually how companies handle work that is less than full time. |
| Sat 26 Jul | Tom Vu | 'Mostly C++ and Java stuff, but a bit of research in various algorithms as well '
I have no clue what this means. What are you doing? An example please. |
| Sun 27 Jul | anon | I have been doing work currently on some business apps and statistical algorithms for Natural language processing.
I have been working in India, where my salary was roughly equivalent to 1000$ US a month, pretty good for these parts.There is a team hereof 7 people in Bangalore, and have worked here for 4-5 months.I am returning to USA, I was (originally in USA, before I took this job,I am a US citizen) for my masters.
There has been verbal agreement with my boss that I will get the same salary if I put in 10 hours per week while doing my masters, for the difference in cost of living.
This works out to roughly 40 hours/month =$1000
so around $25 per hour.
I feel this is an ideal opportunity for me to recover my tuition costs, as well as keep on working.
Do people think it's low?I'll be getting medical benefits,
Should I ask for a little more?
Given that the rest of the dev. team is in India,and I will be working from here,and they are all earning in Rupees, does it make much sense to ask for more for this part time work?
This is my second job and have 3 years experience.My first job was in the States, and was earning 50 K per year. |
| Sun 27 Jul | Dennis Atkins | OK, given that you have medical benefits, the hours are agreed on, you are working remotely and they are letting you work your own schedule, you've got a fantastic deal. |
|
| Technical Self-Employment Is A Fat Paycheck Waitin | Fri 25 Jul | Matthew Lock |
| Interesting article I found over on Slashdot:
http://homepage.mac.com/monickels/techjob.html |
| Fri 25 Jul | . | If he's as busy as he says he is, he wouldn't have had time to write such a wordy document. I got about ten paragraphs into it and quit.
Less is more. Time is money. |
| Fri 25 Jul | Bored Bystander | Articles like this aren't for everyone. You have to have an attention span > 10 words, for starters.
I read it. I'm glad that this guy is making the point that he is. The 'lose the ego' material is priceless and is probably the one lesson most needing repeating to everyone in technology who is jobless due to 'the economy'.
This guy is totally right. The stupid money days of the 90's aren't coming back. Big companies are outsourcing to God knows where and are aggressively screwing over anyone who wants that 'good job'. Meanwhile, there *are* needs out there that the established service providers are too egotistical and stupid themselves to grasp.
This guy is saying - forget the 'good job'. Your professional ego and your desire for the 'good job' in development or architecture or other technology origination is really your Achille's Heel. |
| Fri 25 Jul | | He sounds like an unpleasant person. I find it hard to see how he would have the business skills he claims to have for building and keeping such business.
You know what I reckon he would be - some 19 year old working at Daddy's company and /or getting lots of work from suppliers wanting to stay in Daddy's good books. Seen it before. |
| Fri 25 Jul | Trollumination | Maybe it works for this guy, but my experience is that repairs and support are a thankless job. When I was an undergrad, I used to do stuff like this - not computers, but small electronic work. Nobody ever paid.
Always reasons not to pay, and I'll admit I was a rather weak-willed boy who pretty much did whatever anybody asked. Fix this stereo because I'm the head of this dorm floor and I could have you written up, fix this guitar amp because you must have blown it during your set earlier... we're not paying you $20 for this intercom system because it sounds like a cheap walkie-talkie, but we'll use it anyway for the next two years ... three bucks to fix this multitap? it only cost twenty new! ... I spilled beer in my roommates TV and she'll kill me when she gets home ... did a lot of neat stuff, but never got paid for it. Didn't really mind, but I knew it wasn't a career option or anything. Sometimes you just shouldn't let anyone know that you have a soldering gun and a meter.
The last time I ended up doing this was when I went to help a friend fix his 'computer', only to find out that the problem was that his Dad needed Cat-5 strung through the walls and hooked up to jacks for home Ethernet.... I didn't mind, but geez they didn't have to trick me like that.
Fun stuff, but certainly not a growth industry. |
| Sat 26 Jul | Matthew Lock | Trollumination your problem had nothing to do with technical support and everything to do with your weak will! |
| Sat 26 Jul | Zahid | There's no doubt in my mind that Mr Barrett is right on the money. It's always been the case that those who are willing to swallow their pride and actually *work* land on their feet.
I'm fortunate enough to be employed, but then, I'd be employed no matter what. When one thing goes away, you find another. It might suck to not be working, but it's not India's fault, and it's not Carlie Fiorina's. |
| Sat 26 Jul | runtime | Me thinks the author needs to read Strunk and White's 'Elements of Style.' Omit needless words! |
| Sat 26 Jul | . | ...and needless sentences and paragraphs, as well. |
| Sat 26 Jul | | Good for him. As for me, I'd rather go to cooking school if I wasn't able to find a job as a programmer. |
| Sat 26 Jul | Bored Bystander | Perhaps the article is a bit bloated but it makes good points that anyone who is having career difficulties should consider...
To everyone who is saying that this type of work isn't worth it, here are counterpoints:
*Anyone* who is happy being salaried and on someone else's payroll will never be comfortable considering any business opportunity.
Entrepreneurial opportunities are *never* obvious. They are 'opportunities' because nobody else has figured out how to price and profitably sell the concept ... *yet*. My observation is that *every* good concept looks like small time stupid chickenshit when you're starting out. I was into microcomputers back in 1978. I knew of Microsoft BASIC at the time, but I thought the idea that someone was selling a BASIC language for $200 was totally stupid....
Many people on /. and a few here are fixating on the home user aspect w/o acknowledging the rest of the message:
>> After finding your sea legs with the home users, small businesses--by my definition, companies which have from five to 25 employees--are those which you should be targeting. The money is better. There's more work. The clients aren't quite so money-conscious. And they're more likely to be technically adept.
Material I've read elsewhere on this topic says to avoid home users at all costs, even as a starting point, and concentrate on finding a niche with businesses. This guy is saying something different. To each their own.
The goal is always to find a base of prospects to whom your work represents cost savings and the ability to keep on running their businesses. The problem with home users is that computers are almost always an option, not a necessity.
About the blaming and the dickering: any service business is all about 'client control' - setting the client's expectations, and clearly defining criteria that trigger payment. That is also true with programming. Yeah, all computer work is intangible and it's hard to prove performance to a dumbass who can't understand what you've done. The solution is to tell the 'dumbass' what to expect when it works and that you expect to be paid if it *does* work. It's not the support work itself that is the problem, because I have run into this several times when I've done programming for end user types who conveniently get stupid when they open their checkbook.
One last thing... to everyone saying 'there is no market' and 'look at your established competition' ... most existing end user technical support is VERY badly done. I believe that it's wide open because the most qualified people to do this type of work - real, working, experienced technologists - refuse to consider make it a paying business.
So instead, *everyone* else gets into it - MBA whiz kid company owners looking to exploit technical flunkies at low pay; large companies with fleets of vans who can offer no continuity of support; free lancers who don't budget their time and set expectations in a professional way; people who can barely do the work who got into it because they know that there is a need; etc. |
| Sat 26 Jul | ... | in my home town of minneapolis, the guys who started the geek squad have been very successful doing outsourced tech support for large, medium, small, and home users.
http://www.geeksquad.com |
| Sat 26 Jul | anonymizer | Geeksquad is a lame, obvious ripoff of http://www.nerdsonsite.com |
| Sat 26 Jul | anonymizer | http://www.nerdsonsite.com/index2.asp |
| Sat 26 Jul | ... | the geek squad has been in business since 1994. |
| Sat 26 Jul | Mark Hoffman | I thought the author perfectly nailed the attitudes of many techies I know...
'I don't do *that*' says the chucklehead who has been unemployed for 6 months when asked if he can run cable for a small company.
Get over yourself. Really. You're not gonna make $75,000 a year anymore for watching the pretty lights in the computer room.
I don't think starting a successful tech-support business is as easy as the author makes it sound, but he does have two solid points.
1. The free ride is over.
2. Do good work and treat your customers fairly and you've got a decent chance of making a good living wage.
Of course, this message will be lost on the unemployed techies hanging out at Starbucks drinking their latte's telling each other how smart they are. |
| Sat 26 Jul | Bored Bystander | Mark, one thing I'd add.
Niches like this are mostly vacant for good reasons. You've got to deal with oddball unique situations, clients who are small minded and cheap and needing everything to be proven concretely to them, and you have to work around the small minded cheap clients to combine competent technology services with personability.
All, of course, in addition to being a good business person in general: keeping your books, paying taxes and other fees, and marketing. Especially marketing.
A VERY tall order to combine all this stuff in one package... which is why I think that the niche will be wide open as long as computers 'cause' problems.
There will always be tons of people who dabble in it, the laid off and kids especially, but likely VERY few who can commit to making it their fulltime business in addition to delivering the services that small clients will accept and pay for. |
| Sat 26 Jul | Norrick | '2. Do good work and treat your customers fairly and you've got a decent chance of making a good living wage.'
I don't know about you, but I'm not going to get out of bed each day and trudge off to work just to make a good living wage. I am out to make *money*. Serious money.
Now, if that means it's time to leave the world of software development and do something else, so be it. But don't throw out that 'good living wage' crap as though it's the only option people have. |
| Sat 26 Jul | . | His story doesn't ring true, especially with the attitude he displays. It's a cocky and a pompous attitude, typical of unearned privilege.
There are two realites of doing support for small business and home users. First, they are naive so it's easy to rip them off blind. Second, if real problems arise, they are intolerant of the time need to fix them.
The business model of successful operators seems to be continual confidence, overcharge for everything, identify all 10 minute or more problems as equipment failures that need new $1000 components, for which you charge 100 percent markups.
Small business are some of the biggest complainers about 'IT' and with good reason. They are screwed blind. |
| Sat 26 Jul | Matthew Lock | There must be a business in home IT support. Washing machine repair companies, plumbers, and electricians all make good livings servicing people's homes.
The difference may be knowing when to say no, and being firm. When I call out a washing machine repair man there is no debating the price or what needs to be done, and regardless of the state of the machine I have to pay a flat call out fee. Home IT support would need to take a leaf out of their book. |
| Sat 26 Jul | Zahid | 'I don't know about you, but I'm not going to get out of bed each day and trudge off to work just to make a good living wage. I am out to make *money*. Serious money.' - Norrick
The article I read did not say or imply, 'if you have a choice between making 'serious money' and making 'a good living wage', you should choose the latter.' It said, 'you have a choice between whining about being out of work and making a good living wage, so get over yourself.' That doesn't contradict your point. |
| Sun 27 Jul | Mark Hoffman | ' But don't throw out that 'good living wage' crap as though it's the only option people have. '
Wow...What an exceptionally obtuse response.
I never said that was anyone's only option. Unless you haven't noticed, a lot of techies are unemployed. That's not a living wage. Working in the service industry probably won't make them rich, but it will provide them..gasp..a living wage.
I have no desire to make just a living wage either. I'm a bit more ambitious. But there are plenty of people who are happy just working their 40 hours and going home. For these people, the service industry might be the right choice. |
| Sun 27 Jul | Bella | > He sounds like an unpleasant person. I find it hard to see how he would have the business skills he claims to have for building and keeping such business.
His honest, no-nonsense 'KISS' style will only keep getting him more work than he can handle. He sounds like a very good businessman. You clearly are not, hence your conflict with his style. In reality, you are probably the unpleasant person.
> You know what I reckon he would be - some 19 year old working at Daddy's company and /or getting lots of work from suppliers wanting to stay in Daddy's good books. Seen it before.
I reckon you're bitter & jealous. No one could possibly run a successful self-employed business. It must be a lie., The fact that you take such exception to such a no nonsense article shows what an idiot you are. Go back to your 9-5 running batch jobs for a fortune 500. That's all you''re capable of.
> Good for him. As for me, I'd rather go to cooking school if I wasn't able to find a job as a programmer.
You would need to work for 3-5 yers for $8 hour, until you developed your craft. Then, you could make upwards of $50/hr working for a nice upscale caterer. Like one who does weddings. That's where the HUGE money is at. You'd probably clear $100/hr if you targeted that goldmine of a niche. Recession-proof. The brainwashing is too inveterated.
> It's a cocky and a pompous attitude, typical of unearned privilege.
Unearned privilege? The entire gist of the article is to suck it up, get your hands dirty, and meet a market need, regardless of prestige factor. Are you for real?
> There are two realites of doing support for small business and home users. First, they are naive so it's easy to rip them off blind.
Can you read, man ? His other entire point was to run a fair honest business, and the work will back to you 10fold.
Living wage. He is telling people how to not starve. Not everyone will thrive into a bugeoning business like his. Many of you miss the entire point of the article. |
| Sun 27 Jul | | You rock Bella! For a while I was afraid you had mellowed out. |
| Sun 27 Jul | Mr Curiousity | 'Niches like this are mostly vacant for good reasons. You've got to deal with oddball unique situations, clients who are small minded and cheap and needing everything to be proven concretely to them, and you have to work around the small minded cheap clients to combine competent technology services with personability.'
I think BoredB nailed it. A lot of such seeming opportunities are not that exploitable for profit. Reward/hassle ratio has to be high enough to make the whole thing worth it. So one is faced with a need to invest seriously into such a business (time and effort in terms of looking for clients since at first there'll be only few). Yet it won't be possible to make a career out of it. Why would one invest a lot of time into something that will be abandoned at the first opportunity? |
| Sun 27 Jul | Bored Bystander | Bella - finally, a constructive board over the head. :-) You tied up some loose ends well.
Mr Curiosity - I'm not so certain in such a business that an effort/reward tradeoff is simply a linear function of effort expended.
My guess is that a person either has the type of personality that can deal with this kind of work and not become totally frustrated, or he/she does not. If one does have the knack, then the money will flow. If not, then you should know pretty quickly too.
As far as the work itself, any experienced programmer who has handled his own PC configuration, set up small servers, installed OSs and patches, upgraded systems, etc, should know a superset of what's required to do the actual work. The much bigger challenge is the customer profile. |
| Sun 27 Jul | Bored Bystander | Oh, yeah, one other thing... on 'glut' of end user support. I'd assume that anyone posting here could do most of this kind of work. But look at the reactions, about 70% or more negative/against.
This implies to me that there is *no* market competition, except lightweight types who are just hanging on, IMO. Those truly qualified won't touch it, going 'yuck' instead. |
| Sun 27 Jul | Mr Curiousity | 'My guess is that a person either has the type of personality that can deal with this kind of work and not become totally frustrated, or he/she does not. If one does have the knack, then the money will flow.'
I'd like to add that if a person has a fitting personality and technical skills for this kind of work he/she is very employable in a more interesting environment often for even more $. What is the reason then to do uninteresting work, skillfully deal with stingy small clients, and get paid relatively little for such a good combination of skills? |
| Sun 27 Jul | T. Norman | >'What is the reason then to do uninteresting work, skillfully deal with stingy small clients, and get paid relatively little for such a good combination of skills?'
The freedom of working for your own business instead of slaving to fatten the pockets of CxO's who will dump you when the wind changes direction. |
| Sun 27 Jul | Bored Bystander | Another issue and another reason for considering this track - the technical and administrative skills necessary to support small offices' IT needs are within the grasp of almost anyone who has experience with PCs, small lans, application installation, etc. Which is just about anyone, anywhere who works with PCs in a technical capacity.
Whereas the skills necessary to break into the big company track often require past 'enterprise level' skills supporting dozens if not hundreds of users as well as the political expertise to deal with the politics inherent in a large organization.
Basically, if you've worked only with smaller entrepreneurial companies (as I have) the big companies don't want to even deal with you, and they trivialize all of your experience. Just as smaller companies will treat candidates from larger outfits as too ivory tower and unapplied and lacking practical experience, or other words to that effect.
I don't think anyone is saying that this kind of work is for everyone. It may hardly be for anyone. And the points about working for yourself (even if you're slumming) vs. working in a Dilbert hive for unappreciative political jackasses are so true.
If you want to be *independent* you have to do what it takes and adjust your attitude, not sit around wishing that everyone else was a MENSA candidate. Rather uninformed (OK, dumb) people often have money and demand respect too. |
|
| Windows Mail Server? | Fri 25 Jul | Philo |
| Can anyone recommend a POP/SMTP mail server for Windows? Im currently using Mercury, but the fact that it doesnt run as a Windows Service kills me. Ive looked around a bit and seen some other packages, but I figured Id ask here.
What I want:
-runs as a Windows service, preferably with hooks to the Event log and Perfmon
-no limit on # of domains served
-At least ten users for under $500
-webmail interface
-not Exchange
thanks!
Philo |
| Fri 25 Jul | Mike | Check out Gordano's Mail Server - previously NT Mail
http://www.gordano.co.uk/kb.htm?q=1630
I know at least one ISP that uses it and is quite satisfied.
Prices http://www.gordano.co.uk/kb.htm?q=1630 |
| Sat 26 Jul | Joel Spolsky | We've been happy with IPswitch. |
| Sat 26 Jul | Hector | MDaemon is $110 for 6 users, and does what you want and more.
http://www.altn.com/ |
| Sat 26 Jul | Dan G | XMail Server
Pretty sure you can get a web mail addon for it
Its free and powerful, runs as a service, not sure about using the Event Log tho
xmailserver.org |
| Sat 26 Jul | Damian | http://www.mailenable.com/ is really nice. It's pretty cheap too. |
| Sat 26 Jul | bobk | I've always loved Ipswitch's IMail. Not sure how it's priced now, but they should have a package in your range. I haven't used it since V5 so things may have changed, but the thing I liked best was that most of the config and the messages were stored in plain text. Almost like working on a Unix system, but with an interface that makes sense. |
| Sat 26 Jul | Philo | 'the thing I liked best was that most of the config and the messages were stored in plain text'
Oops, should've pointed out that this was something I was looking for too. :-)
Philo |
| Sat 26 Jul | Damian | Mail Enable does that too.
The base version is actually free. But you have to pay some for the webmail. |
| Sat 26 Jul | IagainstI | I've used IPswitch IMail, and it was pretty good.
I've also used Floosietek's FTGate, and I was damn impressed. http://www.floosietek.com |
| Sat 26 Jul | Guillermo | I'm using MDaemon, and works fine with several domains, only maybe not so easy as i want.
http://www.altn.com/Products/Default.asp?product_id=MDaemon |
| Sun 27 Jul | James Ussher-Smith | Ipswitch Software's Imail is a package which I just recently installed for a customer - http://www.ipswitch.com - it has all that you mentioned. But I'm not certain about the price as I know they've changed their price structure recently.
Their support is very good as well - even though we are in London and they are in NY so it is a pretty expensive phone call but it was excellent! |
| Sun 27 Jul | Alex Tronin | Use CommunigatePro from Stalker - http://www.stalker.com
Has all the features you need, web-interface can be customized as you wish.
Runs on Windows just fine, you can switch to any other platform any time as you wish with the same license |
| Sun 27 Jul | Unfocused Focused | I run Mercury Mail with fireDaemon to keep it running when I'm not on the server. No good links, simply because it's been running flawlessly on the server through three workstation upgrades - the links have been archived somewhere. |
|
| Language Stereotypes | Fri 25 Jul | Andrew Hurst |
| That visual basic discussion a few topics down got me thinking. What are the stereotypes of the languages we use, that get repeated way too often and mostly arent true? Please dont start a language flamewar, I just think its interesting to see the remarks people repeat about languages when they dont use them regularly. Ill start off with a few:
Visual Basic:
* Written by non-programmers
* Not for enterprise applictations
Perl:
* Write-only language
* Cant be used for large-scale applications
Java:
* slow |
| Fri 25 Jul | | python: toy language
C++: masochist language |
| Fri 25 Jul | Alex | C - only Unix weenies still use this |
| Fri 25 Jul | HeyCoolAid! | Lingo (Macromedia Director) 'Not a REAL programming language' |
| Fri 25 Jul | Could go on | C/C++ - good way to turn a 1-month project into a 12-month project full of memory leaks
J2EE - good way to turn a 50 KB project into 20 MB bloatware dependent on five other packages
Access - way to ensure data is not relational (due to user)
XSLT - way to multiply complexity and dependencies for even the simplest tasks, while purporting to simplify it. Great guarantee f employment longevity |
| Fri 25 Jul | Philo | Access & Excel - strikes fear into the developer's heart when he hears 'well, we have an Access database/Excel spreadsheet'... |
| Fri 25 Jul | Mickey Petersen | C++ - The COBOL of the 90s (to paraphrase Unix Haters Handbook) |
| Fri 25 Jul | anon | I've also heard of Java refered to as the COBOL of the 00's. |
| Sat 26 Jul | tapiwa | LISP - for the thinking man |
| Sat 26 Jul | Matthew Lock | > Access & Excel - strikes fear into the developer's heart when he hears 'well, we have an Access database/Excel spreadsheet'...
I shudder when I hear that. I built someone a database backed website recently from a prototype they built in Excel. First question after I finished : 'Now how do I change the calculations in the PHP code like I can in Excel'. |
| Sun 27 Jul | K | Matthew, that sounds like a good question to me. Did you spend some time with him talking about how he intended to use it before you started programming? I was in a similar position once, but instead of telling the client to just edit a particular region of the code I made a (very small) language that the client could write formulas in and made configuration options where blocks of code in this language could be specified. |
| Sun 27 Jul | Bella | Matthew,
Sounds like you fucked up the user requirements phase, and delivered an app that didn't meet the user's needs. Ever worse, you took away functionality the user already had in your clusterfuck of a rewrite. The user is not the problem, it's your (lack of) analysis skills. It's people like you who give IT a bad name. Have a nice day. |
|
| company car | Fri 25 Jul | jw |
| Scenario:
Last week an employee is at work and her boss asked her to run some documents over to a customer using the company car. Employee did and while doing so she scraped the car on a support in the parking garage.
She told her boss about it and her boss seemed fine. They got estimates and brought the car in for repairs which totalled around $1300. However, today her boss called her into her office and said she was very disappointed with Employee for not coming to talk to her about the car. She said Employee was acting irresponsibly and showing poor ethics. She wants Employee to pay for the damages to the car. The car is owned by the corporation (its an s-corporation). Employee said that since she was performing company business on company time at the request of her boss, she didnt think she was assuming any personal financial risk in driving the car. Her boss said she has until Monday to decide and if she doesnt want to pay for it then she wants Employee to start looking for a new job.
What do you think of this? Is Employee responsible for the damages? What would you do in this situation? |
| Fri 25 Jul | GiorgioG | It doesn't matter who's fault it is, who's right it is, blah blah - she will either have to fork over the cash or lose her job. |
| Fri 25 Jul | | Employee is not only not responsible for the damages (unless of course she was behaving recklessly), but she also has a good case for a blackmail suit and possibly wrongful termination (if she is fired).
IANAL, but I have been in some fsckd up similar situations.
She will lose her job, but is it worth working there? |
| Fri 25 Jul | Alyosha` | It's nice that the boss gave the employee a whole weekend to talk to a lawyer. The car is company property, is (I assume) insured as a company car, and she was on company business when she used it.
Yet the company is trying to blackmail into paying for something she is not legally liable for?
Sounds like a straight-up wrongful-termination suit to me. |
| Fri 25 Jul | Trollumination | First of all, I'd explain that I wanted to be a good person and make good on the damage, and that I'd be happy to pay for the damage by payroll deductions in installments - informally of course, wouldn't want to sign my rights away at this time. Still, I'd come up with the relevant labor laws for the State in which the employment is (most States strictly limit employee liability and payroll deductions for such things), and would point out that I really liked the job as well as my boss personally and was willing to cut the boss a break about this. I would, of course, request that the boss purchase collision insurance on her company vehicles as a fiscally prudent measure, because in the future her employees - who most likely insure their own vehicles as well - may not be so willing to help her out. If she was willing to get some insurance and show me the proof for it, and perhaps take care of a share of the repair costs herself, I'd let it go at that.
But if she wouldn't get insurance and accept some responsibility for the situation, I'd get myself a lawyer and plan to take her little S-corp to court. If I didn't get fired, I'd sue for unlawful extortion by payroll deductions - and if I did get fired, just add unlawful termination to the mix. |
| Fri 25 Jul | Employee | The boss is not threatening to fire me. The boss said that if I come back on Monday morning and say 'I think this is a company car and thus a company responsibility, etc.' then she thinks that I am not a good fit for the company (as far as my ethics) and she will ask me to begin looking for another job, but she will not fire me... |
| Fri 25 Jul | GiorgioG | Well, in that case - start looking for another job, slack off, i.e. make your boss lay in the bed she made. Worse comes to worse, they do fire you for 'some reason', and you'll still claim unemployment until you find a better gig.
You don't want to work somewhere where your boss is visibly hostile towards you anyway. |
| Fri 25 Jul | sooner | The co. didn't have insurance on the car?
What happens if you refuse to pay and you refuse to look for another job?! This is extortion plain & simple. Probably wrongful termination too. The beauty is you don't have to hire a lawyer for this. Just call up the DA and state labor boards and whoever else you can think of and file a complaint.
I'd definitely start looking for another job. |
| Fri 25 Jul | Employee | The company DOES have insurance on the car, but the boss is choosing not to go through insurance because she feels it will be cheaper in the end to pay out of pocket for the damages. |
| Fri 25 Jul | Mark Hoffman | 'then she thinks that I am not a good fit for the company'
..and any company that expects you to pay for accidental damages done to a company car on company time is probably not a good fit for you, or anyone for that matter.
Excluding things like DWI, DUI or running down school children for the sheer pleasure of it, a company should accept the liability for fender benders when you use a company car on company business.
Screw the legal crap. Unless it's just an outrageous sexual or racial discrimination issue, by the time it winds itself through the legal system, all you will receive is a large amount of frustration and wasted time. |
| Fri 25 Jul | jb | Employee, your boss is incredibly stupid as well as being an a..hole.
There is no way she can legally require you to pay for damage to company property.
The fact that she has intimated your lack of interest in doing so should make you want to look for another job in itself qualifies for harassment and grounds for wrongful termination if you do choose to move to another job.
People in unions have representatives they can contact, at no cost, to discuss these things, and have them resolved. |
| Fri 25 Jul | Trollumination | > The boss is not threatening to fire me. The boss said
> that if I come back on Monday morning and say 'I think > this is a company car and thus a company responsibility,
> etc.' then she thinks that I am not a good fit for the
> company (as far as my ethics) and she will ask me to
> begin looking for another job, but she will not fire me...
I suppose it depends on just how much you're getting paid. If she wants to take the next $1,300 you make, and that's as much as you make in a month or two, then it is a firing no matter what she says because there's no way you could afford to keep the job. Might as well walk out right now if you won't get paid, might as well steal something worth your last paycheck on the way out while you're at it.
This all comes down to personality, really. If the boss is just upset and wants you to assume some token financial amount of responsibility for the furnishings of the workplace, an affordable amount relative to your wages, this is understandable. Illegal in most states, but understandable, and I could see chipping in a bit of the cost - perhaps not for the repairs directly, maybe towards the cost of a collision insurance policy for that vehicle so that the boss can learn the benefits of reducing her risks. I mean, it still beats using your OWN vehicle for work - speaking as a man who no longer uses his own car for work after being forced to pay his own parking ticket for parking in the delivery space at work, while making a work-related delivery - and thinking of just how bad it would be in the event of an accident making a delivery. My boss is psychologically unable to just hand a subordinate a twenty, but he's a good man and I don't hold this against him.
But you have to be a judge of character here. Is your boss a whiny little girl just grasping for every last dollar? I had a girlfriend like that - she wanted me to pay her $50 cell bill one month because she'd spent $5 on roaming fees talking to me, wanted me to buy her a $100 vacuum cleaner because I'd gotten sand on her carpet, made me buy her a new Gucci bag because I got a speck of dirt on her old one (which she cleaned easily and still carries) while holding it for her.... she wasn't a very good girlfriend (though she honestly tried her best), and if she was a boss I don't think she'd be a very good boss either. If your boss is like that, some spoiled little rich girl who cries about every expense that she could possibly exaggerate and push off on someone else, then she deserves to be dragged into court and have the book thrown at her. You have to decide. |
| Fri 25 Jul | DJ | The boss is being absolutely ridiculous. It is a company car on company business and she did not do anything reckless or criminal. So there is no way she is liable for the damage.
I was driving truck (a long time ago, before I got into programming) and backed into a wall by accident and caused a fair bit of damage. My boss was pissed, I said sorry, it would never happen again. The insurance co. paid for the damage and I kept my job.
End of story… |
| Fri 25 Jul | Johnny Simmson | Wow. Usually people that assume the risks of a business get to share in the rewards of the business. I don't know if I would've laughed at your boss or bitchslapped her. |
| Fri 25 Jul | eclectic_echidna | Find an employment lawyer right away. You were acting as an agent of the corporation, therefore you cannot be held liable.
If they do fire you could sue for treble (triple) damages. Don't argue with your boss about ethics. Ask your boss about ethics and the law. They are clearly tring to scare you. It is likely they don't realize how much trouble you could cause.
BTW, find another job; you will need that to pay your lawyer... |
| Fri 25 Jul | z | >>> the boss is choosing not to go through insurance because she feels it will be cheaper in the end to pay out of pocket for the damages. <<<
Of course it will be cheaper if the boss can extort the money out of the employee. Then they won't have to pay the deductible.
It is the boss that has the ethics problem. No telling what they will come up with next. I know the economy is bad, but you want to get out of there as fast as possible. |
| Fri 25 Jul | Trollumination | > the boss is choosi |