last updated:04 Nov 2003 13:37 UK time
Joel On Software Discussion Forum
JOS Statistics - Recent Comments
(Comments added for week ending Sun 02 Nov 2003) | View Other Weeks
A method of coding | Sun 02 Nov | Ted E. Bear
1. (Re)Write code to do something 2. (Re)Read code to ensure its sane 3. Compile/run code 4. Observe if code actually does what you want 5. Repeat step 1 until code works and all code is written How many people use this method? What method do you use?
Sun 02 Nov | Rhys Keepence | Step 0: Write unit test/s Step 4: Check if test/s pass
Sun 02 Nov | Jack of All | I always liked: 1. Get idea. 2. Start coding. 3. Magic happens here. 4. Go live. 5. Move.
Sun 02 Nov | Justin Johnson | 1. Get clear statement of what the next piece of code you'll work on is going to do. 2. Sketch the code in comments, paying most attention to the logic of the code. 3. Stub out the code and start filling in as necessary. 4. With each addition, write the test for that addition. 5. Compile/test until the addition works as expected. 6. Move on to next piece of code. Not exactly unit testing, but taking small steps and ensuring it works at every stage has led to some pretty reliable code for me.
Sun 02 Nov | anon | There's a lot to do before step 1: specs, architecture, detailed design. I often skip step 2; if I wrote it, and it compiles, then it must be sane. :-p Sometimes, step 2 happens all at once at the end (a code review before it's handed over to QA). Sometimes I can compile it as I write it, but can't run it until the end. For example, I'm currently writing a process which implements a protocol to a remote component; until what I've written is completed, it doesn't implement the (entire) protocol and therefore there's no sense in trying to run it.
Sun 02 Nov | H. Lally Singh | Get a set of requirements together, and some use cases. Design an architecture that can handle what I need, plus an additional 20-30% extra variability where I haven't forseen the need. Implement a usable subset of the architecture, enough to start testing feasability and build the rest off of it. Debug the crap out of this subset. Write harsh unit tests for this. Document this part really, really well. Go back to the requirements and use cases, see if the architecture really could pull of what you need it to do. Adjust as necessary. Write the rest of the app on top of the architecture. Debug each part. Each new part will probably help debug every prior one. Adjust the arch as necessary, leaving the parts that have the most dependencies as alone as possible. Most of the workings for these parts should be pretty straightforward once the architecture's known. Write docs on what isn't. Write a user manual.
i have a secret for you... | Sun 02 Nov | Jack of All
Just found this in my inbox from charles ------------------------------------------------------------------- i have a secret for you could you please reach me via my email address : { some spammer @ yahoo } This message was sent on behalf of { some spammer @ yahoo }, from The Joel on Software Forum in reply to your posting: http://discuss.fogcreek.com/joelonsoftware/?cmd=show&ixpost=80543 Your email address is never revealed to the sender. Please report abuse to customer-service@fogcreek.com. ------------------------------------------------------------------- Anyone else getting spam hooks sent to them? Anyone actually send them an email? My advice... dont
Sun 02 Nov | www.marktaw.com | Did you do this: 'Please report abuse to customer-service@fogcreek.com' Or just post here?
Sun 02 Nov | Jack of All | Both ;)
Sun 02 Nov | Michael H. Pryor | While technically, this is a SPAM, it's not automated. The guy had to actually type it in (and if he didn't, our forum software limits how many emails he could send anyway, so at most he could have spammed a few people, and then it will shut him off). This happens very infrequently, since the spammers realize this board is a bad target. Of course we can't prevent one individual from emailing you something you didn't want (since that would prevent anyone from this board emailing you). So unless he has a secret crush on you or something (which maybe he does)... I doubt you'll see another one like this again.
Beating comment spam and email harvesters | Sun 02 Nov | Alex
There may be a simple solution to comment spam and email posted on the page being collected by bots. Say you want john@smith.com to be out in plain sight, but still inaccessible to bot. Use two Javascript variables, a=john@s and b=mith.com and put them in adjoining
s or something to that effect. You can go as paranoid as you want, including generating separate characters from a map, whatever. The bots wont be able to read the concatenated string. The only downside, javascript has to be enabled of course.
Sun 02 Nov | Frederic Faure | Seen this in web pages. I guess it's just a matter of time before bots figure it out :-) Just write your address as a JPG/GIF, or use a redirector like http://www.sneakemail.com
Sun 02 Nov | Stephen Jones | Writing as a .jpg or .gif means it's not clickable. If you make it clickable then the bot can read the link in the source code. The trick that works at present is to post the correct email address as a .jpg or a .gif and then encode the href in the source code. use instead of < If you really want to you can encode every letter The list of encodings can be found at http://i-technica.com/whitestuff/urlencodechart.html If you think a spam bot can find that then what you can do is download http://natata.hn3.net/antispam_encoder.htm and this will encode the link in an even more complicated way.
Sun 02 Nov | Brad Wilson | Anything can be done by code on the server side, can be undone by code used by the spammers. The only sure-fire way to prevent e-mail address harvesting is to never reveal the e-mail address. Use a form, like Joel does here, and you're 100% safe.
Sun 02 Nov | Frederic Faure | Sure, not providing a clickable link is an issue for some users, but I don't think it's that big a deal.
Sun 02 Nov | Scot | As an extreme, TMDA (disposable and time-limited addresses) can also be used if you have an email server. 
Sun 02 Nov | www.marktaw.com | 'This is yet another javascript-based email address shield against spam harvester-bots. This version is for static web pages, and has a handy 'helper page' that will generate the necessary inline javascript code for you. ' http://prdownloads.sourceforge.net/spamgourmet/AddressScrambler_0.2.2.tar.gz Clickable email links. I think the best solution is forms that submit to a server and never reveal the receiver's address. Also with non-obvious form field names.
Sun 02 Nov | Jack of All | Even though these online email forms aren't really secure. For example, click on my name (which takes you to the source) and check the source. You'll find my email addy there. A simple (well, not 'simple' as in 'hello world', but still 'simple') perl script can have most of the email addy's from this site in a very small amount of time. What you need is an interface between the reply form script and the mail script. It basically does two things: 1. Takes the email addy from the reply script, creating a UID and storing both. 2. Converts the UID from the mail form to the email addy in the datastore, then forwards the form to the mail script. Not the prettiest of jobs, but it's a work around which wouldn't require writing your own mailer that grab the UIDs. Although most mail scripts could probably be easliy modified too. Jack.
Sun 02 Nov | Jack of All | Ignore my bit about the JoS mail form... my mind must be going/gone.
SW Mgmt Part 2 - Design by Dictatorship? | Sun 02 Nov | Bored Bystander
I realize that the question I posed on software project management was essentially stupid in that it was front-loaded with many assumptions. I realize everyone who replied was too polite to point this out, so I am saving you the trouble. ;-) My clients ~20 person company is run by the owner who is also the head programmer and SW designer. He has *always* developed projects by: dictating class and procedural flow; writing up ponderous documents describing the stuff; and delegating the specs to the poor unwashed bastards who work for him. Some hallmarks: He never but ever reveals his overall scheme for the program being designed. He changes his mind continually about implementation details as well as the top level flow of control. He never actually debugs stuff that he delegates. He flogs his people into doing so. He tends to develop grandiose foundations that he says people should use. But he seemingly never tries to write program 1 from scratch using his own stuff. He never eats his own dog food. He overengineers EVERYTHING. Why have a boolean return value, when you could return a ragged array of variant data types? Why NOT make hello world a death march? It will be more fun! :-( He blows off any and all discussion of his methods. He owns the building, so he is the smartest guy in the building, by definition (speaking ironically here.) He just wont discuss any aspect of his grand scheme. Oh, and he isnt even qualified by training or experience to be a SW architect. Hes an accountant. And after taking a look at some low end CASE tools, I am as impressed by the beauty and utility of these tools (particularly Enterprise Architect) as I am by the utter futility of trying to use UML in an environment that is rotten to the core. I am saying that tools arent the problem here. Here is what I wanted to ask, then: In what context, if ever, is such a methodology - massive specs, heavyhanded overbearing control - workable? The only places I have seen *anything* approaching this done were DOD contractors, and a stint at IBM where an architect designed all data structures and the system. Is such a methodology ever scalable to a team smaller than, say, 20? Is it ever possible to reason with someone who is so far down the path of feeding their own ego that they see all disputes as essentially the other persont fault or inadequacy? I think I will have to pass on working with him after my current work is up. Its just too stressful to work on hacked up overcomplicated shit. Any other thoughts? Even youre nuts to turn down billable work in this environment.
Sun 02 Nov | Richard Kuo | Speaking from experience, I have never been able to properly architect something new without doing a "spike solution" or prototype to figure out what works and adjust my design accordingly.  If he isn't eating his own dog food and he's simultaneously breaking new ground on work that he hasn't done a thousand times before, then you are indeed most likely working on a pile of dog s***.
Sun 02 Nov | H. Lally Singh | Your only real choice is to kill the man.  It's cool.  Everyone will understand.
Sun 02 Nov | Vince | why don't people argue?  If someone tells me to write something in a horrible fashion, and I know its a bad idea, i'll argue with them.  Most of the time though, my boss will want something done one way, i'll want something done another way, we'll discuss it, and unless there is a really good reason why my way is better (once and a while, not too often) we'll go with his way. 
Sun 02 Nov | Sum Dum Gai | Sounds very similar to my job (details are different but concepts remain the same). I suggest you get out if you can, no joy can come from it. It will gradually sap your soul until you no longer have the will to get out.
Sun 02 Nov | H. Lally Singh | All the more reason to kill him :-)  Self defense.  See, it's ok.
Sun 02 Nov | H. Lally Singh | On a more serious note, perhaps its best to go after these issues one at a time. Start off with some basic software economics to show him how much the additional generality he's designing in costs. The tough part is getting it to him without his defenses coming up. Herb Cohen's books have some good methods on that. Getting him to really delegate the work is gonna be tough. Perhaps convince him he's too important for it? That his time's too valuable, and that he should be worried about 'more strategic issues.' As for methodology, your customer's is only good when he actually knows what he's doing. And even then, with a team of 4-5. Beyond that and it's a real waste of resources. For teams of 20, take a 'pick & choose' approach to the parts of the methodologies in the current literature. Most of them have good ideas & bad ones, and some that would be real nice if they applied. From everything I've learned so far about SPM, a good manager will design the process him/herself, even if it's limited to tweaking the RUP.
Sun 02 Nov | Bored Bystander | FWIW - this is contracting, not full time employment. This is my only current client. I have worked with this place the better part of a decade and their techniques have always sucked in the ways I am stating. If anything is a constant, it's the absolute hamfisted arrogance of the owner. A few quickies: Yes, it's a pile of dogsh*t. The only way this company has *ever* gotten anything to work is massive amounts of uncompensated overtime donated by the coder employees. Any application written in this guy's stuff always looks like spaghetti. Yes, the workstyle of this client has been sapping my will. I just realized that today! I am scared to look for new work. The effect this work has been having on me has been insidious. In the past, I was always relieved to get away from this place for awhile. This just reinforces the need to get out. It's work but it's destroying my will to be independent. 'Why don't people argue?' One thing this person is noted for is lambasting his employees for not *thinking* about the exact thing he wants them to think about in a given nanosecond. He's a fascist about the basic reasoning process. The problem is, he always imposes a huge continual overtime burden on his FTEs. If any of these people visibly defied him, he would add to the pressure that they were not succeeding because they were 'thinking wrongly'. No, I'm not kidding. Lastly, he only hires pussies who don't have backbones or minds of their own. (As Samir said in Office Space - 'yes, I am also not a pussy.' ) Kill him because everyone will understand...? Er, not worth the manslaughter rap. ;-) I think the angle on convincing my client that he needs to do more strategic stuff than fuss over APIs may be the most constructive. However, he will probably twist it around as an attack on his methods and a vote of non confidence. Which it is. Sigh. I don't think this is an exercise in turning lemon into lemonade. It's more like an exercise in turning urine into lemonade....
Sun 02 Nov | anon | I think you should tell him. 'There's point in keeping a guard dog if you don't listen to him bark.' One could argue he's paying for your expertise and you owe it to him whether or not he wants it. I get maximum respect when I speak my mind instead of hiding out of fear. > Is it ever possible to reason with someone who is so far down the path of feeding their own ego that they see all disputes as essentially the other person't fault or inadequacy? A Young Friend once said to me: 'Ill discuss anything with anyone, but if it turns into an argument I say 'you're right' and walk away.' If you've already decided you can walk away, and will if things don't look up, then you're free to speak your mind. As a tactic, instead of talking about his methods being a problem, talk about the problems (unpaid overtime, no staff development, unmaintainable spaghetti, or whatever) for which you'd like to suggest alternate methods to try as a solution. > He never but ever reveals his overall scheme for the program being designed. Software benefits from having architecture. He should read the literature if he wants to do this professionally. > He changes his mind continually about implementation details as well as the top level flow of control. You can do that (agile, iterative, refactoring), but if you're going to do it then it's better to do it skillfully. > He never actually debugs stuff that he delegates... He never eats his own dog food. Is there anything he does well? > Why NOT make 'hello world' a death march? It will be more fun! :-( http://www.ndeepak.info/stuff/humour/helloworld.php > He blows off any and all discussion of his methods. Please, they're 'our' methods. Still, I've worked for a non-technical guy ... things didn't totally improve until he hired a development manager to sit between himself and development.
Sun 02 Nov | November Rain | >> 'He's an accountant' I believe there's a thread on this board something about 'You can't be an accountant and run a software business' or something like that. At any rate, I think your best bet BB is to get out. What keeps people in bad situations? (Not necessarily bad as in life threatening, bad as in uncomfortable, high pressure) If it's paying your bills then I would find another client or two and leave this gentleman to himself. This sounds like a vertical market software company. The accountant is in charge and he hires the programmers to do the dirty work. Except in this case he is obsessed with programming and is obviously not qualified to do the work. I have been in a similar situation. The best thing to do is to move on. Personally I was very straight forward with the gentleman in charge of the company. I told him outright that his methods of developing software were not in conformance with known industry best practices and as a result the software being produced was not as high a quality as it could be going out the door. I informed him that I could help him achieve this if he would let me. I told him that I would need full control of the project. He didn't agree and I wished him luck. Six months later the company did not exist.
Sun 02 Nov | Nat Ersoz | Wow, best rant I ever read...
Sun 02 Nov | H. Lally Singh | In approaching him towards a 'strategic' role, you could just feed his ego with his 'potential' and mention where he could go. Don't tell him to go, just grease his ego such that he follows the path you've convinced him is really worthy of his efforts. Hell the ego-rubbing alone will probably get your rates raised. If it goes real well, you'd be the one who 'understands' him :-) It all depends on the kind of person he is. But everyone's got delusions of grandeur :-) Herb Cohen's book is good at this stuff (_You Can Negotiate Anything_). Also _The_48_Laws_Of_Power_ and _The_Art_Of_Seduction_, both by Robert Greene.
Benefits of a degree | Sun 02 Nov | My memory has just been sold
Recent threads have me doubting the benefit a college degree offers. People graduating college claim they are useless while others tout college as only a playground where they go to have fun. If college is such a waste of money why do people attend? There must be some benefits? Would you be in your position today if you did not have a degree?
Sun 02 Nov | Noname | People will debate endlessly about the value of a degree.  Anyway, whether or not the knowledge gained in the process is useful, it still helps a lot in the job market to have a degree, whether it is in getting your first job or changing jobs.
Sun 02 Nov | fw | Most of the people who come out of college and are very good at programming/networking/problem solving, were good going in, but they had time to learn new things, they could miss 50% of their lectures and still do fine. The slip side is, I've seen people go straight to industry and they've done amazing things because they simply had to, and they've learned huge amounts also. I mean, what area do you want to get into? If you want to do constraint computation, a degree will be useful, if you want to be a network engineer, going straight for it would help, once you're willing to read a book, cover to cover once a week. There's no right answer to this type of question, no matter how many people with rant for either side.
Sun 02 Nov | Zahid | Putting aside the resume value of a degree, I can say that, for the most part, the people I've worked with who had degrees were far better at systematic debugging and problem-solving than self-taught programmers. I'm not sure what the relationship is, since I don't remember any classes that really focussed on that aspect of development. Maybe it's just like playing on a college team -- you get four more years of experience to hone those skills than someone who jumped straight to the pros.
Sun 02 Nov | Michael Moser | I think this is another instance of the naked chief vs Big Mac. A degree is all about predictable results. Large organization can’t be bothered to judge personalities - all they want is predictable results. You did this degree – hence you are expected to be able to perform x, y, z. If you are a person who is able to learn on your own from books then you are most probably an individual, but the above mentioned system of HR criteria just filtered you out. ( or is this that I am just parroting some old argument? Me Too has to buy some more RAM )
Sun 02 Nov | T. Norman | The "college team" analogy is a good one.  Some can jump straight from high school to the pros, but most others benefit from practicing the fundamentals and experimenting during college.  Once you get to the pros, you don't have much time to hone the fundamentals or experiment ... you are expected to get the job done right now.
Sun 02 Nov | Stephen Jones | ---' while others tout college as only a playground where they go to have 'fun'.'---- Strange how quickly comments can get twisted! The original comment was that I enjoyed studying at university. Note, 'enjoyed studying' as opposed to 'had a great time when not studying', which is another reason for going to college. The reason I say this is the most important thing is that if you don't enjoy studying you are quite likely not to last the course, will possibly find yourself in a job you hate, and may have nothing to show for three or four years unless you party well to make up for it. As to whether college is financially worthwhile, you won't get reliable information by posting here for info on an anecdotal basis. You can check the stats, which vary from country to country but are only an indicator. Thay suggest strongly that a degree is financially worth while. However the devil is in the details, and the details paint a very different picture - for the UK at least. They suggest that whilst graduates in certain fields (law or certain branches of engineering for example) have salaries that are much much higher than the average for high school leavers, in other degrees the difference is smaller, or non-existent, or even negative. Check them out for your country or your discipline, though bear in mind that they refer to the past, and the figures you want refer to the future. Another point the statistics hide is that there are vast differences between different universities. There are not many involuntary unemployed graduates from Oxford, Cambridge, Harvard, Yale or MIT, though if you had an offer from one of thise places I doubt you would be airing doubts on JOS about taking it up. One major problem pointed out in the other thread is simply the vast number of graduates. Now in the US the number of graduates verges on 50% of the population, and in the UK it is around 30% and planned to reach 50%. You don't have to be a genius at math (though apparently you do need to know more than the average politician) to realize that that means that many graduates are going to be earning below the median earnings for their country, and well below the mean. And as computerization is wiping out a large number of middle-class jobs, as automation has been wiping out higher paid working class jobs for 200 years, then it is doubtful that there will be enough 'graduate type jobs' to go around. One thing having a degree will do is maybe give you a better class of parachute. Temporary High School teaching assignments, or social work or other kinds of public admin macjobs, are not likely to be what you aimed for when you entered college, but they are better than working at WalMart, and they are only open to people with degrees. The question I would ask yourself is this: will you think you've wasted your time and money, if after three or four years of college you find yourself in the same job you are in now? If the answer is 'of course', then don't go to college - it's too much of a gamble. If the answer is 'Well, I won't be happy but I'll still be glad I did it' then go straight for it. If the answer is somewhere inbetween, then think about it. (And if the answers is 'If you knew what I was doing now you wouldn't ask such a stupid question', then I presume you wouldn't really need an answer to your post anyway)
Sun 02 Nov | Dennis Forbes | Treat a degree as a means to learning skills that are valuable to yourself (if entrepreneurial), or an employer, rather than as an end. It's a pretty sad state of affairs that so many treat it as an end.
Sun 02 Nov | Philo | A degree helps you get a job. That's why you should get one. I figure a BS increases your opportunities by a factor of ten, at least. A BSCS will increase *that* by at least a factor of two. (best guess numbers. YMMV) Now, once you have established that foundation for getting one, there are things you can do while getting one to maximize the experience. :) Philo
Sun 02 Nov | Mitch & Murray (from downtown) | I would say at this particular time in the IT industry, with an oversupply of qualified people all competing for andundersupply of good positions, a degree is more important than ever.  There certainly are exceptions of course - depends on the job offered - but eliminating all the applications for a position without a degree is one way for the human resources robot to cut the number of resumes to be reviewed in a given pile by half.
Sun 02 Nov | somebody | A degree is a really expensive piece of paper.  Nothing more. 
Sun 02 Nov | Michael Koziarski | Speaking as someone who left university early to start earning I'm tempted to say don't worry about it. However, every time I have an interview there's the inevitable question: 'if you're so smart, why no degree?' . To that end I'm now completing it part time. Basically to go from 'resume on desk' to 'candidate to interview' you need either: 1) a degree 2) experience If you have one, work to get the other. If you have neither, get a degree.
Sun 02 Nov | T. Norman | 'A degree is a really expensive piece of paper. Nothing more.' Speak for yourself and your own college. What I learned in my degree course continues to be valuable to me on the job.
Sun 02 Nov | Bella | Steven, Social work requres a CSW, which is a MASTER's degree.
Sun 02 Nov | Bella | In our society, a degree is the de facto measurement of training and ranking of citizens. It may also be another way to preserve the 'old boy' network, and display distinctive academic and financial lineage. It's a hoop to jump through, and a formaility to filter down the masses. Clearly, you do not need to take formal computer class to learn how to program with the best of them., But it's not about the supposed skill you are supposed to acquire. Also, when you're part of a sea of nameless faceless applicants, it is a standardized measure of 'skill/talent/intelligence' Whether it is accurate is another story, but this is the way your society works, so sometimes you must play the game, unless you find away to sidestep the entire game. (ie: get experience, know people, start your own thing, etc)
Sun 02 Nov | Stephen Jones | ---'Social work requres a CSW, which is a MASTER's degree'--- Yep, but you need the bachelors to get the masters. I was thinking of the Uk where I don't think there are any jobs that require a Masters.
Sun 02 Nov | Vince | I think a degree is very neccessary to establish yourself as a developer, but once you have some good projects under your belt, the degree really becomes meaningless.  But, like people said, if you don't have experience, you don't have much of a shot of getting hired on unless you have a degree.
Sun 02 Nov | Tom Vu | You never said what you want to do. Or what industry you want to enter. Maybe a degree will help you find that out.
Sun 02 Nov | Sum Dum Gai | I think that 3 years working is far more valuable than 3 years stuck doing a computer science degree at a university. You'll learn far more, and be earning money rather than spending it. That said, I think that employers look at it differently. Especially these days, getting a first job without a degree must be tough. I haven't personally observed any correlation between the quality of programmer, and whether they have a degree in CS (or a degree at all). It seems to me that some people are cut out for it and others aren't, and no amount of sitting in lectures can change that.
Sun 02 Nov | Frederic Faure | Don't know about you, but I'd rather that the surgeon operating on me did get a degree...
Sun 02 Nov | no name | Wouldn't have gotten my first programming job if I wouldn't have been in school at the time.  it's counted for a few other job interviews since then, but I can't say that I've used much of what I learned.  Data structures, algorithms, computer organization, discrete math, database systems - those were the best courses.
Sun 02 Nov | rz | I went to college because I was offered a full tuition scholarship. I took classes I thought were fun, namely philosophy and math. I got into computers because I thought it was fun, and the temporary job I got sysadmining the college network paid 3 times as much as any other on-campus job. So having some extra money was fun, too. I agree with Stephen Jones on this one. You should take what you think is fun. There is no real guaranteed 'meal ticket' type degree anymore, (aside from perhaps pharmacy school in the USA), so you might as well do something you enjoy. In retrospect, all of this schooling was a waste of time, and I should have dropped out of high school at age 16 and moved straight to Mammoth Lakes, california, to pursue a career in professional snowboarding. As much fun as I find reading philosophy books, writing the odd program here and there, and working out math puzzles, I find snow boarding at least twice as fun, and with the boom in the late 90s, I probably could have made a go at it.
Sun 02 Nov | no name | > Don't know about you, but I'd rather that the surgeon operating on me did get a degree ... There's a difference. Surgeons can't learn by doing because it would kill people, which is why they work in an apprenticeship system that's confirmed by the piece of paper. Software developers, however, can.
Sun 02 Nov | Justin Johnson | From an employer's perspective, a degree offers some predictability in the employee. How many programmers cover the material from a data structures and algorithms class on their own? Hiring an MBA means hiring someone who knows how to do a cost analysis and read a profit & loss statement. Yes, these things can be learned on their own, but that degree is a strong indicator that you've covered these things in a systematic way. Of course, a degree is not the be all and end all of hiring. But it's about the most useful baseline there is, at least until you've held the job for a while and your employer can make a much more qualified judgement about your worth.
Sun 02 Nov | Justin Johnson | 'Software developers, however, can.' Except in very rare cases, not really. The work experience of someone who learns everything on the job is miles deep and inches wide. A CS degree provides, at the very least, some breadth. If you're a genius, you won't need a degree. But there aren't a lot of geniuses out there; for certain, there's fewer than think they are.
Sun 02 Nov | Justin Johnson | One last comment: if you're self-motivated enough to teach yourself what you need to know on your own, imagine what you can learn in university, where you have more opportunity to simply study than you do in any workplace. It's about more than what the professors show you.
Sun 02 Nov | Sum Dum Gai | Imagine what you can learn while employed, when you have the money to keep yourself entertained enough not to sink into chronic depression. At least that's what I found. I found University extreamely boring, because I wasn't learning anything, and the courses poorly taught. The lecturers are paid to do research because that's where the money for the University is, they only teach undergrads grudgingly. The quality of teaching reflects that. A job may not be a laugh a minute, but at least you occasionally get to do interesting and/or challenging things. You're also covering so many more areas I find. You say University gives you bredth, but I find that impossible. The average subject goes for 12 weeks of 3 one hour lectures a week. 36 hours is nowhere near enough time to cover even one small subject in any detail. So you don't get the bredth, because you end up covering only 4 areas a semester. That means in your 3 year degree, you at best cover 24 areas of computer science in a very shallow fashion. Probably much less, due to the early subjects having to cover the basics. Any decent job in the industry should give you more variety than that!
Sun 02 Nov | anon | Is that 3 one hour lectures per week, multiplied by 4 concurrent areas per semester, totalling 12 hours work per week? Perhaps 12 hours work per week *is* kind of shallow, but you needn't limit yourself to only attending lectures.
Sun 02 Nov | Justin Johnson | You must be a genius, then, Sum.
Offshoring and illusions of savings | Sun 02 Nov | T. Norman
This disturbing article demonstrates the extent to which some executives will screw their own companies just to make offshore projects appear successful. http://weblog.infoworld.com/lewis/2003/10/31.html#a77
Sun 02 Nov | no name | Doesn't surprise me.  Yet another reason to shun corporate america.
Sun 02 Nov | no name | Yet another of the Lessons They Don't Teach in CS But Should. (Synopsis: the URL describes a story where IT guys have to spend half their time translating for incompetent offshorers. However management doesn't want this to show up as an extra cost so the guys have to budget all their against their technical project.) These idiots should have: a) recognised they were being given different and additional work b) insisted on proper accounting of that work, and not accepted no from the morons running the show.
Joel on Sun's strategy - OSS "TCO" | Sun 02 Nov | OSS dude
Sun perhaps wanted to use java to commodotize the client, driving up demand for [its] server hardware and preventing the microsoft monopoly on the client. Ironically, java has had seemingly more success on the server (or as a development environment/programming language). Seperately, I havent seen anyone that talks about (or just mentions) Total Cost of Ownership TCO that hasnt pointed out the benefits of not having to worry about proprietary license management (for a 100% OSS shop). How valuable would it be for a CIO or IT Manager not to have worry about a raid by the BSA? In many large companies its more than a full time job just keeping track of proprietary software licenses. IT staff in a OSS company can install from the same OSS CD on every computer. OSS companies have no need to pay tens of thousands of dollars for MSDN licenses for the QA/development groups. Also, this TCO benefit of OSS is dramatic when applied towards the ability to grow and meet increased demand. As a company hires more employees (this company has already paid transition costs to move to OSS) the additional cost per employee is closer and closer to 0 software wise. MSFT shops pay a tax for each new employee that isnt transferable unless the company is under the site license contract limits . Also, an OSS company can quickly expand server and application farms while paying (almost) nothing, other than for hardware. An OSS software shop can react to increased demand with less cost, and can make better reuse of repurposed hardware (can a MSFT shop use Windows Professional desktop machines or MSDN software in production should the need arise suddenly, either effeciently or without charge in each case?). Also, the OSS TCO advantage is dramatic for small and mid-sized companies that dont receive the discounts MSFT gives to larger companies (TCO comparisons should be made among differently sized companies so as to show the even larger advantage of OSS for smaller to mid-sized companies).
Sun 02 Nov | Walter Rumsby | OSS doesn't necessarily mean free. I think some IT managers are worried about the vagaries of various OSS licenses (e.g. there was a discussion here about the MySQL license last year - the pricing is somewhat vague, as I recall in some situations you pay, in others you don't) and are more comfortable sticking with what they know. OSS has been very widely adopted in the Java community, perhaps to the detriment of Sun, it'll be interesting to see if .Net fosters as many open source projects.
Sun 02 Nov | T. Norman | Large companies will rarely use OSS without a support contract (the typical CYA behavior), and many of those support contracts have per-seat payment structures, so they still have to deal with license management. For them the benefit comes more from avoidance of lock-in to proprietary file formats, and the avoidance of forced upgrades that stem from that lock-in.
Sun 02 Nov | Portabella | > it'll be interesting to see if .Net fosters as many open source projects. There are some; nAnt and nUnit come to mind. The real question in my mind is whether you can deliver an enterprise application built in .Net on Linux, with NO Microsoft technology; that is, whether the framework itself can be cloned, as Java has been. I think the answer is a resounding 'NO'. :) If I were IBM, I would try to do to C#/.NET what they've done so well with Java: offer a free, industrial strength alternative implementation. So if Java does well, they win; if C# does well, they win; and if it remains a 2 horse race, they win again.
Sun 02 Nov | tapiwa | Just for the record, mySQL is free, as in beer. It is only where you sell a product based on mySQL that they ask you to pay a licence. A bit like the way the GPL compels you to release derivative works
Sun 02 Nov | Dennis Atkins | That's not free as in beer.
Sun 02 Nov | Ori Berger | Dennis: It's not free-as-in-BSD-beer, It's as close as it gets while still being GPL. If you write something that cannot function without MySQL, and you don't GPL your own code, you have to negotiate a license with MySQL AB (The company). Assuming I understood right, if you write something in which MySQL is just one of many backends (e.g., it can use Postgres, SQL Server, Oracle, MySQL or any other interchangably), then you _can_ package MySQL with your product, and need not negotiate a license. Obviously, it's still GPLd, so you must offer the MySQL source to any recipient of the binaries. But unless your program can't do without MySQL, it's free as in beer as far as you're concerned.
Sun 02 Nov | Stephen Jones | Err, Dennis, Rather like free as in beer actually. You invite me to your party and I can drink as much beer as I like, but I don't think you'd be that pleased if I started passing the bottles out of the window and selling them to the local off-license. Tapiwa; the problem was discussed quite thoroughly. It wasn't too clear as to what was a product that included mySQL. The license was a little vague, though the commercial price was so low that it hardly justified any FUD. OP: you are probably much more likely to get a visit from the BSA, or an extorition demand from MS lawyers, if you use Open Source. Small PC assemblers that sell PC's without an OS, or with Linux installed, are well aware of this.
Sun 02 Nov | Noname | Most companies that use mySQL or other databases don't distribute the application outside of their own organization.  If you don't distribute it externally, there is no need to GPL whatever code you write on top of or alongside it.  And even if your app runs on top of it, you can always distribute your app separately, and have the recipients obtain their own mySQL.
Sun 02 Nov | fw | The cost of ownership for OSS depends on what you want. You can download it and use it, there you go. You can get in redhat trainers, buy all the desktops, advanced server and get a support contract. It depends on each different situation.
Sun 02 Nov | Dennis Atkins | Free as in beer means you can do whatever you like with it. You give me a free beer, I can drink it, take it home, sell it, whatever I like. Licenses like the BSD are in this quadrant. If your license has a lot of restrictions about what I can do with the software (forbidding sales withot GPLing is a big restriction, a humungous one), then it is simply not free. Let's say I go down to get a 'free lunch' and I am told I have to sweep the sidewalk first if I want to share the lunch with my friend. Well, then that is not free -- it comes with restrictions. 'Free as in freedom' is also a misnomer, when applied to the GPL. The GPL is as far from 'free as in freedom' as any license that is in popular distribution. There is no 'freedom' associated with the GPL, there is only slavery for coders foolish enough to indulge in it.
Sun 02 Nov | Dennis Atkins | No name, Distribution is distribution. If software is distributed within your department, you'll have to open it.
Sun 02 Nov | Noname | From the GPL FAQ at GNU.org: http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic 'You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization. 'But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.'
Sun 02 Nov | RocketJeff | Also, just to highlight a section in the post that NoName just made: >>the GPL requires you to make the modified source code available to the program's users This means that if you distribute a GPL'd program to users outside of your organization, you have to give (or make available) a copy of the source code *to them*. You don't have to put it up on a web site or make it available to everyone - you just have to make it available to the people that you gave/sold the binary of the program. They can, at their digression, redistribute it. Of couse, if you modified a GPL'd package for a business, they are probably _not_ going to redistribute it to their competitors... There's lots of FUD against the GPL. I agree it isn't the best Open Source license in the world (I like the BSD license better in ways), but there's nothing deceptive about it. IF you don't like the GPL, simply don't modify or use software licensed with it.
Sun 02 Nov | Walter Rumsby | I don't think GPL is deceptive, but I also don't think that MySQL is as "free" as people think.
Sun 02 Nov | anon | MySQL AB also bought the JDBC driver that everyone used (mm.mysql) and gave it the same license. So now, as I understand it, if I distribute Java code and include the jdbc driver (so that the customer can download and install MySQL separately), I STILL have to pay the licensing fee. This was confirmed to me by a MySQL sales rep.
Sun 02 Nov | Noname | Then don't include the JDBC driver, let the customer download it.
joel test #13 | Sun 02 Nov | Michael Moser
Since this site deals with the best practices business - How about institutionalizing shot naps after lunch? Siesta time - Twofold increase of productivity. - Much better than poisoning programmers with overdoses of coffee - Contributes much to a friendlier atmosphere.
Sun 02 Nov | Matthew Lock | Just tell me where to sign... An alternative #13 would be 2 hour lunch breaks. I worked at a place where we would have a team lunch for an hour in a restuarant, followed by an hour of relaxed chatting about the project in a coffee shop. Our productivity skyrocketted.
Sun 02 Nov | Ross | Matthew, do you mean it was obligatory? 1) having your lunch at the restaurant with the team-workers 2) talking with them the next hour in the cofee shop And then returning to the office and keep working for the rest of your working time? So 1 to 2 hours of your free time were used as a tool for making stronger the system you were building? Where is the personal freedom, here? It sounds to me as a torture. (May be I didn't catch it, so it was not obligatory.) Anyway, talking about freedom, at my current job we have got 2 little things I do like very much: a) you can enter in anytime between 8 and 9 b) you can spend 1 to 2 hours at lunch So, some people choose 8 to 5, others 9 to 6, others 8:30 to 6 (1:30 a lunch), etc. You can combine everyday your time table according to your private life (meetings/emotions/etc.). I'm quite sure these 2 so little points are so healthy, and I can not see why 99% of companies could not offer them.
Sun 02 Nov | tapiwa | I work best when I set my own schedule. In a previous job, depending on my energy levels, I would work from 07h00 to 23h00, or from 09h00 to 17h00, or from 11h00 to 20h00;... you get the picture. I think this is so for a lot of people. The only problem is that it is generally accepted that 08h00 to 18h00 are normal office hours, and so most people work these hours where face time, or indeed air time is required. In most cases though, it is really just a case of managers who equate the amount of work you do with the amount of office time you put in.
Sun 02 Nov | Dennis Atkins | Matthew, I worked at a place liked that once -- twice a week, we'd have a two hour lunch at a nice restaurant paid for by the president of the company. Talk about work and life, etc. You're right that it was a very productive environment as well; we kicked the butts of our many competitors. Also, that sort of cameraderie probably prevented many from quitting in frustration during the tough parts. I consider that president to me a leader who understood team building and knew how to manage a business based on IP.
Sun 02 Nov | Dennis Atkins | Oh and regarding the freedom issue - you didn't have to come if you didn't want to.
Sun 02 Nov | NC | Dennis, just a thought... Is it possible that the lunches worked because there was a solid pre-existing team atmosphere, and not the other way around? I'm curious, because I've worked in places where attendance at such a lunch would have been really low, and this corresponded to pitiful team effort.
Sun 02 Nov | Dennis Atkins | Well I guess there wasn't any strong animosity at least; there weren't any jealousies among developers that I was aware of, for example. I do think that it helped people relate to one another -- perhaps there would have been more interpersonal problems if the lunches didn't exist. Obviously, it was a small company... lunches would be ten people at most. As far as attending the lunches goes, it was a free long lunch at a nice restaurant, so I think it would be hard for people to consistently turn down anywhere. Think of the company Christmas party -- people who don't like each other show up and fraternize because there will be plenty of booze flowing and a good feed. Or notice how developers are attracted to the booths and presentations at conferences that offer free food or drinks.
Why CEOs will never get "IT" | Sun 02 Nov | StickyWicket
I liked this article http://www.tomfairlie.com/tech/
Sun 02 Nov | StickyWicket | Sorry. Clicked too fast. I liked the point made that executives have never been able to see past IT (or engineering for that matter) as a cost center. Perhaps Joel is the exception, but I've got the feeling that most of corporate America isn't like Joel. Kind of sad really.
Sun 02 Nov | Matthew Lock | Interesting reading. It validates my opinion that nowadays it's easier than ever for a bunch of hackers to form a start-up and successfully compete against a bigco.
Sun 02 Nov | no name | Joel isn't the exception. This is the difference between working for a company that sells software versus working for a company that uses software. If your company sells software that makes selling widgets easier, and you write code, then you are working in a profit center. If your company sells widgets and you write code that makes selling widgets easier, then you are working in a cost center. You may be writing the same damn code, but your role in the corporate environment will be vastly different. And it may get outsourced.
Sun 02 Nov | T. Norman | 'Cost center' vs. 'Profit center' is an arbitrary distinction. Anything that costs money can be classified as a cost center, even sales people. Sales people are usually classified as a profit center only because they lie close to the money in the chain of events. But if people would just naturally flock to buy your product, you wouldn't need sales people. Instead, the reality is that you have to pay them commissions and/or salaries. Similarly, if you could get software to run your business for free (including managing itself), you wouldn't need to pay IT people. But the reality is that you have to pay for at least some software and hire people to manage it. A new software system that helps you sell or deliver more widgets may bring more added revenue than increasing your sales force. Look at brokerage houses. Stockbrokers used to be considered the big profit centers for them, but now with online trading, some firms view them as cost centers. There is a campaign going on in the media to classify IT as a commodity which doesn't bring a competitive advantage. The mantra has become 'Every company has IT, so it's not a differentiating factor, and we may as well get it from the cheapest source possible.' But the reality is that even though every company has IT, some have vastly better IT than others, so that statement is as absurd as saying 'Every team has a coach, so coaches are not an advantage, so let's just hire the cheapest one available.' The companies with better IT are able to turn products from conception into reality much faster than their competitors, can sell and support the products with less people, and are able to analyze company and market data in ways that help them get advantages in capacity and inventory management, pricing, and distribution.
Sun 02 Nov | tapiwa | IT is a cost centre. I see most inhouse development going the way of the typing pool. The number of applications that users are developing themselves with Access and Excel is already indicative of this trend.
Sun 02 Nov | no name | T. Norman, I think you're confusing cost of goods sold with cost centers. Without widgets, you could have the best IT, sales, & HR teams in the world & still not make any money. Unless of course your 'widget' was a software product, in which case the IT staff would be in the profit center.
Sun 02 Nov | StickyWicket | There are 2 common paradigms in business (not the only 2): cost centers and profit centers. The profit centers are exciting and drive the business and cost centers are necessary evils that are always minimized. My point was that IT, even if we know that it drives business, is still being looked at as a necessary evil that should be reduced (i.e., through off-shoring, outsourcing, etc.). This is where the logic is flawed IMO.
Sun 02 Nov | T. Norman | 'Without widgets, you could have the best IT, sales, & HR teams in the world & still not make any money.' Or you could have a zillion widgets and not be able to sell them without the IT, HR, sales, etc... if you were even able to produce them without the IT, HR, sales, etc. 'Cost centers' increase profits, or it would be a stupid business decision to keep them there... unless they are there for entertainment or legally mandated reasons. 'Profit centers' cost money, otherwise we'd all be millionaires if profits would flow in for free. It is an arbitrary distinction, made by the managers in power in order to serve their own interests. You have better job security and can get bigger bonuses if your department is viewed as a profit center.
Sun 02 Nov | no name | Maybe we're just playing semantics, T. Norman. I can always think of a business in terms of its 'core' business versus the support structure built up around that core. To me, the core line of business is the profit center, while the support built up around that core is a cost center. Not that that's necessarily bad - Dell & Wal-Mart have shown what a competitive advantage intelligent support centers can bring.
Sun 02 Nov | Stephen Jones | I suggest that the article could equally be entitled 'Why IT people just don't get business'. Let's look at this quote: 'Overall, this will have the effect of depressing salaries, lowering morale and productivity, and reducing the number of computer science and engineering graduates in the United States. Do any of these trends sound positive?' Depressing IT salaries looks very impressive to the comapmies that are having to pay them, and I would like to know how he thinks outsourcing is going to lower the productivity and morale of all these programmers in India who are getting the work. And I fail to see how less computer science and engineering graduates is bad news to anybody except for the staff of the computer science and engineering faculties. It is worth also bearing in mind that until about 1999 (that is to say the last time figures had been made available) the net gain in productivity from decades of investment in IT was precisely zero! There have been dozens of weekend and full week conferences of economists to discuss the anomaly without anybody getting any closer to explaining it. This explains why so many CEO's treat IT expenditure as being an example of the Red Queen effect; they have to keep on spending more and more money just to stand still. As for CEO cost cutting remember if you are a hammer everything looks like a nail, and to CEO's who are in cost-cutting mood every department in their enterprise is viewed as a candidate for the chop. IT is no different.
Sun 02 Nov | no name | What happens to a country that no longer manufactures its own goods, no longer is the force behind innovation, and finds both its citizens and itself deeply in debt?
Sun 02 Nov | it_ranter | 'This explains why so many CEO's treat IT expenditure as being an example of the Red Queen effect' How does it explain that, exactly? It seems to me that productivity gains have been large in some industries and miniscule in others, and what you're citing is a macroeconomic report that gives an across-the-board view. Perhaps CEOs for whom technology has failed to increase productivity, may attribute it to a 'Red Queen effect.' But it could just as easily be attributed to a cargo cult effect, too: the internet and technology were hot, and people invested in them without thinking about how to fit them into their business. Which is precisely the article's point. CEO's took a long time to reshape their business processes (eg, by creating the CIO position), and even today that's still the case. A good example I see today is the collaboration business, where executives invest millions in such systems, but basically just turn them into automated versions of their legacy processes. CRM is another example; often companies will just funnel customer data into centralized repositories, without _really_ using it to change how they deal with customers. I realize that changing one's business processes to accomodate technology is a tough sell. The article is probably too harsh in the sense that executives probably _would_ get technology were it sold to them properly--and if it had been treated as a long-term investment.
Sun 02 Nov | T. Norman | 'It is worth also bearing in mind that until about 1999 (that is to say the last time figures had been made available) the net gain in productivity from decades of investment in IT was precisely zero!' Productivity in terms of widgets/tons/whatever produced per person per day has WAY increased in the past few decades, thanks to IT (and other factors). The 'zero gain' you speak of is only plausible if you are talking about dollars. As IT and other mechanisms enabled companies to produce more units per person, their competitors also enjoyed increased production capacity, which forced everybody to drive down prices or add more bells and whistles -- to the extent that they are probably no better off than before the productivity enhancements were in place, although any given company would be out of business if they didn't implement the technology.
Sun 02 Nov | Walter | > the net gain in productivity from decades of investment in IT was precisely zero According to who? Some third rate Gartner hack? None of the massive consumer oriented high transaction businesses like banks, or distribution networks, or almost anything, could even be in business today without automated centres. The productivity gain from IT would be a high proportion of the improved value in national economies from 1970 to 2000.
Sun 02 Nov | Frederic Faure | Funny how we're all talking like economics were an exact science... :-) Let's put it this way: As seen from an accountant's point of view, salaries are a cost. So, a lean and mean company should just fire all its employees... and make a killing. Unfortunately, robots don't buy anything ;-)
Sun 02 Nov | no name | T. Norman, one thing I agree with you about is that productivity has been astounding the last several years. That's why we have growth right now with no new job creation - excess productivity.
Sun 02 Nov | Stephen Jones | --'According to who? Some third rate Gartner hack?' --''You can see the computer age everywhere but in the productivity statistics,' Nobel economics laureate Robert M. Solow said in 1987.'---- Not exactly a third rate Gartner hack. The source for the article is http://www.ncpa.org/pd/economy/pd031500i.html and the article suggests that computers are now showing in the productivity features for the first time; the two years quoted for the change are 1995 or 1997. Considering that companies have been investing in computers since 1970 somewhat of a long wait, and there are figures that doubt the increase in productivity figures for the late 90s. The period from 1972 to 1997, when all companies were investing heavily in IT, is considered to be a period of stagnation in economic growith in the US, compared to the 'Golden Period' 1913-1972, when scarcely any private companies had computers. Anyway its late, and if I don't get to bed now this forum will be eating into my productivity. More figures tomorrow if anybody wants them.
Sun 02 Nov | Walter | The topic of productivity is one where there are often ill-informed contributions ( possibly including mine.) If computerisation didn't improve productivity, why would all those organisations have spent so much money on it? Also, what would a company look like without computerisation? Imagine how cumbersome it would be. Productivity is not an issue I've examined, but there must be agendas behind reports that claim no productivity growth.
Sun 02 Nov | Sum Dum Gai | Walter has it spot on. If there's been no growth in productivity through IT, yet it costs money, it stands to reason that a company could go completely without IT and make a killing. After all, they'd be able to create products at the same rate as other companies, but at a lower cost. So if that's the case, why isn't anyone going the no IT route? It just doesn't make sense.
Sun 02 Nov | Justin Johnson | I had an interesting experience last week. My sysadmin and I proposed a project to the president to transition from a frame-relay based voice/data network to Internet/VPN based. We had a pretty strong cost analysis that showed 40% savings over 5 years, around $400,000. We were asking for a little over $10K upfront for consultants to backstop our analysis and tighten up the numbers. The president looked at us and said that the costs we were proposing to save were less than 0.2% of revenue over that period, and asked why we were bothering. We thought he'd be ecstatic to see $80K in savings a year, when sales are flat. He asked us why we were trying to save nickels and dimes in IS when we should be trying to save dollars in Operations. I agree with the poster above who said that the article could as easily be read as 'IT geeks don't get business', since the article seems predicated on the idea that putting money into IT is necessarily or normally beneficial, and that cutting costs there is always mistaken. The head shift I had after that proposal was the IT is a cost or profit center like any other--neither more nor less special. Money spent there is an investment like any other. What the president hit me with was the fact that we were investing badly in IT, or at least not investing as well as we should be.
Sun 02 Nov | Dennis Atkins | Walter, I've got a book here, 'The Trouble With Computers' by Landauer. He extensively documents and analyzes exactly this mystery of computer technology failing to improve productivity very much, at least not more than the general productivity gains across the board over time. For example, a secretary will take far longer to type a letter nowadays with Word than she ever did back in the old days with a Remington typewriter. His explanations for why companies do it even though there is no benefit is that pepole love computers. Even though computers make things less efficient, people think they are cool and fun and impressive sounding to explain to others and using them is nifty. He admits that this appears a good enough reason -- companies and people don't always do the thing that improves the bottom line -- sometimes they do what they want to because they think it sounds cool.
Sun 02 Nov | Tom Fairlie | Computers are so completely ingrained in business that it's as impossible to imagine life without them as it is to accurately assess their weight in a particular circumstance or across the gamut of all business. First of all, I completely disagree that they haven't helped productivity. Sure, there are cases where using a computer adds time to the equation, but even the secretary who takes twice as long to type her memo will benefit from not having to type it 100 more times with mail merge. Productivity has gone up a lot over the last 20 years. Whether or not this period is better than those preceding it is almost irrelevant. For instance, GDP has grown a lot more %-wise in the past, does that mean we're really not growing as well any more? Perhaps all the produtivity tricks expired by the late 1970s and it took computerization simply to maintain any growth in productivity. However, in the end, my analysis is that the advances computerization has brought have paled in comparison to what they could have been if executives actually understood what they were doing. Rather than keep up with the Joneses, the smart executive could have leveraged IT to really increase productivity, quality, innovation, etc. www.tomfairlie.com
Google PageRank and Comment Spam | Sat 01 Nov | Jeremy Dunck
See these: New anti-comment-spam measure http://simon.incutio.com/archive/2003/10/13/linkRedirects Bayesian filter for MT http://james.seng.cc/archives/000152.html Solution for comments spams http://james.seng.cc/archives/000145.html
Sun 02 Nov | Evgeny Gesin /Javadesk/ | What reason to allow "robot" to scan a content? I use User-agent: * and then Disallow: /bla-bla
The Ridiculous Influence of Microsoft | Sat 01 Nov | Dennis Forbes
Ive been reading with interest the various promises that the Longhorn operating system will bring to fruition (never have I seen the Microsoft PR machine so in force so early before delivery -- usually this is to stop customers who might be considering an alternative with the enticement that something great is just around the corner. As a sidenote, if you have watched operating system promises and delivery over the years, youll notice that the actual change delivered in most is dramatically less than that which was promised early in the product conceptual stage) -- I must confess to being both underwhelmed, and more than a little disturbed: Could someone explain the ridiculous credibility that people seem to give to any project emnating from the halls of Microsoft? I have tremendous respect for Microsoft, and theyve had a lot of great products (along with a lot of horrible flops and about faces) but I really just dont get it. XAML - This one introduced the word of the day, currently seen in large numbers from blog to shiny blog, which is declarative. This revolution is basically that the elements of the interface will be stored in a declarative fashion -- You know, like HTML (or even a bloody resource file). Of course for the actual interoperations you largely see a standard procedural language. Excuse me if this strikes me as a variation on a theme, and something worthy of virtually no attention. WinFS - When I see people agog over how directories will no longer matter, and no longer will people have to bother carefully naming files (instead theyll have to carefully fill out accurate metadata describing each file...), and well have the amazing abilities of a database backing up the file system, I dont get what all the fuss is about. Firstly, a file system _is_ a highly specialized database (NTFS even uses b-trees in great numbers) - Having a SQL style front-end on the file-system has always been a personal dream (finding files via SQL-92), but it is largely irrelevant for end consumers - they want to find files via a search utility. For that there are countless utilities, including built into Windows 2000 and beyond (or FindFast.exe previously) that index content and attributes, allowing you to find any file in the blink of an eye. NTFS allows one to add custom attributes on files, and of course certain file types have custom attributes (such as all of the extended data in a JPEG file): Again, there are utilities to index and search all of this. What does WinFS offer beyond this? Building a file system on the foundations of a database server seems like nothing more than cross-product shilling. Neither of these are even remotely revolutionary, and of extremely little consequence to the real world. Why the hype? So far the only element of Longhorn that really interests me is a DirectX desktop utilizing vector graphics and 3 dimensions (the hardware is there now so it makes sense), but beyond that it sounds like a bunch of marketing nonsense. As a sidenote, how many people are there are using the revolutionary voice recognition functionality widely hyped and delivered in Office XP? My guess is that less than 1% of 1% of 1% of OfficeXP customers use that feature, and I feel that Im over-estimating.
Sat 01 Nov | anon | If you think this is a lot of hype, wait until Apple makes it's next batch of announcements.
Sat 01 Nov | Matthew Lock | I've never seen anyone ever use voice recognition on their PC ever.
Sat 01 Nov | Srdjan | About voice recognition -- I have seen once blind people using computer which was driven, among other means, by voice...
Sat 01 Nov | Ed the Millwright | The voice recognition that came with System 7 around 1994 was pretty good. You could say "Computer, Font Arial", and it would change the selected text to Arial. Then you could say "Computer, Bold Text", and it would do that. And you could say, "Computer, what time is it?" and it would speak the time in a lovely femal voice. But then you realized that it was a lot faster to just use the keyboard or look at the menu clock.
Sat 01 Nov | mb | about voice recognition... when it gets much better, it'll be useful. but speech synthesis works well today. why on earth doesn't windows have easy text-to-speech? it has the capability, just no good UI. Excel can do this (speak cell), but Word can't. And Windows has 'accessiblity' support, but it's useless for a normal person. what is text to speech useful for? proofreading! does longhorn have the text-to-speech app? (or maybe winxp has it, and i just haven't found it yet.)
Sat 01 Nov | (const tchar*) &me | I think the trend goes like this - dominant players in consumer and business software want to provide additional functionality to end users who, at the end of the day, are a little bit thick. For this to work, they have to make everything mushy so it can be sucked up through straw, so to speak. It makes it all more accessible to search facilities. But goodness me, the effect for software developers, having to wade through all this slosh. In summary, Microsoft is providing slightly greater functionality to users, enabled by greater complexity, as always, but this time it's also become very sloppy for the programmers working with it.
Sat 01 Nov | Nat Ersoz | Same old, same old. I try not to even comment any longer. Can you imagine the PHB, who has to contend with engineers who have shipped stuff to the field, and are having some trouble... if only I have partnered with Microsoft... Where is my beautiful wife? Calgon, take me away... Oh, they have Longhorn, better than Viagra and it has virtual foolproof blah, blah, blah... I get so confused with 'C: drive' computing. Somebody please fix my world. I need a silver bullet. Never mind...
Sat 01 Nov | HeWhoMustBeConfused | Please, please, please, please don't put voice recognition or speech output on any computer near me. The same morons who bombard me with their childish cell-phone ring-tones will think they have died and gone to heaven.
Sun 02 Nov | obvious | Remember Microsoft's hype surrounding a product and the quality of that product tend to be inversely proportional.  In other words longhorn is loserhorn.
Sun 02 Nov | obvious | 'a DirectX desktop utilizing vector graphics and 3 dimensions' Are you kidding. Users can't handle double clicking icons on a two dimensional desktop. How the hell will they handle 3 dimensions. Help Desk to user: No, it is the icon partially underneath that one...
Sun 02 Nov | Run To The Hills | I still remember people salivating over "Cairo" which was supposed to cure cancer and butter your toast in the morning.  When the hype machine couldn't take it anymore "Cairo" was demoted to "a series of upcoming technolgies".  In the end we got the next version of Windows NT.
Sun 02 Nov | Walter Rumsby | I would guess that by "3D/vector-based" they mean something like Quartz (in Mac OS X) - i.e. nice drop shadows and the like - I don't think Microsoft would be silly enough to provide a 3D UI, leave that to startups preying on naive investors.
Sun 02 Nov | John Ridout | Didn't Microsoft Bob have sometihng of the 3D about it?
Sun 02 Nov | Ori Berger | About a database filing systems: There were several occasions I wanted that in the past, and 'indexed attribute' filesystems would not have helped me. I had several servers, and I wanted to know which users have files on which servers. That could have been done as a select statement that joins inputs from several machines. The real strength comes with the ability to join against other databases - e.g., a select that involves both the filesystem and the HR database. But for this to go beyond theory, many programs will need to change, in a significant way. My guess is that this feature will mostly be abused. For 99% of the uses, better search tools (Unix 'find' and 'locate') are sufficient, and don't require much software to be modified.
Sun 02 Nov | Walter Rumsby | As I understand it AS/400's filesystem is basically a DB/2 (aka DB/400) database. Do people do the kinds of things that Ori mentions with AS/400?
Sun 02 Nov | Portabella | > usually this is to stop customers who might be considering an alternative with the enticement that something great is 'just around the corner'. If so, then the XAML announcement must mean that they're really worried about the Web (again). > The real strength comes with the ability to join against other databases - e.g., a select that involves both the filesystem and the HR database. If the benefits were so huge, we could simply write all applications as database applications.
Sun 02 Nov | Stephen Jones | The thing with speech recognition is that people tried it four or five years ago and it sucked so much they dropped it completely. The software still sells and a combination of better programs and Moore's law mean that it is not the lemon it used to be, but it still doesn't provide significant advantages over typing. It appears that after training the program can get to a speed of about 40 words a minute, which is well below the typing speed of a secretary and round about the typing speed of the average teacher, freelance writer or whatever. However using speech recognition and then correcting everything after breaks up the workflow much more than typing does.
Sun 02 Nov | Stephen Jones | I work with Language Learning software, and many of the programs have speech recognition - hélas. There is one which grades your accent from completely incomprehensible to native level. A small proportion of our students managed to get grades native level but all of us teachers wallowed in the completely incomprehensible until we learned that the trick was to try and imitiate the students. I'm told that in tne French versions the trick is to try and imitate Peter Sellers. We used another program (which is unfortunately unavailable now because Syracuse Language Systems sold it to Vivendi who went bust and didn't leave anybody around who was prepared to sell you a copy or a few hundred). This had certain activities where you would speak into the microphone to perform certain instructions on screen. The normal man/computer conversation would go something like this: 'Turn right! Turn right! TURN RIGHT! T U R N R I G H T ! TURN RIGHT FUCK YOU!'
Sun 02 Nov | WildTiger | HeWhoMustBeConfused, make sure that there are NO WinXP/W2K3 computers around you! Otherwise warn anyone to be ready to be killed by you:) All Programs->Accesories->Accessibility->Narrator
Sun 02 Nov | Scot | awesome!  were is my C-64???
Strategies for managing lib files in src control | Sat 01 Nov | j b
At every software company Ive worked at, theres been a standard directory structure in the source control system Product Version src //code goes here lib //jars go here foo.jar bin This setup makes writing build scripts or configuring IDEs really easy: you just set the classpath to everything in the lib directory. However, theres some problems with this approach. 1)The same jar is on likely in the source control system (and therefore lots of peoples hard drives) in multiple places: this is inefficient. 2)Theres no easy way to get metadata about the jar: where product/product version it came from, what version it is, etc. The manifest file in each jar is supposed to have that information: in practice not all of them do, and some information that you need isnt ever there. 3)Controlling which jars are being used in development (or shipping with the product!) is difficult, since the jar location isnt centralized. What alternative approachs or strategies have people tried to manage jars in a source control system? How did it work out? What Im imagining is some kind of centralized jar repository, that holds all the jars used by developers in a company.
Sat 01 Nov | Ori Berger | This structure is usually used in SourceSafe repositories, and is mostly a result of Source Safe's data model. In most version control systems, it is much easier to work with a _branch_ for each version, rather than a directory for each version. Also, external sources can be shared and tracked independently of the main tree. CVS lets you do 'vendor imports' and 'vendor branches' for this purpose. I don't think it's intuitive to anyone, but it does work (Read the CVS book affectionally known as 'the cederqvist' for detailed instructions). If you guys are using VSS, I would suggest considering a different version control system. And if you're already using a version control system with proper support for external tracking and branching, use it.
Sat 01 Nov | son of parnas | 1) Do you mean people should access it over a shared file system? 2) This information can be in the submit comment so it is accessible via the revision history? 3) From your diagram it looks like all your jars are under lib. We centralize all our jars just because it is easier. We have some 3rd party jars and our jars get built in the lib directory. We also have a classes directory for the classes that are created.
Sat 01 Nov | j b | re:shared file system. No, I'm thinking of keeping it in source control, but centralizing libraries. Something like this all_jars foo foo_1.1 foo.jar foo_1.2 foo.jar but then you have to deal with 3rd party jars that came with products your software runs on top of. In that case the best thing I can come up with is doing something like this... all_jars base_platforms jakarta-tomcat-4.1.24 servlet.jar
Sun 02 Nov | Chris Tavares | Something we did once: Repository had a 'thirdparty' project, under which were all our third-party libraries. Our build script would, as one of its first actions, copy the third party libraries into our bin directory. The bin directory is NOT in source control; it's the location that all our projects built into.
Sun 02 Nov | Liron Levy | In my company we had three different kinds of project trees: 1. The project tree held in the source control system. This project tree held 3rd party files in zipped format (ready to be unzipped if necessary). 2. The project tree that was used as a development tree for each developer. In order to set this tree we used to: 2.1 GET all project files from the source control system. 2.2 run a special 'mkdevtree' script that unzipped any 3rd party files etc. and extracted necessary JAR files into their /lib directories in the development tree. It also created development-only directories and files (e.g., /classes, /lib). The script also set any necessary environment variables and registry keys. 3. The deployment tree. This tree was created by the installer software for the final product. It usually contained a small subset of the directory hierarchy that was used for the development tree. It also contained some files that were missing from our development tree (e.g., un-install information and help files). This separation of concerns contributed to a clear project tree in the source control system that was uncluttered by a myriad of 3rd party files (e.g., javadocs) because it only contained the zipped files and the work of preparing them for development work was delegated to a specialized script.
XAML... what's it good for? | Sat 01 Nov | Robert Jacobson
Ive been reading up on the Longhorn features, and particularly XAML. Theres a good article here: http://msdn.microsoft.com/longhorn/default.aspx?pull=/msdnmag/issues/04/01/Avalon/default.aspx However, I cant seem to grasp the benefit of using XAML over a traditional declarative language like VB.Net or C#, at least for traditional Windows forms applications. In many ways it looks basically like a matter of syntax. For example, these two code snippets (from the article) are functionally the same: Button btn = new Button(); btn.Background = Brushes.LightSeaGreen; btn.FontSize = new FontSize(24, FontSizeType.Point); btn.Content = Calculate; Both express the same idea -- draw a button called Calculate using the specified parameters. Although the XAML code is slightly shorter, it doesnt provide any functional benefit over the C# code. Further, for producing any code that actually useful, youll have to embed real code (C# or some other language) within the XAML, which then has to be compiled into intermediate language code. Im wary about the need to mix-and-match two different languages (e.g., XAML and C#) to produce usable code when one language (C#) can do the job perfectly well by itself. The only obvious benefit is that the XAML code is arguably easier to read than comparable VB.Net or C# code. However, few people actually code their GUI elements by hand -- most people just use the Visual Studio forms designer and use the autogenerated code. (Even with XAML, there should hopefully be an equivalent forms designer -- writing the XAML by hand will be tedious.) I can see how XAML could potentially be a benefit for ASP-style applications -- but Microsoft is apparently positioning this as the new paradigm for desktop applications as well. What am I missing -- how is XAML preferable to ordinary declarative languages?
Sat 01 Nov | EastIndian | Chris Anderson says ... http://blog.simplegeek.com/PermaLink.aspx/100aec62-3352-4c35-b471-f3f2fa5fac5a
Sat 01 Nov | Tayssir John Gabbour | Probably because VB has too much syntax to be a knowledge representation language? Hard to manipulate and syntax details can quickly become obsolete whenever the VB team chooses. There is one class of languages out there that blurs the distinction between code and data, but its fatal flaw is its most popular dialects use the wrong kind of bracket. (sarcasm :off)
Sat 01 Nov | Christo Fogelberg | Just a quick terminology note, FYI and to avoid confusing people in future... 'However, I can't seem to grasp the benefit of using XAML over a traditional declarative language like VB.Net or C#, at least for traditional Windows forms applications.' As I understand the term, declarative languages are things like SQL, HTML, and to an extent, Prolog. I wouldn't call VB, C# etc declarative - perhaps procedural or imperative or something similar :-) Regards, Christo
Sat 01 Nov | Robert Jacobson | > As I understand the term, declarative languages are things like SQL, HTML, and to an extent, Prolog. I wouldn't call VB, C# etc declarative - perhaps procedural or imperative or something similar :-) < Very true -- sorry about that.
Sat 01 Nov | swanson | One thing to note is that a declarative description of a GUI like the XAML one is working at the level of specification, whereas the more traditional VB description of the GUI is working at the level of implementation.  This has some implications about where and how the GUI is eventually realized.  There are some similarities to designing a system of interfaces versus designing the system with abstract classes.
Sat 01 Nov | T. Norman | I think the idea is that XAML will be used to deploy rich-GUI over the web (assuming of course, that the client machine is running Windows Longhorn and IE 7+). Instead of using the applet strategy of transmitting bulky class files over the Internet, to be interpreted by a slothy JVM, they can just transmit an XAML file which is no larger than a typical HTML file, and native OS libraries will read the tags and render the screens and widgets for the application.
Sat 01 Nov | T. Norman | And of course, an important "side effect" is that they'll be able to exert control over the Internet, once XAML's use becomes widespread enough.
Sat 01 Nov | Ori Berger | If I understand it correctly, XAML is Microsoft's version of Mozilla's XUL. If XUL was popular, they'd probably have embraced and extended it. But XUL isn't popular, so they start out something new. XUL's (lack of) popularity is not based on merit, btw. It's not perfect, not bad either -- but that's not the issue. It's just that it is -- relatively-- unknown to the world at large. Most of the benefits that XAML promises to deliever have been delievered by XUL two or three years ago or so.
Sat 01 Nov | fool for python | This is a dupe of an earlier post. Lot's of analysis and clarification here. Some XUL/XAML analysis here: http://www.xulplanet.com/ndeakin/ And Don XML on XAML/SVG-RCC: http://weblogs.asp.net/donxml/posts/32121.aspx And more informed analysis: http://www.joehewitt.com/ http://weblog.infoworld.com/udell/
Sat 01 Nov | Dennis Forbes | XAML is a last grasp attempt at forestalling the shift to web development. Working in several large corporations, I have witnessed an absolutely seismic shift in the majority of application development - From Win32 Visual Basic/Delphi/C++ work, to DHTML/XML/XSL style development served through a web server. In that scenario, the client operating system basically is wide open given that a modern standards compliant browser is accessible (which is virtually all platforms with a project like Mozilla). Of course most corporate workers still use PowerPoint for their presentations, and Word for their documents, but the scary thing for Microsoft is that the underlying pressures forcing a continued use of the Microsoft platform have been greatly diminished. XForms will be yet another step in the direction of an irrelevant client platform. XAML is a 'look, it's declarative like HTML, but with extra widgets and gizmos'.
Sat 01 Nov | Robert Jacobson | Well, thanks to everyone for the thoughts.  I understand that this could be highly desirable for Web applications.  However, I still don't understand how this offers a superior model for "old fashioned" Windows GUI applications.  I hope I'm not being dense -- but as a Windows app developer, I'm still rather underwhelmed by this.
Sat 01 Nov | Tayssir John Gabbour | I helped implement a gui system based on xml a while ago, and it was basically a forced choice because we needed multiple platforms (language, os) to create reasonably similar guis. Xml wasn't forced, just abstracting it out to an i/o format was. Microsoft appears to be in the same bind with .net. Also, there are random advantages for maintaining a nice design where you separate computation and data. When you localize to foreign cultures, you almost certainly have the details in some file or other storage already. Accessibility to the handicapped and stylesheets are also helped, if the design is done right. Maybe there are deeper advantages than I've thought of. For example, I'd really like a designer be able to spit out a few gui mockups, pass it to a programmer who annotates them with events and control functions, and somewhere there's a usability honcho using a tool to tweak them while the first two watch and consider. When I learned common lisp this year, this style became more natural to me; it's not strange anymore for code and data to mingle. Someone mentioned blog.simplegeek.com earlier, and there he mentions namespace difficulties that probably have something to do with the traditionbound segregation between code and data. In most languages, this probably looks like 'effort' to get done, which is usually the sign of a bad design; but this instinct can lead us astray when a new thing comes along.
Sat 01 Nov | no name | I'm with Robert on this one. These changes are horrible for people writing applications. They lend themselves better to automation controlled by someone else though. Part of the trend to dumbing down programming, I think. I've see applications built like this and they were interesting, but not enough that I would want to write logic using a text format. They had the theoretical benefit that the UI could be updated by sending a new text file, and so theoretically business rules could be changed anytime and complete new application sent out. In practice, the app was an absolute dog to start, because it had to compile itself on startup. The theoretical benefits of having a dynamically updatable UI were not achieved because the text format was just too loose to accommodate any but the most trivial changes. I was not involved, by the way.
Sun 02 Nov | mb | Cocoa (Apple's current reccomended dev environment) apps are pretty much built this way. don't know if nib (NeXT Interface Builder) files are text or binary, but they do separate out UI from code.
Sun 02 Nov | Chris Hanson | Nib files in Mac OS X Cocoa - just like in NEXTSTEP before it - are serialized object archives. They're in a binary representation by default, but as of Panther it's trivial to turn on a text representation instead. (It's not that useful a text representation, but it exists.) There's a big difference though, between what is used in Cocoa and what's used in XAML. With XAML, you lay out your interface. Then you compile this XAML file, generating C# (or maybe IL) that actually builds the interface. Then you write the code that implements the actions invoked from the interface. Then you link these together, and you have an application. With Cocoa, you lay out your interface visually as a nib file. Then you write the code that implements the actions invoked from the interface. You include the nib file in your application. To use it, you load it at run time and *all of the linking of interface objects to properties* and *all of the linking of actions* happens *at run time*. There's no 'compile your interface to the code that instantiates it' step. What's frustrating reading about XAML is that NEXTSTEP has worked this way for 15 years, and gets it more right than XAML does. Why does XAML need the compilation phase at all, why isn't it purely declarative and entirely instantiable at run time like nib fiels? That wasn't even a hard problem in the 1980s, it's certainly not one now. I've been talking a bit more about this stuff on my weblog at http://www.livejournal.com/users/chanson/
Sun 02 Nov | Jammer | Borland Delphi works in a similar way. The form is stored in a .DFM file. For a form containing a button, the .DFM code reads: object Form1: TForm1 Left = 192 Top = 150 Width = 696 Height = 480 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object Button1: TButton Left = 104 Top = 64 Width = 177 Height = 65 Caption = 'Button1' TabOrder = 0 end end
Sun 02 Nov | Mm | Linux is threatening the Microsoft dominance of the OS. In order for MS to continue dominating the OS market, they need to apply the same pressure they applied to OS/2: the fact that Windows has a lot more application than any competitive OS. And, in order to enhance that pressure, they need as many developers as possible to develop for Windows. So, they improve their Windows development tools. There is a huge number of web programmers who know HTML and maybe a scripting language such as PHP or ASP. By inventing XAML, Microsoft makes Windows application programming a lot more accessible to the web programmers. XAML is a model that web programmers know and understand very well. This is bad news for people already doing Windows programming - our work space is going to be flooded with web programmers wanting to write Windows apps.
Sun 02 Nov | Marketing guy | btw MS should change the moniker XAML. It's ugly. Maybe XPL (P for programming). Or they should dismiss the X part, because you can't go any cooler than 'XML'.
Sun 02 Nov | Robert Jacobson | > btw MS should change the moniker XAML. It's ugly. Maybe XPL (P for programming). Or they should dismiss the X part, because you can't go any cooler than 'XML'. < On that note, what is the official pronunciation of XAML? Is it X-A-M-L (a mouthful), or 'zamel' (like 'camel')?
Alerts Management On FTP Site | Sat 01 Nov | Fairlight
Im looking for a FreeWare/ShareWare which allows you do to the following : *1* Allows you to set up a list of FTP Servers (Unix/Win) : IP Address; User Name ; Password ; Minimum Kb The program should do the following : - Connect every day to to the list of FTP Server defined (In *1*) and get the availble size on the FTP Server Then generale an Alert (by send an e-mail or through a log file) When Minimum KB (define in *1*) < AvailableSizeForFTPServer I hope the requirements is clear ;-) (As you may have find out, my mother tongue is not English) Basically what I want is to raise an alert when the Minimum Size that Ive defined for a FTP server has been exceeded. This needs to occur dayli ...
Sat 01 Nov | Andrew Cherry | On which platform do you plan to run this? I imagine *nix? Some sort of cron job executed daily and using something like perl to connect to a list of ftps should do something similar - getting the free space might be tricky, as I don't know the FTP command spec well, but I imagine it's possible. I haven't heard of a program that does what you wish specifically.
Sat 01 Nov | Andrew Cherry | Using my mind slightly more suggests that "df -k" would tell you the free space... So that should be a good start. Cron job, perl script, df -k... the rest should be easy! If you want it done on windows that shouldn't be too hard either.
Sat 01 Nov | Fairlight | I forgot to mention this solution must work on a Win Platform NOT Unix!
Sat 01 Nov | Matthew Lock | Activeperl runs on win32, and you can use the perl NET::FTP module to easily connect to ftp servers and query their contents.
Sun 02 Nov | M | I third... or is it fourth or fifth Perl. Perl is called the "swiss army knife" for a reason.
Sun 02 Nov | Andrew Cherry | What, innumerable pieces that you don't know what they do, and then a main knife that doesn't work very well just because it's trying to do too many things? Hehe. Only joking, it's ideal for this kind of small task.
Managing web content via web interface. | Sat 01 Nov | Olivier B
Nowdays web-based back-offices are becomming ordinary... but one problems remains to me : How to make them non developpers compliant for text editing ? I mean, even if you use javascript tips to make a good toolbar, you always have to deal with phpBB style code... [b] & [/b] for bold text and so.It is just unaceptable to anybody used to Microsoft Word. Bold text is handled in Word for so many years... even on MS-DOS based softwares !!! Im not even talking about images insertion, tables and so on... So how do you do ? http://www.olivierbouillaud.com/vrac/bold.gif
Sat 01 Nov | Dennis Atkins | :This is *bold* and this is _underline_.
Sat 01 Nov | mb | use a rich text dhtml editor? such things do exist, but typically they only work in specific browsers.
Sat 01 Nov | Almost Anonymous | We use tags like [b] for bold. But generally we use something like style sheets: [title]This is a title [subtitle]This is a subtitle. The text in the [small]middle[x] is small. Numbered and bulleted lists are handled thusly: 1. This is a numbered list 2. So is this 3. And this * Bulleted * List Our users are the clueless newbie type and noone seems to have a problem with this style. We have a convenient 'syntax help' button above all the textareas were this is relevent. I suspect eventually we'll move to a DHTML edit control (we need to support both IE and mozilla) but we've done it this way for years without issue.
Sat 01 Nov | Clay Dowling | You'll be absolutely suprised at how easy it is to get the technology challenged to learn how to put markup code into their document. I like to handle it by making cut and paste help pages. I can even get them to put images into pages, by having a little gallery where they pick their image and get the bit of code to insert. To keep it easy I put instructions on the page for how to use the code snippet.
Sat 01 Nov | sagi | Try htmlArea ( http://www.interactivetools.com/products/htmlarea/ ). The beta version supports both mozilla and explorer. We've been using the commercial eWebEditPro ( http://www.ektron.com ) but it is quite expensive and only runs on windows. It is supposed to support mozilla, but from my experience it isn't working with the latest versions.
Sat 01 Nov | Matthew Lock | > You'll be absolutely suprised at how easy it is to get the > technology challenged to learn how to put markup code into > their document. From http://philip.greenspun.com/panda/static: 'Why don't these what-you-see-is-what-you-get (WYSIWYG) HTML editors enable everyone to become a competent Web publisher? They solve the wrong problem. In the early-ish days of the Web, say 1994, it was observed that college undergraduates who were Unix users could build themselves a Web page in about 30 minutes, even if they were English majors who had never taken a programming class. Users of Macintosh and Windows PCs were unable to produce Web pages at all. Software developers set out to solve what they thought was the desktop user's problem: HTML 'programming' is too hard to learn. It turns out that HTML 'programming' consists of sticking '' and '' around a word that you want to appear in italics. Secretaries worldwide were successfully using word processors like this all through the 1970s. Had the average person's abilities declined so much in the succeeding 20 years that he couldn't learn that 'the I tag is for italics; the B tag is for bold'? '
Sun 02 Nov | tapiwa | I am with Matthew and the others on this one. Basic HTML is easy. Anyone who says otherwise should not be allowed in front of a computer. They are a danger not only to themselves but to others around them. When posting via web interfaces becomes critical, folk will learn rudimentary HTML. At worst, they will have lookup cards for their keyboards/monitors ala Wordperfect / Lotus lookup cards circa 1985.
Sun 02 Nov | Frederic Faure | Olivier: Check your mail box. Sent you a message with a link to an applet I wrote recently to illustrate an alternative to TTW (though-the-web, ie. browser-based, editing).
Sun 02 Nov | j b | This arrogant attitude that 'basic html is easy' is why so many community web sites fail. I run a site (www.dialognow.org) where the majority of the participants are over 50. They are doctors, business people with 100s of employees, professors ... really accomplished, intelligent, qualified people. When I deployed htmlArea you would not believe the positive response I got. It was practically the only feature they cared about when I redid the site. It's not that people are too stupid to learn html. It's that they (rightly) feel they shouldn't have to. They aren't trying to become programmers, they're just trying to use a website.
Sun 02 Nov | Stephen Jones | Do deploy something like HTML area, but unless you want your site to look like the front page of an Arab newspaper at Ramadan, limit what they can do to bold, underline, italic, and just maybe a couple of colors.
Sun 02 Nov | Frederic Faure | BTW, an HTML widget is only a partial solution : - nobody's going to wrote a three-page article in a tiny textarea (besides the issue of the browser crashing with unsaved text...) - even the best HTML widget is pretty cluncky compared to a dedicated app (just try adding a TAB...) - the HTML widget must be limited to what formatting people can use, since the content must be sent in raw format so as to provide a homogenous layout as displayed the CMS server that you should use on the web server. Hence the need for a dedicated app :-)
Peopleware : doors between developpers... | Sat 01 Nov | Olivier B
Im reading Peopleware and the recurrent words are : bring back the door, avoid phone calls, ... The main problem I see is that developpers are shy guys and nobody wants to know what they do. Programming is seen as barbarian work, too difficult to be undestood by the common run of people. So marketing, commercial, event management people dont really know what developpers do... even with doors opened, and phone calls... What about the same thing but with doors closed ? nobody will know the existence of developpers... the only important thing is the result... Im working as a web developper, I will probably be the manager of our team in few months. At the present time we work in an open space, opened to the full floor, so everybody pass in our space... I would like to put pressure on by boss to reshape the open space with partitions. Id like to redirect phones call to me, then I would redirect them to the other developpers only if I judge it is important enough... But I think it means to break the team with the rest of the company... What do you think ? What are your experiences ? ...
Sat 01 Nov | Frederic Faure | Er... Not sure I understood the first part, about developers being introverts... but I second the idea of providing individual offices for developers, and allow them to redirect calls (voice-mail, or their boss.) I understand that open-space offices save a company $, but there's a reason why you're supposed to keep quiet in a library...
Sat 01 Nov | anon | If I am working in a cubicle and not in a private office, I feel closer to my management if they're in the same space as me and not in a private office.
Sat 01 Nov | Beth | As an employee at a company, if nobody knows you're there, that's very bad for your job security. Even if the results of your work are good, having people see you and talk to you all the time is part of keeping up your image as a productive employee. One might be able to write more code if one didn't have to do that stuff, but one would get less credit for it. It's unfortunate that politics are part of office life, but it's sort of unavoidable.
Sat 01 Nov | mackinac | I am a fan of Peopleware and a strong advocate of quiet private offices for developers (that means one person to an office with a door and a window on the office). Over the years I have worked shared offices, cubicles, and a private office. The quiet private office is significantly better than other arrangements both for productivity and for making the office a tolerable place to be. The Santa Teresa report noted that developers spend a significant fraction of their time doing individual work alone and as much or more working with others doing group work or in meetings. People who are stuck in shared space do things like staying late, coming in early, etc. to get their private time. OTOH, if developers telecommuted and stayed home all the time they'd get all the private time they needed but would have a difficult time coordinating with others. Business seems to like either extreme for cost savings, but neither is optimum for productive work. A private office, by itself, is no panacea for developer productivity problems. An otherwise nice office can be ruined by a noisy HVAC system or other problems. If it sounds like you are sharing your office with a hurricane or the desk is vibrating because your office is one floor below the A/C compressors you are no better off than being in a cubicle. There are a lot of other factors that need to be considered, but it is not really too difficult to create good work space if you pay attention to details. Beth, your comments are interesting. How much experience do you have working in a private office? Some people who have never worked in a private office have some strange ideas about the experience. You certainly don't disappear in to your office at 9am never to see another employee unless you happen to leave for home at the same time as someone else. Good private offices will have some extra space so that one or two other team members can stop by for a discussion. There will be bigger offices for group meetings or lab space as needed. The office door is usually left open and only closed for short sessions of concentrated effort. The type of interaction with other developers varies from one task to another and good office space will be adaptable. Management often thinks of a developer as a data entry device. The cubicle provides enough space so that the developer can sit in front of a terminal and type on the keyboard. This is the minimum environment for data entry, but not adequate for development work for people creating new applications.
Sat 01 Nov | Beth | I don't have any real experience of working in private offices. I have worked in a wide variety of completely open office spaces and a few shared cubicle set-ups. I'm at a point where I wouldn't mind a private office, although it's not a top priority for me. In the first 2 years of my career, I really benefited from having people around all the time. Now, it's a mixed blessing. I think that my ideal would be to share an office with 2-3 other people. I was actually responding more to Olivier's comments (in particular, the bit about phone calls) than to the general idea of private offices. The idea of nobody knowing (or having to think about) the existence of the development team doesn't seem like a good thing for the developers. If the developers aren't easy to reach, what's the value of having them onsite?
Sat 01 Nov | no name | It's interesting to contrast this with the life of an academic researcher, which is pretty similar to programming. In academic research, the first thing they give you when you arrive at a new centre or university is ... an office. Often not bad too.
Sat 01 Nov | Academic Improvement Consultant | Don't you think it's obvious that an academic researcher would write much better journal articles if he was in a bullpen with other reseaarchers so they could share ideas, proofread each other's work in 'pair writing' and so forth? I know it's not been tried, but it seems obvious to me that this is a great way for researchers to improve their productivity.
Sun 02 Nov | Matthew Lock | You think your office conditions are cramped, check out how cramped some of my friend's workplaces were in Japan. http://www2.gol.com/users/cjeastwd/is/theOffice.jpg Note: every computer is used by a single developer, all at the same time
Sun 02 Nov | mackinac | >>>You think your office conditions are cramped... <<< Reminds me of a lab I was working in a few months ago. Not only were the workspaces cramped, but there were equipment racks with many fans running continuously. Actually, I spent most of my time in another office, but sometimes would go to the lab even when I didn't need to be there just to get away from the distractions in the main office.
Sun 02 Nov | Olivier B | some pictures : A view from my desk : http://www.olivierbouillaud.com/vrac/reorg/bureau01.jpg http://www.olivierbouillaud.com/vrac/reorg/bureau02.jpg A quick map : http://www.olivierbouillaud.com/vrac/reorg/reorg01.gif The web team... in an untidy open space... where other people tend to leave the old laser printer toners, the unwanted papers, the old dead computer... Paris...
Sun 02 Nov | Dennis Atkins | I've been in labs in the US that are that cramped. The worst is when everybody eats at their desk and likes to eat strange things.
Sun 02 Nov | Dennis Atkins | Oliver! That's a dangerous situation you have there -- monitors give out a lot of radiation from the back side. An arrangement like you've got there with everyone facing in towards the backs of several monitors is a serious heath risk for cancer. Switch to flat screens or rearrance the desks, or put a chicken-wire shield frame in the center area.
Sun 02 Nov | mackinac | >>>A view from my desk :<<< Crowded, but the picture just can't tell us what it is really like to be working there. What is the level of noise and distractions? - Does the HVAC sound like you are sharing the room with a hurricane? - Do the desks and walls vibrate due to vibrations conducted through the floors and walls from heavy machinery (e.g., HVAC compressors or ...)? - Do some of the developers listen to music or obnoxious radio programs on those speakers, thus distracting everyone else? - Is there a constant ringing of cell phones? Paging? Use of handsfree mode on phones? People talking loudly (to someone on the phone)? - ...
Sun 02 Nov | z | 'monitors give out a lot of radiation from the back side.' Never heard of that. Got any references?
Sun 02 Nov | Olivier B | mackinac the hvac is ok, the noise mainly comes from : 1/ phone. 2/ people (other that the web team) talking 3/ computers
Sun 02 Nov | Bella | People who are intimately working with each other (you need to talk with them every 15 mins.)  shouldn't be in cubes.  I worked in an "open space" situation, and rather liked it.  Keeps people productive, and easy communication.  One downside is that you can be distraxcted if too many people are having criss-cross conversations,,
Sun 02 Nov | Brad Wilson | Dennis, You're perpetuating an urban myth. 'All television receivers (including computer monitors), regardless of type, must meet a mandatory federal performance standard so any x-ray emissions, if they exist at all, must be at very low levels. The actual limit is stated as 'shall not exceed 0.5 milliroentgens per hour at a distance of five (5) centimeters from any point on the external surface of the receiver ...' 'The key point is 'from any point on the external surface' ... which means whether someone is in front of, to the side of, or behind the display or receiver, he/she is protected against any potential emissions of the display to the same degree.' Quote taken from http://hps.org/publicinformation/ate/q2401.html
Sun 02 Nov | Dennis Atkins | Hm, Ok, Brad, well that is from a FDA guy so it must by OK. I had a friend who worked in the picture tube industry and he told me that the tubes were made of leaded glass and that the thickest part was in the front -- so the lead could absord the xrays produced by the electron stream hitting the metal aperture grill. The sides were thinner and so more radiation came out, and there was a spot right in the back where the gun fit in where a lot of radiation, reflecting back from the grid, could come out. He definitely thought those things put out radiation and they put out more in the back than in the front. If they don't put out any xrays, then I wonder why they use expensive leaded glass to make the tubes?
Sun 02 Nov | rz | I worked in Tokyo for 6 months. The office was a long room, with a long series of tables in the middle, like this: o o o o o o o -------------------------- O -------------------------- o o o o o o the big O at the end was the boss. The developers were lined up facing each other (they are the little os). Smoking was allowed at your desk. The sales people were sitting in a similar configuration behind the developers. It was wild.
how tough is it to duplicate clustering engine? | Sat 01 Nov | anon
Vivisimo does on the fly document clustering of text data. How tough would it be to develop a replica of something like the same which does on the fly-conceptual document clustering? From a software engineering prospective, how to create a budget for this?
Sat 01 Nov | Thomas | The difficulty of implementing a cluster is dependent largely on what kind of clustering you need. At the simplest level, you can say everything is read-only and then your cluster just becomes a cache. Once you start updating data (documents), you need to figure out how each node in the cluster is going to get an update of the data. If you need the update to happen in such a fashion that everyone sees the change within a single transaction, it gets even more fun. Network/communication failures are the most fun of all. Let's say you have to update every node in a single transaction. You start the transaction, update the first two nodes... and then you get 'connection refused' when trying to update the third. What do you do here? There are numerous ways to solve the problem, but it can be a challenge to pick and implement the appropriate one. So. Before saying 'oh yeah, we can do that', think about what kind of clustering you need. If your needs are simple enough, you can probably get by relatively easily with a homegrown solution. (But beware of the ever-present feature creep.) If your needs are more complex, unless you have really sharp people who (ideally) have some experience with and understanding of the problem domain, you're most likely better off using someone else's solution. Creating a budget is simple. Figure out the effort necessary (man-hours), and how much it's going to cost to pay the people, buy the software, etc. etc. And don't forget the opportunity cost either: what would those people be working on if you use an existing solution? Is that a better value for the company? Of course here again the devil is in the details. Every detail you miss adds time to the schedule, so knowing how much you don't know becomes an important part of scheduling -- the more you don't know, the more you pad the schedule. -Thomas
Sat 01 Nov | Clarification | Anon, Clustering can mean distributed computing, rather than machine learning of features, which is what you mean. Please consider using a more explicit phrase. The answer to your question is unfortunately 'It depends', because the difficulty is not in producing an algorithm, but producing one that will work efficiently. For the algorithm to work efficiently, it has to match the characteristics of your data. Since I am not familiar with the text you wish to mine, (or the system you wish to clone) I cannot say. Also, you may wish to target a web board for data mining enthusiasts or natural language programmers; they will know better about your specialty.
Sat 01 Nov | heh | >Clustering can mean distributed computing, rather >than machine learning of features, which is what you >mean. Please consider using a more explicit phrase. Anon stated 'document clustering of text data' and mentioned Vivisimo. I don't know how much more explicit he can get. Apparently some people in this thread can't read.
Sat 01 Nov | Ori Berger | From a software engineering perspective, you've got to get a good idea of what the requirements are. Then you get someone in the know to estimate what it would take to get these requirements. Then you go back to the requirements, then back to the person, until you converge on something. Then you build a simple prototype, that can be _used_ by (not just shown to -- actually _used_ by) your potential users. Then you take the feedback and modify your spec. Possibly continue working on the prototype, until you're sure you know what the real specs are. And only _then_ you start to realistically think about a budget for your project. Clustering problem are hard. Although you can have very general purpose solutions, you often need lots of domain expertise and tweaks to get the expected results for a real world problem. A robust starting point, which is relatively recent, is described in [ http://citeseer.nj.nec.com/tishby99information.html ]. I'm a great believer in everything that has an information-theoretic justification. And, people, the use of the world 'cluster' for data mining and data analysis predates the use of that word to describe distributed proce