last updated:24 Oct 2003 15:41 UK time
|
 |
|
(Comments added for week ending Sun 19 Oct 2003) | View Other Weeks
|
|
| Standard Icon for Strike-Thru? | Sun 19 Oct | Dave B. |
| Is there a standard icon for strike through text? I have seen the letters ABC with a strike through them and the capital letter T with a strike through it.
I know that this is normally an effect that is only displayed in the Select Font dialog box, but I would like to use an icon in my application and was wondering if there was a standard icon that was normally used. |
| Sun 19 Oct | EAW | Strikethrough seems like such a rare icon that there is probably not a 'standard'. if you were to ask about 'save', for example, there is the recognized floppy disk icon. for strikethrough i don't think a common standard exists.
(as an aside, it's think it's interesting that the floppy Save icon will probably stick around in all future versions of Office, even 10-20 yrs from now when nobody uses 3.5'' floppies)
for stikethrough, i'd suggest using whatever seems to be clearest. personally I like ABC with a strikethrough, since it's less of a leap than to figure out that T stands for text. |
| Sun 19 Oct | www.marktaw.com | MS Word 97's icon is ABC with a line through it.
Right click on your icon bar (damn what's the real name for that thing?), go to Customize, and select Format. Scroll down and you'll find it.
MS Office is about as 'Standard' as you're likely to get here. |
| Sun 19 Oct | Tornado | I believe they are called Toolbars and/or Coolbars. (Seperate controls heh) |
|
| Development overhead in India | Sun 19 Oct | anonymizer |
| The recent thread about plumbers and software developers made me interested in the shared overhead carried per software developer in North America, and the same in Bangalore (not because Im protectionist - which Im not - but just out of curiousity). As such, my question is thus:
-How do computer hardware costs compare between the US and India?
-Even more importantly, how do software overhead costs compare between the US and India? I would find it surprizing if the big outsource companies were paying more to Microsoft in licensing charges per year than they were paying the actual employee using it. I suspect (based upon no actual facts, but rather just a gut feel) that Microsoft India likely charges dramatically less for software in India, and if this is the case then this effective undermines the American market. |
| Sun 19 Oct | Stephen Jones | Dear Anonymizer,
Hardware costs in India are something like 50% HIGHER than the equivalent cost in the USA. As for MS software costs they are cloaked in secrecy - but it is a well known fact that MS offers large discounts for bulk purchases everywhere. As far as the OEM cost of the OS and Office goes for example, a big name like Compaq would be paying a lot less per license than a small to medium PC Assembler.
And the cost of internet access and infrastructure is much, much higher than in the States.
If you have been following the nearly endless threads on this topic you will find that the overhead per developer is much higher in India than the US in cash terms, let alone as a proportion of salary. |
| Sun 19 Oct | T. Norman | Commercial real estate there is also more expensive than in the US, except when compared to New York.
http://www.cbre.com.sg/news/31Jul03.htm
They also have other overheads that US firms don't have. Because they have frequent blackouts for hours at a time, electicity-dependent business like software houses must have a backup generator powerful enough to provide 100% power all day, and the generator is actively used and maintained. |
| Sun 19 Oct | www.marktaw.com | On the other hand, they have two shifts of developers - their 9-5 and then OUR 9-5 (something like 6pm-2am for them), and their programmers work in conditions we would consider appalling, programmers squeezed into every available space. Each programmer is given a list of tasks to complete that week, and if they don't complete a certain percentage, like 85%, they're given a bad report that week. I don't know what the punishment is for a lot of bad reports, but I'm sure there is a pretty stiff one.
They sit at terminals with just the bare minimum tools they need to do their jobs - no internet even, and they only do what they were trained / are paid to do.
So when you talk about real estate, you should talk about cost per employee, not per square foot.
Come on guys, why no threads on the hidden costs of manufacturing clothes with slave labor in China? |
| Sun 19 Oct | rz | 'Come on guys, why no threads on the hidden costs of manufacturing clothes with slave labor in China?'
Perhaps because this is the joel on 'software' message board, not the 'joel on the garment industry' message board. |
| Sun 19 Oct | T. Norman | Mark TAW, that is no longer true for the bulk of the firms that do work outsourced from the US. Many of them now have impressive campuses and equipment that puts common US cube farms to shame.
And the double-shift thing isn't so common anymore, as far as developers are concerned (others like tech support still do round-the-clock.), because with all the job-hopping you can't convince large numbers of developers to stay long in a job where they work the night shift. |
| Sun 19 Oct | www.marktaw.com | T. Norman - I heard this from a friend of mine who went to India in August for a month - an old co-worker and programmer who grew up in India & worked with me at a company that hires programmers in India.
What you say might be true, I can only speak to what I've heard from trusted sources. |
| Sun 19 Oct | outsourcer | The previous posters' comments on higher costs are correct.
Also to consider:
Your administrative costs per employee are a bit lower.
Your benefits (health insurance, etc) are a lot less, as are your liabilities -- if someone is seriously injured on the job, you just fire them. If they get sick and need a lot of medical work, or to take time off, you fire them. The savings here are HUGE -- these costs in the US may be $10-$30,000 per employee and are brought down to $0.
On the otherhand, you can not possibly underestimate your costs of 'consideration'. If you are not the cousin of somebody important, you should budget $50,000/year in payola to keep the electricity and water connected and running in a small 10 person shop. You'll also need to pay quite a bit to make sure you pass all the inspections, which you won't pass no matter what you do unless you know how to give the five fingered salute. |
| Sun 19 Oct | uncronopio | 'Appalling conditions' are certainly culturally dependant. What for a programmer in an air conditioned office in New York is appalling, can be quite good conditions for the average Indian.
Salaries are lower, but they don't have payments for SUVs or cable with 500 channels. Nobody argues that living standards and cost structures are different, but that is the nature of the beast when competing in *any* industry.
As always, top programmers will flourish while the others will need to do something else. I heard that McDonalds is recruiting... |
| Sun 19 Oct | www.marktaw.com | uncronopio,
I'm not arguing that. The specific words my friend used were 'conditions we would find appalling.' And we're not arguing quality of life i.e. no SUV or Cable, we're arguing cost to American firms for hiring in India v. in the US. |
| Sun 19 Oct | uncronopio | I think that, in the short term, many companies will outsource to developing countries because 'everybody is doing it'. In the long term, some companies will run the numbers, compare productivity, etc. and some proportion X (the majority?) will continue doing it because 'it will be cheaper', while others (1-X) will drop it. Maybe costs are not quite a lot lower, but in times with low profit margins that small diference really counts.
I also think that companies will keep developing high profit margin and mission critical applications in the US. Thus, the software industry will show to be not so different from the sport products and apparel industry, despite of what highly educated developers tend to believe. |
| Sun 19 Oct | Tarun Upadhyay | I work in India and travel about 6 times a year to US.
In my opinion, campuses of Indian software companies vary. The software campuses of best companies (like infosys, wipro) will put most software companies in US to shame. they have restaurants with dozens of cuisines, squash courts, football fields, clubs, day care for children etc.
Definitely much better than what US software companies have to offer.
Management practices are also much better than US (It is not easy to hire/fire people in India. Labour laws are much more people-friendly). In US, I see employees living in eternal fear of their boss and ready to do things that they do not really want to.
Indian companies are usually more sensitive to individual needs. (it is not uncommon to offer free cab if your car breaks down and you have work to do in office). Free (or subsidised) lunches, mid-day snacks and dinner are almost the norm. So is flexitime and informal dress code.
Yes, the internet access is expensive and is hence at premium but all companies I know of provide good internet connectivity to all their employees.
( I believe that your friend - or trustworthy source - was working of somekind of bodyshopper or fly-by-night operator and not a real company (there are many of those in India too). I suggest that you ask him to switch vendors ASAP)
'how naive is to think that to this world you can something give...
... and how strange to find reasons: to learn, to love, to live.' |
| Sun 19 Oct | no name | The reason managements in Indian outsourcers can readily provide what seem to be generous extras is that pay is so low compared to the fees they charge in the West.
If those firms were honest, they would pay their developers at the same scale they charge their customers.
By the way, a friend of mine who worked in India brought back very poor reports. |
| Sun 19 Oct | T. Norman | There is still a spectrum of various levels of infrastructure -- some are crappy, some are really decked-out with dual monitors and stuff, but the crappy and crammed conditions are no longer the rule. As the prices the outsourcers can charge have significantly increased due to the skyrocketing demand, and clients have become more interested in actually visiting their facilities, they have used a lot of those extra bucks to upgrade their infrastructure.
Of course, I can't guarantee that what I'm saying is true because I've never been there personally, but I work with over a half-dozen Indians who tell me about their past experiences and recent visits, and I've seen pictures. |
| Sun 19 Oct | www.marktaw.com | Tarun Upadhyay,
My friend went to visit his family, not conduct business. He said most people work for Citigroup, American Express, or AOL. It's definately possible he was talking to the wrong people.
My guess is we're all right here, all these conditions exist to one degree or another. A Redmond style campus can certainly exist, but my guess it would be somewhere where real estate is cheap, and probably exist because in the long run, they reduce costs relative to renting the same space.
So... Any size company in the US can find some level of savings by going abroad. Those who can set up, or afford companies who have set up campuses do, and those who simply hire vendors on a case-by-case basis, including fly by night operations can do that. |
| Sun 19 Oct | Walter Rumsby | Mark TAW,
I was in India for 2 months this year and conditions were nothing like you describe. |
| Sun 19 Oct | www.marktaw.com | > If those firms were honest, they would pay their developers at the same scale they charge their customers. <
The same can be said of consulting companies in the US. I've heard plenty of stories of $200 per hour consultants (no, not plumbers) where the consultant was earning closer to $50. One wonders where that other $150 went... the sales force? Office space? His personal computer? |
| Sun 19 Oct | T. Norman | >'If those firms were honest, they would pay their developers at the same scale they charge their customers.
They can't come close to paying that much, if they expect to stay in business. For a US programmer, overhead and benefits typically make the total cost of employment add up to about double the programmer's salary. For an Indian programmer, the overheads are more than 500% of their salary.
If they're charging $30/hr and $20 of that goes into overhead, they don't have much room for increasing the progammers' salary while still making a profit... unless they charge the clients more. |
|
| Improving the market with client education | Sun 19 Oct | Lee Semel |
| Due to the low barriers of entry into IT, there is a glut of inexperienced people. Potential clients of programmers and technical firms generally dont have the knowledge to distinguish between them. It is difficult for managers already working in IT, let alone those who work outside the field, to distinguish between those who approach their work as professionals and can add value, and those who are inexperienced or are overstating their qualifications. This gives the entire field a bad name and leads to commoditization. If all programmers are equally bad, why not use the cheapest?
Licensing is clearly not an option because the wide variety of tasks and technologies makes it difficult to establish objective standards.
Other fields make efforts to educate the public. Article such as How to choose a tax professional, How to select your financial planner, or What to look for when selecting your home contractor” are one way to accomplish this. They can be provided to your clients when initiating contact with them, or disseminated more widely via professional organizations.
What we need to do is develop ways to educate the public, and to teach them how to evaluate their options when hiring programmers, technical managers, or IT firms. |
| Sun 19 Oct | MSHack | In context of work: a plumber is a plumber is a plumber and a manager is a manger is a manger, therefore a programmer is a programmer is a programmer. Right?
While it may not be true, it is the preception. Joe knows Java, Jane knows Java, Brian knows Java. Obviously Joe=Jane=Brian.
In the case of a plumber, if they show up to unclog a drain and for no explaination, it takes them four hours, and $400, we don't bring them back. Loss? $400
Now choose a project, like building a house. Rarely would that be the work of multiple plumbers. One company would run the project and sub-out most of the work. In the end however, a plumber would be plumbing, an electrician doing electrical, etc.
Yet, a software project of similar scale, each individual works on what is next. However, the expectation is that it is 'computer work' so you can do it as a 'computer person.'
Education is making people recognize that a developerA does not necessary equal any other developer, even if the skill sets are the same. In addition, having 10 developers does not reduce the scale or time to one-tenth.
In the end, it is setting expectations and while it should be simple, we shoot ourselves in the foot by often claiming 'we can do it' when what we mean is 'we can figure it out.' |
|
| Running Servlets | Sun 19 Oct | Technophobe :( |
Hi:
I am just starting on Servlets and I havent got too far. I cant seem to
run the program.
System: WinXP, Tomcat 4.1.27
The servlet file is called DontPanic.java - the code is given at the botton
of this email.
The steps I took are:
- I placed the java servlet in C:\Program Files\Apache Group\Tomcat
4.1\webapps\examples\WEB-INF\classes
- I attempted to run this servlet by typing: javac - classpath C:\Program
Files\Apache Group\Tomcat 4.1\common\lib\servlet.jar DontPanic.java
- I received the error message :javac: invalid flag: Files/Apache
What have I done wrong - this has been puzzling me for most of today
The code for DontPanic.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DontPanic {
public void doGet(
HttpServletRequest request,
HttpServletResponse response
)throws IOException, ServletException
{
response.setContentType(text/html);
PrintWriter out = response.getWriter();
out.println();
out.println();
out.println(Dont Panic);
out.println();
out.println();
out.println(Dont Panic);
out.println();
out.println();
} |
| Sun 19 Oct | David Rabinowitz | I guess the problem is the space in the path. Try this
javac -classpath 'C:\Program Files\Apache Group\Tomcat 4.1\common\lib\servlet.jar' DontPanic.java
David |
| Sun 19 Oct | Ed the Millwright | javac compiles it for you. running is a different matter.
There's spaces in the path to the jar file which the command line doesn't understand. Try putting double quotes around 'C: ...jar' and try again. I don't have a dos machine so I can't test the space and quotes stuff -- I'm telling you what you'd do in Unix. |
| Sun 19 Oct | Steve Gilbert | Hi,
This happens because you have spaces in the argument you are passing to the classpath switch. Put quotes around the part that starts with C:\Program, and end the quotes after the word servlet.jar.
An easier way to compile your servlet is to copy (don't move) the file servlet.jar into the SDK extensions folder. If your SDK is installed in C:\j2sdk, then copy the file to the folder named C:\j2sdk\jre\lib\ext. That way you don't have to use the classpath switch every time you compile. Also, if you do use the classpath switch, make sure you don't have a space after the -. It should be -classpath, not - classpath.
--Steve |
| Sun 19 Oct | Pushkal Mishra | Your class doesn't extends HttpServlet class. Could this be the problem. I added the extends clause and ran it in the browser and it works fine. |
| Sun 19 Oct | Servlets Rock | Take a look at resin http://www.caucho.com for your servlet engine instead of tomcat. I find that resin is much easier to configure and has a quicker startup than tomcat.
Running servlets under eclipse using resin and the resin plugin http://membres.lycos.fr/resinforeclipse/ makes for a pretty sweet development environment for servlets. You can debug them as they run and when using JDK 1.4 you can edit them and replace them on the fly. You can do this with tomcat as well. |
|
| Where can I find a GUI for Dos filesystems | Sat 18 Oct | Ram Das |
| Okay maybe I did not use the correct terminology in the title.
I am not sure how to call it...a while ago, eWeek magazine had a link to a .NET application that allowed users to seamlessly navigate across the DOS file directories.
i.e. in Windows Expolorer there appeared the command window below and a visual file directory structure above.
So if one clicks on C:Program Files
The Command Window will show C:\Program Files
My appologies for the convoluted ddescription above- not sure how to describe it in writting more elegantly. |
| Sat 18 Oct | Mitch & Murray (from downtown) | WTF? If your system can "see" the DOS filesystem then you can browse it with whatever your system supports - GUI, command line, some open source utility that will save the world <tm>, etc. If your system can't see the DOS host or the DOS file partition on the local host then you are hosed, period. |
| Sat 18 Oct | DanG | oh yer, i saw this snipper on www.codeproject.com
It was a command prompt embedded in windows explorer. Very nifty. I used to have the source, however a search on codeproject should reveal it |
| Sat 18 Oct | Matthew Lock | I know what the OP means, it was a kind of windows explorer which had a dos window attached to it as a frame. The working directory of the dos frame followed the working directory of the explorer frame. I forget the name though. |
| Sun 19 Oct | Ram Das | Thanks for the tip for codeproject.com.
Found a nifty trick at http://www.codeproject.com/shell/commandprompt.asp?target=dos |
| Sun 19 Oct | Simon Lucy | You need OpenGem, which is a complete GUI, an inheritor of the original Gem from DRI, or Gemini which is a shell.
http://gem.shaneland.co.uk/ |
| Sun 19 Oct | FireMode | You can also use Midnight Commander (mc for Unix geeks). It is available from http://www.ibiblio.org/mc/ and you can get a compiled binary for Win32 from http://home.a-city.de/franco.bez/mc/mc.html ). |
| Sun 19 Oct | John Topley (www.johntopley.com) | You want Command Prompt Explorer Bar from http://www.webattack.com/get/cpexplorer.shtml |
|
| The great start up tradition | Sat 18 Oct | Matthew Lock |
| We programmers have been feeling sorry for ourselves for too long. Since the dot com bubble burst theres been a constant feeling of depression in IT - its time to take matters into our own hands. We need to get back into the great start up tradition that created the IT industry.
Software start ups dont need to worry about the state of the market, start ups create markets. There was no PC industry when Gates and Allen started Microsoft in 1975. No dot coms when Netscape was written. Start ups like Autocad and Visicalc created their own software categories.
With apologies to Marx, what have we got to loose but our chains? |
| Sat 18 Oct | Roger Townsend | I agree. We're working on a time machine here. Er, or something just as esoteric and unbelievable. It's cool though. Low pay but great folks. |
| Sun 19 Oct | www.marktaw.com | A half a year to a year ago when everybody was complaining that there was nothing to do, no work, no nothing, I said - every programmer has at one time or another said that they could:
a) Write a program better than x.
b) Write a program eveyone would use because __.
c) etc.
So when I said 'Well why not take this time while you're unemployed to write that program and market it' the only response I got was 'because we lack the vision and motivation' or something like that.
Besides, an Amazon size startup needs Amazon size funding, and a Jeff Bezos size personality at the helm. Good luck finding funding today, and do you think you're the next Jeff Bezos? |
| Sun 19 Oct | Rerun | Hey, hey, Rog! What's happenin'?! Come on, now, give us the 411! |
| Sun 19 Oct | Matthew Lock | > Besides, an Amazon size startup needs Amazon size
> funding, and a Jeff Bezos size personality at the helm. Good > luck finding funding today, and do you think you're the next > Jeff Bezos?
Go the Ben and Jerry's route like Joel suggests: http://www.joelonsoftware.com/articles/fog0000000056.html |
| Sun 19 Oct | MSHack | While I am all for start-ups and the potential they create, contrary to urban legend they were not responsible for the bubble bursting.
In 1997-2000, Y2K was in full swing. Anyone who could type called themselves programmers. And they were employeed by the thousands. Tens of thousands. Like slaves rowing a great ship, the drum beat ramped up. In the process of making systems Y2k compliant, or replacing them completely, entire structures were removed from organizations.
--Those 1000 weekly reports, became 100 when it was found 900 were of so little value they were not to be converted.
-- The 'hard to maintain' areas were simplified so that it did not require six people to maintain a subsystem, now it would only take 1.
-- Legacy systems with high over were removed, or rewritten with fall less support overhead required.
Then work was done. All those people who could use a keyboard were let go. Many of the long term employees were when done when the efficiency of what was done, took their jobs.
Finally, with all the upgrades compressed into two years, it was unnecessary and nearly impossible to plan large implementations in 2000-2004. 1/1/2000 was a world wide sync point. Everyone was current and many businesses could not afford more IT expansion.
While a startup is still a great approach. It is no different in our industry than any other. In the US 52% of all small businesses fail. Great ideas will be produced, and I believe they will be produced by the startup (or what is historically called the small business).
We will not get back to 1998, until there is some other requirement that makes everyone focus spending on IT. I hope something comes but it may be Y10k. I just hope I am around for that one. ;) |
| Sun 19 Oct | Johnny Bravo | Matthew,
those 'startups' you mentioned did not vanish since the bubble burst. So every entrepeneur has to compete with the remaining pack.
Please provide a hint for the coalition of the willing what kind of program or service still needs to be developed. Or did you mean consulting only? I guess the professionals who are smart enough to survive out there with their own startups started them already. |
| Sun 19 Oct | Matthew Lock | > Please provide a hint for the coalition of the willing what kind > of program or service still needs to be developed.
I don't have the killer idea off the top of my head. But my point was that the history of software has a great tradition of start-ups. Moaning about H1B visas, outsourcing and our value in companies has replaced the entrepreneurial spirit of the past.
Developers create the innovation! |
| Sun 19 Oct | Brad Wilson | I personally believe that the bubble popped, not because there were startups, but because companies were getting funded because of 'business vision' (aka, massive branding strategies) instead of 'business commoin sense' (aka, a workable business plan for making money in the real world).
It was a feeding frenzy. Chum in the water, and sharks everywhere.
It died, because reality took over. |
| Sun 19 Oct | Brad Wilson | Oh, and I'm one of a very small handful of people working in a self-funded startup company right now, so yes, people are still doing it. Yes, we will survive. Yes, we will make money. No, we're not promising anybody billion dollar revenues in 10 years. :-p |
| Sun 19 Oct | Simon Lucy | I've probably said this before but the bubbled popped because of the way VC startups had their finances organised, around a 5-6 year cycle. It was just that a lot of them came to the end of their funding cycle and guess what, they weren't even close to making money. |
| Sun 19 Oct | www.marktaw.com | I agree with a lot of what's being said & I certainly agree with the Ben & Jerry's model. BTW I've read 'The Inside Scoop' which is a very good book about what happened in the early days of Ben & Jerry's.
You don't have to be an Amazon.com, and by working from home, you have the advantage of basically zero overhead. Probably some extra web hosting costs, but if you can do it all yourself, or with some friends, there won't be a point where you simply fail because your monetary costs overwhelm you.
My point was if you have the free time (so many people were complaining about being unemployed at the time), why not write some shareware and distribute it? It doesn't cost much money to do this, only time.
It may be hit or miss, but without any overhead, and with the core functionality in place, even if you get a job, the effort needed to patch and improve the software will be much less than the effort needed to write it in the first place.
Or a consulting company, again by working from home you save on overhead, and you can join with other people who have complimentary skills to get things done. I've known several people who've done this with varying degrees of success.
BTW, Ben & Jerry did have overhead... a loan from Ben's uncle to rent the gasoline station they used to start in, the electricity costs for the freezers, and there was a point where just a few ounces of ice cream per cone they sold were eating into their profits and could've meant the difference between staying in business and going out of business. They were desperately trying to teach their employees how to scoop the right way. Though I certainly agree with Joel.. They were much more likely to go profitable before Amazon. |
| Sun 19 Oct | no name | It's a myth that Y2K attracted lots of newbites who are now looking for jobs. Y2K used experienced programmers and did not, in my view, greatly change the plans of the large transaction-oriented corporations who undertook Y2K work.
The simple fact is that corporations reduced their expenditure on projects, displaced significant proporitons of locals with H1-B's and shifted a significant proportion of new projects overseas. |
| Sun 19 Oct | Bored Bystander | On startups: I am of the firm opinion that all 'Ben and Jerry' style startups that don't use venture capital (and I classify Microsoft as almost being in that mold in its early days in the 70's) sound like total chickensh*t when you describe them to someone else. At least until they begin to pay off.
Any self bootstrapped business with decent potential *is* tough simply because nobody else has been willing to crack that particular nut yet because nobody's figured out how to run a business in that niche. As soon as someone invents a going business that takes advantage of a particular unexploited inefficiency in the market, then two things happen. One, it becomes 'self evident' to everyone that the business was worthwhile and wasn't crap all along; secondly, the first such going concern in a niche gets modeled by others.
One example of this *is* actually Microsoft. I recall being in engineering school when MS was starting to cash in on MSBASIC and feeling that the market for microcomputer software was so low-dollar and low-end that it was beneath contempt to even consider. One thing I didn't figure on was sales volume. Instead, my engineer's chest puffed out and I resolved to work on BIG systems like VAXen... :-( And no, it was NOT obvious at all in 1977 or 1986 that MS would become the juggernaut it is today.
Another example is the company Cables-To-Go, which you find all over catalogs like TigerDirect. I personally know a family that is related to one of the founders of that company. If someone had told me back in the early 80's that I could eventually be wealthy by assembling cables in a strip mall in Dayton, Ohio, I would have sneered as I applied to the Dilbert hives where I was looking for my next 'leet 'proper engineering' job. Now, look at where these guys are and where I'm at... dammit.
That's my final point. Ego has its cost. I think it requires the ultimate humility to consider a business line that nobody 'qualified' wants to consider. |
| Sun 19 Oct | T. Norman | Part of Y2K was rewriting legacy systems for modern languages and platforms, and newbies were involved in that.
But still, I think the dotcom frenzy was the main reason for the tech bubble and its subsequent burst. Employees were quitting in droves to join startups that offered megabucks in options and/or bigger salaries. Then after being left with so many vacancies, employers were willing to hire anybody who could type.
When reality surfaced, the employees of startups got laid off as the dwindling dotcoms downsized destructively or went out of business altogether. Management of traditional brick-and-mortar companies saw the layoffs going on, and with their follow-the-herd mentality they decided it would be good if they started laying off too. |
| Sun 19 Oct | Matthew Lock | > And no, it was NOT obvious at all in 1977 or 1986 that MS
> would become the juggernaut it is today.
The raises an interesting comparison. What if in 20 years Palm is the dominant computing platform having erroded the market for desktop PCs?
It sounds unlikely, but I bet it seemed unlikely in the late 70s that microcomputers would be the dominant model against mainframes. |
| Sun 19 Oct | fool for python | Just stay away from the crack ($VC). The companies I admire most are the ones I've never heard of...quietly but profitably cranking away on stuff they love to do. |
|
| Network config question | Sat 18 Oct | Philo |
| Comcast cable runs their entire cablemodem network on DHCP. Even the five static IPs that Im paying a premium for. Im drafting a letter to the head of their broadband division politely requesting that they put their Pro customers on static IPs like the rest of the civilized world.
Out of curiosity - off a best guess regarding their network setup, how tough would it be to change the small percentage of customers on their Pro plan from DHCP to Static IPs? (customer equipment migration issues aside)
I just want to know what Im asking them to do before I ask them to do it.
Philo |
| Sat 18 Oct | Brad Wilson | DHCP and Static IP addresses are not mutually exclusive concepts. I get my static IP address via DHCP. It's always the same.
On the bonus side, using DHCP not only configures that static IP address, but also gets to bring along all the things that DHCP can bring along like DNS servers, that may change over time. The admin effort is much lower if EVERYBODY is on DHCP, even those who will always get the same static IP address. |
| Sun 19 Oct | Philo | Running a mail server on DHCP means you can't send email to a significant percentage of people online, thanks to overly zealous DNSBL's
Maybe I just need to get them to register the dynamic IP's in ARIN properly.
Philo |
| Sun 19 Oct | Almost Anonymous | 'Maybe I just need to get them to register the dynamic IP's in ARIN properly.'
That seems more likely your problem. If you're receiving a static IP from the DHCP server then that's technically no different than if you typed it in yourself. |
| Sun 19 Oct | Rich | 'Maybe I just need to get them to register the dynamic IP's in ARIN properly.'
Agreed. If you're getting the same DHCP-allocated address every time, it makes no difference if you typed it yourself. They won't care.
But if the reverse lookup is blacklisted or missing, that can be a problem.
-Rich |
| Sun 19 Oct | Peter Ibbotson | Ah, being on DHCP has nothing to do with your complaint. The problem is that comcast provide no way for other systems to spot what is dynamic and whats static.
There a few lists on the net that cover this.
pdl, dynablock.easynet.nl, maps has one as well.
AOL ask the larger ISPs to say which IPs should be sending out.
I suspect what you're asking for may be impossible. My corporate ISP splits the business lines off from the consumer and SWIPs the IP addresses over at RIPE to the companies concered and gives us proper reverse DNS.
However if your static IPs are in the middle of a block of consumer IP addresses (quite likely) you'll never escape.
One possibility is to get a secondary mail server (or if you colo your website use that provider to smarthost) if you don't trust comcasts smart hosts on the way out.
I haven't heard of many folks blocking sending mail to dynamic IP addresses just receiving mail. The whole thing is a reaction to badly configured proxy servers and trojaned users on windows machines. |
| Sun 19 Oct | fw | You want static IP's, you pay for it.
You give them the MAC addy of your gateway, DHCP will give you those addressse on connection. |
|
| Coloring hotspots in help with MS Help Workshop | Sat 18 Oct | Sathyaish Chakravarthy |
| Ive forgotten now but I think I did manage to color the links in the text of my help file the last time I used Microsoft Help Workshop. How do I color them? I want that the links appear in the color of my choice rather than the default green. |
| Sat 18 Oct | Troy King | Unless we're using something different, or I'm making a big mistake, MS Help Workshop doesn't even have an editor, so you'd have to color the links with your RTF editor. I don't recall a setting that will let you change the color on a project-wide basis. However, you could add a KLink or ALink macro to text formatted any way you like.
It's a lot easier if you use a third-party tool, like Help&Manual, which is comparitively inexpensive, but still not cheap. There are definitely cheaper packages out there, probably some free ones too.
However -- playing with a standard, like link text color, generally reduces usability. |
| Sun 19 Oct | Chris Nahr | MS Help Workshop does have an editor but it's a simple text editor that's barely better than Notepad (or maybe they simply invoke Notepad!).
Anyway, to color links you use the appropriate tags in the CSS file associated with your help pages. Example:
a:link { color: #0000FF }
a:active { color: #FF33CC }
a:visited { color: #800080 } |
| Sun 19 Oct | Troy King | He said MS Help Workshop, not HTML Help Workshop. I took him as knowing which one. If using HTMLHelp, that gives a lot more options, of course. |
| Sun 19 Oct | Chris Nahr | Duh! Sorry about that. I'm only using HTML Help Workshop so I tend to forget older versions exist... your mentioning an RTF editor should have clued me in, though. |
|
| So Who Here Has Signed Up For Empower? | Sat 18 Oct | Norrick |
| When I first heard about Microsofts Empower program several months ago, I thought it was a great idea. Of course, I procrastinated on joining up while I was out of work and broke. But now that Im doing project work regularly again, I am considering it.
Has anyone else here signed on to the Empower program? What kind of support do you get besides the big box o software? Do they offer help with marketing and such?
I could ask these questions of Microsoft, but Id really like to hear the perspective of an ISV who is currently in the program. |
| Sat 18 Oct | Mike Garrett | I'd like to, but I'm not sure how literally MS is enforcing the requirement that the software be 'packaged'. I have a program that is web-downloadable, and its not clear to me that we are eligible.
Anyone know? |
| Sat 18 Oct | Bored Bystander | My guess is that 'packaged' means that you publicly offer and advertise some kind of product that is formally 'productized' - it installs (IE, no zip file to manually unzip and path by the user) and shows up on the Add/Remove Programs list, has help files, and is a discrete chunk of functionality without user coding required. Basically, sounds like MS wants you to sell something that you develop for Windows. I doubt seriously that having a physical box is a requirement.
Another possibility is that you have to have the product Windows logo certified. |
| Sat 18 Oct | Philo | Gotta wonder if Remedy or something like Biztalk or Sharepoint would qualify...
Philo |
| Sat 18 Oct | Brad Wilson | Mike,
I just e-mailed that exact question to them. Our product is ASP business model: no installation required on the client side. I'm curious whether we qualify or not. |
| Sun 19 Oct | Peter Ibbotson | I don't know, we joined up to the regular partner program. We got our software "designed for XP gold" certified. The whole deal pays for itself just in reduced license fees. (10 MSDN + 100 Client licenses) |
|
| What coders can learn from $200/hr plumbers | Sat 18 Oct | Bella |
| In my town, all electrical and plumbing work must be done with city liscenced workers. (Or be faced with steep fines) I recently replaced all the appliances in my kitchen. The stove and dishwasher had to be disconnected before delivery, and reconnected after delivery. (The plumber made 2 visits) My bill is $475.
There is a supply of unliscenced people who would have done the work for less than 50% of this. However, the ones with a city liscence know they have a oligolpoly on this niche, and clearly exploit it, knowing their clients cant opt for the cheaper labor.
How is this relevent to programming? I think thats clear. Ive been saying it for almost 2 years on this site. When you lament the labor market, know that you are operating in a sector that has NO formal degree requirement, NO certification requirement. Hence, has NO barrier to entry (except ones that firms themselves place on their potiential hires), and of course the killer, sometimes, NO need to be physically present.
For everything these niche plumbers have done right to protect themselves, it highlights exactly why IT was always a dead-end career that will ultimately pay fast-food wages. (Back in 2000, I used to use the $60k nurse/cop/teacher/plumber, but my long term salary prospects for those fields are better, in my estimation) |
| Sat 18 Oct | no name | Don't quite understand the 'Back in 2000' part.
Are you saying that those fields are dead-end, albeit better than programming? |
| Sat 18 Oct | I | I don't think you can liscence something as common as computer knowledge. Everyone has the ability to own and use a computer. They are readily available for purchase. On the contrary is someone who lives in an apartment going to go out and buy their own tools and do their own plumbing? I don't think so. Is someone who owns their own house going to do their own plumbing? Most people wouldn't. Same with electrical and mechanical (car) work. These trades require > physical tools < to be purchased whereas one only a needs a computer to learn programming. The other trades also require you to have a place to go to perform the work. You don't need that with a computer, you simply sit down and code.
Knowledge of programming is readily available and practicable at the same time. That is the key, that you can practice programming easily. You can't simply practice being an electrician or a plumber at home. You're not going to say, 'Ok let's tear out the sewer system today and put it back in. It'll be good practice.'. That would be a huge time and money investment.
With such ready availability of hardware, software, knowledge and the ability to practice what would a liscence mean any more than a MSCE certificate now?
There are no local codes to follow when programming. There are accepted best practices, but that is a given with any trade.
If you're concerned about salary, then you need to find a way to limit the ability to practice coding on a computer. Computers are simply too common to have to have require a liscence. No city is going to make a 'Coding code' to follow.
In other words, what a ridiculuous idea and only to protect your interest in your salary.
-------------------------------
'Headline news: Today the government signed into law Bill number 156 that states all manufacture of computers will cease and the internet will be shut down. This Bill will protect the knowledge of all current programmers so their salaries can grow. (Brought to you by Lobbying for Stagnation.) |
| Sat 18 Oct | ajs | Said 'I'... Everyone has the ability to own and use a computer. They are readily available for purchase. On the contrary is someone who lives in an apartment going to go out and buy their own tools and do their own plumbing? I don't think so.
Why not?
A computer is a tool, and rather expensive when you think about it.
Plumbing and electrical work is not all that difficult. Of course, leaking pipes and sparking power sockets is a worry. A few screwdrivers, wirecutters and like will let you do most of the work.
In New Zealand, you are allowed to perform electrical work in your house, provided the work is later inspected by an electrician. Generally, neat = good job.
Australian is headed the opposite way. In the state of Queensland, on electricians are allowed to work on mains power. While you may thing that only an electrician can install new power points, it extends to your local TV repair person, who is not an electrican, and therefore cannot replace the blown fuse in your dead VCR.
Whether the householder is all to replace light bulb remains to be seen.
Like Bella, I object to paying excessive rates ($200 per hour) for something I am capable of doing. |
| Sat 18 Oct | Mike Swieton | There is a very real difference between plumbing or electrical work and computers.
If I am an electrician and I mess up, I can kill myself (which probably means a lawsuit against someone, considering the US now). If I mess something up, it could start a fire later and kill the whole family that lives there.
If I'm writing software, tha absolute worst case is someone loses a day's data since the morning's backup. Sure, not everyone backs things up, but at least you *can*. You can't backup that house: when it's ashes, it's *gone*. You don't even have the option.
Software will never be that critical. There are very, very few situations where code warrants the kind of care to develop it perfectly the first time, but the rest of the field has no such obligations. |
| Sat 18 Oct | Bella | No, I meant that back in 2000 when any coder with 2 arms was making $20k/month as a consultant, I said long term IT salaries were headed towards 'skilled middle class' careers such as nurse/cop/teacher/plumber. However, I say it will go lower than those, b/c they have higher barriers to entry and certification. Supply/demand.
> I don't think you can liscence something as common as computer knowledge. Everyone has the ability to own and use a computer.
Well, the've licenced something as common as turning a screwdriver. And everyone has the ability to own and use a screwdriver. And they are readily available for purchase.
I disagree with your argument. People invest in tools to learn a trade, just as people invest in books, PC's, and hardware to learn programming/networking. Ever hear of Dell? You ever walk into a bookstore back in the bubble? Aisle after aisle of tech books.
>With such ready availability of hardware, software, knowledge and the ability to practice what would a liscence mean any more than a MSCE certificate now?
You miss the point entirely. It's not about the SKILL, it's about LIMITING WHO IS ALLOWED TO PERFORM the service. You think I couldn't insall my stove? It literally is one shut off valve, and one nut to turn. 30 seconds. You think a daylaborer couldn't insall my stove for $20/hr?
There are few jobs where it is ILLEGAL to perform network admin. work without having a MSCE. Therefore, as you said, an MSCE is a 'soft' certification used for screening. That's all. |
| Sat 18 Oct | no name | I don't think Bella is advocating licensing so much as saying we are screwed w/o it. Sort of like the Titanic with a hole in the hull. Bella is advocating taking the life raft instead of trying to plug the hole.
As far as the trades go, I bought all the tools I needed to rehab a house (including plumbing, electrical, & carpentry) for much less than the cost of a computer. And I bought tools that I didn't need since it was more of a money-making hobby than just buying the bare necessities. |
| Sat 18 Oct | no name | 'Software will never be that critical'
Wow. You don't work where I work. |
| Sat 18 Oct | Bella | > If I'm writing software, tha absolute worst case is someone loses a day's data since the morning's backup.
Tell that to someone who has a hole in their chest from an x-ray machine with bad software on it, that overexposed the patient by a factor of 1000x (true stories) |
| Sat 18 Oct | Bored Bystander | Bella, your original post and follow up make a really, really good point. This topic is a gem and should be reposted in any form worth reading at least once a month on all programmer boards.
And almost all programmers don't get it at all, don't understand in the least why they're commoditized and being treated like interchangable parts.
The major point is, probably 80% of the population could comprehend and perform basic plumbing services to the level of the median of most plumbers. Yet plumbers 'eat steak'. While senior level programming and system administration, accessible to only a tiny proportion of the population (probably well under 15%) are coveted, hard to land jobs with exorbitantly choosy hiring parties.
Turn things around, though. Most of this has to do with the attitudes of the workers toward the work and their view of their role in the work.
Plumbing is a filthy, dirty job. The consumer usually needs plumbing service immediately if not sooner when a breakdown occurs. The competition to get into it is therefore generally not really that intense. It can be lucrative but it's also a case of 'it's always been there, it always will be'.
Whereas: programming is a low tier 'rock star' type calling. No, really. Much of programming is an ego trip. Everyone wants to invent their own standards and libraries they make everyone else use, be the first, be k3wl and l33t, develop ground up software from scratch. I've worked in organizations where the role of 'programming' was an elite plum. If there's a hallmark of programmer thinking, it's elevation of the self to college professorial academic demi-Godhood pomposity.
One job dirty, disgusting, 'blue collar', also protected by legislation. Other job clean, safe, and relatively prestigious and sought.
You figure it out. (Well, the 'you' was figurative, I actually meant others.)
Another thing about plumbing that makes me 'think': the parts and tools are almost all CHEAP. The argument being put forth in many quarters is that cheap computer memory, discs, and hardware and declining profit margins on PC HW equate to cheap wages for performing work with them. NO. I posit that there is no real correlation.
The only positive correlation between wages in any circumstance and the work performed is - how badly does the consumer need the work done, and how much do they have to shop to find someone to do the work at an attractive price? In one case - plumbers - grungy, unappeaking work. The other - programming - you have some buttholes literally throwing themselves at employers with the attitude that they're 'paid to play' (that attitude alone has always frosted me - it demeans programming to video game status.)
Anyway, nice job, Bella. |
| Sat 18 Oct | ajs | Over-zealous licencing is always bad news.
You end up with situations where only union members can replace paper in office printers (true - USA), or needing different union members to turn off, unplug, move, plug back in, and then turn it back on.
Seriously, wiring up your house is not rocket science. Not that much of a step up from making network cables. Wiring up a factory (415v, 3 phase, serious amps) is a different matter.
Again, New Zealand has it right. You do the work, the electrician inspects and does the final work to connect it to the grid. Minimal legislation, minimum cost. |
| Sat 18 Oct | Bored Bystander | Ok, on licensing... I will posit that the ONLY thing standing in the way of licensing the various activities of IT is: clear definitions of tasks, quality, and deliverables.
As long as the basic definition of what is a 'program' or what 'quality work' comprise is shifting, this field will elude any gesture to quantify it.
Every couple of years, the basic notion of what is a 'program' is changed due to technological shifts. Same with networks. And, quality - how is it measured and delivered?
So, I will go out on a limb and say that we don't have any way to license IT activities - yet - because we can't capture the occupation in words.
So, to find optimal deals for our labor, we each need to find a customer need that is clear, urgent, and accompanied by willingness to pay.
It is and shall be for a long time the 'Wild West'. |
| Sat 18 Oct | ajs | Just saw Bored's comments - Plumbing is a filthy, dirty job
I have a friend who is a plumber. One day someone asked him if plumbing was a hard job. His response?
'Naw, dead easy, poofters job. A bit smelly though.' |
| Sat 18 Oct | I | >> 'You miss the point entirely. It's not about the SKILL, it's about LIMITING WHO IS ALLOWED TO PERFORM the service.'
Wrong. How do you determine who to limit in a field with extreme diversity. You have to have some sort of measure. This is impossible with something like computer software. I've heard this argument many times. We have to limit who is allowed to program computers. It must be done or the industry will go to hell. Knowledge is too widespread and easily attainable. There is also too much diversity to make it happen. So what database are you liscenced to program? MySQL, SQL Server, Oracle, Access etc etc... It's simply not practical. How would you develop a liscencening system? It would be a huge mess. |
| Sat 18 Oct | I | I'll agree with you if you can spell out a liscencening system that works. I have yet to see this happen. |
| Sat 18 Oct | Bella | > The only positive correlation between wages in any circumstance and the work performed is - how badly does the consumer need the work done, and how much do they have to shop to find someone to do the work at an attractive price?
Bored, I think you're looking for the word 'demand'
(As in supply/demand (Couldn't resist ! ;-))
I agre with Bored's comments on 'glamorous white collar' also. Everyone and their grandmother now goes to college (and then some). So, everyone wants a glamorous white collar job. Aspiring lawyers, MBA's, stock brokers, etc. A dime a dozen. Who aspires to show their 'plumber's crack'? FEW, except those who may get in on a family business, or have a close friend doing well.
Umm, I think I'm looking for the word 'supply' ;-))) |
| Sat 18 Oct | I | BTW: This always ends up being a round-robin argument. The fact is that plumbers and electricians fields are mostly stagnant. Ever watch This Old House? When was the last time they had an electrician on there that showed you some new tricks or a plumber with a new kind of pipe? Probably not very often.
I agree liscencening would help the current glut situation ( and the attitudes that go along with it ), but the computer field has not seen it's end and may never ( or at least not for a very long time ). It'll keep evolving and advancing. |
| Sat 18 Oct | Bella | > It's simply not practical. How would you develop a liscencening system? It would be a huge mess.
Bella's 3 Simple Steps To Licensing of a Profession:
1) Require formal education (BA/BS/MS)
2) Administer a test. People who pass are issued a 'license'.
3) Anyone who publicly uses that skill without license goes to jail for 10 years.
Optional: Have a programmer uniform. Replete w/ shiny badge and a pointy blue hat. Maybe even issue a gun. Anyone not wearing the uniform is clearly not a programmer. But, perhaps who can allow some people to do 'citizen's programming', in extreme emergencies.
Any questions? Look at my 3 steps, then think doctor, lawyer, nurse, cop, real estate agent, etc. Practial? Maybe not. |
| Sat 18 Oct | Bella | For the record, I am NOT advicating licensing. I HATE beauracracy. I am a firm advocate of free market, lazzei faire, & supply/demand.
I am just STATING one FUNDAMENTAL difference b/c certified/unionize fields and IT (zero barrier to entry). Infer what you will. |
| Sat 18 Oct | rz | Even if a plumber makes $200 an hour, they usually only make one call a day. so they make $200 a day. most plumbers are lucky to make $50K a year. if you yearn for the lavish , secure lifestyle of a pipefitter, perhaps you could just start pretending there is a programmers union, and see how it goes?
First, go purchase a utility van, and have a signpainter paint 'SPLOSKY AND SONS COMPUTER PROGRAMMING' on it. Underneath, make sure the painter puts 'licensed and bonded, local 212' and perhaps your phone number and e-mail address. Then, consider moving to the south side of town, and leaving your van parked in the yard in front of your house, in case any hiring managers happen to be driving through the neighborhood (the local free weekly says there is a good authentic rib place down there, so you never know.) Purchase a few shirts that have your first name embroidered in an oval over the left breast pocket. Put your name in the phone book, and start waiting for people to call you when their sql queries don't work. After you have made your call for the day, enjoy spending that $200 you made down at the Sports Shack on jalepeno poppers and tequila shooters. You are now living the dream life, with the job security, social status, and wealth you deserve. |
| Sat 18 Oct | no name | So you want to create barriers to entry in IT?
How about:
1.) Wipe out all high school, technical and community college IT programs.
2.) Destroy the Internet.
3.) Destroy every PC and Macintosh ever made.
4.) Bring back the IBM 360.
5.) Destroy all computer languages and databases except COBOL and SAM, ISAM, KSAM and VSAM techniques.
6.) Make it illegal to even talk about computers in public.
or you could just roll back time 20 - 30 yrs. |
| Sat 18 Oct | Training to be a plumber | A lot of people see licencing, rightly, as a potential threat to their freedom.
But it's actually a help for our freedom - it gives us the freedom to set prices and demand salaries appropriate to the hours, skills and continuous training we must do.
It reduces competition, which is something every other intelligent occupation does.
By the way, for this reason, business will never approve it. There is at least a decade of serious fighting before this might get anywhere.
It needs to start with those stupid CS educators who teach their students it's cool to give away their work ( open source), to be a team player and do good documentation( make yourself replaceable.) Other occupations are much smarter than this. |
| Sat 18 Oct | Training to be a plumber | NoName, 20 and 30 years ago there were actually barriers to entry because programmers generally needed access to expensive mainframes in order to learn or develop expertise. As a result, programmers earned a lot of money. More than their managers in some cases. |
| Sat 18 Oct | Bored Bystander | Sidenote: the phenomenon of chronic white collar underemployment should indicate that there are simply too darn many people competing for white collar jobs. And personal ego of the parents dictates most kids' choice of career. College is the primo middle class entitlement. We've had this legacy of universal college and universal white collar employment thinking since the mid 1960s, when college wasn't so universal and it truly was unique to attend college. Times change.
I also am an elitist of sorts. I think that white collar underemployment and labor oversupply can be directly attributed to everyone believing that they 'should' be white collar. Not everyone is cut out to be a programmer and would fit better in another field, but so many who are not really adept 'try'. |
| Sat 18 Oct | Groby | Training to be a plumber:
Are you really advocating not being a team player and making yourself irreplacable? I think your chances in the job market are limited, then....
Every relevant piece of software today is a team project. People with a primadonna attitude have a negative impact on that effort. We really don't need cowboy coders any more.
'But it's actually a help for our freedom - it gives us the freedom to set prices and demand salaries appropriate to the hours, skills and continuous training we must do.'
Have you *ever* actually checked how a union works? There's *no* freedom whatsoever to set your own prices. Payment is not skill, but seniority based. It's a world I don't want to live in.
'It reduces competition, which is something every other intelligent occupation does.'
Only if you're greedy. I'd rather see improvement that comes with competition. No chance to just sit on your behind and still not get fired just because you're in the union long enough.
I'm not saying we shouldn't be *organized* - but unions are not the right way to go.
By the way: Let's do a quick count. How many of the 'We need a union' guys and girls here are actually members of any kind of organization in the CS field? ACM? IEEE? Anything? |
| Sat 18 Oct | no name | 'You can't backup that house: when it's ashes, it's *gone*'
Actually in the UK you can't get a mortgage without insurance to rebuild the house should the worst happen. |
| Sat 18 Oct | Bella | > Have you *ever* actually checked how a union works? There's *no* freedom whatsoever to set your own prices.
Not ONE union worker complains about this, however, b/c they wouldn't get anywhere NEAR their wage in the open market. Power in numbers (and other muscle tactics.) Union dues are the best money you can spend. |
| Sat 18 Oct | Bella | rz,
$50k a year to work a few hours a day? I'll take it in a heartbeat. Do yourself a favor, and learn to calculate 'wages per hour.' Someone who makes $50k year working 4 hours a day makes more than the sucker who makes $80k a year, working 12 hours a day. Thankfully, simpletons like you keep the wheels of white collar slavery humming along. |
| Sat 18 Oct | Groby | 'Not ONE union worker complains about this, however, b/c they wouldn't get anywhere NEAR their wage in the open market.'
Maybe that is due to the fact that the skill differences in unionized jobs are not as big as in the programming field?
'Power in numbers (and other muscle tactics.) Union dues are the best money you can spend.'
Really? I haven't made that experience. See, besides my programming, I also have a carreer in dancing. And the well-paying jobs are *always* the non-union jobs.
It's only well-spent if we organize to establish standards, and then let the individual work within those standards. |
| Sat 18 Oct | smkr45 | 'However, I say it will go lower than those, b/c they have higher barriers to entry and certification. Supply/demand. '
Oh, please. Teachers/nurses/etc do not have higher barriers to entry than programmers. That's just preposterous.
Just because there's some legislative boondoggle in place does not make a 'higher barrier to entry.' Frankly, anyone can get a teaching certificate or a plumber's license. These are not, by any stretch, insurmountable obstacles.
A good example of a profession with a barrier to entry is the medical profession. Not only is there a legislative boondoggle in place, but to actually make it through the training and the internships requires real intelligence, and ultimately, skill.
In short, paper requirements are just that: paper. Most reasonably intelligent people can get college degrees. Not everyone can be a doctor.
Likewise, for all its lack of bureaucracy, IT still has the barrier to entry that not everyone can do it. That is really the ONLY barrier that matters.
I will grant that, in the preceding decade, it was certainly possible for many pretenders to find their way into IT positions, but the end result was just that the field was bloated beyond proportion. If you want to stake out the position that IT, as an industry, has grown too fast, I won't argue, there.
But providing real value to real customers in this field is not something everyone can do, and IT is particularly remarkable for how few people _can_ do that.
Frankly, the death of IT as a field of work is greatly exaggerated. I am not so given to self-flagellation, that I would say my profession is on the order of burger-flippers. |
| Sat 18 Oct | Stephen Jones | I don't knoiw where Bella lives but if its inhabitants are prepared to let themselves be so royally screwed tnen so be it. In most places I know the politicos that made such crass regulations would be the ones on the dole queue.
I hardly can imagine the corporate customers that employ most programmers standing for it.
The regulations hardly seem practical, anyway. I can understand it being possible, and even maybe advisable, to enforce a licensed electrician's sognature before connecting up a new property to the grid, but how on earth are you going to check up on repairs. And as for checking up whose under the kitchen sink!
And I also doubt Bella's main point that artificial barriers to entry are the real cause of high wages. To the best of my knowledge theire is no such thing as a licensed plumber in the UK and the cost of plumbers there is sky-high. In Sri Lanka you don't even need an architect to design your house (most people don't send in plans anyway) and the electiricity company will connect to pretty well anything, but the price of elelctricians is still trople that of a skilled mason, double that of a skilled carpenter, and well ahead in cash terms, though not in the overall package. to a good middle-class salary.
Now, plumbers' or electricians' salaries are not high everywhere. Here in Saudi I have no problem getting a good plumber for $5 an hour, and I don't recall the hourly rate in Spain being more than two thirds what you could charge for a private tuition class. I suspect the prices are over the top in the UK, and it seems in the US, because people only ever use the plumber, or electrician two or three times in their lifetime, and the job only ever takes an hour or two. The cost of buying the tools, and spending a few hours with the DIY video just in case, are not really worth it.
Incidentally Bella, if you are talking US dollars, the average teacher's salary is in the region of $42,000, not the $60,000 you quote.
Finally programmers setting up a guild to artificially keep up prices is a joke. After all, in how many fields can you send the work into another labour jurisdiction at two-thirds the speed of light?
And, of course, a good half of those in high level positions in IT, whetner programmers or sysadmins, do not have a degree in a computer related field anyway. They sure aren't going to be lobbying to llose their jobs. |
| Sat 18 Oct | rz | bella, have you ever worked a blue collar job in your life?
I said most plumbers are LUCKY to make $50K a year. yeah, you might make $200 one day. and the next day you don't work at all. and you have to drive your ass to wherever the pipe broke, thereby killing an entire day for one pipe. there is a reason plumbers aren't driving around in e-class mercedes on weekends, hanging out with puff daddy. it is because they don't make that much money.
if you don't believe this, perhaps you should try going through the 3 year process it takes to go from apprentice, where you make $11 an hour, to 'journeyman' where you normally make about 45 an hour, but i guess where you live, you make $200 an hour. when you are living large in your blinged out ford econoline van with 'BELLA'S SEPTIC' on the side, supermodels in the back, cristal and caviar waiting for you at home, please come back to the internet and make fun of me, for being so silly to stay in my non-union six-figured white collar slave job. |
| Sat 18 Oct | fw | License? Well, if a guy gets a test on how to setup a win2k box, is he also certified to audit c code going into gsm systems for security issues?
There are so many things, take a system administrator, you'd have to know at least a fair bit about, unix (linux, aix, hpux, solaris, freebsd?), win2k, cisco, foundry, oracle, apache, mysql? postgresql? postfix? sendmail? qmail? . Are you going to test all of those things? Oh, they also need to code, maybe in shell, c , python , perl. It's not too uncommon to have good system administrators who can do all of those things.
Testing metrics aren't realistic. |
| Sat 18 Oct | no name | >> 'NoName, 20 and 30 years ago there were actually barriers to entry because programmers generally needed access to expensive mainframes in order to learn or develop expertise. As a result, programmers earned a lot of money. More than their managers in some cases.'
I can see why you are training to be a plumber. Plumbers don't require a great deal of reading comprehension. Next time I'll spell it out in plain English for you. |
| Sat 18 Oct | 100 days have made me older | >> 'Not everyone is cut out to be a programmer and would fit better in another field, but so many who are not really adept 'try'.'
The problem is you can't define 'programmer' to match every single programmer on the face of the earth. Another problem is that you can't give a test to say, yup your a good programmer or nope you need to go elsewhere. So what else is there to do, but try.
If a 9 year old kid code in VB at home on his parents computer and then aspires to be a programmer when he grows up because he thinks it's cool. What's going to stop him from trying to be a programmer? Nothing.
I think education about real world programming is what we need here. We need apprecteniceships. Not internships. We need accountability. Until this happens nothing will change. |
| Sat 18 Oct | Jim | I used to do apartment/house make-ready services.
In my city, there's not a plumber out there that doesn't charge to/from travel to pick up his parts. At a significant markup from his buddy the pipe-dealer.
Good post, Bella. You'll get no arguments from me. |
| Sat 18 Oct | Tom Vu | Seems like you want to create an inefficient marketplace so you can make more money. Commodity pogrammers make commodity wages. If you are doing something other than database or system maintenance you might get more. In the 60s and 70s stockbrokers made 6 figures a year just taking orders and calling an exchange to fill them. Nowadays, stockbrokers are either automated or have moved to a less efficient market with barriers to entry. |
| Sat 18 Oct | Stephen Jones | Database and system maintenance often pay quite well because the market is limited; you can't outsource the jobs.
some commodities are worth more than others. |
| Sat 18 Oct | www.marktaw.com | Guys.
You can't offshore plumbing. |
| Sat 18 Oct | Chris Hanson | Writing software will never and should never be licensed. Why not? Because writing software is an act of speech.
People who say software is not speech focus on its functional aspects - the fact that it's a sequence of steps in a process to be performed, and that process does something.
However, software also has a very strong communicative aspect. In general, the existence of a strong communicative aspect should alone indicate that it's speech. There's further precedent though, for something that can be considered speech that has both communicative and functional aspects: A musical score.
In fact, standard musical notation as a 'language' is pretty far up the Turing ladder. It's not Turing-complete, but it would not surprise me if Turing-complete notations for music exist.
So quite simply, any attempt to license the development of software is a form of prior restraint on free speech. |
| Sat 18 Oct | Dennis Atkins | AJS,
I found your comments regarding New Zealand and Australia electrical regulations fascinating, particularly the possibility that it may now be illegal to change a light bulb in your own home.
Where I live it's like New Zealand -- you're allowed to do whatever you want yourself with no restrictions. However, if you want the electrical company to hook up to your new home you've built yourself, they require (as a private company) that you have an electrician inspect and sign off on it. For plumbing, there are no rules.
Sounds like chaos, but amazingly, houses are well built around here and you never hear about electrical fires burning anything down.
I used to have a bunch of Australian friends. They swore that the US was becoming a police state and thank god they were australians where people are still free and the fact there is no bill of rights protecting their right to bear arms and so forth was irrelevant -- because of the freedom loving nature of australian culture, they would never live under tyranny.
Now, guns have been banned and confiscated, Australians are required to have a national ID number (the tax file number), and you are not even allowed to change your own light bulbs without fear of being imprisoned.
From freedom to tyranny only took about 7 years altogether. Not a person complained, everyone willingly gave up their freedoms for safety. Kind of sad. I hope New Zealand doesn't go the same way. |
| Sat 18 Oct | T. Norman | If you want to put it like that, accountants shouldn't be licensed because accounting is nothing but 'speech' -- telling people about the profit/loss and assets/liabilities of a company.
Software and accounting go beyond mere speech when they are done as a paid service for another person or business. You are and should be free to do your own accounting or write your own software as you please, but it is a different matter when somebody else is paying you to do it. Governments establish licensing not to protect the jobs of the workers in a particular field, but to protect the recipients of the work that they do. |
| Sat 18 Oct | smkr45 | Well, I think accounting is licensed in order to protect the public as a whole, especially investors. I'm not so sure that software in general has an analogy to, say, a CPA. If my web browser crashes, it's not really a huge public liability.
So I still think it's speech, although there are some instances where licensing is applicable. |
| Sat 18 Oct | www.marktaw.com | Except creative accounting is a big no no, while creative programming is a good thing.
On some level programming is fulfilling a need, but almost by definition not working within well defined systems - i.e. creating something that's the same as it is everywhere else, and has to conform to certain standards, again because the end result is known. |
| Sat 18 Oct | Jim | what about the guys that write the accounting software? |
| Sat 18 Oct | Dennis Atkins | The products of accounting are not copyrightable, nor are they cerative works. The products of coding are both copyrightable and creative works. The free speech argument is valid. |
| Sat 18 Oct | www.marktaw.com | Thank you Dennis!
As far as accounting software, it would be like ledger paper or an accounting textbook or a calculator, or pen. The software would have to produce correct results (I don't know if there's any legislation around this that would require it to do exactly what it says it will do correctly), but is a creative work just like the textbook. |
| Sat 18 Oct | Jim | So accountants are licensed to protect the public,
but the software they use to produce the results doesn't have to meet any regulations. So the guy using the results from his bookkeeping software may be commiting tax fraud.
Interesting. |
| Sat 18 Oct | Jim | Oh. I'm not participating in you free speech argument, fyi. |
| Sat 18 Oct | Training to be a plumber | Again, to the few people who are concerned that 'licencing' would restrict your freedom, relax. You would be one of the licenced ones.
Licencing is not really about defiining competence; it's about excluding people who haven't invested the same education or experience as you. Society benefits because problems will be addressed by a known basic level of competence. We benefit by getting paid more.
To the people who rabbit on about being a team player, wake up. What do you think team player is all about? It's about making you replaceable. Programmers have a right to look after our own interests; to be greedy. It's not actually being greedy, it's ensuring we're not taken advantage of.
Union members have higher average incomes than non-union members, across the board. Doctors, accountants, they're all effectively union members, however it's dressed up.
To the person who said I don't have good job prospects, you're right. I started my own business years ago so I can conduct business fairly. |
| Sat 18 Oct | Training to be a plumber | As to free speech, give me a break. Who do you think beneifts from that sort of approach? It's not you buddy. |
| Sat 18 Oct | Training to be a plumber | > Teachers/nurses/etc do not have higher barriers to entry than programmers. ... Just because there's some legislative boondoggle in place does not make a 'higher barrier to entry.' Frankly, anyone can get a teaching certificate or a plumber's license.
This is the point. Anyone can do what's required to become 'licenced' but, once they have, no-one else can come along and do the job for $5 an hour. It's a system that is part of a properly working society.
For teachers, it means schools can't save money by using $5 per day casuals for three days and teachers for two days a week, or making teachers work till 10 pm providing tutorial assistance to pupils. |
| Sat 18 Oct | Matthew Lock | Sure a plummer may make $200/hr for a few hours a day, but what plummer can form a start-up with a couple of mates and end up being the largest company in history (Microsoft), or having the highest IPO in history (Netscape)?
What electrician makes so much money in a few short years that they spend the rest of their life learning to fly (Philip Greenspun), or writing new languages and driving his fancy cars (Paul Graham)?
When was a u-bend of a length of electical cable declared the man of the year in Time magazine? The PC was declared man of the year by Time in 1982.
This thread just inspired me to put thoughts down in a new post http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=78835&ixReplies=0 |
| Sat 18 Oct | echidna | Australia has 240 V AC in domestic appliances, which is enough to kill, start fires and maim, including by secondary effects such as when a shock victim falls off a roof.
When amateurs play with their wiring, they have been known to not bother about the housing earth, connect the wrong wire of the appliance plug to earth or install the wrong size fuze, not understanding that the fuse is intended to be a preferential sacrifice that stops fires.
People have been killed from the above. So I'm quite pleased that wiring is undertaken by licenced electricians.
Also, it's wrong to say we can't change our own light bulbs. |
| Sat 18 Oct | no name | Matthew, we're comparing licencing and non-licencing here, not software and plumbing. Licencing doesn't stop anyone becoming Bill Gates. |
| Sat 18 Oct | Matthew Lock | It would have stopped Bill Gates, he had no qualifications in computing when he started having dropped out of Havard. |
| Sat 18 Oct | Dennis Forbes | 'You are and should be free to do your own accounting or write your own software as you please, but it is a different matter when somebody else is paying you to do it. '
This tired argument again by some defensive, obsolete relics looking for some artificial protection of their domain.
Let me give you a better answer for the above quotation: People-- you know: customers-- should be free to evaluate and hire _whoever_they_want_ to develop software for them. If they decide that mega-lo-corp, which itself insists on only phds with 20 years of .NET experience and every certification around, is the best vendor to do their work at $400/hour, then so be it. If on the other hand they decide that Johnny Drop-Out Basement Programming is the best decision, then that's there perogative. Where public safety is an issue I want to see inspections and process standards REGARDLESS of whether you call yourself a super bonafide pro-certified software cranker, or you're a total hack -- the risks are largely the same, and the checks need to be the same. |
| Sun 19 Oct | smkr45 | 'So accountants are licensed to protect the public,
but the software they use to produce the results doesn't have to meet any regulations. So the guy using the results from his bookkeeping software may be commiting tax fraud.'
I'm not sure I follow?
Someone who just generates reports from software is not an accountant. They're a data entry person. An accountant, particularly a CPA, is an auditor who has a duty to review thoroughly financial reports.
If the software generates the wrong results, it's still his obligation to find them.
Now, he may miss some, but that wouldn't constitute negligence. Simply generating a report and handing it off, well... |
| Sun 19 Oct | T. Norman | 'Let me give you a better answer for the above quotation: People-- you know: customers-- should be free to evaluate and hire _whoever_they_want_ to develop software for them.'
Maybe customers should be able to hire who they want, just as I am free to hire any fool I want to do surgery on me. But the people who offer to do surgery aren't free and shouldn't be free to offer it to offer it to anyone without first meeting certain standards.
Customers are not good at distinguishing the scum from the substance -- especially before they have spent their money. If you didn't need law school or a bar exam before you could call yourself a lawyer and represent people in court, the public would have a really difficult time determining who really knows what they say they know. So that core evaluation task is entrusted to the law schools and bar associations, who are much more capable of evaluating competence. |
| Sun 19 Oct | T. Norman | The biggest problem preventing software licensing from getting anywhere is that people mistakenly believe it must focus on specific languages and technologies, and because those languages and technologies change so fast it would be impossible to develop a useful licensing program.
But that is neither practical nor necessary. A software developer licensing program can still be useful and practical if it focuses on a set of fundamental concepts of software development, which do not change that often. For example: relational databases, object-oriented programming, software configuration management, graphics programming, common data structures and algorithms. You can still test the specifics, but that should be more along the lines of projects in the developer's platforms and tools of choice which implement the required concepts, with the developer expected to present and defend their work.
Of course, some will say 'I don't need to do my job!' That may be true today, but you don't know what the heck you will need on the job 3 years from now. Or even 3 months from now, should you get laid off. If the public could have confidence that all software developers had a fairly broad set of fundamentals, they would not be so uptight about requiring specific experience in specific languages and technologies.
Even if every single developer isn't licensed, it would still be useful to have rules that require any given software product, or at least software products of certain categories like accounting or medical software, to be signed off by one or more licensed software developers. That would prevent many of the common bad practices in software that are forced upon developers by PHBs. A licensed developer would refuse to sign off on shipping knowingly crappy software just to meet a date, because they would not want to jeopardize their license, and they could be instrumental in ensuring that certain basic processes take place, like having software tested by someone other than the original developer before releasing it and using version control (you'd be surprised how many organizations still don't use version control, and allow code to go straight from a developer's desktop to production without anybody else testing or reviewing it). PHBs would have less power to force developers into crappy practices, because even if they fire a licensed developer who won't allow the crap to continue, the next licensed developer still won't sign off on the crap. |
| Sun 19 Oct | Li-fan Chen | >If I'm writing software, tha absolute worst case is someone loses a day's data since the morning's backup. Sure, not everyone backs things up, but at least you *can*. You can't backup that house: when it's ashes, it's *gone*. You don't even have the option.
You can cause a hell of a lot more damage than that. |
| Sun 19 Oct | www.marktaw.com | How about:
'When Software has to meet certain specifications for reliability, safety, accountability, truthfulness, etc. then Software Engineers should be licenced.'
I.e. There are no regulations surrounding software, so why should there be regulations surrounding the people who make it?
So it's not the programmers who need regulation, it's the programs, and then the programmers will have to be regulated.
Also:
What Bella is talking about is unionizing, not regulating.
I suspect though that programmers will never unionize.
1. they're solitary to begin within.
2. everyone else sucks, why should my salary reflect their incompetence?
3. working conditions aren't that bad, so why unionize?
4. unions imply factory conditions, imply that while this is skilled labor, you're welding doors onto cars (uh, well i hope you don't weld doors on to cars becaues they'd never open), not designing them.
5. the labor pool is so big relative to the job pool that even a small percentage who haven't unionized might suck up all the jobs.
6. etc. |
| Sun 19 Oct | mb | i've been meaning to start a topic titled 'protectionism' here for months. this seems to be a good discussion on some of the issues.
lawyers, doctors, plumbers. all have methods (guilds, laws) to protect themselves. for simple things like plumbers that works well, since the guild can also ensure quality pretty well.
for doctors, lawyers, computer people, i'm not so sure protectionism is really good for those who are not proected. (read: society as a whole).
stagnation is the main thing to be feared. i grew up in philadelphia. everything is protected. work on your own roof and the roofing union will beat you up or take your ladder while you're still up there. the costs of putting on a convention there is many multiples higher both in dollars and the time it takes to get anything done.
attitudes like that are prevalent, and the city is dying because of it--no one wants to do anything in that sort of evironment. so the trade is high wages today for a collapsed economy tomorrow.
the question is how to find the right balance. |
| Sun 19 Oct | Dennis Forbes | 'If you didn't need law school or a bar exam before you could call yourself a lawyer and represent people in court, the public would have a really difficult time determining who really knows what they say they know. So that core evaluation task is entrusted to the law schools and bar associations, who are much more capable of evaluating competence.'
The surgeon analogy is a tired and prosterous one so I'm not going to go there. Even where software developers are developing software that potentially puts the public at risk, it is the process around the _software_ that is the safety measure -- code audits, code process standards, etc -- not the guildedship of its authors magically making it perfect.
Regarding lawyers, the reality is that the requirements for the various credentials has nothing to do with protecting the public (or at most very little), but rather represents protectionism at its finest -- ensuring the livelihood and extremely high income for what often is nothing more than a trivial rote repeater of facts.
Personally I believe that anyone should be able to represent people in a court of law : Someone who understands the laws and has a problem solving mind. This does not preclude associations forming with stringent requirements, or educational degrees and certificates from being created, and the public (which is usually business, by the way) could select from Lawyer & Lawyer Partners, with all Lawyer Guild lawyers, or some self-trained legal buff who did some pro-bono small claims work for a while and has since blazed a path of success in civil work (more likely you'd hire a firm on its reputation, and that firm does everything to maintain a good reputation).
I don't buy your claims that the public needs to be protecting from making its own decisions. This is classic protectionist posturing. |
| Sun 19 Oct | T. Norman | >'Even where software developers are developing software that potentially puts the public at risk, it is the process around the _software_ that is the safety measure -- code audits, code process standards, etc -- not the guildedship of its authors magically making it perfect.'
True, but it's the lack of that 'guildedship' that allows management to circumvent those processes in order to make a date, make a quick buck, etc. The PHB says, Skip the code reviews, it has to be released next week. Without a collective body behind them, the programmers have little power to resist the PHB's insane orders.
Note that I don't have any problem with someone choosing any fool to do surgery, represent them in court, design their house, etc. The restrctions should be on those who offer the for-pay services to the public, claiming they are capable of performing X and Y without any recognized proof of such capability, and without any fear of losing their qualifications if their conduct violates a standard. Punish the person offering the service, not the one who uses the service.
Should there be lower levels of licensing in some cases, like there is the dental hygenist and nurse practitioner? Sure. I wouldn't have a problem with a 'registered legal technician' handling certain types of cases. But without professional standards serving as formal barriers to entry and upholding the conduct of the practitioners, the public will eventually erect their own de facto barriers to entry which will often be misguided, and will be harder to surmount than the formalized barriers.
If anybody could call themselves a doctor and perform surgery, after being burned by numerous quacks the public will become extremely reluctant to visit a doctor, and hospitals extremely reluctant to hire any, such that new doctors coming onto the scene would face a high level of distrust which would force most of them out of the field before long. We are experiencing that right now in software, where they have been burned by so many crappy programmers that they insist on extreme and misguided requirements like ten years of Java, and new programmers go through hell to get a job, if they ever actually get one. |
| Sun 19 Oct | ajs | Echidna: > Australia has 240 V AC in domestic appliances, which is enough to kill, start fires and maim, including by secondary effects such as when a shock victim falls off a roof.
If you do the research, you find that few 'amateurs' actually get killed. The majority of victims are tradesmen. Good eh? Anyway, all voltages are dangerous. Given half a chance, 12v will kill you. Read up on the olden days when 100v DC was used. Far more dangerous than 240v AC.
Here's the problem in Australia: http://home.clear.net.nz/pages/joecolquitt/sc0103.html
In short, if the lead on your hairdrier breaks, you can't replace it. Neither can the local repair shop, unless they are a licenced electrician (very unlikely). Got a hobby making lamps? Kiss it good bye.
The alternate to licencing is simply taxing the components unless you're a tradesman. This already happens anyway.
Anyone from the UK remember the days of having to attach the plug to the TV you'd just brought home? |
| Sun 19 Oct | Noname | >'If you do the research, you find that few 'amateurs' actually get killed. The majority of victims are tradesmen.'
Yes, but the amateurs generally attempt it very infrequently, sometimes just once in a lifetime, while the tradesmen do it every day, year after year. If they do it 1000 times as often it's not surprising that they would have a greater number of accidents. Not to mention that the amateurs will tend to hire a tradesman to do the more risky work, only trying do-it-yourself with the easier stuff. |
| Sun 19 Oct | coresi | It is ironic we discuss about creating barriers to entry in IT market when a good chunk of today’s code is open source (i.e. free as in beer) and whatever jobs are remaining are moving slowly and inexorably towards cheaper markets.
What is left there to protect? |
| Sun 19 Oct | ajs | Noname;
Your comments are perfectly valid, and I agree. Fun with statistics. Doesn't change the facts.
For example, I recently repaired my microwave (the most lethal device in your house) for $1. I also repaired 2 lamps and a drill. In Queensland Australia, what I did was illegal. No point taking it to the local repair shop, he's not allow to touch it either, as it is a mains device. Your average electrician may not familiar with the habits of microwaves, and will probably end up dead.
So, I either fix it myself, or throw it out.
As I said before, I know my limits. I'll wire up my house, but not the local factory machine shop.
By the way, the 'can't replace light bulbs' comment was joke (I hope!). |
| Sun 19 Oct | Stephen Jones | I still have appliances I have to put a plug on to when I buy them.
And looking around the appliances in my house with the plugs attached, neither the kettle, microwave, chip frier ior iron have an earth pin, so I'm not alone in my belief that earth wires cause more accidents than they stop.
The reason you get few amateurs electrcuted is that it requires real dedication to electocute yourself with 240Volts or less. Electircal fires are another story, but I suspect most of them are caused by overloading sockets with extension leads.
The really ridiculous thing is that all these electrical appliances the Aussies won't let you repair on your own are put together willy-nilly with llittle regard for color coding in Chinese sweat shops by landless peasants , most of whom don't even have electricity in their home. |
| Sun 19 Oct | Bella | > If they do it 1000 times as often it's not surprising that they would have a greater number of accidents
Just like that asinine statistic about traffic accidents occuring within 5 minutes of home. That's b/c you drive within 5 minutes of home EVERY time you get in your car. |
| Sun 19 Oct | LiquidPlumber | Lots to comment on:
-- Yes. software can kill you. Consider fly-by-wire and the infamous radiological examples. However, plumbers have the opportunity to kill more unrelated people (Septic into water line contaminates city well for example)
-- Plumbers are licensed through apprentice programs in the US. They are uniion members, but they become skilled through doing and approval from 'experienced' candidates.
-- As someone posted, anyone can be a programmer as their is no barrier to entry. The barrier to entry for plumbers is seven year commitment, of near slave labor, to become a 'plumber.' So it is more than it is 'stinky' work. Most other professional work (Accountants, teachers, at el.) have certification requirements.
However, we have chosen a profession where not only is the barrier zero, but it can be done anywhere (as someone mentioned.) This put a disparity between what I need to make in order to live and what someone else does. A plumber lives in their community. So, $200 in downtown NY everyone expects to pay. But not in Podunk, Montana. They are lookng at $75/hour. Saudi Arabia $5/hour. Now what happens when the person from Saudi Arabia can do the job without leaving his $5/hour middle income environment? Yep, bye bye plumbers. |
| Sun 19 Oct | H1-B | It is always amusing listening to programmers say that there is no barrier to entry to their own profession. Isn't this the same thing to admitting that anyone can do your job? |
| Sun 19 Oct | Stephen Jones | The guy who does it for $5 an hour isn't Saudi. In fact I don;t think there are any Saudi plumbers.
It's causing a problem now since the Saudis need the jobs the Indians and Bangledeshis are doing, but still want the prices they pay the Bangladeshis.
The general point is right to some extent. Plumbers are going to charge a premium in London or New York (they've got to pay a premium for their tools and van parking for a start).
But sysadmins and programmers still earn more than plumbers and electricians nearly everywheire in the world they don't create an artifical shortage of the latter, and the main reason is that it is a damm sight harder to reach competence in IT than it is in plumbing or electrical work. |
| Sun 19 Oct | Stephen Jones | Of course while it's a damn sight harder to become competent in IT than plumbing it is a damn sight more interesting and pleasant doing so, which explains the shortage of plumbers in some places. |
| Sun 19 Oct | Dennis Forbes | 'It is always amusing listening to programmers say that there is no barrier to entry to their own profession. Isn't this the same thing to admitting that anyone can do your job?'
In reality only a very, very small percentage of the population is capable of effectively doing software development (just as only a small percentage are capable of doing a lot of jobs), and they must couple that with an absolutely tremendous information load to be equipped to actually be an effective part of the software development process - it is one of the HIGHEST barrier to entry professions. Having said that, the big 'threat' to software develop that inspires threads like this is:
-A lot of software developers should have been punted out of the profession early on (I feel the same way about many teachers, doctors, lawyers, etc, however because of their barriers to entry which effectively becomes a protection racket, once you're in, you're in for life). Now that the money is flowing quite so easily you'll see a lot of these people beating the drums of protectionism.
-India has some one billion people, and a very very small percentage of one billion people is still quite a few people. Couple that with the fact that India has a fairly advanced educational system - more advanced that the economic status of the nation. Because of this mismatch, there are professional services one can have done in India at lower prices. Having said that, Indians aren't quite keen on being a third world nation forever, and already many there are capitalizing on the demand and raising prices.
-IT became oversized. With the Y2K problem, and then the .COM/ecommerce explosion, many firms loaded up their IT shops with massive bloat (see the first point). A 'correction' was absolutely inevitable - When you're in the business of making widgets, but 40% of your overhead budget goes to the guys who run the database to track your widgets, something is amiss. |
| Sun 19 Oct | mb | the saudi problem exists here in the US too.
no one wants to work for $3/day. but they insist on buying stuff made-in-china at walmart because it's cheaper. |
| Sun 19 Oct | Bella | mb, your comment reminds me on an old pos...
OLD NAVY clothes (at least some) are MADE IN INDIA. Why do Americans love them? Old Navy clothes are a bargain. I wanted to see if any people against H1's & offshoring wear Old Navy. That would be comedy.
Bella, Thursday, July 18, 2002 |
| Sun 19 Oct | Stephen Jones | I buy all my dress shirts from India, normally Indian Van Heusen, but sometimes Emerald. They are all made in the same factory, Madurai Textiles.
The reason is not that the quality is so good. They make the shirts to the same quality the English did fifty years ago.
I can't say there's much else manufactured in India I'd recommend though (the agricultural produce is another matter; the fresh fruit is something heavenly - and of course the cooking can be great as long as you avoid meat). |
| Sun 19 Oct | www.marktaw.com | mb.. yes I can see it now: Programmer Teamsters.
'If we catch you programming without a license, we'll break your... uh... server. And... uh... won't host your shareware... and uh... won't link to your site... yeah.' |
| Sun 19 Oct | T. Norman | >'It is always amusing listening to programmers say that there is no barrier to entry to their own profession. Isn't this the same thing to admitting that anyone can do your job?'
No. It means anyone can *pretend* that they can do our job. And those doing the hiring aren't good at weeding out the pretenders. |
| Sun 19 Oct | anonymous rural resident of the deep south | So the well pump was on its last legs. I get a recommendation from a local who insists this guy is the most honest plumber around and is ' a fine churchgoing gentleman'. The plumber comes out from his shop which is exactly 2.3 miles away and looks at it and says, 'Yep you need a new pump. Come to the shop and pick one out and we'll install it.' So I go down there. There are several models with plastic things with a 1 yr warranty and one with stainless steel thingy with a 5 year warranty. While I'm there he tells be that the plastic ones are made by a company that 'used to be a good one till they got bought out by the sticking jews'. THis disturbed me and I asked why he would say that and I got to listen to his protocols of the elders of zion/white aryan crap that is extremely common to hear from Baptists in this area, which he didn't hestitate telling me about. At this point, I was thinking I should go elsewhere but I live in a small town and this guy is the only plumber within 15 miles and the liklihood is that any other plumber would also be a Baptist who believes in the Protocols and pines for the days of the Third Reich when 'folks of mixed blood didn't breed like animals'.
He won't give me a written estimate but the pump is $700 as he insists that the labor and all won't run more than $360 (2 hrs work at $180/hr) since the job is straightforward.
So two guys show up who identify themselves as his apprentice and his apprentice's friend. They look at the well and then say they forgot the special wrench and they got to go home to get it. Turns out they live 45 miles away so it's a long wait. They come back and mess around for a while and then one asks if it is OK to pick up his daughter from school. I say sure so he's gone for several hours and then calls and says he was delayed and will come back tommorow. The next day they return. The one guy does the work and his friend merely observes and does nothing. They take a lunch break and take the pump back 'to test it'. They return several hours later. When asked about the pump the lead guy says 'yeah it was no good'.
They finally get it working. I log all their actual work and the totals are as follows:
Apprentice: 2 hrs work
Friend: 0 hrs work
Knowing what's involved, there is NO doubt in my mind that I could pull a pump, exchange it, and put it back in about 1 hr at the most. But the 2 hrs seems ok.
I get the bill a week later:
pump: $1200 (turns out the price he quoted was wrong, sorry)
warranty: none, it's refurbished
rope: $200
tape: $45
wire: $102
grease: $8
couplings: $32
solder and glue: $16
labor: 2 workers, 16 hrs each, 32 hrs total x $180 = $5760
travel: 360 miles at $.50/mile = $180
grand total: $7723
So I refuse to pay and he sues me. I go to see all three lawyers it town and all three tell me they can't handle it because he has a retainer with them. It goes to court. It's pointed out that I gave them permission to go get their daughter and so I have to pay for that time as well as all travel time for the 45 mile round trip from their house in the adjacent county. The judge orders me to pay. I refuse. A lien is placed on my house. It cost me another $1000 in legal fees to get the lien removed, in addition to paying the bill in full.
That's how it works folks.
And it's why you should NEVER hire a member of any union. Do it all yourself. |
| Sun 19 Oct | T. Norman | I've heard similar horror stories with the non-union/unlicensed contractors that work in the towns where licensing or union membership is not required.
Union or not, do it yourself if you can. You have a much greater interest in seeing that the job is done right. |
| Sun 19 Oct | rural resident | No argument there. Normally I would say that you should get recommendations. My main shock has been to find that in this area recommendations are of no value unless you, the person doing the work, and the person doing the recommending all go to the exact same church. Many people have said good things to me about this plumber and have stories of how he did a wonderful job and charged a fair price. All these folks are Baptists. Since I wasn't a Baptist I was 'fair game' for a shafting. My bad. Lesson learned. Trust no one. Not meaning to disparage Baptists here, the same applies for other groups, religious, and otherwise, where insiders expect fair service and respect and outsiders are taken to the cleaners.
Not just here, but other places I've lived, there are LOUSY teachers. If you try to do anything about it, you find out how protectionists the teachers unions are. Incompetant, mean and even dangerous teachers are impossible to get rid of. The only solution is to pull your kids out of school and put them in a private school or homeschool or tutor them.
Ever a victim of medical malpractice or a police beating? That's when you find out about the 'code of silence'. Good luck getting rid of a dishonest cop or a incompetant doctor.
One point I am making is that if there is licensing and unions for programmers, we'll see the same thing. Incompetance will rule the profession. Protectionism will abound. Productivity will decline. Recommendations will be worthless. The only solution will be to outsource all development to China where unions are illegal. Unionizing programming WILL destroy the profession. It will be the gasp. None of these proposals address the fact that development is being done overseas cheaper. |
| Sun 19 Oct | no name | anonymous rural resident of the deep south, you sound like a good reason for having unions. If the job is so simple, do it yourself. |
| Sun 19 Oct | Training to be a plumber | Mathew Lock, I disagree that a system of licencing would have stopped, for example, Bill Gates.
First, just about everyone wrongly presumes licencing is the same as having a degree in CS. It's not. It should be about demonstrated capability earned by several years experience. I actually wouldn't see a degree as being suitable evidence at all. So Bill G would certainly be able to become licenced.
Second, back then there was no licencing type of requirement, so Bill G didn't waste time on irrelevancies. If, these days, there was, then Bill G would do what he needed to comply with the requirements. It would not be hard for him.
We have good doctors because doctors know their investment in several years education won't be undercut by someone with a band-aid certificate. |
| Sun 19 Oct | mb | in general, doctors are good. but notice the 'code of silence' above. i amaquainted someone who was injured by a doctor. (they did surgery when none was needed, thus making the condition significantly worse). the person went to see a known good doctor, who would say that the surgery may have been the wrong choice, but good luck getting any testiomony in court, or any sort of discipline at all. even though others have been hurt by the same doc in the same way. (the doctor makes money doing the surgery.) |
| Sun 19 Oct | mb | oh yeah one more thing: many people prefer to discuss their health issues the random clerk in the health-food store, because many doctors don't listen to their patients. scarily enough, that's sometimes the right choice. |
| Sun 19 Oct | Sum Dum Gai | 'Incompetance will rule the profession.'
Just like now! :) |
| Sun 19 Oct | Bella | In my original post, I was simply identifying the type of profession you'd IDEALLY want to be in. For the record, I don't think certification/unionization can save programming. Run, don't walk. (And yes, certification/unionization or not, the quality of the average LOC will plummet in the next 20 years. Keep hardcopies of EVERTHING) |
| Sun 19 Oct | Bella | > And it's why you should NEVER hire a member of any union.
And that's why you should NEVER live in the deep South ! |
|
| Alyosha | Sat 18 Oct | The Real PC |
| [Darwinism briefly defined is the theory of common descent of all species
with modification increasing in complexity over long periods of time]
This is not even close to being a definition of Darwinism. This is a definition of evolution. No one who knows anything about biology disagrees with the theory of evolution. |
| Sat 18 Oct | no name | >> 'No one who knows anything about biology disagrees with the theory of evolution.'
Not even a Christian man? Interesting that you know these things. |
| Sat 18 Oct | rz | to encourage debate, when you say that "this is not even close to the definition of darwinism", perhaps you could post what you think the definition of darwinism is. |
| Sat 18 Oct | Christopher Wells | I think darwinism is the theory that 'natural selection' or 'survival of the fittest' is (together with microevolution, small differences between offsrping and their parents) the mechanism or cause that results in or that drives evolution.
There could be other theories of evolution, other attempts to explain why species evolve as they do. |
| Sat 18 Oct | The Real PC | [Not even a Christian man]
There is enough evidence for evolution. Anyone who stubbornly insists that the creation myth of a particular religion is scientifically (not metaphorically) true has no scientific awareness. There is no way to have a rational scientific discussion with that kind of person, usually referred to as a 'creationist.' |
| Sat 18 Oct | The Real PC | There have been many attempts to explain why evolution occurs, none of them conclusive.
Darwin's theory says that genetic mutations can give some organisms advantages over others in their particular ecological niche, so that some generate more offspring than others. Organisms that have the advantage in their niche increase in numbers, while those at a disadvantage decrease. This process, occurring over long periods of time, gradually results in increasing 'fitness' or organisms. For a simple example: an animal is born with a mutation (which occurred because of some random error) that makes it a little smarter than the others in its group. Because it's smarter it eats more, is stronger, impregnates more females, leaves more offspring. Its DNA is passed on to more individuals than the DNA of the less intelligent group members.
That is just a simple summary of Darwin's theory, and lots of elaborations and complications have been added over the years. |
| Sat 18 Oct | Stephen Jones | It is a question of differential rates of reproduction.
It occurs on the level of the gene; the individual is the vehicle, and the species is an almost irrelevent by-product.
As long as the individual self-replicating unit can reproduce more successfully than its competition it will do so.
So you will see behaviour that goes against the good of the species because it works for the individual (the most likely reason for humans increasing brain power is not an increase in hunting which can be done effectively by animals as dumb as the shark or the crocodile, but to pull a fast one on your fellow humans) and behaviour that goes against the good of the individual because the self-replicating parts of it couldn't care less (one expample is junk DNA which is a waste of resoureces but succeeds marvelloulsy in reproductin itself). |
| Sat 18 Oct | Christopher Wells | > but to pull a fast one on your fellow humans
I like to think that more intelligence => better cooperation, not better exploitation.
Intelligence does seem to be associated with social animals (humans, apes, cetaceans, dogs); I saw an interesting TV program once about a young female gorilla, who had advanced social skills because she'd been raised in a large group: she went to join a much smaller group (just one male and two females) with less well-developed skills, and used her skills to make friends with the ones she was joining. |
| Sat 18 Oct | Stephen Jones | ---'I like to think that more intelligence => better cooperation, not better exploitation.'----
That's just what they want you to think! That you're co-operating, not being exploited.
What I am actually pointing out is that in the last ten to fifteen years there has been much more emphasis put on competition withint the species in order to explain certain traits. There are plenty of traits, the peacock's tail being the famous example, which are 'bad' as far as the species is concerned, but continua and even increase. because they give advantage to the individual.
And it is now becoming clear that the same thing happens with individual genes competing against each other in the same individual. |
| Sat 18 Oct | Alyosha` | Oh wow, an entire topic devoted to ME!
You're right, The Real PC - I misspoke: the definition I gave you is that of evolution, not necessarily that of Darwinian evolution. Darwinian evolution has some added bits about this modification occuring via natural causes, mutation / natural selection.
Thanks for the correction. |
| Sat 18 Oct | The Real PC | Well now you're famous on JOS.
The whole point of Darwinism, and now neo-Darwinism, is to claim that the amazingly complex life forms on our planet could have evolved solely as a result of errors (genetic mutations not caused by any purposeful agent) plus natural selection. Natural selection is a mechanism which necessarily exists. That is, there is no way to claim there is no such thing as natural selection. It is a mechanism that operates without goals or purpose. So the combination of two purposeless, meaningless forces -- genetic errors and selection -- can give rise to complex organisms that appear as if they were designed by an intelligent agent for some purpose.
Darwinism is the very foundation of modern materialism and atheism. It has not been proven or disproven, but there has many fervent adherents (Dawkins, for example). |
| Sat 18 Oct | The Real PC | "but has many fervent" |
| Sat 18 Oct | Stephen Jones | ----'Darwinism is the very foundation of modern materialism and atheism.'-----
Err, I do seem to remember both materialism and atheism being around about 2,500 years ago.
But then attentiot to detail has never been your strongpoint.
Incidentally the Copernican view of the universie hasn't been proven either if we accept your standards of proof - it's just that the old ideas of the spheres got dropped when they started to need a few hundred of them to explain observed phenomena.
Still a hell of a lot less than the millions of separate creations that the creationism/Intelligent design you are so enamored off calls for. |
| Sat 18 Oct | Stephen Jones | --' can give rise to complex organisms that appear as if they were designed by an intelligent agent for some purpose.'----
Only to the gullible and credulous such as yourself!
Hamlet, Rsoencrantz and Guildenstern and clouds spring to mind here. |
| Sat 18 Oct | www.marktaw.com | > Because it's smarter it eats more, is stronger, impregnates more females, leaves more offspring. <
Now where was that programmers as rock stars thread? It seems to me now that 'impregnates more females' or even 'impregnantes the same female many times' in this day and age amongst human beings has less to do with intelligence than with physical appearance, propensity to drink, shall we call them morals, a desire to have sex without protection, etc. I've heard that the more successful you are, the less likely you are to have many children.
Could the next evolutionary step for mankind be Autism? (q.v. the proper thread) |
| Sat 18 Oct | z | 'Darwinism is the very foundation of modern materialism and atheism.'
You'd have to ask a modern materialist or atheist about that. It is a somewhat different issue from the one of determining if Darwinism is a useful scientific theory. It is true that some people will let their religion or personal philosophy or even politics determine which scientific theories they'll believe rather than considering the scientific evidence.
'It has not been proven or disproven, '
Mathematical theories can be proven or disproven. Scientific theories can never be proven. They are useful to the extent that they explain observed phenomena. They gain acceptance as supporting evidence accumulates. They can be disproven, or falsified. If they couldn't, they would be meaningless. |
| Sat 18 Oct | z | 'I do seem to remember both materialism and atheism being around about 2,500 years ago.'
He did say he was talking about 'modern' materialism and atheism.
I don't have any good idea how the modern version might differ from the ancient. |
| Sat 18 Oct | Alyosha` | Actually I think the real seeds of materialism and atheism go back all the way to Newton, who, even as a Christian, proposed that the universe obeys fixed, regular, immutable laws. Ideas like evolution naturally followed from that.
I suppose evolution is an 'enabling' theory for atheism much in the same way that the electrical theory of lightning, the germ theory of disease, and the explanation of earthquakes via plate tectonics removed these phenomena from the divine realm.
I think even the theory of Intelligent Design is a huge move towards atheism from the earlier status quo, in that Paley's Great Watchmaker has become more of a Cosmic Tinkerer. Instead of creating the world in seven days, God's been relegated to the minor duty of tweaking DNA fragments once every couple million years. |
| Sat 18 Oct | no name | And you thought exceptions would cause a religious debate! |
| Sat 18 Oct | Roger Townsend | I believe in microevolution, as did my hunting and gathering ancestors who domesticated dogs and goats tens of thousands of years ago.
I've never seen any compelling evidence of macroevolution though. It's never been observed, to my knowledge. From time to time someone claims they've seen it or done it, but no one is ever able to corraborate or replicate such claims, which makes them incredulous.
I liked Darwin's hypothesis of gradualism and feel it was a very reasonable hypothesis he made at the time, in light of the exciting advances at the time in naturalism and paleontology, but gradualism/darwinism has been conclusively disproven because no evidence whatsoever of it has ever been found. This leaves punctuated equilibrium coupled with alternate realities/infinite universes to account for the statistical problems as the leading hypothesis, which seems to come from the realm of science fiction and is conveniently unfalsifiable, which puts it in the realm of metaphysics, which is ok if you like that sort of thing but should be distinguished from science based on the scientific method, which requires evidence and repeatable results.
So since I don't 'believe' in evolution, that makes me a scientifically ignorant person with no understanding of biology, according to certain posters. I'd say that my doctorate says otherwise and point the finger at my accusers as scientifically shallow proponents of ad-hominism. |
| Sun 19 Oct | S.C. | Roger Townsend:
Please write down your thesis against evolution and send it to any peer-previewed journal. If you think there are already some (on any peer-previewed journal), please show us the references.
Thank you. |
| Sun 19 Oct | www.marktaw.com | I thought part of the supernatural / non-evolution argument was a sort of ad hominem attack on the peer review system itself.
I also think the evolution / darwin argument is a sort of ad homimem attack on the qualifications and methods of the supernatural / non-evolution sect. |
| Sun 19 Oct | Alyosha` | Macroevolution has never been clearly defined. I think the boundry between what people call 'microevolution' and 'macroevolution' is arbitrary and unproven. So I can't tell you if we've managed to see it in the lab or not: define the term in a testable manner, first.
Like I said in the other thread, there's roughly similar differences in intelligence between an Afghan and a German Shepherd, and more difference in physiology between a chihuahua and a Great Dane, than there is between humans and chimps. But somehow folks have more a problem with believing that unassisted natural evolution can produce one but not the other.
The whole gradualism / punk eek debate is a tempest in a teacup. Look at the massive changes in the canine species over the past few hundred thousand years, and we call that 'microevolution'. In archaeological terms, a few hundred thousand years is a blink of an eye.
When folks say they find the accumulation of microevolutions implausible, and yet some invisible, undetected Cosmic Tinkerer somehow *doesn't* come from the realm of science fiction and *isn't* conveniently unfalsifiable, well, I really do start wondering what their standards of plausibility are. |
| Sun 19 Oct | Troy King | I thought science said spontaneous generation isn't true. But isn't that what evolution claims happened early on? That some cells instantly "became alive" and began to reproduce? |
| Sun 19 Oct | Simon Lucy | Evolution didn't begin with cells, it began with the big bang.
Someone might take the view that the subsequent collision of carbon molecules and the rest of the ingredients that formed amino acids was a absolute necessary result and so use that as a deterministic theory of God as first impulse.
Not that I do. |
| Sun 19 Oct | The Real PC | [the millions of separate creations that the
creationism/Intelligent design you are so enamored off calls for.]
Stephen,
I'm not enamored of ID, and I'm not a fanatic for any theory. I'm interested in understanding things better.
But ID does not call for millions of separate creations. As far as I understand it, it doesn't specify any particular dogma, just says there is a creative principle at work in the universe. I don't see any problem with that idea and it certainly helps in making sense out of evolution.
Only to the gullible and credulous such as yourself!
I can always tell I'm talking to a fanatic when they prefer insults to logic. |
| Sun 19 Oct | The Real PC | [Mathematical theories can be proven or disproven. Scientific theories can never be proven.]
If you don't like the word 'proven,' substitute 'demonstrated.'
The theory of relativity has been demonstrated. Many theories have been supported by experiments, to the point that there is no reason to doubt them.
Science is never complete -- another theory will come along eventually that explains more than relativity does, but that would not make relativity invalid.
Anyway, evolution has been proven, or demonstrated, in the sense that there are mountains of evidence for it.
Darwin's theory, on the other hand, doesn't have any evidence behind it. It is pure speculation. The ultimate argument of the Darwinists is that it must have happened this way, because there are no other possibilities. |
| Sun 19 Oct | The Real PC | Complexity theory says that natural systems evolve in the direction of greater complexity. It doesn't explain why this happens.
We accept the existence of the law of gravity, even though no one understands what gravity is. I accept that there is, probably, a law of complexity. |
| Sun 19 Oct | Dave Hallett | 'This leaves punctuated equilibrium coupled with alternate realities/infinite universes to account for the statistical problems as the leading hypothesis...'
Jaysus. What was the subject matter of your doctorate? 'Aeronautic design considerations in the Suidae'?
And where did this coupling of punctuated equilibria (note plural) to *alternate realities* come from. New to me, to put it mildly. |
| Sun 19 Oct | Stephen Jones | 'Micro and macro evolution' are terms invented by creationists to postulate a distinction where non exists.
If the Real PC thinks the present state of creation suggests a clear purpose perhaps he could expound. I can see no evidence whatsoever for any purpose in life and certainly don't see how the state of design of living things remotely suggests one.
Nor does the 'design' of living things suggest an intelligent designer. Gould made this point most forcibly in his essay 'The Panda's thumb'; the Panda appears to have an extra digit - which is used for holding bamboo canes - but in fact the extra digit is an extension of cartilage. Any intelligent designer would have given it a proper digit; the fact that it doesn't have one is evidence for it having evolved as an adaption from an existing schema.
The 'Intelligent designer' behind the design of most living beings looks rather like some stroppy unionized 1970's factory worker determined to get the job done as quicly as possible with any old rubbish that lies to hand, and damm quality control or the consequences. Just look at the orifices you've got to stick it into to have sex for crying out loud!
The 'punctuated equilibria/gradualism', is another false dichotomy that those who don't understand, or don't wish to understand Darwinism, keep using as if the arguments about waterfall versus XP project management or procedural versus object oriented programming mean we should all go back to using a pencil and paper.
The 'extremely speedy' evolution that punctuated equilibrium suggests is actually still considered in hundreds of thousands of years, which is a blink of an eye in geological time. More importantly no proponent of either theory dienies the existence of the other; it is simply a question of the relative preponderance of the two. Gradualism has not been in the least discredited.; it is simply that it is now accepted that rapid ecological change will bring about an increase in the rate of evolution.
Finally can all the people who claim that Darwinism has been disproved or is 'incredulous' or has not been demonstated be kind enough to tell us exactly what they are referring to.
The whole of biological research since Darwin's time has served to bolster his theory. In DNA and RNA we have the mechanism by which evolution works, we have seen how small changes to one gene or chromosone can have great effects on the organism, we have also seen how many genetic changes can be 'good' or 'bad' according to the environment (consider the gen for sickle-cell anaemia which is only an adaptieve trait in areas with a very high prevalence malaria) of so that it is clear how an environmental change can cause the genetic makeup of a species to alter rapidly, and we have known since Haldane's famous napkin calculation about how many first or second cousins he was prepared to give up his life for, that even 'altruisitc' behaviour can fit within Darwinian tenets..
And finally what are all these doubters suggesting is going to take the place of Darwinism? At least the fundys have a nice clear answer to that one, but all Real PC seems able to do is throw around a few buzzwords like 'ID', 'Mind over Matter', 'Quantum Psychology', and think that the carefully collected evidence of hundreds of thousands of scientists should give way, rather like a pointy-haired boss thinks he can override the painstaking calcualtions of all his engineers by spouting the various acronyms he read in an article in the doctor's waiting room. |
| Sun 19 Oct | Dave Hallett | Real PC,
As an aside, this is why I said I think you'd like Ken Wilber. He takes a much broader view of what evolution is, both in material, cultural, psychological spiritual and other senses. At least, his later books do. Don't start with the early ones, because he argues against them later! And some of his work is too long and scholarly for me. 'A Brief History of Everything' is probably the best place to start.
His views on matters such as Darwinism are nearer to yours than to mine, so I'm not trying to sell you propaganda here. He *is* an interesting guy, however. |
| Sun 19 Oct | Dave Hallett | Alyosha,
I'm not sure Newton is a good fit for the father of Materialism. He was in many ways a mystical thinker - the idea of gravity, for example, remains quite mystical to this day, despite our attempts to turn it into something a tad more mechanistic. He was also an active alchemist, and took a keen interest in astrology. Some people seem to want to paint him as a modern scientist, but I don't think that's a good idea. He was a 200% genius, however! |
| Sun 19 Oct | Alyosha` | Troy: folks discovered in the 17th and 18th centuries that complex life forms don't self-organize in a matter of weeks like previously thought ... the emergence of flies and maggots in a piece of meat did not happen if the material was sealed off from the outside; thus they must have come from invisible eggs laid there by other flies and maggots.
This experiment really has nothing to say with the initial origin of life, which may have been a process millions of years in length. We know very little about abiogenesis at right now, but natural causes have not been ruled out at this point, either.
* * *
Dave: don't forget also that as a Christian, Newton had a heavy interest in theology as well; he wrote more on that subject than anything else. Newton HIMSELF wasn't much of a materialist, but his IDEA was the seed that lead others to inquire if other phenomena besides gravity could be explained according to fixed, immutable, inviolable laws. |
| Sun 19 Oct | Stephen Jones | The origin of the first self-replicating molecule is no longer the subject of scientific debate, basically because scientists have found that it is rather more complicated than they first thought when they postulated eletric storms zapping through the primeval soup.
In fact it has been suggested that the odds of it happening at all were extremely unlikely, and that because of this we are probably alone in the universe, although the possibility of self-replicating molecules, whether of earthly or extra-terrestrial origin floating around the universe cannot be discounted.
The fact remains however that we are here, so all the possibilities of life not having come into existence are simple fantasy.
Now you could argue that the odds against a self-replicating molecule coming into existence on its own are so great that you need to postulate some kind of deus ex machina - frankly I can't see how it would make the slightest bit of difference, and am more inclined to consider a lucky turn of events more likely than the intervention of a needless extra actor.
Once you have one self-replicating molecule then everything else can be explained comfortably by simple mathematics. In fact its the stunning simplicity of the math that seems to mean that there are people who just don't get it, somewhat as someone said on an earlier thread there are people who don't get pointers.
Incidentally, last time I looked into it, the smart money for the oriigin of life was going into crystals formed on mud flats. |
| Sun 19 Oct | The Real PC | [there are people who just don't get it]
No, you can't say that Behe just doesn't get it. He knows a whole lot more about it than you or I do. |
| Sun 19 Oct | The Real PC | Dave,
Thanks. I know about Ken Wilber and read some of his web site, and part of his Theory of Everything. His ideas seem to be based on systems theory, as are mine. I wasn't getting anything new from reading his book so I stopped. He also seemed too egotistical, as if he had thought of it all first. Holistic philosophy and systems theory have been around for quite a while.
But you're right, my thinking is more or less along those lines. I became interested in systems theory years ago and then found out it has a long history, and is tied in with many other philosophical perspectives. |
| Sun 19 Oct | The Real PC | [And finally what are all these doubters suggesting is going to take the place of Darwinism? At least the fundys have a nice clear answer to that]
Let's say we had nothing to take the place of Darwinism -- should we cling to it just because it's a nice clear answer? Or should we keep an open mind and look out for a better idea?
What about the idea that there is a creative principle at work in the universe? It's no more vague or mysterious than the law of gravity.
[carefully collected evidence of hundreds of thousands of scientists]
No, Stephen, no real evidence for Darwinism has been collected. People insist on confusing evolution and Darwinism -- evolution certainly occurs, but no can say with any certainty how or why it occurs. |
| Sun 19 Oct | Alyosha` | 'What about the idea that there is a creative principle at work in the universe? It's no more vague or mysterious than the law of gravity'.
I disagree. It is much more vague and much more mysterious than the law of gravity.
Gravity is measurable. It's everywhere. It follows a well-known inverse proportion: F = Gm1m2 / r^2. Simple, neat, and tidy.
But a 'creative principle'? This is a ghost that works with invisible hands and thinks with an invisible brain. That's completely at odds with everything I've ever seen or experienced in my lifetime. You can't measure it, you can't repeat it, and if it's responsible for evolution, then it only shows up every once in a few million years or so.
Humans are complex creatures. It goes to reason that any creative agent capable of creating a human must be more complicated than any human. If our measily intelligence demands an explanation, how much more so does this 'creative principle'? Positing a 'creative principle' doesn't solve the problem of intelligence, it only makes it worse.
Naturalism escapes this escalating chain of explanations by positing that complexity can arise from the simple, regular, repeatable rules of chemical interaction. |
|
| Beta Testers Wanted for Lingo-Uber-Cola-Code | Sat 18 Oct | Bill Rayer |
|
Dear Forum
As you may know Im working on a high level programming language, which is near completion. I want more testers to find bugs or offer feedback. Anyone experienced with different languages, or interested in language issues is welcome.
Features include (1) compilable pre and post conditions (2) nestable high level data types (3) no aliasing (4) uses existing RC files for dialog layouts. The beta is at http://www.lingolanguage.com/downloads.html - theres no registration or similar annoyances.
PS: As discussed previously, the language may be called Lingo, Cola, Ubercode or something similar. I know about 4 other versions of Lingo in existance (Linn Micro, Lingo Allegro lisp, Macromedia, and a Matrix package language). If I do use Lingo, Ill rename it in countries (eg USA) where trade marks are in force. |
| Sun 19 Oct | Andrew Cherry | Beta testing aside, are you seriously thinking of having a language which is called lingo in some countries, and not in others? Forgive me if i've missed the fact that you're joking, but... Also, from having a glance at your product both now and a few times in the past, the thing which is going to put people off is not semantic/syntactic issues with your language, but IDE design! (Mentioned before I know...) |
|
| What do coders do?? | Sat 18 Oct | Aussie Chick |
| Okay, I am applying for a coding job.
FYI I live in a small town, (80k people) to my knowledge their are only 3 firms that hire coders, two are clients for the accounting firm I work for, the other is a regional bank.
The regional bank has a job come available. This is exciting, the downside is that they had a job available 6 months ago, I applied, was interviewed and knocked back.
It was a horrible interview, I havent been to an interview where I am compared to other candidates. I have worked at McDonalds (the manager knew my mum and the interview was a formality) I worked for accountant number1 (someone I knew told me she had left, so I went straight around knocked on the door and they said start Thurs), and my current job, well I sent my resume to an acct headhunter firm, got me a sunday interview, and the partner got on well with me (see he did not have to compare me to other candidates).
But this bank coding job, I was not at all prepared for the questions.
ie
What do you think you will be doing?
I had no idea.
Tell me about good team work experience?
...I am sure you know.
I couldnt think. and in alot of case I had no good answers.
ie I realise that I am not a team player. I always think I am smarter...But it is something that I have worked on. so good did come out of iT.
But the question what do you think you will be doing
well I have no idea what a day in the life of a coderis.
What do you do?
I am guessing some coding, a fair bit of debugging, some meetings, do you spend hours poring over textbooks, asking questions online, do you collaborate much with colleagues over problems, do you talk about startrek?
I would love an insight. |
| Sat 18 Oct | Bill Rayer | I'm no interview expert but asking 'What do you think you will be doing' is a stupid question on the bank's part (it wasn't NAB was it!?). How can you be expected to form a reliable opinion on your duties before working there?
Your guess is pretty accurate. It also depends on the style of the company. Eg some places may view you as goofing off if you read textbooks at work, so you may need to do this at home, or print out documentation or read from the screen. Some may want you to ask questions, others may not like it and expect you to find things out yourself. I had one job in Perth where the IT 'manager' forbade me to speak to the accounting dept, because he didn't want to show up the ignorance in 'his' department. You have to find out what colleagues and managers expect to happen, and follow this. |
| Sat 18 Oct | son of parnas | That kind of question is an opening for you to
control the interview. Say something like:
That would depend a lot on your company. Could
you tell me more about what you do and what
you are looking for?
Find out what they want and craft your answers
accordingly. Remember, most people don't like
interviewing and just want someone to be a clear
enough winner that they don't have to argue
about who to pick. |
| Sat 18 Oct | Clay Dowling | First, don't ask them 'what do you do?' You should research the firm before going in to the interview. Know what their major line of business is. Try to learn a little bit about that interview. You probably won't be able to learn enough to converse intelligently about it with them, but you will be showing that you care enough to investigate.
As for what a coder does all day, that depends on the day. It's not the kind of profession where you're doing the same thing day in and day out. You'll have days that you spend writing new code. You'll have days you spend debugging that code. And you'll have days that you spend dealing with problems that the customer is having that may not be in any way code related. If you're lucky, you'll have customers who you do custom work for, and you'll get to spend some time learning their business so that you can adapt your software to their specific needs.
You'll also have days wasted in meetings. It seems to be unavoidable, since all time in a meeting is time that you could have spent doing something productive. Unfortunately, they're a necessity for exchanging information, no matter how ineffective they seem to be. Also, the auditors get pissy if you can't justify the expense of the big meeting room for something besides a place to take lunch. |
| Sat 18 Oct | Bored Bystander | Respectfully, Aussie Chick - are you prepared for a day to day life of coding? That was the first thing that occurred to me when I read your post.
But, your suppositions on a day in the life are pretty much correct. Usually, a programmer in most companies is given 'tasks' such as - develop this app to do bla bla; or, fix the problem where bla bla when the user does yatta.
Based on the info you provided, the kinds of organizations that you are contacting about programming jobs sound more like 'end users' than experienced programming and IT organizations. That's not bad in itself but it indicates strongly that whomever they hire will have to provide their own structure for the duties of the job itself, in addition to dealing with whatever 'management' that the organization wants to impose. It may be a PITA, in other words.
So if you're unclear what a working programmer does in order to get their job done, this may not be a good fit even if you do get in. Most end users make one fight pretty hard just to do the work that needs doing. So if you are expecting to learn on the job, it may not be a good match.
Or, I'm misreading your question or concerns and the interviewers are simply blindsiding you with uninformed questions based on their own lack of process.
W/o being there it's hard to know. |
| Sat 18 Oct | Training to be a plumber | You would have to be stupid to accept a development job with a bank now. Not as staff anyway. Only do it on fixed term contract with forced payout to end of term. |
| Sat 18 Oct | Christopher Wells | > What do you do? I am guessing some coding, a fair bit of debugging, some meetings, do you spend hours poring over textbooks, asking questions online, do you collaborate much with colleagues over problems, do you talk about startrek.
Coding is part of it (maybe 'coders' *only* code, but I'm a software developer involved in more parts of the software develoment lifecycle than just coding).
For me it begins with specifications: saying what the software is supposed to do. This means getting to know the functionality of the system that my new code will interact with (may be a business system, computer operating system, peripheral), and the users' requirements.
After the specification, the design: the architecture of the software to be written, its major components and the inter-component protocols.
Somewhere in there, writing the development schedule: how many people doing what for how long.
Writing the test plan: the list of test cases which will test whether the software is behaving to spec.
Then the coding; actually the smallest part of the job (I'm currently doing about 3 weeks of coding on a 3 month project).
Debugging: hopefully not too much of this, more time spent setting up and running (successful) test cases than in debugging unsuccessful test cases; now that I'm more experienced I prefer to 'abug' than to 'debug', i.e. I prefer to not write bugs in the first place, and failing that to write code in which bugs are easy to find.
Delivery: handing it (code, specs, test cases) over to QA for testing and/or to the customer for acceptance testing, and perhaps talking with sales people who are going to sell it.
I collaborate in the sense that I need to get requirements from someone when I write specs; I may need to get managers to agree to my schedule, and (if I'm not the architect myself) perhaps an 'architect' to agree to my 'design'; if anyone else is coding with me, I need to explain what I expect from them, and inspect what they deliver; and I may need to hire people occasionally, or to be hired. |
| Sat 18 Oct | rz | as far as i can tell, coders do the following:
whine, spend up to 8 hours a day surfing the web, often whilst simultaneously using an internet chat program, watch japanese cartoons, play video games, and drink lots of soda. |
| Sat 18 Oct | www.marktaw.com | One interview book I read said you should prepare a sales pitch that emphasizes 6 to 7 points, and develop things to say around it. Whenever you're asked a question then, it's an opportunity for you to discuss in depth these points, or give an overview of these points. 'Tell me about yourself' would be time to give an overview. 'Tell me about a time you disagreed with your boss, and how did you handle it' might be an opportunity to go into depth about one of those points.
These open ended questions are more likely designed to rattle you and see if you crack under pressure, so to speak, than to actually get answers from you. Think from the point of view of the interviewer. Does he really care what you think you'll be doing, or does he care if you can get the job done, will get the job done, and will be a good fit for the company?
With 6-7 talking points, every open ended question is an opportunity to sell yourself, and remind whoever is interviewing you that you are:
intelligent, competent, experienced, work well on teams, follows through, and lives to code. |
| Sat 18 Oct | Aussie Chick | bored bystander:
>Respectfully, Aussie Chick - are you prepared for a day to day life of coding? That was the first thing that occurred to me when I read your post.
What makes you say this?
I am seriously curious because the answer is no. 'When someone asks me what I do, I want to say 'I create solutions', and computer programming is just my medium. I love solving things, my manager told me the other day that noone else in the firm can lateral think the way I do (they are all accountants) she said I have a talent for 'taking a mess and turning it into something organised and efficient', she summed it up nicely, that is exactly what I love doing. I love watching a process and saying 'hey I could create something to make that faster, more efficient, more error free'. It is nice to be recognised, but she knows that I am not going to stay with them forever (as I said, they are accountants, and I spend half my time binding reports and typing letters for them), she was cool and chatted for a while about ideas for how I could take my talents to other accounting/legal firms and make a business of it.
But I still have some more learning before I take that step. So in the mean time what do I do?
I would like the chance to become a more proficient coder, see what the software development process involves from some people with more experience then me, and working with 10 other codes at a regional bank sounds like a good opportunity.
The question, do I really want to do this? No, I would rather be in my study putting into action ideas and having that kind of autonomy.
But, you have to crawl before you can walk, and I need some confidence, I need to spend a year coding and realise 'hey I am as good as those guys'. |
| Sun 19 Oct | Guy Incognito | Why not try to get a show on television about crocodiles? |
| Sun 19 Oct | Aussie Chick | What the? |
| Sun 19 Oct | Bored Bystander | Aussie Chick, I see where you are 'going' with this idea. I think your goals are excellent. However, marktaw called it right - I am infinitely suspicious of employers who throw the open ended type question into the interview as a 'stress test' and that's how I read this. Asking what a developer 'does in general' - as though you're supposed to develop your own job description - is ka-ka.
A developer gathers functional requirements, writes software from thos requirements, and does what it takes to make that software work. And the term 'coder' connotes to me a narrow niche that doesn't even exist anymore. Every company and organization will have its own unique and idiosyncratic idea about the burden of meetings, documentation, end user interviews, and development model. So asking 'what a coder does' is almost meaningless.
Also, I am uncertain whether you're going to get a representative idea of the life of a developer from a bank. End-user employers can be the most abusive and clueless and can throw up all kinds of obstacles to doing 'real' work in your speciality, and the politics of dealing with management that doesn't understand code can be a big distraction from your goal of learning how to be a proficient developer.
Your comment about the local area not supporting SW development hits home, too. I am in the same boat. That's why I am looking to get out of SW. Can't make a living doing something that there is no market for. And that alone should give you pause, unless your ultimate goal is to develop your own product. |
| Sun 19 Oct | Aussie Chick | thanks for your comments.
You have really explained it well.
You are right, unless I plan on developing my own produtc/service there is no market for my skills in this small city.
The thing is ultimately I would love nothing more then to work for myself. Solving problems with little applications is what really appeals to me. It is scary though.
There are so many possibilites I do not know what to do.
But in any event that is another topic, one which I would love to talk about. However your comments have been helpful, and if I do apply for this job, which I probably will, then I will be able to go in more confidently and say 'that is an unfair question'... |
|
| How to remotely shut down app on another computer? | Sat 18 Oct | Entrepreneur |
| Hi,
Im trying to figure out an easy way to shut down an app on another computer, across our LAN.
(So, Computer A might have a program called Kill Program on Computer B.)
I could write this in VB 6 (or possibly Delphi 6).
Or is there perhaps a program out there for doing this sort of thing.
----WHY? You may ask.----
Im sharing a file that only one person at a time will use (its Treepad (from treepad.com)). But, I jump back and forth between computer A and B all day long and Ill forget to shut down the app on the computer when I leave it. So, Id like to just click a button to shut it down remotely so I can open it locally).
(BTW, I know theres a networked version of Treepad but its 10x the cost AND it doesnt have multi-term (boolean) search, which is a critical feature).
BTW, if anyone knows a good networked (multiuser) alternative to Treepad, Id be interested in that too). Ive looked at MyBases multiuser version but its still a bit rough around the edges. |
| Sat 18 Oct | Damian | What about just running VNC on each machine ? Then you can remote control the desktop and shut it down. |
| Sat 18 Oct | Sathyaish Chakravarthy | Use the InitiateSystemShutdown API. This API let's you shut down a computer on the LAN. But you must have the rights to do that. I've used it for a long time now and it works under normal user rights also. Just that the right to shut down another computer must not be barred for your user and this API will work. |
| Sat 18 Oct | Herbert Sitz | If something like the VNC solution sounds good, but for some reason you need a custom program that will do it, you might want to check out these remote components that are written for Delphi:
http://www.deltasoft.hr/remote/ |
| Sat 18 Oct | Joel Spolsky | http://www.sysinternals.com/ntw2k/freeware/pskill.shtml
'Windows NT/2000 does not come with a command-line 'kill' utility. You can get one in the Windows NT or Win2K Resource Kit, but the kit's utility can only terminate processes on the local computer. PsKill is a kill utility that not only does what the Resource Kit's version does, but can also kill processes on remote systems. You don't even have to install a client on the target computer to use PsKill to terminate a remote process.' |
| Sat 18 Oct | rz | can't you just use a remote desktop connection? |
| Sat 18 Oct | Peter Ibbotson | If you have a look at some of the stuff in the NT resource kit you'll see some VBScripts that do this kind of stuff.
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/scriptcenter/process/ScrPcs08.asp
shows how to shutdown local processes
I think this only works for NT, we've used this stuff to close down games on sales folks PC remotely (for joke purposes).
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/scriptcenter/process/ScrPcs08.asp
shows how to start up REMOTE processes |
| Sat 18 Oct | Peter Ibbotson | Nuts.. I missed the fact that url is the same, anyway the remote example is a few up on the treeview |
| Sun 19 Oct | DanG | pskill is what you want. seriously. nothing else necessary |
| Sun 19 Oct | Sathyaish Chakravarthy | I realize I miscalculated your problem. Didn't read through it closely enough. |
|
| When was the last time you ran out of memory? | Fri 17 Oct | Grumpy Old-Timer |
| This comment from another post got me thinking:
Crashing when malloc fails is sophomore stuff. If you are creating commercial software that crashes the first time memory runs out, you dont know what you are doing. Time to move out of high school and start writing software that works rather than hacking together half-baked software that crashes, taking the users work with it for dumb reasons.
In 20 years of C, Java, and C++ programming for Windows, I cant remember malloc( ) or new failing because I was out of memory. This has led me to the attitude that if Im out of memory, all hell must have broken loose on the machine, so whatever courageous recovery I attempt is (a) probably worthless, and (b) certainly doomed to failure.
FWIW, Im the most anal programmer Ive ever met when it comes to error checking - I check everything (except printfs return, of course). But running out of memory has just never bitten me, and with each passing year, it seems less likely to bite me.
Anyone else think this way? Or am I just a lazy, ignorant, motherless, half-baked, malodorous, pimply, degenerate programmer? (Thought Id beat the quoted poster to the punch.) |
| Fri 17 Oct | Nat Ersoz | We specifically test our application against low-memory conditions. Embedded software is always trying to reduce its footprint. In Linux, you can specify a max memory size in the lilo.conf file - the usefulness is that you can say, 'well, the box has 32MB or RAM, but let's run it with 16MB'. This usually after an attempt at size reduction in the code base. No hard drive, so no swap.
So, while on the desktop there is always more room available, its not so in an appliance (lke a cell phone). |
| Fri 17 Oct | Chris Tavares | Look in the TCL codebase. This is probably the granddaddy of the modern embeddable scripting language, and has been around for at least a decade and is well respected.
There's no out-of-memory checking in there anywhere. And TCL allocates memory all over the place.
Nobody I know of has ever complained about it. |
| Fri 17 Oct | Alyosha` | In the embedded space, memory allocation failing is a concern. Not so much on the desktop, where one could allocate a near-infinite amount of memory.
And if you run out of THAT much memory, perhaps it would be wiser to revisit your architecture ...
I would only worry about it in the case that the memory use of your application is unbounded (e.g., there are no limits to the size of an image, video clip, or document that could be opened at one time, and you don't have a fixed-size cache). |
| Fri 17 Oct | pavel | Memory fragmentation can cause out-of-memory condition. It happened more than once to me.
Long-running applications usually need to handle failed allocations to cleanup resources and shut down correctly. |
| Fri 17 Oct | Andrew Hurst | Ever since I started running on my Dual G5 with 4GB of ram, I haven't ran out of memory once :D
So far, one week up and no problems... |
| Fri 17 Oct | snotnose | I ran out of memory a few hours ago, when I forgot the Parmesian cheese at the store. Bummer.
Another good reason to check malloc's return code is bug checking. Even if you aren't allocating a gig for your contact entry, how do you know the guy in the next cube over didn't?
Then again, I'm an embedded guy. Memory is limited, and you have to work around running out. |
| Fri 17 Oct | Dan Shappir | I once used some C++ compiler on Windows and wasn't sure if it returned NULL or generated an exception when operator new failed, so I wrote a test.
I don't remember the result of the test, but I do remember that I had to restart Windows afterwards. And system shutdown took a very long time.
So the only time you should consider testing for failed malloc/new is if you are trying to allocate a single, *very* large block of memory. If that fails you could try a different strategy or release some resources. If a normal allocation fails, well, you are screwed whatever you do. |
| Fri 17 Oct | christopher baus (tahoe, nv) | This is pet peeve of mine...
All beginning C++ books say, be prepared to handle a failed new, because it might happen at any time, but they never say what the heck you are supposed to do in that situation.
Unrestricted memory allocation is a huge reason why windows nearly always blows apart in low memory situations.
I work on a rather large windows app. The user can have an unlimited number of pages in a workbook, but at some point the system is going to run out of memory, and there isn't much we can do to save the user from expending doom.
Go to the 'save all files' routine and hope for the best I guess.
On a server you have to make sure you know how big your workbooks will be and allocate all that memory up front, otherwise you are just asking for a denial of service attack. The hacker will think, 'hmm, what if I open a million page workbook,' or a million sessions in server speak? Say Buh bye.
One little know fact, using the default settings in Visual C++ it is nearly as likely that calling a function will fail as calling new. Don't believe me? Read the discussion of the stack implementation is Richter's Advanced Windows.
On the exception topic. I've put a lot of thought on the topic in the past couple days, and strangely I'm starting to agree with Joel on this one. |
| Fri 17 Oct | Alyosha` | Christopher: that's why I say if you have the possibility of opening a million-page workbook, that you should reconsider your architecture ...
E.g., only open a few pages at a time, for example. |
| Fri 17 Oct | christopher baus (tahoe, nv) | I would agree, but as one wise manager of mine once said..
'It is what it is'
The truth of the matter is even a 'few page' workbook could be too big, depending on how many other things the user has going on, or how much RAM is installed.
We'd have to alloc all the memory for the those few pages up front, and refuse to create or open the workbook when that operation failed. That would be the wise thing to do, but...
..that means finding all the allocations and summing the amount of memory each one uses, allocate that up front, then use in place new to allocate from that buffer, or telling something like smart heap to secure that amount of memory.
Anyone doing that? It certainly isn't CS 101. |
| Fri 17 Oct | Mister Fancypants | 'Go to the 'save all files' routine and hope for the best I guess.'
Holy crap that's a bad idea! I hope you mean 'save backups of files that users can attempt to manually restore later' routine and not the standard 'save all files' routine.
I'd much rather have my files as they were last time I saved them than have whatever results from attempting to save them when the system has no memory left to give. What if the file writing routine in the OS needs a bit more memory after saving 10% of the file over the last version? Egads! Also, if you're that worried about the user losing work I think it makes a lot more sense to do background autosaving on a timed schedule and just give the user the option of restoring the last successful autosave if the program is closed in any unexpected way... So in that case you really don't want to do anything if malloc fails other than maybe display a somewhat useful error message and quit. This way you're covered no matter what the problem is..low memory condition, unexpected power loss, whatever.
Anyway, on the desktop my general advice to anyone is use asserts and/or exceptions to sanity check memory allocations for the purposes of bug finding (and test in low memory conditions to ensure your recommended/required specs are realistic), but don't spend a lot of time trying to handle the situation very gracefully when it does occur as that is a fool's errand. |
| Fri 17 Oct | Ori Berger | No one runs out of memory these days, but for the wrong reasons:
If you allocate to much, your system slows down so much, that you kill the renegade process, or restart the machine, before the pagefile can be exhausted. One minute jobs can easily extended to one hour when constantly swapping.
Run your machine with no paging, and you'll start to run out of memory more often. Not too often, if you have 1G of memory, but you _will_ encounter this condition. |
| Fri 17 Oct | christopher baus (tahoe, nv) | I guess my point is, the only way to avoid out of memory situations is to allocate all your memory at startup. I think that is preferable on servers since you can determine the number of process that will be running, and the amount of memory that will be available. It is the same for embedded systems as well.
Out memory situations do happen. I've had other rouge processes chunk down huge amounts of memory which would eventually cause my program to fail, even it is acting normally.
I was thinking about the 'save all files' thing. When I wrote the comment I realized it wasn't a very reasonable thing to do. Maybe I should bring that point up. I think the asynchronous automatic backup would be extremely difficult to implement in our application. |
| Sat 18 Oct | Ori Berger | Allocating all memory upfront is not _really_ an option in any modern programming language.
Any C++ 'string' you use allocates memor, and may fail at some point. It is more than possible that if a memory allocation failed, exception handlers and other stuff (e.g., save all) will also fail, possibly throwing their own exceptions.
Advice about preallocating a buffer at start and releasing it when memory is exhausted were good when machines ran a single process at a time. But when you have more than one process, it's possible that another process will snatch that memory once you release it, and your own program will still be out of memory.
Really, with Java, Python, Lisp, C++/STL or any other platform that does implicit allocations, an out of memory error is fatal, and the exception handlers might not help you if the code they run needs memory itself (something you have little to no control of). |
| Sat 18 Oct | Tom | I second Mr Berger. Getting away from heap allocation is damnably hard these days.
However, I think the pre-allocated buffer approach has merit, if this buffer is not freed but instead used for allocations requested after the global heap runs out. Most programs are so dependent on heap-allocated memory that proper recovery is tricky, but this approach might at least enable you to use the existing save routines (which probably allocate memory) to save backups of the data before the inevitable crash. |
| Sat 18 Oct | Christopher Wells | > I second Mr Berger. Getting away from heap allocation is damnably hard these days.
Not that I've done it, but preallocating memory is equivalent to having a private heap: preallocate memory for your private heap, and override operators new and delete (globally, or for each class).
> When was the last time you ran out of memory?
Actually it was on an under-memoried QA machine, failing to allocate memory for a 1760x2000 pixel bitmap with 24-bit colour. |
| Sat 18 Oct | OutOfMemoryException | The last time I ran out of memory I forgot the PIN number for my ATM card. How embarasking. |
| Sun 19 Oct | Tom | What I was getting at was that this preallocated memory is small (512K, say), and used only at a pinch. The rest of the time, you use the system heap. You don't ever free it, because another process might immediately take it away.
In general, using the system heap is a good idea. On Windows NT at least, the system heap does something (it's called something like 'virtual thingy' :) so that unused pages are removed from your process' address space and the used ones are rearranged to minimize fragmentation.
(I assume that happens on Windosw 9x, Unix, and MacOS X too. Pre-X MacOS memory handling is so crap I can't see it being supported.) |
| Sun 19 Oct | Brad Wilson | Garbage collection is also a wonderful way to eliminate heap fragmentation. The heap is re-arranged during every GC. |
|
| FS2004! | Fri 17 Oct | Bobo |
| Flight Sim 2004 is pretty darn cool! I actually feel good about paying for it! |
| Fri 17 Oct | Simon Lucy | Does it have the craft knife in the toilet option? |
| Sun 19 Oct | Guy Incognito | Ouch... that's rough! |
|
| Y DOES it Matter what Joel thinks re: Exceptions? | Fri 17 Oct | Bored Bystander |
| And to amplify the point: why does it matter what anyone in a mentorship position thinks about your favorite or least liked programming technique? And, in general, why does it matter what other programmers think about your code?
No, really... I was away from this board for a week, and came back to about a dozen rabid dissections of Joels discussion of exceptions that appear to be a vast waste of personal energy.
Opinions are like dark, smelly bodily orifices. Everyone has one, and you know the rest.
The point is, I think some of you are nominating certain people for adhoc personality-cult positions. The fact that Joel likes this or doesnt, or that anyone else does likewise, does not bother me in the least.
The following facts are true, at least for me, anyway.
I get my work done.
I make my clients happy.
I am proud of my work.
My work does not turn to crap nor become demeaned simply because someone in a public position takes an opposing tact to some technique or language I use. And I feel no duty to exercize my angst in arguing with people I dont know just to defend an abstract position.
I think what is most disturbing about all the flak that his exception article generated is that professional programmers are supposed to be inner-directed and inner-motivated. In fact, if you arent, you are *really* toast. So arguing so much about this crap has the feel of mass personal feelings of inadequacy.
Self confidence, people. Its a BIG world.
Is Joel paying you? Except in about 10 or less individual situations, NO.
Just my opinion. I find Joels opinions refreshing and fascinating. But they are not the law. |
| Fri 17 Oct | Alyosha` | throw new ThreadIsOverException( ); |
| Fri 17 Oct | Bored Bystander | Really. ;-) |
| Fri 17 Oct | Dennis Forbes | Actually I think this is a very relevant thread, and it's not really a continuation of the Exception thread (though it is a spin-off of it). Instead it's a discussion about the black & white "one true way" avocacy that is far too common in this industry (it appeared in some of the threads where people beat their drums about how outrageous it is that some people think there is more than one right way). |
| Fri 17 Oct | Knowledge maker | From Clay Shirky,
http://www.shirky.com/writings/group_enemy.html
Shirky describes this feature of a group.
>>
Religious veneration. The nomination and worship of a religious icon or a set of religious tenets. The religious pattern is, essentially, we have nominated something that's beyond critique. You can see this pattern on the Internet any day you like. Go onto a Tolkein newsgroup or discussion forum, and try saying 'You know, The Two Towers is a little dull. I mean loooong. We didn't need that much description about the forest, because it's pretty much the same forest all the way.
Try having that discussion. On the door of the group it will say: 'This is for discussing the works of Tolkein.' Go in and try and have that discussion.
Now, in some places people say 'Yes, but it needed to, because it had to convey the sense of lassitude,' or whatever. But in most places you'll simply be flamed to high heaven, because you're interfering with the religious text. '
<<
I think it is especially true of most discussion forums - but is it true of JoS? I don't think so. I don't see many sacred cows around here. And when people say 'Joel is dead wrong about exceptions', it just goes to show that this isn't a religious kind of place.
Of course, I'm only baiting you.... |
| Fri 17 Oct | Almost Anonymous | I don't know about you, but I found the exception discussion a lot of fun. The last week certainly has made me think about what is good and bad about exceptions.
Does it matter what Joel thinks? No, not really. But if you think he's wrong, then it makes for an interesting discussion. |
| Fri 17 Oct | Sycophantic Poster | Joel, do you think my editor makes me look fat? :-P |
| Fri 17 Oct | Control Freak | Your religious debates are my lunch-time entertainment! |
| Fri 17 Oct | Grumpy Old-Timer | 'The fact that Joel likes this or doesn't, or that anyone else does likewise, does not bother me in the least. '
Well, no, me either - I mean, I *do* have a life. But have you considered this?
Sometimes, you run across someone, either in the real world, or here in the ether, and you go, 'Ah, at last - someone who gets it'. And then they go and disappoint you.
My example of this is Harrison Ford. The interviews with him that I'd read were very impressive, and gave me the sense that here was a man of integrity who really understood who he was, and what was important to him.
Then he dumped his wife for a younger woman and got an earring. |
| Fri 17 Oct | Zahid | Not to mention, he made "Hollywood Homicide". |
| Fri 17 Oct | Bored Bystander | G.O.T., I think you summed up the state of affairs perfectly.
I know what you're saying. But I have learned to realize in life that someone who 'gets it' on many things may be vehemently disagreeable to me on other issues. It's not reasonable to expect someone to agree 100% of the time.
I personally think it verges on co-dependency to expect someone to agree with you and to hold the 'right' opinions all the time. That was my main point. |
| Fri 17 Oct | Portabella | What about Martin Fowler?
There's a guy that I think 'really gets it' (and Joel endorses him as well).
Dunno whether he wears an earring or not though. |
| Sat 18 Oct | Raist3d | 'Sometimes, you run across someone, either in the real world, or here in the ether, and you go, 'Ah, at last - someone who gets it'. And then they go and disappoint you.'
I think the problem here is that people are expecting perfection? The idealization of 'someone who gets it' elevates the subject of this categorization to the realm of perfection - except Joel is a human being.
It is irrelevant whether Joel considers himself smart or not, or the groups thinks so or not, Joel is a human being. Therefore at some point (at least), he will screw up.
Personally I read Joel's articles because some of them make me think. I don't like the MS-ONLY(TM) attitude or what seems to me sometimes a mix of 'I want to do the right thing for the world' yet not seem to have much compassion for some that are 'not in.' *shrugs* I am an independent thinker.
Anyway, just my $3.95.
- Raist |
| Sat 18 Oct | smkr45 | 'I personally think it verges on co-dependency to expect someone to agree with you and to hold the 'right' opinions all the time. That was my main point. '
hehe, well, I've been ranting about how much I hate try/catch and exceptions for months. I was quite happy to see Joel taking my position, quite out of the blue. :)
But then, I never said I wasn't co-dependent or self-aggrandizing...:P |
| Sun 19 Oct | ihadda | not to mention wrong :P |
|
| Do you have a refund policy? | Thu 16 Oct | Less is more... |
| Do you sell downloadable/shrink wrap software? Could you comment on your refund policy? Do you have one? |
| Thu 16 Oct | Jericho | We don't have an official refund policy.
However, any user who asks for a refund and provides a reason (any reason regardless if we think it's right or wrong) gets the refund.
Some people say that putting something like '30 days, 100% money back guarantee' on their site has increased their sales, and generated almost no extra requests for refunds.
This may or it may not be true. |
| Thu 16 Oct | Skippy | For my downloadable (trialware) product I don't state a refund policy on the web page, but if someone asks for one I usually just give it. It's only 1 in about 200 so it's not a problem. |
| Thu 16 Oct | Milton | We have a company policy of 'we're not happy until your not happy.'
Also one of our favorite internal sayings is 'you could better better -our product-, but you couldn't pay more. |
| Thu 16 Oct | Milton | should have been
Also one of our favorite internal sayings is 'you could buy better -our product-, but you couldn't pay more. |
| Thu 16 Oct | Daniel Sygevy | > Do you sell downloadable/shrink wrap software?
Yes.
> Could you comment on your refund policy?
Yes, I could.
> Do you have one?
Yes. |
| Thu 16 Oct | Daniel Sygevy | (hee hee)
Anyway, people have 60 days to ask for their money back, no questions asked. They have to sign and mail in an affadavit that they have not kept or distributed any copies.
Fewer than 1% use it. |
| Thu 16 Oct | Dilettante | I once tried out a trial version of an ocx componenent that was crippled such that there were some doubts as to whether it would work in our situation.
The vendor said there would be no refund if it didnt work which seemed unreasonable to me.
More from their attitude than the potential loss I decided not to buy their component and use another solution. |
| Thu 16 Oct | Mitch & Murray (from downtown) | 30 days, 'no questions asked'.
Less than one request per year., which makes it _well_ under 1% of sales.
We do get a few fraud refunds via our DigiBuy order processor, but never a bad one for the orders we receive via fax or phone that we process via our own merchant account. |
| Thu 16 Oct | Bonobobo | Do you mean by "fraud refund" the fact that the customer bought your product knowing that he/she was going to return it? |
| Fri 17 Oct | RMS | Just open source your software then you don't have to worry about refunds. |
| Fri 17 Oct | Mitch & Murray (from downtown) | 'fraud refund' = chargeback.
The original transaction was made with compromised credit card data, and after the month or two it takes for a charge to show up and the cardholder to raise hell with the card company, it comes back (to DigiBuy in this case) as a chargeback/refund.
Maybe it was a real fraud case, maybe the purchaser just wanted to screw us and say 'Never bought that!', when in fact they did. To the card company there is really no difference when it comes to electronic transactions, and _particularly_ when it comes to goods (software) delivered electronically. Customer complains? Refund!
By the way, more than 2% or 3% chargebacks as a total of your gross credit card revenue in a given period and your merchant account walks the plank.
It is a very tricky business. |
| Fri 17 Oct | John K. | > Just open source your software then
> you don't have to worry about refunds.
Yes ... just go and code open-source in your parents' basement, and you won't have to worry about making a living. |
| Fri 17 Oct | Tony Edgecombe | I've only had one refund in 18 months and that seemed to be a genuine administrative problem. Also I will not buy any software that does not have a refund guarantee. |
| Fri 17 Oct | The Pedant, Brent P. Newhall | My software (a web-based game) hasn't been released yet, but my policy is to provide a warranty, and a full refund if the system breaks in a way that's covered by the warranty. But since this is a game with a free trial period and a subscription model (with no up-front price), refunds don't really make sense. Each player should have had plenty of time to evaluate the software before buying it, and if they don't like it, all they lose is the monthly fee. |
| Fri 17 Oct | Jim Rankin | Does anyone try to fix the user's problem instead when they ask for a refund?
Just curious. |
| Fri 17 Oct | Grumpy Old-Timer | 'Does anyone try to fix the user's problem instead when they ask for a refund?'
Absolutely! That's the quickest way to make a customer for life. 'Oh, you want a refund because it doesn't export to Excel? Did you know you can export to CSV, which Excel can read?'
Or, 'Oh, you want a refund because it crashes when you click the 'Foo' button? Oh my gosh! We'll have a fix for that immediately - I'll email you the instant it's ready!' (And then fix the bug within 24 hours, of course.)
Every customer contact is a selling opportunity. Or, if the word 'selling' offends your delicate sensibilites: Every customer contact is a chance to demonstrate fantastic customer service. |
| Sun 19 Oct | Entrepreneur | Well put Grumpy... |
|
| Stress/Load Testing a Web Application | Thu 16 Oct | DoS |
| What are the best ways to load/stress test a web application?
Are there benchmarks that we can also refer to? |
| Thu 16 Oct | Damian | Get mentioned on Slashdot.
Or use Microsoft's Web Application Stress Tool if you are running a windows setup, otherwise I believe the Jakarta project have something similar in Java. |
| Thu 16 Oct | Mike Treit | I've never stress tested a web application myself, but I would approach it like any other stress testing task: evaluate the areas you feel are most fragile and/or likely to fail under heavy load, and focus first on generating stress tests that exercise those areas.
There are tools to do things like generate many concurrent connections and requests. Check out http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=e2c0585a-062a-439e-a67d-75a89aa36495 for one example. That particular tool (the Microsoft Web Application Stress Tool) is a bit old, but it gives a good idea of one approach you can take to stress testing your app by bombarding it with requests of your own choosing. See the related articles on using it:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnduwon/html/d5wast_2.asp?frame=true
and
http://www.west-wind.com/presentations/webstress/webstress.htm
There are lots of other tools out there that are designed to assist with this sort of testing - do a google search if you're interested in the various options.
Of course, the best way to stress test a particular web app depends entirely on the app - you can't generalize about such a broad category. A web application that is a very thin front-end on top of a complex database back-end needs to be stress tested primarily through the back-end. A web app that has a small back-end but lots of complicated logic in the front-end probably needs to be stress tested primarily through the interface.
-Mike |
| Thu 16 Oct | Matthew Lock | Load up your page in the browser and hold down the F5 key. |
| Fri 17 Oct | Tero | The company I work for took a web-based travel mgmt system into use, really nice user interface, really nice features.
Only problem was that there's some 50k people working in the company. The system was taken out of use week after launch and was never seen again.
So Matthew, I really suggest you to think again your 'press F5' method. First thing you should do is to fill your DB, then have really many concurrent connections. Some of the tests must include overload to test that your overload control system works. |
| Fri 17 Oct | r1ch | Avoid Rational LoadTest for a start - it's extremely overpriced and buggy. (Although, to be fair, if you've got the time and patience to work around all of it's problems it is pretty powerful). |
| Fri 17 Oct | Chris Winters | Apache comes with a command-line tool 'ab' that will nail your server with a configurable number of simultaneous connections. IIRC you can also feed it an access log to simulate *actual* page/resource views on your site.
The Jakarta tool JMeter (in Java) does this as well and is supposed to be pretty slick. |
| Sat 18 Oct | Li-fan Chen | You might want a stresser capable of simulating lags (keyword: bandwidth throttling). That way it forces you to notices problems in how you code your web solutions. Some programmers have learned not to keep database connections open as they Response.Write/Response.Flush this way and use tools like this to prevent themselves or teammates from making similar mistakes. It'll point out a hotspot pretty quickly. |
| Sun 19 Oct | Evgeny Goldin | http://www.pushtotest.com/ptt/books/thebook.html |
|
| Does Joel use Java? | Wed 15 Oct | Gwyn Evans |
| While Im interested in Joels comments on software and all the associated topics, it does seem to me that quite a lot of the recent discussions have come about because hes joined Java and C++ in the same attack on exceptions, whereas to me at least (started with C, moved to C++ back round when MS did, then to Java around the time of JDK1.1.6?) in practice, exceptions are treated quite differently in the two lanuages.
Im afraid that to me, the piece came across to me as being written by someone either hasnt done any serious development in Java or worse, has brought along a lot of preconceptions along with him... |
| Wed 15 Oct | Jed | Joel seems to be using VB and ASP, with a touch of Visual C++ here and there.
For what he does (desktop and web applications development), these choices are much better than Java - they allow FASTER development.
Development speed is very important in the real world.
Don't forget that developing faster also means spending less money on developing a certain program.
Both things (fast & inexpensive development) are a huge advantage in the real world. |
| Wed 15 Oct | no name | Thanks Jed. Maybe you could answer the question instead of bringing up an entirely different topic? You did read the question didn't you? Not just the subject? |
| Wed 15 Oct | Portabella | > these choices are much better than Java - they allow FASTER development.
Not more language FUD, please! This is *nonsense*.
To answer the question: I too get the feeling that Joel does most of his work with a Microsoft toolset, but dabbles with other tehnologies here and there. As his recent comments on PHP show, that can be a dangerous game. |
| Wed 15 Oct | Jed | Gaining an advantage in the market is NOT nonsense. |
| Wed 15 Oct | John Topley (www.johntopley.com) | http://groups.google.com/groups?safe=images&ie=ISO-8859-1&as_ugroup=*java*&as_uauthors=joel%20spolsky&lr=lang_en&hl=en |
| Wed 15 Oct | Wayne | > Not more language FUD, please! This is *nonsense*.
Actually it's not nonsense OK? Let's have a contest then. You with your environment, me with VB6/ASP/VC++. Let's see who can build a better Windows program faster.
You think that you can build *Windows* desktop apps faster with Java than a Microsoft toolset??? Not possible. |
| Wed 15 Oct | NathanJ | --
Actually it's not nonsense OK? Let's have a contest then. You with your environment, me with VB6/ASP/VC++. Let's see who can build a better Windows program faster.
--
Right now I am working on an application. This application
was originally written very quickly in VB6 as a throwaway.
Well, 2 years pass and the VB app just doesn't scale. This app is making millions of dollars a month and could make millions more if it was scalable. Two more years pass - they bring in people like me to rewrite in Java and bring in those millions more.
I'm sure VB/ASP will let you build faster - but I'm not convinced about the better unless you are talking single user or low user count. |
| Wed 15 Oct | Gustavo W. | Business software isn't pretty.
The functional prototype is a perfectly reasonable business practice. If you can slap something together pretty quickly and release it to the users, they will be likely to approve continued development.
During that time, you rewrite most of it.
I also doubt that it was the VB nature of the project that made it not scale -- It might be, but bad initial design seems more likely. And with Microsoft changing VB so much for .NET, it could make sense to just drop the language entirely rather than modifying every class. |
| Wed 15 Oct | Brian | I've never seen a thread get hijacked so fast. The OP wasn't proselytizing, he was asking a question of fact! Nobody is saying Joel *should* use Java. Please, take your language contests elsewhere. |
| Wed 15 Oct | Jed | Why has this thread been 'hijacked'?
When people change subjects, do you also say that the discussion has been 'hijacked'???
The thread has not been hijacked. The people in the thread changed the thread's subject. They are free to do so.
Somebody has accused Joel of not being a good Java programmer, and I said - he does not NEED to be a good Java programmer, in order to do well what his company does.
In what way does this mean that the thread has been hijacked?
The thread is simply a discussion! |
| Wed 15 Oct | Portabella | > Actually it's not nonsense OK?
Actually it is -- OK?
1. Most obviously, it has nothing to do with the topic. *Take it to another thread*.
2. Software development has so many variables (eg, skill level) that choice between similar tools is close to the noise level
3. Arguments made purely from speed of development are prone to 'tortoise and hare' effects (fast at first, then deadly slow), as several other people have pointed out
The funny part is, I even agree with you that VC++ and VB are better toolkits for building Windows applications. I find Swing really clunky, and obviously if you're *only* interested in Windows, Swing has abstractions that you won't need. I haven't used IBM's Swing alternative (SWT) enough to have an opinion of what it's like. It *seems* like a reasonable choice if you need a cross-platform GUI (eg, Eclipse), but not many people really do need one.
Suggesting that you *cannot* use the toolset intelligently is just FUD and nonsense. |
| Wed 15 Oct | Portabella | > Somebody has accused Joel of not being a good Java programmer, and I said - he does not NEED to be a good Java programmer, in order to do well what his company does.
I agree with that.
But I would also say that his comments on tools and platforms that he doesn't use (Linux, Java, etc) should be taken with a lot more skepticism than the ones he is familiar with.
Clarke's First Law says that when a distinguished elderly scientist tells you that something *can* be done, he is almost certainly right, whereas when he tells you that something cannot be done, he is very probably wrong.
Just so with toolsets. Explaining why you *can't* do something is a sucker's game; somebody somewhere will prove you wrong. |
| Wed 15 Oct | Portabella | > http://groups.google.com/groups?safe=images&ie=ISO-8859-1&as_ugroup=*java*&as_uauthors=joel%20spolsky&lr=lang_en&hl=en
This shows that Joel used Java in 1996 (about the time I started!), but apparently not afterwards. Or at least, he didn't post to Usenet about it if he did.
I'm not sure what this is trying to prove.
IMO it's very dangerous to try to intelligently comment on fast-moving technologies. Quite often you get, 'Yes, that *was* a problem in 1.0.2, but it's been fixed for the last several years'.
Don't assume that your competition are fools.
I haven't used VB for several years, so I wouldn't presume to comment on what it can and can't do *now*. And my previous experience with much earlier versions is more likely to be a handicap than an advantage, should I work with it again. |
| Wed 15 Oct | rz | 'When people change subjects, do you also say that the discussion has been 'hijacked'???'
Yes, that is the typical definition of hijack, as it relates to internet discussions. |
| Thu 16 Oct | Brian | Jed says: Somebody has accused Joel of not being a good Java programmer...
Unless the post in question has been deleted, that's not the case. Your post is the first reply to the OP, and it's off topic! I expected the discussion in this thread to be about Java's Exception handling model and whether Joel's (arguably) simplistic take on it is evidence of a lack of experience with the language.
If I wanted to read religious wars, I'd go to slashdot with my filter all the way down!
Now, I don't mean to single you out or pick on you. But this forum sometimes sinks under the weight of its own popularity, and the situation is only exacerbated when threads veer off into the usual pissing matches at the very first opportunity.
Ok. Enough of the meta-discussion.
For the record, I think the whole Exception handling discussion is interesting and worth having. Anybody who deals with exceptions and doesn't know Herb Sutter needs to go to www.gotw.ca right now. Seriously. Buy, read and understand 'Exceptional C++'. Even if you program Java, you'll learn more about proper exception handling there than anywhere else. |
| Sun 19 Oct | Arron Bates | Anti-Java crowd...
Let's write a GUI app for ALL platforms, I'll use Java, and you can use whatever the smeg you want. Then let's see who somes out on top!
(the only app on tucows to get five stars on all platforms is a Java app). |
|
| Top Discussion Topics on JOS Forum | Sat 18 Oct | Nasty Curmudgeon |
| Bellas latest smokebomb lobbed into the public fray looks like it wants to melt Joels servers down, and it was started just this morning. ;-)
I observe that the most active threads here are the ones that somehow play with programmer self-esteem. The idea that we are, or could be, a commodity, seems to be the white hot instigator for discussion. In this camp are generally the discussions that make people feel like insiders or outsiders, or dumb/smart, or gifted/ordinary. Related topics are those to do with work hours, dress codes, pay rates, cool vs. dumb niches to be in, etc.
A close runner up are threads based on readers codependency on Joels observations.
Codependent behavior, in general, appears to be a good reason to chat about software employment. |
| Sat 18 Oct | Bill Rayer | The following topics:
- The idea that we are, or could be, a commodity, seems to be the white hot instigator for discussion.
- discussions that make people feel like insiders
- Related topics are those to do with work hours, dress codes, pay rates, cool vs. dumb niches to be in, etc.
- threads based on readers' codependency on Joel's observations.
are not interesting in my view. Topics that are interesting are those on technical aspects of programming or marketing or copy protection or other 'technical-type' topics. I tend to skip the others. |
| Sat 18 Oct | Nasty Curmudgeon | Agreed. I want to know how to do my work better and how to make more money more consistently.
The ego & opinion wars are a waste of energy. |
| Sat 18 Oct | www.marktaw.com | JOS Statistics - Top 200 commented items of all time
http://www.usabilitymustdie.com/jos/WW_Top_Commented.html
btw, it looks like I'm still in the running for top poster. Interestingly it looks like there's 3 almost ties for the top 6 slots. I don' t think the few dozen posts I posted as 'Mark T A W (.com)' and other variants threw the stats off that much. Unfortunately those, and my 'mark wieczorek' posts from 2002 don't factor in. |
|
| BIDI and Internationalization | Sat 18 Oct | Evgeny Gesin /Javadesk/ |
| BIDI support may require some kind of if BIDI in all web pages at
the cost of higher CPU or otherwise - duplicate web pages. For
example, labels and menus should be on the right side in all BIDI web
forms, while western pages have such elements on the left.
It happen that mostly we expand to the western world. I believe that
i18n development in Russian or German will cost us a number of times
less than the BIDI. I think the ROI of the BIDI is too low to develop
and host BIDI web services of some Israeli firms. We expect more
customers in Moscow (10 M citizens) and other big cities than in the
whole Israel (6 M). Opinions?
1. Im just curious, no one use internationalization library?
Sun/Jakarta JSTL, Jakarta i18n, etc? Any successful stories? |
| Sat 18 Oct | Ori Berger | The viability of internationalization depends very much on what you are selling:
Some sectors in Israel (Financial, Technical for example), are fluent enough in English that any investment in a BIDI web site for them probably won't pay off.
BIDI also means Arabic and Urdu (If I'm not mistaken), and there are many millions of people who speak these languages and are not fluent enough in English, or even have access to the Internet.
So the demographic you should be after is not how many people are in the country, but how many of your potential customers have the need for the translation.
And remember that to some people, an incomlpete / unprofessional translation looks much much worse than no translation at all. |
|
| Excel as an application user interface? | Fri 17 Oct | HeWhoMustBeConfused |
| Our main software product is currently delivered through a web browser interface. We want a richer user interface than a browser can currently deliver, and have investigated a number of alternatives.
Our application is a data entry and analysis application, for our customers to provide transaction and data exchange with their own customers. Over 95% of the end-users of our software run a variety of MS-Windows. The remainder use Macintosh.
Weve developed some internal concept prototypes for new user interfaces in RealBASIC and Flash-MX, with RealBASIC seeming like a better alternative.
In discussing our development plans with some of our end users, I noticed that EVERY user of our software had a version of Microsoft Office installed on their workstation. Further, EVERY end-user is an all-day user of Microsoft Excel, and regularly exchanges data with our application through our import/export facilities.
That started me thinking ... would it be possible to build our entire application within Excel? I know we can develop the technical components, that isnt difficult, what Im not sure about is the ability of Excel to deliver a rich application interface outside the simple grid-of-cells model.
Does anyone have experience of developing data processing applications using Excel as the user interface, or can anyone point me to suitable references that might help my thoughts on this matter? |
| Fri 17 Oct | Ankur | I think Excel's great. You have a couple of options, I think:
* Excel supports VBA which has basic facilities for user forms to add to the 'rich' GUI capabilities. You could try to look for Excel applications like @Risk or CrystalBall to see how good an interface you could create from within Excel.
* Alternately, you could embed Excel as an OLE object inside a normal Win32/.Net application, and have the entire facilities of the OS at your disposal. |
| Fri 17 Oct | MSHack | VBA is very powerful for integration across the desktop. If you application can take advantage of it, and you are correct that your customers have office (or you are now willing to make it a requirement) go for it.
However, do yourself a favor and not limit it to excel. You did not say what your application was, but if it uses data, make the interface common so it can be summoned from excel, access, even word. A little forethought on this can make your product appear (and be) more powerful than a typical front end. |
| Fri 17 Oct | Robert Jacobson | I agree 100% with Ankur. There's also a third option -- develop a managed COM add-in for Excel using VB.Net or C#. (I'm developing a fairly powerful Microsoft Word add-in right now using VB.Net.) There are lots of articles about this on MSDN. A starting point:
http://msdn.microsoft.com/vstudio/office/default.aspx
Microsoft is about to release a new developer suite called Visual Studio Tools for Office that will add some additional capabilities to VB.Net and C#:
http://msdn.microsoft.com/vstudio/office/officetools.aspx
This suite allows you to write code that 'runs behind' a particular Office document. E.g., you could write an Excel spreadsheet template that automatically connects to a server, downloads some XML data, and generates a sales report.
I attended a user group meeting where the VSTO team demoed the software, and the team was actively promiting Microsoft Word and Excel as an 'environment' for hosting managed applications -- exactly what HeWhoMustBeConfused is thinking of.
You can do all this with regular VBA, of course, but VB.Net or C# can give you some extra capabilities. The only downside is that this would limit you to Win32 for now, as the .Net Framework hasn't been released yet for other OS's. |
| Sat 18 Oct | FullNameRequired | I have an idea excel is more limited on the mac than it is on windows, if you truly want to develop a xplat solution Id look carefully at the capabilities of excel on the mac, that will be your bottleneck in terms of functionality.
Another vote for REALbasic btw, Im doing an increasing amount of xplat development in that, the flexibility it provides is rather useful. |
| Sat 18 Oct | mb | one issue you will have to deal with is what version of excel the users have. VBA will work on most recent (post 97?) versions, the cool new things like VSTO will only work on Office 2003, there are some in-betweens.
if you have a web service interface to your app, you can build different ui portions. there is a web service toolkit for excel. there are however two versions, one for office XP and one for Office 2003, I have not worked with either. |
| Sat 18 Oct | Joel Spolsky | VBA first appeared in Excel 5.0 (1994). |
| Sat 18 Oct | HeWhoMustBeConfused | Thanks for your comments, guys, but I may not have been clear enough in my original message.
Our application is for corporate/commercial electronic banking. That's like your personal internet banking on steroids. Our users are corporate treasurers, accountants, people like that.
I'm 100% comfortable with VBA. In fact, our internal code generator is an Access/VBA application which generates C code for at least 1/3 of our software.
I bought the VBA/Excel books by Korol, and Kopfler, which have given me a good enough understanding of how I can manipulate Excel.
What I'm not comfortable/familiar with is the USE of Excel. That is, how to design a user interface which maximises its spreadsheet AND other capabilities. What would probably suit me best are some pointers to other applications based on Excel. I've seen a couple of data mining/analytical tools, but I'd also like to see some data entry or transaction processing components built within this framework.
*grin* ... perhaps I should have used some of my lazy time during the past few years to take a course in accounting ... then Excel would be more familiar than my right hand :) |
| Sat 18 Oct | Ged Byrne | I think you would be making a mistake:
Bloat - You would only need a tiny subset of Excel's facilities. Problem is you can't turn everything else off. In support you will find yourselves constantly firefighting against people using the application in a different way and getting unexpected results.
Security - This leads on from the bloat. Your application will have more backdoors than the Matrix.
Perhaps you could create a good query tool with Excel, but it certainly couldn't handle any real transactions. |
| Sat 18 Oct | Ged Byrne | Regarding combining Excels form and spreadsheet capabilites, I don't think the two mix very well.
The route to take has always been to develop application in Access, which can then embed spreadsheets and pivot tables, so Excel was never really taken down the application building route.
Unfortunately, there is no Access for the Mac.
Another thing to consider is perception. If the application is delivered as an Excel spreadsheet it will have a lower perceived value and an executable. |
| Sat 18 Oct | HeWhoMustBeConfused | Ged, our clients are banks, who buy our software, run it on their servers, and electronically deliver banking services to their clients. It is the bank who pays.
In the case I am considering, Excel couldsimply be a delivery mechanism. I'd like to provide more, however, and that is why I'm shopping for ideas on how to maximise the use of the product.
I'm not concerned about bloat, because I'd LIKE customers to have all the facilities they like to manipulate our data once it is available within their chosen platform. As I stated earlier, I've yet to see an end user of our software who was not (also) an Excel user.
And security is no more of an issue than with any other interface. We would provide a component (DLL, maybe) which implemented the channel to the bank using our existing message infrastructure. This has been running our browser based system since 1996, and we've never had a security breach. |
| Sat 18 Oct | J D | I once did a VBA project which had to work on Excel 97 & later and Excel for Mac.
Excel 97 has an old version of VBA so if you use functions like Replace, Split you'll need to write your own versions.
The Mac will be your biggest issue: even using the File Open dialog box can be a problem (KB183750). And of course you won't be able to use Windows specific stuff like ActiveX,...
If you can eliminate your Mac users (in the nicest possible way) it might be feasible. |
| Sat 18 Oct | Ori Berger | VBA appeared in 1994, but the object model changed through the years. The advice to map what versions the users have on their disk is important:
If you write for an older version, it will (almost always) work on the newer version, but not vice versa. The MSDN docs don't usually mention which feature was added in which version, so ... if your 'reasonable common denominator' is Office 97, be sure to use Office97 to develop your app. |
| Sat 18 Oct | ajs | I develop Excel applications for a living, from simple templates to a stock reporting system that included a screenscraper (!) that extracted data from an old mainframe.
The main mistake I initally made was knowing VB and thinking that I knew VBA. Well, I did, but I needed to know Excel. My first apps were horrid, you really need to know what Excel can do. Huge object model!
Where possible, avoid VBA, mainly due to lots of people running Excel 97, paranoid firewalls deleting your files, since macro = virus, and people needing to click 'Enable macros' all the time. When you get stuck, add VBA.
Most of it is easy to figure out, like controls, charts, sorting etc.
Learn filtering, pivot tables (like crosstabs in SQL), the databse functions, consolidation (combine data from multiple sheets), the lookup functions (the infamous VLookUp), conditional formatting, goal seek, sharing, scenarios, grouping and protection, just to name a few.
Excel will drive you nuts. It's Char(), not Chr$(). Assigning with .Value occasionally removes formatting. Use .Value2. What's the difference? Dunno! Stuff in weird places, comments are really shapes, and so on.
Still, it's worth it. Get it running and it will keep running. |
| Sat 18 Oct | Stephen Jones | In my opinion storing data in Excel is marginally safer than storing it on a load of post its, with a note pinned to the wall saying please don't turn the fan on, but that's about it.
Hide cells to the far left of your spreadsheet and then sort the vfisible cells to the right, and hey pronto, you've trashed your data because the hidden cells don't resort! (If they are in the middle they do just to give you tha necessary feeling of false security).
And boy, are you going to have fun with different people opening the same Excel spreadsheets.
I would junk the Macs, and use Access as a front end, storing the data in MSDE, MySQL or MSSQL according to needs. Then write as much code or macros as you want for the data to go into Excel to be ANALYSED but neve, ever let it be ENTERED iOR STORED in Excel. |
|
| pricing structures | Fri 17 Oct | just a developer |
| im considering starting a new venture with a friend. basically, he has access to data. i would build essentially a reporting application around this data. we could then resell this application to many different people for a flat fee. we might be able to make a couple sales a year, and they would be in the neighborhood of a couple grand each.
i have all the development skills, he has the information. im trying to figure out a good way to share the profits between the two of us. i will be doing 99% of the work up front, but he will be doing most of the selling and has all the contacts etc.
if it costs me $3000 to develop this app, and we can sell it for $1000 each time, how should we divy that up? im thinking id get a larger percentage up front to compensate for all the programmer hours ive put in, then that can back down as we sell more copies... any ideas? |
| Fri 17 Oct | Robert Jacobson | That sounds like a good plan. If you structured it, e.g., as 'I get 75% of the first $10,000, and then 25% for profits above $10,000,' then you're effectively getting paid a bonus to complete the programming quickly, while he's getting a bonus for additional sales. That provides a good incentive to each of you.
The most important thing is to find a division that seems fair to both of you -- if you start into this partnership with tension over the money, it won't last. |
| Sat 18 Oct | Clay Dowling | I wouldn't approach it with an 'I do all the up front work' attitude. You're dead in the water without a decent salesman, and he'll be what keeps you from starving while you're starting up. I know from hard experience that software sales is non-trivial. People who are otherwise very good salesmen have trouble selling software and software services. If he can really sell it, he's worth quite a bit. I'd approach it with a 50/50 split, because no matter how brilliant your code is it's useless to you as a revenue stream without him to sell it.
On the flip side, down the road he shouldn't get a bigger slice than you, because without your work on the product he'd have nothing to sell. If such a proposal comes up, that's where you can trot out the amount of up-front work that you did. |
|
| XML Languages as political compromise | Fri 17 Oct | Xtremely Mucked-up Lad |
| Ive been thinking about this off and on since I read Ken Arnolds critique of Ant:
http://www.artima.com/weblogs/viewpost.jsp?thread=7435
(I havent looked at nAnt, but Id bet that his comments apply to it as well).
Ken asserts that XML is a poor choice for Ants configuration language, and that a scripting language would be better. I think he makes a good case for it.
Ah, but *which* language? Should we:
1. Create yet another language and with it the burdens of getting it implemented correctly and having everyone learn it
2. Use the major host language (Java for Java projects, C# for .NET projects, etc). Python, Perl and Ruby developers may say yes, but it seems impractical for Java, C# and C++.
3. Use an established scripting language. But then weve added another language and toolset on to the project -- and what about all the people who dislike *that* language?
It seems to me that while 3 may be the best choice technically, XML was chosen exactly to avoid bringing in another toolset.
XML: When you cant decide on another language. (*)
* Please dont tell me how great XML is (or isnt!) for data. Im specifically addressing the situations when its shoehorned into serving as a pseudo-language. |
| Fri 17 Oct | Jimmy Olsen | Xtremely Mucked-up Lad, are you some kind of super-hero? :-P |
| Fri 17 Oct | The Green Lantern |
Xtremely Mucked-up Lad was kicked out of the Justice League of America for exactly this sort of thing. |
| Fri 17 Oct | Stan Lee | Xtremely Mucked-up Lad is a registered trademark of Marvel Comics. |
| Fri 17 Oct | Lou | If the configuration subsystem just relies on receiving a set of key-value pairs, then XML is a solid language to choose. If you jump over to XML.com, Mark Pilgrim has a nice article covering the Atom API. I'm not drawing paralells between config files and APIs, but rather between using Structs versus using XML.
A well constructed XML file, with a solid DTD, can allow one to generate a lot of necessary configuration information in an orderly place, while allowing for vendor extensibility (through namespaces of course, don't muddy the base namespace). It seems like XML is a handy config file, a bit verbose for some uses, but that verbosity is what allows one to know that they didn't accidentally delete an important key-value pair when they were editing.
And I'd love to have a config file I could run against a validator to make sure it will actually run. I've hosed enough config files to see the utility in that. |
| Fri 17 Oct | Tony Edgecombe | It strikes me the problem with Ant isn't the use of XML, rather its the lack of a decent editor for the config. |
| Fri 17 Oct | Brad Wilson | The value in using XML over some other scripting language is two-fold:
1. It's more likely that people from a variety of language backgrounds will all either know, or be able to get, XML.
2. XML parsers are written, tested, beaten the hell out of. Language parsers are a lot more complex, and certainly one step removed from the Ant coders' goal of getting a nice portable build system.
I've seen XML abused pretty badly. Ant build files isn't it. |
| Fri 17 Oct | Ged Byrne | This one is easy, it should just support the Bean Scripting Framework[1], providing a choice of scripting language.
[1] http://www-124.ibm.com/developerworks/projects/bsf |
| Fri 17 Oct | John Topley (www.johntopley.com) | 'If the configuration subsystem just relies on receiving a set of key-value pairs, then XML is a solid language to choose.'
I would say that a Windows INI file or a Java properties file would be an even more solid choice for this situation. The advantage XML offers over these formats is that it supports nesting. |
| Fri 17 Oct | Ori Berger | XML is a syntax. A language includes semantics.
So Ant actually does define a new, albeit limited, language for building software. Buiilding software often requires real code in the build process, so Ant will probably be turing complete in the future (If it isn't there yet - I'm not following development in the last year or so).
Scons uses Python as the host language. A simple build script borrows Python's syntax, but uses Scons semantics - unless you really need code within your build script, then -- compared to Ant -- you're just replacing one syntax with another.
e.g., instead of
You write:
Java(source='$src', target='$target')
I don't think anyone can argue that one syntax is superior to the other.
However, because scons really is embedded in Python, you can write:
for number in range(1000):
if prime(number): Java(source='$src',
target='$target'+`number`,
JAVACFLAGS='-DPRIME='+`number`)
Whereas in Ant you'd have to write a tasklet for that (assuming Ant is not yet turing complete).
Try Scons; You'll probably be pleasantly surprised.
[ http://scons.sourceforge.net ] |
| Fri 17 Oct | Tim H | XML is great and I won't hear a bad word against it. One of my favourite uses of it (excluding interfaces) is as an internal data structure for programs that do complicated state manipulation. |
| Fri 17 Oct | Xtremely Mucked-up Lad | > Buiilding software often requires real code in the build process
Thank you! That is *exactly* the insight that's needed for the problem.
Many XML files do not need loops or conditionals; instead whatever code is generating the XML has the loops.
Build scripts are different, since they are generally the *first* code that is executed; if some other code generates the build script, then *it* becomes the build script/file.
You could do this with Ant -- break out your barf bags now! -- by having an Ant template and using XSLT to generate the 'real' build script.
Builds may not need the whole OO panoply of inheritance, polymorphism, etc. but they *do* generally need loops and conditions and what amount to variables and functions -- in short a (possibly limited) language.
> XML is great and I won't hear a bad word against it.
If your mind is already made up, why bother posting?
> an internal data structure for programs that do complicated state manipulation
Why not use domain objects in your programming language instead? Seems a lot cleaner to me.
> The value in using XML over some other scripting language is two-fold
Most of your objection here just seems to echo the title of the thread.
And it seems to me that your arguments only apply to new or niche languages. If you use Python or Ruby, you're getting a fairly well known language (admittedly less well known than XML), that has been thoroughly documented (books, Web sites, newsgroups, sample code, etc) and rigorously tested.
XML is definitely simpler, Python and Ruby are considerably more powerful, and I think the needs are somewhere in the middle.
> Xtremely Mucked-up Lad was kicked out of the Justice League of America for exactly this sort of thing.
No I've always been a Dark Horse!
You say any more and I'm gonna start telling folks where you *keep* that Green Lantern when it's not in use. |
| Fri 17 Oct | Lou | I still think the biggest advantage is getting things out of structs that don't belong in structs. Next is the advantage of having a parsable config file that's assured of well-formedness and has a DTD to conform to. Lastly is the advantage of namespaces for vendors or anyone else who wants to extend the config file.
From a user perspective it might not be the easiest format, but its not overly difficult either (if done well). |
| Fri 17 Oct | Xtremely Mucked-up Lad | > I still think the biggest advantage is getting things out of structs that don't belong in structs.
I thoroughly agree with you for config files, but I maintain that Ant scripts are not merely configs. |
| Fri 17 Oct | Jim Rankin | '> XML is great and I won't hear a bad word against it.
If your mind is already made up, why bother posting?'
Oh no Xtremely Mucked-up Lad! You've just fallen prey to your mortal arch-enemy, the Troll! |
| Fri 17 Oct | Chris Tavares | I thought the whole point of a build file (or a Make file for that matter) was that it was declarative, saying what to build, not necessarily how.
I would think that if you want a full featured language for build scripts, you might be better served looking at something like Prolog instead of regular imperative languages. |
| Fri 17 Oct | Xtremely Mucked-up Lad | > that it was declarative, saying what to build, not necessarily how.
Not sure if I agree.... you typically *do* say how (compile these files, run these XSLT transformations, etc).
But even if so, 'saying what' generally involves conditionals, variables and loops at the very least.
>you might be better served looking at something like Prolog instead of regular imperative languages.
Maybe from a problem domain standpoint you're right.
It does seem like mainstream programmers understand imperative languages well, and non-standard approaches (XSLT, functional languages, etc) tend to confuse them. |
| Fri 17 Oct | Chris Nahr | 'e.g., instead of
You write:
Java(source='$src', target='$target')'
This example is bogus. The Ant lines declare a target and its dependencies. The Java call does nothing of that sort, it just replaces the middle XML element of the Ant example.
How do you declare a target and dependencies in scons? How much longer would that make your example? |
| Fri 17 Oct | mb | Nant supports in-line C# (or presumably other .NET languages) if you need to do some short programmatic task. I would assume Ant does the same.
And yes, make files should be mostly declarations, configurations, etc. The 'how' part gets segregated off somewhere else, though it might still be largely written in the make file language. |
| Fri 17 Oct | Walter Rumsby | Ged,
'It should support BSF'.
It does - at least via the optional.jar package + Rhino. You can use the |