last updated:25 Aug 2003 20:25 UK time
|
 |
|
(Comments added for week ending Sun 24 Aug 2003) | View Other Weeks
|
|
| Waking up thread blocked on recv or WSARecv | Sat 23 Aug | Christopher Baus |
| I think I know the answer here, but I was wondering if anyone knows how to wake up a thread that is blocked on a recv or on a Win32 WSARecv call.
In my application it is possible that another thread could determine that waiting for I/O is hopeless before the timeout expires. That thread could notify the blocked thread and wake it up.
Im not sure if I could use WaitForMultipleObjects() as the problem is similar to waiting for multiple events. My guess right now is no.
In absence of a being able to wake up the thread, the only option I can think of is a not so busy loop such as:
totalTimeout = 0
while(totalTimeout < timeout){
if(signaled by other thread)
break;
recv with shortTimeout
if got data
break
totalTime += shortTimeout
}
any ideas? |
| Sat 23 Aug | Christopher Baus | Hmm I just had another idea. How about asynchronously closing the socket? That might work since I want to close the socket after waking up the blocking thread. I could just switch the order, but that seems like a bad idea.
That would look like this
Thread A blocks on recv
Thread B closes socket
Thread A wakes up since the socket is closed.
This just doesn't sit well with me...
|
| Sat 23 Aug | Ori Berger | Look for WSACancelBlockingCall() or something with a similar name. It was there when I last tried it on a win32s project.
Personally, I recommend not using threads for anything. But it looks like it's too late in your project for that now. |
| Sat 23 Aug | Joel Spolsky | use "select" instead of "WSARecv" (that's the old way, before we had threads, of writing a server that communicated on multiple sockets) |
| Sat 23 Aug | K | You can use WaitForMultipleObjects (WFMO) if you'd like. Look up WSAEventSelect (you could also use MsgWaitForMultipleObjects if you'd rather signal termination with a message than a separate event). You should be aware of a fundamental limitation in the number of events you can wait on for each call to WFMO (the MAXIMUM_WAIT_OBJECTS macro has that information). You certainly should not be creating one thread per connection.
If your network operations require high volume data-transfer and large numbers of connections, use IO completion ports and pool your connections. |
| Sat 23 Aug | K | Ori, am I understanding correctly that you suggest to people that they never use threads in any context in any application? If so, why is that? |
| Sat 23 Aug | Christopher Baus | I've thought about ditching threads all together, using old event demultiplexing with select() or similar. Yes that would solve my problem, but that would be a completely different architecture, and one that would be difficult to implement. I think I have something like 150 returnable states. Ouch. |
| Sat 23 Aug | Christopher Baus | WSAEventSelect is exactly what I am looking for. If used in combination with WaitForMultipleObjects I can wake up either if data is waiting or the other thread signals another event that I am also waiting on. Perfect!
Now I need to figure it out for POSIX threads. |
| Sat 23 Aug | Brad Wilson | 'That would look like this
Thread A blocks on recv
Thread B closes socket
Thread A wakes up since the socket is closed.
This just doesn't sit well with me...'
It ought to sit well with you. It's a very, very common way of dealing with this type of problem. |
| Sat 23 Aug | Ori Berger | K, yes, it is usually my advice that people use threads only as a last resort, and it is very rarely needed.
Threads seem like they simplify programs, but they eventually make them much more complicated than they should be. A quick hack is simpler with threads than an async solution, but when you write robust software, the threaded solution is usually ten times as complex.
In my experience, most people who advocate using threads do not know how to do it any other way. Many times, especially with respect to sockets, people say 'but there is no other way!'. Well, there is, and it's simpler.
If you can read Python, I urge you to read the sources of Medusa (you can probably pick Python through reading it - Python is executable, but closer to pseudo code than any other language I know). It's a beautiful example of an asynchronous system.
It is very concise, extremely robust, very high performance yet very easy to use (once you make the switch in your head that 'everything is a state machine').
Most peope would probably find creating the 'basic' thing easier in a threaded environment. When you try, however, to build the robust, high performance version using threads, you'll see that the async version is significantly simpler to write, use and maintain.
There are reasons to use threads, but they are rarely used for the right reasons. |
| Sat 23 Aug | Ori Berger | I forgot the pointer to the Medusa source:
[ http://oedipus.sourceforge.net/medusa/ ] |
| Sat 23 Aug | Christopher Baus | I'm not sure that is all that common. I read this comp.unix.programmer
> Less portable mechanisms are closing the socket from another thread and using pthread_cancel(). On some systems, if another thread closes a socket that you're blocked on, then your system call will fail with EBADF. But systems behave differently when this happens: on some the system call fails immediately, while on others the call
won't fail until data arrives.
I really want this to work on Linux, Win32, and hopefully Mac OSX. I am most familiar with Win32's threading model and that is why I threw out the WaitForMultipleObjects() example. |
| Sat 23 Aug | Christopher Baus | Ori,
I agree with you. To create really high throughput systems the single threaded system will always outperform if written correctly. Although I think developing the logic of single threaded server is at least an order of magnitude more complicated than a multithreaded server.
In complex applications the number of states can quickly get out of control. I don't know of any single threaded, multiconnection, implementation of HTTP 1.1 for instance. If it is out there, please point me toward it.
I am going to check out your python example.
christopher |
| Sat 23 Aug | Christopher Baus | One more comment. Doug Schmidt has good support for single threaded/multi-connection servers in his ACE C++ framework with the Reactor architecture. But it doesn't construct your application's state machine for you. Again I still believe this is non-trivial.
http://www.cs.wustl.edu/~schmidt/ACE.html |
| Sat 23 Aug | Ori Berger | Medusa does single-thread multi-connection very well. I'm sure it does 'connection: keep-alive' on HTTP/1.0; I think it also does HTTP/1.1, and I recall it does chunked encoding, among other things.
The state machine can be, and should be, broken down to several semi-dependent machines. I've been doing this for years now, and I don't think any of my 'basic' state machines ever had more than 8 states. I *did* have 3 independent state machines, so you could say it's 8*8*8=512 states, but the complexity is really closer to 8+8+8=24 states
And when you incorporate all of the exception handling logic, mutual exclusion logic, thread pool logic, etc, do you still think that the threaded logic is simpler? The potential for race conditions in your simple 'one thread closes another's connection' really is astounding, if you properly analyze it.
And once you place all the mutual exclusion/locking code, it's usually too coarse (resulting in threads unneedingly locking out each other), or too grained (resulting in a horrible performance drop). Or, more commonly, things aren't properly locked and you get a wonderful mix of unreproducible bugs (but you only get them in _production_, because testing hardly ever produces the right mixture of load and random timing to make them show).
It's been years since I saw a non reproducible bug in single threaded code. I see it all too often in multithreaded code. |
| Sat 23 Aug | K | Hi Ori,
I think that it's possible to understand the purpose of state machines very well and still find some practical uses for threads. The thread manager is essentially implemented by a state machine behind the scenes (for that matter, the processor can be described that way too). People typically use threads in a single process where they might otherwise use a system of processes except that it would add complication or detrimentally affect performance.
Network servers, I agree, are almost always better implemented with a single-threading model.
How about a program that downloads large audio files from a slow server, analyzes them for particular patterns, and updates a display with the ongoing results of that analysis with the requirement that non-technical home users will put the priority for use on the consistency of the behavior of the user interface? With a multi-threading model you can easily implement each task in a different thread with very little intercommunication and still be (relatively) certain that the consistency of the behavior of the user interface will be limited by the resolution of the average timeslice multiplied by the number of running processes (rather than that same number plus the time taken for the worst case of any of the systems described earlier). What do you think? |
| Sat 23 Aug | Johnny Simmson | High performance single threaded network servers in Windows? Nuh uh.
Well, kinda. Single threaded async windows servers compared to thread-pooled I/O completion ports windows servers is like a juiced-upped Civic compared to an NSX. It may get you there fast, but it ain't an NSX.
You want that x-platform? Check out how Apache does it. They use the thread pool-I/O comp port model. |
| Sun 24 Aug | Ori Berger | K, that depends on how long the 'analysis' phase takes, and how much control you have over it.
If it comes in small chunks (1ms or so, absolutely less than 10ms per 'chunk'), then multiple threads are not helpful in any way.
Regardless of how slow the download is, in an async download, it takes constant time to receive a packet. So just receive your packets, and when enough data has been collected, apply your analysis, and update the display.
Threads do not make any guarantee about consistency of UI response or CPU time; If your analysis thread needs 150% CPU to do its stuff, other threads WILL feel it. It's generally better use of resources (assuming one CPU) to cut your computation to small chunks and co-operatively give up your CPU often.
Since ~1990, all GUIs were effectively event driven and single threaded; If you discard earlier PC attempts (and you should), then this goes back to 1985 when the Mac (Mac OS), Amiga (Intuition) and Atari ST (GEM) came out. The only exceptions I'm aware of are the Java UIs (Swing, AWT and friends), and I suspect BeOS used multiple threads for UI, but I'm not sure.
Compare:
read_input('What's your favorite color', &color)
with the dialogs/controls you'd use in a Win32 program. It _looks_ much simpler, and was popular in the 80s, yet no one is doing it anymore. The reason is that when you want to make it robust and full featured, nothing beats the single threaded event driven model. (Think about how you'd implement context sensitive help, a 'cancel' button, and a close-this-program button).
Sockets are not any different than interacting with the user - they interact with another computer, but they are not as predictable as, say, reading from a file. The bandwidth and reliability are not predictable, the processing on the other side is not predictable, and various error conditions can appear at any time. For all you know, the entity at the other side of the socket might be a human that uses 'telnet'.
Yet for some reason the industry at large fails to apply the lessons learned from UI. Oh well. |
| Sun 24 Aug | .net rocks | OT:
If you use the async functions in .NET, the runtime automatically does thread pooling and I-O completion ports junk for you. |
| Sun 24 Aug | Dude | Hmm... Ori, you seems to be assuming there is only 1 CPU. For any server app I've ever worked on, the minimum would be 4, more typically 12+ CPUs. How do you intend to fully utliize the machine with only 1 thread? |
| Sun 24 Aug | RocketJeff | I'm with dude - except that a lot of the multi-threaded apps I've worked with ran on 64-way Sparc boxes.
My first real exposure to multi-threaded apps on Windows, however, was to pull the multi-threading out of an application. The developer spun off threads all the time and nothing was properly locked. It ran fine on a single CPU box (which is how he developed it) but it had errors as soon as there was more then one CPU.
I remember a magazine article I read at that same time about the troubles that a lot of Windows programmers had with multi-threading - the author pointed out quite a few commercial packages that had warnings like 'only run on a single CPU machine'. His point was that they all failed on multiple CPU machines due to improper threading. |
| Sun 24 Aug | some other dude | whenever someone tells me they've developed multithreaded code, I always ask if it was single processor. I developed really bad habits writing multithreaded single proc code then had to unlearn it all once I moved on to a 'real' (multi-proc) server environment.
I think the fact that IIS was written multithreaded and I/O comp'ed speaks volumes about the 'proper' way to design high performance windows servers. |
|
| XML - the only practical use for XML is RSS? | Fri 22 Aug | Ram Dass |
| I recently came across an article (I cant remeber the link, it was over a week ago) which stated that the only useful practical thing to come out of XML is RSS.
It did not register on my radar when I first read the article. Since then I have been mulling on XML and trying to figure out where have i used it.
Two years ago XML was heavily hyped - like Web Services now. We had pitches from companies like exilon that wanted us to buy their XML servers - I never understood what that was.
As far as I am aware metedata does not use XML for data descriptions - I could be wrong.
From my research online - I have read that XML are used for data exchange between applications. We use EDI at our company which is a legacy application but works well.
XML databases were also listed in my google search on the uses of XML. I am not sure what exactly is an XML database - is it a RDBMS designed specially to store XML data?
Has any posters here used XML practically in applications they designed or at work? |
| Fri 22 Aug | Brad Wilson | Unfortunately, some of RSS's problems are because it's in XML. People are generating XML 'by hand' -- that includes using templating systems like found in CityDesk and MovableType. It's hard to cover all your bases ahead of time, and sometimes you just plain end up screwing up and creating invalid XML.
Writing XML by hand is probably an order of magnitude harder than most people think it is. Parsing invalid XML -- which most RSS readers are forced to do, to stay competitive -- is also very time consuming. Most RSS readers can't rely on a traditional XML parser, because they have to be much, much too liberal in what they accept to use one. |
| Fri 22 Aug | . | i built an XML based medical record sharing system for a hospital. |
| Fri 22 Aug | M | I use XML on my resume. |
| Fri 22 Aug | Nick | Isn't SVG written in XML? |
| Fri 22 Aug | Tom Vu | Anything you would use a csv file for could be used in XML. It seems to be fairly popular and there are alot of parsers out there so if someone wants it use it. I use it for config files, my resume so I can generate different file types, and serializing data between different languages. |
| Fri 22 Aug | Mister Fancypants | http://weblog.burningbird.net/fires/000581.htm
That link is good for a laugh.
To answer the original question, XML is a great for any type of data that is hierarchical in nature and for which storage size isn't very tight. Using existing and well tested XML libraries sure beats writing you own validation and parsing systems for custom data formats.
The technology sure was overhyped though to the point where one might think it is capable of curing cancer... |
| Fri 22 Aug | . | the hospital system I mentioned above was specifically targeted towards cancer patients. :-) |
| Fri 22 Aug | mb | The hype is a useful part of XML. Because it's lead to wide adoption, and thus a large number of XML interfaces on systems which would otherwise dream up their own, and a large toolkit, including conversion tools between the different XML interfaces. |
| Fri 22 Aug | fool for python | and that web thing...remember that? What a hypefest.
Everyone developer I know is using xml. Many are using it extensively.
Do you use mozilla/firebird? there's xml in there (admittedly it the horrendously ugly xml serialization of rdf but it's xml). How many people will be using Longhorn? Hundreds of millions (if they EVER actually release it). Talk about xml. Microsoft is xml nuts! Lotus Notes spits out xml these days. This stuff is actually very useful.
people are using this:
http://www.amazon.com/gp/browse.html/104-7204957-6191113?node=3435361
to build stuff like this:
http://mab.mozdev.org/
And I'm riding the web services hypefest and it's all built on xml. If hype pays the bills, I'm all for it. |
| Fri 22 Aug | Matt Conrad | Funny, I just started using XML in a real app today. (Apart from some builtin stuff like ConfigSettings in .NET.)
I wouldn't want to use XML in place of a database, or for really big files (though I know some folks do), but there's some stuff about XML that I really like for little data files:
Really easy to extend your schema.
Handles jagged arrays nicely, ie some elements have no children, others have children 3 levels deep, no problem.
At least in .NET, nice friendly tools are built in for working with XML. Singling out a chunk of data or iterating through some particular subset of data is just breezy easy.
Having your data human readable and easily editable is very handy.
Yeah, XML was perhaps a little overhyped. Maybe still is. But it's a handy tool to have in your tookit, just the same. |
| Sat 23 Aug | as | http://www.research.avayalabs.com/user/wadler/language.pdf |
| Sat 23 Aug | Chi Lambda | I was at a Microsoft developers' conference in Israel last month. They basically said XML's greatest strength is allowing the sharing of information between disparate systems. |
| Sat 23 Aug | S.C. | Ant uses XML, and I think they have every reason to justify the choice. |
Sat 23 Aug | Philo | EDI seems great on your system. EDI becomes an issue when you deal with multiple systems - everyone has their own recipe and their own 'personal touches'
Reading EDI is *hard*. You can learn it, but it's still not natural and you still need an implementation guide. You *definitely* need an implementation guide or validation tool if you're trying to figure out why a document is failing.
OTOH, you could be reading an XML document your second day on the job.
Compare:
IT1*023*1*EA*10.84**BP*E1147C*VP*E-1147C*UP*729374914811
vs.
-
1
EA
10.84
E1147C
E-1147C
729374914811
Which would you rather deal with?
BTW, Microsoft Biztalk's parsing engine is all XML.
Philo |
| Sat 23 Aug | Sam Livingston-Gray | http://www.eod.com/devil/archive/xml.html |
| Sat 23 Aug | rexguo | For inter-server communications over normal HTTP, returning results in XML has reduced much pain. |
| Sat 23 Aug | Brad Vaughan | A couple of ASP-based applications we have at my workplace use XML files as a sort of disconnected recordset.
Good for storing data that either gets updated on an irregular basis (no need to pull down a new copy of data that hasn't changed), and for providing all possible data and giving the user a limited view at first, with the option of displaying more if they want to see it. Also useful when you're loading flexgrids, which don't exist until the client loads the control.
You can always use flat files, but ADO allows you to save directly to XML and load them the same way, which saves us time and effort. |
| Sat 23 Aug | annnnddd wwwweeeee! | Yes. I prefer to call XML ".INI file 2.0" though. |
| Sun 24 Aug | Peter da Silva | SGML/XML is useful for INI files, but it's also a viable document format. I've maintained documents in the Docbook DTD and it's just as easy as any other markup language. The changes between SGML and XML (such as the loss of the text) are annoying, but not critical.
Why would I do that, rather than using a full blown word processor? Well, mainly because 'a full blown word processor' means 'Microsoft Word', and I'd rather write on tanned skin using my own blood than try and maintain a document in Word ever again. |
| Sun 24 Aug | Walter Rumsby | S.C.,
I disagree with your suggestion that Ant's use of XML is a good thing.
XML is a markup language for data, Ant is a scriptable make tool. In my experience when a scripting/programming language is tag-based it is generally quite clumsy (CFML, XSLT, Ant).
http://today.java.net/pub/a/today/2003/06/10/jython.html demonstrates using Jython to script Ant instead of XML, your opinion may differ, but I side with the author of this piece (although I'd think JavaScript, with its more Java-like syntax, would be a better choice of scripting language).
'XML sucks' is this year's 'EJB sucks'. In the case of either technology it's worth taking a step to make sure that using the technology provides you benefits other than mere buzzword compliance. |
|
| In Search of Stupidity : bonehead programmers | Fri 22 Aug | david howard |
| In the 80s I worked for Hunter and Ready, which became Ready Systems. In 1985 when I came onboard as a Field Apps engineer in the Sales department, H&R arguably was the leading vendor of real time OSs for embedded systems.
There was a core team of SW engineers who had been doing the engineering for a while. They had strong beliefs about the purity of the kernel and the architecture and features it should have. Unfortunately those beliefs didnt match up with what the customers wanted.
Time and again we went on sales calls, and customers would say, the pSOS guys have deterministic scheduling and variable blocksize memory allocation and feature X and feature Y etc. You dont. So we are buying PSOS. (the deterministic scheduling thing was a bit of a red herring, but it took a lot of tech explanation to show what we had was just as good and maybe better for small embedded systems, but that ended up being a hand waving excercise. It never convinced anyone).
The salesmen and engineers in the sales team would go back to hq and beg for at least the two main features but the purist engineers flatly refused to implement them or anything else outside their vision. Even when the president of the company ordered them to do it they simply refused and since they were the core team, what could anyone do?
From 1985 to 1990 when I left, there was a slow downward slide in sales until the company was bought out and ended up a shadow of its former self, with almost no market share. Maybe it was my fault since the downslide coincides with my tenure there.
Anyway my point is that programmers will make really stupid decisions just like the marketers will. Maybe the real issue is that most people make stupid decisions most of the time. |
| Fri 22 Aug | david howard | Hunter and Ready produced the VRTX RTOS. |
| Fri 22 Aug | Johnny Bravo | True. But I suppose the reason behind the latest rants in this forum ("Managers vs. Techies") is that some programmers got the impression that managers are more likely to be resistant against any consequences when they make mistakes. |
| Fri 22 Aug | david howard | I'll buy that, given the different personality types. |
| Fri 22 Aug | M | Sounds like they are OSS material. |
| Sat 23 Aug | Ori Berger | They may have been technically right in refusing that feature request. But apparently, marketwise wrong.
But I wouldn't pull too many conclusions from this story - there are hundreds of reasons for things to go wrong. From how you tell it, it seems like there was not even one feature in your system that was not available in pSOS -- one that the sales people should have, and could have, capitalized on.
What about the price?
What about the environment? Things like having an IDE + debugger + simulator etc. could do a lot to product acceptance.
I've been in many sales meetings, and one conclusion I'm pretty certain of is that you can't trust your client to tell you their real reasons for not adapting your product, and in many cases, to actually know them and admit them to themselves. |
| Sat 23 Aug | Bored Bystander | I remember evaulating VRTX and pSOS for a project and feeling like it was a toss-up. I selected pSOS but it was for features that I considered 'candy'. I could have just as easily adopted VRTX, no big deal.
I find it hard to believe that 'mere' SW engineers could have shot the company in the foot.
A contrarian point of view: the marketing and sales of VRTX wasn't that good and the engineers were keeping a well focused product that they could support and guarantee to work well? Many SW companies are whipsawed by marketing demands into 'featureitis' and producing crap. Maybe these guys were trying to avoid this trap? After all, one expects (demands) that embedded stuff be absolutely reliable.
I'm not sold that it was the programmers' fault that any company goes downhill. Ultimately, it's up to management to prioritize things, including calling the bluff of employees who are being insubordinate. |
| Sat 23 Aug | UI Designer | Sometimes the inmates really are running the asylum.
http://www.cooper.com/content/insights/cooper_books.asp |
| Sat 23 Aug | Philo | I can see this either way -
Pro-managment: in the 80's software engineers were demigods; you simply didn't 'swap' them. Today the pendulum has swung to the opposite direction where management considers software developers completely fungible (the truth lies somewhere in between).
I can see management just being completely scared to fire anyone on the team, for fear they'd never get the product working again. What they *should* have done is fired the team lead and replaced him (be prepared for your entire team to walk out when you do this).
Pro-developers: like the other posts here - the engineers were right that the customers didn't know what they were asking for. It's up to the sales staff in this case to teach the customers what they really want. We do this all the time in my current company. Of course, another question would be - is it possible to 'bend' the truth when dealing with the customers so they think they're happy, but they're getting a better product? (IOW, rename the feature)
Philo |
| Sun 24 Aug | Xxxxx Xxx | Perhaps the engineers have their points. I mean, if
you ask Linus why can't the kernel be more like Windows,
he would flatly rejected the whole idea. |
| Sun 24 Aug | Peter da Silva | Linus *has* flatly rejected the idea of making the Linux kernel more like Windows (or any other non-monolithic traditional UNIX design). He had an infamous flame-war with Andy Tannenbaum over it about ten years ago. |
| Sun 24 Aug | Ori Berger | And I'm quite sure that Linus' technical decision, which has its pros and its cons, does not reflect on IBMs and RedHat's sales force.
A good salesman can sell a lesser product and make the customer believe he's getting more. A bad salesman is unable to sell a superior product, even though it's way better than the competition.
Product quality, especially in the computer business, has much less to do with it. |
|
| Individual JOs Statistics | Fri 22 Aug | Chris McEvoy |
| Q1) Want to know how many topics Joel has posted on this board? (29)
Q2) How many words has Stephen Jones use in his comments? (146,422)
Q3) How many comments has Philo made? (1,043)
For answers to all these questions and much much more see the new individual Joel On Software Statistics.
http://www.usabilitymustdie.com/jos/WW_DNA.html
A1) 29
http://www.usabilitymustdie.com/jos/WW_CommentsFor_2772.html
A2) 146,422
http://www.usabilitymustdie.com/jos/WW_CommentsFor_5911.html
A3) 1,046
http://www.usabilitymustdie.com/jos/WW_CommentsFor_7514.html |
| Fri 22 Aug | shiggins | Mmmmmmmmm.....statistics
Someday I want to be just like Philo :) |
| Fri 22 Aug | Chris McEvoy | Also can anyone help me with an annoying 'feature' of this forum:
So how was the JOS Oslo dinner?
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=64256
Has 2 posted replies, whilst the number in brackets is (5).
Is this because items have been deleted and the number in brackets has not been recalculated?
I have coded around this 'feature', but it offends my sensibilities. |
| Fri 22 Aug | The Pedant, Brent P. Newhall | Yes, this feature is because items have been deleted. There was a discussion about this recently, FWIW.
Apparently, the number of posts to the thread is not updated because that number is used in the URL to mark when a thread has been updated. |
| Fri 22 Aug | Leonardo Herrera | There is a guy here that likes to post really, really long posts. In just 384 posts he managed to use 172,403 words. That's about 449 words per post. Four posts of this guy could make a full length article at any magazine :-)
(His posts are worth read, thought) |
| Fri 22 Aug | Zahid | I'm devastated that I didn't make the top 50. I'll have to post more. |
| Fri 22 Aug | Zahid | I mean, it just makes me sick inside. |
| Fri 22 Aug | Brad Wilson | One has to hope, in position #12, that none of my co-workers ever find out about this stats site. ;) |
| Fri 22 Aug | flamebait sr. | I'm glad that I barely make an appearence in the stats.
I really wonder how some of you folk get work done. ;) |
| Fri 22 Aug | Xxxxx Xxx | There are lies, damn lies and statistics. |
| Sat 23 Aug | T. Norman | >'I really wonder how some of you folk get work done. ;)'
Some of us actually have computers at home! |
| Sat 23 Aug | Simon Lucy | I seem to have fallen to fifth place, overtaken by such Johnny Come Latelies as Philo, however, I have left Ged Byrne in the dust so he must be working harder than I at the moment.
Being slightly ahead of the 'no name' party I've yet to come to a conclusion about, as to whether that's a good or a bad thing. |
| Sat 23 Aug | Chris McEvoy | Zahid
http://www.usabilitymustdie.com/jos/WW_CommentsFor_9046.html
flamebait sr.
http://www.usabilitymustdie.com/jos/WW_CommentsFor_7369.html
Xxxxx Xxx
http://www.usabilitymustdie.com/jos/WW_CommentsFor_4319.html
Would anyone like to see an 'A to Z' of all topics posted?
It would be along the lines of this:
http://www.usabilitymustdie.com/ww/WW_AtoZ_Title_A.html |
| Sat 23 Aug | Prakash S | a healthy 8th position in almost 2 years time, ...now if I could only put this on my resume:-) |
| Sat 23 Aug | Prakash S | nice job Chris, yeah I would like to see an A-Z posting of topics. |
| Sat 23 Aug | Damian | Brad, you are the boss... why do you care ? |
| Sat 23 Aug | Philo | For anyone who cares (and just to defend myself) - I work at home, don't play games, and for some reason I'm not on any mailing lists at the moment. So this is where I hang out to take a break.
I still spend too much time here, tho.
Philo |
| Sat 23 Aug | Stephen Jones | Chris, neat feature. I always maintained Albert should be at the top. Can you tell us where the links are to find each person's individual stats? |
| Sun 24 Aug | Chris McEvoy | Stephen,
at the moment I have only generated individual stats for the 'top 50' posters. http://www.usabilitymustdie.com/jos/WW_DNA.html Although I can create pages for others on demand. http://www.usabilitymustdie.com/jos/WW_CommentsFor_7369.html
I will look at creating individual pages for a lot more people as well as creating a chart that can be sorted by Number Of Comments, Number Of Words and Number of Topics Posted. That should redress the balance for people who post more substantial replies.
This should take me about a week to complete and I would be gratefult for any other suggestions on how to improve these individual pages. |
| Sun 24 Aug | Brad Wilson | 'Brad, you are the boss... why do you care ?'
I have a boss and peers. What made you think I was the head honcho? |
| Sun 24 Aug | Damian | A comment like :
'I added co-founder to my title' |
| Sun 24 Aug | Brad Wilson | Ah, yes. Co-founder. Along with 3 others, one of whom is my boss (CEO), one of whom is my peer (VP Sales), and one of whom is my flock (senior software engineer).
Just because you help people start something new, doesn't mean you get to do whatever you want. :-D |
|
| Browser "User Agent" | Fri 22 Aug | Zahid |
| From another thread: I have my mozilla firebird user-agent set to IE - i like i
Two questions:
1) How?
2) Why? |
| Fri 22 Aug | Johnny Bravo | (1) UserAgent Extension for Firebird (texturizer.net)
(2) some sites are still designed for MSIE only |
| Fri 22 Aug | Lou | One of the reasons to change a Browser's user agent string is because some sites will not allow access to non-IE browsers even when a Gecko or KHTML based browser will read the content just fine. This is true of several large banks (although it is less of a problem now than a year ago).
You can Google for spoof user agent mozilla
That should get you a how-to. |
| Fri 22 Aug | Lee | Broadly speaking, Mozilla renders CSS and Javascript correctly, whereas Netscape requires some hacking, which screws up Mozilla.
At least, that's been my experience as a designer.
The User Agent thing's a good idea. I'll have to try that at home. At least until jokers like me make more Mozilla-friendly pages. |
| Fri 22 Aug | Zahid | Okay then, but what happens when you spoof the user agent to pretend it's IE, and you come across a page that truly requires IE (e.g., uses an ActiveX control). Does your computer burst into flames?
Please, no flamewars on the relative merits of ActiveX controls ... I'm just wondering if you get a useful error message or if Mozilla just gets confused. |
| Fri 22 Aug | Brad Wilson | Nothing happens. Mozilla sees the object tag and ignores it. |
| Fri 22 Aug | Johnny Bravo | Actually, the OBJECT tag is not being ignored, but rather Mozilla has no handler for its source and/or content, which is equally fine. If people were to incorporate alternative content just inside the OBJECT (as its meant to be), Mozilla would happily display it. |
| Fri 22 Aug | Xxxxx Xxx | Registry path -
HKEY_CURRENT_USER / Software / Microsoft / Windows / CurrentVersion / Internet Settings / User Agent |
| Sat 23 Aug | Simon Lucy | If you do consistently change the User Agent though you may not be getting the best out of the browser since a page may sniff on the basis of the User Agent alone and assume your browser can't do what it actually can.
Its best to leave it be unless it fails on a particular site.
Actually in my case, if it fails on Firebird or Mozilla I just run IE on the same URL I can't be bothered trying to make the entire universe conform to me, I learned this early on when crossing on red. |
| Sat 23 Aug | BC | Yeah, why bother with the user-agent setting when you can just run IE on that particular URL? |
| Sat 23 Aug | Eric Moore | This is a common problem for the Opera browser since so many sites support only IE/Netscape. Its a frequent topic on the Opera forums when some new user tries to access financial/colleges/macromedia/microsoft web sites.
Unfortunately, in order to build perceived browser share when you use the menu to identify Opera as IE6.0 for example, they add a Opera unique string at the end.
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Opera 7.20 [en]
I haven't found it an issue with Mozilla/Firebird, but it all depends upon what web sites you goto. |
| Sun 24 Aug | SC | It's a shame that a hack like browser-spoofing has to be used due to a poorly written browser sniffing script. I understand the need for such scripts in *certain* situations i.e. dependency on ActiveX etc, but it still an inelegant hack. Surely, they could allow the user to 'continue at their own risk' (i.e. warn them but allow unsupported access) rather than barring them at the gates...
Also, I wonder just how much difference it makes to browser stats if everyone starts spoofing the user-agent and thus helping IE retain apparent dominance even when it is not used... |
|
| How Long Will Kids Live? | Fri 22 Aug | Brad Wilson (dotnetguy.techieswithcats.com) |
| One of my co-workers said the other day that she wouldnt be surprised if her kids (3 and 5) lived until they were 200, because of rapid medical advances.
Ive never thought about it, but shes right(-ish). Theyll almost assuredly have a much longer life span than the boomers who were born in the 1940s, and most who will live into their 80s.
Very youn kids today are 60 years ahead of that curve. Is it strange to think they might live to be 200? My brains first reaction was no way!, but its probably true.
What do you think? Is there any realistic upper limit that medicine couldnt bust through? |
| Fri 22 Aug | Johnny Bravo | Everyone wants to live long, but no one wants to get old.
Bottom line is: Will you be able to jump around at age 150, or lie in your bed for 50 years on life support? |
| Fri 22 Aug | Neil | It's better to burn out
than to fade away
My, my, hey, hey. |
| Fri 22 Aug | apw | "Only the good die young" - Billy Joel |
| Fri 22 Aug | Dennis Forbes | Have we really made great leaps in longevity? I mean sure the average lifespan has increased, but that has largely been the result of dratistically decreased infant mortality. Apart from that most of our "breakthroughs" have been dealing with the problems caused by other "breakthroughs" (i.e. one has to wonder if the fight against cancer is merely battling the results of many other man made issues). I mean I just read about how kids today are the most obese that they've ever been, so given that heart disease and diabetes are two of the biggest killers, it seems like life expectency will be following a negative trend. |
| Fri 22 Aug | Lou | They - and you for that matter - will probably have more productive years on average than your parents, as replacement joints and preventative medicine advance. But the human body does seem to wear out over time, even the brain does.
So I doubt her children will live to be 200, maybe 95. But they'll be 'active' until they're 80 and then decline. I imagine it will be a lot like watching an old celebrity like Bob Hope. He's young and spry for a billion years, then he gets all old in 3 years when you weren't watching as time catches up with him and all the face peels and pilates cease to be enough to fight back time.
Interesting question, thanks for bringing it up. |
| Fri 22 Aug | Dennis Forbes | http://www.flyingfish.org.uk/articles/gmspin/01-05-09on.htm |
| Fri 22 Aug | Philo | I agree with Dennis, and it's a good example of how misreading statistics can give the wrong idea.
Our average longevity *has* steadily increased, but it's not that medicine has pushed out the absolute maximum a body can live, but made it easier for people to make it there. I suspect a 100 year old man today would be in much the same condition as a 100 year old man was in 1900. It's just that in 1900 there was probably only one, while today there are dozens.
We've eradicated childhood diseases, reduced the threat of accidental death, advanced detecting and fighting cancer, liver disease, etc, discovered antiseptic and surgical methods.... All these things contribute towards people having a better chance of dying of natural causes.
Look at it this way - if you had a classroom of kids that used to score in the 50% range on a standardized test, and over time they got their average up to 85%, would you say 'by the time they graduate they'll be scoring in the 125% range!' ;-)
Philo |
| Fri 22 Aug | no name | According to the Christian Bible, 70 - 80 years is normall and 120 give or take is max.
Genesis 6:3 'And the Lord said, My spirit shall not always strive with man, for that he also is flesh: yet his days shall be 120 years.'
Psalms 90:10 'The days of our years are 70 years; and if by reason of strength they be 80 years, yet is their strength labour and sorrow; for it is soon cut off, and we fly away.' |
| Fri 22 Aug | troglodyte | No way will this optimistic prediction come to pass. Some folks with healthy lifestyles will extend the extreme limit of longevity, but the vast majority really haven't got the message, as the tremendous increase in obesity among young people testifies. Given the usual mathematical distribution of lifetime values, this cancels out a lot of medical and lifestyle advantages for the whole population.
More likely, longevity will increase only incrementally at best. Despite the availability of information and best efforts of experts in matters of health, there are forces in our society (e.g., corporate juggernauts who produce the bulk of what we all eat) that confound the general health and welfare of Western nations. Worse, we're exporting our culture of comestibles to nations who ought to know better. |
| Fri 22 Aug | Mark Hoffman | While we will quite likely live longer and more healthy lives, I don't see how anyone could expect to live to be anywhere near 200. We are nowhere near that today.
Ignoring quality of life issues, there are other factors such as the fact that the regardless of disease, the human body still ages. Entropy is entropy and the human organs will still degenerate over time at a relatively constant rate.
It does make one wonder....regardless of whether or not you believe in the validity of the Old Testament, it says people before the Flood lived to be several hundred years old. Can you imagine living to be up to 900 years old? That would mean an 'old' person today would have been a couple of hundred years old when Columbus discovered the New World. Interesting to think about...Not sure how it relates to software, but hey...it's interesting. |
| Fri 22 Aug | _*_ | According to the Bible... HOLY jumpin' crap! |
| Fri 22 Aug | flamebait sr. | Lately, they've been finding one really fun thing out.
You will die of either cancer or aging. Take your pick.
Once we get rid of illnesses, help people manage their congenital defects, avoid accidents, etc. we're left with those two inevatibilities.
If you aren't suceptable to cancer, you will age faster. Make your experimental subject not as suceptable to aging, and then wham they get massive cancer at an early age.
The only thing that can be said about aging over cancer is that with aging, you have some hope of biomechanical augmentation. Until an organ that doesn't take well to augmentation craps out on you (say, your brain).
Unless there's a decided breakthrough, the best we'll probably be able to swing is to improve people's lives over 80-100 years without a quite a few orders of magnitude increase in our medical knowlege. |
| Fri 22 Aug | 19th floor | Many people take the stats wording “life expectancy” to mean average lifespan.
Actually life expectancy is based on more complex statistics and it is not quite an average. Seeing that life expectancy in US increases does not mean people will live longer, it just means that people have a chance to live longer if they don’t smoke, don’t drink, don’t eat red meat or if they don’t get cancer in their 50s due to the modern life style.
A definition
http://dict.die.net/life%20expectancy/
Some math here:
http://comp9.psych.cornell.edu/Darlington/lifespan.htm |
| Fri 22 Aug | Pat Rice | If all these extra years are added at the end - i.e., if we all just spend an extra few decades being really old - who's going to pay for it? The average retirement fund / old-age pension / whatever won't have a hope in [censored] of covering a retirement that lasts 75 years.
On the other hand, suppose that late youth (age 20-40, say) lasted three times as long. Would marriages last that long? Would people have more children? 'This is my big brother Nathan. He has great-grandchildren older than I am.'
I read a quote once: 'Many long for immortality who can't fill a rainy afternoon.' |
| Fri 22 Aug | wango tango | Famebait: I heard that report on NPR and was similarly impressed.
Other thought:
But we are going to have some really big porking people out there with the obesity statistics coming out. Average weight: 350 lbs. Hmmm.
Christian Bible reference:
Its an interesting reference because the same time span then is still ni effect. Even if you consider that perhaps the writer was a man sniffing glue, he wrote it 3000 years ago. Long term aging, in its best case hasn't changed much. It seems that technological progress only seems to hurt the trend? |
| Fri 22 Aug | Brad Wilson | 'On the other hand, suppose that late youth (age 20-40, say) lasted three times as long. Would marriages last that long?'
That's funny you brought that up. I once heard someone make an off-handed remark that 'monogamy was understandable when we lived to be 40, but ludicrous when we live to be 90'. Seriously, how many people in their 20s today can expect to be married just once? The number has to be pretty low. |
| Fri 22 Aug | flamebait sr. | Hmmm..
I'm a romantic, so I figure that there's still home for monogamy.
But yeah, if we start living too much longer, I suspect that boredom will be a real killer. Larry Niven addresses that in some of his stories. Would you want the same job for 400 years? I've met some people who are capable of completely switching how they keep themselves occupied, but that doesn't always happen for everybody.
A sudden breakthrough increase in life expectancy would be really twisted. Maybe there's a magic pill that will double your life expectancy, but the folks who are the first to take it won't know how long that really ends up being. So, do you at the age of 65 when the pill is developed, start a new career and work some more, or do you want to just enjoy your extra-long retirement. A lot of financial planning revolves around accumulating your money for a long time and then expending it as you get old. |
| Fri 22 Aug | Ged Byrne | The BBC Radio 4 Reith Lectures of 2001 were on this exact subject.
Transcripts, recordings, etc can be found here.
http://www.bbc.co.uk/radio4/reith2001/ |
| Fri 22 Aug | Eric Lippert | ONLY 200 years? How pessimistic! Think big, people!
Getting people up to 100 was hard, but basically was a result of curing enough diseases that people could die of old age. Getting to 200 is going to require eliminating old age entirely. If you can do that, forget 200, shoot for forever.
As far as I know, we have only one really big problem, with two aspects: 'why do cells stop reproducing?' and 'why do cells NOT stop reproducing?' The former leads to old age, the latter to cancer, but both are basically the same problem: we don't sufficiently understand cell reproduction.
Now, I'm not denying that these are tough problems! But they are, at the heart of it, just really, really hard reverse engineering problems. We have enough technology to make a start -- we have a sequenced human genome, we understand a bit about teleomerase, etc.
I have every confidence that cancer will be cured and that nanorobots will be removing the LDL cholestorol from my arteries in less than 60 years. The wave of innovation that we've been riding since the renaissance isn't going to slow down any time soon.
Eric |
| Fri 22 Aug | Andy | Along with the increase in life expectancy to 200 years, I really hope we invent robots to clean up the environment, which will probably be ruined by the resulting population explosion.
Also some laser blasters would be nice. |
| Fri 22 Aug | Matthew Lock | I'm with the "Christian Bible" guy. It's not when you die that matters to me, but what happens after you die. |
| Fri 22 Aug | fool for python | Kids live long enough. How long will adults live? |
| Fri 22 Aug | The Real PC | The idea that longevity is steadiy increasing is medical industry PR. Our society is sick and getting sicker.
As others pointed out, the statistics are misleading. Infant mortality has the biggest effect on raising average lifespan. Other factors are antibiotics and better medical technology, which have decreased death from infections and accidents. Medical technology has made great progress; medical science has not.
The best, and almost the only, way to improve your health and incidentally lengthen your life is to avoid the modern hazards of inactivity and junk food.
Considering the obesity epidemic among children, I'm amazed anyone expects kids to live long healthy lives.
We are programmed to live 70 or 80 years (and yes it was the same in biblical times). Maybe someone will figure out how to artificially re-program this, but there are probably good reasons for the limit that we don't understand. |
| Sat 23 Aug | realist | I hope the diaper technology is good. |
| Sat 23 Aug | Knowledge maker | I think there's a good chance that the obesity epidemic will dissappear virtually overnight, as soon as the medical establishment can admit that its dietary advice has been wrong for 50% of people for the past thirty years. |
| Sat 23 Aug | The Real PC | You mean the low-fat diet nonsense? Yes, that is part of it but not the whole cause.
My generation ate whatever we wanted as kids but we ran around outside and never got fat. Staying indoors all the time and constantly WATCHING other people live on TV, instead of living and having fun and being a normal kid is TRAGIC.
Of course, most of my generation is now fat.
The obesity epidemic will get worse until Americans understand you can't go day after day and year after year without moving any muscles without serious health consequences.
Dr. Atkins was right about diet and the fact that carbohydrates are a major cause of obesity. The medical industry kept on recommending low-fat (high carbohydrate) diets anyway. |
| Sat 23 Aug | Knowledge maker | I think exercise is a factor, but massively overstated - exercise is the major factor in fitness and diet is the major factor in obesity. |
| Sat 23 Aug | Philo | No, exercise can combat obesity as well. If you're in shape, your basal metabolic rate (BMR) is higher, so you burn more calories just sitting on your buns of steel.
When I was at the Academy, we were very active - always on our feet, marching 4-6 hours/week, team sports every day, always exercising. And we all ate like pigs - pizza, soda, twinkies. A pint of Ben & Jerry's was 'single serving size'. And of course we all ran 7 minute miles and 16% body fat was 'obese'
Diet *and* exercise.
For anyone who is really interested in learning about how 'average' people should lose weight and build muscle, I strongly recommend browsing misc.fitness.weights - they're militant, but the advice is generally consistent and very helpful.
Philo
PS - as for longevity and marriage, I got married at 21 and just celebrated my 14 anniversary. It *can* be done. ;-) |
| Sat 23 Aug | . | 'I'm with the 'Christian Bible' guy. '
Please, no more Bible spam!!! Let's keep this board real, not imaginary. |
| Sat 23 Aug | Trollumination | > I'm with the 'Christian Bible' guy. It's not when you die
> that matters to me, but what happens after you die.
There's a good reason to bring the Bible into this discussion. The quotes - of 70-80 years normal lifespan, 120 years absolute maximum - are from the Hebrew Bible as well as the Christian, and are of great antiquity.
So we've made advances with our medical care greatly, but perhaps not so much as is generally assumed. Most of what we're doing is eliminating accidental deaths or deaths from infectious disease, but the general lifespan is the same as it was millenia ago.
The Biblical quotes also point out the foolishness of using the 40-year lifespan of medieval and post-medieval Europeans as a baseline! Sure, Shakespeare considered an age of 30 to be the beginnings of senescence, 'aging and declining', but he was living in a atypically unhealthy society. The fact is, these Europeans were a sickly people living in filthy conditions, poorly nourished and ravaged by disease, and didn't live as long as anybody! |
| Sat 23 Aug | Stephen Jones | The obesity levels are such that a large number of kids in the US or UK are going to be lucky to reach retirement age.
And of course Real PC has to pick up the latest fad of the Atkins diet, which has no scientific basis whatsoever, and if followed permanently will cause an epidemic of problems due to kidney failure among other things.
The Japanese have had a low fat diet for centuries, and have the longest life expectancy anywhere, despite being the heaviest smokers in the world. |
| Sat 23 Aug | Philo | Low fat, but also low carbs.
Atkins isn't necessarily 'high fat' but rather 'don't avoid fat, avoid carbs'. I think the current obesity in the US is due to:
- lack of exercise
- high-carb diets (esp. fast food)
- huge portion sizes
I'm not an Atkins advocate - I'm not sure the 'live in ketosis' thing is safe; it also requires a diet that takes work to maintain, which is generally a failing proposition.
Philo |
| Sat 23 Aug | rz | the obesity in the US I think is mostly due to serious overeating. I'm not sure if the 'caloric quality' accounts for much. T
he nutrition facts on all the food labels are based on a 2000 calorie diet.
However, if you have ever been a fat ass like I have, and analyzed how much you ate during a 'normal' day, I'll bet you are up over 3000 calories. And I didn't feel like I was pigging out. I know a LOT of people who eat about 1200 calories PER MEAL, with snacks in between, and then some ice cream before bed.
Anyway, I went back to my college diet, which was either:
beans and rice + veggies
or: stir fried veggies with rice or noodles
and now i'm back to 167 from 200, which is where i should be.
I don't really know what 'low carbs' actually means. I lived in japan for a year and the japanese eat a lot of carbs. Obviously everyone eats a lot of rice. Wonderbread style bread is very popular, as are soba and udon noodles, and I've never been ANYWHERE where people drink as much alcohol as they do in japan. Yet everyone is still super thin.
When I lived there, I wasted away. I think it is because portion sizes are much much smaller than they are in the USA, and nobody drinks soda or drinks that have alot of calories (except beer.) thus I think even though the japanese eat a lot of carbs, the total number of calories most people are eating per day are 2000 or less, not 3000-4000. |
| Sat 23 Aug | The Real PC | Ok, there are various combinations of factors that can't be summarized in a brief statement.
But Atkins is usually misunderstood and he was right.
Once a person has succumbed to the terribly unhealthy American (or UK) lifestyle, his whole system is out of balance, resulting in what Atkins (and others) called 'syndrome X.' His low-carbohydrate diet is for correcting the imbalance and the carbohydrate addiction. You are not supposed to stay on an extreme low-carbohydrate diet for life.
But diet is less important, I think, than exercise. The reason for exercising is NOT to burn calories and therefore lose weight. We are designed to exercise every day and if we don't the result is a system out of balance. If you exercise every day you won't gain weight in the first place, and you won't have to lose it. I'm 50 yrs old and weigh the same as when in high school, and that should be true of everyone.
Regarding Trollumination's comments above about longevity:
I think you are right. I have been interested in the misconceptions about longevity for a long time, and have found it is very difficult to find any basis for comparison. As you said, Europeans in Shakespeare's time were sickly and lucky to live until 40. And in the 19th century everyone smoked, and women died in childbirth because of unsanitary hospitals.
We would have to compare our current lifespan to that of people living in a healthy clean environment getting a lot of exercise and eating natural food, as our prehistoric ancestors did. Of course, prehistoric people died from accidents and infections. And infant mortality was naturally high because it's nature's way of maintaining genetic health (nature is cruel but wise). |
| Sat 23 Aug | Noname | Low fat diets do work. However, the key is that you must stick to it. A low-fat diet requires much more discipline than the Atkins diet because almost everything in the world has fat in it. A diet like Atkins that allows you to eat beef and bacon will have people staying on it much longer than a diet that allows almost nothing that tastes good. |
| Sat 23 Aug | The Real PC | Low-fat diets are ok, but people are deceived by the low-fat products in stores. For example, low-fat yogurt that's full of refined sugar, candy that's labelled as fat-free, etc. A low-fat diet might work if it's natural and high in fiber and protein. |
| Sun 24 Aug | Chris | Reminds me of a quote from a comedian I read a while back...
'These health nuts are gonna be real pissed off when they all start dying for no reason.'
Chris |
| Sun 24 Aug | realist | As you guys are such experts on diets, may I ask what moisturisers you use? |
| Sun 24 Aug | T. Norman | >'As you guys are such experts on diets, may I ask what moisturisers you use?'
You love to parade your ignorance, don't you. The toughest guys in the world have to know about diets if they are going to succeed. You won't make your weight division for a boxing or martial arts contest if you don't know about diets. And having too high of a bodyfat percentage could mean you sit on the bench in basketball or football or don't get selected to the team. |
| Sun 24 Aug | Knowledge maker | There's a good, if rather long, article reproduced from the NY Times Magazine here about the Atkins diet.
http://atkins.com/Archive/2003/1/20-542932.html
The arguments in favor of Atkins ring truer than most of the mass hypnosis 'common sense' stuff one is accustomed to listening to.
I've no opinion on moisturiser, but sounds like it might be a good topic for opinion. Unreal. |
| Sun 24 Aug | Stephen Jones | The article is arrant nonsense.
People haven't got fatter by following the recommended low-fat diet. They've got obese by completely ignoring it.
There has been no change in the scientific consensus whatsoever. All that has happened is that the fast food industry has got scared and is paying to trumpet those findings that might affect its income.
The statistical evidence is overwhelming. The highest rates of heart attacks are in countries like Scotland with the highest fat consumption, and the lowest are in countries like Japan with the lowest fat consumption.
The Atkins diet causes weight loss because by cutting out on the carbs people consume less calories. It's as simple as putting money in the bank. You put a load in and take none out you have a fat bank balance. You put less in and take the same out your bank balance gets nice and lean.
If you continue with the Atkins diet you will have serious health problems. And if you go off it, the odds are you will regain the weight quickly. |
| Sun 24 Aug | The Real PC | [The statistical evidence is overwhelming.]
Stephen,
Before you lecture us about statistical evidence, you should get a PhD so you know what you're talking about.
There are many differences between the lifestyle in Scotland vs Japan other than amount of fat in the diet.
You are also very wrong about diets. Refined carbohydrates can be lethal for those who are genetically vulnerable to syndrome X. Carbohydrate addiction is a major cause of obesity and heart disease.
I'm lucky in not being genetically vulnerable and I don't worry about diets; however I have a close friend who almost died and I wound up learning all about it in trying to help her.
Dr. Atkins was very intelligent and scientific (unlike so many in the medical industry), and he is gradually being proven right. |
| Sun 24 Aug | _*_ | I have to agree.
As we all know, only PHD's have any idea what they are talking about and have no agenda what-so-ever.
Joel, we are going to have to abandon this site unless you get your doctorate!
We might be persuaded otherwise by anecdotal evidence to the contrary, however. |
| Sun 24 Aug | T. Norman | >'People haven't got fatter by following the recommended low-fat diet. They've got obese by completely ignoring it.'
Either they ignored it, or they thought that low fat meant unlimited sugar. You know the thinking -- this ice cream is fat-free so I can eat as much of it as I want. They forgot that they were supposed to eat fibrous complex carbs in several small meals, instead of three large meals that included masses of refined sugar. |
| Sun 24 Aug | Michael Kale | Our bodies are composed of many many systems, each of which is designed to fail at around the same time. Think about it, if your lungs were able to last 800 years but the rest of your body failed at 80, then the extra energy and complexity that went into the lungs would be wasted.
On an evolutionary time scale, the extra energy that goes into the extra 720 useless years of lung power would gradually shift into other areas until the lungs had gotten to a point where they last 80 years like every other system in the body. I'd rather have 80 years of lungs and 80 years of arm muscle than 800 years of lungs and 70 years of arm muscle, FWIW.
Thus, I think for our lifespans to increase significantly, say to 200 years, we'd need major upgrades in many many systems at the same time.... |
| Sun 24 Aug | rz | the NYTIMES article posted above was ripped apart by a number of other magazines. A good one is the reason article, which includes interviews with people quoted in the NYTimes article:
http://reason.com/0303/fe.mf.big.shtml
In any case, didn't this discussion occur ad nauseum about a month ago?
I still think it would be cool to have a study where one person eats nothing but bacon and fatty meats for a year, and another person eats nothing but rice and beans. and then after a year, figure out who lost more weight. It might be hard because I doubt the bacon eating participant would still be alive. |
| Sun 24 Aug | The Real PC | [As we all know, only PHD's have any idea what they are talking about]
When Stephen Jones said the statistical evidence is overwhelming he didn't know what he was talking about. Most people don't understand statistics or the scientific method. Having a PhD in science and having done research doesn't guarantee understanding statistics, but not being familiar with research methods usually guarantees not undersatnding statistics.
MDs are often very bad at research because they don't learn it in medical school. The idea that people in Japan having less heart disease than people in Scotland must be only because of a lower fat diet is an example of defective scientific reasoning. I realize Stephen Jones is not an MD, but he does seem to believe everything stated by the medical industry (or any other well-established authority). |
| Sun 24 Aug | rz | i develop software for medical research projects, and I can assure you that neither the biology PhDs, MD, nor the statisticians understand statistics. :)
However I don't think stephen jones is too far off. The japanese smoke, drink, and have more stress than anyone on earth, yet the prevalence of heart problems in Japan is relatively low. I'm guessing the low fat diet does have something to do with this. |
| Sun 24 Aug | TK | In my father's family, in his generation and the previous generation. (and they were very big families) no man lived to be more than 71. On the other hand most of the ones who didn't die as infants got close to 71. I don't hope for much more than that. According to half my genes, I've got about 18 more years.
I've heard and I believe that the most significant advances in human life span are the result of sanitation and immunization. |
|
| transport mechanism | Fri 22 Aug | Nathan |
| i have just been tasked with coming up with a solution to allow our clients to pass us files securely. here are some things im considering:
1. just create an ftp site, and give every client a login. they upload files to their home directory, and can check back later for a response, that theyd then download. they can use whatever ftp client they want. definitely quickest solution for me. management headache (500+ clients)
2. make some kind of webpage (HTTPS) that will ask them for their credentials and once logged in give a bit more guidance in uploading their files. probably use ASP.NETs file upload portion. I might run into problems with the size limit, possibly have to look into third party software. still a management headache (this might be unavoidable...)
Any other suggestions? Im open to any thoughts and criticisms. thanks. |
| Fri 22 Aug | Sgt. Sausage | We go the FTP route. If they're sending you data files, they're smart enough to have someone in the IT department figure out how to FTP files to you -- most of the time they're smart enough, but sometimes not.
Be advised, that unless you've got some lower layer protection (VPN, IPSec, whatever) that you're wide open. There is no mechanism in the FTP standard for encryption of the data files, and things like username/logon/password etc. are sent across the wire in unencrypted plain text. For this reason, we've gone with the following:
We've required that users PGP (encryption) the files prior to sending, but sometimes they forget and send us some plain text files (unencrypted). This is AVeryBadThing as these files contain confidential info (medical claims). For this reason, we've blocked access to the FTP server except access through our VPN. So, now we've got 2 layers of encryption -- the packets are encrypted by the underlying protocol (IPSec), and when the individual files are reconstituted into a file, what gets spit out the other side is a PGP encrypted file.
This works well for our data security needs, however it's sometimes a royal pain in the arse when dealing with a new customer -- gotta setup connectivity, VPN, certificates, PGP key management and all that jazz. Most people are fairly clueful about it, but once in a while you get a real bozo and you can eat half the day getting the first file transferred. YMMV
If you want to make things easier, you'll probably want to go the HTTPS route. |
| Fri 22 Aug | Nathan | just got more information... looks like the largest files will be 1.5 MB, which is well within the ASP.NET file upload limits... HTTPS is looking better and better...
Though using PGP is still a good idea... |
| Fri 22 Aug | Philo | What about SSH?
Philo |
| Fri 22 Aug | coo coo cachoo | Trinity "nuked" ssh in he virtual world... |
| Fri 22 Aug | Nate Silva | SSH is a good idea. There are several clients available for both SCP and SFTP. WS_FTP handles it. There is also WinSCP, PuTTY pscp; Transmit on the Mac, and more.
But if you don't have a Unix server it's not an option. On the other hand, it might be worth setting up a dedicated server given the number of users you have. |
| Fri 22 Aug | M | FTP is what we use with our vendors. Works great. Everybody knows it. Can be scripted with minimal effort in both Windows and Unix. Why develop a solution when a solution exists in a simple form. |
| Fri 22 Aug | mb | 'Why develop a solution when a solution exists in a simple form. '
FTP is not secure.
You can make it so with some of the mechanisms described above, but they mostly lose the simplicity/there are zillions of existing clients benefits.
Also you have to poll the server or something to determine files; a POST (or similar) based solution can trigger an event easily. (well, you could write your own FTP server or have filesystem events or... other more-complex-than-nothing solutions). Also a POST style solution doesn't need filenames.
You haven't mentioned what the real requirements are. If it's an occasional file, I'd definately go with a web browser form post over HTTPS--everyone has the client, and the UI is easy to use.
If it's a batch process (every single night), you can use a secured FTP mechanism or secured HTTP mechanism (POST or PUT), both are easy to automate (curl is a good tool).
If it's some interactive frequent process, I'd provide a 'rich' client, with the web browser form post as a backup.
If your customers are unix sysadmins, there's probably some new remote distribution tool. Or FTP.
An email type system is also possible, but the current email infrastructure is so screwed up I'd avoid it. |
| Fri 22 Aug | Nathan | thanks for the great replies. the info transferred is highly confidential, and depending on the client will be as often as daily transfers or as infrequently as once a month. |
| Fri 22 Aug | Nathan | the biggest problem i see is that we have in-house software that will have to be notified when a file has been uploaded, go get the file, and then create a response, putting it somewhere the client can get it. this won't necessarily be immediate either. three days can transpire between a client posting the inquiry and then checking for the reply. (i'm not sure how long our process takes to create the response file - not more than a few minutes i don't think). |
| Sat 23 Aug | Simon Lucy | Surely your software can poll the directory and work out a file has been sent?
It could even send an encrypted mail when it's created the response. |
| Sat 23 Aug | Philo | Setting up a dedicated Unix server is a *really* good idea - you don't incur any interface costs (you can either use Samba or your software can SSH in), and you get a bonus layer of security and virus protection.
Philo |
| Sat 23 Aug | All Mighty | Anyone has used WebDAV? It looks like a simple enough solution. |
| Sat 23 Aug | Clay Dowling | The obvious solution, of course, is to hire me to write a nice custom system that will integrate the whole mess into your information system.
Joking aside, this isn't hideously difficult to do, especially if you use a known protocol like HTTPS that can be scripted. It sounds exactly like typical EDI data exchanges, save that with EDI you often don't get such nicely standardized protocols as FTP or HTTP. A simple CGI program with a mechanism for triggering your data processing routine could make this pretty hassle free once it's up and running. |
| Sun 24 Aug | rz | I've done this using HTTPS webdav.
It is built into IIS, and Tomcat. It is easy enough to pop in the apache module.
If the client has one of the later versions of IE, they can just open an 'explorer view' in IE, then drag and drop the files into the DAV directory. they can also map a drive. It rules. |
| Sun 24 Aug | Xxxxx Xxx | Dove and horseman are transport mechanism too. :-) |
| Sun 24 Aug | Philo | http://www.faqs.org/rfcs/rfc1149.html
Philo |
|
| Contracting, Permament, Unemployment, oh my! | Fri 22 Aug | saberworks |
| Well I have an interesting situation I wondered if I could get some feedback on.
My ultimate goal is to have my own business.
About a year ago, I graduated from a community college with an ATA in Computer System Design & Development. Basically, it was supposed to teach programming, although I didnt learn even one valuable thing, and it was all a complete waste of money.
Prior to that, I had spent 4 years in the Air Force and also made a gaming network that was pulling in something like $1500-$2000 a month in ad revenue. 6 months after I got out of the Air Force, the ad market died and I was left with no income. My options were to take a low-paying, non-technical job or go to this community college and use up my GI Bill money. I chose the latter but also got into $14,000 in debt.
About 4 months after graduation, I was hired at a local software company that frankly sucked. After working there (coding perl & PHP) for about a month, I realized that they were selling spyware disguised as a virus scanner (I worked on their billing system and company intranet, so I wasnt really involved with the product). I realized as time went on that the company had no chance of survival and I wasnt happy there, anyway.
I was assigned to the optimization group where I was part of a 3-person development team tasked with taking all the personal information gleaned from the spyware portion of the software and putting into hourly/daily/weekly/monthly/yearly reports that they used to make decisions on the future of the product.
After 2 more months (total of 3 months), the entire optimization group, including myself, up and quit. (We of course gave our two weeks notice).
I was a little worried because the market for programmers wasnt all that great. I was very lucky to immediately (within a week) land a 6 month contract with a big Seattle streaming media company (Im sure you can guess who it REALly is). Since then, I have been working for a small division of the company that markets a PHP/MySQL-based content management system to non-profit organizations (we only deal with non-profits). They have been paying $30/hr + they pay half the premium on my medical coverage (so I pay $100/month for medical insurance).
Anyway, that sounds like a great deal, but I live across the water and it takes me 2 hours each way to commute. As you can probably guess, I am not that happy.
The original deal was contract-to-hire, which sounded good. The company really likes my work and they offered me a full time position. Guess what? Its a 20+% pay cut. Id be going from something like $62k/yr to $50k/yr. Of course Id get more benefits, but the down-side is that I wouldnt feel comfortable moving directly into Seattle at that low salary. Not that its low - but the rent in seattle within a reasonable distance to work is at LEAST $1500/month for a decent house (not including utilities/etc.), plus Id have to pay $8/day for parking when I got to work. That doesnt leave me much for the rest of my expenses and bills (including that awful student loan).
So anyway, I turned down the offer and offered to extend my contract for another 6 months, but only working 3 days per week. This would leave me at under $40k/year, but I would have time to pursue my ultimate goal, which is to start my own business. Anyway, my supervisor (this was on Monday) told me no that I either had to accept the position, renew at full time, or just have my contract end on the 5th as it stands.
I told him that my contract should just end. Since Im working so far away from where I live, I figured I could get unemployment for a few weeks while I get my business going.
On Tuesday, I got a call from a company that found my resume on Monster.com. They are apparently in a contract project for MS and want me to interview next week. I talked to her on the phone for almost an hour and she seemed like she knew her stuff and was actually very optimistic. This position would pay $34/hr + vacation and benefits and would be a 6-12 month project. I could then move to Redmond (where rent is down around $1000/month instead of the $1500 and have a 10 minute commute to work. Sounds great, but I have an ethical problem with working for MS.
So we set up the interview for next week, as Im still undecided. I would like to have the stability of another contract (as opposed to starting my own business), but Im not all that excited about working for someone else (yet again).
Then, yesterday, my supervisor at my current company changed his mind and wants me to work part time, at least for another two months! Damnit, why cant this be easy? I would really like to do that because it would give me an opportunity to at least find out whether I could be successful on my own. I would still have enough money to pay all my bills, live comfortably, and Id only be commuting 3 days a week.
So, what do you think of this situation? I know there are people that would kill (almost) for a job, any job, but I guess, after having so many interviews and promising leads, I feel comfortable that I can always either get a job or make it on my own. |
| Fri 22 Aug | Steve Barbour | You haven't told us anything about this business you want to start. Are you thinking consulting or do you have a product in mind?
Either way, some more background would be useful. Do you have clients/customers lined up already? How will you be funding that start up period? Etc.
Give us some meat. |
| Fri 22 Aug | Rob VH | If you're comfortable living on the part-time wage, I'd say stay with that. It seems to me like it will be much simpler to get your personal business up and running with two days off every week. In other words, how does a move to Redmond help you get your own business going (your real goal)? |
| Fri 22 Aug | pdq | I thought the topic was contracting permanent unemployment, like it was a sickeness! |
| Fri 22 Aug | cheapo | More jobs == More contacts == More future opportunities.
If you get offered the MS contract go for it. You will learn a lot. |
| Fri 22 Aug | Lou | I'd suggest moving to Redmond.
You claim that you want to start your own company but don't have enough time to dedicate to it. You propose that working 3 days a week for 8 hours with a 4 hour commute may be better than a 5 day a week for 8 hour job. That's 36 hours versus (assuming 2 hour commute time total per day in Redmond), 50 hours.
Are 14 hours a week worth $8000/year + vacation + benefits?
Perhaps you should work for Microsoft (and do you really have an ethical problem working for them or is this some 'I'm a geek I swear, see how much I loathe MS' thing? Would you have the same problem working for any other company with a near monopoly (my company is 72% of our regional market)). You'll get great experience, more skills, pay down your debt, have a better quality of life (less commute + less stressful community + lower rent) and you might even find that you like working for MS.
In my experience most of the work that goes into setting up a personal business (having watched my father and uncle both do it) requires a little investment each week for a long time. Only after that slow building period does it become a full time endeavor.
Best of luck. |
| Fri 22 Aug | Alyosha` | 'Perhaps you should work for Microsoft (and do you really have an ethical problem working for them or is this some 'I'm a geek I swear, see how much I loathe MS' thing).'
Hey man. Ever since I started working at Microsoft, my street cred on JoS has been shot to hell. =-)
I don't have an ethical problem working here as I do a morale problem. It is so easy to feel insignificant in a megacorp like this.
But hey ... I get to take Bill's money, *and* post to JoS all day? Hot damn! What's the catch? |
| Fri 22 Aug | saberworks | I actually have quite a few things going on in regards to my own business. My brother and I have gotten through the prototype phase of a product we intend to sell over the internet and in retail sports stores. It's an accessory useful to anyone that owns a snowboard. Problem is (as with every product launch, I gather), trying to judge whether or not it will actually sell enough to be worth it.
The second is a program I've been working on for about a year now (development has been very slow due to my hours). It's a good solid product, something that doesn't have any competition I can find, but that appeals to a fairly small audience (web sites that are trying to build large web communities and that are willing to pay for web software).
Finally, a friend of mine and I are talking about going at it like Joel, where we do consulting 50% of the time and spend the other 50% developing two software products that are designed to provide services over the internet (as opposed to selling the software itself, we provide a service in exchange for money from the end-users). We think both of these ideas can be profitable, but of course, it will take a lot of time and effort (and a little bit of money) to get them off the ground and really find out.
Sorry I'm a bit hesitant to provide more details right now (I'm sure you understand :).
Regarding funding, all the projects have been designed with the assumption that we won't need a lot of start-up capital. I want to start small, very small, and build a larger customer base as we are able. I'm not interested in getting any more loans, especially a business loan! I have enough money saved up that I can afford things like the web design [I do web programming but I suck at artwork], web hosting, merchant account fees, branding, business license fees, and a trip or two to a small business accountant.
Regarding my ethical problems with MS. Basically, I work like this. If a company screws me over, I do everything within my power to not buy from them *ever* again. I am still on Windows98. I don't do business with Qwest, or AT&T. I don't shop at Safeway if I can because I don't like their membership cards. I don't do business with GEICO anymore. Regarding MS specifically, they overcharged my debit card for a game called Asheron's Call (basically, they kept charging for 6 months after I cancelled the membership, and since it was such a small amount (9.95/month), I didn't notice it. When I called and asked for a refund, they refused. They said they have no record of when I last played the game (a big lie, since as soon as you log in, it tells you when you last played). Furthermore, just a few days later, I got an email from one of their automated systems telling me that my account hasn't been active for 6 months and they were going to delete it!
Plus I have all the normal issues with their crappy software (I develop on Linux, I have win98 solely for games at home). Actually, I don't even mind crappy software, I mainly have a problem with their 'product activation' which requires me to give them an inventory of my hardware, and their license agreement permits them to disable my OS if I change my hardware too many times. I guess I just want more freedom than that. (No, I don't pirate software. I pay for every bit of shareware I use. I don't download music, even though I dislike the RIAA.) |
| Fri 22 Aug | Alyosha` | saber: think of it this way ... go to work for Microsoft. Goof off for two hours. Voila, you've just gotten them back for Asheron's call ... |
| Fri 22 Aug | saberworks | I thought of that but I would also have an ethical problem with that! Argh maybe I should just jump off a bridge and get it over with :P |
| Fri 22 Aug | cowardly anonymous | saberworks,
Joel talks big like it is easy to start you own software business, but my guess is he has had the luxury of running in the negative for multiple years. I am speculating here, but based on his bio I'd guess he ran away with a bunch of option money from the boom, and is acting like his own angel investor. The rest of us unfortunately need to earn a living. |
| Fri 22 Aug | Vince | you didn't really specify what else you program in, but 50k a year for doing web based scripting language ain't bad. Now, if your also a C++ guru, I can understand not wanting to settle. If they're making a ton of money off you, get as much as you can. But just be aware there are a lot of people who are more qualified on paper (and possibly more qualified, but not likely) who are out of a job.
Good luck. |
| Fri 22 Aug | saberworks | Thanks vince. According to salary.com, the average web developer in seattle makes 66k/yr. The problem with taking 50k is that there is literally nowhere decent to live for under 1500/month (if the requirements are a house w/3 bedrooms and enough space to park 2 cars) within a reasonable distance to the city. The reason prices are so high is that seattle is surrounded by water, and there aren't that many neighborhoods closer than a 45 minute drive (considering traffic - usually about 20 mins if there's no traffic).
So, that 4 hr commute isn't really an option for me. So what I'm saying is, taking the permanent position at my current company isn't considered an option at this point (I'd rather dig ditches closer to where I actually live). |
| Sat 23 Aug | T. Norman | Bear in mind that 'the average web developer in Seattle' probably can do other things like write Java servlets that talk to EJBs, and has more experience than you. So don't expect to make $66K yet.
Still, I can understand why you wouldn't take $50K in Seattle, even if it is a fair wage for your qualifications. I'm probably not worth six figures yet, but I wouldn't work in New York city or California's Bay Area for less than $100K. |
| Sat 23 Aug | Vince | I think salary.com is a little overinflated. 66k is a lot for a web developer, even one who knows front end J2EE or ASP.net This isn't to say that you shouldn't be getting more however. I believe that if a company is billing you out at a high rate, your more then justified in asking whatever you want, regardless of your qualifications on paper. There are definatly some guys that maybe only know php or perl but are just so valuable that they are worth 100k or more. Also, the cost of living isn't *that* high. I live in orange county, and one of my friends just moved closer to where he works, and he's paying 1500 for a one bedroom. (no its not on the beach or in a high rise). |
| Sat 23 Aug | T. Norman | What? $1500 for a one bedroom isn't *that* high? |
| Sat 23 Aug | rz | Saber: i've tried to start my own business a couple of times. both times I failed because I was undercapitalized.
My business ideas were similar to yours: a software product and also an action sports product (snowboarding in particular).
Here is my story:
I took a high paying contract for 6 months, then took 3 months off to work on my business. What happened was that I burned up a lot of cash just buying business stuff: computers, desk, chairs, accounting software, books, talking to lawyers, accountants. Then I realized that since I was working in a vacuum, finding clients was next to impossible!
Once I burned through about $10K with no positive cash flow, I got nervous and did the following:
- I took the easiest, but highest paying job I could find
- In the mean time, I've been trying to do as much contract work as possible that relates to the software product I am building. This way I can turn on my contract clients to my software product, once I feel it is ready to roll out.
- When the time comes, I can turn my permanent job on to the 'enterprise' edition of my software, and charge them a recurring fee for support.
- If the software takes off, I can use $ from the software biz to figure out how to get my snowboarding product to market. I love software, but I love snowboarding more, so the ultimate goal is to support myself through my action sports empire. :-)
So my advice to you is to take the MS job AND try to keep hanging on as a paid consultant to your old job, through telecommuting. You'll need all the cash you can get! In my experience, cash is more important than free time when starting a business. I can easily get more free time by simply drinking more coffee. Getting more cash is a lot harder to figure out.
Also, if you do consulting, read the book joel recommended: Managing the Professional Services Firm. It is golden! |
| Sat 23 Aug | rz | regarding apartments, $1500 is pretty much the going rate for a good 1 bedroom in Boston, NYC area, SF, the nice parts of LA, Seattle, nice parts of Portland, nice parts of Chicago, the nice parts of San Diego, Tokyo, London, etc.
Yeah it is too high, but those are the breaks. What suprises me is how expensive it is to live in towns you wouldn' t think are that expensive. A _decent_ but not fancy 1 BR in minneapolis can rent for $900 a month! |
| Sat 23 Aug | mb | rents are collapsing in many places, including seattle.
$1800 will get a 3 bedroom house in a nice but not necessarily central neighborhood. houses are difficult to find because the market is small and somewhat inelastic.
$800 will get a not-so-nice 1BR in a nice neighboorhood, $1000 will get you a nice 1BR in a nice neighborhood. |
| Sat 23 Aug | Bored Bystander | Saberworks:
If you contract, expect to be whipsawed until you establish long term relationships with people that you're working for.
Making contacts with companies for contracting has always been pretty much like what you're describing for me: 'you won't take our offer, go, we don't use contractors after X months, company policy!' ... 'Yes, we can use you over here'. 'No, we still need you, we'll use you part time'. 'No, we reevaulated and we don't need anyone now so we're pulling the offer.' Etc etc. Also, a lot of HR policy in this field is/has always been based upon bluff, assumed dishonesty, and bullying. IE: your current employer wanted to squeeze you into taking a full time job, but turned out to really need you when you demonstrated that you were serious.
I'll add my $0.02 to your game plan. You really need to find truly independent, project based solo work if you want to make your own product. You need to find work that you can take offsite from the client. If the client ties you down to being another happy onsite face in their empire, you'll be worn down by the employee mentality they will inevitably push off on you.
What I've found is that it's much easier to work on your own stuff when you aren't billable at all. When you're able to be billable, every hour not spent on the client's work feels like another hour of non billable time. Also, the 'compulsion' to be billable fights your need to invest time in your own business.
Marketing a service business - SW contracting - is VERY distracting. And clients add a lot of their own noise. My recommendation here is to not tell your clients - future or prospective - what you're planning. It will make you less desirable as a contract candidate. Your contracting and your own product should be two different universes and planes of existence, as far as clients are concerned.
So my recommendation is to hit the contracting hot and heavy, bill as much as possible, and bank it with the understanding that it's a slush fund to finance your own projects. Accept that contracting will consume too much time to do much justice at all to your own future ideas.
Meanwhile, plan your new endeavor. Have an exit strategy.
Eventually: quit or let your contract(s) wind down, and transition to your own business.
Good luck.
Oh, yeah:
cowardly anonymous: Joel's never said it was 'easy' to do what he's done. My take is that he's never really indicated how much effort or investment it's been for him. And your hypothesis that any stock option money made it easy is kind of foolish; anyone sitting on several hundred $K will not accept running in the red for very long. Even someone that looks 'rich' doesn't like to piss money away unless they're REALLY sure they can make it worth their while. He had a plan, he executed it. Not easy... per above. |
| Sat 23 Aug | Bella Toughlove (Or How I Learned to Stop Worrying and Love the Blaster Worm) | My 2c: You're still a newbie. Having MSFT on your resume can only help you. You will work with top people.
Also, you do come across as a prima-donna. I suggest you really decide what it is you want, and stop wasting your time and company time by taking jobs you quit in 2 months. It takes a lot of time and money to recycle staff.
I agree with bailing on the Seattle job. Screw the 2 hour commmute. Nail in the coffin. You are an identified risk, at this point, since you refused to take FT (which is fine) Also, your supervisor will shitcan you when its convenient for HIM. It is a dead end. What the heck is 2 months going to do for you? Have SOME longer term vision.
> If a company screws me over, I do everything within my power to not buy from them *ever* again. I am still on Windows98.
You seemed intelligent until I read that. Talk about cut off your nose to spite your face. Your issues with MSFT indicate to me (and I'm entitled to my opinion) that you are too rigid and dogmatic for this, and many other fields. I don't think you have much of a future in IT. Sorry, just my candid opinion based on very limited knowledge, but if I had to bet, that's how I'd go...
Sell your snowboard wax on Ebay. You can start tomorrow. Market it on all websites and forums where snowboarders go...
PS : I believe Joel got a decent amount of VC during the insanity....So yes, I'm sure he was able to bleed blood red for a decent while.. |
| Sun 24 Aug | Andy Norman | 'When people ask me if they should seek venture capital for their software startups, I usually say no. At Fog Creek Software, we have never looked for venture capital. Here's why.'
from:
http://www.joelonsoftware.com/articles/VC.html
would indicate that Joel hasn't taken any VC money for Fog Creek |
| Sun 24 Aug | saberworks | If refusing to do business with companies that are in business to screw over their customers is 'too rigid,' I'll take it. I guess I still believe that there are plenty of people and companies out there without that mentality. Running a company or a business does not have to run contrary to someone's ethical standpoint.
I appreciate everyone's input. I'm going to take a while to digest this before I reply again. Thanks very much for your time! |
| Sun 24 Aug | jb | Saberworks, without realising it, you have done the right thing. You worked out what you would require at your current contract and stood by that even though the employer tried to bluff you out of it. You won.
Regarding the new contract, I would stay away from it. It is not as certain as your existing one, and you are exposed to being ditched or stuffed around. Stay where you are. |
|
| svchost | Fri 22 Aug | Pierre Huijnen |
| I have a problem with this program while being working with internet the programm gives the ann. that he close the programm and that I most close all the progr. and start again
I have this problem with explorer and outlook express
Who can help me with this problem |
| Fri 22 Aug | anon | Can't help. Sorry. But it's interesting that I'm having the same problem. |
| Fri 22 Aug | jb | This is you being attacked by the worm that has been going around while connected to the internet. You should probably check with anti virus software that you have not been affected. |
| Fri 22 Aug | DJ | Definitely the worm. Last week on my W2K machine, svchost kept crashing and then my anti-virus caught the msblaster after it was loaded.
Patch your machine right away. |
| Fri 22 Aug | mb | And once you've done that, let us know why you didn't patch--I for one am curious. (And believe there are lots of possibly valid reasons) |
| Fri 22 Aug | been there, done that |
Google('msblast svchost') --->
http://www.computing.net/windows2000/wwwboard/forum/50444.html |
| Fri 22 Aug | Matthew Lock | Yep I fixed a friends machine infected by blaster and one of the symptoms was svchost crashing. Run windows update. |
| Sat 23 Aug | Frederic Faure | ... and install a firewall, ready for the next breach of security in Windows :-)
BTW, does someone know why Windows needs to keep all those ports open (TCP/UDP 135, 137-139, 445), even on a client host that shares no resource? |
| Sat 23 Aug | Frederic Faure | "concat"? :-) |
| Sun 24 Aug | Xxxxx Xxx | http://www.microsoft.com/windows2000/techinfo/reskit/samplechapters/cnfc/cnfc_por_simw.asp
You need to disable the services. |
|
| POI- How to pop up the Excel sheet | Fri 22 Aug | Billy |
| Hi,
I am currently using Java POI to create a Excel Sheet. I would like to know what are the commands to pop out the Excel Sheet in a new Excel when I click a button. The Excel sheet will not be saved to any place btw, just a simply open in a new Excel. Please advise.
Thanks |
| Fri 22 Aug | John Topley (www.johntopley.com) | Are you talking about a button on the Excel worksheet or a button in your Java user interface? |
| Fri 22 Aug | Konrad | Or a submit button to a servlet? |
| Fri 22 Aug | John Topley (www.johntopley.com) | Does that not come under the category "Java user interface"? |
| Fri 22 Aug | Konrad | Good point, you're right that technically it could be described that way. Unless I've misunderstood the ramifications with using POI for the two different situations would be different despite how they could be both classed as such. |
| Sun 24 Aug | David Rabinowitz | Billy:
You can save it as a temporary file, and open Excel on it.
Delete it later.
David |
|
| Code reviews and formal processes | Fri 22 Aug | Jon |
| I work in a company doing military contracts - Im working on the command system for a rather large ship. Our company is known for excessive use of formal processes to control the softwares development (even for a military company).
We use PVCS for this - for those who havent used it, its a fairly typical source control program, allowing you to delegate code to people, raise change request and observation reports, and force each piece of code through a review lifecycle. (Its also a horrible piece of software which seems to actively try to slow you down and make things unpleasant, but thats another story...)
We write use cases, then design analysis (using Rose to put together some high level stuff on how the component will work), then detailed design (using Rose to spec out each individual message in the implementation).
Our code reviews generally consist of 3-4 people, including the code author and the relevant architect, doing a code walkthrough, and then theres this horrible form to fill out with details on all the necessary changes that have been spotted.
Anyway...the point to all this was that Im curious how our system compares to others. What do you do, and what processes do you go through to get there? |
| Fri 22 Aug | Roose | No code reviews at all, just hack and hack, until we're done. And fix thousands of bugs all at the end.
I'm not kidding... I work on a console game.
There's got to be a balance somewhere. |
| Fri 22 Aug | jedidjab79 | Yep .. sounds like what we do. New feature after new feature gets tossed in the mix whenever management come up with some new idea. Hack, hack, fix bugs, reach release date and have everyone panick as we continue to fix bugs right up until the day the master CD is burnt (inevitably late).
Fun stuff :) |
| Fri 22 Aug | Steve Jones (UK) | Got to say all the projects I've worked on (20 years) have been more towards the hack, hack, fix, hope method than the very formal method described in the original post.
Some have been better than others, ranging from every module specified and code reviewed, with it's own test plan, right up (or down) to a three year project for a $1B company where no spec was done and everything was done on the fly.
I have to be honest here. Given the choice of the two extremes, I'd elect for the hack, hack method every time. I know its stressful and wastes time, but at least I can be creative and use my initiative.
With all due respect, the method described in the original post seems to completely stiffle creativity and their coders are really just part of a production line. I wouldn't get much job satisfaction from that.
I have done military work too (projects for the Royal Navy/MoD on a nuclear submarine), but they never required or expected anything but the end result. They didn't care how we got there, as long as it worked.
We even had the blueprints for the nuclear sub in our (unprotected) filing cabinet and I didn't have to sign the OSA. Maybe things are different now, that was a few years ago. |
| Fri 22 Aug | Jon | 'With all due respect, the method described in the original post seems to completely stiffle creativity and their coders are really just part of a production line. '
No respect needed. I hate it too :) |
| Fri 22 Aug | Evgeny Gesin /Javadesk/ | That's fine, we do very the same |
| Fri 22 Aug | Matt H. | We lean toward the middle - mostly toward:
'What Works in Software Development: Or, how to be lazy without really trying'
http://magnonel.guild.net/~schwern/talks/What_Works_In_Software_Development/full_slides/slide001.html
If you want source code control that requires code review but doesn't stink, I've heard great things about Aegis. Oh, and I think it's free. :-)
On any project of signifigance, I'll email the source code to a peer and ask for comments. On large projects, we may grab a conference room and 3-4 people to hash out the more dangerous parts.
The DoD probably requires you guys to be CMM level 3. If I were to chase CMM, I'd do it though extreme programming, not UML and RUP. But that's just my $0.02.
http://use.perl.org/~heusserm/journal/ |
| Fri 22 Aug | i like i | command and control systems for large warships seems poles apart from consoles. Or does it? Does Windows For Warships have DirectX? |
| Fri 22 Aug | Peter Breton | There's a formal description of the hack, hack, hack method here:
http://www.laputan.org/mud
;)
'I have to be honest here. Given the choice of the two extremes, I'd elect for the hack, hack method every time.'
Bravo! I always felt that way too, despite knowing that it was 'the wrong answer', and I 'should' feel the other way.
I think agile development is a way out; you still get to hack, and you skip the ponderous, excruciatingly tedious design phase, but you can clean up the code as you go (ie, whenever it bothers you), and unit tests let you see that you haven't broken anything.
Indeed, given that most programmers I have encountered, even professional ones, are of the hack, hack, hack school, I'd be tempted to architect by simply ordering first and foremost that all functionality have unit tests. Then the specific implementations don't matter too much. |
| Fri 22 Aug | T. Norman | The better your programmers are, the less need there is for formal processes. Refer to Joel's article on the Master chef vs. the McDonald's cook. The Master chef doesn't need any detailed recipe and can improvise on the fly, often throwing ingredients on without using any measuring tools, but produces great results. But the McDonald's cook must follow a specific set of detailed instructions, and be provided with a specific breed of meat and potatoes and lettuce in order to obtain an minimally acceptable result.
That's not to say that processes are bad by any means. Code review is very valuable even when you are dealing with genius programmers. Just about every good open source project does code reviews, even though they almost never have any formal process around writing detailed specifications and test plans. |
| Fri 22 Aug | T. Norman | The first sentence of the second paragraph should have started "That's not to say *all* processes...". |
| Fri 22 Aug | Gav | I used to work at a hack, hack, hack place, and it was a complete disaster.
There was the time one of out guys did a program that was supposed to work like 'Norton Disk Doctor' (anoyone remember that program?) to find broken files on our media and stitch them back together. He shipped it out to a customer, who found that it screwed up their media beyond repair.
There was a time I was asked by my manager to find out if a particular feature had ever been implemented (without hooks to the outside interface)--the programmer who was supposed to do it was long gone, and nobody knew. The only way to find out was to literally walk through the source code and look for a function that would do what the feature was supposed to do.
We shipped bug fixes that weren't. We once shipped a system that literallly wouldn't boot, and I had to travel to Australia to fix it. (It wasn't too much later that I quit)
Some amount of this happens no matter what--every company does a bad patch now & then, but this was just a whole other league; things happened on a daily basis that a small amount of process would've just caught.
Now, I'm not fan of overwhelming process (been in that sort of place too), but nobody'll ever convince me that working with no process is great. (Let me qualify that a bit--if you're a two-person shop, it's probably a different story; we had 40 people)
Gav |
| Fri 22 Aug | d | I used to work for a big company. We had a middle of the road review process. When the block of code a person was assigned was done a few people from the team would get together and read through it. We had one form was basically a record of who attended the meeting.
Most people hated it. Some people were arrogant enough to think their code was perfect. Some people worked in small team anyway so had the extreme programming type of continuous review. Some people were just shy in groups.
I can say it helped me on occasion, the reviews of my code picked out some serious flaws, but it didn't stop me from breaking the build for four days once, making 600 people scramble until we figured out the problem. |
| Fri 22 Aug | Rick | We do mostly government contracts, though we're ISO 9001 and not CMM. For developers we just have a design review (usually done by email), but no coding review, so you just list or diagram the new classes and modules, the main (but not all) methods it'll have and how they interact, and changes to existing modules, then distribute it to the review committee members and they email back with any comments. Then you update the document with any changes, if you agree with the suggestions (usually they're helpful). But all the little details and methods and things you didn't think about until later you're free to just put in as needed, then update again at the end when you're done.
Then we have nightly builds and a couple people doing regression testing of anything that was checked in the previous day, so we find out really quick if somebody broke something else.
Also we have coding 'style suggestions' but they're not mandatory, so everybody's a little different but it's never been a problem. |
| Fri 22 Aug | BigRoy | Working on a Navy contract, your experiences are not that out of line. That your company is 'extra' intent on reviews, is probably in hopes of improving their CMM number and making them eligible for even better contracts.
For those 'hack, hack, hack' people, that is just not permitted on most government and nearly any military contract. This includes T.Norman's comment 'The better your programmers are, the less need there is for formal processes. '
I have yet to see any impericle evidence that is true. Everyone - ABSOLUTELY EVERYONE -- makes mistakes. Whether they are affordable, depends on your project.
http://www.byte.com/art/9512/sec6/art1.htm
http://www.fastcompany.com/online/06/writestuff.html
But this is 2003? Surely we have gotten better! Hardly. If this week proved anything it is we still have the same issues, but now on a global scale. For example, the current virus going around the web, was said to have been reported to Microsoft in the original version of MSIE 12 years ago. I am sorry, but the MS group does not strike me as 'dumb folk' so T. Norman's quote does not apply.
http://story.news.yahoo.com/news?tmpl=story&cid=620&ncid=620&e=1&u=/nf/20030821/bs_nf/22135
and a personal favorite: http://catless.ncl.ac.uk/Risks
However, depth of reviews are also a factor of what you are building. In the second article above, it talks about the Space Shuttle and makes the comment: 'the on-board shuttle group produces grown-up software, and the way they do it is by being grown-ups. It may not be sexy, it may not be a coding ego-trip -- but it is the future of software. When you're ready to take the next step -- when you have to write perfect software instead of software that's just good enough -- then it's time to grow up.'
A little harsh, and dramatic. The fact is that most of us are not building software where a bug may drop a $5 billion machine, loaded with rocket fuel onto a heavily populated area. Command systems on a large ship are something that all sailors, would appreciate being as near bug free as possible. Game consoles? I don't know.
However, the process does not help, then it is a waste of time and that is worse, as it takes people away from doing the correct behavior to support a wasted one. |
| Fri 22 Aug | anon |
I know a lot of people dislike the very idea of pair programming but it does provide an automatic code review.
The benefit to quality is obvious, but we actually have found that implementation goes faster as well. You don't waste a lot of time trying to find 'stupid programmer tricks', plus you are far less likely to have to revisit paired code in the future to fix bugs. Overall time to implement a feature drops.
If you can get over the normal reaction to the idea of coding with a partner, it can be very worthwhile. |
| Fri 22 Aug | T. Norman | I never said that formal processes are ever unnecessary altogether with good programmers. I said that the better they are, the less necessary those processes become. Surely you must agree that the less competent the developers are, the more important it becomes to have formal processes. |
| Fri 22 Aug | Philo | I still think that overdesign is a false economy - trying to anticipate that which cannot be anticipated.
Reading through this thread, I find myself reaffirmed that XP (with or sans pairing) is the way to go - maximum use of code maestros, design only to the level required for coordination, and rely on code reviews heavily.
It also seems like a lot of stories as to why XP/guerilla programming is bad rely on anecdotes about people who simply aren't good programmers. Well of course - referring back to the Joel article, you can't use 'We had a McDonald's chef, and he couldn't even make a decent steak tartare on his own' to insist that nobody should be allowed to be a chef.
Philo |
| Fri 22 Aug | Lou | I work for a $5B company and it is mostly hack hack hack fight fire fight fire fight fire. I guess we are not very good coders. I add version control ,bug tracking and informal code reviews. I hate the code reviews but it keeps me honest. Knowing that I have to explain to someone why I did it a certain way has forced me to do it the 'right way' instead of the fast way many times.
The upsides are:
1- the weaker coders are seeing how the better developers do things.
2- There is some level of pain for being lazy. We beat you up pretty good verbally if your code is not maintainable.
3-We all have a sense of the thought process that went into building the code. If we have to modify a module while the person who wrote it is out on vacation we are that farther ahead of the game.
A neat side affect is that we have not had a 2nd or 3rd shift support call in 10 months and our first shift calls are few and far between.
Note that I get very reasonable deadlines. My sister department has kept things the old way and they are constantly fighting fires. So much so I tease them that they don't fight fires they carry the eternal flame. |
| Fri 22 Aug | BigRoy | T. I do agree with you. The problem is the list of 'less competent developers' never seems to include the name of the list maker.
Many people take code reviews too personally. 'You' are a bad developer. 'You' screwed up. 'You, You, You'
It's code, not art work. In the world of painting we paint a house, not the Mona Lisa. I don't have to agree that two shades darker would be better, but I may learn something, or teach you something, if I listen.
Where I have seen this fall apart are senior developers who dictate changes, but cannot explain why. The infamous 'we never put constructors in... ' 'Why not? ' 'We just don't. It's bad code.' If in a code review you cannot have the reason explained to you, or you cannot explain why you are doing something, the discussion is worth having. Only make a change is someone can convince the group it is worth changing.
And for sanity, be consistent. If you are going to following a coding standard, EVERYONE follows it. Newbie to Senior Architect. Don't get into the 'Bill never does, just leave it alone' While everyone but Bill has to change their code. |
| Fri 22 Aug | Rob VH | I guess I'll add the point that if you have a massive code review process, and mediocre to sub-mediocre coding talent... absolutely _nothing_ gets done.
I had the misforture (cross misfortune and torture), to work on a U.S. military contract for 6 months once. Another programmer and I were able to fix small bugs, but the system as a whole had become such a mess, despite a cautious, rigorous process, that major improvements were nearly impossible.
I ended up leaving my contract early. It was a violation of my personal morals to be a part of such a taxpayer funded boondoggle. Here's hoping I never have to work another government project again.... |
| Fri 22 Aug | Don Ho | "Code reviews and formal processes"?! We don't need no stinkin' code reviews and formal processes! |
| Fri 22 Aug | Anon4Now | Having sat through my first code review at a client's office yesterday, I can generally say that it appears to be a grand waste of time to review code that you're outsourcing to a consulting company. They admit they don't always follow their standards, and they nitpick about everything including indenting (to the point where they specify using tab instead of spaces.) It wasn't even my code being reviewed and if it wasn't for the fact that I used every ounce of effort into staying awake (3+ hour review), I'm not sure I could have made it through that meeting without blurting out "Don't you have anything better to do? If not, why are you paying us $100+/hr to do this when you could do it yourselves?" |
| Fri 22 Aug | 7 parts per million | Its very common for critical systems - that being a system which fails may endanger the lives of people - to have 'high ceremony' processes (I'm taking a phrase from Alistair Cockburn's 'Agile Developmet').
It makes sense. You don't want the BSOD in your screen when you're manning the patriot battery (or whatever).
So features and speed are neglected in favor of precision. Military contacts are based on heavy top-down specification, so reviews make sense: there is no feture creep, so its easy (ha) to review code against a systems specification for correctness and fault handling.
Contrast this to consumer software, and fault handling is handled by the end user, and you can deal with the biggest complaints in the next release. |
| Fri 22 Aug | anon |
A lot of artifact heavy formal processes tend to slow you down considerably. How many here work on releases that are more than one year in length?
Again, we use an agile process (XP) and typically release once every six months.
So, to look at it one way, we can implement a feature, fuck it up totally, fix it, and release again before some, less agile, projects get their first try out the door. That's worse case. We actually have better quality now than before we went agile. And we can go even faster, if we wanted to. This is especially valuable if you're working on a new product. |
| Fri 22 Aug | anon |
'It makes sense. You don't want the BSOD in your screen when you're manning the patriot battery (or whatever).'
Patriot's are probably not the best example, since they don't hit what their aimed at anyways. :)
(There's an old story concerning the NVA during the Vietnam war. According to legend they sent a message to their Soviet suppliers: 'Stop sending surface to air missiles. Send surface to aircraft missiles').
Anyway, I understand the need for precision, but that's not necessarily a reason you can't go agile. How about a scenario where you developed a simulator test bed for the weapon system first, then iteratively delivered fea |