last updated:31 May 2004 09:30 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 30 May 2004) | View Other Weeks
Master's thesis adds value to work experience? | Sun 30 May | anon
I am starting my masters thesis in cs part time while working full time as a developer.I have completed all required courses and have my thesis left.I have 3 years of work experience mostly in Java and C++, in a wide variety of domains. Currently I am doing J2EE/Web stuff. Previously I have worked in computer graphics and data mining in 2 other companies. I want to do something practical in my thesis, which would add value on top of my work experience. My choices are - 1. theoretical work involving new algorithms/graph theory 2. Work on wireless network simulators 3. Visual tools for software engineering I am pretty much equally inclined on each of these topics, but which would add more value in my work, rather then in an academic sense?
Sun 30 May | Philo | 1 is fuzzy - you'll get some interest, but it sounds like 'typical MS stuff' - in other words, not really much in the way of practical use. UNLESS you plan to work in areas where it has distinct practical applications (engineering, financials, etc) 2 sounds interesting, and may be a hot thing in the next decade as more and more wireless comes to market - I'd recommend studies dealing with scalability and signal density. 3 has potential - if you do a credible analysis of what software engineers really need/want in software UI's (see the emacs thread - it's a nice objective analysis), then you could end up working for MS, IBM, Sun, etc as a human factors engineer. But it could also end up to be a lot of wasted time. :-) My $.02, anyway. Philo
Advisory board for government S/W prod.dev. | Sun 30 May | OneManShop
I have been developing software for state agencies for a couple of years as a consultant. Id like to start building a product based on the experience Ive gained, but I also would like to get input from some current and potential customers. As my users are all state employees, I cannot pay them for their time and opinions; theres also a limit to how much I can pester them for free. I thought about offering a discount in return for a commitment to provide input, but I dont know if most states have mechanisms to work out such a contract. Has anyone had a similar experience? How did you get customer input from government users? Thanks in advance.
Sun 30 May | GiorgioG | Partner with the agencies that might want to implement such a beast, offer them a X% discount for helping with the requirements/user-acceptance testing...
Sun 30 May | no name | Most people in those organisations are happy to discuss their requirements with serious software developers. You shouldn't offer payment, as it might be seen by them as giving you some expectations and control over them. In any case, state employees can't go and sell their time just like that.
Micropayment | Sun 30 May | Aryeh
Any success with implementing/using Micropayments on your site?
Sun 30 May | Aryeh | I should thank any comments, of course... :)
Are you a less productive programmer since married | Sun 30 May | Ixion
Are you a less productive programmer since you got married & have kidz ? Does being a family man has been a show stopper of still being a star performer at work ? (Im trying to set-up a small ISV after work, while working on a part time MSc in Software Engineering, Im getting married next month ...)
Sun 30 May | FullNameRequired | if there is anything in your working life more important to you than your wife-to-be then I suggest you dont marry her.
Sun 30 May | hoser | I'm more reproductive than I used to be... Seriously, I'm more focussed, having been married 19 years this coming June 22. I go in, I get it done, I go home. Used to be I'd go in, drink coffay, think about womyn, try not to think about womyn, plan the weekend, ... Now I hardly think about women at all... :)
Sun 30 May | Almost Anonymous | 'Are you a less productive programmer since you got married & have kidz ?' Definately. Although, I'm a much more well-rounded person. When single, I would work till all hours if need be and I'd work whenever I was most productive (which typically isn't 9-to-5). Now I work 9-to-5. Often the option to work till 11:00 without distraction isn't available.
Sun 30 May | Junichiro Kawaguchi | I am being 37 (37) and have married a nice woman who is 18 (18). We are living in Tokyo and I have found myself being no less productive since we gotten married months ago. Things could be made more difficult when I make her pregnant and she births children ,maybe? I do not no. It probabbly matter as much how far you are needing to go to get to work.
Sun 30 May | Yoey | I am married with one toddler. I feel pressure not to work late. Also, it is almost impossible for me to work from home.
Sun 30 May | anon married man | I spend less time at the office, for sure. I think I get more done. My life is more settled, I eat better, get more sleep. We have no children and will not, given our ages. After saying that, I must add that I am not working for hard-charging companies that expect 80 hour weeks. Given my age, late 40s, I probably wouldn't even if I was single. I remember clearly the moment when I decided, while I was still unmarried, that I would rather go home to my apartment and sit listening to the radio and reading mysteries than hang around the office. Could there be a connection that I got married a few years later.
Sun 30 May | Philo | 'I am being 37 and have married a nice woman who is 18.' I have a new hero. Philo
Sun 30 May | Edward | Philo, finding a nice woman isn't that big of a deal. ;-)
Sun 30 May | Chris | I think Philo was talking about finding a nice girl.
Definition of a "socket" ? | Sun 30 May | Joel Moses
I have used sockets in various languages , but am unsure about what actually happpens when a Scoket classs object is created or its method is called ( like in the Berkley Sockets API). I read a definition of a socket as an end point of communication if anyone could pls elaborate on that
Sun 30 May | Code Monkey | Checkout http://www.digilife.be/quickreferences/PT/Java%20sockets.pdf Even though is a Java specific there is good general info about sockets there
Sun 30 May | son of parnas | End-points are like train terminals or airports. People come in one terminal and come out at another. From one perspective you aren't much concerned what happens inbetween. End-point means that's where data arrives and is accessible regardless of the underlying protocol and network used. You can logically think of data just be sent between your socket and the socket on the other side. That's why they are end-points. What goes on inbetween can bey very complex or quite simple, but that has been abstracted away.
Sun 30 May | no name | google, "define:socket"
Sun 30 May | matt | Well they have different implementations and quirks on different platforms but you might want to look at the POSIX standards for sockets...? Essentially they're kinda just a filesystem-like abstraction of an underlying network protocol... allowing you to communicate across a network as though you were reading/writing data to/from a file (with some important differences but hey). There's not really a lot to 'get', sound like you already know what they are and what they do if you've used the APIs. If you're interested in how the underlying socket implementations work read up on TCP/IP and stuff...
Sun 30 May | Junichiro Kawaguchi | Hello to you Joel. I have learnt of sockets back at my school in Japan. It is all very simple ,maybe? A socket is really a just story to make it easy for you to be understanding the Internet. Each of the computers wanting to talk to each other are having sockets. Pretend they like the ones in your wall and at the end of the wire coming from your light. You having connect the to buy sticking the plug into the hole in he wall ,so you can turn the light on ,maybe? So you can be having the functions like this: jkConnectSocket(); jkWriteToSocket(); jkReadFromSocket(); jkDisconnectSocket(); But it just a story ,just pretend. Sockets are being simple file descriptors in UNIX. The rest is not needing of youre concern. Just pretend and do the file manipulations like you alwas do and check for errors and donnot worry.
Sun 30 May | anon married man | >A socket is really a just story Thank you Junichiro. That is it. A socket is a number. When you have created it, you can associate it with a port, which is another number that identifies IP sources and destinations. Once the socket is associated with a port, you can send or recieve data. The socket itself is an abstraction, the same way that the number you get back from a regular Unix open() call is an abstraction.
If business is so ... | Sun 30 May | Adam
If business is so rewarding then why isnt everyone running his or her own business? Im still a student and just wondering how to proceed with my life. Just be an employee or run my own business and become an employer?
Sun 30 May | Bored Bystander | Because business can be gawdawfully frustrating to break into. Because you need to buy your own health insurance and benefits. Because you become responsible not just for your own problems but for everyone else's problems. Because if you don't pay your payroll taxes to Uncle Sam, the IRS will get medieval on you. Because - it's REALLY not easy and it's different for everyone who tries.
Sun 30 May | Herbert Sitz | Probably a lot of reasons that more people don't try to run their own business. Most are psychological, I think. High on the list is risk. Trying to start your own business is very risky. You don't know whether it's going to succeed. Contrast that with a job as an employee where you get a steady paycheck. Fear of layoff in a bad economy can lessen the difference between being an employee and being self-employed, to an extent. But being self-employed is still more risky. If you have people who are dependent on you for support (e.g., wife and kids) it makes it even riskier. Likewise if you've been working for a while and have accrued a lifestyle where you have a steady stream of monthly payments you've got to make: big mortgage, car payments, student loans, etc. These are situations where you basically need a steady stream of income that you're not going to have as you start a business, and that the business may never yield. Related to risk is that even if you could be certain that you would eventually succeed, chances are you'd have very little if any income for some indeterminable period as you start out your business. Running your own business is also generally more difficult than being an employee. When you're responsible for everything you're basically always on the clock, always got to be thinking, always have things that have to be done, problems that have to be solved. There are employees who work in situations where lots of hours are demanded and there's lots of pressure to produce. But they still don't have anything like the responsibility you bear when when you're running your own business. And the breadth and depth of their responsibility is not as great as that of someone who is responsible for an entire business. Then there's the purely psychological factor of whether you're comfortable calling all the shots in your own business or whether you'd rather work as an employee as part of a team. To many people it's just much more comfortable to be an employee. I'm sure there's more. But if you're a student just graduating from college, and especially if you don't have a good job lined up, it could be a great time to try to start your own business. You won't have as much knowledge of 'the business world' as someone who's more experienced, but other than that you're in pretty good shape. It used to be that someone in their low to mid-20's wasn't really taken seriously in business. But that's changed a lot, I think. And to whatever extent your business is based on an internet presence you can present it as being as sophisticated as you want, limited only by your own ability (and money).
Sun 30 May | grunt | Running a business is not for everyone. Why don't you look into the mechanics of it? If you have something you like to do for a living, and can also handle the mechanics of it, go for it!...
Sun 30 May | Adam | I love doing what I do (or would like to do) - i.e. developing software. But at the same time, I really wouldn't like to work as an employee and work a lot for someone else. So, since I'm in early 20s and do not have any responsibilities to worry about. Do you people think that it would be wise for me to go for my own business? Probably selling software on the Internet?
Sun 30 May | Adam | In fact, a bigger question. Would it be "possible" for me to run my own business with all my inexperience?
Sun 30 May | anon | Adam, your self doubt is troubling to me. You must be strong, you must be wise, you must not be wishy washy. The only advice people will give you by posting on a message board is that it is difficult, a lot of work and that you have to try it for yourself. This advice is given everywhere. Your questions hold no weight. Go try it. Don't come back here. School has given you the feeling that you have to be educated on everything in order to try something. Cast this attitude aside. I started my own business and ended up with 11.5 million 'in the bank'. ;-) Good Luck.
Sun 30 May | matt | I'm in a slightly similar position. I'm actually still a student but have done a lot of freelance work before. Over the summer I'm thinking of working on a really professional fully featured application that effectively 'solves' all the kinds of problems I've faced as a freelancer. And then selling it to some existing clients (who have expressed an interest), and online to other developers and tech-savvy clients. Also using it mysql to drastically reduce the amount of time spent on any future freelance projects I get given. I have no idea how much money this would make, most likely it would stay a sideline that would provide some additional cash while I get my masters, or while I do a 'proper' job somewhere else. We shall see. But yes, I'd say go for it, just make sure you have something to fall back on if it fails.
Sun 30 May | matt | How on earth did I manage to type 'mysql' in the middle of that sentence? weird. Incase anyone suspects me of wanting to do 'yet another content management system / web services framework' - that's not what I mean. Haha.
Sun 30 May | Herbert Sitz | 'In fact, a bigger question. Would it be 'possible' for me to run my own business with all my inexperience? ' To a large extent I don't think many small-business owners know much of anything about how to run their own business until they jump in and it's sink or swim. So really your inexperience isn't that big of a detriment. Also, one good benefit (I'm serious) could be that you aren't experienced enough to know how much there is that you don't know. Reflecting on everything that's required can get kind of scary. If, on the other hand, you don't know to think about it until you have to deal with it, that can be a liberating thing. Fear paralyzes. I wish I would have started some sort of business right out of college. You have lots of energy. You will probably need to find some way to support yourself with minimal income while you're starting the business and it's not producing any. Hopefully you can get something better than McDonad's, but take what you can get and there's something to be said for low paying jobs with zero responsibility. Struggling actors and artists frequently work in restaurants or as temporary office works to support their real work. Avoid getting a job in software that has decent pay but low prospects; it's too easy to get sucked into a job like that and forget what you really want to do. Don't worry about failing. Your startup business may fail. If so you'll have learned that failure is okay. Then start up another business with the experience you will have gained, if you want. Or look for a job as an employee if you've decided that you don't want your own business, and use the experience you gained in your failed startup as a plus on your resume. You should be aware that as a recent college grad you have more options and more freedom than you will at any later point in your life. Take advantage of it!
Sun 30 May | Adam | 'School has given you the feeling that you have to be educated on everything in order to try something. Cast this attitude aside.' Anon, I would appreciate if you elaborate on it a bit. Thanks.
Sun 30 May | Adam | Herbert Sitz, I agree with you. I also think that now would be the best time to go for my own business. Because, once I realize the difficulties of life it would be tough to break off and be entirely 'on my own'.
Sun 30 May | just an employee | Running a small business is a lot of work. Years ago I read an article. The president of Midas Muffler Shops (for non-USA readers, a big nationwide franchise chain of muffler shops (for non-car owners that is the device that prevents the exhaust from being ultra-loud - they also do some other types of work)) reached their retirement age for senior executives. He was not ready to stop working, so he bought a franchise and opened his own muffler shop. He said it was quite a shock. As a big shot at Midas headquarters, he was catered to, all his needs anticipated. Running his own shop, well, if the toilet got stopped up, guess who had to get a mop. Not everyone is tempermentally suited to running a business. In a corporate setting, the whole organization provides mutual support. The IS department keeps the computers running, but somebody else pays the electric bill. And the payables people who pay that bill need IS to keep their computers running. Sales sells but someone else makes what they need to sell. Start a business, unless it is VC funded, and there will be a time when the the founder pretty much has to do everything. And many people are not tempermentally suited for that.
Sun 30 May | Eric Sink | If the payouts at the slot machine are so good, then why isn't everyone doing it? A risk stands between you and every reward.
Sun 30 May | Norrick | 'In a corporate setting, the whole organization provides mutual support.' This has been the toughest thing to manage in going from working at a 75-person company to running my own consulting practice. Some days, there are so many things that need to be done just to *exist* as a business, I find myself wondering how I'm going to find time to actually BILL a few hours. ;) Like the man says, it is a lot of work.
Sun 30 May | anon | The reason I don't go into business already is that I would rather program than worry about g'damn tax law. Really, the filthy politicians/lawyers have stacked the deck against those who actually produce things: 'Size and complexity are only parts of the problem. Instability is a problem by itself. The code keeps changing: The foundation estimates that on average, every section is amended once every 1.4 years. The cost in time consumed, disputes, business plans delayed by uncertainty, and expenses incurred in hiring specialists can hardly be calculated. Estimates of annual compliance costs are in the billions.' http://www.staugustine.com/stories/011701/bus_0117010031.shtml Technical people in this country have got to wrest control from idiot lawyers/businessmen/bureaucrats. The least capable intellects are running the show and it's high time we evolve beyond these f'ing morons and their retarded 6000 page tax code, which ruins our nation just so tiny minds get job security.
Sun 30 May | yet another anon | Try catching the weekly PBS show Small Business School ( http://www.smallbusinessschool.org ). Every week they profile a different small business, including how they got started. The website gives local broadcast times in the OnTelevision link. One thing I have noticed is that everyone I've seen profiled on the show had experience in (and passion about) the field in which they started their business. One myth that has been dispelled many times is that entrepreneurs are young and often self taught. The truth is that most businesses are started by people with experience who in many cases hold Masters or PhD's.
Sun 30 May | Adam | Anon, you just changed your words?
Sun 30 May | anon married man | McDonalds and Kentucky Fried were both started by people well into middle age. In fact, KFC's founder, was 65 when he started the business. http://www.kfc.com/about/colonel.htm
Sun 30 May | JT | If you want to write software all day, then the last thing you want to do is start your own business. One of the first things I discovered was that as a businessman, you have a lot more on your plate than as a developer. Instead of spending my whole work day writing software, I now probably spend about half my time developing. The other half is spent in marketing, selling, accounting, advertising, talking with customers, or doing things that help me to be a better businessman (like reading Enterpreneur magazine or Stephen Covey books). You need to decide what it is you really want to do. If you 'just' want to write software, then you are best off looking for a place like Fog Creek to work (or so I've heard). If you like risk, stress, learning new things, and aren't afraid to make [costly] mistakes, then starting your own business just might be for you.
Sun 30 May | Edward | It doesn't have to be an either/or situation. I tried running a business for about a year. I learned an incredible amount about running a business, and about myself. That said, it was a financial disaster, and I doubt I'll ever try it again. I'm very glad I tried it though. Life is short: pack as many experiences into as you possibly can.
Sun 30 May | Chen-li Fan | ''If business is so rewarding then why isn't everyone running his or her own business?'' Because you can't have 200 million 1-person businesses. Seriously.
Sun 30 May | JT | 'Life is short: pack as many experiences into as you possibly can.' Well said. And you're right, the two options needn't be mutually exclusive. I know a lot of guys who have regular full-time development jobs and then write and sell Delphi components in their spare time. It doesn't make them a full living, but it's also not a full-time commitment. They get the best of both worlds, I guess. There is something to be said, however, for the Cortez approach: When he arrived in the New World in 1519, he burned his ships. With no way of going back to Spain, his men were forced to survive in the New World, or die. This is not the answer for everyone, but it is worth considering.
But, but... I thought Apache was secure? | Sun 30 May | Philo
I saw an ad for Portola automated patch service for Apache in a news article. Heres the first paragraph from their website: When a new vulnerability is reported for an Open Source application, there is a race between those who issue fixes and those who would exploit the vulnerability to break into your server. For many sys admins, the problem is compounded by the time it takes to receive notice of the vulnerability, and the time and skill required to compile the source into an RPM or Deb package. ? If this is in an ad that someone paid to put on a news site, it must be a pain point for Apache admins. With all sincerity, if this is the case, then whats the beef with IIS? Is the ad just FUD for managers? (Like, would the sysadmin say slow down, boss - this isnt that big a deal?) Philo
Sun 30 May | Eric Debois | Gawd I hate posts like this. You are arguing against some generalized mental imaginary oponent of yours. Whos beef with IIS? And what did that person say about apache? Not that I doubt people will respond in an equally over argumentative fashion.. but that only means you were successful in baiting them. I agree that there is a point somewhere in there, but how about stating it like 'I consider the fact that there are commercial patch managment systems available for apache to be an indication that apache security is no better then IIS security' See, much more straight forward. Less flaimbait.
Sun 30 May | Justin Johnson | Like anyone selling a service, they slightly exagerate the difficulty of the problem for which their service is a solution. For both Apache and IIS, the problem is less about getting the patch as it is about applying it smoothly and being confident that it doesn't break the existing setup. Like a good IIS admin, a good Apache admin will have things arranged so that patches are easy to retrieve, test, and install. For some, that may mean using a service like this. In short, that ad says nothing about Apache's merit.
Sun 30 May | Philo | Eric, I did not mean to troll - I was sincerely looking for a reply like Justin's. I'd be interested to hear from other Apache admins about their real experiences with patch management and vulnerabilities. Part of it is competitive - true. But I believe in informed competition, since that should, in theory, provide better products across the board. In addition, I'm honestly just curious - I've done Oracle and linux, but I've never run an Apache server. Philo
Sun 30 May | Philo | Man, I just read the topic title again. That's *really* whiny - I am so sorry about that. :-) Philo
Sun 30 May | Herbert Sitz | Isn't it obvious that on the internet there is no 'secure', there's only 'less secure' and 'more secure'? Nobody in their right mind has ever suggested that there were no security problems at all with Apache. Of course there is a need for patches. It would be interesting to compare the time to response for Apache patches vs. Microsoft patches, after a security hole is identified. Of course at that point it's a 'race' to get the hole patched, whether it's an open-source product or a commercial one. Also interesting would be a comparison both of the number and the severity of security holes in IIS and Apache. Anybody betting that IIS has fewer holes and/or that they're less severe than Apache's? As Eric said, your original post boils down to, 'I consider the fact that there are commercial patch managment systems available for apache to be an indication that apache security is no better then IIS security.' But who ever thought that Apache needed no patches, anyway? A web server could be a hell of a lot more secure than IIS and still have a need for patches. I'm not saying that Apache is more secure. Just suggesting that the existence of patch systems for Apache doesn't really suggest that IIS and Apache are 'equally insecure'. (Also, in a post like this, wouldn't it be more honest if there were a disclaimer, 'Note: I work for MS.')
Sun 30 May | Eric Debois | Philo > Ok, apology accepted.. I may have over reacted a bit too. ;-)
Sun 30 May | kc | Bad bad Philo. No Solitaire for you today. ;)
Sun 30 May | Security Expert | Obviously if you want a secure product, your best bet is to drop Apache and stick with Microsoft products.
Sun 30 May | FullNameRequired | heh. Im impressed that you genuinely believed that apache needed no patching philo. If thats the incredibly favourable impression microsoft in general has of opensource software, no wonder its panicking....
Sun 30 May | Clay Dowling | Apache is generally pretty secure. My server hasn't needed security patches over the last couple of years. The updates have tended to be minor bugfixes that affect individual modules. The IIS server that I use for VS.Net development need pretty regular updates (or did, updates seem fewer of late). The other posters are right though. All servers do need updating from time to time. All of the major free UNIX variants have made it easy now, but it didn't used to be that way, and older servers might not have the mechanisms in place. I would advise against purchasing a service like that advertised though, and instead update the operating system and use its mechanism. All of these operating systems are built and supported by people with servers of their own to maintain, and they have better things to spend their time on too.
Sun 30 May | Jan Derk | Sure Apache needs patches just like any other application. Just check the Apache history. Upgrading it on any Linux distribution is a complex as using the Windows update though. If you are able to type up2date you are done. So yes bringing out a new service to do just this seems like FUD for managers to me. It makes me think of expensive spam solutions offered in several advertisements. I checked out one or two and they just seem to route the customer's email through spamassassin. Using free software doing trivial stuff while billing $10 per month per email address for a 5000 seat company is a very lucrative business.
Sun 30 May | a cynic writes... | I'm surprised no one has mentioned where Apache got its name, which might be slightly relevant . See http://httpd.apache.org/docs/misc/FAQ.html#name for the official version.
Sun 30 May | Philo | FullName, it's not that I didn't think Apache needed patching at all - it was the parallelism of 'patches come out, the crackers jump on it, and it's a race to get them installed.' From the general attitude of many anti-MS types, it seemed that those weren't things most non-MS sysadmins had to worry about. In particular I was thinking about the general /. reaction to 'patch comes out, thirty days later worm runs wild' situations on MS platforms... I guess it was a bit refreshing to see that we all face the same demons* no matter what the platform. :-) And cynic, of course - I knew that, but didn't put two and two together... Philo *Daemons, on the other hand, are of course platform-specific...
Sun 30 May | a cynic writes... | Philo Since in truth any system can be made secure the real question is 'which is easier to secure and maintain?'. From the comments above it would appear that Apache has the advantage. As an aside, in my experience the biggest issue with patching MS systems is that often a reboot is required, whereas UNIX-like systems you can get away with just starting & stopping the service / daemon. (caveat: my unix / linux experience is very limited.)
internship->job offer? | Sun 30 May | marty
Hi folks, Im going to be doing a summer IT internship at one of the major investment banks in NYC, and was wondering: how often do those kinds organizations extend full-time job offers to interns? What can I do to maximize my chances of obtaining such an offer?
Sun 30 May | Tom H | Your chances of being hired are very good, if you do your part. They'll probably have the usual set of code/build/test standards; follow them to the letter. I've seen interns who think they're such great programmers that they should be allowed to do things their own way; needless to say, they don't get hired. If you have some time when there's nothing for you to do, pester your boss for an assignment; don't even think of sitting at the computer playing solitare or reading JOS forums. Be as friendly and outgoing as you can without being a pain, you'll want people to remember you as someone nice to have around.
Sun 30 May | Tom Vu | >>What can I do to maximize my chances of obtaining such an offer? Are you programming trading systems there or are you part of IT? If you are doing trading systems, master C++ multithreading, learn a messaging 'middleware', and learn the business. If you are part of IT, then it's the same job at any large firm.
Sun 30 May | Steve Monk | As long as the economy doesn't take a turn for the worse, you generally have to really be a screw-off to not get an offer. That's why most of these internshipts are paid at about the same rate as a new entry-level hire. Generally they will have a project or two in mind for you to work on. It won't be something super interesting unless you're really lucky, but pretty much do a good job on that and you're an automatic hire.
Sun 30 May | Myron A. Semack | 'What can I do to maximize my chances of obtaining such an offer?' Don't screw up. Most of our interns get a job offer, assuming the following things: - They actually add VALUE to the company. They're not just sucking the life out of the more experienced guys. Obviously, they ask questions, but they have to actually ACCOMPLISH something. You'd be amazed at how many people screw that up. - They're compatible with our culture. We're a small company. A lot of interns we interveiw expect us to do things that big companies do, like fly them out to their location, pay for housing, etc. We do what we can, but there are limits. Some candidates don't understand the benefits of working for a company that isn't run like a Dilbert cartoon. - They prove that they are as smart as they look. Some people interview really well, but turn out to be morons once they start working for you. - They express a desire to work there. Many interns look at their position as a way fill in the summer months, with no intention of staying. - They show some fexibility. Interns usually get pulled from project to project, depending on where they can be used best. Some poeple can't handle that. They want to sit at their desk and be spoonfed.
To Dubai or not to Dubai | Sun 30 May | Adam K.
I have a colleague in Abu Dhabi, United Arab Emirates. His asked me to come and look for work there. What I want to ask is, has anyone worked/works in the UAE?. Be it Dubai or Abu Dhabi, Is the place overhyped? Ive currently got 5 years of experience in various I.T. fields. Anyones input would be much appreciated. As I have to weigh my options soon.
Sun 30 May | Just trying to be helpful | Well, it looks like the middle east is not the place any westerner would want to be, I dont know how much safe Dubai is. Just look at the situation in Saudi Arabia.
Sun 30 May | Adam K. | Well, thats what i thought at first. But my colleague stresses that the UAE is much more safer and does not suffer from the same in instability that is rocking saudi arabia. kind of explains why Dubai has been dubbed the 'Singapore of the Middle East' :)
Sun 30 May | . | Honestly, if I got the chance to go to the UAE, I think I'd take it.
Sun 30 May | no name | i was once in dubai for a week as an it guy. what i heard that it's very safe, so safe that it's dangerous for western guys as there are some laws that you do not really understand and it can lead you in trouble
Sun 30 May | Poof | My friend was in Dubai to do some business consulting about a month ago, he told me that the place is wonderful and the food is magnificent. But I gotta admit, I have one weakness, I gauge any place mostly by its food, that is what is my number 1 priority for me all the time. What else is there...hmmm, people are people anywhere, they treat you just as you treat them. The people who he came into contact with he said were very intelligent and interested in what he does.
Sun 30 May | Just trying to be helpful | You would think so. But Adam, those Arab regimes are mad. Absolutely insane and mad. There was this popular case of a few westerners. In retaliation to the treatment of Arabs in US after September 11, they locked them up and tortured them. Of course, i dont mean that the US or any other country is treats foreigners well. There are cases where Arabs are mistreated here in US too. Ashcroft and Bush are equally mad. All said and done, consider all this before you go. If Iraq gets worse, it is the ordinary tourist/visitor who bear the brunt in form of increased terrorist attacks. I mean, its not a risk worth taking !
Sun 30 May | Dave Levi | I've worked in 2 places in the middle east over the past 7 years. Tel Aviv(israel) and Dubai(uae). The former is quite racist and the people have a very patronising attitude when dealing in business. Arrogance is the order of the day. The latter is very much a breath of fresh air. The Arabs tend to be down earth and always curious to what new innovation you'll bring to the country. Very hospitable people too. Its a city that has the strength of the singapore economy, yet with a more warm eastern touch. So i say, go for it matey!!!
Sun 30 May | Dave Levi | 'Just trying to be helpful' Have u actually worked/lived in the mideast?. I have many colleagues working in saudi arabia, kuwait, bahrain and uae. None of them have voiced complaints to the degree you make it out to be. Although you might get the rare one in a million attack. Its no different then walking down a new york street and getting mugged. And the uae is very safe,, too safe maybe. The law is the ultimate rule. I have never come across an expat who has been jailed or even harrassed. I guess the rule is, if you follow the law, you'll be ok. simple as that.
Sun 30 May | Just trying to be helpful | No i havent worked in the middle east. I ought to clarify to the OP and everyone else here that the post was NOT a reflection of the Arab people but the prevailing world situation and the Arab REGIMES. You simply do not know what will happen next as a result of what is happening in Iraq. Terrorists look for soft targets these days. Look at the attacks on British targets. The madness of Bush and Blair are a threat to every innocent western person who goes to the middle east. See the travel advisories. The Americans themselves ask you to avoid visiting many of these so called friendly places. Look what happenned yesterday. People (Westerners) were taken hostage and 10 innocent people were killed. Does this reflect on the Arab people?. No it does not. But is the middle east safe for westerners?. You got to be kidding if you say 'Yes'. The hostage taking there is no aberration. Bush and Blair have lit a fire there which has just started to spread. I can tell you (from experience) that Muslims get deeply offended if anything is done regarding their religious sensibilities. After all the abuse incidents, you simply dont know what is going on in the minds of several of the fanatical elements there. Not a risk worth taking. Again, i stress to point out that i think the Arabs are as friendly as anyone else in this forum. But its a risk.
Sun 30 May | Just trying to be helpful | If you do decide to go there, maybe you can ask in some forums on the precautions you need to take etc. Be careful Adam and best wishes !
Sun 30 May | Tom | There's an article about Dubai in this week's Economist. I don't know if the crown prince (?) took the writer out to dinner, but it's pretty gushing. No taxes either, it says here. Mind you, that was probably printed last week, before whatever happened in Saudi Arabia happened.
Sun 30 May | Rob | The U.S. State department keeps updated info on every country, with travel warnings, local customs to be careful with, embassy contacts, etc... http://travel.state.gov
Sun 30 May | Brad Wilson | When a country is strongly Arabic and Muslim, I would say you really ought to consider what it's going to be like if you are not either Arabic or Muslim. Especially if you don't speak Arabic, as that's the official and predominant language. If you look like an American Christian, and act like one, then that makes you a target even inside a friendly country. These aren't peaceful times between the US and Arab extremists. It has nothing to do really with the specific country and whether they are friendly to the US (as the UAE clearly is). Would you be safer in the UAE than in Iraq or Iran or even Saudi Arabia? Yes. Would you be safer in the UAE than the USA? Definitely not. This is not a decision to be taken lightly. Good luck.
Sun 30 May | Stephen Jones | I like Dubai and it's getting better all the time (and no cheaper unfortunately!). Two-thirds of the population are Indian expats anyway. The Emiratis are very friendly towards westerners, but that is true of nearly everyone in the Middle East. The problem are the ones who decide blowing up innocent civilians is some kind of laudable political statement; the actions of the British and American governments does nothing to disilluison them in this respect. Even in Saudi a westerner is still more likely to die in a traffic accident than in a terrorist attempt, though you could say that says more about the driving than the state of security in the country. The Emirates and Oman have been pretty well trouble free, and whilst there is definetely a Western exodius from Saudi, there appears to be no such thing from the Emirates (indeed competition is probably hotting up as many of those in Saudi go around applying for jobs). I would be more worried in your position as to the quality of your job. The Emiratis pride themselves on being more efficient than the Saudis but there isn't really much competition there, and a lot of the IT world is run by Indians not good enough to get jobs in the UK or US, whilst the managers are quite likely to be clueless (and if you ever wonder where pointy-haired managers go when they are finally found out and dismissed in disgrace, the answer is to a tax-free life in the Gulf).
Sun 30 May | Stephen Jones | ---' Would you be safer in the UAE than the USA? Definitely not. This is not a decision to be taken lightly.'--- Any statistics on this one? Incidentally what makes you think Iran is so dangerous for a Westerner?
Sun 30 May | Stephen Jones | Incidentally, I don't know what is the predominant language in Dubai (English or Urdu at a guess), but it is certainly not Arabic.
Sun 30 May | Brad Wilson | 'Incidentally, I don't know what is the predominant language in Dubai (English or Urdu at a guess), but it is certainly not Arabic.' http://www.state.gov/r/pa/ei/bgn/5444.htm 96% Muslim, Arabic is the official language. I wasn't just making things up. :-p
Sun 30 May | Adam K. | So Stephen, from your experience, how do you see Dubai fairing in 10 years time?. And is it really the case, where managers etc dont have a clue about what they are doing?. Thats my nightmare scenerio if i ended up working under one of them.. been there done that...
Sun 30 May | Stephen Jones | You might not have been making it up Brad, but I am not sure they weren't :) Arabic is the official language, but I doubt if more than one-third of the population speaks it. After the Iraqui invasion of Kuwait in 1990 the Gulf States got paranoid about losiing control to Palestinians or Egyptians and so started giving visas for unskilled work to Asians of different nationalities. In Dubai you definitely see many more Indans (inlcuding Bangladeshis, Pakistanis and Sri Lankans) than Emiratis. That's why they are thinking of moving the headquarters of the ICC there from London. Also Dubai is the capital of the Indian Muslim Mafia. Dawood Ibrahim among others all live there
Sun 30 May | Stephen Jones | In ten years time it's hard to say. Abu Dhabi has the oil and the Emir of Dubai has positoned his country as the tourism hub of the region. The fact that planes normally need to touch down somewhere in the Middle East means that Dubai is becoming an internaitional airline hub (the airport is fabulous). Now the oil may run out, or the water might, but neither is likely to happen in ten years. As for incompetence - hard to tell. I would hate to work in IT in Saudi, but Dubai may be better. Depends on exactly what you are doing. And it could play in your favour. 'In the country of the blind .......'
Sun 30 May | MacSqueeb | Regarding safety, the question should not be, 'is going as safe as not going?' The question should be, 'is it safe enough for my level of acceptable risk?' That said, don't base the safety decision on opinions expressed in some forum on software development; use the link Brad gave above and get the straight dope from the State Dept. Personally, avoiding any and all avoidable risk is not my top priority in life--living a life I consider meaningful is significantly more important. If it was me, and I was single and a few years younger, I would definitely go for it.
Sun 30 May | MacSqueeb | Here's an anecdotal account. Around Christmas my brother spent a week in UAE on business and loved it. He and his business contact there (who is Muslim) hit it off and became fast friends.
Sun 30 May | Stephen Jones | I don't know about the 'straight dope' form the State Department. My American colleagues view it as CYA when not politically motivated. As they all live in bunkers anyway, it's hard to say how they can actually have any information at all. Still at least their advice is straightforward if not very practical. The British govenrment's advice for Saudii is a masterpiece of vacuity. UK citizens should leave Saudi unless they have compelling reasons to stay there - those who don't presumably being the legions who came here for a taste of the sun and the sand! The ambassador is supposed to be here on Tuesday, so I'll take time off work to hear some more vacuity (at least I might pick up some tips on buck-passing, which seeing has half of my job is hiring Americans and Brits to come over here is going to be pretty necessary!).
Sun 30 May | Stephen Jones | Those living in bunkers refers to the diplomats. My American colleagues, like myself, are surrounded by concrete barriers which will stop terrorists as long as they don't get out of their cars (which I suppose, being Saudis, they will be most disinclined to do).
Preparing to divorce our hosting company... | Sun 30 May | Chas Emerick
Hi all. I know there are oodles of discussion boards dedicated to talking about hosting companies, but the signal/noise ratio there is typically pretty low, and Im hoping to get some enlightened recommendations here. The situation: weve been with Rackspace for three years on a dedicated hosting plan, and were getting ready to do a wholesale migration to a completely new server. Theyve been great up until now. Now, they are trying to push RedHat AS 2.1 or 3.0 on us, because theyre supported and designed for mission-critical applications. Well, theyre also built with ancient packages (yeah, were talking internet-time here): glibc 2.2.4, python 1.5.2, etc., etc. Now, to get up to something that we can use (and that matches our development systems, which are running Fedora Core 1 right now), wed have to upgrade over 200 packages (according to apt-get). This is not the kind of hassle one should have to go through with a brand-new box. (Before you ask, so many packages would have to be touched because we need glibc in the 2.3 series, which forces an upgrade on tons of software on the box unless we want to try to maintain multiple versions of glibc (which Ive done before, with great pain in the end that I dont want to relive in a production environment). So, barring an about-face by Rackspace, were casting around for a dedicated hosting provider that will enthusiastically support RH 9.0 or Fedora Core. Suggestions, oh pretty please? (BTW, feel free to comment on whether you think were nuts, or over-reacting here.....)
Sun 30 May | Koz | Another thing to bear in mind is that if you *did* upgrade all 200 packages, you wouldn't get support from redhat.
Sun 30 May | Chas Emerick | Koz -- That's the screwiest thing of all. Rackspace told me tonight that they'd install Fedora Core 1 if we really wanted it, but that it would be unsupported (whether by them or RH, I've yet to clarify). However, they have the position that if we did upgrade AS2.1 to a point where we could use it, that system would still qualify for full support from all parties concerned.
Sun 30 May | Employed Russian | > we need glibc in the 2.3 series Why in the world do you 'need' that? Is there some crucial piece of functionality I've been missing all these years, or is it simply because you build on Fedora Core1? There are ways to build glibc-2.2.x-compatible executables on FC1, you know ...
Sun 30 May | Simon Lucy | What is having Red hat support going to mean for you, or on the other hand what is not having it going to mean? It strikes me that either the hosting company provides the support, or you have a naked box kind of deal and you employ your own system admin. I've never quite understood what it was Red Hat could do that anyone else couldn't also do.
Sun 30 May | Chas Emerick | We're building on python 2.3.x. Both the binary and source RPM's report dependancies on libc (glibc) 2.3.something. I could care less about red hat's support, exept for the fact that rackspace's support now seems to be tied to it. Rackspace has saved our butts a couple of times, including one really nasty time about a year ago when our pam configuration somehow got nuked, and one of their technicians spent about six hours back and forth with us on the phone getting it resolved (with no additional fee). Now they're saying that if red hat doesn't support it, they won't either. That makes them no better than a good colo as far as I'm concerned.
Sun 30 May | Jan Derk | You will be hard pressed to find a serious dedicated host offering either RH9 or Fedora. RH9 is EOL so it won't receive any more (security) updates and Fedora is cutting edge, which makes it a support nightmare for the host.
Sun 30 May | anon married man | > no better than a good colo What the man said. Why pay for 'support' when it isn't provided. That said, building a really complex app will almost always require colo. There are too many configuration choices made otherwise.
XSLT Mapper? | Sat 29 May | Philo
Can anyone recommend a half-decent XSLT mapper? Something where you can open two schemas and drag n drop nodes back and forth to get a running start before diving into the text? Altovas (the XMLSpy folks) Mapforce doesnt do mixed content nodes, which translates to: if a mapped node on either side isnt marked simple then it refuses to play. Philo
Sat 29 May | Jason | Huh?
Sun 30 May | Michael Moser | http://www.tibco.com/software/business_integration/xmltransform.jsp - was good, sort of. Can't you export the xslt from your very own Biztalk?
Sun 30 May | Jilles Oldenbeuving | Last time I worked with BizTalk, this was possible. With something called "Data Mapper" or something similar, IIRC.
Sun 30 May | Philo | For Jason, who I'm guessing got confused at the 'mixed content' bit... XML allows what are called 'mixed content' nodes - nodes that contain both text and other nodes: Some data More Data Other Data It's discouraged, especially in xml used for data storage, but it's allowed. However, it seems that *dealing* with mixed content nodes isn't trivial, based on the number of applications I've found that don't support them. There are two problems with this short-sightedness: 1) HTML. HTML is generally mixed content: Four score and twenty years ago, our forefathers brought forth... 2) 'Either/or' nodes: Philo -or- Philo T Farnsworth Now as a developer you may not like them, and would never use them, but the reality is that you don't always get to define the schema. And when you have to deal with a foreign schema, you take what you get and make it work. So I'm trying to map an output schema to an industry standard schema - Altova's MapForce won't even let me map to a node unless it's marked 'simple'. In XML, nodes are 'simple' or 'complex.' 'Simple' nodes only have attributes and text; 'Complex' nodes can have other nodes. In Altova's MapForce, if you try to map a value to a node that isn't marked 'simple' (no matter if the schema indicates it has child nodes or not), it throws an error. Period. End of discussion. And since it's not my schema, I can't just redefine it to make the application happy. I've been toying with Stylus Studio ( http://www.stylusstudio.com ) and it seems to be pretty nice - it's definitely more flexible. I'll take a look at the Tibco package, too. As for 'why not use Biztalk?' - I don't have a local installation handy, and installing it to use it as an XSLT mapper is a bit like building a workshop to cut a piece of wood. :-) Philo
Sun 30 May | Chris Nahr | Mixed-content nodes are also necessary for using XML as a reasonable word processing format, i.e. DocBook. If you try to use XML for word processing while avoiding mixed-content nodes, you get unreadable monstrosities like WordML...
Sun 30 May | kc | I was at an Altova presentation last summer about the latest XMLSpy & Mapforce and it's 'wonderful' integration with MS IDE, etc. I've been using XMLSpy for about 3 years and I've found it to be getting progressively worse if you're not in an entirely MS environment. Philo, check out http://www.aspectxml.org/ It's using some of the Aspect Oriented Programming (AOP) techniques to weave together XML Schemas using OSS tools. It might be right up your alley. (I'm one of the founding contributors, so I'm a bit biased.)
Sun 30 May | K | It's been my experience that every xsl mapper that I have tried rolls around in dead fish and barks at the moon when you are trying to do anything more difficult then connect on set of simple elements and attributes to another set of simple elements and attributes. BTW writing xsl has been about 75% of what I have been doing over the last month so I actively hunted for something to speed me up. Mapforce by altova wouldn't run for more then 10 minutes and couldn't recover a project, even if you had just saved it. Tibco's product has promise but it keeps guessing what I want to do. Frequently its guess is wrong. Biztalk keeps putting stuff in that only biztalk can do instead of just giving me straight xsl. The state of graphical xsl mapping today reminds me of the early WYSIWYG HTML editors. If you are doing someting simple and can go into code and fix the errors after you are done they might buy you some time. If you know what you are doing or are doing anything even a little complex you will find yourself gnashing your teeth and wailing into the outer darkness. Good luck
Sun 30 May | Philo | I ended up staying with Stylus Studio because it did *exactly* what I wanted - let me pull in two schema, connect a bunch of nodes to give me a jumping-off point, then got out of my way to let me muck about in the markup itself - it gives decent color coding and intellisense, and of course lets me run the transform against an XML file to see how I'm doing. I'm pretty happy with it. :) Philo
Cost of living in NY too much to handle? | Sat 29 May | Native NYer, trying to get back home
I know this isnt JoelsReadersOnNYCLiving.com, but alas, the NY forum is long dead... Ive got a $90k/yr job offer to work for one of the large investment banks in midtown. Right now, Im thinking about moving into a suburb north of the city (so far Nanuet & that area), and taking the 60-90 min. NJ Transit ride into Penn, and walking the mile to the office. Anyway, Ive got a 4-month-old and stay-at-home wife, who would drive me to/from the train. Well only have one car that were going to keep registered in NC, and were looking at spending ~$1800 on a nice 2BR/2BA. Am I being realistic that Ill be able to maintain the lifestyle I currently have, getting $55k/yr in the middle of nowhere, NC, or is the cost of living in NY going to be too much?
Sat 29 May | Sexist | If you're really willing to commute for 60-90 minutes a day, then sure, 90k in New York is equivillent to 55k in middle of nowhere, NC. In fact, the financial institutions here nearly always give big bonuses (20-70% of your salary depending on how good you are), so when you factor that in, you'll come out ahead. If you're willing to commute, you'll have no problems at all. But with a wife and a kid to support, you'd probably have a slightly tough time living in Manhattan. It's certainly doable, but your apartment would be substantially smaller than the one you have now.
Sat 29 May | Philo | 'In fact, the financial institutions here nearly always give big bonuses (20-70% of your salary depending on how good you are), so when you factor that in, you'll come out ahead' Don't ever, ever, EVER factor bonuses into the equation when the question is 'can we live on this?' Notice even the poster above said 'nearly' always give... You MUST be able to pay your mortage, car payment, bills, etc, on your salary. A bonus is just that - a bonus. Now, you can use a bonus to decide between jobs, or even to decide whether or not to jump ship. Just don't use it to decide if you can afford to live in an area. Philo
Sat 29 May | Native NYer, trying to get back home | I wouldn't consider bonuses as anything but that, a bonus.
Sat 29 May | JWA | www.bestplaces.net has a good cost of living comparison. I'm not sure where you are in NC, but checking from my area (Milwaukee) they show NYC as being 150% more expensive. Milwaukee is right at the national average, and NYC is the most expensive in the country. So, assuming that where you are in NC is around the average, you'd need somewhere in the area of $125K per year to be comparable. They have a pretty detailed breakdown, so you can see how the things that affect you most compare. Hope that helps, --Josh
Sat 29 May | Blah | Ignore the people babbling about bonuses... they've obviously never worked at a buldge-bracket ibank.  Bonuses at investment banks are a much more dependable source of income than they are at software companies.  (Even during two of the worst years on wall street, 2001-2003, my bonus was not cut)
Sat 29 May | Dennis Atkins | I just ran it against Total Cost of living US Average = 100.0 New York City = 193.4 Boone, NC 90.9 So $55k in Boone requires $117 in New York to have the same standard of living -- sounds like they are presenting you with a pretty bad offer. Since you have children, don't forget that the schools in NY are among the worst in the US, and the schools in NC are among the best. Crime, pollution and health of the populace is also substantially worse in NY than where you are.
Sat 29 May | Junichiro Kawaguchi | I am wanting to be working in New York city two. I did have get my start from a business bank as well ,mine being in Fukuoka. Would I being having trouble working in New York if I am not also being a citizen of America ,maybe? How is the cost of life compared against Tokyo?
Sat 29 May | Dennis Atkins | Check it out: EDUCATION Boone New York US Avg. High schl grad. 78.3% 73.4% 79.5% 2yr coll. grad. 4.6% 5.8% 7.6% 4yr coll. grad. 24.0% 16.1% 17.3% PhD Graduates 20.2% 11.3% 8.5% School expend. $4,984% $7,414% $5,928 Pupl/tchr ratio 12.0 18.8 17.7 Achievment index (10 = best) 7.8 1.4 5.1 So the schools in backwater hillbilly land Boone are six times better than those in NY. in addition, there are FAR FAR FAR more high school, 4 yr college, and PhDs %-wise in Boone than there are in NYC. In Hillbilly Backwater Boone, you will find more intelligent people and more cultural opportunities than you would in NYC.
Sat 29 May | Dennis Atkins | Junichiro, NY is WAAAAAAY cheaper than Tokyo, which is the 2nd or 3rd most expensive city in the world.
Sat 29 May | Somorn | I'm willing to commute a max of 45 min a day (that is 45 getting there and 45 getting back). If this is a problem for the company and they still want me they should think about relocating as they are not at a ideal location. It's time that companies realised that being there physically is not that important. And governments should favor it as it cuts on traffic and pollution if I could work from home. Ok once a week would be ok to be in the office.
Sat 29 May | Somorn | Oops after reading the whole thread I noticed that my post was off topic pls excuse.
Sat 29 May | Native NYer, trying to get back home | I appreciate that living inside NYC itself, particularly Manhattan, is not possible, given the offer. If I were single, or perhaps just w/o the baby, I might have given NYC living some consideration. But, after growing up in the NYC metro area, and watching my dad leave before I woke up and come home around 6:30, commuting via the train just seems natural to me. So far, my cost-of-living comparison looks like 95.7% NC vs. 141.0% NY (still taking Nanuet as an example, and 100% as nat'l avg.). That math puts my current $55k as about $81k to maintain my current situation, which on its surface looks good. So, I guess I'm more concerned with hidden gotchas - taxes, other-consideration-X that internet statistics might not reflect. Thanks for the advice thus far.
Sat 29 May | Native NYer, trying to get back home | One more thing - I'm in eastern NC, far from Boone, deep in tabacco farm country.  The school ratings are awful, and the culture here is nil.
Sat 29 May | Sam Livingston-Gray | There's a city more expensive than Tokyo?  I remember SF usurped Tokyo's slot briefly while I was living there a few years ago, but I always figured Tokyo set the standard with 75-year mortgages, etc... (=
Sun 30 May | Dennis Atkins | Beijing, Shanghai and Hong Kong are more expensive than Tokyo now, even though Tokyo was #1 for a long time. Tokyo is a much better city to live in than in any of the ones that beat it.
Sun 30 May | Dennis Atkins | Well Native, if you are far east, you must live either near Asheville or Atlanta - you don't find any culture in those places?
Sun 30 May | Dennis Atkins | Oops sorry was thinking west not east. Eh, there's always Kitty Hawk, that's good for a day of culture. And uh, there's those lighthouses and some real nice beaches. And what about those islands?
Sun 30 May | Mr. Analogy | 'It's time that companies realised that being there physically is not that important' Yes, companies have realized this. Just in time for outsourcing. Watch what you wish for.
Sun 30 May | Josh Jones | One thing to consider.. assuming you end up making about the same amount after adjusting for the cost of living, financially it makes the most sense to live the place you get paid the most (absolutely). Why? Because you'll be able to save more for your retirement! If you work in NYC, when you retire you should be able to live comfortably in NYC or well in NC. If you work in NC, you'll only be able to live comfortably in NC when you retire... NYC won't be an option!
Sun 30 May | Tom H | Is your wife also a New Yorker? With you commuting 3-4 hours per day, she's going to be pretty much on her own, in a small apartment with at least one baby. Major homesickness without a support system. Financially you can live either place, but be careful you don't end up with a lot of resentment caused by either moving or not moving.
Sun 30 May | anon married man | I don't work on the East Coast but friends who day are constantly talking about 100K, even outside of the NYC area. I think they are taking advantage of your low salary (by NYC standards) in their offer to you. You could try saying something like 'The only thing that's keeping me from taking this job is the salary, given the cost of living in the NYC area,' and see what happens.
Server Uptime? | Sat 29 May | Tom H
If you ever wondered what server operating system is the most stable, check out this link. Maybe the average time between reboots isnt a perfect indicator of availability and stability, but theres one OS/web server combination on this list thats pretty impressive. http://uptime.netcraft.com/up/today/top.avg.html
Sat 29 May | Bob | None of those sites are known to be heavy traffic sites. An OS comparision of those sites is what I'd be interested in.
Sat 29 May | Eric Debois | http://uptime.netcraft.com/up/today/requested.html shows alot of well known sites. Note that they are not sorted by uptime. Also, most of these sites are so big they probably run loads of servers, and I dont know exctly what uptime is meassured. All netcraft sees there is probably the load balancers.
Sat 29 May | Tom H | 'I dont know exctly what uptime is meassured' The FAQ explains what they're doing. Although as you say, on a clustered site like Google or Yahoo the numbers have to be suspect. http://uptime.netcraft.com/up/accuracy.html Interesting that www.sco.com is hosted on Linux. I guess they figure they own it so why not use it...
Sat 29 May | Junichiro Kawaguchi | That is being the reason we using the apachi and BSD
Sat 29 May | Koz | That's a silly reason to use BSDi, as the link states: Additionally HP-UX, Linux, NetApp NetCache, Solaris and recent releases of FreeBSD cycle back to zero after 497 days, exactly as if the machine had been rebooted at that precise point.
Sat 29 May | Somorn | I don't think uptime should be seperated from high volume sites. As a high uptime site should have the same results with a high load if scaled well.
Sun 30 May | Li-fan Chen | Server Uptime is a good idicator, but for the most sophisticated sites you'll have to manage, the big round numbers means jack *bleep*. No down-time could possibly be tolerated. To the customers,  they care about your service uptime--in terms of response time and availability. If you expect to make them happy, you'll have to properly handle say the the downtime of a FreeBSD box that's usually up for 2+ years at a time just as well as you can properly manage a cluster of specialized server that may reboot multiple times a day and have service and software updates any time of the day. The key thing to remember here is that some people need to reboot their machine or mutate their service offerings all the time not because their vendor is Microsoft but because that's part of the service expectation or design. If you dig deep into it, few Linux and Microsoft web-database stack will ever be asked to handle a genuine live upgrade the way a telecom's specialized billing system requires. The illusion of uptime is only made complete because 1) there's clusters of these PCs, and 2) because the illusion of a session and usage is never maintained in the inherently stateless web/application servers but in the backend databases. Blah blah blah blah blah blah blah.. I will go go get a life.
Center a PropertySheet dialog in Win32 API? | Sat 29 May | Alex
I cant find a way to center a tabbed dialog box created with PropertySheet(). I tried tweaking the resource template, moving the box on WM_INITDIALOG (even on WM_PAINT), changing the style from the callback procedure, nothing. One example is the Network Status dialog in Windows -- it always shows up centered. Any ideas?
Sat 29 May | Simon Lucy | From dim memory you get the resolution of the entire surface, work out the centre and use SetWindowLong to position the window before painting it.
Sat 29 May | Somorn | There should be a command like centerwindow that takes the handle of the window to be centered and the parent window. As you want to center on whole screen give the desktop as parent. I think thats the same as giving NULL as parent.
Sun 30 May | William Campbell | Somorn, the question asked how to center the propertysheet dialog using the WIN32 API. The suggestion you gave, CenterWindow, involves using either MFC or ATL. (According to my help, CWnd::CenterWindow is part of MFC and CWindow:CenterWindow is part of ATL). You should take the time to learn the differences, as you didn't answer his question.
Sun 30 May | Somorn | Aah why don't people just use google for these kind of questions? It's a lot faster then waiting for anwser here: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=6qsbfd%24nmm%241%40freeside.cls.net&rnum=20&prev=/groups%3Fq%3Dwindows%2Bapi%2Bcenter%2Bwindow%26hl%3Den%26lr%3D%26ie%3DUTF-8%26start%3D10%26sa%3DN Anyway I haven't used the MFC (I'm not even a programmer) but I know a bit about the WinAPI so I guessed there should be some function in the user32.dll that could center a window and normally the functionname descripes it's function. So what I meant was google for a win32 api that centers a Window. I found that you can use the MoveWindow, SetWindowPos but they require you to calculate stuff as they have no flag such as CNTWIN (which is a bummer) I do recommend that you use http://groups.google.com not because I think you bother anyone here but as motto of usenet is every possible question has been asked before.
Sun 30 May | Alex | Thank you, Somorn. It's a big planet, someone must have asked it before :) Incidentally, that page doesn't answer the question, but I found a workaround since then: WM_INITDIALOG gets called for the individual pages, I use GetParent and then MoveWindow on that handle.
Microsoft, Oracle build massive tech cities | Sat 29 May | karthik
http://www.silicon.com/research/specialreports/offshoring/0,3800003026,39120893,00.htm <> Its around 12% as big as its Redmond campus. A massive investment, IMO. <> Oracle already has around 2500 employees in Bangalore. Both Will create around 4000 jobs and help Oracle and Microsoft remain competitive against each other. Oracle manages to develop 24/5 because of its development centres abroad.
Sat 29 May | Philo | Man, I hope both sides produce white papers and studies about lessons learned from this - what an awesome resource that would be. Philo
Sat 29 May | Simon Lucy | A question comes to mind. Do we really need this much development?
Sat 29 May | blaZiT | This reminds me of what used to happen in Europe, companies provided everything for the employee and you had basically a life long contract. But when the market collapsed they had all of this and no use for it. I say let some third party (joint venture perhaps) arrange those tech cities. Then you when the market falls. You can just packup and move to another country.
Sat 29 May | Stephen Jones | I'm told they're recruiting the gardeners and waiters from all the unemployed American programmers. They're going to have a special shrine where they can all go and whine.
Sat 29 May | Philo | A whine shrine! Philo
Sun 30 May | karthik | <> I will add my bit here. The main problem with outsourcing is that the pain is very tangible (lost jobs) and the gains are intangible. For microsoft, they can get the same work at a lesser cost. This translates to 1)More money in the kitty for more investments in hardware and software benefiting (atleast in part) itself and other American companies like Intel, HP, Compaq. 2)More money means more taxes to the American government. This translates to better roads, better healthcare etc. And in Dubya's case more money for wars. 3)Most, if not all shareholders in Microsoft/Intel etc. are American. 4)India has no recourse other than buy hardware from US. More exports for US. 5)India, as Friedman pointed out is one of the few countries which is friendly to Americans. I mean, you can say you are American and not get shot. It is equally friendly as Europe. 6)You are helping lift a third world country out of poverty and it is a 'showcase' for American values of Capitalism+Democracy. 7)More money in the bank in America. This means banks can lend out more money facilitating more investment. So you see, Americans benefit in a myriad ways. None of it is directly apparent. Hence the uproar.
Sun 30 May | Landowner | 45 acres is that all? I've got 600 acres an hour outside of Albuquerque, 27 acres outside Flagstaff, and 71 acres in Sonoma Valley. Big deal!
Sun 30 May | no name | But you don't have a population density of 336.62 persons per square kilometer. The US only has 29.77 persons per sq km. Land there is much scarcer. (figures from http://www.photius.com/wfb1999/rankings/population_density_2.html)
When you have to be really quick | Fri 28 May | Wild Wild East
Dear Joel and participants of the forum, I wonder why all your articles are about more or less big software projects developing some end-user applications from scratch. There are many other sides of programming. For me, the most important side usually is creating simple tools for solving a specific problem, where the development time MUST not be more than a few minutes. Id like to have your opinion - and the opinion of other people here in the forum - about an example problem I describe on what programming language would you use. Situation: you are a consultant of an accounting software. You import data from an other software. You find out that the file format is not good, if column 8 is foo then column 3 must be bar. If you wonder, why would such thing happen, I will explain later. If you wonder, why dont just do it in Excel, I will also explain that later. So, you have to write a quick program to do it. Now, the problem is, that you dont have time to start typing public static void... I will also explain that later why. You want to do it really, really fast. What language would you use? My solutions: Id use CCC. CCC stands for Clipper to C++ Compiler, and is developed by a Hungarian company with with a way of thinking do things really fast. a) run FAR Manager (www.rarlab.com) b) Shift-F4, type fuckthiscsv.prg c) function main(fn) local in,line,out in:=fopen(fn) out:=fcreate(fname(fn)+2+fext(fn)) do while (NIL!=(line:=freadcsvln(in))) if (line[8]==foo) line[3]:=bar endif fwritecsvln(out,line) enddo return NIL d) save, type bapp_w32c in the FAR Manager command line (build application w32 console, its one of the ccc builders) e) type fuckthiscsv this.csv My question is: do you have any quicker solution for it? Any programming language, that is so quick to type, but not as unreadable as PERL? Now, why would such things happen at all? This situation sounds like a fucked-up project. Normally, you would know how the accounting software accepts data. Normally, you would do this in Excel, simply autofilter and and change by hand, or write a quick if(). Why dont I do that? Its a problem of economics. If you dont live in the USA, but in Hungary, then there is simply not enough money in the economy, and because time is money, you simply dont have time to do things right. You dont have time to know how the accounting software works, because you are pressed by your boss to go and do sales instead of testing, because the company needs money. You dont have time to write a correct CSV data manipulation software in 2 weeks in C, because there is money for that. It even stands for Microsoft Hungary. They dont have money to hire enough developers to localise Excel correctly, so if you open a CSV file which contains 3.12, then Hungarian Excel will guess its a date, and will convert it to 12th of March, and if you format the cell back to numeric, you will have something like 20328 or anything but the original amount, so you dont want to use Excel. Maybe these problems can be avoided by Regional Settings or anything, but you dont have time to test it out. The biggest problem is you dont have time to try to foresee such problems, all of these because time is money, money is not enough. So you have to be creative, trust in luck, and write programs really, really quickly. Which goes back to the original question: which is your language of choice for such tasks? You cant use traditional languages like C/C++, Java, or such, because these are designed for long, lazy, well-designed, well thought-out application building. Perl is too complicated, you dont have time to learn the syntax. I prefer CCC. And you?
Fri 28 May | aeo | Despite your protestations, judging by the length of your post, you don't seem like someone who is in any way pressed for time...
Fri 28 May | Cubist | If it's just quick file readings or conversions, I use C++ (VC++ and the "hello world" console app wizard) and my various libraries I've made for myself over the years.
Fri 28 May | Vince | 'Perl is too complicated, you don't have time to learn the syntax.'. Uh, what if you already know it? is that cheating?
Fri 28 May | Herbert Sitz | 'I wonder why all your articles are about more or less big software projects developing some end-user applications from scratch.' I think that's mostly because problems with software development tend to increase exponentially with the size of the application. Small applications, little utilities, are just much easier to do. Not that they don't have their own set of problems and interesting design methods But developing them doesn't require anywhere near the foresight, planning, and discipline that are required when developing a larger application.
Fri 28 May | matt | Python is nice for that sort of thing. Not really sure what the point of all that was though... you lack time.. so... you must do things fast. Okay. I gotcha.
Fri 28 May | Oren Miller | http://www.gnu.org/software/gawk/gawk.html
Fri 28 May | Dewd | Ruby is like Perl, but better (to keep it short). Ruby supports OO, regular expression, DBI, OLE Automation, Win32API, etc. Do you want a .EXE? Use EXERB or something like it and you can have one. But if I needed performance I would have to use Delphi :-) Although you can find many of the characteristics of Ruby in Python or Perl. By using some custom scripts you can automate many things. Launch those scripts from your preferred editor and you're set. Sadly today isn't a good day to advocate Ruby, because its main site is down.
Fri 28 May | Tom H | I used to do that kind of think in awk. Then I learned Perl and thought that was the ultimate. Then I learned Python, but sometimes I still use Perl.
Fri 28 May | Oren Miller | Oh, BTW, in case you were wondering, this is what it would look like in AWK. if($8=='foo') $3='bar'; print Have a nice day.
Fri 28 May | Roose | Yes, answer: Use python. So good.
Fri 28 May | Dewd | Solution with Ruby: require 'csv' File.open('coolio_csv_fixed.txt','w'){|f| CSV.parse('coolio_csv.txt'){|row| if row[7].to_s == 'foo' row[2] = 'bar' end f.puts row.join(',') } }
Sat 29 May | Puff The Magic Dragon | You can do 90% of darn near anything with Korn Shell, awk and sed. The other 100% can be done with Perl. OK, so Perl can look like line noise (in the hands of an expert), but Python is really cool. It even enforces good formatting (space matters). I also did some amazing stuff with REXX, back in the days of steam-powered mainframes... The bottom line is that you don't need anything obscure - all the tools you could possibly need are already out there and they are free. Of course, you may have some Dilbert PHB managers who think that you have to use 'mainstream' tools like Visual Braindead, or .NUTS, but you can always smile, nod in agreement, and use the right stuff anyway.
Sat 29 May | Matthew Lock | Re: perl looks like line noise, how is that bad?
Sat 29 May | Chris Tavares | The best thing about python in this kind of situation is the interactive interpreter. You can just start typing in python statements, load files in to variables, look at whatever variables you want; you're free to experiment, which is usually the quickest way to hack something together. This will work with any language that has an interactive shell, but combined with Python's simple syntax and very powerful standard library you've got a killer combination.
Sat 29 May | Ryan Seacrest | For this type of chore I like to whip something up in MASM or my Palm OS emulator.
Sat 29 May | Hardware Guy | Personally, I think you can't beat an original Turing machine (symbols on paper). I usually whip one up in VHDL, download it to an FPGA, and bingo... It might take slightly longer to get the FPGA doing what you wnat, but then it's blindingly fast. DSP's can be good, too, if you're in a hurry
Sat 29 May | Tom | CCC looks a bit like all the rest of them, really. For 'projects' of this size, I doubt any of them have any significant advantage over another, if you average it out over a number of throwaway scripts. Python is slowly becoming more of a 'serious' language, but it does a good job in the throwaway department. I think the CSV example would look like this, but this is a bit of guesswork because it seems the CSV module has changed beyond recognition since last time I used it. import csv input=csv.reader(open('test.csv','rb')) output=csv.writer(open('test2.csv','wb')) for line in input: out=line[:] if out[8]=='foo': out[3]='bar' output.writerow(out) You could do the above from the interactive shell quite easily, in fact the interactive mode is definitely one of python's best features.
Sat 29 May | Matthew Lock | I would count myself lucky if I had a turning machine. I actually would build a one off electronic machine to do this kind of work. Coders these days don't know they're born.
Sat 29 May | Tayssir John Gabbour | Whoa, cowboy. ;) Nice to see some passion and code; I don't know why people criticize your long post, long posts are faster to write than short ones. Python has access to Java through Jython, and its normal libraries seem to get the job done even on Windows, for things like emails and stuff. I've delivered software with this tool, so I'm free to recommend it. But it is no longer my personal choice. Ruby turned me off initially because of a Perlism which didn't seem to fit, but that didn't keep me from reading about it, and it seems the language's rules are more powerful than Python's. Common Lisp is my personal choice, because it respects things like that Awk example Oren gave; it's a multiparadigm language which can mimic the best ideas of other languages, without forcing an aesthetics. http://groups.google.com/groups?selm=038D36424A1C01F9.65E29BB8B196CA2C.A6955F3341EEC795%40lp.airnews.net&rnum=10 However, I don't 'recommend' it, because anyone who learns it will be in the early-adopter category, and therefore a mention, not a recommendation, is most appropriate.
Sat 29 May | i like fast women | I can write the same program in C++ or Java in about the same number of lines, typing it in as fast as I can type -- it's maybe a 20 or 30 second function to write in either language. If it takes you much longer than that, I'm inclined to think the problem is your code-foo, not the language. (When I was writing Lisp every day, it probably would have been just as fast for me in Lisp. This task is simple enough that unless you're using a really low-level language like C or assembler, it's not going to take more than a 30-40 seconds to write.) I don't know perl very well, but this 'CCC' code doesn't look any simpler than perl code to do the same thing. As has been pointed out, the corresponding awk code is much simpler. Are you looking for justification? Pity? Do you want us to say 'There, there, it's ok. Go ahead and write crappy code in a no-name language, it's ok, we know you're right'?
Sat 29 May | Ged Byrne | If the Clipper tool thingie works for you, then use it. Personally I always use Ruby. Pyhon never quite worked for me. I don't like the way it does objects. Ruby fits like a glove. When your dealing with these quick and dirty fixes then you should use the tool that works best for you. No amount of fancy language design will every compensate for your own experience.
Sun 30 May | josheli |
Sun 30 May | Albert D. Kallal | I guess the real answer here depends on what PC you are on. If I was on my personal computer, then I would likely fire up ms-access, and link to the table (assuming it has headings in the csv file). So, after linking, I then whack ctrl-g in ms-access and then type in: Currentdb.Execute “update tbltext1 set f3 = ‘ba’” where f8 = ‘foo’” I count zero lines of code with the above. Of course…lets assume we are on a client pc. (after all, you whole point here was that you don’t want to have rely on some special huge development IDE thing. I mean, if I am on my pc..that I have a zillion tools..and I will use the tool closest to my fingers. Remember…we are also trying to save the most amount time. So, if I am on my client pc, I would look to see what application is running, Word, Excel, PowerPoint, Visio Anything with VBA built in would do the trick. Lets assume word is loaded and running. Whack alt-f11..Insert module. Erase the option explicit, and then type in the following: Sub convit() fin = FreeFile() Open 'c:\input.txt' For Input As fin fout = FreeFile() Open 'c:\output.txt' For Output As fout Do While EOF(fin) = False Line Input #fin, buf v = Split(buf, ',') If v(7) = 'foo' Then v(2) = 'bar' buf = Join(v, ',') End If Print #fout, buf Loop Close End Sub Just place your cursor anywhere in the above code..and then whack f5. You are done! The above code will run in ms-access, word, excel, and even VB6 if you go to all the trouble to load up such a large system. Anyway, my point here is what happens if you don’t have your cool clipper library? For example, for my ftp work, I always use IE6 BECAUSE is it ALWAYS there on each pc I visit! If you flip IE6 into folder mode, then you can’t even tell the difference between a local window, and your ftp window. It is rather great. (if you are behind a NAT router..then change the ftp mode into passive), Since ALL computers have this nice ftp client, then why not learn that one? (there is a zillion ftp programs on the net..but why not learn the one that is ALWAYS on each pc?). The same goes for the above VB example. However, let assume that you don’t have word, or excel loaded (remember, ..I said loaded....and, maybe these office program are not installed..but my point is I am TOO LAZY to even load up one of the office programs is THEY ARE NOT yet loaded. Remember, we don’t want to waste that 10 seconds to load up word, or Excel, or ms-access. To do your above conversion, I would actually just right click on the desktop. Create a text file call myconv.txt. I would type in the following window script: set fsin = CreateObject ('Scripting.FileSystemObject') set txtIn = fsin.OpenTextFile('c:\input.txt') Set fsout = CreateObject ('Scripting.FileSystemObject') Set txtOut = fsout.CreateTextFile ('output2.txt') do while txtIn.AtEndOfStream = false buf = txtIn.ReadLine v = split(buf,',') if v(7) = 'foo' then v(2) = 'bar' buf = join(v,',') end if txtOut.WriteLine buf loop I would then save the text document, and then while the text document is highlight, whack f2, and re-name the file extension to .vbs (so we now have a file called myconv.vbs). You will then see the text document icon change to a windows script. Just click on it…and your file will be converted. So, why not use windows scripting, as NO IDE needs to be loaded. No software with the except of notepad. And, the code is VB code…likely the most popular language in the world. So, I have choice of virtually any office program that HAPPENS to be running to solve my problem. And, if nothing is loaded then all I had to load up was note pad. So, to me, the above windows scripting solution is about the best since no software system needed to be loaded. Why not use what every windows desktop has to make this conversion? Why download pearl, ruby, php…or some strange language like lisp? (I am at such as loss here!). I mean, yea..if you are on your way cool development pc..then use any tool you want. However, when you get away from your development pc…then my solution starts to make the others here look downright silly… Why not use plain old plain Jane windows to do this conversion? What happens if you don’t have your clipper system, or c++ compiler loaded? Do not people learn how to use windows these days anymore? The above solution seems to be about the best. I can walk into any clients computer and accomplish the above ON THEIR systems. Likely every windows person reading this post can use the above. I can’t say that for some clipper stuff, nor ruby, or insert your favorite IDE and language here!..... Just use the stuff built into windows to do this!!! I am always amazed that some people come up with such amazing solutions when the basic windows scripting can do this stuff with ease? Do you actually think a good Unix admin would fire up a ide to do the above task? Albert D. Kallal Edmonton, Alberta Canada kallal@msn.com http://www.attcanada.net/~kallal.msn
Sun 30 May | Tayssir John Gabbour | Not nice, Albert. ;) (Quick point -- myconv.vbs seems to have a problem. You're splitting a line on commas, but a CSV file may have 'escaped commas' which shouldn't be splitted. Further, I hear different CSV files actually have different escape conventions, so Access may not handle them all. This isn't an attack, just pointing it out.) I fully believe that a real programmer should be comfortable with different languages. People laugh at the language you champion, VB, yet you represent lisp as some pointless language. But I think both have their advantages, just assymmetrical ones. Power is having your cake and eating it. With lisp, I have achieved far better reuse than other languages. You implemented a simple read/transform/write pattern. With lisp I can exploit patterns, as well as mimic better languages for the task like Awk. However, I don't recommend lisp, merely mention it, because it's still in the early-adopter phase.
Sun 30 May | Albert D. Kallal | I agree I was tough! Here! My only point here was the question was NOT made in terms of using a large, or well defined IDE. The whole pretext of the question was quick and dirty…and may I say cheap also! The question was phrased in terms of low budgets, and low time, and low cost development tools. It is in this light I fired some bullets here! (my apologies). It just seems to me that you can use windows to do this..and not purchase, or load any tools. (I kind over make this point ;-) And, no, I don’t take aim at lisp, or any of scripting languages (I think all should take a crack at learning lisp). I might debate if you should learn a stack language like forth! However, I in NO way meant to take aim at PHP, or lisp. This are well established tools in our industry..and I would be really crazy (arrogant) to shoot them down! All sys adims use such tools of the trade..and should proudly do so! As for escaped chars..hum..well I guess that depends if the data will have “,” inside the fields. But then again..I suspect many of the solutions posted will have trouble with these. Sorry for shooting a bit too hard… Sincerely, Albert D. Kallal Edmonton, Alberta Canada kallal@msn.com http://www.attcanada.net/~kallal.msn
Unix books | Fri 28 May | The Real PC
Are there any books you would recommend to someone interested in improving their understanding of Unix? Even though I use it every day, I feel like my understanding is incomplete. I would like to read one or two books, preferably under 300 pages each, that would make me a lot smarter when it comes to Unix. And I figure reading about Unix at bedtime would help me fall asleep faster.
Fri 28 May | SG | Advanced Programming in the Unix Environment, Stevens.
Fri 28 May | yet another anon | I like 'Linux System Administration - A User's Guide' by Marcel Gagne' (Addison Wesley). It's not fat, and it's full of useful info. The downside is that Gagne's writing style is good enough that it might not help put you to sleep.
Fri 28 May | M | I always learned fun new things from Unix Power Tools. http://www.oreilly.com/catalog/upt2/index.html
Fri 28 May | Tayssir John Gabbour | Keep in mind that while I've used multiple languages on unixes, I'm nowhere near being an expert, just gotten in 'n out. So I hope someone will point out if my mentions are outdated. - Kernighan/Mashey 'Unix Programming Environment' paper. Since it's a paper, it's rather short. - Ritchie/Thompson original paper might put things in perspective. - Kernighan/Pike _The Unix Programming Environment_ book. - Maurice/Bach _The Design..._ book goes into detail. - Nemeth/Snyder/... unix sysadmin book might be useful. - Unix Hater's Handbook, gratis online.
Fri 28 May | Rich | If you use it every day, but you're looking for more, I recommend O'Reilly's "Essential System Administration."  Describes the evolutions of the different branches of Unixes, and how they differ.  Each part of the book describes how to do something in the different ways peculiar to different Unix-alikes.  It does have a sysadmin bent, of course, but you still might want to check it out.
Fri 28 May | Andrew Hurst | I second the Unix Power Tools reccomendation. It has taught me more about unix than any other unix book I've bought, or any one site online. Its not small, but its not designed to be read straight through. Its a collection of tips from newsgroups and email lists over the past 20+ years. It won't teach you tons of sysadmin stuff, but it will make you a much more effective unix user, which will translate into a better sysadmin. I cannot reccomend this book enough.
Fri 28 May | Herbert Sitz | I'll third Unix Power Tools.  It makes learning Unix fun.
Fri 28 May | Li-fan Chen | I have some of the nicest linux and unix books under the sun!! :D If you read through any 15% of them you'll be able to create a cluster of computers capable of curing AIDS. They are gathering dust. *sigh* However I probably will not sell them. Maybe for a future project that might accidentally change the world.
Fri 28 May | Li-fan Chen | Ask me for the list, it's long.
Fri 28 May | Employed Russian | > I feel like my understanding is incomplete None of the books recommended so far gives you the 'big picture', and (IMHO) you will never become proficient in UNIX (be it programming or system administration), until you have a good mental model of the whole. The best book for the 'high-level view' is 'Operating Systems: Design and Implementation' by Andrew S. Tanenbaum. His other books are very good as well, and 'Structured Computer Organization' is worth a read no matter which OS you are using.
Fri 28 May | M | I also like The Unix Philosophy which leans more towards the programming life, but sets a frame of reference for why unix is as it is.
Fri 28 May | no name | 'The Unix Haters Handbook' http://research.microsoft.com/~daniel/uhh-download.html ;-)
Fri 28 May | Bah humbug | Eric Raymond's 'The Art of UNIX Programming' Is a big-picture/philosophy book. Read it, grasshopper, and you'll be on the path to thinking the unix way.
Sat 29 May | John | trwtrt
Sat 29 May | Michael Moser | Linux Server Hacks 100 Industrial-Strength Tips and Tools http://www.oreilly.com/catalog/linuxsvrhack/
Sat 29 May | M. E. | A personal favourite is "The UNIX Programming Environment" by Kernighan and Pike.  Like UNIX itself, this compact book is either dated or timeless.
Sat 29 May | snotnose | I second the Unix Programming Environment, by Kernigan and Pike. Unix power tools is a good one, as others have mentioned it's a collection of tips for using commands. Ever tried to figure out the find command from the manual? It bites, but Power Tools tells you how to do what you want done. The Stevens book is great, but only for system programmers. That would be me. Think Unix by Jon Lasser is another great book on overall Unix stuff.
Sun 30 May | Michael Moser | Great free resources. In case of LINUX some guys are trying to create something in the likes of MSDN. Linux documentation project http://en.tldp.org/ Developer works tutorials (need to register/fill out a form) http://www-106.ibm.com/developerworks/views/linux/tutorials.jsp Developer works technical library (need to register/fill out a form) http://www-106.ibm.com/developerworks/linux/library/technical/linux.html
Explain why emacs is popular? (Not a troll) | Fri 28 May | yet another anon
Really, this is not a troll. Whenever Ive used emacs (or vi), Ive been frustrated by the experience. On the other hand, though, Ive never put in any great effort to learn how to use it. But with all the developers that are fans of emacs, I figure Im missing something important that comes with learning how to use it. If youre an emacs user, whats the great attraction? Is there a compelling reason to learn how to use it? I honestly want to know because its possible, even likely, that Ive just been closed minded. If youre an emacs detractor, no offense but Im really not interested in your opinion. Youre probably not going to say anything I havent already thought.
Fri 28 May | Benji Smith | I'm not a great fan of emacs, but I think I understand the appeal. Emacs is totally extensible. It can do anything. You want an mp3 player built inside of emacs? No problem. Of course, if you want to customize emacs to meet your own needs, you have to write your customization code in lisp. Not a lot of people are lisp hackers, but the people who do write the lisp extensions are generally willing to share their code with the rest of the world. So, I think the most compelling reason for being an emacs junkie is because it's possible to extend emacs, in just about any way you can think of. Personally, I don't like the UI. That's why I stay away from emacs. But, when I do have to use it (like, when I'm using ssh to connect to my webservers, I know emacs well enough to be productive using it.)
Fri 28 May | old_timer | Come on! It's as simple as Control-Alt-Shift-F2, Control-Z, Control-X, right-click-alt, shift-space, delete. Or something like that...
Fri 28 May | The Real PC | I like it better than vi, and I use vi all the time. What else are you comparing emacs to?
Fri 28 May | christopher baus (www.baus.net) | Ahh man, one of my favorite topics as a emacs user. BTW, I'm not religious about emacs. I use different editors all the time, but I always find myself returning to emacs. Why emacs is popular? In my opinion emacs was about 20 years ahead of its time. The concept of emacs is more than an editor. It is was an entire platform that included a byte compiled, garbage collected scripting languages, and huge underlying library. There were and are many popular functions that can be accessed from emacs other than editing. For example: dired (directory editor), gnus (news reader), emacs/W3 (web browser). It is an extension of the lisp machine concept that came out of MIT in the early 80s. How influential was emacs? In my opinion you can follow a direct lineage from .NET to emacs. Crazy you say? What platform is .NET most similar to? I would say Java. Where did java come from? James Gosling. How did James Gosling get started in this industry? Gosling Emacs. Java is an extension of the emacs as a platform concept. It has a byte compiled, garbage collected language, with a syntax more similar to C which likely added to its popularity. It also has a display library, network functionality, etc. It isn't much of a leap to see the progresssion from the Lisp enviroment to Java. For instance: anonymous inner classes are very similar to lisp lambda functions. Is emacs worth while today? I think the answer is yes. Here are my reasons. 1) multiple language support. When a new language is introduced, before anybody writes a serious line of code, an emacs mode for the language already exists. Right now I am interested in python, and last night I looked around for a IDE that supported python. I would probably be happiest if there was a Visual Studio.NET python mode, but it doesn't exist. What is left is a bunch of immature IDEs that just by reading their descriptions I can tell I wouldn't be happy with. Plus they would all require learning an entirely new enviroment. So emacs wins again. Since indenting is vital to editing Python, the Python mode in emacs is a requirement. 2) Emacs makes effective use of screen real estate. Until VS.NET Microsoft hasn't approached the capabilities of Emacs. In Visual Studio.NET the window concept is terrible. A window is associated with a buffer and there is no way to edit two buffers in one split window. This has caused me a lot grief of the years, because in emacs I use split screens with multiple buffers almost exclusively. It maps closest to the way I work. In fact I would like a desktop manager that works this way as well. Hell throw in a .NET command line scripting language and you have a modern day Lisp machine. Everything old is new again. 3) It works in a terminal window. Call me old school, but I still do A LOT of work at the Unix command prompt. SSH to one of my Linux boxes in another state. Set the screen resolution on my LCD up high. Fire up emacs. Text editing nirvana! All text, no silly windows to obscure my view of my code. The more file menus, the less code I can see. 4) emacs works. Yes emacs is old, yes it is has its problems, but in the end it just works. In the old days it was considered a bloated pig (Eight Megs and Constantly Swapping). On modern machines it seems down right snappy. Emacs is like an old reliable friend. If all goes wrong, you can fire it up and it just there for you, like the the good days. There were two vocationaly skills that I learned that have helped me out over the years. One was learning to type and the other was learning emacs. I don't regret either.
Fri 28 May | Oren Miller | Being able to extend it is nice, but that is not what does it for me. What I like about it is how it is really designed as a developers editor. Very simple things that simplify writing code. Take for instance how tabs work. In a normal editor, hitting the tab key will either insert a tab character, or a set of spaces. This is not really what I want the tab key to do. When was the last time you ever used the tab key in an editor for anything other than indenting the code properly? So in emacs, when I hit tab, *no matter where I am on the line*, the line gets properly indented (based on the previous line). In most cases I don't even need to hit tab, since placing my ';' will also indent the line for me. Indentation is something I never think about. This is just one small thing, but it is one of those things that allows me to just concentrate on writing code.
Fri 28 May | deja vu | Christopher, you don't like IDLE ? (for Python ? ) Wow, you must have some serious requirements of an IDE, I tell you. I detest emacs :) vi all the way, baybeeee ;).. but I think I can figure out at least part of the appeal. To some developers, it's the thought of 'whenever you want it, it's there'. In the same way that the Quake engine from Id software is used by a lot of different games, emacs is the ultimate IDE for 'oh, someone else has already thought of using it for this purpose before'. Added to this, it's actually had an embedded language (elisp) which allowed extension in weird and crazy ways. It's the feeling of comfort, knowing that you're programming with the full power of a programming environment in it's own right, the kitchen sink... oh, and an editor too.
Fri 28 May | christopher baus (www.baus.net) | Think of time before GUI, when there were only terminal. Emacs as THE platform then makes more sense I think. The thing is I code in multiple languages at the SAME TIME, all the time. For instance I am interested in Python as test script platform, and C++ as the application language. There is much value in having consistent support for both in the same editor.
Fri 28 May | christopher baus (www.baus.net) | > you don't like IDLE ? (for Python ? ) Wow, you must have some serious requirements of an IDE, I tell you. That's a joke right?
Fri 28 May | social programmer | I used vi for 7 years. I tried emacs for 7 days and then I never used vi if I didn't have to.
Fri 28 May | mackinac | I use it, actually XEmacs, for most of my program editing and for a lot of the other things it is good for. But I don't have enough experience with other editors (except vi) to compare it. Mostly I edit text files, but it can be useful analyzing test data when used in a Unix environment. I can open a text file containing columns of test run output, then select a section of interest and run it through an awk or perl script and get the output in another emacs buffer. It can also do things like run diff on a couple of files, then display the two files with the differences highlighted for you to step through and examine. The regular expression capability can also be very useful. I don't use it much, but when I have it has saved me a lot of time.
Fri 28 May | yet another anon | Christopher, that was very well written and inspirational feedback.  Thanks.
Fri 28 May | Me | I use textpad on my windows workstation at work(a bit of xemacs) and emacs/xemacs on my linux workstation at home and on work/home servers. I used to use vi until our sysadmin turned it off since when we timed out vi would keep using cpu (so he said). I was forced to use emacs and suddenly I got the glimpse of the power. A major factor for me in using vi and now emacs is I NEVER need to use my mouse. I despise picking my hand from the keyboard, watching it move over to the mouse, descend (actually I use a trackman) and then move the little cursor. Right off the bat, in conjunction with your other unix/linux tools (especally etags) the environment (not just an editor) is very powerful. Multiple windows, drop down to a shell or open a shell in emacs and I can save the contents of my shell activity or copy/paste from it easily, dired is great, bookmarks are great, macros are okay (I need to improve myself there) ... and then it says 'customize me for your environment'. BTW, etags ... I can jump to a function in some other library by just typing ESC . if the library function is in my etags file which it usually is. And you can extend it to the extent of your brain and imagination.
Fri 28 May | Larry Osterman | Personally I use Epsilon, which is a pretty decent Emacs clone. I learned emacs with the REAL emacs on a TOPS-20 (Jim Gosling was a CS student at CMU at the time, his emacs is a clone of the real emacs which was written by RMS). There was a time I could actually read and code TECO although those days are long gone. I had emacs burned into my keys because there was nothing better for the TOPS-20 at the time. When I moved to the PC, a couple of friends of mine from school (Steven Doerfler and Todd Doucet) wrote a clone of Emacs for the PC, and I bought a copy of it as soon as I could. I've never stopped using it and have faithfully purchased upgrades as they've become available. I use VI as a quick&dirty editor, but my fingers belong to Emacs.
Fri 28 May | AZT | Boy and those opensource nagging about Windows and Office being bloated.
Fri 28 May | emacsdude | Emacs is a programmer's editor. Yes, the comments about extensibility are true, but the default emacs behavior is very powerful. In order to use emacs properly, you need to spend a great deal of time learning how to use it. One of the ways that I learned was just watching a guru edit code for a few days. I'd ask things like 'whoa - how'd you do that?' a lot. The learning curve is very steep but the view from the top is fantastic! Here's a list of reasons why I love Emacs for programming: 0) Good programmers realize that the mouse is an inefficient input device for editing code. Emacs allows you to do EVERYTHING with the keyboard. This makes life simple and efficient. 1) You get to edit multiple buffers at the same time and you can view them in the same window (frame - in emacs terminology) via splitter bars. The bars can be placed in arbitrary locations and is all keyboard controllable. This is a very efficient use of screen space and allows you to see many parts of interrelated code at the same time which makes coding and debugging easier. 2) You get auto-formatting and coloring of code. This makes code easier to read and reduces syntax errors. Getting the right indent-style for example is a simple matter of using the TAB key. 3) You have powerful code browsing functionality. You can search for the declaration of variables, classes, etc... You can browse around code by following { } pairs for C/C++ programming for example. 4) The raw text editing commands are clean and efficient. You get word/variable/identifier/etc... completion. You get a practically infinite undo buffer. There's the concept of the kill-ring for cut-and-paste which is like the clipboard concept but easier to use. 5) The compiler can be invoked from within emacs and the error/warning messages are parsed by emacs such that you can jump to the error/warning with an efficient keystoke. 6) The debugger can be integrated into emacs. You can step through code, setup breakpoints, etc... all from within the editor and never have to use the mouse. 7) You can record macros on the fly to automate tedious repetetive operations. For the emacs gurus, you can also write your own functions/extension in elisp 8) The search function (either plain text or regular expression search) is 'incremental'. I have not seen this is other editors. So if I'm searching for the word 'foobar', as I type 'f', it will jump to the first instance of 'f', then when I type 'o', it jumps to the first instance of 'fo', and so on. Searches are saved in a history buffer. 9) You can display/hide code heirarchically much in the same way that visual studio does with it's tree-view -- BUT, you never have to use the mouse. Another use of this is for #ifdef hiding for the C/C++ programmers 10) You can invoke a command line shell from within emacs and then use all of the powerful editing features of emacs to run the shell. 11) The concept of the 'mark' allows you to place anchor points on where you were working so that if you jump around to some other area of the text file you can immediately jump back to the mark. There is also a mark history, so you can jump back to as far back/forward as there are marks. 12) Global search and replace allows you to do a search and replace for the current file you are editing and ACROSS other files as you specify. The list goes on and on...
Fri 28 May | Herbert Sitz | Christopher -- I'm not into Python (yet), but isn't Active State's Visual Python what you're looking for: http://www.activestate.com/Products/Visual_Python/ It's described as the 'Complete Python development environment for Visual Studio .NET.'
Fri 28 May | MikeMcNertney | ' 8) The search function (either plain text or regular expression search) is 'incremental'. I have not seen this is other editors. So if I'm searching for the word 'foobar', as I type 'f', it will jump to the first instance of 'f', then when I type 'o', it jumps to the first instance of 'fo', and so on. Searches are saved in a history buffer.' The editor I use has this, and it drives me absolutely crazy to use anything that doesn't have it now. Every time I hit ctrl-F (or whatever) and a 'Find' window opens up, I just groan. Incremental search is *so* much more efficient and easy to use (for an experienced user, at least).
Fri 28 May | WildTiger | ' 8) The search function (either plain text or regular expression search) is 'incremental'.' It's one of the reasons I like VisualStudio that it has incremental search...
Fri 28 May | matt | I think I would love emacs if someone came up with a GUI for it that didn't look like a badgers arse. LISP rocks.
Fri 28 May | J. Peterson | Emacs had a lot of 'firsts' that other editors and IDEs are finally catching up to. Auto-format modes, infinite undo, complete on-line documentation, and auto-symbol expansion are just a few examples. Yes, VS.NET has them now, but Emacs had them two decades ago. Favorite Emacs feature: keyboard macros. I create a quick keyboard macros in seconds that saves gobs of tedious editing or otherwise require a python/perl script. Maybe VS.NET will have that someday too...
Fri 28 May | Chris Altmann | Christopher said: 'A window is associated with a buffer and there is no way to edit two buffers in one split window. This has caused me a lot grief of the years, because in emacs I use split screens with multiple buffers almost exclusively. It maps closest to the way I work. ' In VS.Net 2003, try right clicking on one of your open file tabs and pick 'new horizontal tab group' or 'new vertical tab group'. You can also drag tabs between groups.
Sat 29 May | Dan Maas | It took me a LONG time (about 2 years) to get used to Emacs, but now that I am, I can't bear using any other editor. There are so many little tiny features that I am hardly conscious of, but would be extremely annoying if absent (incremental search, very smart auto-indenting, good syntax highlighting - even on a UNIX console - consistent behavior of Home/End, etc). Yes, you can find some or maybe all of these features in other editors, but you will definitely not find all these features in an editor that runs on all major operating systems. When I sit down at a new PC, Mac, or Linux box, I just need to install Emacs, copy my preference files, and I'm right at home. I think Emacs has a large user base relative to most other 'non-mainstream' editors because it's been around for decades, it's been ported to every platform, and will continue to exist in its current form for the forseeable future.
S