last updated:23 Aug 2004 10:43 UK time
|
 |
|
(Comments added for week ending Sun 22 Aug 2004) | View Other Weeks
|
|
| New dot com companies | Sun 22 Aug | Puzzled |
| Is the dot com company returning? See http://www.plaxo.com/css/about/news/040615.html
Can someone please explain how a company that connects peoples address books (without an obvious source of revenue) is worth a pre-money valuation of $7 million and manages to raise $20 million in investments? Am I missing something here, or are we back to the dot com days of measuring a companys value by the number of eyeballs it attracts? What are these investore seeing in a company like this, versus a company like Fog Creek, which has real sales, real revenue and real profit? |
| Sun 22 Aug | TheGeezer | Hmm, that so-called 'big idea' sounds like a crock of shit to me. Address books that automagically update - BFD.
Also, irrespective of the fact that Bambi Fransisco (?!!) writes for CBS marketwatch I also couldn't see any disclosure of interest... |
| Sun 22 Aug | Pythonic | Simple - people want to communicate. Any ideas to connect them better are and should be well-appreciated. This is where you'll earn a lot of money in the coming few years. |
|
| Manual vs. Automatic Transmission | Sun 22 Aug | Tim Long |
| I was a long-time devotee of the manual transmission, considering automatics to be less responsive and wasteful on fuel. Here in the UK, manual is the norm so maybe Im biased. I drove a few automatics during my 3 year stay in California and I have to admit that they work really well with cruise control.
However, I have been forced to reconsider my position. Enter the TipTronic gearbox. My car, an MCC Smart ForTwo ( http://www.thesmart.co.uk ) uses this sytem and it is just the best of both worlds. Fully automatic with kickdown on the accelerator pedal, but also with a gear stick that simply and intuitively overrides the automatic system. I get around 60 miles per UK gallon (which is a bit bigger than an American gallon) and I can beat most other cars from a standing start at the traffic lights (despite only having a 3 cylinder 750cc engine).
--TPL |
| Sun 22 Aug | Crackhead | That is a goofy looking golf cart. |
| Sun 22 Aug | anon | <snicker> |
| Sun 22 Aug | Fabio | Next time I want to lose all sense of masculinity, I'll consider purchasing this vehicle. |
| Sun 22 Aug | Mitch & Murray (from downtown) | If it's not a Hewland, it's not a 'manual'.
Dog rings rule. |
|
| Spanish text translation | Sun 22 Aug | Neo |
| Hey there everyone. I know this isnt really software related but Im hoping some of you might have a good resource to share and that its okay to ask this here. Have any of you ever used a professional service to translate website text into Spanish? If so, who? Ive got a client who wants their site translated into Spanish by a professional. When I google it, I get lots of hits and lots of different pricing. Im just wondering if anyone has had any good experiences they could tell me about.
Thanks. |
| Sun 22 Aug | trollop |
http://www.sbs.com.au/language/ |
| Sun 22 Aug | Neo | Thanks Trollop. Did you use them? |
| Sun 22 Aug | JWA | My wife was born in Cuba, grew up in Havana, Madrid, and Buenos Aires and is a certified English-Spanish translator. She does some freelance translation for software and web use. If you'd like a quote send me an email.
--Josh |
| Sun 22 Aug | CF | I worked previously for Hillsborough County, Florida (www.hillsboroughcounty.org). We did a lot of research into methods of translating our site into Spanish. Though we ended up going with a automated service (WorldLingo - you can see the translations at the bottom of the page) we did do a significant amount of research on manual methods. If you email me, I'll be more than happy to provide you with a contact there who can get you more information than you would probably care to know.
Cory |
|
| Anti-anti-virus | Sun 22 Aug | Gwyn |
| I dont get the anti-virus movement.
Ive been connected for the net for 10 years this October. Never used AV software. Never ever had a virus. Had a couple of worms; but now live behind a router with NAT - no more worms. Router doesnt even have the firewall turned on because NAT seems to take care of it.
My last experience with AV software is that it caused many more problems than it solved. The number of strange problems Ive seen on peoples machines which were eventually solved by turning off the AV scanning... well, lots.
It works for me. I dont open messages from Anna Kournikova telling me that she loves me. I dont open attachments from someone I dont know without checking them out first (a. am I really expecting anything? b. is it executable?, c. look inside exe with notepad - usually some suspicious literals).
I recently helped a friend in the village out with her PC. New PC connected through an ADSL modem for 5 days. 43 viruses & worms according to Symantec website free virus scan.
Rebuilt the machine. Reconnected to the Net. Within 40 minutes the worms were back (this was spooky).
Downloaded (with the bandwidth the worm would let me have) latest Norton AV on trial. Eventually managed to download and eventually managed to run it (nasty things kept trying to close the window. I was watching cmd.exe keep getting kicked off in task manager which seemed to be followed by some odd named tasks (such as ms32cfg.exe)). Got it running. various viruses detected / removed. Eventually the AV software reckoned it was finished, fully scanned, nothing nasty going on... and yet still there was a pesky nasty in the system busy writing itself into the startup list as soon as I removed it and doing things in the background.
Anyway, the solution? Another rebuild and a proper ADSL router. Worth paying the money for I reckon
(I really dont understand how it got infected so damned quickly after rebuilding) |
| Sun 22 Aug | J. D. Trollinger | The one time I was infected with a nasty trojan (a keystroke logger/password stealer, as it turned out), three different AV programs failed to detect the trojan. I eventually removed it manually. At least, I _think_ I removed it. |
| Sun 22 Aug | Aussie Chick | I am with you Gwynn.
I don't use any AV protection.
I just back up regularly. If I somehow manage to contract a virus, then I will reformat. |
| Sun 22 Aug | Peter | Some of the worms/attacks are coming through RPC and open ports. The halflife of an uninfected windows machine with no updates or patches is about 20 minutes on the internet.
My advice is to get one of the update discs from MS, and the next time you wipe a drive, install the updates from the disc BEFORE connecting to the internet. Should cut infections down by a significant margin. |
| Sun 22 Aug | Jack of All | In the corporate world there are too many Lusers. You have to have anti-virus software because people will open anything and everything. |
|
| advertisement blocking with hosts entries | Sun 22 Aug | hoser |
| I think this was a topic a little bit ago, but even if it werent, I found this web sites hosts file entries quite useful for blocking advertising content:
http://www.topqualityfreeware.com/AdBlocking.htm
Scroll down to bottom. |
| Sun 22 Aug | Almost Anonymous | Firefox with the ad block extension is FAR superior than trying to block ads with hosts file entries. |
| Sun 22 Aug | Fred | ... and proxy filters like Privoxy are yet superior to ad blockers, as they let you rewrite HTML pages on the fly before passing them to the web browser :-) |
| Sun 22 Aug | J. D. Trollinger | I'm very happy with Proxomitron. It truly revolutionized my web-browsing experience.
http://www.proxomitron.info/ |
|
| How to view existing Cron jobs? | Sun 22 Aug | Petra |
| How can I view existing cron jobs?
This is bugging me as a server I hereited occationally does quirky things - searches in google did not lead to an answer.
Thanks,
Petra |
| Sun 22 Aug | mb | cat crontab ? |
| Sun 22 Aug | trollop | man crontab
then, depending on what you're wrestling, possibly
crontab -l
to list the table (and that's a lowercase L) |
|
| Creating an Outlook Like User Interface | Sun 22 Aug | Apex |
|
Is there a wizard on Microsoft Studio .NET which allows you to quickly put together a Oulook like UI ?
If not is there some code samples available somewhere on the internet ? |
| Sun 22 Aug | no name | Should it work with Exchange as well or you don't have that many requirements in one sentence? |
| Sun 22 Aug | Chris Altmann | The next version of VS.Net (VS.Net 2005 aka Whidbey) has such controls. There are betas (or the 'Express' version betas) available. The screenshot here: http://www.windowsforms.net/default.aspx?tabindex=4&tabid=60 shows a sample app that I've seen mentioned. I don't know if the code for that sample as available with the betas or elsewhere.
If you need it to run on the current VS.Net/Framework, there are myriad 3rd party controls that emulate the Office Look and Feel. |
| Sun 22 Aug | Oren | There most certainly is not. One of the most-desired features from Microsoft is to update MFC with a better UI toolkit. I had thought MFC 7 would get it, but they just added a RegEx class. Right now you have to write your own GUI extensions, or find samples in www.codeproject.com, or buy a 3rd-party toolkit.
Welcome to the we-must-reinvent-the-wheel-with-every-app club. Happy programming! |
| Sun 22 Aug | JWA | You might be interested in DotNetBar - http://www.devcomponents.com
--Josh |
| Sun 22 Aug | Tim Sullivan | You may want to look at the Developer Express components for .NET:
http://www.devexpress.com/?section=/Products/NET
XtraBars + XtraNavBar + XtraGrid should probably get you most of the way there.
Also: if you're using VS.NET and you're not using CodeRush, you're wasting time. :-) |
| Sun 22 Aug | Herbert Sitz | DevExpress also makes available a 'best practices' application framework that has a menu bar area at top of window, outlook bar to left, status bar at bottom of window, and main area where forms are loaded and unloaded as 'modules'.
In addition to the Bars, Grid, and NavBar controls, the best practices framework requires the Xtra Printing System.
http://www.devexpress.com/?section=/bestpractices/SAP-NET |
| Sun 22 Aug | Annoyed English major | If you had put a hyphen between "Outlook" and "like", I would have understood the subject line the _first_ time I read it (instead of the third). |
|
| SICP | Sun 22 Aug | Mathie |
| I just finished reading SICP for the second time, and wow what a great book. I think I was able to appreciate it more this time because I had a bit more background in math and computer science.
In that sense, it reminded me of Michael Spivaks Calculus: now that I have some Analysis under my belt I can look at it as a fantastic book about rigorous mathematics, but coming into it with no background I had to work _very_ hard to get anything out of it.
For those not familiar with SICP, in the course of 5 chapters you will:
- Write a symbolic algebra system
- Learn a number of different programming techniques (wherein you may realize that object-oriented programming is just one small tool in a huge toolkit)
- Learn and implement methods for concurrent programming
- Build a database system
- Write a garbage collected Scheme compiler
- Learn a bunch of other stuff like huffman encoding, graphics programming, etc.
I can name a few math books that evoke this same sense of greatness: eg. Hardys A Course of Pure Mathematics, the aforementioned Calculus by Spivak, Courants What is Mathematics?
But is there another computer science book that even comes close to SICP? |
| Sun 22 Aug | Ged Byrne | For those not familiar with SICP, the full name is 'Structure and Interpretation of Computer Programs.'
More details, and the full text, are available here: http://mitpress.mit.edu/sicp/ |
| Sun 22 Aug | alricb | I'm not a great programmer/read a whole lot on computer science, but when SICP is mentioned, you usually hear of the recently published Concepts, Techniques, and Models of Computer Programming, and of Russel & Norvig's book on AI
CTM: http://www.info.ucl.ac.be/people/PVR/book.html
Norvig & Russell:
http://aima.cs.berkeley.edu/ |
|
| Install XP in 5 hours | Sun 22 Aug | Canadian Bacon |
| http://diveintomark.org/archives/2003/08/04/xp
Is Windows XP that bad? Or is Mark Pilgrim just an idiot? |
| Sun 22 Aug | no name | For me, a normal install for WinXP w/ SP1 is about an hour, maybe a couple minutes more for patching. |
| Sun 22 Aug | Gern Blaansten | After reading the article, yes he is an idiot. However, it does take a while to install Winodws, even you if you are not an idiot. I've done several installations over the last couple of years and my experience with XP has been:
Actual installation: 25 minutes
Delete all the unnecessary crap and arrange things the way I like them: 30 - 45 minutes
Install drivers (printers, scanners, etc) and applications and tweak everything the way I like it: 2 hours
About 3 hours from start to finish. |
| Sun 22 Aug | no name | Read his list. Idiot. |
| Sun 22 Aug | mb | what, specifically, is idiotic about his list?
of course, the missing last step is to take an image of the system so next time this happens it's a straight restore. but that's just not the point of the article. |
| Sun 22 Aug | pastor of muppets | Installing Windows can be a pain, but there are ways to make it less painful. It's called 'Work smarter, not harder'.
How to install Windows in 10 minutes:
Copy your Windows CD to your hard drive, add a folder containing all your drivers and favorite applications, throw in a text file that contains the serial numbers for all your favorite applications and burn the whole mess to a bootable DVD.
Now when you install, you've got everything you need in one place. Once you get Windows installed and all tweaked out just the way you want, use Ghost (or other disk imaging program) to make a copy of your hard drive and save it to another drive (or another partition).
Next time you want to/need to re-install, just restore the Ghost image -- takes 10 minutes on my computer. |
| Sun 22 Aug | no name | It's idiotic because it's a fucking false list. What emacs has to do with XP? In this case 5 hrs is irrelevant. It took 5 hrs to setup all apps he need with all settings he need. It has nothing to do how many minutes xp setup needs.
That's why it's idiotic. |
| Sun 22 Aug | no name | Oh yeah... he's an idiot. I don't even agree with his basic assertion that XP has a "half life". I got my XP laptop in November 2001 and it still runs surprisingly well. The sercret? I keep it virus free and run a registry cleaning utility every 6 mo. My experience is probably unusually fortunate, but it shows that it isn't an inherent property of the system itself. Besides, anyone who ends an article with the expression "suck my left tit" doesn't exactly scream of competance. |
| Sun 22 Aug | Justin Johnson | I've experienced Windows half-life in all its forms, and yes, Windows does have a half-life, including XP; however, my XP half-life was 18 months, not 9.
His article highlights the reason that I've become a default user of computers. I reject almost all customization just to avoid massive re-customization every time I re-install or move to another computer. I've always thought it was the mark of a mature user that he doesn't have to get everything 'just so'. |
|
| Writting all the comments then writting the code | Sun 22 Aug | Apex |
|
When I program, I first write all the comments,
read the comments, make sure that the way the comments are structures is a perfect fit for what Im tryinng to achieve then I write the code.
Do you think its an effective way of working ?
If not, please explain me why |
| Sun 22 Aug | CF | The term you are looking for is pseudocode:
http://www.webopedia.com/TERM/P/pseudocode.html
and, like every other technique on the planet, if it is what gets you to write good code that you can maintain and solves the domain problem with the least amount of bugs, then you are doing just fine. Personally, I like an approach similar to it, but am starting to really look into Test-Driven Development, mainly because it is a fascinating approach to structuring things. |
| Sun 22 Aug | Thom Lawrence | Sounds to me like you're over-commenting. If you're commenting on the whole structure of your code and saying "do this, then do this, then do it again if it's yellow," then you're writing a specification, not commenting. |
| Sun 22 Aug | Apex | I did learn that trick after reading one of Steve Mc Connell Book
He call that PDL :
>> DDJ
DDJ : How is PDL different from pseudo-code?
SM: I use the term PDL pretty loosely in 'Code Complete.' There are people who would say that there needs to be a stricter use of that term, but the way I use it PDL is about the same as pseudo-code or about the same as structured English.
I do agree that at a low level this is taking a top down approach. Programmers who use the technique I describe --writing out what you want the routine to do in English, converting those statements to comments, and then filling out the code below each comment-- find that it has a lot of benefits. It produces, it makes the coding go very quickly, it makes the coding relatively free from errors, and it leaves comments in your code when you're done that you don't have to go back and put comments in later. They're already in there just by virtue of the way you went about writing the code in the first place.
So I think there are a lot of benefits. It's a good example of a technique that's actually very simple and somewhat deceptively so, in that it produces some really major benefits, considering what a simple practice it is.
<< Cut |
| Sun 22 Aug | Thom Lawrence | Hm, I suppose I've done that. I just got rid of the original comments afterwards. :) |
| Sun 22 Aug | Len Holgate (www.lenholgate.com) | I do that sometimes, but I always delete the comments once I've written the code. Either the code and the comments say the same thing or one of them is wrong; either way it's duplication.
If you cant understand the intention of the code without the comments then 95% of the time you just need to rewrite the code until you can and 5% of the time you need a nice block comment that explains the intent rather than the actual process.
YMMV. |
| Sun 22 Aug | bah_humbug | Sounds like Donald Knuth's Literate Programming to me.
Background information and an excellent tool at http://webpages.charter.net/edreamleo/front.html
I think it's a great concept provided it's not taken to excess |
| Sun 22 Aug | Synder |
I've done that and deleted the comments afterwords as well. Upon reflection, I think I am going to stop deleteing the comments. I am going to spend a few minutes putting them in sync. Often, I write my first idea for an algorithm in comments. Then write the algorithm in code, then re-code, then test, then re-code, then delete the comment. *sigh* |
|
| The Practice of Programming BOOK - Kernighan/Pike | Sun 22 Aug | Apex |
|
Does this book is still worth reading today :
http://www.amazon.com/exec/obidos/ASIN/020161586X/qid=1093196256/sr=ka-1/ref=pd_ka_1/002-6720471-5107238
Other question, is there a FAQ or thread here about the MUST READ BOOK LIST teaching how to design better more reliable code ?
Ive already been advised the Pragamatic programmer. |
| Sun 22 Aug | anon | Look into Code Complete 2 for a comprehensive and sound treatment of software construction. Ten years from now you will still learn things from this book. |
| Sun 22 Aug | Apex | Code Complete 2 is already on my Amazon.com Wish List ;-) |
| Sun 22 Aug | no name | Code Incomplete |
| Sun 22 Aug | another recommendation | I'd add 'Object Oriented Software Construction' to any such list:
http:\\www.amazon.com\exec\obidos\asin\0136290493 |
| Sun 22 Aug | Dennis Atkins | > Is there a FAQ
Yes, Joel has a list of books.
> or thread here about the MUST READ BOOK LIST teaching how to design better more reliable code ?
Yes, there are over 38 threads that have discussed best books for programming. There is a new service from a company named google that will actually enable you to SEARCH for these threads effortlessly - no more manual searching one message at a time. |
| Sun 22 Aug | Dennis Atkins | And yes, The Practice of Programming is a classic that is relevant and worth reading. |
| Sun 22 Aug | wish list | A while ago i started adding books refrenced on threads here to an Amazon wish list. Look up the wish list for 'jos-amazon'. Just don't buy books for that fictional account!
A number of them match Joel's list. I haven't kept it up to date at all. If anyone wants, they can add to it too, though i'll have to figure out what the password is. |
|
| Looking for JOS reader in central NJ | Sun 22 Aug | bankstrong |
| Im in a bit of a pickle. Ive been programming at night for a while now, hoping to eventually find customers, partners, money, and all of the rest of the necessary parts of running a business.
A couple of weeks ago, I quit my day job even though I had not yet landed a customer. Now, I realize that I still dont have anywhere near enough time. Once that I started calling around on business seriously, I never seem to have any time for programming. And Im on the hook for making a product N-O-W.
The business idea behind the software seems to have legs. It can help 1500 companies across the country make millions more per year. Ive got cant-believe-my-eyes-amazing people lined up for sales, finance, and client services. Some good established partners that sell complementary software in the same market are interested in working together. And some good links to getting VC money.
Ive got a third meeting with a multi-billion beta client (paying, if they sign on) on Thursday (this time, an online demo) and an extremely tight schedule for both the beta product and launch date. On the other hand, Ive speced out the UI pretty well and was blowing through programming before business started taking precedence.
Im looking for someone who is proficient in VB6, cares a lot about good user interface, and Gets Things Done. If you are a regular JOS reader, youve already impressed me as being concerned with many of the same issues that I am. And chances are, youre far more technically proficient than I am (Im a business guy with some software knowledge). It wouldnt hurt if you know something about statistics and linear programming, but Im far more interested in a flexible mind.
Finally, Im looking for someone who not only works hard, but has a great personality. So far, the others involved in this company are literally people that I would trust to raise my daughters if I died in a car crash. I dont expect the same level of trust with a stranger, but I do expect complete integrity, focus on the customer, as well as teamwork with sales, customer support, testing, etc.
I need someone to crank away immediately and get the product to launch. You will interface with an external testing firm that Ive worked with in the past. After launch, the position becomes more of a CTO role - converting from technical development run by a conscientious but overwhelmed founder into an organization that can deal with customer requests, features cut out of version 1, and planned product extensions. I aim to treat developers the same way that Joel does - private offices, good development practices, etc.
Minuses:
- business plan has had so many holes knocked into by reality that I wont share it until it is reworked.
- everything is currently being funded out of my not-too-deep pockets.
- Some important software practices recommended by JoS are not being implemented yet.
Interested? Send me a resume and contact info.
Sorry if this is an inappropriate use of this forum - as I said, Im in a crunch. |
| Sun 22 Aug | muppet | Is this a joke? |
| Sun 22 Aug | Ethan Herdrick | Sounds interesting. Best of luck. |
| Sun 22 Aug | bankstrong | Muppet -
This isn't a joke - I have a real need and I'm hopeful that I might get lucky. There are a lot of high-quality posters here and anything has to be better than getting flooded by Dice resumes.
Mike |
| Sun 22 Aug | hoser | Good luck to you. This is the kind of stuff I don't have the cajones for. I hope you make it to the top of your pile!
BTW: I would expect that a new idea like yours would be severely behind the Joel best practices curve. |
| Sun 22 Aug | patrick | i don't get why you would n't do it right from the beginning? this may be your only chance. before you know it you will have customers demanding things.
a project is good, until you have clients. |
| Sun 22 Aug | bankstrong | Hoser -
'I would expect that a new idea like yours would be severely behind the Joel best practices curve. '
Your guess is correct. That isn't by design. I would like to find someone that will gradually move to best practices once they get a chance to take a deep breath.
Patrick -
'a project is good, until you have clients. '
From a purely technology pov, sure. From my perspective, a project is only good once that someone is using (and paying for) it.
Mike |
|
| Finding Time to read & indentifying what's worth . | Sun 22 Aug | Apex |
|
There are so many books release every week (on all subjects)
How do you keep up with the information overload ?
How do you make sure you only puchase the books which are worth reading ? (ie: checking the customer reviews on Amazon.com ?)
How many books do you read per month ?
I find that Joel read an anwful lots, I wonder where he finds out the new books which are worth reading |
| Sun 22 Aug | www.marktaw.com | 'Worth' is a very subjective measurement. I liked a lot of books that you would probably hate, and v.v.
Spend more time in book stores. :-) |
| Sun 22 Aug | kc |
Before I got married, I averaged about 3 books a month. Since then, I average about 2 books a month, so I'm a bit more selective.
I make a point of alternating between technical, fiction, religion, political, etc.
I also keep a running list of books that I'd like to read and if I see something interesting, I add it to the list, I rarely pick it up immediately. Therefore, I can always have a running list of my interests and determine what's relevant/important and what my priorities happen to be.
My 0.02. |
| Sun 22 Aug | sgf | Well, I recently broke my ankle. Got more reading done for about 6 weeks.
I don't recommend it though, as there are disadvantages too. |
| Sun 22 Aug | fool for python | I never find time to read. I make time to read. Put it first on your schedule and fill in around it.
I keep ~100 items in my Amazon Saved Items list and add/purge to/from it several times a week. When I have completed all but one or two of my current reading list, I purchase a few more books (and always a CD - mostly jazz).
I don't purchase exclusively from Amazon. I use their list and read the reviews (with plenty of salt grains). I put Joel's current recomendation, 'The Curious Incident...', in my Saved Items list and then found the paperback on the shelf ($12) during my Saturday morning book store rounds and purchased it. Purge.
I purchased the book, not just on Joel's recomendation but after reading many reviews.
I had considered Thomas Malone's 'The Future of Work' but it never bubbled to the shopping cart and I eventually purged it from my list. After some recent blogging activity about the book, it went directly to the shopping cart for my latest purchase.
The short list changes almost daily.
Anyhow, that's what I do. |
| Sun 22 Aug | www.marktaw.com | I buy what I'm in the mood for, otherwise my mood shifts and I never get around to reading the book.
Only what I want to read now. Otherwise I end up with a pile of books I haven't read and don't want to read. |
| Sun 22 Aug | Apex | Do you keep all the books your purchase or do you keep everything ?
Or simply just sell the more technical oriented (ADO 2.0) |
| Sun 22 Aug | CF | 'Do you keep all the books your purchase or do you keep everything ?'
I recently got married and moved to North Carolina. My wife has been through one masters degree and working on a second, and I am a geek, and it s amazing the number of books we have. I keep meaning to donate the technical ones, but every time I go to I end up needing it. For example, my current position happens to involve a mess of a system written in ASP 3.0, a set of books I was ready to donate.
As far as what I read, we go to the local library about once every three weeks and check out a mess of books. My current selection has some computer history, animal beahviorism, finance, and photography. I just don't have time to keep up with the new books, and am finally getting to a point in my life where I don't feel the need to stay on the bleeding edge of every technology subject.
I think another poster hit it right, if I tried to find time I never could. But I make time at various points throughout the day, and that's how I get it done. Bathroom, few minutes before bed, etc. |
| Sun 22 Aug | www.marktaw.com | 'computer history, animal beahviorism, finance, and photography'
That sounds about like the kind of spectrum I typically read.
I live in NYC so reading was usually done on the train on the way to work. One of the benefits of not driving, but if I drove you can be sure I'd listen to books on tape in additino to music.
I eat way too much fiber to actually spend a significant amount of time in the bathroom. I was thinking of getting one of those readers-digest-esque bathroom readers though. 1 page summaries and interesting factoids. I think Zig Ziglar is a big promonent of putting a dictionary in the bathroom. I guess one of those vocabulary builders would be more focused. |
| Sun 22 Aug | no name | Reading in the bathroom can be a crappy experience. |
| Sun 22 Aug | Peter | I commute via public transport, so I get about 1-3 hours worth of reading per day, depending on how awake I am. |
|
| Not-so-hypothetical a situation | Sun 22 Aug | somewhat conflicted |
| Lets say you work on embedded systems for network infrastructure. Its mostly maintenance of existing code where its not unusual to debug a stack dump or have to break out a logic analyzer.
You also freelance in creating DB/web apps and have just been offered a full time job doing it in the gaming industry. The pay might be a little less, but considering that its in an industry that youve always loved and follow very closely, you think you could be happier there.
How much would you miss the low level, bits and bytes of real time systems programming vs. web apps and database stuff? Is there a difference in the credibility of being a software engineer instead of a web developer? |
| Sun 22 Aug | Sid | I tried going from the low level stuff to web apps/database programming, and I absolutely hated it with a passion. I really don't want to do that again. I'd consider a career change before I did so, unless the job paid substantially more than I could get elsewhere.. |
| Sun 22 Aug | matt | I've done some low-level games stuff before and am now doing web development. Yeah it's not exactly gripping, but the work's relatively easy to find. And what's more you can outperform all the webdev monkeys quite easily in terms of time to complete stuff, if you use your hacker smarts to build good high-level / modular tools for the job, and abstract away any boring parts of the job that start to get on your tits. You'll find you can put together a decent custom CMS and database interface in a few hours once you have a decent codebase to build from. Still dull but hey.
NB: I intend to do much more exciting music tech / AI-related things once I've finished a masters :) |
|
| Am I too old to be a video game programmer ? | Sun 22 Aug | Juergen Zeinier |
| I was reading this thread :
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=134347&ixReplies=29
Im 35, for the last past 10 years I was working on ERPs,
doing customizations and developing add-on modules.
I would like to work in the video game industry as a developer.
Do you think its too late for me ? due to my (advanced) age, inexperience in developing video games.
After browsing the Net a lot of peole still stays that the video game industry is full of people with big egos and still very immature, this scare me a little bit to make the jump ... |
| Sun 22 Aug | Juergen Zeinier |
Ho yes, one last question :
If you're writting video games could you give somes hints & advices on the skillset I should learn (AI, 3D, maths) |
| Sun 22 Aug | . | Your age has nothing to do with it. These days there are many different types of programmers working on video games. Not all of them need 3D and maths expertise. You would definitely need to know C though. |
| Sun 22 Aug | Sassy | Are you prepared to potentially work 80-hour weeks? |
| Sun 22 Aug | Anonx | What kind of game programming do you want to do? I dont know much about the high end FPS and graphics but if you want to work on some independent game projects take a look at this link below.
http://www.dexterity.com/articles/ |
| Sun 22 Aug | www.marktaw.com | http://www.igf.com/
look at these games. Not everything is Doom or Tomb Raider. |
| Sun 22 Aug | Sid | At one of the programming contests I was in they had a guy from 3DO explaining how working in the game industry was. He showed us pictures of himself sleeping on the couch in his office, and basically said that he didn't have much of a life outside of work, and that few people did. Regarding salaries, he said that a _senior_ developer could hope to make maybe $100k or thereabouts. In California. For spending all your time at work.
SCREW THAT! |
| Sun 22 Aug | - | Didn't the guys who made "Neverwinter Nights" do so in their spare time and then sold it to some game company? |
| Sun 22 Aug | www.marktaw.com | Isn't NeverWinter Nights basically an MMORPG kind of thing? I don't know how flashy the graphics where 'back in the day' but it probably could've been hobby thing.
This is probably one of the most involved video games out there, but it has zero graphics:
http://www.adom.de/
It's a rogue-like game that's been developed by one guy pretty constantly for over a decade. Though some poor choices it seems he was never really able to make it profitable for himself. This kind of game has pretty much fallen out of favor and I doubt he'll be able to sell it or make any money on it now.
For a programmer I suspect graphics would be the hardest part of a game to work on, and any 3-dimensional mechanics. And once you get into that area, you have to think about building the world, which becomes pretty involved.
So I guess the answer is: What kind of video game programmer do you want to be? It's probably not as glamorous as you think, you're still working for someone else on somene else's projects and fighting tight deadlines. |
| Sun 22 Aug | anon | Neverwinter Nights has an online multiplayer mode, but it's not a MMORPG. It allows for a maximum of only 64 players and doesn't take place in a persistent world. |
| Sun 22 Aug | anon | It wasn't made by a bunch of people in their spare time either. The developers behind this game are every bit as professionals as you are. |
| Sun 22 Aug | TJ Haeser | The problem is that every aspiring programmer wants to work on games, and not on database related monkey work. As a result, there's lots and lots of game programmers to choose from, which means they can be abused and underpaid because there will never be a shortage on the market. |
| Sun 22 Aug | Bilge Rat | No, you are not too old. But you have a hell of a lot of catching up to do... |
|
| Open source usability is a *technical* problem... | Sun 22 Aug | Otto Octavius |
... that we can solve on our own.
So says this clue-deprived dude:
http://programming.newsforge.com/programming/04/07/07/1640244.shtml?tid=25&tid=26&tid=2&tid=31
Heres an example: Konqueror, KDEs file and web browser, has a menu entry called smbUmount. I dont need a laboratory with video gear to figure out that this is nearly impossible for non-hacker users to understand.
All it takes is to think once about each little item like smbUmount. If the changes to this and other items that are obviously not user-friendly are made, most of our usability work will be done. We dont need usability reports. We need each developer to devote as little as one single thought to usability.
He makes it sound as if usability is a one size fits all thing. That all projects are interchangeable. If it works for one, it will work for the other.
Is it any wonder open source products have such low usability? |
| Sun 22 Aug | Thom Lawrence | Good treatment of this at OK/Cancel:
http://www.ok-cancel.com/archives/post/2004/07/oss_sos_how_hci_killed_open_source.html |
| Sun 22 Aug | MT Heart | Usability isn't something that you "spray on" after a project is completed - it must be very carefully considered right from the beginning. If the project meets all the functional requirements but users hate the thing, it's useless. |
| Sun 22 Aug | trollop | write the help file first.
then the spec.
then the code. |
| Sun 22 Aug | Andres | 'We need each developer to devote as little as one single thought to usability.'
Which is the complete opposite of saying 'one size fits all'.
Why don't you try to criticise poeple for what they say instead of whatever you want your enemies to say? |
| Sun 22 Aug | kc |
It's these obtuse menu options that tick me off more than anything... they are *BY FAR* the easiest things to change.
If the option said 'Disconnect Network Share (smbUmount)', it would be useful for everyone.
Arg. |
| Sun 22 Aug | Thom Lawrence | Apart from people who don't know what a 'Network Share' is, and what disconnecting the one called 'smbMount' would achieve. :) |
|
| Conflict between Norton Antivirus And SP2 | Sun 22 Aug | JDA |
| I have norton antivirus 2003, and it happens to be conflicting with the latest SP2.
http://service1.symantec.com/SUPPORT/sharedtech.nsf/docid/2004070814522613?OpenDocument&tpre=reg_eu&csm=no&src=con_web_eu
Symantec has fixed this problem, but you can only get it via liveupdate and it seems to be enabled only for the 2004 versions. Another low tactic of the growing arrogance of Symantec to get users to upgrade.
Right now Im trying to get hold of the wmi file, which users on forums have claimed it works for 2003 and 2002 versions.
http://www.neowin.net/forum/index.php?showtopic=202998
Does anyone know where I can get a manual download of this file?.
I know I can get it from here, but the file comes out corrupted. Although it could be my pc, as everyone is reporting success with the download
http://www.neowin.net/staff/RadishTM/Norton_WMI_Update.rar |
| Sun 22 Aug | Angry Al | I'm having the same problem with my norton 2003, looks like microsoft and symantec conspired on this one. Whatever the case, I need that patch,without having to upgrade to 2004. |
| Sun 22 Aug | We shall get what we paid for | I hope they solve this one, because all our Norton AV licenses are valid until December 2004. If they do not provide a patch for NAV 2003, then it is adios NAV. |
| Sun 22 Aug | Brad Wilson | AVG is high quality and free... :) |
| Sun 22 Aug | www.marktaw.com | I like AVG too. |
|
| Interviewing at Microsoft | Sat 21 Aug | Electro |
| I found this web page about interviewing at Microsoft
http://www.sellsbrothers.com/fun/msiview/#Some_of_the_Interview_Process_Filmed
I found something there interesting:
--
MS rarely asks logic/riddle questions anymore. Theyre not a good indicator of a good employee.
--
They dont? Personally, Im very happy. What do others have to say about this? (You too, Joel!) |
| Sat 21 Aug | ronk! | They ask coding problems for their interviews now. I interviewed there last December. 2 days, two jobs, 13 different interviewers 13 different codng questions.
It was pretty grueling. |
| Sat 21 Aug | muppet | Logical/riddle questions are essentially hit or miss. Just because a potential employee can't determine how to get 3 ducks, a goose, and a coyote across the river in a canoe in only three trips doesn't mean they don't understand the intricacies of .NET. I much prefer to look at the interviewee's past accomplishments and evaluate their personality to see how they will fit into the organization. |
| Sat 21 Aug | muppet | At some point in time, somebody decided that logic/riddle questions would help them identify exceptionally clever people. And so they became all the rage.
Finally, slowly, they are beginning to realize that this method isn't all that it's cracked up to be. |
| Sat 21 Aug | SW | I get the impression that every interview is different. It depends on who you happen to interview with. I interviewed last fall and had a good mix of questions. I had a 3 of the logic riddle type problems, and a bunch of the more typical questions. Only two coding questions.
Good luck in the interview, and make sure you get lots of sleep...I was there for 6 hours straight. Not only was it a long day, it was mentally taxing. I went back to the hotel room and just had to sit and stare for a while before I could even order room service to eat. |
| Sat 21 Aug | mackinac | So you guys that interviewed, did you get a job offer? And what did it take to get an interview? |
| Sun 22 Aug | Bad Interview in Germany | I had an interview recently with a company that obviously had read about the old Microsoft approach. They even finished with 'How are M&M's made?' I was stunned - didn't they realise that this is a well-known interview question from Microsoft, and that many candidates knew it? It seemed to me all that was being tested was whether I had read about this question already.
As I left the interview I decided I was not interested in working for them.
I was interviewing for a coding position, and the only coding question was a riddle. I found a solution easily so they asked for a solution using a constant memory. The answer was definitely an Aha! solution - once you heard it it was obvious, otherwise it was damn tough. |
|
| How the Internet is different from Real Life | Sat 21 Aug | Ged Byrne |
| http://www.bsd-unix.net/seitz/funny/RvB_NYC2.mov
Amusing. Not entirely unlike this board. |
| Sat 21 Aug | Master of the Obvious | Stating the obvious is not humor. Wearing stupid costumes while stating the obvious does not make it funny. |
| Sat 21 Aug | Ged Byrne | It doesn't have to be funny, I just have to want it to be funny. That's how it works. |
| Sat 21 Aug | Sassy | marginally humourous, sorta, but not really. |
| Sat 21 Aug | Alex | great stuff! |
| Sat 21 Aug | dover | It's a ripoff of Dave Chapelle's skit.. and you should have mentioned that it is that lame red vs. blue series. |
| Sat 21 Aug | ronk! | I thought it funny. Not ROLFLMOA, but funny. |
| Sat 21 Aug | Ged Byrne | I had never heard of the Red vs Blue series before. I've just spent some time going through the archives and splitting my sides.
It's a lot better than that Final Fantasy film was. |
| Sat 21 Aug | Peter | >It doesn't have to be funny, I just have to want it to be funny. That's how it works.
LMAO. I love this one. I laugh so hard I bust a gut.
If you don't like it, well, that's your opinion and I respect it. |
| Sat 21 Aug | Master of the Obvious | 1994 called. They want their usenet joke back. |
| Sun 22 Aug | Ged Byrne | I suppose there isn't anything new in there.
The reason I posted it here was because every time that guy runs into the background and shouts something abusive, I thought of Muppet. |
| Sun 22 Aug | nonUniq | I thought it was funny, especially the spoof of internet political discussions...spot on. |
| Sun 22 Aug | random_num | Here's a video from the Red Vs. Blue guys that discusses this topic: http://files.redvsblue.com/NYC2/RvB_NYC2.mov . |
|
| How to verify a company's claim of being No.1? | Sat 21 Aug | Skeptical Sam |
| Can someone please enlighten me about the claim made at this site..
http://www.wsicorporate.com/profile.asp
ranked the #1 Internet Services Business in the world and the 4th fastest-growing International Franchise
What exact criteria exists to verify that such a company is number one?. Where would I go to verify such a claim?.
Its not just this claim thats raising eyebrows, but other things too. Has anyone ever heard of this company if it happens to be Number one!? |
| Sat 21 Aug | John | I'm sure they're ranked by the same Entity that gives out "awards" to all the "award-winning" sites. |
| Sat 21 Aug | www.marktaw.com | Um. Anyone can rate them #1, including a compay they create that rates internet services.
Why don't you ask them what their source is? |
| Sat 21 Aug | www.marktaw.com | In other words without the 'by' the claim could be bogus, and actually makes them look worse.
'Ranked #1 by The Wall Street Journal' would carry much more weight than an unsubstantiated 'Ranked #1.' |
| Sat 21 Aug | no name | I remember when our company once bought a title like this. |
| Sat 21 Aug | Skeptical Sam | amazing where this wsi pops up..
http://www.finance-onthenet.co.uk/finance/internet/making_money/making_money_scam.html |
| Sat 21 Aug | Hank | I am currently selling the title for "#1 Internet Financial Web Site" for US $20,000. Please contact me if your company is interested. |
| Sat 21 Aug | www.marktaw.com | From WSI's homepage:
'WSI has cracked the Web Genome learn more about WSI's executive Modular Development Technology!'
What does that even mean??????? Did they just use
http://www.dack.com/web/bullshit.html ?? |
| Sat 21 Aug | Fluff | Or check the CEO's bio at www.maestrocms.com/About_us/Management.aspx |
| Sat 21 Aug | Ce que nous devons à la Grèce antique | How can you dare selling #1 in financial services. Our company holds that position since ages ago. |
| Sat 21 Aug | Sassy | my company once paid to have a "study" done which stated this. |
| Sun 22 Aug | pastor of muppets | I have a t-shirt which says I am #1.
end of debate. |
| Sun 22 Aug | Matthew Lock | You look good in that tshirt too!
http://www.ilbaluardo.com/Cover/Audio/F%20-%20G%20-%20H/FATBOY%20SLIM%20-%20You've%20come%20a%20long%20way%20baby%20-%20Front.jpg |
| Sun 22 Aug | Matthew Lock | Whoops, try this link: http://tinyurl.com/2o6ks |
| Sun 22 Aug | hoser | Awesome. |
|
| MS Office oddity; is this progress? | Sat 21 Aug | Practical geezer |
| I was just working on a machine with Office 2003 and was looking for some option to change.
I was surprised to find that the options dialog does not have a help button, nor does it respond to right clicking a subject. F1 brought me some sort of help window, but the subject was merely the options dialog, not the option I was on and not even the active tab.
Anybody have a thought on why we should consider this progress?
And while I am at it, can anyone explain why Office insists on saving to disk when I close my drawing? And then doesnt save anything? The drawing is an embedded ms word figure. I never had to save anything explicitly in office 2000.
This is a fresh install on a new PC. And I cant seem to find anything about it on Google. |
| Sat 21 Aug | unhappy camper | I've noticed this trend of user interfaces getting worse with each update in other softwares as well. It's not just MS...
Also the nasty trend of useful features being removed during a apparent rewrite, only to be restored 2 or 3 versions down the road for an upgrade fee... |
| Sat 21 Aug | Art Vandelay | I have seen a pattern in many programs over the years.
Version X is quite good but has a few nasty bugs. Version Y fixes the bugs but also eliminates or significantly changes many of the features that I had come to depend on in Version X. |
| Sat 21 Aug | muppet | It's an axiom of programming that after ten years of development software products reach their apex of usability. MS Office has been around for more than 10 years, so expect each successive iteration to be less and less useful. |
| Sat 21 Aug | muppet | it's getting really old, now. Why not, you know, get your own name? |
| Sat 21 Aug | Albert D. Kallal | Gee, I never noticed this change!
If you hit the small “?” mark in the upper right, you now get a help screen. (before. you could then click on what option…and get help).
To be fair, the help screen that does come up has a very good explain of each individual options…but it certainly is a change in behavior (this change is due to building a help system that can work “on-line” or “off line”).
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Sat 21 Aug | Steve S | Practical Geezer,
'the subject was merely the options dialog, not the option I was on and not even the active tab. Anybody have a thought on why we should consider this progress?'
We tend to make the help less context sensitive over time in our products too... All the context sensitve stuff is a bear to QA, and is an extemely tight coupling between the engineering, QA, and documentation groups... |
| Sat 21 Aug | Mr.Analogy (ISV owner) | 'All the context sensitve stuff is a bear to QA, and is an extemely tight coupling between the engineering, QA, and documentation groups... '
Same here.
We used to have context sensitive help. But nobody reads the help file. (We had a mention of winning a free prize in the help file . Only one customer out of thousands has EVER mentioned it).
Now, instead, we put that time into making the UI clear enough so that no one needs the help file. WE still have help, but we don't worry about making it 'super'. Its' there more for reference.
(We include a toll free tech support line if anyone has any problems. This creates a feedback loop: if our UI isn't clear, we find out about it quickly. Few people call with useability questions).
It's just cost/benefit analysis. A super help file is the wrong solution to the manual. it's like Ford making crappy cars and then having steller service centers. If they just make steller cars that don't need service centers (like Honda) it's cheaper and customers are happier. |
| Sun 22 Aug | trollop | Thank you all - this has cleared my much muddled thinking on help, particularly the points about QAing context-sensitive help. Our own c/s help was a lulu to implement, but QA was pretty easy (click on >, click on button, read) as it's pretty small compared with, well, anything.
Now I'm told no-one is going to read it!
However - the discipline of writing a help file forced the reevaluation of some of our interface - if it could not be explained in a straightforward fashion in help, there was something cockeyed in the way we were going about the application. (Writing the help alongside the spec may save a lot of abortive code).
I agree systems should work without needing to provide distractions from the task at hand like help files. Nonetheless, magazine reviewers like to see them there. |
|
| comment.it service | Sat 21 Aug | Zepp |
| Will it be nice to have service, which allows add comments to any web page?
For example you use Internet Explorer when you are at some web page, you can see comments of others to that page at sidebar and add yours? |
| Sat 21 Aug | . | Quite a good idea, but where to get that kind of storage and server power? It is well known that comments tend to accumulate and exceed the content until it suffocates under their weight - it's a law of nature... and we are not talking about a pamphlet here, but the whole Net! |
| Sat 21 Aug | Slough Bloke | Have a look at http://www.alexa.com - Alexa has been around for ages and their toolbar (yes, someone else wanting to stick their toolbar in your browser) provides info on websites including - apparently - other people's reviews.
I've never tried it though... |
| Sat 21 Aug | www.marktaw.com | I saw something like this a couple of years ago. I don't remember where though. |
| Sat 21 Aug | Jacob | I always thought it would be useful to have some sort of sidebar which shows you independent information about a company when you're at their web site. For example, it could collect information from various agencies about the company's environmental record, hiring practices, etc. (assuming there are reputable agncies that provide these kinds of ratings).
User comments might be a bit much because, as other people have noted, there would be too many of them. But some ratings from known, trusted organizations would be helpful in deciding whether to do business with someone. |
| Sat 21 Aug | Kent | Wasn't there some sort of Post-it note type service a few years ago ?
I think you installed something on your PC and left comments so that other people with the same software would see your post it note comment. |
| Sat 21 Aug | www.marktaw.com | A slashdot style version of this could be good. This way you get the notes the most people voted on.
But it would break on too many dynamically generated pages. Anyone notice how Amazon's homepage has no Google rank? It would even break on this forum (not the homepage, but in the discussion threads).
I guess you could do it on the domain level.
But I swear I saw this very same idea a few years ago. Anyway, it would require a significant marketing campaign in order to gain enough of a share to be of any use.
Aren't there other services that let you notate a website and share it with your friends? Like that thingy Google just bought, but for websites, not photos. |
| Sat 21 Aug | mb | it was around about 4 years ago, can't remember the name of the main company offering the service was Third Voice.
even microsoft had a variant on it (smart tags in the html could have been used in a similar way)
lots of companies raised a big stink about it.
now what remains is adware.
http://www.wired.com/news/business/0,1367,42803,00.html |
| Sat 21 Aug | mb | (this board need edit functionality... though i'm sure you can figure out the meaning and history of the nonsense sentence above...) |
| Sun 22 Aug | www.marktaw.com | Wow, sounds like I was right on the money about the marketshare thing. I guess these guys don't understand marketing in the internet age:
Use the software to do really controversial stuff and wait for slashdot to pick you up. |
|
| Web sites for buying technical books | Sat 21 Aug | Not God's gift to women, I'm more of a consolation prize |
| Anyone know of any good Web sites for buying technical books? Only one I can think of is www.bookpool.com. |
| Sat 21 Aug | Dennis Atkins | That's a nice guerilla ad.
You may also want to try these lesser known sites:
amazon.com
bn.com
ebay.com |
| Sat 21 Aug | yet another anon | addall.com is great ( http://www.addall.com ).
It's not a bookstore - it searches all the major ones online and returns the price, availability, shipping, condition (new/used), and a link directly to the book's web page at each site. |
| Sat 21 Aug | Not God's gift to women, I'm more of a consolation prize | No guerilla ad, Dennis, although in retrospect, I should've thought of how my original post would be perceived by the more cynical of posters. |
| Sat 21 Aug | Not God's gift to women, I'm more of a consolation prize | And when I wrote "good Web sites", I meant ones that offered lower prices for technical books than amazon.com, bn.com, etc. |
| Sat 21 Aug | <sigh/> | It may not have been intentional, but it was a plug.
I am suspect. Why did you feel it necessary to mention a site at all? Especially in light of the fact that the site mentioned is (ahem) less than well known. Including the link doesn't increase the probative value or clarity of the question. I doesn't need to be cynical to arrive at conclusion the you have some involvement with aforementioned site.
(See, you can write three or four sentences, ask questions, withouth plugging a URL). |
| Sat 21 Aug | <sigh/> | I apparently can't proofread either ... big sigh. |
| Sat 21 Aug | Saturday the 2st | The Idiot Clown Geek Police Still Ride!
Amazing. Someone asks an innocuous question about book sites, and some moron actually posts a message telling him not mention web sites.
A suggestion for the the Idiot Clowns: Why not try North Korea for a while? There's a country with no marketing and very few web sites that discuss books (except long dissertations on Juche).
Amazing. |
| Sat 21 Aug | Kent | Overstock.com ?
http://www.overstock.com/cgi-bin/d2.cgi?PAGE=CATLIST&PRO_SUB_CAT=735&PRO_SSUB_CAT=2169 |
| Sat 21 Aug | mackinac | I have purchased quite a few books from bookpool.com. Their service has been good and they usually have the best price. OTOH, their selection is quite limited. I often buy elsewhere because they are out of stock or just don't list the book I am looking for.
I had not heard of addall.com before, so decided to give it a try. A search for the book 'Numerical Recipes in C' produced some interesting results.
Bookpool showed the best price for a new book. Strangely, addall.com did not list either new books at amazon.com nor bn.com. Going directly to their web sites shows that the amazon.com price is only $4 more than bookpool.com. There was only one other store listed by addall.com with a price less than amazon.com. Considering that amazon.com has a free shipping option, the final price may end up being second only to bookpool.com. bn.com was charging full list price for the book.
A few years ago amazon.com didn't provide significant discounts on technical books, but my impression is that they have gotten more agressive about competing in that area and their prices are only slightly higher than bookpool.com.
If you really want to save a few more dollars there are used book sellers. Be careful. Following the links provided by addall.com I found some dealers selling used books for more than the discounted new price. |
| Sat 21 Aug | David Jones | Yet another is http://www.anybook4less.com/
Bonus for non-Americans: it factors in exchange and shipping.
I'm in Canada, and the best price on one book I wanted was from the UK of all things. More recently, however, amazon.ca is blowing the competition away. |
| Sat 21 Aug | anon | +++I am suspect. Why did you feel it necessary to mention a site at all? +++
Because he's not an idiot like you. |
| Sat 21 Aug | <sigh/> | I see the intelligencia have arrived. |
| Sat 21 Aug | www.marktaw.com | Besides a good geurilla ad would be:
Does anyone know of a good place to buy technical books?
- Some guy with a question
Yes, try my site.
- Some guy with an answer
Don't you guys know anything about geurilla advertising?
And to answer the OP these are some stores without a technical book focus:
half.com (ebay)
powells.com
abebooks.com
http://www.google.com/search?q=technical+books
-> bookpool.com
-> opamp.com
-> lindsaybks.com
-> sdtb.com
-> qtb.com
-> www.technical.powells.portland.or.us (????)
-> etc. |
| Sat 21 Aug | kc |
Bookpool is by far the best. I've ordered from them 3-4 times over the past 15 months and they've always had a great selection and good shipping.
I'm not affiliated with them or any other book seller in any way. |
| Sat 21 Aug | one meeeellion dollars! | And Amazon doesn't have a good selection and shipping? |
| Sat 21 Aug | Dot For This One | I like Powell's - their selection is almost as vast as Amazon's and, well, they aren't Amazon.
The advertise in magazines I like so that's why I give them my patronage. |
| Sat 21 Aug | yet another anon | mackinac - that's a good catch on Addall not listing Amazon's new books. I never noticed that before.
One other note on addall - it's great for academic texts. Some of the booksellers they search specialize in school textbooks (e.,g. eCampus) and you can save $10 here or there.
The other thing to watch out for is the low priced new texts. a lot of them turn out to be international printings - thinner paper and cheaper (smelly) ink, so read the fine print.
+1 for Powell's. I buy used books from them all the time. Of course, I have the advantage that I live near the brick and mortar store. So I check the prices online, then go to the store to inspect the condition before buying. But, most of the used books are in good condition, and if they're not they have a deeper discount. |
| Sun 22 Aug | www.marktaw.com | I passed through Portland, and I definately want to go back. It's supposed to be a cool place... huge park, interesting people, bad weather, etc.
Powells is the world's largest bookstore (it's the whole block). I'm not nearly as enamoured with book stores as I once was, but if I was in Portland I'd definately check it out 'just becuase.' |
| Sun 22 Aug | fool for python | Powell's rules. The tech bookstore is down the street a block or two from the main store and is by far my favorite tech bookstore.
And Jake's is a short walk. And the brewery's are nearby....
CTL+L www.orbitz.com |
| Sun 22 Aug | www.marktaw.com | Well... I'd probably make a tour of the whole western seaboard if I were to go to Portland. There's a lot of places I want to see.. San Fran, Taos, Portland, maybe parts of Montana again, maybe Boulder again. Life's too short to take a vacation to just one city. |
|
| Client education - finding a way to charge for it | Fri 20 Aug | Neo |
| I constantly find myself in a position of having to educate my clients. I often spend a great deal of time letting them know what they *can* do in order to identify what they *want* me to provide a cost proposal for. I usually pad those hours back into the estimate on the first job so its not a big deal. However, as they remain my client and call back asking for small adjustments/add ons, this happens again and again. I have to spend time educating them. Then, the modification they want done is small and its tough to pad into the 2 hours quoted for the small job. At the same time, I dont want to lose the client. Has anyone else been here? Any suggestions? |
| Fri 20 Aug | Bored Bystander | HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
Surely you jest!
Seriously.
I think the prominent consulting authors like Jerry Weinberg have addressed points like this. Unfortunately, only a 'true consultant' is paid for his advice.
Being service and 'labor' providers, we aren't supposed to know more than the customer, right? :-(
I hope someone else has a better answer to this than 'if you're any good, it comes out in the wash'. |
| Fri 20 Aug | the artist formerly known as prince | My dad is in the appliance repair business (San Francisco Area), he charges 40 bucks to come out and talk to them, and check out their appliance.
In the long run it depends- you can compensate in
1. A Flat Consultation Fee
2. Charge for the artifact, i.e. Them-we need a Database you OK, the completed design docs will cost X.
3. Simply bump up your hourly rate
4. not take on small projects, or if they really are 2 hour projects higher a lower paid assistant. |
| Fri 20 Aug | no name | Neo, sadly, this is a common problem for consultants, especially if you deal with lots of small firms. There are a couple of solutions.
1. Whenever they ask you for advice, offer to consider their requirements and to give them a written report on the subject. This makes it more obvious you're doing something for them, and people can understand why you're charging for a report. If they say no but still want you to answer, you have to tell them you would need to look into it properly.
That is actually not a bad idea anyway, because the quick answer you give for free might be wrong, in which case they will judge you harshly, even though you were doing them a favour.
2. Offer to be their regular consultant for a small monthly fee (retainer.) If they take up this option, make sure you still charge by the hour. |
| Fri 20 Aug | no name | Neo, does Queen Bee do this to you? |
| Fri 20 Aug | trollop | 'The only defence a man has against overwork is the size of his fee'. A lawyer said that. Lawyers seem to get rich.
Folks LOVE free stuff and the folks who give it to them. But by definition, it's not billable.
You won't lose the client if you ask for a retainer to cover the nickel'n'dime time, or a flat fee per call, or a flat fee to study the next development problem.
But watch the 'education' cost, to you, and to your client. Shotgunning options at folks in the hope that one takes root and turns billable is less time-effective for both parties than addressing problems as they bring them to you.
Get paid for your advice.
Give the right advice.
Get a reputation for good advice.
Get recommended.
Get more clients.
Start harvesting.
When you are run off your feet , you won't have time to 'educate' ... and you can increase your fees .
|
| Sat 21 Aug | hoser | One company I worked for was billing $5,000 per day for UI changes based on one software engineer's day. A thing of beauty. |
| Sat 21 Aug | I knew this was gonna happen | Obviously this is the first rude awakening from Neo's Queen Bee love affair.
I am giddy with glee. |
| Sat 21 Aug | Snort, chortle | Oh, yeah, I forgot about that!
You can't live anything down on this board. |
| Sat 21 Aug | Neo | These are some really great ideas. I'm not sure some of my small clients would go for a retainer. However, that's certainly worth suggesting to those who call just about every month with questions. I like the idea of the written report which makes the answer seem more formal. That's great. Thank you all very much.
And no, I'm not talking about my experience with the Queen Bee as you like to call her. For one thing, I've only worked with her for just over a week and that's not enough time to have the problems I'm describing which occur with my other clients. However, working with her for the past week has been great. I've been presented with specs that are written out in great detail. For the work I have to do, every screen is mocked up or an example provided to me. So far, this has been a very pleasant experience. I wish all my clients were like this. |
| Sun 22 Aug | Matthew Lock | Beyond the very first meeting I charge $50 per hour for any and every reason I have to go to the client site. I'll answer some basic stuff for free over the phone, but if the client wants my time they are going to pay for it. You need to be strict about this else some clients will suck all your time for nothing. The bright side is that all my clients understand this and are happy with it. |
| Sun 22 Aug | Matthew Lock | Oh, and when the client calls you for free advice give them a 5 minute time limit then tell them you are too busy to talk right now and suggest you to come and talk to them on site. Then charge your hourly rate for that. |
| Sun 22 Aug | Neo | Matt, a lot of my clients are in different states so I can't go see them. Have you ever tried the same principle but setting up a phone appt to talk to them at a specified time? |
| Sun 22 Aug | no name | Try doing what lawyers do. They get their customers to sign an agreement that says they agree to pay for work conducted for the customer. Whenever the customer rings up, the lawyer adds it to the bill. Five minutes is $50, and so on. Each month they send out the bill. Seems to work. |
| Sun 22 Aug | Neo | Has anyone done this successfully? (I'm referring to the last suggestion about what lawyers do.) |
|
| Book similar to the Asperger's one | Fri 20 Aug | Patri Friedman |
| There is a book by SF author Elizabeth Moon called "The Speed of Dark" which is written from the point of view of an autistic person. Very interesting. |
| Sat 21 Aug | Dave | This book reminds me of an interesting story I heard on NPR once about a very bright autistic woman who has a career in animal husbandry. She helps(helped?) design machines for slaughterhouses that treat steers humanely. Something like that anyway. Anyone recall this? I'm pretty sure she wrote a book about her experiences. |
| Sat 21 Aug | Dave | Maybe she had Tay-Sachs, not autism. I forget. |
| Sat 21 Aug | Will | The woman you were thinking of is Temple Grandin, a researcher in 'livestock behavior, design of facilities, and humane slaughter.'
http://www.grandin.com/
http://en.wikipedia.org/wiki/Temple_Grandin
She's been a major force in the livestock industry, reforming the way that slaughterhouses work. She's also become famous as a prominent example of a high functioning autistic adult who has become an advocate and public speaker on the topic.
A good book in which she is featured prominently is Oliver Sacks' 'An Anthropologist on Mars'.
P.S. I've read both books. I really liked 'Curious Incident' in particular. While we're on the subject, it reminded me of the classic novella 'Flowers for Algernon' by Daniel Keyes (1959). |
| Sun 22 Aug | Dave | Thanks Will. Gotta add a book to my Xmas wish list. |
|
| Card shuffling routine | Fri 20 Aug | Poker |
| Eric Sinks solitaire program got me thinking about how to write a card shuffling routine. Id like to see other peoples routines or algorithms on how you think it should be done and what provides the best randomness.
The routine below picks a random slot for each card and then swaps the cards. It does this 100 times.
Please dont tell me to go look on google for routines etc.. I want to see your ideas for shuffling a deck of cards. I remember in the early to mid 90s there was a company that would advertise that they would give you a job if you could write the most innovative card shuffling routine.
void Shuffle(void)
{
Card Temp;
int j;
srand((unsigned) time(NULL));
for (int k = 0; k < 100; k++)
{
for (int i = 0; i < 52; i++)
{
do {
j = rand() % 52;
} while (j == i);
Temp = Cards[i];
Cards[i] = Cards[j];
Cards[j] = Temp;
}
}
} |
| Fri 20 Aug | Noname | Collection.shuffle(deckOfCards); |
| Fri 20 Aug | Christopher Wells | Take a deck, pick a card at random move the picked card to the top of a second (initially empty) deck ... repeat until every card has been picked and moved.
http://www.pagat.com/misc/52pickup.html |
| Fri 20 Aug | Lou Franco | assuming rand() is random, I think this accomplishes the arbitrary goal of each card having an equal opportunity to be in each position (assume a function swap, that works as expected)
void Shuffle(Card cards[])
{
srand((unsigned) time(NULL));
for (int i = 0; i < 51; i++) {
int j = rand() % (52 - i);
if ( i != j ) {
swap(cards, i, j);
}
}
} |
| Fri 20 Aug | old_timer | Las Vegas has determined that after 7 shuffles by the dealer, the cards are sufficiently random that a normal person would never be able to see a pattern.
Why would you need an algorythm to randomize them 100 times? Your game is being played by people, not other computers. A one-pass randomization is plenty good enough. |
| Fri 20 Aug | Edward | In fact, after a few thousand iterations, chaos theory would start to grab hold, and you'd start to see more patterns emerging ;-) |
| Fri 20 Aug | Poker | old_timer,
You can simply change the 100 to a 7 if that suits you. I was simply giving an example. |
| Fri 20 Aug | redwagon | Assign a random weight (value) to each card, then use any algorithm of your choice to sort the cards based on the weight of each card.
It's simple but effective. |
| Fri 20 Aug | Captain McFly | 'Assign a random weight (value) to each card, then use any algorithm of your choice to sort the cards based on the weight of each card.
It's simple but effective.'
This is what most online card houses do nowadays. |
| Fri 20 Aug | Peter | Once, there was an online casino that offered texas holdem games. They thought they were being slick by posting the shuffle code for folks to see. What they did not realize was that there was a pretty hefty bug in their code, so that instead of 52! (about 8*10^67) possible shuffled decks of cards, they had about 5000. As a result, players could determine in 5 cards (or less) what the deck was (thus knowing the position of all 52 cards in that deck), and what they should bet.
If this is homework, the answers by the other posters above are good enough. If real money is involved, then you better do some digging for either a real (hardware) RNG or look up some decent RNGs like Yarrow.
http://www.developer.com/java/other/print.php/10936_616221 |
| Fri 20 Aug | Dutch Boyd | This thread is amazing. Everything written is basically wrong or badly misguided.
So here we go:
Time() isn’t a suitable seed for dealing a random deck of cards. Hint: How many possible configurations of a deck are there?
Most library implementations of rand() aren’t suitable for cards. They’re usually badly biased in some way, frequently the low order bits aren’t very random.
There is no reason to shuffle 100 times. This is like sorting a list 100 times.
The reason Vegas uses 7 shuffles is because the way cards are shuffled by humans; divided into 2 piles and then interleaved back together. There is no reason to shuffle a computer deck 7 times.
The solution: Pickup Knuth Vol 2. Use the Knuth shuffle or if you want to be a little more efficient an incremental Knuth shuffle. Use a real random number generator not a standard library routine. |
| Fri 20 Aug | Ron Porter | How about approximately simulating the riffle shuffle used by most people:
1. Split the deck by randomly selecting a split point from a smallish range whose bounds are equidistant from the middle.
2. Randomly pick a starting 'half'
3. From that half, pull a smallish random number of cards in order from next to the split point and place on stack
4. Do the same thing with the other half (i.e. smallish random number of cards), putting the cards pulled on top of the stack
5. Repeat from (3) until all cards are consumed.
6. Deal from top of stack.
Note that you probably need to do several shuffles before dealing--perhaps another smallish random number. |
| Fri 20 Aug | devinmoore.com | Why even resort to random numbers? I'll show you a routine that still produces a random shuffle, and i did it myself, just now,as I'm writing this.
1. Take 1 card from the top,and put it at the bottom.
2. Using increasing amounts of cards, take N cards from the top and insert them N cards from the bottom. Thus, at the midpoint, you'll be taking the bottom 26 cards, and insert them between cards 13 and 14 of the other 26.
2. Increase N until N = 52.
3. Repeat, using N-1 cards from the bottom, mod the number of cards, until you cycle around again. Voila, deck shuffled, no random numbers. Remember to 'collect' the cards from the players in the order they're returned, so that you get a different shuffle every time. Of course, if they draw the same cards, you get the same cards back out, but you can always repeat the algorithm a few times. (a random number of times perhaps? Heck no! use a GUID.) |
| Fri 20 Aug | Dot For This One |
Dutch Boyd -
You are right. Amazing thread.
The guy who said pick a card at random, put it in another deck, then another card at random, ...
His works. Just it isn't in place two decks are needed.
I'm going to tell Mitch and Murray downtown about you guys.
One on-line poker site does this:
High quality cryptographically secure random number generator.
Frequently re-seeded from physically random sources.
For each shuffle: Attach a 256 random bit vector to each card.
Sort the deck based on the 256-bit vector.
For less demanding -
Assume 52 cards.
for I = 0 to 50
J <- Pick a random number between I and 51
Swap item in position I with item in position J
The quality of the shuffle depends on the quality of your random number generator.
The seven shuffle determination was made by the statistician Persi Diaconnis, not by Las Vegas.
I don't know about Vegas, but at California poker clubs, 90% of the dealers don't come close.
Some clubs are installing automatic shuffling machines.
One reason: They collect $3 a hand. Anything that speeds up play is desirable. |
| Fri 20 Aug | Christopher Wells | > The guy who said pick a card at random, put it in another deck, then another card at random, ... His works. Just it isn't in place two decks are needed.
Alternative is to move the picked card to the top of the first (only) deck ... and exclude the top (i.e. the already shuffled) portion of the deck when you pick the next card to be moved. |
| Fri 20 Aug | Blackjack Bob | You're all wrong! Card shuffles are NOT random (e.g. because of card clumping and sticking, and uneven rifling between left and right hands), and there is a great deal of research into it (google on shuffle tracking). Blackjack card-counters who also shuffle-track have done a lot of study and shuffle simulation to help predict clumps of face-cards in multi-deck shoes, especially right after new decks are introduced when the cards do not end up shuffled fully.
It's not just random distribution! |
| Fri 20 Aug | 30 Days | I was actually just researching this very topic for an Auction 45s game I am working on.
This is a good link about shuffling a list: http://okmij.org/ftp/Haskell/perfect-shuffle.txt
and I settled on using this algorithm for my own game:
;; list-remove : list number -> list
;; returns list l with element at idx i removed
;; example: (list-remove '(1 2 3) 1) -> (1 3)
(define (list-remove l i)
(if (zero? i)
(cdr l)
(cons (car l) (list-remove (cdr l) (- i 1)))))
;; shuffle : list -> list
;; returns a randomly shuffled list
;; example (caar (shuffle (fresh-deck52))) -> c
;; example (caar (shuffle (fresh-deck52))) -> d
;; exmaple (cadar (shuffle (fresh-deck52))) -> 4
;; example (cadar (shuffle (fresh-deck52))) -> a
(define (shuffle l)
(if (null? l)
'()
(let ((idx (random (length l))))
(cons (list-ref l idx)
(shuffle (list-remove l idx))))))
This will shuffle a 'deck' of 'cards' tht are stored in a scheme list like this:
((H A) ... (H 2) (D A) ... (D 2) (C A) ... (C 2) (S A) ... (S 2))
It works by starting with a list of size M and picking a random number from 1 to M, and moving the card at that index to a new list. It repeats the same routine for M-1, M-2 ... 1.
When it is doen the old list is empty and the new list contains a shuffled 'deck'.
Here is the original thread that I found to get me started: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&c2coff=1&safe=off&threadm=ad5sfl%245av%241%40oravannahka.helsinki.fi&rnum=1&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26c2coff%3D1%26safe%3Doff%26selm%3Dad5sfl%25245av%25241%2540oravannahka.helsinki.fi
And this is the post that gave me the algorithm I chose to use:
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&c2coff=1&safe=off&selm=ad5sfl%245av%241%40oravannahka.helsinki.fi |
| Fri 20 Aug | 30 Days | Oh you mentioned not to use google. Sorry I should proably read thing more thoroughly.
The actuall Idea was one I got from hearing about shuffling machines.
What they do is have a machine that can shoot a compressed stream of air through a port the width of a playing card. Fill the machine with a 52 card deck, and it moves the port to a random spot (1/52) and blows that card into a collector.
It then picks a new random spot (1/51) and repeats until there is only one card left.
So really I just used google to figure out how to acomplish this in Scheme, but the thread I stumbled across is a very interesting discussion on rngs and card shuffling.
Oh, and don't worry if you don't understand the Haskell in Oleg's post, I don't either :) |
| Fri 20 Aug | Dot For This One | 30 days - that works well when lists are natural for the language.
When you work with arrays and want to sort in place, then the algorithm I outlined seems about as good as it gets. |
| Fri 20 Aug | Reply to "Card shuffling routine" | My approach was always to use qsort() with a callback function based on a random number generator. It's much simpler, even if not the most efficient algorithm.
(It's likely to degrade to O(n^2).) |
| Fri 20 Aug | 30 Days | Ah yes, to sort in place is another beast entirely.
Your solution to assign each 'card' an additional random value and sort based on that value is very elegant.
However if you are using 256bits per value aren't you more than doubling the size of your card array (assuming your 'card' data structure is < 256bits in size)?
In which place carrying around an extra array of 52 'card' sized elements could possiby use less memory.
Of course if your card dat strucutre also contains say the image of the card, than I think 256bits is very cost effective.
And I bet using qsort is much faster than my version for multiple shuffles... |
| Fri 20 Aug | Code Monkey | http://www.daylight.com/meetings/emug98/Sayle/sample.c
I know the OP said to not provide links but this one explains it best.
The base idea is to have a deterministic algorithm which generates numbers between 1-52 sufficiently randomly but which does not generate the same number twice or miss any number. The same logic is behind doing pixel fading of pictures. |
| Fri 20 Aug | matt | An interesting question in probability theory (group theory too, as we're dealing with permutations) is how manyconsecutive independant uniformly-randomly-chosen two-card swaps are needed to bring the resulting distribution of pack orders sufficiently close to uniform amongst all possible orders?
Essentially how many cards do you need to swap randomly to get a 'fair' shuffle ?
If you're interested I can dig up some links. |
| Sat 21 Aug | Dot For This One | 30 days,
The algorithm with the 256 bits is used by an online poker site. They obviously need higly randomized shuffling.
The method which I showed for having one step for each card in the deck is in-place, and mathematically valid, assuming the 'random number generator' is in fact random. It also does about the least work one can imagine for shuffling. |
| Sat 21 Aug | Danil | Going right brained for a moment: what are we shuffling the deck for?
Althought there are 52! orderings of a standard deck, there aren't necessarily that many relevent orderings.
For example, in bridge, each of four players receives 13 cards, but the order those cards are received doesn't matter, so the total number of unique deals D = 52! / ( 13! ) ^4.
In Texas holdem, the order of the undealt cards, the order the players receive the cards, and the order of the flop don't matter. So if you have N players, you are only dealing M=2N+5 cards anyway, and have D = 52! / [ (52-M!) * 2^N * 6 ] distinct deals to worry about.
Simply pick a number in the interval [0,D), translate to a deal, move on to the next. |
| Sat 21 Aug | Bella | Just swap each card in the deck with a random card in the deck.
For i = 0 To 51
n = Int(Rnd * 51)
temp = deck(i)
deck(i) = deck(n)
deck(n) = temp
Next i |
| Sun 22 Aug | scruffie | ... which is exactly the algorithm that the developer.com article linked above shows is wrong. |
| Sun 22 Aug | Bella | Very nice article ! |
|
| Is there a term for this? | Fri 20 Aug | Frank "Grimey" Grimes |
| We have a dialog where you need to check some list items before clicking a Generate button to execute calculations on the checked items.
I set it up so that the button would be disabled if no items were selected, and would enable when items were checked.
My manager suggested we enable the button, and warn if no items were selected. I dont want to do that -- Id rather rename the button Generate Checked Items than create what Id call User Interference (as opposed to User Interface).
Does User Interference sound good, or is there another name? |
| Fri 20 Aug | Christopher Wells | I like your manager's comment. It annoys me when an button or menu item that I want to press is disabled, and I can't figure out what I must do to enable it: by enabling it, you have an opportunity to present a helpful dialog ("I realize that you've just pressed the button, but really you should select some items first before this will have the effect you desire"). |
| Fri 20 Aug | Harvey Pengwyn | "pissing people off" is the normally accepted term, though there does need to be a term for it, lots of people here are keen on the 'here is a tit-bit of information about the software I sell / support / develop I have just discovered and I now think that the users, who probably know a lot more about the software than I do, should have a message box inflicted on them every time this particular sitiation arises, even though I have got one after about 8 months and they will probably get 50 a day' approach to UI design which I think it strongly related to what you are talking about |
| Fri 20 Aug | Was that so difficult Grimes? | Don't disable a damn thing. If the SOB user clicks the damn generate button and nothing is checked simply pop up a Message Box saying 'No items selected.' Then, when they click the ok button on the msgbox they default back to the screen. |
| Fri 20 Aug | Aussie Chick | Actually I agree with the OP.
While the first time this may be annoying (ie why can't I click the button...). If a user uses this more then once and is presented with a dialog box for every mistake...it becomes annoying.
However I do agree anothe way could be found.
It is 2am in the morning here, so don't take my suggestion with too much seriousness, it could be crap when I wake up!
However about some sort of display on the form that makes the user aware of what is needed to continue. I mean really, we all deal with this sort of disabled button when we install programs (ie the 'next' button is so often disabled until we fill in the required fields). |
| Fri 20 Aug | Greg Hurlman | If the 'Generate' button performs its generation, after which the user continues down the form before clicking 'OK' to close it, the disabling is fine. If 'Generate' effectively closes the form, then it needs to be enabled, and a messagebox stating something along the lines of "You have no items selected for generation - Please select at least one item before clicking 'Generate', or just click 'Cancel' to exit this task". |
| Fri 20 Aug | Edward | I don't know if such a term exists, but User Interference indicates that the User is causing the interference, to me at least.
I much prefer disabling buttons that don't do anything. In this case, a simple 'Select one or more items for calculation' message would help the user along, instead of having to close pop-ups every time they did something inappropriate.
In my experience, it's much better to help the User using information on the panel itself, instead of correcting them through error/warning messages. Getting many of these messages can quickly frustrate a user. |
| Fri 20 Aug | Frank "Grimey" Grimes | The Generate button does close the dialog.
I think there is something wrong with giving the user an option to do something you know is an error well in advance.
Clicking a button that won't do something doesn't help the user get their work done. Another message box telling them they did bad doesn't help them get work done.
My opinion is if there is ambiguity, then there's problem with the dialog, and it shouldn't be pushed off to users.
I thought about renaming the button, but I hate long buttons. I will likely add a text message about checking items before clicking generate. |
| Fri 20 Aug | Harvey Pengwyn | We have actually thought of having an 'enable the buttons and menu items then tell me why the action can't be done' mode in our software.
Sometime the actions and the conditions for them being enabled can be quite esoteric.
Then, of course, there is the danger that the users won't find / won't be told about / won't read about the mechanism for changing the mode and be annoyed for ever after that this is the way it works... |
| Fri 20 Aug | Rob Mayoff | Get rid of the "Generate" button. Instead, show the results alongside the list. When the user checks a list item, immediately update (or start updating if it's a long operation) the results based on the new selection. |
| Fri 20 Aug | Alex | Disable the button, but when you hover over it, pop up a tooltip 'You Need to Enter some Info First'.
No messageboxes, it's 2004. |
| Fri 20 Aug | Rob VH | If it doesn't take ages to refresh the screen, the suggestion about doing away with the button entirely is the right one.
Otherwise, this is easy... have something selected by default. Then if the user unchecks all boxs, and the button is greyed out, it's obvious what is necessary to re-enable the button.
I'm never a fan of giving users a button or menu that _looks_ like it does something, when in fact, it presents a message saying 'You can't do that'. |
| Fri 20 Aug | Clay Whipkey | I agree with Alex. Disable the button, but explain why its disabled with a tooltip. When less savvy users get messageboxes, they sometimes think the software is broken. That probably has a lot to do with the Windows sounds, and that they will hear the same obnoxious noise if they prematurely click the Generate button as they do when they get the illegal operation error right before they shut down and lose 3 hours of work. (Assuming they have speakers turned up, and it always seems like less savvy users play music CD's on their computer.)
'User Interference indicates that the User is causing the interference'
Not necessarily. In football, Pass Interference does not refer to the pass interfering with the receiver. I think User Interference is clever enough. Grimey should blog about it and preserve himself some credit for coining the phrase. |
| Fri 20 Aug | Edward | No argument there Clay I just meant that that's the first thing that jumped in my head.
How many phrases do we need that mean 'Bad Design'? ;-) |
| Fri 20 Aug | old_timer | Aussie Chick says:
> If a user uses this more then once and is presented
> with a dialog box for every mistake...
> it becomes annoying.
I should think if the user is so stupid as to get the same warning message over and over again, he/she really needs it. My vote goes for the boss. Enable it and pop up a Msgbox for dummies. |
| Fri 20 Aug | meanie | Electrify mice so users can be severley punished for to omanty stupid clicks.... |
| Fri 20 Aug | meanie | or to omanty typos :) |
| Fri 20 Aug | e | Without seeing your screen, I have yet another suggestion:
'Hide the button until the user has checked off the items'
But the best thing would be to get some users to try the form and see what they do. |
| Fri 20 Aug | John C. | I think virtually any UI designer would tell you that users should be prevented from performing the task (i.e., the button should be disabled) rather than presented with an error message after clicking it.
I'd go further and wager you could pick up any decent usability book and it would include this recommendation, thus bolstering your case.
Or try this. Open the Save dialog in Word, Excel, etc. Delete the file name. Notice that the Save button is now disabled, because you can't save a file without a filename.
Having an apparently active button that doesn't actually do anything except insult the user is a recipe for frustration. Don't do it. |
| Fri 20 Aug | Albert D. Kallal | What great topic here.
I see nothing wrong with giving the user a dialog box.
In the case of the button being disabled, then I do think that “most” users will learn that to highlight a box, something “has” to be done, but then how do they discover this answer?
The example showed (word’s “save as” dialog) being disabled might not be a fair comparison, as you talking about users navigating a menu hierarchy (but then again, it might be a fair comparison!!). Navigating a menu hierarchy is a different UI problem then that of a button on a form…but they certainly share many same concepts.
However, one can easily make the case that if you did click on the save as with no document, a message explaining that you need to create a document likely would be far more user friendly then simply confusing the user as to why the save as button is broken. Further, you could at that point actually ask the user if they want to create a document (or save a blank document!). This is far more user friendly then some poor sop who has to now figure out why the save-as button is broken.
So, the best case for keeping the button enabled is that you can then take action and DEAL WITH the reason as to why the action cannot be taken.
So, you can help the user create a that new document, or perhaps offer a dialog to select all options
No category’s selected…report on all of them?
(yes) (no)
So, the advantage here is that you can take action based on a user mistake, where if you disable the button, then you can’t help the user much at all. You might have some lame bubble help, but that is passive helping the user…not active helping the user.
Further, depending on your development tools, context driven menu bars might be a pain…and thus I would accept some dialog box explain why the option/feature can’t be used (but even better then the dialog is to have the code deal with “why” the button can’t be used!).
If you disable the buttion, then you don't have to write code to explain the problem, or write code to deal with the problem.
I think often a button is disabled to save programmer and development time, not because it is a better UI.
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Fri 20 Aug | Frank "Grimey" Grimes | But it's not the *user's* mistake that they don't know what to do. It's the programmer's mistake they didn't provide the right affordances (to steal terminology from Joel's writings). It's 'wrong' to push the programmer's bad design to the user.
After discussing this with some others, we have figured out the real problem: the Generate button is in the wrong place. The checkedlistbox is on the left in a column, and Generate is bottom right where you'd normally find OK/Cancel. (Right column contains settings for the list items).
I'm currently refactoring the UI to correct this. Yes, it'd be easier at this point to put in the message box, but I'm not against a wall on time, and I can't let myself take the easy road out. |
| Fri 20 Aug | lh | Users learn things easier if the behaviour is consistent to other things they experience.
What happens on your TV if you use the remote to change to the channel you are already on? The TV just does it and doesn't comlpain that is where you already where.
Press an elevator button for a floor you are already on? The elevator goes nowhere, but doesn't compain.
Press the radio station button to the station you are already on? What happens, nothing.
Click the save icon on a file that hasn't changed. No error messages. It just saves anyway.
All these behaviours emphasize to the user that *they* are in control. So if they 'generate' on an empty list. Go ahead and generate and come back with an empty report. Unless some really serious errors are going to result from generating off an empty list, just go ahead and do it. |
| Fri 20 Aug | bpd | LH, your examples all differ from OP's problem in one very important aspect: The TV station, elevator, radio station and saved file don't change - nothing new, nothing different yet desired; but pressing the button creates (generates) an empty report - something new, useless and unwanted.
I prefer disabling the button. |
| Fri 20 Aug | ; | I didn't see it in this thread, but is there a way to back out of this dialog without generating anything? I would agree that disabling the button without putting something else is bad form. I don't agree with the tooltip because they take time before they display, and people don't wait before pushing a button like that.
If it's invalid to press 'Generate' with nothing selected, then disable the button and give them an alternate button that says 'Cancel' or 'Back' or something like that they can use to escape.
If it is valid to press 'Generate' with no data, then disable the button and put a check box that says 'Generate with no data' or something similar that enables the button, while still having the 'Cancel' or 'Back' button.
That's my $0.02. And probably about worth that much. |
| Fri 20 Aug | Kevin | What about disabling the button, and then taking whatever text you were going to put in the message box and put it right next to the button? Now nobody is bothered by message boxes popping up, and nobody is confused about why the button is disabled. |
| Fri 20 Aug | van pelt | Things I've learned:
1. Less than half of users will read a block of text that explains what to do, and those are usually the ones that would have figured it out just fine without the text.
2. In a debate about disabling vs messageboxing, half will prefer disabling, the other half will prefer the messagebox, and the last half will come up with thirty alternative suggestions.
3. You're going to piss off somebody no matter which way you go. The best compromise is to be more or less orthoganal with other dialogs in your app, go for consistency. With any luck, most users who will figure things out after one or two attempts. |
| Fri 20 Aug | Neo | Personally, I always think it's better to err on the side of generating a message box and annoying repeat users. Your choice is to leave someone sitting there scratching their head going 'huh' and I never think that's a good solution.
Take my opinion and a quarter and you still can't buy a coffee at Starbucks though! |
| Fri 20 Aug | example | >> After discussing this with some others, we have figured out the real problem: the Generate button is in the wrong place. <<
I was going to ask what the proximity between the list and the button was. If it's way over on the other side of the dialog, then there's no visual clue to the user that the unchecked list and the greyed-out button are related in some fashion.
If you have ever played Myst, there are a series of switches on the island which must be thrown before a big event can happen. Every time you throw one, there is some feedback (either visual, auditory, or both) that you're on the right path.
You want to do the same thing with your dialog -- give the user the idea that the two are related, and positioning the button by the list does that. |
| Fri 20 Aug | Wayne | If you look at any standard Windows 'Options' dialog (with OK, Cancel, Apply), the Apply button is usually disabled until you update an input control.
It's easy to do. In VB, I usually do it like this:
Private Property Let ChangesMade(bNew as Boolean)
cmdBtn(fciCmdApply).Enabled = bNew
End Property
Private Property Let ChangesMade() as Boolean
ChangesMade = cmdBtn(fciCmdApply).Enabled
End Property
Private Sub txtFld_Change(Index As Integer)
If mbLoading Then Exit Sub
Select Case Index
Case fciTxtSomeSetting
ChangesMade = True
End Select
End Sub
Private Sub ApplyChanges()
If Not ChangesMade Then Exit Sub
' Save the changes
...
End Sub |
| Sat 21 Aug | Dennis Atkins | > 'User Interference'
Yes, there is a formal term for it in the field of UI. It is called 'excise', like an excise tax you have to pay but which does not help you achieve your goals.
Any actions that the UI requires of the user which do not help him attain his goal are 'UI excise'. See About Face by Cooper for an entire chapter introducing this idea followed by an entire book elaborating on it.
Regarding your design, I agree with you and not your manager. However, this specific thing is a ongoing debate in the UI community and was even discussed here about 1.5 yrs ago, with Joel coming out favoring your managers view, if I recall correctly. |
| Sat 21 Aug | Dennis Atkins | Oh and a good suggestion is to set up your ToolTips so that they explain WHY an item is disabled. |
| Sat 21 Aug | Donald Norman | I prefer the Windows 3 approach: wrong input==GPF and all work lost. Pretty soon the bastards (users) start to learn about doing things properly. |
| Sat 21 Aug | Alex | The tooltip does take ~1 sec to pop up, and some people may not hover over 'Generate' for so long. But you could write your own, which pops up the instant you roll over.
Or hide the button altogether and put some bold red text 'Make A Selection in Order to Generate' right there on the dialog -- golly, you'll have to subclass! :) |
| Sat 21 Aug | _ | The tooltip idea is a bit mouse-centric. What if the user is operating the software using keyboard only? In that case you also need to consider what the Enter key does when the default Generate button is disabled. |
| Sun 22 Aug | anon |
put a text like 'select items and then click 'generate'' in bold
or
if the button is enabled at first, when he clicks it, popup a non modal tip like 'select items'
or
select some items by default.
My $0.02 |
| Sun 22 Aug | no name | We need to ask "Mr. Usability UI design Joel Himself Mister Master" about this issue. |
|
| Asperger's or just INTP's? | Fri 20 Aug | BDKR |
| Joels comment along these lines seems like an amazing oversimplification based on the logical conclusion of untrained observation. Based on his statement, many people that we know of as INTPs are instead mildly to somewhat autistic (in some way shape or form)? Ive know a good number of mathmeticians, engineers, programmers, and even linguists, that all fit the INTP temperment type, but only one can I actually say displays any of the symptons associated with Aspergers.
I suppose the only reason I care to point this out is due to the fact that anyone could easily mistake an INTP or what some call extreme INTPs as one who suffers from Aspergers syndrome.
Then again, I could see how someone could look at all the heavenly bodies going by and logically asume we are at the center of things. :-)
mas informacion aqui.
http://www.typelogic.com/intp.html |
| Fri 20 Aug | Dr. Real PC | You can call it INTP or Asperger's, or whatever you like, it's just a label.
People are not all the same and they don't all fit the ideal of their culture. The US loves extroverts, other cultures prefer introverts.
I myself am INT[PJ] (I don't really understand the difference between P and J), so I am not the cultural ideal or the majority. I feel I am on a different wavelength from everyone I know. Things that other people never see can be perfectly obvious to me, while what is obvious to everyone else can be a complete mystery to me.
I think being INT is fun, because I never run out of things to think about, can never get bored with life.
However, I am sure I don't have Asperger's because I am very empathetic. I could probably make a living as a fake psychic. However, I do know some people who fit the diagnosis -- utterly in their own world, obsessed with their projects, perfectionist, easily frustrated, highly intelligent, etc. But giving something a name does not make it a disease. People are different, to each his own, etc. But I admit that trying to get along with them is a challenge. |
| Fri 20 Aug | Herr Herr | The Myers-Briggs personality stuff is good in that it helps you be more aware of how others see you and your own strengths and weaknesses. But I would suggest you don't take it too seriously.
It is based on theories, not on hard proven facts. A lot of the insights people gain from it is just rabbiting back what they chose on the questionnaire. 'Do you find parties draining?' is the quesion, and then the feedback is 'You find parties draining'. Well, yes, that's right, that's what I wrote!
Results can differ depending on your mood, stress levels, nature of your work and relationships at the time of taking the questionnaire.
When I first did the Myers-Briggs thingy, I was classified as an 'I' but so border line that if I had answered a couple of questions differently I would be an 'E', therefore apparently with a entirely other temperament. Yet when people hear I am an 'I' they might make possibly erroneous judgements about me based on that. |
| Fri 20 Aug | Herr Herr | Hey Dr. Real PC
I also don't understand the difference between P and J. Glad to hear I am not the only one. |
| Fri 20 Aug | Aussie Chick | When I was 20-ish I went through a phase of doing lots of personality tests, and reading books etc.
I agree with Dr PC, they are just labels. For me the benefit of doing these tests was that is was a process of understanding that other personality types do exist.
I know it made me a better person, But then I have never been one to run around spouting this kind of knowledge out loud, I prefered it as a tool to understand rather then label.
I was at highschool today (prac experience) with two staff members heading somewhere. We passed a gril sitting on the steps. It was immediately obvious to me that this girl had no friends, and very likely wasn't going to gain any quick. He was a girl, who without any serious one-on-one help will probably not function in society. We walked passed her and one of the ladies that I was with told her to move, she shouldn't be sitting there because we had to walk around her. The lady told me later that this girl had Aspergers, and that she wouldn't make friends. I was somewhat shocked at the almost hateful attitude, it felt like something out a black/white movie set in Alabama in 1950 or something.
Not sure how pertenant that little tale is, I guess I am agreeing with Dr PC, there are some people who clinically need help, others just feel unsocial and rather not make phonecalls.....the difference is important. Labels for the sake of labels are not. |
| Fri 20 Aug | _ | The P goes on the bottom half of the sandwich and the J goes on the top.
Unless you drop them, in which case they both face downword and stick to the floor that, incidentally hasn't been swept recently as evidenced by the cat hair and rice grains under the lip of the cupboard in front of the sink. |
| Fri 20 Aug | Strangelove | Doctor Real isn't really a doctor. He just plays on on JoS. |
| Fri 20 Aug | BDKR | Well folks, I'm not agreeing that it's 'just a label'. If you consider that labels are what people (in groups or otherwise) use as a foundation for how to treat one another, then it becomes important to either not label at all, or make sure we accurately label.
Cheers,
BDKR |
| Fri 20 Aug | www.marktaw.com | 'hasn't been swept recently as evidenced by the cat hair and rice grains under the lip of the cupboard in front of the sink.'
Woah, who told you about my kitchen? |
| Fri 20 Aug | Jon | So not wanting to talk to people is normal for some people?
I'm a much happier person now. :-) |
| Fri 20 Aug | Dr. Real PC | I guess everyone has a different ratio for how much time they want to spend alone vs. talking. I think mine is 80/20.
I often prefer reading because you get more new and interesting information, whereas when talking to people you hear the same old stuff, usually. However, you need to talk just for the emotional contact, to not feel completely alone on earth. |
| Fri 20 Aug | Dot For This One |
I'm an ENFP, as I am dealing with some health problems getting more and more extraverted, which means that one gets energy from being around other people.
Unfortunately the most common profile for software is exactly the opposite in all four categories. No wonder I feel like I'm in the wrong business. |
| Fri 20 Aug | jdm | My wife the psychologist assures me that, although Asperger's can be treated with medication, there is so far no cure whatever for being INTP. |
| Fri 20 Aug | Neanderthal man | You seemingly intelligent people actually BELIEVE in Myers-Briggs?
Gosh, it's scary.
http://skepdic.com/myersb.html |
| Fri 20 Aug | BDKR | 'My wife the psychologist assures me that, although Asperger's can be treated with medication, there is so far no cure whatever for being INTP.'
LOL!
I gues I have a tough road ahead of me. |
| Fri 20 Aug | indeed | Here's a question about the I/E letter in the MBTI:
How do online conversations that take place while one is at a computer factor into the I/E? i.e. can the interaction that takes place in AIM be considered part of the 'energy' involved in intro- vs. extroversion? Would an introvert feel 'drained' by online human contact?
How about message boards? |
| Fri 20 Aug | jdm | I suspect that online interaction is popular with INTPs, etc. precisely because it _isn't_ particularly draining on the emotions. This draining effect is probably due to the difficulty some of us have in trying to discern what the other person is thinking/feeling when intereacting with us. Since our intuition in this area is practically nil, we just get frustrated.
As an aside, I find that the older I get, the more extraverted I become. Probably because the older I get, the less I give a sh*t. |
| Fri 20 Aug | Rainman | Myers-Briggs is a crock, because there are definitely more than 16 personality types in the world, and each of the four letters they use are definitely not orthogonal to each other. Definitely. |
| Sat 21 Aug | Dennis Atkins | Actually... the Myers Briggs has been carefully calibrated so that each of the 4 axes really are independent. It's a very impressive piece of work. None of the similar spin off tests are as consistent either. |
| Sat 21 Aug | Burned Out | I still prefer "Who's your favorite Beatle?" I think I'm a George. |
| Sun 22 Aug | T. Norman | People are too different for one 4-letter combination to sum up their personality.
However, there really is some meaning to it. The way it correlates highly with different occupations amazed me. The general population has a certain distribution of MB types (see http://www.internet-encyclopedia.org/wiki.php?title=Myers-Briggs_Type_Indicator ), but certain occupations are heavily loaded in certain categories.
For example, only 5.4% of the general population is INTx, but for programmers it is over 20% (IIRC), and this was reflected when HR for my company decided to administer the test across the IT department (which has over 1000 people). |
|
| Gmail notifies | Fri 20 Aug | Ogami Itto |
| The Gmail Notifier is a downloadable Windows application that alerts you when you have new Gmail messages. It displays an icon in your system tray to let you know if you have unread Gmail messages, and shows you their subjects, senders and snippets, all without your having to open a web browser.
http://toolbar.google.com/gmail-helper/ |
| Fri 20 Aug | GenX'er | This is a very handy tool - nice improvement.
But to get me to switch 100% from MSN Hotmail, Google needs to add support for free Mobile Text Alert Notifications to my Phone (like MSN Hotmail currently has).
I also noticed that MSN recently made their Calendar available free again like it used to be - however you still can't use the synchronization feature with Outlook for free!!!! Uggggg.... Who wants to type in all of those appointments manually???? That feature still seems to only be available to MSN plus (pay) users.
And when is Hotmails free boosted storage coming? |
| Fri 20 Aug | Edward | If I haven't had my invitation yet, you people aren't allowed to talk about it. |
| Fri 20 Aug | kc |
Go to Ebay and buy one...
the going price is <$2 |
| Fri 20 Aug | InsideInfo | Am seeing 250 MB on my hotmail account today... |
| Fri 20 Aug | GenX'er | 'Am seeing 250 MB on my hotmail account today...'
Really??????
Did you have to do anything to receive this?
I still only have 2 Megs!!!! |
| Fri 20 Aug | Chris Hester | I have 2 invites i can dole out, email me... |
| Fri 20 Aug | Chris Hester | My invies are gone, glad i could help. |
| Fri 20 Aug | dover | I've got one left... free to the next lucky person who emails me. |
| Fri 20 Aug | Bilge Rat | I am stuck with 2 MB on hotmail as well. The thing I hate about hotmail is how any link embedded in your e-mail gets put in that !$@#!$!$%! frame.
As soon as gmail opens up to the public, I'm dropping hotmail |
| Fri 20 Aug | Desi Inside | if anyone has GMAIL invites, PLEASE send me one
i really really need one
Thanks in advance |
| Sat 21 Aug | dover | I'm all out... thanks to every one who requested one!!! |
| Sat 21 Aug | Guillermo | adding the new icon now I've 22 nice icon-tray... my mainframe used to be a more simple desktop...
btw I can invite one or two of yours to gmail. |
| Sun 22 Aug | Matthew Lock | So hide/remove some icons. |
| Sun 22 Aug | jz | If anyone still has an invite to spare, I'd like one. |
|
| How bad is goto, really? | Fri 20 Aug | Tayssir John Gabbour |
| Has anyone worked with gotos frequently and found that theyre particuarly scary in the hands of bad programmers?
That paper Goto considered harmful was actually changed from A case against the goto statement, and the author bitterly reflected that people just cite its name without actually reading the paper. I wonder if were understandably scared about other peoples code and sometimes just prop up any scapegoat.
It would be best for readers if you have dealt with goto code from multiple people at different companies. If that means no one replies, well thats better than shaky info. ;) |
| Fri 20 Aug | Julian | I don't miss it in Java, since automatic memory management and the finally command make goto's unnecessary. I used goto a little in C, mainly to jump to the end of a function to free memory.
In practice, goto overuse seems rare, since most people have learned that it's harmful. This assume that you aren't a purist who classifies exceptions as gotos. |
| Fri 20 Aug | passive-aggressive weasel | It's not that bad. Look at generated assembly language. It's full of GOTOs.
But nowadays in high level languages there are usually alternate control structures that are more appropriate. |
| Fri 20 Aug | i like i | I have seen a few gotos, and used a few. Mostly for rollback or reset code.
In every occasion I could see that extra states in a state machine, or exceptions, or even duplicating large chunks of cleanup code, or nested functions, could have done the same trick; but generally, I don't think in the exact situations that I have encountered gotos, that those alternatives would have made code clearer! There is nothing ambiguous about 'goto abort;'. In fact, my text editor puts useful arrows matching gotos and labels, amoung other things.
(Although throwing 'new' exceptions takes memory which is not always a good solution when responding to an out-of-memory situation on a constrained device such as a mobile phone.) |
| Fri 20 Aug | Troy King | Gotos are all over the place
break
Exit Do
continue
Lots of control structures in lots of languages have implied gotos. Function calls are themselves just abstractions of goto. They work because we can tell where they jump. The goto statement itself can be just as graceful. Just because some people misuse it doesn't make it evil. It's a tool like everything else. |
| Fri 20 Aug | Geert-Jan Thomas | 'Gotos are all over the place
break
Exit Do
continue'
But these are 'gotos' from a specific context to a specific place in the code and not from one arbitrary location in code to some label that may be at any other arbitrary location.
This characteristic is the 'evil' part in Dijkstra's essay because it compromises the 'coordinate system' he uses to describe the state of the code during runtime.
Because of the specific context and target of these special cases, this 'coordinate system' remains intact. |
| Fri 20 Aug | yet another anon | Other than error handling in VB, the only time that I've seen horrendous use of goto's was in a C programming book for a class I took back in 1988.
The book had huge code samples littered with goto's. The other thing I remember is that all the boolean variables were named flag (flag1, flag2, ..., flag50).
The book was incomprehensible. I remember taking a red pen and drawing arrows all over the place to show the jumps. Red spaghetti. |
| Fri 20 Aug | Calvin | ...I can tell you the temptation to mususe these things is awful. |
| Fri 20 Aug | no name | >Gotos are all over the place
>break
>Exit Do
>continue
In over ten years of software development I've never used one of them. |
| Fri 20 Aug | Mr Jack | I've seen goto in a fair amount of 'C++' (C++ written by C programmers) code. In a tiny minority of cases it has been a clean and efficent solution to a problem, in the rest it's a minor form of code obscuration.
Not evil, but defininetly a tad mischevious. |
| Fri 20 Aug | Alex | I don't see the temptation for misuse -- it looks ugly and breaks the flow.
It's useful when breaking out of a nested loop, where structured programming would require a boolean or something. |
| Fri 20 Aug | Anonymouse | I once worked in finance on big mainframe systems running coboll. Company policy was that goto was good - but with lots of stringent conditions. One rule was that certain cobol loop constructs should not be used (variants of the keyword 'perform') and that goto should be used in place. This was the only allowable instance that a goto should move 'up' the code and another rule said that any other goto was fine as long as it always moved 'down'.
Now since best practice in cobol was not to use goto and to use the above mentioned 'perform' keyword, I had lots of problems in the first few weeks getting used to it. However, I eventually noticed that since everyone expected goto to be used they were all attuned to thinking in terms of goto and consequently no one ever wrote spectacularly bad code that employed it.
While I wouldn't advocate using it (takes a while to get yourself into the mindset) I can say that I have seen it used in real life with no (apparent) ill effect - apart from the general mental trauma of working in cobol: :-) |
| Fri 20 Aug | Dave Hallett | There's a good discussion in Code Complete (either edition) |
| Fri 20 Aug | Herr Herr | If break is a form of goto, then I use it. I could avoid it easily but it enables me to easily have only one exit point in my functions. I prefer (in a language I just made up)...
function foobar() {
retvalue = null;
if (a == b) {
if (c == null)
break;
// do some other stuff here
}
return retvalue;
}
to
function foobar() {
retvalue = null;
if (a == b) {
if (c == null)
return null;
// do some other stuff here
}
return retvalue;
} |
| Fri 20 Aug | no name | Or without a break
function foobar() {
retvalue = null;
if (a == b) {
if (c != null)
{
// do some other stuff here
}
}
return retvalue;
}
Simple, really. |
| Fri 20 Aug | Tayssir John Gabbour | Things like break aren't what I'm looking for, since those are more special purpose syntactic sugar. It's sugar I definitely agree with, but a different subject. |
| Fri 20 Aug | ronk! | Its very common and useful in C for cleanup of routines. The following demonstates the idiom (I hope the spaces show properly):
void Foo()
{
BAR* x = NULL;
BAR* Y = NULL;
x = AlllocBar();
if (x == NULL) {
goto done;
}
y = AlllocBar();
if (y == NULL) {
goto done;
}
...
done:
if(x)
FreeBar(x);
if(y)
FreeBar(Y);
}
This is about the only use for it I would advocate. |
| Fri 20 Aug | . | The only appropriate use of GOTO that I've seen is in C code to act in a manner similar to the Finally of a try/catch block. You've got
int foo()
{
/* bleah bleah bleah */
tidyup:
/* release resources etc */
}
If the body of the function has multiple exit paths, you don't want to repeat the tidyup code too much, so jump to it and leave. In some cases I've seen this can make the code significantly more elegant, and at least tidies the code up.
In this context it can be useful and isn't altogether harmful. The possible abuses of this construct, as with all other uses of goto, is very high, though. |
| Fri 20 Aug | . | Aw, poo. Either too much coffee or not enough. I'll pay attention next time. |
| Fri 20 Aug | i like i | void TextBookExample_Transaction() {
if(!do_step1()) goto rollback1;
if(!do_step2()) goto rollback2;
if(!do_step3()) goto rollback3;
commit:
return;
rollback3:
undo_step2();
rollback2:
undo_step1();
rollback1:
} |
| Fri 20 Aug | Shlomi Fish | I have said my opinion here before that goto is not always harmful. Don Knuth wrote a paper titled 'Structured Programming Using Goto Statements' where he stressed that many times avoiding goto will make the code less modular than with the goto. I haven't read it, but it seems to make sense.
One of my most ugly abuses of goto was when I was trying to write a parser for a subset of the Bourne Shell syntax. Fixing a couple of bug made me add many labels, and quite a lot of goto statements. Maybe there's a way to refactor it to make it more structured, but since the code does its job and I don't have to further modify it, I'm keeping it as it is.
You can find the code here:
http://tinyurl.com/5mn5y |
| Fri 20 Aug | Mr Jack | Your text book example rollback might be OK in C, but it's a shoddy way of writing it in C++ where RAII offers a far better method. |
| Fri 20 Aug | Breaker 1 9 | My preferred use of break-
int foobar() {
int result = 0;
if ( true ) {
if ( a != b ) break;
c = f( a, b )
if ( 0 != c ) break;
result = g( c )
}
return result;
} |
| Fri 20 Aug | indeed | The immediate, automatic backlash against goto from the insecure propellerheads among us is fiery; a sort of 'terminate with extreme prejudice' instinct. I've certainly been in meetings where my fellow developers have been cajoled and openly ridiculed for using goto, even in sensible contexts.
So to answer the original question: from a technical perspective, I think goto is fine in limited circumstances. This has been discussed to death.
But using goto may tag you as inexperienced, stupid, unworthy, and beneath the haughty assholes who dogmatically oppose it.
Be careful. :) |
| Fri 20 Aug | Christopher Wells | I done a lot of assembly language programming ... and I find structured programming constructs (for, while, etc) more readable and more writeable ... so much so that I prefer to use structured programming in C/C++, even though C/C++ supports "if (...) goto ...;" statements if I wanted them. |
| Fri 20 Aug | Peter | If you have never written code in FORTRAN, you don't know the ubiquity that goto statements had. Nor the difficulty in trying to debug such code.
http://www.engr.umd.edu/~nsw/ench250/fortran1.htm
Statements like:
goto (100,200,300,400,500), i
which means, if i <= 1 then goto 100, if i =2 then goto 200, and so on, if i >=5 then goto 500.
are used in modern languages like:
select case i
or switch(i)
Then there is one of the types of IF statements where you go to a different place depending on whether the result is negative, zero or positive.
IF ( VAR ) 100,200,300
And then there were some odd thing called an assigned goto, which was really wierd.
In short, writing structured FORTRAN was very hard. Writing spaghetti code was far easier. It is very hard to maintain spaghetti code. Too many GOTOs in your code turned it into write-only code (no one could figure out what it did, so no one could debug nor maintain it).
A dumb question to ask in an interview is 'when would you use a goto statement?' I have found no reason to use them since using any programming language more modern than FORTRAN. I am sure you can think of one. I, personally, have never come across a case where a goto was a better choice than some other control structure. |
| Fri 20 Aug | hoser | One could argue that a return statement anywhere except prior to a function's close '}' is a form of goto.
There are some good programming practices, which are specifically found in Scott Meyers' 'Effective C++' books.
And I like the way he phrases things too, using the word 'prefer' over 'must' or always.
For example, I prefer loops to be in the for() (as opposed to while or do) syntax, with all iterators and conditionals being handled within the for() construct. But while the attempt is to up front and clear about the loop parameters, it can sometimes lead to confusion as well. So when it does not improve code readability, don't use it.
Same with goto. How hard is that? |
| Fri 20 Aug | Jon | Someone posted like 4 if conditions with goto...but what happened to using switch ? |
| Fri 20 Aug | Jeff Kotula | hoser: as was pointed out earlier, breaks, continues, and the situation you cite are not true gotos, which can jump from anywhere to anywhere. The case of break, continue, and return, the language defines precisely where control transfers to, and the programmer has no control over that when using the statement.
Dijkstra's paper is a must-read, along with early Parnas, Knuth, etc. I wish universities had a course that consisted of required reading in the classics... |
| Fri 20 Aug | Jeff Kotula | I just realized my last post sounded kind of snotty. Sorry 'bout that -- didn't mean it that way... |
| Fri 20 Aug | Mike | The only useful place I've ever used goto was in eliminating tail recursion. It was an exercise in one of my programming classes and I had to use it in an application that drew a model for a statistical processing package I did some work on. The validation routine checked for cycles in the graph, since these were illegal, and for the first (and last) time I found the use of goto and multiple stacks easier than using recursion or any other control structures.
Goto has its uses. The collective wisdom here seems to be that goto should be used sparingly, which makes more sense to me than the more common place repulsive response to the construct. I've seen people that have the same reflexive repulsed response to recursion as most people seem to have with 'goto'. Both mystify me, because in the proper context both constructs can be very useful. |
| Fri 20 Aug | Doug Withau | Your as bad as you want to be baby!
sorry. |
| Sat 21 Aug | Dennis Atkins | I worked at a place where the Vice President of Engineering made all the rules and was responsible for personally coding the trickiest parts of the applications. He had a PhD in Sociology - he bragged that he learned BASIC all by himself. He had never studied CS.
sample code:
#define LET
...
LET x=1;
LOOP_17:
Z = Z + strlen(CONSTANT_SIZE_STRING);
if (X <= 10) goto LOOP_17; |
| Sat 21 Aug | Dennis Atkins | I should mention that at the time I made $5/hr and he made $750,000/yr. |
| Sat 21 Aug | Tayssir John Gabbour | 'If you have never written code in FORTRAN, you don't know the ubiquity that goto statements had.'
Good point. Languages that aren't well-developed can encourage overuse of a powerful construct. And that can stigmatize the powerful construct because it was more a symptom than a disease.
I did a little Fortran 77 to extend a physics dept's legacy software. I wish I could remember the control structures I used. |
| Sat 21 Aug | . | void TextBookExample_Transaction() {
if(do_step1()) {
if(do_step2()) {
if(do_step3()) return;
else undo_step2();
};
else undo_step1();
}
}
Basic structured programming, nothing like your spaghetti with three 'goto's.
(Disclaimer: the above is only to illustrate how it is done in a structured form; I make no claims about it being correct or free from bugs - I only spent two minutes on it.) |
| Sat 21 Aug | Chris Nahr | 'I did a little Fortran 77 to extend a physics dept's legacy software. I wish I could remember the control structures I used.'
Computed GOTOs? Procedures with multiple ENTRY points? :-D |
| Sun 22 Aug | . | ... oops, there is a bug. :) There's a situation when one undo is not reached. |
| Sun 22 Aug | Bill Brown | I just recently used goto in an ASP.NET web application written in C#. Basically, a login is attempted. If the login is unsuccessful and a specific error is given, then the system tries to enroll the user. If that is successful, then it has to sign them on. Using a single goto, I avoid repeating myself with the sign on validation. Control is passed back up to right before the results of the login attempt are validated.
I wrestled with trying to avoid using the goto because of the stigma, but there wasn't any way to get around it without massive circumlocutions. Goto is best used sparingly; I don't think there's any reason to avoid using it entirely. |
|
| Does your employer mandate your hours? | Thu 19 Aug | Joe Ganley |
| I started to post this as a comment to an earlier topic, but it was more general than the original topic, so I decided to hoist it to top level.
Im curious: Do a lot of employers mandate specific hours? Most of my experience is with Silicon Valley companies, where my employers havent cared much at all what time or how much Im at work as long as the job is getting done. It seems obvious to me that this is the only model that makes any sense, but I know it is far from universal.
On the other hand, I worked very briefly at an East-coast company who mandated 9 to 5. Occasionally I would skip out early, and Id find pissy post-its on my screen the next morning like, Its 4:00. Where are you? I didnt stay long after that.
So: What is the more common model? Is this more or less an East-coast/West-coast thing? Dont the hour-mandating companies realize that youll have much better employees if you trust them to do their jobs and let them do so when they wish? (One of the best coders Ive ever known couldnt drag himself into work until near noon most days, but he stayed well toward midnight most nights and he was really productive. Making him work 9 to 5 wouldve cut his productivity by at least 50%, not to mention his actual work hours by at least 1/3.) |
| Thu 19 Aug | Philo | Camel fired me for not keeping their mandated hours (be in the office by 9:30). This was while I was an independent contractor.
A previous employer also 'suggested' I try to be in the office before 10am, while I was an independent contractor.
The Navy also had some kind of weird thing about working hours...
Microsoft, however, just wants the work done and scheduled meetings attended.
Philo |
| Thu 19 Aug | patrick | we have recommended hours. i actually like concept of getting up every morning and going to the office to work. i might not always like what happens, but it's a nice dream ... |
| Thu 19 Aug | Sassy | I pretty much work 7:50- 5 - I like getting up and getting done early.
That said, my big boss, the CFO, wanders the office and makes sure everyone is in their seats. Just like the 4th grade. |
| Thu 19 Aug | yawn | Can't wait to read muppets predictable comments on this topic... |
| Thu 19 Aug | Sid | I can pretty much come and go as I please. Today I left at around noon to take care of personal stuff. My boss doesn't care as long as I get the work done. |
| Thu 19 Aug | Edward | We generally have to be around from 9 - 4, with some exceptions.
Working long hours is usually discouraged, since it doesn't seem to lead to as much productivity increase as one might think. As well, I've seen it promote more procrastination than necessary (Yeah, let's go drinking, I'll just work till 4 am tomorrow morning to get it done ;-) ).
The telecommuting thing has been tried; that didn't lead to anything worth promoting.
Yes, there are exceptions; I'm talking broad strokes here. |
| Thu 19 Aug | Greg Hurlman | I get both. I have to be at work by 9, but can leave whenever (well, whenever after lunch anyway), as long as the work is getting done. |
| Thu 19 Aug | Chris | At my current company we have fairly flexible hours and it's a fairly conservative financial services company. We have a guy who comes in around 6am and leaves at 2pm and another who comes in around 11am and leaves around 7pm. Most people come in between 9 and 10 and leave between 5 and 6.
I don't think I could work anywhere that didn't have at least that level of flexibility. |
| Thu 19 Aug | The mad Hungarian | My boss is obsessive about coming in on time. She has no idea what I do all day or how I use my time, but heaven help me if my butt isn't in my seat at 8:30. If you dare to suggest that coming on time isn't all that important since you make up the time anyway you get stock speach #12 about how she always came to work on time even when she was a single mother with two young children.
I once managed a a group of engineers who liked to work late hours. They would come in at 10 or so and then work till the wee hours of the night/morning. They liked the quiet at night, and since the work got done and they were in during most of the day, I took no issue with their hours.
Then a funny thing happened. They started coming in later, and staying later. I was getting in at around 6:30 AM back then and I would see them just leaving for the day. The process continued until they found themselves keeping normal daytime hours again.
At least for a couple of weeks. :) |
| Thu 19 Aug | Peter | Current place wigged out anytime I arrived after 8 am. Since I now am travelling via public transport, the last bus of the morning will get me to the office at 0730. Since there are 3 busses I can utilize, they get me to the office between 0630 and 0730. The only time I called in because I overslept, word got back to me that one of the co-owners said something like: 'if I took that call, the only question I would have for him is where does he want his final check sent.' Sounds like it is time for a new job.
A previous place I worked at was run by an old ex-army guy who believed that if you were not in the office by 0730, you were late, no matter what your scheduled hours were. Watching what went on, since he claimed to be in the office by 0500, he got nothing done in the first 2h 30m each day. But by god, you better be there or else. All meetings were scheduled for 0700 (during which nothing got done except moaning about coffee).
Most places I have worked at were looking for 0830 to 0900 for arrival times. One was very flexible, since we had to support a call center and network center which were open from 0700 to 2100, one of my group liked early mornings, so he was there by 7am, I prefer afternoons, so I arrived at 1100 and left at 2200.
Hint: if they mandate your hours, you cannot be an 'independant contractor.' That is one rule that will cause you and your employer to fail an IRS audit, should the matter arise. |
| Thu 19 Aug | <sigh/> | 8 to 5 with an hour for lunch between 12 and 1... I kid you not. Fortunately, I no longer work there! |
| Fri 20 Aug | Edward | I'm not certain what 'independant contranter' precisely means, but I've worked as a contracter where the hours were set between 7:00 and 18:00. You could work whatever hours you wanted inside that.
To be fair, it wasn't their requirement, but a by-product of their Top-Secret work. There was a few exceptions, but that was usually reserved for upper management due to the security headaches involved. |
| Fri 20 Aug | Edward | Might help if I could spell contractor though. |
| Fri 20 Aug | nonUniq | Wow. How does anyone who isn't a morning person last year after year at jobs that require an exact on-time early AM presence?
I was fired from my first real job at the age of 20 for arriving at 8:05 for five days straight, instead of 8 am.
Thank goodness that happened to me early. Ever since then, I've gotten that issue out of the way: I'm never going to be a regular, early bird worker bee and I let my employer know that.
My work zone goes in streaks anyway. I worked 20 hours straight yesterday because it was going good. I didn't do anything today and I worked from home. I may never have it this good again, but I won't ever work a job that doesn't allow me to be at my best. |
| Fri 20 Aug | Kyralessa | 'How does anyone who isn't a morning person last year after year at jobs that require an exact on-time early AM presence?'
By becoming a morning person, perhaps? At the place where I work now, we can do just about any hours from 6:30a-3:30p to 9a-6p, just so long as we get our 40 in. I've never been a morning person, but going in at 7, I've found that I can get a lot done before other people get to the office and start yakking.
Of course, if I worked late hours the office would be just as quiet at the end of the day. But as the day goes on, my will to work ebbs, and that last hour or so is very nonproductive. Starting early has the incentive that even in the winter it'll still be light out when I get done.
One thing that really helps wake you up for a morning job is a bicycle commute, if you have the necessary conditions for it. |
| Fri 20 Aug | nonUniq |
'By becoming a morning person, perhaps?
...
But as the day goes on, my will to work ebbs, and that last hour or so is very nonproductive. '
Perhaps you could change YOURself by becoming someone who doesn't need a push to become productive.
Sorry to be snide, but...I find it nauseating that people are willing to change their whole being by giving up so much to their employer, who could easily hack off your head (assuming you are American).
I value my morning time. I only sleep well between the hours of 2am and 7am, and I'm not willing to give up not having to punch an alarm clock.
By insisting that my life run the way I want it, I get more out of it. Sleeping in means I'm a nicer person throughout the day.
Of course, I didn't complicate my life by having children. This way, I can tell people to kiss off at will. I value that more than anything in the world. |
| Fri 20 Aug | Wacky midwestern guy | Should an employer mandate set hours?
It isn't an easy 'yes-no' answer... do you want the operators at the local nuclear plant all checking out early because 'things seem to be running smoothly' and they don't think they have more work to do?
Likewise why does some back office drone have to clock 9-5 if the poor stiff has been done for two hours already?
People (and I include managers as 'people'... usually anyway) have to use common sense here... or at least should try to use common sense. |
| Fri 20 Aug | Aussie Chick | Can I ask the question, does anyone prefer set hours? I ask because it seems a good deal of people work to them.
I for one struggle with them so badly.
I love getting to work early in the morning, in summer I have been known to be at work before 5am (admittedly I lived a 10min walk from work). Yet I am stepping out the door as the clock hits 5.00pm I just want to leave as soon as I am allowed. Unless I am enjoying a task and have forgotten the time (rare that anything is that much more exciting then being home), my productivity hits zero about 4pm. |
| Fri 20 Aug | Sassy | I prefer set hours.
Realistically, I'm not interested in being at work past 5. I like the day, I like to go outside.
I basically just like to get to work as soon as I'm awake. That means wake up at 6-6:30, at work 7-7:30, home by 6.
There simply aren't that many more hours in the day where I can produce. |
| Fri 20 Aug | !alwaysontime | My job requires me to report by 8.30am. My bosses don't hang me or send stick post-it notes on my 'puter for being late. BUT whenever they get the chance, they would take turns to wag their fingers at me and pass reprimanding statements in department meetings where the whole team is present.
It doesn't matter if I have delivered outstanding work, or generated $xxx millions for the company, or stayed back past midnight or worked the whole weekend for them. They just want me to be in the office *before they do* - every single work day. My immediate sup sticks her head into my cube to see if I'm around as she walks past.
I once worked till 3am and got busted in front of all my co-workers for not being back in office by 8.30am.
Now, how does one get one of those jobs with flexi hours? |
| Fri 20 Aug | no name | When I joined we had to be here starting at 9am. Then we got a new management team (or rather existng one was let go and a current manager stepped up into the head of engineering position). He mandated be in by at least 10 am. Then he quit and we got a new head President of this branch and he mandated be in by 9am.
It's amazing how people that know nothing about the egineering process or company life think they can improve worker productivity by having everyone here at 9:01am. It's a joke. It's an insult.
Why do people say make 'yourself a morning person'. Why don't they say 'I'll make a myslef a night person'? The reason? Tolerance and ignorance. They have none and they have a lot. They want things done their way if if it hurts.
I would easily feel good about coming in a 9am if I knew the head of engineering had read peopleware and disagreed with it, but when I ask him about it he says, 'What is that? Software? I just need everyone to be here an working at 9am'. |
| Fri 20 Aug | one programmer's opinion | My experience is that large non IT corporations tend to be real sticklers when it comes to mandated hours. Whenever, you start a new job or find yourself reporting to a new manager you should always ask about flex time and whether a 'core hours' policy is going to be enforced.
While I believe that most good programmers truly are special snowflakes and software development/maintenance work is very different from what a typical office worker does on daily basis, most managers don't seem to agree with this POV. |
| Fri 20 Aug | www.marktaw.com | I worked in a place that had flextime and core hours.
The core hours were 8:30am to 7pm. They were flexible about whether or not you wanted to show up at 7am or leave at 9pm in addition to that.
I usually showed up around 9:30-10:00am and snuck out of the office at 8:00-8;30pm.
Those were the days. I never got anything done, but boy did I work a lot of hours. I also always felt like I was cheating the company by surfing mindlessly.
What really sucked was that I was forced to work off of a server that was always put to some other use until 4pm, so I couldn't start work until 4pm. I'd complained about this a few times, but nothing was ever done about it.
Real flextime: Better.
Work any hours as long as you get things done: Best. |
| Fri 20 Aug | www.marktaw.com | Oh, and did I mention the 9am on Monday weekly meetings, or the 5pm status update meetings and the "Who wants to work on the weekend" Friday evening crap we had to go through? |
| Fri 20 Aug | PopCulture | Peter...
'The only time I called in because I overslept,'
You NEVER oversleep. You can wake up with a sore throat, stomach flu, etc. and then show up a few hours later after the DayQuil, Vicks, {insert Over The Counter medicine here} kicks in... but you NEVER oversleep.
I thought they taught that implicitly in college :)
But talk about overreaction on the part of the owner... you have my condolences... |
| Fri 20 Aug | no name | > if you were not in the office by 0730, you were late
7:30? AM?! I do remember once hearing of that time of day, but assumed it was a myth. |
| Fri 20 Aug | Neil Hewitt | I've worked in all three environments - set your own hours, flexitime, and - currently - incredibly anal be-on-time-or-else.
It's definitely a cultural thing for the employer. It's not just large companies that are fixed hours freaks, though. My current employer is a 25-man company and 3 minutes late is considered 'properly' late and will probably get you a lecture.
Had you asked me a year ago, I'd have said I prefer to set my own hours, no question. Now I'm not so sure. I'm definitely not a morning person, but there is something to be said for consistency of hours - it certainly has helped to fix my sleeping pattern, which used to be all over the place.
There are advantages to fixed hours beyond keeping your life consistent, too - the team is all in at the same time, so communication is better; the non-techies are all in at the same time, so PMs and PHBs prefer it; and of course your clients are going to be around during normal hours and will be annoyed if they find they can't call you because you don't start work until they go home.
One thing which does amaze me is the (not uniquely, but mostly) American predeliction for starting work so damn early. In the UK, the vast majority of offices don't start work until 0900 or 0930. The idea of having a mandated 0830, or worse, 0730 start seems a bit perverse - you'd need to be going to bed at 8 or 9pm just to get enough sleep... personally I rarely go to bed before 1am as I just can't sleep any earlier.
But then I guess it's the same cultural difference that means US employers get away with only offering 5 days paid holiday a year, when UK employers have to give a minimum of 20 (plus official bank holidays etc), and the whole 'at will' thing which means your employment is never truly protected no matter how long you work at the same company. Over here, if you've worked full time for an employer for 2 years your employment is protected and you can't just be dismissed for no reason - and if you're being let go because your job is redundant they at least have to pay you something. OTOH, too much regulation can certainly be a bad thing :-) |
| Fri 20 Aug | a cynic writes... | Yes - 9.30-5.30 (although they don't quibble about a few minutes either way). I get to choose when I take my 28 days holiday though. Other than that I agree with Neil - you poor workaholic buggers... |
| Fri 20 Aug | www.marktaw.com | We all just need a good dose of Gene Therapy
http://news.bbc.co.uk/2/hi/science/nature/3557310.stm
http://www.nimh.nih.gov/press/prworkaholicmonkey.cfm
etc.
'The monkeys became extreme workaholics, as evidenced by a sustained low rate of errors in performing the experimental task, irrespective of how distant the reward might be,' said Richmond. 'This was conspicuously out-of-character for these animals. Like people, they tend to procrastinate when they know they will have to do more work before getting a reward.' |
| Fri 20 Aug | Seen it all.... | I'm a independent contractor at a smallish (100) person company in the midwest. I'll generally work 7AM-4PM and eat at my desk 3 days a week or so.
EVERYONE there (CEO to grounds people) work the same hours but also take 12N-1PM for lunch. I kid you not - in almost 4 years I can think of two times when I saw someone in the building between noon and 1 or after 4. The people line up in the parking lot before 7AM and won't walk into the building until the clock inside the door strikes 7. This includes the CEO and all senior management. There's a line at the door at noon and a line again at 1PM.
I routinely get stared at in shock when I leave at 11:45 for my run to the border and then come walking back in at 11:55 with my tacos while everyone is lining up in the hall.
Nobody seems to mind that their business shuts down for an hour each day. They operate a large call center servicing several time zones - at lunch the phones go unanswered.
The funniest things? For lunch most people go sit in their cars in the parking lot. Don't even drive to the park or anything. In fact they invite people over to their car for lunch. Weirdest thing I've ever seen.
They get a new UPS unit for the data center. Requires power to be shut off for a few hours to install. I'd schedule that during off hours. When do they do it? 10AM Monday. The entire company sits around for hours with nothing to do because the systems are down. In fact, at one point they jacked something up and cut the power to the entire building. People just sat at their desks staring into darkness. At 11:55AM the lineup to the parking lot began.
Despite that, they're HIGHLY profitable. |
| Fri 20 Aug | Woodentongue | I don't care as long as the work is done. I expect people to work their contracted hours over a month but within that I really have no issue with when people work. We have suggested minimum hours, so if you are coming in at all, you need to be available 10-12 and 2-4 so that there is always a slot for meetings. Some meetings are also mandatory. If you want a day off you have to book it. Some people start late and work into the evening and some people start really early.
It's important that people are comfortable with their hours.
In my first job everyone was expected to be in place by eight thirty. Everyone turned up at the same time. Security was a crush. The carpark was a crush. The coffee machines were overloaded. The worst part was if I had a slow day, or if I was feeling fallow, I ended up clockwatching. Now, If my brain runs out of juice, I can just leave. It makes productivity much higher. |
| Fri 20 Aug | Aussie Chick | It does seem a very European thing to start late. ie restaurants don't open until 9pm that sort of thing.
I imagine Australia is more like the US in that regard. I prefer an early start because I get home earlier. Dinner is over and done by 7pm and most restaurant kitchens are closed by 10pm. |
| Fri 20 Aug | Matthew Lock | What part of Australia do you live in? Here in Perth people start between 8-9pm and resturants are open till well into the wee small hours. |
| Fri 20 Aug | Matthew Lock | 8-9pm I wish! I mean 8-9am. |
| Fri 20 Aug | Rhys Keepence | What time sun goes down has a big effect on what time things happen. Where I am (Queensland) the sun goes down between 5 and 6pm.
I just got back from Paris and at the moment the sun goes down at around 10pm. So you don't eat until 9 - 10pm and don't start partying until midnight. |
| Fri 20 Aug | Bob | I was working as a full time employee at a software shop, and had an employee review.
There was a scale of 0-5.
One of the questions had to do with 'availability', meaning how many hours were you at work.
I was very productive, and at the time was working ~55 hours a week, first one in, last one out.
They gave me a 3.
Needless to say, after that, I worked only 40, and had a started a new job in 3 weeks. |
| Fri 20 Aug | Greg Hurlman | 'Wow. How does anyone who isn't a morning person last year after year at jobs that require an exact on-time early AM presence?'
That's easy. I rarely got up before 11 during my college days (only had one class before 11 during my entire college career - go me), but had to be at my first internship every day by 8am.
It was then that I discovered that coffee is actually a good thing, if taken in appropriate (see also: largest cup possible) doses. |
| Fri 20 Aug | indeed | 'Core hours'--and the 'face time' philosophy in general--is nothing but a cargo cult. It falls into the same category as overtime in the political spectrum.
People work overtime, generally, not to actually produce but to cover their asses and look like they're absolutely committed to the team. It's an exercise in visible, virtuous self-sacrifice.
Core hours are much the same. They are the assignment of virtue to arbitrary punctuality. One who respects the core hours is the consummate team player, willing to synchronize himself with the time (and therefore the goals!) of the company.
Everyone should realize that no hours on a clock are more virtuous than others. The company's heartbeat is its profit and loss cycle, not some political circadian rhythm.
And, as (I think) Philo and others have discovered, another purpose of core hour rules is to give managers a convienent excuse to shaft others. Nevermind a fair and honest evaluation; 'he didn't come in on time' is rather straightforward. |
| Fri 20 Aug | Joe Ganley | Thanks for your responses, everyone. Yikes. I'll be sure to ask about this during/before any future interviews.
What strikes me, as many of you have commented, is how plainly (to me) stupid this is. At that heinous 8-to-5 company where I briefly worked, you better believe that I was out the door at 5:00 sharp, even if I was in the middle of a thought, even if I was on a roll and would have had two or three more hours of work in me that day. And the extra two hours of work I currently do at home after the kids go to bed? Forget it. Developers know when they perform best, and making them work elsewhen makes them doubly unproductive because they're at off-peak performance *and* they're unhappy.
So dumb.
BTW, I should've mentioned that I meant software development, not jobs where your schedule is tied to someone else's (e.g. customers). And I also understand that in some places hours are mandated by security/clearance/contract issues. |
| Fri 20 Aug | Peter | PopCulture, the alarm clock either did not go off, or I slept through the honking noise of it. That is how I overslept that one case. |
| Fri 20 Aug | www.marktaw.com | Joe, you obviously weren't forced to sign the contract I was forced to sign just before the 'culture shift' that said:
1. The company can fire me at any time for any reason.
2. I must be available at a moment's notice any time night or day.
One guy at the office had to quit his part time gig as a volunteer firefighter because of it. I already told you about the 5:00 status meetings and the server that wasn't available until 4pm... |
| Fri 20 Aug | muppet | Funny, when I espouse these sorts of ideas.. people get the pitchforks out. :) |
| Fri 20 Aug | Jack B. Nimble | I haven't had mandated hours at either of my last two jobs, which was good for me.
Not having mandated hours is good for the employees, but can be a bit of a problem for the company itself. In both jobs, there have been a lot of people who have used the flexibility to work fewer hours than was required by the employer. I'm not talking about an hour here or there, I'm talking about literally HUNDREDS of hours per year. In both cases (so far), no one has even been reprimanded for it, but it has become a bit of a sore spot for those of us who do play by the rules. |
| Fri 20 Aug | Jeff Kotula | First up: my preference is core hours with flex-time on either side.
But one thing I think is missing is this discussion is that it isn't always about the productivity of individuals, but rather about the productivity of the team as a whole. Sure, it can be a power play or anal-retentiveness, but it can also be a sincere effort to try and keep the work *as a whole* moving forward well. As individual contributors we worry (quite rightly) about our individual productivity and chafe over seeming impediments. But again, maximizing the output of each individula is not the same thing as maximizing the output of a team. |
| Fri 20 Aug | Myron A. Semack | We try to keep people here from 8am to 5pm, with an hour for lunch between 12 and 1. If you need like an hour off to go run an errand, no one says anything.
Those times aren't religiously enforced. Some people come in at 7:30. Some come in at 8:30. Some people leave right at 5. Some stay until 6ish.
I agree there should be some flexibility (if someone comes in 15-20 minutes late, it's ok as long as the work gets done). However, I do not approve of letting people come in whenever they want.
I've found that it leads to a major lack of discipline. Once the lines become blurred between when they should show up and leave, it gets blurred for other things. Before long, you have programmers doing nothing but browsing the web all day with the attitude 'I'll just stay all night to get it done'.
On top of that, random work hours tend to adversely affect the social life of the employee. They can put huge strains on a relationship. This leads to an unhappy (less productive) employee.
Part of being a good employee is discipline. Discipline to comment your code. Discipline to use source control. Discipline to to actually spend some time making the code neat and modular.
I like sleeping in as much as the next guy. I sleep in until noon every weekend. But if you can't discipline yourself enough to wake up every morning and come to work at a reasonable hour, then you're not disciplined enough to be a good employee.
I'm not saying you have to be here at exactly 8am, but if you start showing up more than an hour late, I start to become concerned.
(I'm sure at least someone will flame me for this) |
| Fri 20 Aug | Dennis Forbes | 'But again, maximizing the output of each individula is not the same thing as maximizing the output of a team.'
Fair enough, but if there truly is a hit to team output because people can't call an on-demand meeting at 9:02am or 4:57pm, then something is fundamentally broken in the team to begin with (i.e. it's a red herring). The 'doing what's best for the whole' has been used to justify all sorts of self-destructive policies (take a look at communism). |
| Fri 20 Aug | anon-88 | I don't realy have a preference, but I do have my requirements.
If its a mandatory set hours, then the amount of time I spend working will match the schedule to the minute.
The opposite is also holds, If they're flexible, then so am I.
I if have to give up my personal time, then they can give up work hours. I usualy have no problem working late into the nite. But if I work till 2-3am, don't expect me to be at my desk exactly at 8am.
As a salaried employee, there really is no incentive to work beyond the standard 40 hrs unless there is some extra reward. I know keeping my job should be reward itself. But if my effective hourly rate goes down, then what's the point? |
| Fri 20 Aug | Dennis Forbes | 'But if you can't discipline yourself enough to wake up every morning and come to work at a reasonable hour, then you're not disciplined enough to be a good employee.'
You've taken the classic mistaken approach of presuming that flexible hours means lack of discipline, which is entirely missing the point. Someone may choose to work 11-7 because they got up at 6 and went to the gym, got their grocery shopping done when the aisles are empty and the shelves are stocked, and then commuted on the beautifully empty highway where they'll have ample time to meet with business partners and codevelopers, and then enjoy a quiet workplace for some highly productive output. For a similar reason other people opt to work 7-3 (are they the 'super disciplined'?). In any case the only way to measure the productivity of software developers is output, and if you don't have awareness of that and instead substitute sneaking around and peeking at what they're doing (or proxy servers or punching the time clock when they arrive in leave) then you _are_ being screwed - that method of management virtually guarantees sloth.
Flexible time has to do with optimizing one's life, not about sleeping in.
One sidenote - Homorous when shops decree that people work 9 hours, with a mandatory 1 hour unpaid lunch. |
| Fri 20 Aug | nonUniq | Haha.
Undisciplined because of flex time? Gimme a break.
How stupid is it that corporate America hits the roads at the same time, driving on crowded highways, stressing out?
Stupid. If everyone had flex time and used it, the 'market' for expressways would solve itself.
I sleep til 7:00am, go to the gym, shower, change, grab my laptop and ride my bike 8 miles to work, in my office by 9:30-9:45 most days. I work until around 6:15-6:30, ride my bike home, or during inclement weather, I take a NON-CROWDED train.
Anyone who says I'm undisciplined doesn't know me. Yes, if you hire a bunch of immature hacks who TAKE ADVANTAGE OF YOU, YOU DESERVE IT. |
| Fri 20 Aug | Myron A. Semack | I made no such mistake. Someone who's not disciplined enough to wake himself up in the morning is NOT disciplined enought to be a good employee.
I find it no coincidence that the people who have the hardest time making it here in the morning are also the worst performers. They are always the ones with the sloppiest code. And yes, I do review everyone's code.
Also, I NEVER said people who work 7-3 are super disciplined. |
| Fri 20 Aug | nonUniq | 'Someone who's not disciplined enough to wake himself up in the morning is NOT disciplined enought to be a good employee.'
Well, let's be clear, then. I never said I can't wake up. I won't.
Not for an asshole boss, not for anyone, unless *I* want to.
My life, my rules. I work for people appreciate my talents and will not try to pigeonhole me based on some ridiculous, mythical Puritan work ethic that other more reasonable western cultures dismiss. |
| Fri 20 Aug | Neo | I've always been a night person, not a morning person. I've worked many jobs that said I had to be in by 8 or 9. I've usually shown up late. I have a very difficult time making it anywhere by 8 or 9. And I'm not productive in the morning AT all. I hate traffic and rush hour and that makes it even more difficult Jobs that have disciplined me and told me to show up at the mandated 8 o 9 start time, I've made an effort to comply. It usually doesn't last and I've been disciplined again. A few companies turned a blind eye because I was the person who put in the MOST hours of anyone and got more done than all of the loyal 9-5ers. I was also the one who they asked to come in on weekends and I did it. I was the one who came in super early (5 a.m.) on the days when they launched some new application and had last minute freak-outs. I was also the one with the pager who they called when something went wrong and I always went in. I just have a tough time with 8 and 9 start times. I also have a tough time with 5 o'clock quitting times. They don't suit me.
Now I work for myself. Some days I start at about 8:30. Other days I start at 9:30 or 10. Some days I work till 2 or 3 the next morning. I rarely take off in the middle of the day when I'm busy. If things are slow, I like to get outside and enjoy life when it's sunny for a few hours. I work really hard. I'm very productive in the afternoon, evening and even night hours. When I'm onto something, I like to roll with it. I work on weekends. I don't like having set 'work' days and set 'play' days. That depresses me and makes me hate Sundays because the next day is Monday.
My code has never been sloppy. I'm not a sloppy person. My code has always been some of the cleanest and organized. My previous bosses always complimented me on my work ethic and said I did the work of 2 people. 'If Neo could only make it in on time ..' was usually the only complaint. Progressive companies promoted me and I spent a good deal of time as a supervisor/manager. I never judged anyone under me by their punctuality. However, I did look at total time worked. If they came in at 9:30 and left at 4:30 we had a problem.
Trying to make me a 9-5er is like trying to fit a square peg into a round hole. I resent anyone's remarks who thinks that means I'm not a good performer or that I'm sloppy. I'm an excellent performer and I'm not one bit sloppy.
To the person who said all that, I think you should stop judging everyone by the same standards and look at each person's individual qualities. In my opinion, that makes a good manager. |
| Sat 21 Aug | indeed | 'Part of being a good employee is discipline. Discipline to comment your code. Discipline to use source control. Discipline to to actually spend some time making the code neat and modular.'
What a bunch of parochial bullshit. Sorry to flame. :)
The term you're looking for is self-discipline, not discipline per se. You're describing a sort of parental discipline, the carrot and the stick.
We're all (for the most part) adults here, in the working world. We do not need to be mommied and daddied. If you think discipline should be externally imposed, then you may also be led to the conclusion that we should all code with a monitor constantly looking over our shoulders to ensure quality.
Let's dispense with the 'command and control' attitude in the workplace once and for all. It heightens the already-burgeoning distrust that permeates business. Programming is a creative job that comes in ebbs and flows; the quality of mental output is not a function of forced exertion but, more often than not, the right conditions.
Consider 'flow,' the state in which quality mental output occurs. It's decidedly fragile. I think we should carefully consider whether, in addition to loud and materially-oppressive workplaces, another factor in the hindrance of flow is a forced sleep schedule that does not fit the employee well.
Not that I have empirical data to back this up, but I think it's a pretty intuitive conclusion. There's something obviously wrong when we observe the 'need' of employees to imbue themselves with caffeine to begin their workdays. |
| Sat 21 Aug | dover | word |
| Sat 21 Aug | Egor | People coming late = wrost performers? Give me a break. In my experience, those who were late were just able to afford it without fear of being fired. Such valuable empoyees they were. |
| Sat 21 Aug | Joe Ganley | Firstly, Myron, thanks for having the courage to post your beliefs when they're obviously flame-attracting.
However, I don't believe in your logic. If there's any connection at all between the on-time arrivers and the good performers, it isn't cause and effect; it's because the people who take their jobs seriously both perform well and arrive on time. Think how productive those people would be if they had some flexibility.
What about people like me, who are extreme morning people? When I worked in an office, I was usually there by 6:30. I'm at my most productive then. Under your plan, those two hours in the morning -- when I'm sharpest -- are wasted. Now that I work at home, fully 30-40% of my working hours are spent before 8am or after 8pm.
As for mandated hours as a way to force people to toe the line and do their jobs, it doesn't work. Or at least, it's a poor tool for that purpose. Instead, give your employees some flexibility, and if people slack off or take advantage of your flexibility, fire them and replace them with people who actually care about their work. Simple as that. |
| Sun 22 Aug | T. Norman | 'I find it no coincidence that the people who have the hardest time making it here in the morning are also the worst performers.'
Ever stop to think that the reason for their bad performance is that they're being forced to come to work at a time that is unnaturally early for them? |
| Sun 22 Aug | indeed | 'If there's any connection at all between the on-time arrivers and the good performers, it isn't cause and effect; it's because the people who take their jobs seriously both perform well and arrive on time. Think how productive those people would be if they had some flexibility.'
An excellent point. I think you're illustrating the 'cargo cult' mentality around forced hours.
i.e., the great performers work 9-5, so if we force everyone to work 9-5, they'll be great performers too...:)
Think about it: by the logic that's applied to forced working hours, we should also force employees to eat a certain way, too. After all, the _best_ employees certainly may have different diets than the rest of us. Let's examine their eating habits, and impose them on the general working population in the name of productivity...
After all, a good diet is also a sign of discipline. And as the above poster has pointed out, it is the role of companies to impose discipline on their poor employees. |
| Sun 22 Aug | Neo | Well then, let's enforce a uniform dress code as well so that everyone wears the same clothes. Perhaps what they wear affects productivity levels.
In the case of women, they have to think about what makeup to wear as well so let's ban makeup in the workplace.
And on that subject, I think everyone should have the same haircut.
Oh I get it now .. we're redesigning the military. |
| Sun 22 Aug | no name | Why not just enforce everyone to work between 11am and 7pm? Then those who appear to be the best performers and most disciplined are a different set of people (the people that like those hours). The 9-5 would be so angry and upset they might have worse perfomance.
What a ridiculus concept that those who like 9-5 are the best disciplined. What about the 8-4 and 10-6 crowd? Ridiculus!!
Can't anyone realize there are different types of people in the world and if you want to have a successful company you need to be 'Flexible' in many aspects of managing them. It's such a simple concept. |
|
| Microsoft pays for insults through ignorance | Thu 19 Aug | TheGeezer |
| Insensitive computer programmers with little knowledge of geography have cost the giant Microsoft company hundreds of millions of dollars in lost business and led hapless company employees to be arrested by offended governments.
http://www.guardian.co.uk/online/news/0,12597,1286066,00.html |
| Thu 19 Aug | mb | bah.
such ignorance as not knowing what direction the (political) wind is blowing in some intolerant country. |
| Thu 19 Aug | Art Vandelay | If a foreign software company produced software that said Nebraska is part of Canada, how many people in the US would be so outraged that they wanted the program banned and software's creators arrested?
This article simply proves what we already know -- too much of the world is controlled by morons. |
| Thu 19 Aug | kc |
If you actually read the article (I did earlier today), most of the references have little to do with geography and more to do with political and language situations....
Taiwan and China...
Kashmir and India...
'slut' in Spanish... |
| Thu 19 Aug | nuke them all | '23 out of 56 young Americans knew the whereabouts of the Pacific Ocean'
Thats another one of them evil empires huh? |
| Thu 19 Aug | the artist formerly known as prince | this does prove that the English, have no idea how to write. This article is horrible juornalism on so many levels, its not even funny. |
| Thu 19 Aug | i've been trolled | 'more to do with political and language situations'
'the English, have no idea how to write'
Oh I get it, you're all pretending to be that stupid aren't you? |
| Fri 20 Aug | Edward | Funny how the article refers to Americans, when there's a lot of North and South Americans who resent that term being used for citizens of the U.S. of A. ;-) |
| Fri 20 Aug | Geert-Jan Thomas | Just wandering, not trolling.
How would you call a citizen of the U.S. of A?
If not 'American'.
(I can think of a few but will not mention them here as I am looking for a serious answer) |
| Fri 20 Aug | yet another anon | 'If a foreign software company produced software that said Nebraska is part of Canada, how many people in the US would be so outraged that they wanted the program banned and software's creators arrested?'
It depends. If the software creators made the mistake because they thought that, like Nebraskans, Canadians were also 'Americans', then I could get a lynch mob together in 5 minutes.
The software might be very popular in Oklahoma, though. |
| Fri 20 Aug | Karel Thönissen, still Kingdom of the Netherlands | From the article:
Uruguay is a republic and proud if it but in Microsoft's Outlook in Uruguay, the company offended the government by describing Tuesday April 30 as the queen's birthday.
Hey, that is us! |
| Fri 20 Aug | yet another anon | I go by American because
(1) The word 'America' is actually part of the name of our country (unlike all the other North and South American countries).
(2) USian sounds stupid.
(3) US citizen is too wordy |
| Fri 20 Aug | no name | [from the article]
'decisions on what to do [were] taken entirely on commercial grounds
when employees were arrested in Turkey because Kurdistan had been shown as a separate entity on maps of the country, a decision was taken to remove Kurdistan from all maps'
So if you get thrown into jail, don't think MS will give a shit unless it happens to benefit their bank balance as well. |
| Fri 20 Aug | no name | > this does prove that the English, have no idea how to write.
Judging by that 'sentence' that's a pretty funny thing to say. Quite aside from the logic. |
| Fri 20 Aug | a cynic writes... | 'this does prove that the English, have no idea how to write. This article is horrible juornalism on so many levels, its not even funny. '
I think you meant to write:
This does prove that the English have no idea how to write. This article is such horrible journalism on so many levels that it's not even funny.
Being English, I could be wrong of course. To add a surreal touch, the Guardian had such a reputation for misprints in the typesetting era that Private Eye refers to it as 'The Grauniad'. |
| Fri 20 Aug | JP | Or possibly he meant that the English have a style of journalism which differs to that of journalists in the USA, so it must obviously be worse rather than, say, different....
Factual titbit: Hull University's History and English departments used to (and probably still do) have quite a lot of American students visit on exchange years. Initially they tried to teach said students to write essays in the English style rather than the American for the duration of the year, but the results were pretty poor: most of the students continued to write essays in the American style regardless, because that was the 'right' way to do it. To avoid having to fail every one of these students, they ended up instituting a (very) unofficial policy to just add 30-40% to every American student's marks. |
| Fri 20 Aug | no name | They don't speak proper in 'ull anyhow. |
| Fri 20 Aug | Stephen Jones | "The Grauniad" was chosen to avoid libel cases. |
| Fri 20 Aug | Stephen Jones | The Americans ignorance of Geography is notorious.
A few years back at a sales pitch, the Scott Foreman representative remarked that at one conference of educational book sales representatives (nearly all of them PhDs) a speaker asked what where the three most populated States in the USA. I ventured California, New York and either Texas or Florida. He informed me I was correct and that out of 2,000 attendees he and three others had volunteered the correct information ( I knew it from the number of votes in the electoral college for US President, and he guessed it from his companies sales figures). All five of us had one thing in common - none of use were Americans! |
| Fri 20 Aug | Stephen Jones | And the British are not that much better.
When the Malvinas war started in 1982 a newspaper did a survey asking where people thought the Falkland Islands were. Over 50% thought they were off the North of Scotland, which appears reasonable until you ask yourself where the hell did they think Argentina was! |
| Fri 20 Aug | kc |
The general US citizen's knowledge of geography is abysmal.... now the thing to ask yourself, is 'where were these people educated?'
Oh, yeah, miserable public schools.
I had *wonderful* teachers in the public schools that I went to. Of course, most of them retired within 3 years of my graduation as they had put in the required 25 years and didn't want to deal with it anymore. |
| Fri 20 Aug | Bill Rushmore | >If a foreign software company produced software that said Nebraska is part of Canada, how many people in the US would be so outraged that they wanted the program banned and software's creators arrested?
How many Americans would actually notice?! |
| Fri 20 Aug | a cynic writes... | I think you'll find it's called The Grauniad from a time in the 1970s when it supposedly once mis-spelt its own masthead. Plus the Eye actually managing to avoid libel is reasonably unlikely. |
| Fri 20 Aug | Name withheld out of cowardice | The take home lesson? 'The Guardian' is an offensive, morally bankrupt leftist rag. Turkey arrests people because a map includes 'Kurdistan' and to the author this is evidence that the programmers are 'insensitive'? There you have it...the essence of the left today.
To explain our 'insensitivity' to the foreigners, here in America we have a thing called 'The Bill of Rights'. It assures that the government can't do things like imprisoning people for making a map that shows Minnesota as a part of Canada. You might consider cutting and pasting this into your own supreme legal documents... |
| Fri 20 Aug | anon |
Americans dont have any idea of time zones either. They dont know the other half of the world is twelve hours ahead. |
| Fri 20 Aug | JP | > here in America we have a thing called 'The Bill of Rights'.
*cough* Jose Padilla
*cough* Gitmo
And to stem the 'but they're terrorists' riposte:
A) Says who? No evidence has been presented to prove they are, and they certainly haven't been tried. In the case of the American citizens, like Padilla, you have a situation where American citizens have been held by the American government for over two *years* without so much as being charged.
B) Turkey also claims that it's anti-Kurdistan measures are anti-terrorist measures.
Slightly more on topic - there was also a case last year where Cadburys published an advert (on big billboards) with maps of Kashmir, a picture of a box of chocolates, and a caption saying 'Too good to share'. That went down well....
Ultimately, the price of doing business in a country is that you *have* to hire local knowledge, or you end up getting into trouble. |
| Fri 20 Aug | a cynic writes... | I think the lesson I really get from all this is *if* you're going to sell something internationally you really need someone local to localise it.
...and now a true story...a few years ago a friend of mine worked at Cisco in the UK. One of his colleagues got posted to head office and while he was there went shopping for his kids. 'Toy Story' was big at the time and he decided to buy a Woody doll. So he walked up to the (female) assistant and asked for a woody.
I understand it took a while before the police he believed him when he said it doesn't have the same meaning in the UK. |
| Fri 20 Aug | JP | Crucial omission from the Cadburys story above - this was in India... |
| Fri 20 Aug | trollop | Nwoc, quite a few guys have been imprisoned exjudicially for years now and it's starting to smell as if their final processing will run conveniently concurrently with an election we all have our eyes on.
'American' is a bit of a mouthful so most other English speakers I've met just refer to yanks. It has the added benefit of immediately identifying innocent Canadians.
Then there's the tasty rhyming slang. |
| Fri 20 Aug | TheFBIgaveMeANewIdentity | 'How would you call a citizen of the U.S. of A?'
-Gringo
-Yankee |
| Fri 20 Aug | Stephen Jones | Dear a cynic writes,
In my time a woody was a Wills Woodbine cigarette. What other meaning has it acquired? |
| Fri 20 Aug | Name withheld out of cowardice | JP-
Just because the executive branch violates aspects of the Bill of Rights doesn't invalidate the Bill of Rights. If you were to follow the news more closely, you would have noticed that the Judicial branch has ruled that even the Gitmo prisoners are entitled to a day in court.
There is a huge difference between wrangling over what to do with prisoners of war taken off a battelfield in another country, while the war is still going on, and imprisoning people for expressing opinions. We cannot jail people here for speaking out in favor of the Islamists.
I'm not sure what your point is. Are you saying that the Bill of Rights is useless and we are no better in respecting people's rights than Turkey or Saudi Arabia? If so I would appreciate a detailed argument including evidence of some kind. |
| Fri 20 Aug | TheFBIgaveMeANewIdentity | 'The word 'America' is actually part of the name of our country (unlike all the other North and South American countries).'
People from South Africa are called South Africans, not Africans.
I wonder how the canadians, central and south americans call the US of A citizens. |
| Fri 20 Aug | JP | NWOC, my point wasn't that the Bill of Rights is a bad thing (quite the contrary), but rather that its existence is useless unless it's enforced fully and without exceptions.
Ultimately I choked on the part of your post which said, 'It assures that the government can't do things like imprisoning people for making a map that shows Minnesota as a part of Canada.' The legislation does no such thing *unless* enforced by the executive and the judiciary, and whilst the judiciary has recently roused itself to a half-hearted defence of some of it, the executive is still intent on violating it (for example, by trying to overturn the recent Supreme Court decision on the Guantanamo detainees). |
| Fri 20 Aug | Fernanda Stickpot | The earlier comment about Hull University reminded me of my own experience when I came to England from Canada at the age of nine.
In my Canadian school we had had a few lessons devoted to British English, and even if we hadn't, I'd picked it up from television shows and books.
I had always been marked between 95 and 100 percent for grammar in Canada. When I arrived, I switched over to British English, of course. But at the end of my first school year my report card marked me down for grammar: 'Fernanda will have a very good command of English as soon as she masters certain grammatical concepts.'
I know that my grammar and spelling never deviated from Standard British English, and I never received any specific criticism of my grammar all year, much less in that report card. But I was a colonial, and would therefore never be able to speak as well as a pure-bred flaxen-haired Saxon. |
| Fri 20 Aug | Fernanda Stickpot | Excuse the double-post but I meant to ask: how specifically do the British and American styles of journalism differ? |
| Fri 20 Aug | Martin Beckett | In America FOX broadcasts whatever murdoch says.
In Britain SUN prints whatever murdoch says.
The Gaurdian piece was typical laugh at foreigners silly season filler.
If there is a difference between UK/USA newspapers it is that in the UK there are 4-5 national broadsheets which compete whereas in the USA there tends to be one broadsheet per city. |
| Fri 20 Aug | trollop | Nwoc, don't shoot the messenger. Here's another:
http://news.com.com/How+eight+pixels+cost+Microsoft+millions/2100-1014_3-5316664.html
I think the thread is concerned with the abysmal ignorance of the outside world displayed in these articles and the contents of some of the above posts. Microsoft isn't the problem, it's a symptom of the problem. |
| Fri 20 Aug | no name | Stephen Jones, I don't know whether you're being facetious, but in case you're not, a woody is the state of a certain male organ when ready for sex. Woody is a noun referring to said organ in that state.
Fernanda, you asked about the differences between British and American journalism. You might have been referring to the statement about different writing styles, so I'll answer both.
If people were contrasting British and American journalism, there are two things they might have in mind. Some British journalism is regarded as some of the most trashy in the world. On the other hand, the journalism in the top British papers probably sees itself as more erudite than that of American papers. It probably has more interest in the world too, partly because of Britain's former empire.
If they were contrasting British and American writing at university, I'm not sure what they would be talking about. Possibly British traditionalists might consider British writing was better, but I don't think that's true nowadays. |
| Sat 21 Aug | Dennis Atkins | I keep hearing that the world hates Americans. glad to find out that it's not us citizens of the USA they are talking about, but rather the damn wetbacks! |
| Sat 21 Aug | Stephen Jones | I think even the British would be hard-pushed to be trashier than the 'National Enquirer'.
One probable difference between British and American journalists is that American broadsheet journalists appear to have a miuch more inflated sense of their own iimportance and the importance of their role. However, I doubt if generalizations mean much in this respect. |
| Sat 21 Aug | Stephen Jones | ---' I think the thread is concerned with the abysmal ignorance of the outside world displayed in these articles and the contents of some of the above posts.'-----
As far as Jammu and Kashmir is concerned MS was quite right. It is not a part of India, any more than the West Bank is part of Israel. Now, they ought to have colored Pakistani occupied Kashmir the same color of course.
The fact that MS is prepared to apologize for telling the truth if they can make money by liying suggests you ought to think twice before using Encarta as a reliable source. |
| Sun 22 Aug | no name | Can you people not spell? The word 'yankee' is correctly spelled 'damnyankee' and that's definately not a silent 'damn' at the front.
Well, according to a fair number of US citizens who get seriously offended by the term 'yankee', anyway.
See how hard it is to avoid offending hyper-sensitive morons?
As for the weirdo who thought that selling a whole 1/10th of a million units of windows 98 was worth eliminating a useful feature for every other nation on the planet? What drugs cause that sort of thinking?
What about 'we've offended two groups of people, but we'll be nice to whichever gives us more money'? I simply don't understand, because people keep informing us of all of Mr Gate's wonderful donations to charity and his humanitarian work - yet his company's official policy is that money is more important than human rights. What's up with that?
(Incidentally, the problem has nothing to do with ignorant or insensitive developers - the whole problem is that the world is being run by complete morons and there's nothing that can be done to make them happy.) |
|
| Would you ever get rid of your landline? | Thu 19 Aug | yet another anon |
| Between cell phones and VoIP, I wonder how many people will get rid of their landline telephones.
I was watching the news the other day, and they were showing the aftermath of hurricane Charley. The next commercial was AT&T touting their VoIP technology. The juxtaposition struck a chord.
Landlines were designed to operate on low voltage - powered directly through the phone lines themselves. So, in a power outage, the phones still work (assuming you keep a non-cordless one around the house).
In the case of the hurricane, Im sure that both power and phone lines were knocked out, but there are plenty of other emergency situations where thats not the case.
Just something to ponder. |
| Thu 19 Aug | muppet | Got rid of my land line two years ago. 99.9% of the time it was only used by telemarketters anyway. I'm saving $600/year by not having it. |
| Thu 19 Aug | Greg Kellerman | Got a job 110 miles from home. Communicate with family using Cell Phone. $40.00 per month/no long distance charges, no cords, goes everywhere I go. The cable modem meets my other communcation needs.
Nope, no plans for a landline here. Heh. |
| Thu 19 Aug | Mr.Analogy (ISV owner) | My business is in my house. So, I'd not want to get rid of the landline for the business. Just not worth the possible savings.
But, for home, I'd probably be willing to do that.
However, the benefit of having 5 phones around the house is pretty handy.
(I.e., I think it's a bit complicated to wire up VOIP for all the home phones. You CAN do it, I'm sure. But you'd need to run a phone line from the PC to the demarc (outside the house) to wire it up easily. |
| Thu 19 Aug | trollop | The landline goes when we drop ADSL for radionet. |
| Thu 19 Aug | www.marktaw.com | Two words:
NYC Blackout.
Besides, you can get basic land line service real cheap if that's all you're worried about.
Note: Requires you have phones that don't require AC. |
| Thu 19 Aug | Kobi | And don't forget about brain tumor! |
| Thu 19 Aug | kc |
My wife and I got rid of our landline back in November and we've only missed it once or twice.
Besides, even with BASIC service... no caller id, no call waiting, no LD, and rarely using it, the bill was still $25 a month. And my cell bill was only $40 a month will all of that. |
| Thu 19 Aug | Kyralessa | I can't get rid of the landline, because my wife calls her mom in Romania all the time, and I haven't found better international rates than the landline ones. |
| Thu 19 Aug | Robert 'Groby' Blum | Kyralessa: If you have broadband, try VoIP - specifically Vonage. I have lots of calls to Germany, and since they offered me 3 cents per minute, I took the deal.
I dropped my landline three months ago and am not looking back. No frigging telemarketers yet.
(I expect them to show up sooner or later, once somebody sells my phone number. But at least Vonage themselves doesn't seem to be selling that info) |
| Thu 19 Aug | www.marktaw.com | If your wife's mom in Romania has VoIP, there's a a service that will let you make free VoIP to VoIP calls.
Or there's Yahoo/AIM voice chat.
Romania's telecom infrastructure is much worse than Germany, so calls to there (and the Ukraine, and other less developed eastern european countries) are more expensive. |
| Thu 19 Aug | www.marktaw.com | > If your wife's mom in Romania has VoIP
Should be:
If your wife's mom in Romania has internet access, preferrably broadband. |
| Thu 19 Aug | bah_humbug | There was a lanslip in Wellington yesterday (one of several: we've had atrocious weather here recently). Which knocked out most of the cable modem internet access around the city. But the phones kept going. I'm sticking with landline... |
| Thu 19 Aug | JWA | We haven't had a land line for three years. My wife and I both just have a cell phone. I have one number for everything. Business/personal/etc. It's great.
Kyralessa - My wife's family is all in Cuba, so I can relate. However, almost any decent calling card will blow away land line rates. We've been using http://www.callingcard.com for the last year or so and it is amazingly great. I don't know why there's not more buzz about them. You set up an account, and then set up their system to recognize your phone numbers, so you don't have to deal with pins and access codes. Then you can also set up speed dial numbers, so in total it takes 5 button presses for my wife to call Cuba or Spain. They have local access numbers and 800 numbers.
Their rates are slightly higher than it would be with the cheapest calling cards, but the reliability and ease of use make it the best deal around. A quick check shows that their rate to Romania is $0.30/min, or $0.21/min for the Bucharest area. Factor in their 20% bonus if you refill your account with $100 and you are at $0.17/min. Probably hard to beat.
Check them out, they've been great for us.
--Josh |
| Thu 19 Aug | Greg Hurlman | Would I ever get rid of my line? Maybe if... oh wait, that already happened, well over a year ago. Remind me again why people with a broadband connection still want to pay $40/month so they can call across town? |
| Thu 19 Aug | nekkid dude | When I can plug in my cell phone somewhere in my house and have all other phones in the house ring when the cell phone number is called I'll get rid of the land line. I don't have anywhere to stick the cell phone when I'm walking the house nude... |
| Thu 19 Aug | mb | It's called a cell socket. Of course, every phone provider has its own strange interface to their phone, so you'll have to get one specific to your model phone. Don't know how well they work, either. |
| Fri 20 Aug | mb | or a nokia premicell |
| Fri 20 Aug | Herr Herr | I live in Germany. My mother lives in New Zealand. At 18,000 kilometres, it's barely possible to find two countries further away from each other.
On a landline, by dialing 01079 before I dial my mother's number, I get charged less than 3 euro cents per minute: 2.6 cents to be precise. One time I called I left a message on her answering machine and the bill was 2 cents!
I'm keeping a landline. |
| Fri 20 Aug | Justin Johnson | 'I don't have anywhere to stick the cell phone when I'm walking the house nude...'
Well, there's one place... |
| Fri 20 Aug | kc | 'When I can plug in my cell phone somewhere in my house and have all other phones in the house ring when the cell phone number is called I'll get rid of the land line. I don't have anywhere to stick the cell phone when I'm walking the house nude...'
These are becoming more common... one name is 'cell socket' as someone noted above, but I have seen them called by other things.
One of my coworkers just got one for his Verizon phone... I'll try to track him down on that one. |
| Fri 20 Aug | Jeff Watkins | I gave up my land line back in 1998 and haven't missed it since. At the time I was fighting with US West (now Qwest) about a T1 line they had left active for an additional 3 months, and the thought of handing them more money for a land line was revolting.
AT&T's One Rate service came to my rescue. Anywhere I went, I had my phone and I didn't pay extra (at the time $60/month wasn't a problem).
It came in handy when I moved from Seattle to NY: I was able to keep my old number until I got settled. Of course, now that I live in the Hudson Valley area, I can't use AT&T (who always offered amazingly good customer service) and have been relegated to Cellular One. |
| Fri 20 Aug | Greg Hurlman | I'd actually like to do away with the VoIP if I could... but cellphones don't like to work so well inside my apartment. I've been looking at booster antennas - but the ones you connect to your phone tie you down to a wire - oh so 1980s. The only other alternative I've seen is those stick-on antenna boosters that typically stick over the antenna or under the battery - does anyone know if they actually work, or are they just "as seen on tv" crap? |
| Fri 20 Aug | D. Jackson | I haven't had one for three years. No problem. My cell plan doesn't allow for international calls (which is normally not an issue) but if I need to make one, I get a phone card. Pretty simple. |
| Fri 20 Aug | InsideInfo | To sum up :
1. Get VOIP.
2. Use your cell phone as backup.
3. Use calling cards both from your cell phone and home phone. (You can program in the access number and pin and number to be dialed, so it's a one-touch process to actually reach the number).
Last, but not the least :
4. Ditch your landline.
Now what is it that a landline can do and this setup cannot ? |
| Fri 20 Aug | RocketJeff | >>The only other alternative I've seen is those stick-on antenna boosters that typically stick over the antenna or under the battery - does anyone know if they actually work, or are they just 'as seen on tv' crap?
I read an interview with an engineer that worked on cell phones and, when asked about these 'boosters' said something like 'if the boosters worked, don't you think we'd be building them in?' |
| Fri 20 Aug | Me | I'm getting rid of it. Contempt is what I have for the phone companies. Anyone ever remember that editor/publisher from Boardwatch years ago? He must have infected me.
I call Brazil a lot so I needed a landline. That is until I found a company that sells prepaid cell phone service. I pay US$.50 a day to keep my phone up and I get a US$0.14 rate to Brazil which is better than the US$0.25 rate I got with MCI but of course you can get rates as low as US$0.12 to outlying regions of Brazil through phone cards. http://www.stimobile.com/ is the company and they have good rates to other countries. If I don't keep the phone alive for 15 consecutive days then I lose my phone number. But I was recently in Brazil for 3 weeks and I left my phone with no value. When I returned I bought US$25.00 of time and I still had the same phone number (this is not important to me otherwise I would have kept it active or bought a follow me service).
I'm goin to get rid of my landline within the next week. I use cable (much, much better than DSL) for net access.
Phone companies want yesterday back again. |
| Fri 20 Aug | Eric Moore | >I'm saving $600/year by not having it.
I guess I don't talk as much, nor feel any need to be always reachable. I pay $16.66 for residential flat-rate service from SBC (1/3 of it is fees) and then pay $0.033 / minute (no minimum or monthly fee) for intrastate/long distance from pioneer telephone. So my total bill is always under $25/month and my phone still works when something goes wrong. |
| Fri 20 Aug | Neo | I haven't had a landline in quite some time. I have 2 cell phones. It's still cheaper. |
| Sun 22 Aug | Juergen Zeinier | If I get rid of my land line, I can say goodbye to my ADSL and TV connections |
|
| Web application usage tracking tool | Fri 20 Aug | anon |
| I dont know whats the appropriate title for this thread. But here is what I am looking for.
I have a web application which is used by around 1000 users on a daily basis. I am looking for a tool which will help me track the way in which the users use this web app. I would like to track, which links are being clicked by a user once he logs on, which pages he visits, how long does he stay at any given page etc. Basically the entire path until he logs out. Are there any tools which do this or do I have to develop one? I am running ASP application on MS IIS. Thanks for the help in advance. |
| Fri 20 Aug | anon | Forgot to add, I would prefer if there are any free tools :) |
| Fri 20 Aug | i like i | standard webserver logs? Especially if you add a token so you can link users up if several appear behind the same ip address otherwise. |
| Fri 20 Aug | Peter | Webtrends does this sort of thing. Costs a bundle though.
If free is your goal, then look at setting up a virtual site, where every path on that server is mapped to the same thing. Give each user a different web bug (1 pixel gif) to download. Give everyone a session ID, use the page url as part of the path or something. Some spammers also do this to track who opens their emails, so they can send you more spam.
User A shows up, they get sessionID 555555, they are at /default.asp. Plop on the bottom of the page an image tag looking for /555555/root/default/webbug.gif
Then they go to the /fun/whatsnew.asp page, in that case, the image tag is looking for /555555/fun/whatsnew/webbug.gif.
And so on.
Then you write something that parses the web logs for the server.
You will spend a lot of time writing this. Are you sure your time is not worth the several thousand dollars that you would pay for webtrends smart source data collector? |
| Fri 20 Aug | kc |
Aspect Oriented Programming (AOP) does this for debugging, but it can easily be applied to other areas of logging...
Our apps log whenever someone logs in and wer're considering doing it in a few other places too. |
| Fri 20 Aug | Crackhead | Analog (www.analog.cx) is free and decent, though somewhat challenging to configure.
AWStats is also free - awstats.sourceforge.net |
| Fri 20 Aug | anon | Thank you all for the help so far. I don't think I can find a tool which does exactly I want. I am looking for more than a log analyzer. I want to follow the clicking path of a given user around my web app. I might have to develop something on my own if I don't want to pay lot of money to WebTrends or something like it. |
Fri 20 Aug | josheli | well, in php there is the free http://www.phpopentracker.de/en/index.php
maybe you could look at the code.
'phpOpenTracker is a framework solution for the analysis of website traffic and visitor analysis.
It features a logging engine that, either invoked as a web-bug by a HTML tag or embedded with two lines of code into your PHP application, logs each request to a website into a database. One installation of phpOpenTracker can track an arbitrary number of web-sites.
Through the phpOpenTracker API module you can easily access the gathered data and perform complex operations on it, like for instance the analysis of your visitors' clickpaths.
The analysis of clickpaths is essential when you want to measure the usability of your website. phpOpenTracker's API functions 'shortest_paths' and 'top_paths' help to answer questions like: Is the navigation intuitive enough? Do visitors find the shortest, most direct way from A to B? How are ads percepted? On what document do they leave the website -- and where to? The answers to these questions help you to improve the user experience and the way your website is percepted by your customers. ' |
| Fri 20 Aug | PopCulture | all I can think of is using some (free) basic logs analyzers such as:
http://www.sawmill.net/individual.html
http://www.mrunix.net/webalizer/
But those will only give you the 'Big Picture' stats...
maybe you can write a script that follows a client's referrer page based on access time? |
| Sat 21 Aug | www.marktaw.com | The big question is:
Are your URL's human readable?
Are we talking:
www.domain.com/books/fiction/asimov/irobot/reviews
or are we talking
www.amazon.com/gp/product/customer-reviews/0553294385/ref=cm_rev_all_1/104-1367526-8929505?%5Fencoding=UTF8&me=ATVPDKIKX0DER
Of course, that whole ref=xxx thing makes me think obidos does some hefty tracking. This is where webtrends comes in. It can recognize '0553294385' as being irobot. |
|
| new idea about how to sell, please review | Fri 20 Aug | redguardtoo |
| I want to sell a killer-application to American developers. But some nice guys here helped me to realize that I was not made of a salemans staff.
So I went home and read sales books. Last night the truth suddenly hit me.
Its so simple! Now I am just wondering why I could not understand it earlier?
The tip is not to say what can I do, but to say what you want (or you do not want)?
Some nice American programmers are always implying me the truth, I am just too foolish to listen.
What about my lastest advertisement :) ?
Work harder and more overtime than an offshore coder?
Or become a memeber of lazy, smart hackers? ....
lazy is a praise word, because Linus said a good hacker must be a lazy programmer in his book |
| Fri 20 Aug | Saprasadecceio | I have only been in this country a short distance and never have a seen such implying great wisdom. It makes me happy with a smile. |
| Fri 20 Aug | BnP | Can someone show these guys the kool-aid line. Please. |
| Fri 20 Aug | Lou | A tagline isn't a marketing strategy. You need to determine how to reach those who are in the market for your tool and convince them that this is something they need. |
| Fri 20 Aug | Aussie Chick | Hire someone else......seriously.
Either that or spare yourself 6months, go to the US and immerse yourself in the culture (ie do not talk to another asian for the entire 6 months). Then and only then should you come back and ask further questions. |
| Fri 20 Aug | Sasha | For is to sell to Amerikanski ("the KILLER app!") -- THANKING YOU! |
| Fri 20 Aug | example | The classic book on the subject is:
'How To Win Friends And Influence People'
http://www.amazon.com/exec/obidos/tg/detail/-/0671723650/qid=1093014897/sr=1-5/ref=sr_1_5/002-0582930-8996825?v=glance&s=books
The basic idea behind selling is to provide something (a product or a service) that the customer wants and is willing to pay for. |
| Fri 20 Aug | www.marktaw.com | HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA
HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA HA |
| Fri 20 Aug | Saprasadecceio | I am liking Kool-aids very much. I do not like lines but I would have one if you want. |
| Fri 20 Aug | kc |
Wow.
That's all I have to say here... |
| Fri 20 Aug | Crackhead | redguardtoo - maybe you should outsource your marketing to a firm in the US ;) |
| Fri 20 Aug | Neo | I agree with MarkTaw. |
| Fri 20 Aug | example | I just hope MarkTAW wasn't talking about my post.... |
| Sat 21 Aug | . | I just hope MarkTaw does not do that again. Ever. |
| Sat 21 Aug | no name | Was he drunk? |
| Sat 21 Aug | www.marktaw.com | I did learn about the limits of the forum. That's < 100k of text. Much more than that and it wouldn't go through. |
| Sat 21 Aug | www.marktaw.com | And it was in reference to the OP. |
| Sat 21 Aug | example | >> I want to sell a killer-application to American developers. But some nice guys here helped me to realize that I was not made of a saleman's staff. <<
After reading Joel's post about how people with AS take things very literally, the OP's question could be interpreted as:
'I have written some software for hitmen. Some people at discuss.fogcreek.com said that I was not made of a salesman's personnel group.' |
| Sat 21 Aug | one meeeellion dollars! | That would explain why Albert Kallal hasn't posted much, Marktaw. |
|
| If you were CEO of Sun... | Fri 20 Aug | Paul Sharples |
| I was going to put this in the pickled IBM thread but I think it would be fun to hear from the armchair CEOs out there.
If I were CEO of Sun, I would drop this emphasis on Java, which end users dont really care about. Id identify my end users as corporate drones and the IT buyers who control them and forget about trying to convert those losers who actually have a choice of what computer they get to sit in front of (hint: no matter how much you spend on marketing to them, theyll never choose Sun). I didnt say Id drop Java - just the emphasis on it; Sun needs to wake up to the fact that the message just isnt hitting the right buttons.
If I were CEO of Sun, Id push the SunRay solution. Hard. Id provide demonstrable proof that administration costs would go down, that the equipment would have a useful life measured in decades instead of until the next Windows release, that air con costs would go down, that noiseless offices gave employees more virility, that larger screens improve productivity, that it would be cheaper to increase server capacity than to upgrade desktops, that an integrated infrastructure would lead to reduced IT costs and that sitting in front of a Sun would make you live longer.
Suns current message seems to be: Hey, at least were not Microsoft. Or IBM. Or HP. We were slow to react to Windows 95 and couldnt work out whether we wanted to be in workstations or servers when the Internet happened and decided for us but - trust us - were visionaries. We had this embedded operating system idea but the market rejected it (twice) before the Internet happened and we got a free distribution vehicle for it. Ok, so even the end users rejected it but at least youve heard of us now (and, besides, 8 out of 10 developers who weve asked said they preferred it to Visual Basic). So, come on! Buy Sun kit. We were really good, once.
If you were CEO of Sun, how would you work to counter this worldview and convince me to buy shares in your company? |
| Fri 20 Aug | Art Vandelay | If I were CEO of Sun, the first thing I would do is fire the incompetent boob of a CEO. |
| Fri 20 Aug | Ogami Itto | If I were CEO of Sun, I would do my best to make Java faster. |
| Fri 20 Aug | no name | If I were the CEO of Sun I'd retire and lie on a beach somewhere with a semi naked woman at my beck and call.
You see, that's why I'm not CEO of Sun - I don't think big enough. What I really should want to do is retire and lie on a beach somewhere with several totally naked women at my beck and call. |
| Fri 20 Aug | devinmoore.com | If I were CEO of Sun, I'd probably do whatever the current CEO is doing, because in order for me to be CEO of Sun, I'd have to have done what he did and essentially be him. If I were CEO of Sun as I am right now, I'd probably just get fired for not doing my job, because I don't know anything about being a CEO. |
| Fri 20 Aug | Rob VH | You're right, you don't think big enough. With McNealy's fortune, you could have *multiple* *completely* naked women at your beck and call. |
| Fri 20 Aug | Rob VH | Don't even say it. |
| Fri 20 Aug | Jeff Watkins | I think the real problem the CEO of Sun faces is that he's in charge of a PUBLIC corporation rather than a PRIVATE corporation.
All corporations are responsible foremost to their shareholders. Everything the CEO does must address this responsibility. Therefore, he doesn't really have the latitude to just drop something and make a drastic change of direction. If things don't work out, he's in seriously hot water. |
| Fri 20 Aug | old_timer | It's too late for Sun. They've spent the past several years continuously shooting themselves in the foot and now you ask how are they going to run the marathon.
These guys are not even standing any longer, they are merely able to crawl. It reminds me of the Monty Python skit with the knight guarding the bridge who refuses to stop fighting even as each of his limbs is severed. The only one who doesn't realize he's already a gonner is himself.
If I were the CEO, I'd be looking around desperately for a merger partner. How about SCO? Oh wait, they're in even worse shape. |
| Fri 20 Aug | Max Hadley | Oddly enough, I just came across another post by Tim Bray on a related subject: http://www.tbray.org/ongoing/When/200x/2004/08/19/BackDoor Tim - one of the original developers of XML - is a relatively recent arrival at Sun
Max |
| Fri 20 Aug | no name | I would be CEO of Moon as well so I can work on both side of the spectrum, day and night. |
| Fri 20 Aug | passive-aggressive weasel | I'd hire muppet, cause he's god. |
| Fri 20 Aug | Joe Blandy | I'd put Fred Grott in charge of everything. |
| Fri 20 Aug | Jon | I'd rewrite the String class |
| Fri 20 Aug | www.marktaw.com | I'd run an ad campaign where 3 servers were dropped from a pretty tall building. Maybe in a humorous manner.
Two of them break apart, and one of them is intact, you plug it in, and it starts working.
I think you can see where I'm going with this. I'd copy the (was it UPS? FedEx? DHL?) ads 'when it absolutely positively has to work.'
I'd run another ad campaign where there are two guys swapping stories in a bar.
'I had to do yet another security update, only I didn't get in to the office fast enough, so a nasty virus spread throughout the network and wiped out our infrastructure. I was fired and our company went under a couple of weeks later. What about you?'
'Oh, I bought some sun servers. I really should get going, I'm supposed to meet the president about a raise tomorrow.'
etc. etc.
Just how the old IBM selling point was 'IBM means service' I would make it 'Sun means reliability.'
At least, that's what I figure Sun's big selling point is. Aside from Apple they're the only ones who own the whole box top to bottom, OS, hadware and all. (I'm sure someone will correct me here...). |
| Fri 20 Aug | Bill Rushmore | > If I were CEO of Sun, I'd push the SunRay solution. Hard.
Oh they are pushing that hard. A few months ago I got invited to a slaes ptich with free beer while the they demonstraed SunRays.
But if I were the CEO I would fire all the marketing people, why put Java on everything?
They need to find a core and stick to it. Maybe even get real friendly with Oracle or IBM as in merger/acquistion. |
| Fri 20 Aug | Paul Sharples | But Sun have all the pieces necessary to own the corporate enterprise: servers for all occasions, a compellingly cheap PC alternative, staroffice, even thousands of qualified 3rd party apps. For those welded to MS Exchange, there's the Citrix or VMware solution.
Java is the thing which ties it all together and bridges the gap from Windows to Solaris, but it isn't *the* solution and it's certainly not something which is going to sell more Sun kit.
Oh, sure, there will be those who need apps which don't fit the thin client mould... but not many in a corporate setting, which should be Sun's core market.
I don't think they need to merge with anyone. What they need to do is line everything up behind one vision, and they're actually doing that. Trouble is, they've decided that that vision is Java everywhere, when perhaps it should be a SunRay on every [corporate] desktop and a SunFire in every server room.
What did you think of the SunRay demo, btw? I've never seen them in action but I have heard that they fall short of the hype (what else is new).
Oh, and to answer Old Timer, there's a golden opportunity coming up for Sun: thanks to Microsoft prepping the market for the big Longhorn upgrade, Sun could position themselves to be a credible alternative. They've got about 2 years to get their story straight. If they miss this boat, I agree their warchest will run out before the next one comes along. |
| Fri 20 Aug | van pelt | We have a development lab set up with a bunch of rays. The coolest things about them are the session portability and the no local o/s. I've got no complaints at all.
If I were CEO, I'd throw my weight behind the SunRays with all my might, I'd continue to push java too, but I think I'd also start long-term pondering how I could leverage into the home computer department. |
| Fri 20 Aug | Fred | If SunRays are good products, they could start by making them easy to find on their site. No trace on their homepage, nothing when clicking on 'Products' on the left, nothing when clicking on 'Hardware A-Z' on the right.
I had to Google for find the section:
http://www.sun.com/products/sunray |
| Sat 21 Aug | Rhys Keepence | Sun should make this guy CEO:
http://www.sun.com/aboutsun/media/features/insidejack1/index.html |
| Sat 21 Aug | snotmonster | SunRay's are fine - they're a bit like having an X-terminal on your desk. I use one every day.
The amusing thing, given Sun's big marketing push is that Java apps _suck_ on SunRays - they're really really slow.
Dunno why - the SunRay software must find it hard to optimise the way that Java does screen repaints or something... |
|
| Hotmail/Gmail as network storage? | Fri 20 Aug | Brad |
| Hotmail is apparently boosting their storage limit to 2GB now, which got me thinking: what about using free email accounts as a distributed network storage system? Perhaps not terribly practical, but might be a fun project. Encrypt your data, break it up into chunks, and distribute it among any number of free email accounts. Sure, you suffer the overhead of base64 encoding, but free is free.
Im sure it wouldnt take long before MS/Google would start blocking the messages, though... |
| Fri 20 Aug | Brad | (sorry about that folks...forgot about the no-HTML tags) |
| Fri 20 Aug | kc |
Uh... some of us have been doing this for a while.
I actually have a cron job at work that tars & gzips my mysql database and emails it to my gmail account once every 3 days. On all of the other days, it just goes elsewhere on my local network.
It's only a couple megs each time and Gmail automatically groups the messages together, so I have a complete and growing archive of my data. I'll probably start wiping the oldest ones, but I won't have to worry about it for a few more months. |
| Fri 20 Aug | Ogami Itto | Actually with all the other players upping the ante, gmail's 1gig is starting to look peanuts. |
| Fri 20 Aug | John Topley (www.johntopley.com) | Are the other players really upping the ante though, or are they bluffing? We know that Google have the platform to support their offering. |
| Fri 20 Aug | www.marktaw.com | And you think Yahoo and Microsoft don't? |
| Fri 20 Aug | John | hotmail just went to 250meg for free, 2 gig for about $20 a year. |
| Sat 21 Aug | Andrew Cherry | No company has the platform available to support all users actually using 1gig, let alone two. It's just an advertising scheme based on the fact that most users will barely ever use 10MB. |
| Sat 21 Aug | John Topley (www.johntopley.com) | Google's competitive advantage is their platform i.e. their petabyte file system, their 100,000+ servers, their redundancy at entire computer level rather than component level and their custom software to manage that lot. |
|
| what do you ask a startup boss? | Fri 20 Aug | ... |
| What do you ask the boss of a startup, given that i do not understand much about how to run a successful business?
So far it looks promising, but my previous experience with Startups wasn’t a good one. (the place closed shop and still own me two months of salary).
The company is about switchers/routers; (networking stuff).
Questions I did ask:
- Do you have a version control system?
- Who is your sponsor (they told me a name, but how do I follow up on this information?)
- How fast do you plan to grow? (That’s a meaningful question for a consulting shop. This place wants to produce switches/routers; it’s not that this product requires a pool of temporary consultants, who can burn a lot of money if they stay idle). |
| Fri 20 Aug | James U-S | You should ask to see a clear business plan with financial forecasts in particular. You need to know what, if anything, their income will be before the product is developed, and whether they actually have the money to pay the staff and fund development in the meantime. How they will cope if development takes longer than forecast is critical as well.
If they want to hire you they shouldn't mind showing you. Especially if you phrase it as you're just covering yourself and making sure, rather than making a blunt demand for lots of information - make sure they understand why you are asking for it. |
| Fri 20 Aug | www.marktaw.com | Business is simple. Maximize your profits and minimize your expenses. Is the company turning a profit, or acting in a deficit? If a deficit, how long can they stand to do so before closing shop?
Really you just want to know about the stability of the company and the potential longevity of your job. Also you want to know about growth potential within your job. This looks good for you as well because you look like a 'go getter.' |
| Fri 20 Aug | Peter Ibbotson | Do tell them that you got burnt in the past. I have been there in the small company going bust situation and it's pretty shitty.
It might be worth asking for equity if you don't like their business plan / funding but think they do have a clue how to get from a->b.
I know when the whole thing goes under equity isn't worth anything, but it gives reward for taking risks. |
| Fri 20 Aug | patrick | in short, i would see if they have the "basics". I don't know what this is for routers,etc. But, for software development, I would ask a lot of the Joel Test questions.I would ask about other staff (ie is there a dedicated QA person?) Do they do requirements? etc. |
| Fri 20 Aug | Mr.Analogy (ISV owner) | What is thier BACKGROUND?
What did they do before this company?
A series failed companies? If so, what did they learn.
BASICALLY, you can interview them just like you'd interview an employee. Think of them as a business PARTNER. You're interviewing each other.
Oh, and if you ask intelligent questions politely, and get a negative ('how dare you question our ability, etc') reponse, that's a BAD sign.
'A' quality people don't mind good questions. It gives them a chance to reassess thier decisions and conclusions. Lower quality people find this, instead, to challenge thier frail egos.
Again... ask VERY POLITELY. Seek to understand thier business, not grill them like a V.C. |
| Fri 20 Aug | hoser | First, Joel's test is a great place to start
http://www.joelonsoftware.com/articles/fog0000000043.html
But, IMO, you'd like to ask more general questions that lead to cultural qualities.
For example:
1. Are you an engineer? Do you have an engineering background? If not, how do you resolve technical issues (assuming this is a technology company you're going to work for).
2. How do you manage a product release? This covers a multitude of issues:
a. How do you perform branches and merges in source control?
b. What policies are in place regarding QA, bug fixing, build releases, and development branches.
3. How are schedules put together? If the answer is purely 'business/market requirements', guess who is goingto be spending countless hours into the night hammering out code while the marketing team is sipping Margheritas and 'talking business' while you slave away; understaffed and underpaid. You will baby.
There are lots of other specific questions like 'what documentation reuirements are maintained', 'do you perform nightly builds', 'do you have automated testing, or plan to perform automated testing' (actually, that might be a good question to ask).
But, if the startup is in its infancy, they will all be negative answers and you may be seen as badgering.
Therefore, I would look more to the cultural view of what engineering is and will be. Fundamentally, you need to know if your talents will be viewed as a crown jewel of the company or a necessary pain in the ass. IMO, it always comes down the that final issue.
If your software development/testing skills are viewed as something to be nurtured and grown (crown jewel approach), then you're going to be rewarded and find fulfillment.
If your skills and personality are viewed as a geek to be hidden in the back room and monitored by baby sitters (aka PM's), then life is going to suck. |
| Fri 20 Aug | Dot For This One | These are good questions to ask at any company. |
| Sat 21 Aug | ... | Thanks to everybody for the the comments; i will have a chance to test you advice. |
|
| Outrageous Metaphor | Thu 19 Aug | Natural Joints |
| Take a break from the usual technical food fights around here and check out this sidebar from the Naked Objects book. These guys have thought about business systems.
http://www.nakedobjects.org/section44.html
Scroll down about 2/5 of the way, until you see the beef carcasses. |
| Thu 19 Aug | Full name: (Required) | uh huh |
| Thu 19 Aug | Christer | delete space at end of url |
| Thu 19 Aug | MT Heart | Or use Opera. |
| Thu 19 Aug | braid_ged |
How is this an 'Outrageous Metaphor' ? |
| Thu 19 Aug | Wayne | Outrageous may have been a bad choice of word on the OP's part, however the article was interesting. It's not a metaphor that you see everyday. |
| Fri 20 Aug | Roose | I actually think it is a pretty cool metaphor... pretty creative and it gets the point across. |
| Fri 20 Aug | Neo | I get a 404 error??? |
| Sat 21 Aug | Dennis Atkins | 0xDEADBEEF |
|
| Automatic vs. manual transmission | Thu 19 Aug | Brad Wilson (dotnetguy.techieswithcats.com) |
| Postscript Three: The only case I know of where a manual transmission beats a good automatic transmission is when youre driving on the highway, and you know that sometime soon youre going to have to pass somebody, so you downshift to third gear to get ready to accelerate. An automatic transmission cant read your mind, so it stays in 4th or 5th, and has to downshift when you floor the accelerator, thus creating a temporary hesitation between the time you press the gas and the time the acceleration starts which wouldnt exist if you were already in 3rd gear.
Ridiculous.
A manual transmission permits you to control torque independently of acceleration, which is an essential ingredient to driving control.
If all you want to do is point the car and so go, then you dont want a manual. I, however, prefer to have the control that allows me to avoid potentially dangerous situations that automatics are helpless in. |
| Thu 19 Aug | muppet | This is why I enjoy my tiptronic transmission on my Jetta 1.8T. I get most of the benefits of a manual with the convenience of being able to ignore the gearshift the majority of the time. |
| Thu 19 Aug | hoser | Is this one of those lost radio transmissions which was sent out years ago, and then hashed with a secret alien message (like how to cure insomnia), and sent back to earth? |
| Thu 19 Aug | Brad Wilson | Or... it could be a response to Joel's post today. You know... the actual purpose of this forum? |
| Thu 19 Aug | tim | Brad, apparently it's not so essential to Joel.
Big deal.
If you feel like continuing to argue, you could also mention the better control in snow and other overly slippery surfaces. |
| Thu 19 Aug | Brad Wilson | The way I read it is that he's presenting some presumed objective fact about all cars and all transmissions, rather than his personal preference.
'I don't find I need the performance or control of a manual transmission' - personal preference
'The only possible value is one very specific corner case' - presumed objective global fact re: cars and transmissions |
| Thu 19 Aug | tim | Ok. |
| Thu 19 Aug | TheGeezer | Methinks Joel should get behind the wheel of an Audi with DSG or a BMW with SMG. |
Thu 19 Aug | Ken McKinney | It's the answer to something he mentioned in the API war article.
Racing car aficionados will probably send me hate mail for this, but my experience has been that there is only one case, in normal driving, where a good automatic transmission is inferior to a manual transmission. Similarly in software development: in almost every case, automatic memory management is superior to manual memory management and results in far greater programmer productivity.
http://www.joelonsoftware.com/articles/APIWar.html |
| Thu 19 Aug | Iconoclast | It seems quite obvious to me that when you're paying attention to the gears, you're not paying as much attention to all the other tasks involved in driving a motor vehicle. Huamns have a limited amount of attention to go round, you know!
So given this, I don't see why anyone would want to do a job that a machine can do for you, except in very specialised scenarios (eg a racing car driver needs absolute maximum control because going as fast as you can is the goal, even if it means you crash sometimes). |
| Thu 19 Aug | muppet | +++Huamns have a limited amount of attention to go round, you know!+++
The capacity to split one's attention varies greatly from human to human. Some folks can't handle talking on the phone with a hands-free kit while driving. :P Hence their ignorant attempts to prevent anyone at all from doing so. |
| Thu 19 Aug | Fred | ... or conversely, a shift gear forces you to keep attention to driving, as opposed to, say, drinking that Big Gulp :-)
And quite a few manage to shift gears _and_ talk in their cell phone. Mmm... |
| Thu 19 Aug | Doug | 'It seems quite obvious to me that when you're paying attention to the gears, you're not paying as much attention to all the other tasks involved in driving a motor vehicle. Huamns have a limited amount of attention to go round, you know!'
I've almost always driven manuals and would strongly disagree with this. Having to shift gears requires you to pay more attention to driving. Once you're trained, the couple of additional shifting tasks are beneficial, not a distraction. Automatics promote lazy, detached driving and people tend to find other things unrelated to driving to distract them, particularly hand held cell phones and eating. Do those with a manual transmission in the city and you're quickly reminded it's a bad idea and you should get back to driving. |
| Thu 19 Aug | Art Vandelay | 'A manual transmission permits you to control torque independently of acceleration, which is an essential ingredient to driving control.'
Yes, if you're driving in the Daytona 500.
For ordinary driving however, manual transmissions are strictly for flaming dorks. |
| Thu 19 Aug | no name | A manual transmission is actually more fuel efficient and it gives you the ability to 'downshift' which allows the engine to gather more RPM thus providing more torque at a higher RPM allowing the vehicle to accelerate faster or to pull a bigger load etc...
Anyone who drives/has driven heavy equipment knows that you frequently need this control when pulling heavy loads on hills and other irregular surfaces.
So a manual transmission allows more control than an automatic. Just like in programming - languages like C++ allow greater control of things like memory management.
C++ is like driving the heavy equipment and the race car. You need to know what you're doing otherwise you crash and burn etc...
GC environments offer greater productivity and also allow the inexperienced to take the reins without the risk or the knowledge.
C++ is also more fuel efficient, no need for big bulky runtime environments.
Now let's talk hydrostatic transmissions...
(Shifting a manual transmission becomes an automatic response after a while.) |
| Thu 19 Aug | mb | most modern small trucks only come with automatic transmissions. |
| Thu 19 Aug | Rodger Donaldson | That, and better fuel consumption. Oh, and try towing uphill and have your auto gearbox hunt up and down.
Of course, I'd take the advice of a New Yorker around driving with some grains of salt 8). |
| Thu 19 Aug | Matthew Lock | The real flaw in Joel's argument is the analogy that automatic transmissions are like garbage collection because you don't need to think about changing gears in an automatic. Anyone who's driven a manual for more than a few months knows that you just aren't thinking about changing gears in a manual. Your brain automatically learns and instictively knows when to change gears in a manual.
But the one big advantage of an automatic is the extra free hand to hold your burger while you drive! |
| Fri 20 Aug | John | What's the argument here... you can downshift in an automatic just fine, whenever you want. |
| Fri 20 Aug | hoser | Well, I didn't read that far down into the Joel post.
However, I'm on Brad/Techie/Dog/Cats on this one. And in good company, right? If automatics were sufficient for NASCAR, F1, IRL, CART, wouldn't they be using them? Ask Al Jr.
Downshifting into a turn getting both the braking prior to the turn and the RPM's up has no comparison on an automatic transmission.
Additionally, automatic transmissions use fluid to provide a continuous clutch type mechanism. And on most models, when down shifting, do not sufficiently engage to provide both slowing and the match the higher RPM's to the road. On my wife's Acura MDX (a fine luxury mobile if ever there was one), you get no engagement until downshifting into 1st gear - and then its far too low a gear.
Now, if you're driving in NYC, how are you going to give the finger to them Jersey drivers if one hand has to be dedicated to shifting? Or if you're in Seattle, and one hand on Latte, the other holds the cell phone, what are you going to use for the shifter?
Now you've got yourself a user interface connundrum. |
| Fri 20 Aug | Antti Kurenniemi | 'Methinks Joel should get behind the wheel of an Audi with DSG'
Ooh, an A3 Quattro with 3.2 litre V6 and DSG, now there's a neat piece of machinery. I love that car - I don't have one, but a friend does and I just love driving it. The DSG is such an awesome gearbox, wowzee. |
| Fri 20 Aug | What're you lookin' at? | Hoser - Damn fine piece of writing there.
Everybody listen to me. We are programmers. We get carpel tunnel syndrome. Vibration tends to make such problems worse. Manually shifting puts vibration into your wrists.
Verdict: auto trannys for us. |
| Fri 20 Aug | www.marktaw.com | hoser - If you live in (pick your city) how are you going to aim a gun with one hand, steer, and change gears all at once? |
| Fri 20 Aug | teethgrinder.co.uk | 'Postscript Three: The only case I know of where a manual transmission beats a good automatic transmission is when you're driving on the highway, and you know that sometime soon you're going to have to pass somebody, so you downshift to third gear to get ready to accelerate. An automatic transmission can't read your mind, so it stays in 4th or 5th, and has to downshift when you floor the accelerator, thus creating a temporary hesitation between the time you press the gas and the time the acceleration starts which wouldn't exist if you were already in 3rd gear.'
Amusing. So the only time using manual gears is when you want to control the car correctly for any given situation where anticipation is required - i.e. all the time.
Evolve Joel, what has more AI, your car auto gear box, or your brain? Hell, it's not like changing gears is even mind taxing, it's just practice.
Americans who think their way is right and the whole world should follow them *sigh*
I think auto transmission is built for overweight middle american housewives, not for sensible people with a brain. Come on Joel, you've got the extra processing power to cope with - nay, enjoy the control of your car.
john.e.boy |
| Fri 20 Aug | yet another anon | Lighten up john.e.boy. Besides, trying to get road head while driving a stick is just a pain in the ass. Trying to get road head while driving a stick and drinking a beer - impossible!! |
| Fri 20 Aug | Albert D. Kallal | >If automatics were sufficient for NASCAR, F1, IRL, CART, wouldn't they be using them?
Yes, as a matter fact they would if rules permitted it.
F1 had automatics for a good stint until FIA banned them (1994 was the last year I believe). In fact, these automatic shifting systems were rather cool, as the computers would actually learn the track (they would drive a car around and data would be sent back to the pits. Some computers would munch and crunch the data, and then the shift points etc would be sent back to the car (of course, FIA banned pit to car telemetry also!!).
For the few seasons that F1 allowed automatic transmissions, then driver DID NOT even need to press the buttons on the steering wheel to shift, since as mentioned shifts where done automatically, and FAR BETTER then any human could EVER possibly do.
You mean you folks actually think that a manual shift system run by a human can EVEN COME CLOSE to a automatic shift system? An automatic shift is 1000’s of times faster then a human can ever hope to be. Cars can go faster then we can walk, and automatic transmissions CAN SHIFT MANY times faster then can humans.
The ONLY reason why auto racing does not use automatics is USEALLY THAT the rules don’t allow them.
>Downshifting into a turn getting both the braking prior to the turn and the RPM's up has no comparison on an automatic transmission.
Actually, the very good automatic transmissions will blip the throttle for you as you hit the brakes, and the computer will actually PERFICLTY match the engine RPMS as your foot is hard on the brakes….in fact, this whole process is done better then what a professional driver can do (in fact, a pro driver will have to “heal and toe” the gas/break pedals as the left foot operates the clutch. This heal and toe allows the driver to match the gears and RPMS as they downshift as to NOT upset the car (myth: race car drivers don’t use the gears for braking!).
>Additionally, automatic transmissions use fluid to provide a continuous clutch type mechanism. And on most models, when down shifting, do not sufficiently engage to provide both slowing and the match the higher RPM's to the road.
Ah, now things become clear: “on most models”…well, just because a lot of automatics are crappy don’t mean they all are!!! There are a number of automatic systems on the market that do NOT slip, and work VERY WELL when downshifting. In fact, the new slk MB (that replaces mine) will actually now have 7 speeds! (by the way, the ¼ mile time for the auto vs manual trans in the slk are the same!!).
Further, from a gas mileage point of view, most modern auto trans feature clutches that lock up, and thus at hi way speeds give the SAME fuel mileage and efficiently as a manual trans. And, some the really hot cars (like Ferrari) actually use a clutch type mechanism in their auto systems, and once again give up NOTHING compared to their standard auto trans (well, except that the automatically shifting mechanisms are FAR MORE capability then us weak humans with just muscles).
Look, using a computer in a car to shift gears and control the shift points is FAR superior to humans. The computers can know about air temperature, quality of gas (knock senses, air pressure etc etc). All of these variances are then used to tell the transmissions WHEN TO shift….a human can’t possible know the best shift point compared to a good automatic system we see in the best cars.
Sure, if you are talking about average crappy car, then sure…the manual trans is usually a far better choice, but when you start talking about a well designed automatic system vs. a standard system?...there is ASBOULTE no comparison…as the automatic systems is MANY TIMES better then is a human trying to row around a shift lever….
The fact of the matter is, the original analogy between automatic transmissions and standard is that automatics are good enough for most people, and is a higher level of abstraction. This is Joel’s point, and I think is just fine.
The problem here is the rest of you are assuming that this means automatic trans are better (or worse), and the augments put forward here are really pathetic.
So, to argue that automatic transmissions are inferior manuals transmissions is just silly.
Sure, go ahead and state that MOST manual trans in the majority of cars are better for performance driving then the automatic. (however, this is rapidly changing, as many auto trans now are 5 speeds…and they do NOT slip when you lift the throttle, or down shift).
Further, when you start spending the bucks, the auto systems beat the manual systems every time….
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Fri 20 Aug | a2800276 | I'm suprised that noone has come up with this argument:
Manual transmissions are per se a good deal cheaper that automatics, as is their repair and maintenance. Friends will be less likely to borrow your car, because they're not able to operate it, which brings further incidental savings. (This obviously doesn't apply to areas outside of the US, where the majority of the population has actually seen and operated a vehicle with manual transmission.)
Once you internalize the process, which can take a couple of months, you no longer even notice that you're shifting gears, so there's no disadvantage.
So everything else being equal, manuals save you money.
-tim |
| Fri 20 Aug | Mr Jack | So does running £100 near-wrecks the whole time, but would you want to do it? Or running a deisel for that matter.
I don't know anyone who's primary car choosing criteria is cost (I know some who claim it is, but their car-buying choices prove them wrong). |
| Fri 20 Aug | a cynic writes... | Good god - Art think my entire country are flaming dorks;-)
Take a deep breath guys and remember a lot depends on road conditions.
If you drive on straight roads - much favoured by planners, armies and other imperialists (Rome in this case) then gear changes aren't going to be frequent and automatics are less hassle. If on the other hand you drive on roads that were laid out by making dark age cattle tracks (Anglo-Saxon perhaps) wider and covering them in concrete and tarmac chances are you're going to make a lot of gear changes and automatics aren't as quick.
While I prefer a manual, I can live with either - my car & my wife's runabout are manual whereas the big family car is an automatic. |
| Fri 20 Aug | Northern Driver | > The ONLY reason why auto racing does not use automatics
Bzzt. I don't drive round and round a racing circuit all that often. Do you? Automatic transmission can't anticipate what you're going to do next.
How about rally cars? I think normal driving is a lot closer to rally than Formula-1.
Where I live, several months of the year the ground is covered in snow and ice, and manual transmission can give the driver a better feeling to the ground, and she can press the clutch to let the tires start rolling again, if needed. ABS breaks can help too, but not every car has them.
Yes, I've driven cars with automatic transmission. They're a lot more comfortable. But are they safer? More economic? More fun? No way. |
| Fri 20 Aug | yes, the world has advanced | WOW.
All you manual trans freaks must've driven some really shitty automatics. |
| Fri 20 Aug | Kent | The new automatics in some cars are better than anything in the manual cars...
...but I like a manual just because it's more fun (for me) and I feel like I'm driving. |
| Fri 20 Aug | Mr Jack | Which is an entirely fair, and rational, reason for driving a manual!
The fact is, however, most of us spend most of our time in our cars doing one of three things:
1. Cruising at motorway speeds - when it makes no difference - the gears aren't being changed anyway - what you need is Cruise Control.
2. Sitting in traffic jams - where automatics are far nicer.
3. Driving through towns - where you're frequently changing gears, but not having any fun. Automatics are again more suited. |
| Fri 20 Aug | a cynic writes... | mmm... no. Our Ford Galaxy's automatic box is fine but each gear change isn't as fast as manual. Which isn't a major problem but isn't as comfortable when road conditions require a lot of gear changes. Such as on winding roads with lots of junctions.
For example from my house to the station is
r-1-2-3-2-1-stop
1-2-1-stop
1-2-3-2-1-stop
1-2-3-4-5-4-2-1-stop
1-2-3-2-1-stop
1-2-1-stop
1-2-park.
That takes 4 minutes - 2 minutes of which I'm in 5th gear and every stop I'm at a junction on a slope *in gear* balancing clutch & break. |
| Fri 20 Aug | a cynic writes... | tut tut...should be "clutch & brake". Mr Jack - I agree (1) & (2) but (3) I disagree as in my experience they're slower away from junctions. |
| Fri 20 Aug | vrt3 | I like driving a manual transmisson. Why? I like to be in control, and it's just fun. At least, that's what I like to believe.
But I've never driven an automatic, so I'm really not qualified to compare the two. Perhaps it's something elitist. I know I can drive a manual, so I don't want dumb down to automatic. On the other hand, I tend to believe many of the automatic-lovers consciencely or unconsciencely have fear of manuals because they just don't know how to handle them. Sounds harsh perhaps, but I say that because I know that it happens relatively often that I find myself dislinking something, only because I don't know how it works.
An example: Python. The last few years, the Internet has been full of Perl, Python, Ruby, you name it. I was always opposed to that trend: I know my C, I know my C++. C/C++ ought to be enough for everybody. Away with these modern stuff. But then I started to learn Python, and now I like it a lot.
The same thing with .Net, with the exception that I haven't learned anything about it so I still dislike it.
Not very rational, I know, but the mind doesn't always work rationally. |
| Fri 20 Aug | no name | I've got a manual in my corolla.
I live in the city and commute to work.
It sucks.
I look like hellboy, only with a really big left leg. |
| Fri 20 Aug | devinmoore.com | Reasons why I drive a manual:
0) Manuals have a clutch too, not just a shifter. As stated above, you are controlling an additional parameter, like having a wah pedal on a guitar. Sure, you can use auto-wah, but it's not as expressive as controlling it yourself.
1) Manuals kick ass! How can I kick ass with an automatic? It's pretty hard to.
2) Manuals make you feel more connected to the car. It's like being 'jacked in' to the Matrix.
3) Manuals get better gas mileage, based on the numerous factory stickers/stats I saw when I looked for & bought my current car. Yes, I know the stickers/stats aren't perfect, but 5 mpg across the board does make some difference.
4) Regardless of how many variables a computer-controlled 'modern' automatic like a BMW can control, there's still the 'it' factor that humans have. Otherwise, why would race cars have manuals (for the ones that have more than 1 forward gear)? Because humans can make a judgement based on instinct, which computers can't do because they don't have instincts. You can't program an instinct, because it can be any combination of signals. There will always be humans that are 'gifted when shifted', and that can make the right decision to shift/press the clutch just a little/etc. when a computer would not. |
| Fri 20 Aug | xyzzy | My cousin's NASCAR Super Stock Oval has an automatic transmission. He has driven oval race cars with manual transmissions, and perfers the auto.
He does very well! |
| Fri 20 Aug | hoser | Holy crap.
Albert drives an SLK?? I concede all. And I do mean all.
Even if I had that kind of money to throw around, convincing my wife that I could have an SLK would be impossible.
Like the 'all in' round in the ESPN Texas Hold-em thing on TV, I was merely bluffing and Albert had the full house, Ace high.
I want his car. |
| Fri 20 Aug | John C. | 'It seems quite obvious to me that when you're paying attention to the gears, you're not paying as much attention to all the other tasks involved in driving a motor vehicle. Huamns have a limited amount of attention to go round, you know!'
The latter part of this statement is basically true. However, the first part is not necessarily true. The reason is that as humans become proficient at a task, they internalize its execution to a point where it no longer requires conscious attention. Shifting is like that; 99% of the time I never even think about shifting, it just happens subconsciously. |
| Fri 20 Aug | Bilge Rat | Automatic = boring
Manual = fun |
| Fri 20 Aug | ...like running in the special olympics... | I prefer [automatic|manual]. It's really the only way to drive. Anyone who doesn't use a(n) [automatic|manual] doesn't understand driving. Driving a(n) [automatic|manual] allows me to focus more on the road. I have both a(n) [automatic|manual] and a(n) [automatic|manual], and the [automatic|manual] is much better! [automatic|manual]s get better mileage, too! |
| Sat 21 Aug | old enuf to be yo daddy, also just hanging around on a friday night | obviously someone how drives an automatic. |
|
| IBM in a pickle | Thu 19 Aug | Philo |
| Interesting observations - theres a Masters thesis in IT management in this whole situation.
http://blogs.sun.com/roller/page/jonathan/20040801#ibm_is_in_a_pickle
Philo [Microsoft] |
| Thu 19 Aug | TheGeezer | Don't think there is much to be read into that. After all, it's Just Another Blogger and his miscellaneous ramblings.
Still, he's entitled to his opinion. |
| Thu 19 Aug | yet another anon | As Sun's COO, Jonathan Schwartz isn't 'just another blogger'. He's 'just another blogger who needs to cut off his dork handle*'
*aka, ponytail |
| Thu 19 Aug | Code Monkey | >....but the short sightedness to suggest customers source their PC operating system from a little company in the Pacific northwest
That is not shortsightedness...that decision is what made the PC what it is today or we would have had a 100 different Apple incarnations. Not that this would have been bad to say that this decision was shortsighted is incredibly stupid a COO to make and I would discount his other ramblings likewise |
| Thu 19 Aug | hoser | Sun's perpetual state of Linux envy. BFD. |
| Thu 19 Aug | yet another anon | Seriously, this is just Sun's FUD-rucking. See the latest market share figures: IBM, Dell rise in servers while Sun, HP shrink (May 24, 2004) http://news.com.com/IBM%2C+Dell+rise+in+servers+while+Sun%2C+HP+shrink/2100-1010_3-5219377.html?tag=cd.hed |
| Thu 19 Aug | no name | IBM is suffering from suit disease. It's been a bit too clever pretending to support open source. Made a massive clanger putting SCO source code into Linux and thought it wouldn't get caught.
Watch the ceiling fall over the next few years as the rats desert the ship. |
| Thu 19 Aug | Mitch & Murray (from downtown) | Sun is so fucked most dictionary publishers are preparing a new entry for the word "fucked" with a picture of Sun HQ. A year or two from now they will be dicussed in the same context as DEC. |
| Fri 20 Aug | www.marktaw.com | Hmm. Microsoft [Philo] using one cometitor to spread FUD about another.
or
Why is Sun fighting with IBM when they should be joining forces against Microsoft? |
| Fri 20 Aug | no name | Pretty much my reaction, MarkTAW (the first, not the second). Pretty sad, to be honest; I used to have respect for Philo in his "camel days". |
| Fri 20 Aug | Michael Moser | Whats the deal with red hat?
-- all they do is a linux distribution. IBM can do a linux distribution for their stuff, it isn't that hard to do.
They do not have to buy SUSE or NOVEL or whatever. All it takes is a small team to package the stuff they need to do the IBM IT stuff - they don't need 16 windows managers 15 web servers ad 6 JSEE servers all packaged into one set of cd roms. |
| Fri 20 Aug | Anonymous Coward | Nice SCO troll. Did you forget to sign your name, muppet? |
| Fri 20 Aug | Ogami Itto | Whe "google" for things. Pretty soon we'll start "muppeting" anyone we don't like. |
| Fri 20 Aug | JP | > That is not shortsightedness...that decision is what made > the PC what it is today or we would have had a 100
> different Apple incarnations.
It was pretty short-sighted from IBM's point of view. That, combined with their open hardware specs, meant that they had absolutely no control over either the hardware or the software of the PC platform from its infancy. They spent several years trying to regain control of both the software (via Topview, OS/2, etc) and the hardware (PS/2), but never managed to do it.
Put it this way: IBM developed the PC in order to make huge bundles of cash selling computer hardware, not to create an open platform for other people to make money from. But how many PCs do they sell today...? |
| Fri 20 Aug | no name | > Nice SCO troll.
Silly me. I forgot. No-one is allowed to endorse SCO's point of view. Oh, wait, this isn't groklaw. |
| Fri 20 Aug | RocketJeff | >>Put it this way: IBM developed the PC in order to make huge bundles of cash selling computer hardware, not to create an open platform for other people to make money from.
Nope, they didn't plan on making a lot of money off the PC. IBM's original intent was to have a PC to sell to their existing customers (and to keep them locked into a 'total IBM' solution).
If they had thought there was a lot of money to be made from PC's, they would have made the hardware hard to clone and have either written their own OS or have had a better (for them) contract with MS about DOS.
IBM's big mistake was underestimating the influence their name brand would have. With the introduction of the IBM PC, companies saw that _IBM_ was introducing a PC so therefore it must be more then just an expensive toy (which is what most people thought of PC's as). |
| Fri 20 Aug | JP | RocketJeff, even with that stipulated, my point that IBM failed to achieve their ultimate business goals for the PC still stands, I think.... |
| Fri 20 Aug | www.marktaw.com | RocketJeff, sounds like a perfect example of 'The Innovators Dillemma.' Which can be summed up by the sentance:
We're not in the ___ business, we're in the ___ business.
We're not in the TRAIN business, we're in the TRANSPORTATION business.
Can we (90's buzz word warning) say Paradigm Shift? |
| Fri 20 Aug | Stephen Jones | ----'RocketJeff, sounds like a perfect example of 'The Innovators Dillemma.' Which can be summed up by the sentance: We're not in the ___ business, we're in the ___ business.'------
There is a marvellous article by John C. Dvorak in the August 17th issue of PC Magazine http://www.pcmag.com/dvorak entitled 'The Myth of Disruptive Technology', in which he tears apart the whole concept.
Dvorak is either very right or very wrong, but on this one he's spot on. |
| Fri 20 Aug | Philo | 'Hmm. Microsoft [Philo] using one cometitor to spread FUD about another.'
Just a suggestion - when you're going to call something FUD, you should refute it with facts and cites. There's only been one quoted fact in this thread which disputes the story.
I don't post FUD. Generally I will try not to start competitive threads at all for exactly the reason MarkTAW cited. Once in a while I'll post something that I find personally interesting while appears to make sense to me, and I'd like some comments on.
However, if even MarkTAW now only sees me as a Microsoft drone with no capability for independent thought, I wonder if my ability to participate in this forum is done. It was a difficult choice when I took the job - be open about it and trust that the regulars here could still see me as Philo, just working in a new job, or not say anything about it and not be able to share the source of some unique insights.
It appears my trust was misplaced. I should've taken the advice of that book on my shelf:
http://www.amazon.com/exec/obidos/tg/detail/-/0395384656/
I think I'll head back to Usenet.
Philo [Microsoft] |
| Fri 20 Aug | And he even called me an idiot once! | To paraphrase Joel, I'd rather have Philo posting here Mondays and Tuesdays than most of the other regulars put together.
Philo has an interesting point of view, and just because he works for Microsoft doesn't mean he's suddenly the Mouth of Bill Gates. The guy has a law degree and he went to Annapolis. Don't you think that if he wanted to make an argument against [MS Competitor] he could come up with something better than, 'Interesting observations'?
Hell, even if he *was* posting just to advance the MS party line, would that make the referenced article any less of an 'interesting observation'? |
| Sat 21 Aug | Mongo | Philo, I hope you're just temporarily piqued; you're one of the main reasons I (and I'm sure many others) frequent this board. Even though I occasionally disagree with you, you're obviously smart, thoughtful, and frankly hilarious when you choose to be.
MarkTAW, you might not have really meant to, but you've gone over the line here, and I think an apology to Philo would be the appropriate thing for you to do. Your decision, of course. |
| Sat 21 Aug | jm | Marktaw, please go sit in the corner. Especially after defacing the board with the long stream of 'HA's.'
Philo, no-one with any intelligence sees anything in your views except insight, humour and tolerance. |
|
| Bargaining for more flexible flex time | Thu 19 Aug | muppet |
| Ok, Im sure Ill get flamed to pieces for this one, but here goes. At my current employer, Ive got flex time, with core hours of 9am - 3 pm. This means that so long as I am here between 9 and 3, I can work any 9 hour shift (including a lunch) that I want.
Now.. my daughter gets out of school at 3, and its a 30 minute drive. It would be a beautiful thing indeed if I could convince my manager to allow me to work 5:30 - 2:30. Yes, Id miss 30 minutes off of core hours, but in practice, I never, EVER have a meeting past 2:00, and if I did, I could make alternate arrangements for that day.
The alternative is to enroll my daughter in the after school latchkey program, and pay $300/month for the privilege of having some stranger watch my kid for 30 minutes each day until Im able to come pick her up (the program actually lasts 3 hours each evening, but I dont NEED 3 hours of coverage).
Now, plenty of people take advantage of the flextime here, which is to say they use it, not abuse it. Plenty of people have sporadic schedules, and as such, meetings are scheduled way in advance. I have a mobile phone, and I can dial into the LAN here from home.
How do I present this without getting my head bitten off? Anyone? I dont think this is an unreasonable proposition. Granted, the rules are for everybody and all that, but were talking 30 minutes, and Id still be working 9 hours a day. (if anything Id be more productive, with 3.5 uninterrupted hours each morning, since most of the business comes in at 9) |
| Thu 19 Aug | Babu | So you're afraid to ask your manager a simple question about work hours, yet you have no problem coming here and ranting about everything else.
Is that what they call a 'passive-aggressive weasel'? I'm not a native citizen of U.S., maybe somebody can help me understand this strange part of their culture. |
| Thu 19 Aug | Simon Lucy | That's a hard case to make, although most core time here would start around 10 to 10:30 and probably finish around 4 to enable people to do the school run, at least in the morning.
Although I generally work from home and I can likely get to pick my daughter up from school every day I enjoy the days she's been in after school care and its going to be a bit of a pain from this year that she doesn't have after school club to go to.
You're going to lay yourself open to a couple of difficult questions:
ie 'Beryl and others have children in school and they seem to be able to make arrangements'
'Having you in at 5:30 might be good for you, but makes you unavailable to the rest of us in our core time'.
And so on. The latter one is the one that would be the killer were I the manager because its not something I could defend either from other members of staff or other managers. |
| Thu 19 Aug | Ron Porter | Hang tough until the next salary review, then suggest this option as a cost-cutting measure. You get an extra $300/month and the company doesn't have to give you a raise.
Another option is to make a suggestion, anonymous or otherwise, to the appropriate person or group that it might be beneficial financially to ask everyone whether or not there are financial burdens associated with hours of work that can be reasonably alleviated with policy changes. Naturally, for this to be a cost-cutting measure, the policy would also have to state that taking advantage of the policy would also cause a wage/raise reduction in accordance with the loss to the company of your time.
I did this at one employer in order to get my hours synchronized with my wife's commuting schedule, thus eliminating the need for a second vehicle. Public transit was horrific for the routes we would have needed to use. It didn't really cost my employer anything and it saved my wife and I a huge after-tax burden. Of course, with the way Canada's taxation laws are being interpreted these days, doing something like this now would probably get classified as a taxable benefit :) |
| Thu 19 Aug | Sgt. Sausage | ==>You're going to lay yourself open to a couple of difficult questions:
as well as a few others:
' If we give you a half hour earlier than the rest of the folks, what do we tell Bob in Accounting when he asks for a half hour earlier than you?'
The issue is that you'll be setting a precedent that they likely don't want to set. They'll open themselves up to a lawsuit from Bob. They're giving in to your request, they'll almost *have to* give in to Bob's if he pushes the issue.
Once they give in to Bob, then Mary over in Legal will want yet another hour earlier ...
You see the point (I hope) . It's a slippery slope for them to deviate from the published SOP.
It all likely depends on your value to the company. If you're a great employee, they may work with you on this. It's a cost/benefit. They've got to weigh your value as an employee against the likelihood of associated costs (Bob suing 'cause they won't let him come in an hour earlier). |
| Thu 19 Aug | I am Jack | Who cares about Bob? He has bitch tits.
Sorry... couldn't resist. |
| Thu 19 Aug | Chris Peacock | I would enrol in the latchkey program, it keeps you're life simple but more expensive. Although it only takes you 30 minutes you have to consider the possibility of traffic problems - if you are late what happens?
The latchkey program also gives you flexibility to work past 3pm if you need to attend an important meeting or finish some important piece of work - it might be rare but will mean a lot to your employer when you are then when you are needed.
Being a good parent is one of the toughest jobs in the world, being a good single parent is even tougher. You've got to simplify your life as much as possible so that you are in the best position to respond to the unknown both at work and at home. |
| Thu 19 Aug | Robert 'Groby' Blum | Not being an American, I might have a completely skewed view on this - but can't your daughter just take a bus? Or wait at the school?
Genuine curiosity here - no offense intended. I know that I went home on my own starting in first grade, and I spent a lot of time in the school library when I didn't want to go home - but that was Germany, which might be a completely different story.... |
| Thu 19 Aug | Bill Rushmore | Seriously, why not just ask your manager? Worst thing that can happen is that he/she says 'no'.
Don't forget to add since you'll be in early you won't have to deal with the annoying co-workers for the first several hours and be more productive. My last job I got in at 5 so I could be a little more in sync with co-workers in Helsinki and it was fanastic. I worked half my day before the rest of the crowd got in but got much more work done. Missed all the traffic too. |
| Thu 19 Aug | kc |
Are there after school activities (sports, theatre, study sessions) or anything similar that occur semi-regularly? |
| Thu 19 Aug | MikeG | I would agree with Chris. I think the problem is that in reality a 1/2 hour may not be enough and really how often do you get out of the office at the *exact* time that you need (i.e. you try to leave everyday at 3:00 and end up leaving at 3:15 especially when the bulk of you co-workers are getting in/eaving later- they have no problem coming over at 2:55 and striking up a question/conversation).
I understand that you want to spend time with your kids (and think its great) but maybe the after school program would be good. Plan on picking the kid up everyday at 4, this gives you plenty of slack time, it gives you a chance to wind down from your work/clear your mind (and relax a bit), plus it gives your child a chance at some socialization/make friends.
If your going to rush everyday to pick her up and potentially suffer career-wise for it, will either of you be better off for it?
Mike |
| Thu 19 Aug | AllanL5 | How does you daughter GET to school? Do you drop her off at 5:00 in the morning? (Just curious).
I've found that companies that have 'core-hours' and flex-time like this tend to be more flexible than those that mandate the 9-5 standard. Given that they've flexed to a 9 to 3 core-time, it doesn't seem to me the extra 30 minutes is going to make a huge difference.
Give it a shot with your manager, and see what he says. Do point out the financial impact of a negative answer, and be prepared to say what you'll do at 5:30 in the morning when no one else is around. |
| Thu 19 Aug | Lanie | If memory serves (which it wildly may not), I think I saw an offhand comment in one of the MSDN blogs recently that Microsoft has *very* loosey-goosey hours. If that's true, how do they manage it? Anyone here who knows?
$300/month is a whopping big pile of money. I mean, you're spending the kid's college fund on daycare. You may not be able to fix this, but IMO it's worth a try.
Are you friends with any of the other parents who might be interested in swapping favors? Or anyone in your neighborhood (like a high school girl) ho could babysit for a lot less money? |
| Thu 19 Aug | muppet | Thanks for the suggestions, all.
Allan: I drop my daughter off at her mom's in the morning and she takes her to school before going to work.
+++Not being an American, I might have a completely skewed view on this - but can't your daughter just take a bus? Or wait at the school?+++
The school isn't going to allow my daughter to wait around on the campus for 30 minutes unattended on a daily basis. In special circumstances, they'll accomodate. Daily, no. And my 6 year old can't take a bus home by herself. Aside from that being completely out of the question from a parenting perspective, it's illegal here. |
| Thu 19 Aug | Lanie (who really was an innocent teenager) | Er... a high school girl *who* could babysit. "Who." I certainly don't want to typgraphically accuse any innocent teenagers of, well, you know. |
| Thu 19 Aug | passive-aggressive weasel | Where to start?
Parents coddle their children WAY too much these days. We're due for a generation of overprotected screwed-up adults.
Kids can ride a bus at 5. I rode a bus at 5. Kids can be left with strangers.
As to how to approach your boss, grow a pair. |
| Thu 19 Aug | muppet | +++Kids can ride a bus at 5. I rode a bus at 5. Kids can be left with strangers. +++
As much as you may not think so in your conservative, broken head, the world is not the same place it was when you and I were 5. I walked to school at 5, by myself, and home, by myself. The way society is today, I'd be lucky if somebody called the police if they saw someone grab my daughter off the sidewalk and run, and there's plenty of people out there who would do it, too. Take a look at your local registered sex offender list, someday.
The world has changed. Sorry you can't deal with that. As for overprotective, not at all. I give my daughter as many opportunities for independance as I can while still making sure she's reasonably safe.
You don't just let a 6 year old walk across town by herself anymore. Not a good idea.
UPDATE: I pitched the idea to my boss, and he's all for it. In fact, he says he'll appreciate the extra coverage in the mornings for production issues?
Grow a pair? Grow up. I wasn't asking for morale support, I was asking for opinions on how to present my case most effectively. |
| Thu 19 Aug | Ron Porter | Good for you, muppet! So how did you approach this? |
| Thu 19 Aug | muppet | I made essentially the same argument I made in my OP, listing the benefits to me and to the department (increased coverage of production issues in the early morning). I explained to my boss that this will save me $300/month, which is essentially a raise (review time is coming up), and that I'll be able to be more effective if I get here 3 hours before most of the business folks.
It was surprisingly easy to convince him, actually. I'm amazed. |
| Thu 19 Aug | kc |
Congrats muppet.
Nice to see that it worked out for you.
Now if I could just convince my boss of the same.... of course, I don't have kids. |
| Thu 19 Aug | Chris Peacock | Now you have to get up at 4am! oh dear... |
| Thu 19 Aug | Edward | Your welcome honey, I'm happy to drive you home from school. Yes honey, I'd love to play tea-party with you, but daddy has to slip into a coma right now... |
| Thu 19 Aug | Clay Whipkey | Although its past the point now, I got muppet's back on this. His request was reasonable. |
| Thu 19 Aug | muppet | Edward - LOL
I've been meaning to be more disciplined about getting to bed earlier, anyway. :) |
| Thu 19 Aug | Gustavo | 'Do point out the financial impact of a negative answer, and be prepared to say what you'll do at 5:30 in the morning when no one else is around.'
Good Lord! Don't do THAT!!
Well boss, I'll stroll in at 5:35, open my email program, get my coffee, make an english muffin, read the paper, and start working around 6:15... |
| Thu 19 Aug | Ricardo Antunes da Costa | >Well boss, I'll stroll in at 5:35, open my email program, >get my coffee, make an english muffin, read the paper, >and start working around 6:15...
And what's the difference from gettin at 9:00, open email program, get coffe, read JOS, and start workin around 10:30 ? |
| Thu 19 Aug | passive-aggressive weasel | 'I explained to my boss that this will save me $300/month, which is essentially a raise (review time is coming up)'
LOL! What a doormat. You just talked yourself out of a raise.
Congrats on getting bent over. |
| Thu 19 Aug | muppet | Actually, I got a $4,000 raise two months ago thanks to a re-classification of my position, 3 months early for my review. So I'm still doing just fine.
Thanks for your input, though. Try again when you have a clue. |
| Thu 19 Aug | Mr.Analogy (ISV owner) | How might you being there early benefit at least ONE of your internal 'customers'?
Perhaps there is a need (or some job you could perform) that would REQUIRE you to be there early, perhaps taking the backup tape out of the mainframe computer (yes, that was once my job :-) Got off early to go rock climbing).
'Diplomacy is the art of letting someone else get your way.' |
| Thu 19 Aug | muppet | In my case, I work 30% of the time on payroll systems. So coming in nice and early will allow me to provide quick support if the payroll cycle (run early in the morning) hits a snag. This was part of my pitch. |
| Thu 19 Aug | Edward | I'm finding this whole flex time thing frustrating, in my particular situation.
Half the time now, when I go to find somebody, they're off early, or off for the day, or whatever. I'd say in a typical week that there's only ~20 hours where my whole group is in the office.
Not to mention the frustration of having to get something done by end-of-week, and two of the guys are running out the door on Thursday for their long weekend. Ugh.
As well, I used to find that lunch is a good time to socialize; go grab a quick bite and have a chance to talk about things other than work. Now, people have lunch somewhere from 10:00 to 14:00.
YMMV. |
| Thu 19 Aug | muppet | Edward -
Don't you have core hours? Why don't you schedule time with the people you need to see on by-the-end-of-the-week issues? It sounds like a large part of your problem is disorganization. |
| Thu 19 Aug | Edward | No, we don't have a serious problem.
The problem is that I want to ask a quick question of someone, but half the time they're not working yet/still. |
| Thu 19 Aug | Edward | Annoying too is the occasional rush to get something done, and having to stay a few hours to do it. The people working 4 day weeks are already working 10-hour days, so they don't feel like staying much more.
And of course, aren't going to come in on their day off (usually Friday here). |
| Thu 19 Aug | muppet | These are all typical arguments by folks who seem more jealous of people taking advantage of flex time than genuinely annoyed. There are logistics to deal with in ANY office arrangement. Simply being in the office is not the only prerequisite for availability. All of your problems come down to organization. There is no 'quick question'. Nothing takes a programmer out of the Zone worse than having to stop their train of thought and change gears to respond to your 'quick question'
Use email/voicemail. Schedule meetings. |
| Thu 19 Aug | tim | Okay. I'm sure your group works differently than mine.
That's fine. |
| Thu 19 Aug | Edward | The previous was from me. Lousy low-power laptop battery ;-) |
| Thu 19 Aug | muppet | It sounds like your group is different in that it's disorganized. ;)
Your low laptop battery makes your name change? |
| Thu 19 Aug | Edward | I switched computers because of the battery. My part-time roommate had his name typed in there already...I didn't even think about checking it... |
| Thu 19 Aug | no name | Muppet,
I sympathize with you regarding your plight. It is difficult in this day and age.
You have said you boss likes the effort you put forth and are well respected by him. Surely he would go for this.
You are obvioulsy smart enough to be a great programmer (not sarcastic, I am taking you at your word). Why not add to those book smarts and computer smarts and academic smarts with people smarts.
Read a book about psychology. Talk to people. Watch how others talk. Start experimenting by saying different things to these annoying people and see what works best.
If you were truly as smart as you say you were you wouldn't have a problem with them. You'd know how to handle them and of already remedied the situation. If you were truly as smart as you think, you'd be CEO by now or have gotten yourself into a different situation (read: self-employment or contracting) where you didn't have to deal with people like that all the time. Maybe you are just a self-mutalist or like self-pity? I used to be like that. Seriously.
You seem to be successful with women (in terms of sex and dating according to your posts). Closing women and closing deals in the office are very much alike. Handling women and handling bosses and co-workers to get what you need out fo the relationship are also very much alike. Try applying like principles.
I have read over this post and it is in true honesty and I am truly trying to help. I doubt there is anything in it you can flame and rebut (as opposed to actually discussing some of the issues). So let's, for the (fantasy) life of god, keep it to the topic:
If you are so smart in other areas of your life, what makes you think you can't become a genious when dealing with people? I believe you can. |
| Thu 19 Aug | I pity muppets employer | 'I'll be able to be more effective if I get here 3 hours before most of the business folks.'
Bahahahahaha! That's a laugh. Based on how much time you claim to spend at work taking care of personal business, surfing, etc. while people are in the office, how much more effective will you actually get done having 3 hours of time alone in the office? |
| Thu 19 Aug | I pity muppets employer | Wow, my grammar is atrocious! |
| Fri 20 Aug | Mr Jack | How old is your daughter? Can she not just let herself in, and avoid getting herself maimed or killed for thirty minutes?
(Says I, who was a latch key kid from the age of 11). |
| Fri 20 Aug | Mr Jack | And for that matter, have you no friends? No-one who could take her for a half hour after school - maybe some of her friends parents? |
| Fri 20 Aug | Mr Jack | Hmm... perhaps I should read rest of thread before replying. Seems like you've got it sorted. |
| Fri 20 Aug | no name | If 3pm is the normal school closng time round your way I think you should suggest it as a company/office wide policy change since you can't be the only one who has the problem. If your daughter's school is special then tough titty. Don't try and make yourself out to be a special case or the might decide you are just a problem case. |
| Fri 20 Aug | no name | > And what's the difference from gettin at 9:00, open email program, get coffe, read JOS, and start workin around 10:30
At 6:15 you can still surf porn for a couple of hours at least until anyone else gets in. |
| Sat 21 Aug | Bella | Ask boss for the additional flexibiliy.
If he says yes, problem solved.
If he says no, look for another job that suits your needs.
|
|
| GOOG off to the races! | Thu 19 Aug | Crackhead |
| http://finance.yahoo.com/q?s=GOOG&d=t |
| Thu 19 Aug | Alex | I would have preferred GGLE. |
| Thu 19 Aug | hoser | Bravo for Google. I'm glad to see that they're getting a nice boost from their opening price. I live for the day when technologists can tell the likes of Goldman Sachs to screw themselves. Google successfully has shown us the way. |
| Thu 19 Aug | Art Vandelay | 6 months from now GOOG will be trading at a fraction of the current price. Everyone who bought at $85+ will be screwed and a handfull of insiders walk away with $400 million.
Do No Evil my arse. |
| Thu 19 Aug | Dennis Forbes | 'Bravo for Google. I'm glad to see that they're getting a nice boost from their opening price. '
Why? Ultimately this is exactly what Google didn't want - they themselves wanted to capture the market peak, and clearly the efficient market of the dutch auction wasn't fully successful.
Of course this is (IMHO) a hilarious short-term day, unjustified runup and it'll be at the cost of all of those who think they're at the onset of a runup rather than preceding a precipitous drop.
Let's revisit this in two weeks. :-) |
| Thu 19 Aug | Simon Lucy | Yep, today and tomorrow are not the days to value the company, statements like 'this capitalises the company at $23 billion' are just nonsense. |
| Thu 19 Aug | hoser | Actually, is not Yahoo valued around $2 billion? I would say that Google is Yahoo's equal, and while Google's feature set is less than Yahoo's and visitor 'staying power' less than yahoo, I am guessing (without specific knowledge) that Google has built an infrastructure that can easily accomodate new features with large capacity more easily than their peers.
Having said that, I don't typically own shares in 'internet stocks' - the most go-go I get is MSFT and IBM, where you can actually figure a decent valuation against not just tech but the broader market.
As for 'do no evil' - this is the stock market. There is nothing
'safe' out there. Buyer beware is always the rule. |
| Thu 19 Aug | devinmoore.com | From CNN.com: 'A few minutes before the shares officially opened for trading, the market saw a false start when the shares appeared to debut at $136. But a Nasdaq official said this was the result of two trades that 'should not have gone through.'
Nasdaq declined to comment further.'
Did they get hacked? |
| Thu 19 Aug | . | hoser - yahoo valuation is 38 billion .
http://finance.yahoo.com/q?s=yhoo |
| Thu 19 Aug | Mike | 'Did they get hacked?'
No some large playas tried pulling a fast one no doubt. |
| Thu 19 Aug | Miles Archer | The the damn investment bankers got the last laugh. They got their shares at $85 and are dumping them to the suckers who they excluded from the auction at $100 (as of right now) |
| Thu 19 Aug | Chris | Anyone could have bought Goog for 85 bucks if they wanted to. The process was purposefully designed to allow any person to buy as few as 5 shares. I can't disagree about the idiots who bid it up to $100+ a day after they could buy it for 85... |
| Fri 20 Aug | Matthew Lock | Back up to 100+ now. |
| Fri 20 Aug | Joel Spolsky | I heard that people didn't get all the shares they bid.
Someone might have been for 100 shares at $100. They would have gotten maybe 75 shares at $85, but they still want 25 more shares, and they think it's worth $100, so they went and bought 25 shares on the open market. It doesn't mean they're an idiot. |
| Fri 20 Aug | Stephen Jones | Sorry Joel, but in my opinion anybody buying shares with a price to earnings ratio of over 100:1 is, if not an idiot, at the very least an incurable optimist. |
| Fri 20 Aug | Jeremy | If y'all are so confident the GOOG price will drop, you could always buy some puts or short the stock. (This is not investment advice.) |
| Fri 20 Aug | Chris | Well... Joel has an interest in GOOG doing well. He owns stock! |
| Fri 20 Aug | Albert D. Kallal | >Anyone could have bought Goog for 85 bucks if they wanted to.
Are you saying the public could have purchased shares at that price? I don’t think so!
The price at which joe public could purchase shares was about 100 bucks, and that is the same price that the stock closed at on the first day.
The above is actually quite surprising, because MOST tech IPOS actually closed LOWEVER then their FIRST TRAIDNING of the day. (on average about %15 down…not exactly a good one day return…is it !!!).
Palm stock, and large number of other IPO’s I looked at actually all closed down by the end of the day. Sure, the news reporters state that the stock opened at $85, and was up for the day…but that is totally misleading. You cannot look at the IPO price, since traders and public don’t get it at that price. Based on this kind of knowledge, then that is why I did not purchase palm stock.
The problem is that you have to put in a order at market value trades (you can’t say by x number of the stock at $95, since you would NOT get it. Further, you don’t want to say purchase x number of shares at $110 either!. So, the only thing you can do is tell your broker to purchase $4000 worth of the stuff at market value (whatever the trades are occurring at). This is the ONLY way to get trades on the first day of a IPO. And, as mentioned, in MOST cases, you would have lost 15% to 20% on the first data if you purchased at market values on the first day of trading. (after all, money don’t grow on trees….well…except for the IPO share holders!).
The ONLY benchmark here is what could Joe public purchase the shares for, and at the end of the day…how much were they up.
However, $85 dollars is a rather HIGH ipo price…and those employees will be dumping this stuff as fast as they can….I know I would!!! $85 has a huge potential downside right now!
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Sat 21 Aug | Chris | >Are you saying the public could have purchased shares at
that price? I don’t think so!
Well... the American public could before the stock was traded on the market. |
|
| Ford kills major Oracle inititiave | Thu 19 Aug | Stalin |
| Almost 5 years in the making with millions and millions spent, and they are dumping an entire procurement project and going back to what they had in place.
Im sure this was due to a lot more than any perceived problems in Oracle, but wouldnt just love to know the real reasons the project was scrapped?
http://www.computerworld.com/softwaretopics/software/story/0,10801,95335,00.html?from=homeheads |
| Thu 19 Aug | muppet | Divisional politics. I'll be willing to bet it went something like this, which will never see the light of day: The technical people built a brilliant system with outstanding audit capabilities which caught all of the previous accounting and inventory mistakes of the various business managers over the past year or more. As data was migrated, huge discrepancies were found in numbers that could spell a permanent vacation for a few middle-to-upper managers. An internal campaign to paint the new system as unreliable and full of data discrepancies (which were there in the old system, only silent due to lackluster auditing, subpar reporting, whatever), and the whole project, after many many emergency committee meetings and vicious discussion (including many personal attacks both at the table and via email), was scrapped as a failure. |
| Thu 19 Aug | ThrowTheBumsOut | The reasons won't really matter much to Oracle -- they got their licensing $$ up front. It's yet another failed 11i Financials implementation. At least Ford won't be giving this failed implementation as a reason for declining profits, like Agilent and a few other companies did. |
| Thu 19 Aug | Mike | What major technology company has had all it's projects turn into burgeoning success stories? SAP, Microsoft, Sun, IBM, who?
Not sure why this is newsworthy, it happens frequently with many technologies and vendors thereof. |
| Thu 19 Aug | Guillermo | Mainframes forever. |
| Thu 19 Aug | GenX'er | 'Mainframes forever.'
UGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
PLLLLEEEEAASSSEEEEE NOOOOOOOOOOOO!!!!! |
| Thu 19 Aug | Raju Patel | 'Divisional politics. '
I am in Dearborn and you are close. :-) |
| Thu 19 Aug | kc |
Haha. A few months ago I completed a *very simple* RMA (Return Merchandise Authorization) Tracking System and in a matter of days, certain managers were getting ticked.
It seems that for some of our vendors, one of our people would buy something, keep it for a while, and then return it without requesting a refund. Therefore, there was a valid purchase order in the system and a valid shipping receipt... and the trail goes nowhere.
There was *no evidence* that people were purposefully scamming the system, but one could easily believe that the vendor was selling the item a second time and giving kickbacks.... |
| Thu 19 Aug | Dennis Forbes | This project likely failed for the same reason that throwing code out and rewriting from scratch usually fails - it's extremely difficult to wholesale replace a system, either in the software world, or in the system world. There have been countless examples of multi-million dollar all-new-and-shiny systems turning into massive failures. |
| Thu 19 Aug | muppet | Dennis -
I'd be willing to bet that many of them failed for a similiar scenario to the one I described above. Management doesn't like sophisticated systems that catch them tripping up and/or playing the old system. |
| Thu 19 Aug | Peter | KC, that sounds like a system I encountered at a previous company, where I found that one of the midsized customers was stealing about $1k per month.
What is happening at the place that is returning goods without getting a refund, it is quite possible that one or more of the employees there are/were embezzling: they return the item, get a refund check, and cash the refund check out of petty cash (you would have to be an accountant at the place to get away with it). The books balance, because the check would be written to the company, and the books would balance. If you are still at this place, try to investigate whether there are a number of 'mis-written' checks where digits get transposed. Invoice is for $890.00, check gets 'mis-written' for $980.00. Accountant asks for refund check, gets a check for $90.00. Accountant endorses check and places in petty cash drawer, while extracting $90 from drawer (so petty cash is reconciled). Repeat once or twice every week for a decent pay raise. Look for someone who never takes vacations. There is an out of print book called 'sticky fingers' which describes this and several other methods, and how to catch them. Come to think of it, there are very few books about how to catch embezzlers, which may have something to do with why there are so many embezzlers.
How the customer was stealing $1k per month:
Each week, they would order 4 'exchange' radios (so that the customer could drive up, get theirs swapped for a rebuilt one and then leave), and then send 3 of them back, one per week. Since the existing system was paper, they had 3 UPS tracking numbers and could game the system by claiming (to the person who called up asking when it was coming back) that they shipped it and here is the UPS tracking # (the other paperwork had been filed, so it was out of sight, out of mind). They would keep about 4 radios per month, with a wholesale value ranging from $200-$500. I caught them by spending 6 hours one day, tracking down all the paperwork in the filing cabinet and reconciling what I could reconstruct. As it was a small, family run business, the owner got all kinds of enraged because my detective work showed his system was flawed (and in his eyes, if his system was flawed, so was he, therefore he could not admit that there was a problem). Based on his profit margins for that product line, he needed $250,000 in annual sales to make up for the $15,000 being stolen annually by that 'customer.' |
| Thu 19 Aug | Raju Patel | 'There have been countless examples of multi-million dollar all-new-and-shiny systems turning into massive failures'
Auto industry is full of it. And what a mess FORD is!
I would work (IT) for Japanese OEM anyday compare to comapnies like Ford and Chrysler. |
| Thu 19 Aug | Philo | Peter's story is why I maintain that the whole security clearance/background check miasma is pure and utter BS. You *cannot* tell who will be honest by looking at them. You do a cursory check for silly things like huge gambling debts or 'former Enron Executive', but pretty much you trust anyone that looks trustworthy on the surface.
The trick, the hard part, the thing that requires work is that then you MONITOR THEM. It still baffles me that Aldritch Ames was caught because someone had the bright idea of running a credit check on him while he was working there. Anyone with a security clearance should have credit checks run on them quarterly, and if debt is being either run up quickly or it's being paid off faster than the reported income provides for, it's time for internal investigation to take a closer look.
Related note: when the Air Force discovered that 90% of travel fraud was detected via audit, they trashed their byzantine travel regulations, saving some millions of dollars per year, and put some of the savings into hiring more auditors. The Auditor General of the Navy during the '90's had a standing offer to the Secretary of the Navy to run on a zero budget if he could keep 10% of all assets recovered by audit. This would've increased his operating budget tenfold. Instead, the Navy continued to simply cut his budget.
Trust, but verify.
Philo |
| Thu 19 Aug | muppet | +++Anyone with a security clearance should have credit checks run on them quarterly+++
do you know what quarterly credit inquiries will do to your report? ugh. |
| Thu 19 Aug | Peter | Oh, another war story, this time from GM. This story made the rounds when I worked for a division of GM in the mid to late 1980s.
Time: early 1980s. Consultants are building an expensive warranty data mining system (back when data mining was still a subject for PhD, and nothing was commercially available). Well, one of the specs was for it to accept 'natural language' queries.
During the acceptance trials, one crotchety old geezer, who hated the project and wanted it to fail, told the person at the keyboard to type in the following query 'how many convertibles have had their roof repainted?' Repainting parts of the car while it is under warranty is reasonably common. Especially back in the early 1980s. And most claims auditors couldn't identify a convertible from a hardtop by looking at the VIN (vehicle identification number, the 17 digit serial number for your car, look at the top of the dash, thru the window, when you get into your car tonight). Story goes, everyone told the guy to lighten up, but they typed it in anyway, and pages of VINs came out. Supposedly it uncovered enough fraud from that one question to pay for the system. |
| Thu 19 Aug | Philo | 'do you know what quarterly credit inquiries will do to your report? ugh. '
Actually there are certain credit inquiries that don't count against your score (frx, when you check your own). It would be trivial for the US Gov't to simply notify the credit agencies that checks by 'US Treasury' shouldn't count against the score.
Philo |
| Thu 19 Aug | muppet | Ah, now you're thinking like a Microsoft guy. It would be trivial for the US government to tell the credit reporting agencies what to do, without any supporting legislation or authority to do so. :) |
| Thu 19 Aug | Philo | I didn't mean 'tell' as in 'direct' - I meant 'tell' as in 'inform'
Credit reporting agencies actually want their scores to be reliable to some degree. They have absolutely zero interest in destroying the credit scores of every civil servant through an administrative oversight.
US Gov't: 'FYI, we're going to be auditing the records of our employees at random for security purposes.'
Credit agency: 'Thanks, we'll update our scoring schema to disregard inquiries from the Treasury Dept'
FWIW, there's a very real problem with my plan, which you missed. Can you spot it?
Philo |
| Fri 20 Aug | a2800276 | > FWIW, there's a very real problem with my plan, which you missed. Can you spot it?
The government will indirectly be reporting employees with security clearance to credit agencies. Or they'll have to constantly be running bogus credit checks on random noncleared employees.
-tim |
| Fri 20 Aug | Jon | hahahahaha
4 years in production and now they stop?
I guess the one year that I am on isn't so bad after all.
Push all the idiots and politics aside and run a company completly by CS majors and mathematicians and everything will be ok....wait a minute isn't that Google ?
Then again HR would have to learn math :( |
| Sat 21 Aug | Peter | It also doesn't help that many of the hundreds of new companies offering background checks are incompetant.
http://www.csoonline.com/read/080104/checks.html |
|
| SOHO Firewall/Filter recomendation?? | Thu 19 Aug | Javier Jarava |
| Hi all!!
Im looking for a firewall/VPN appliance for the company I work for. The idea is to be able to stablish an VPN between our two offices, and also to do firewalling / content filtering as easily as possible.
The number of users is quite low (on the order of 50 or less), so the idea is to get something that is not too pricey, but that is easy to set-up / mantain (so that rules out the homebrew Linux+netfiter/iptables, FreeBDS+ipf or W2K+IIsa Server DIY solutions).
Any and all recomendations, pointers, or advice would be greatly appreciated. |
| Thu 19 Aug | Philo | Check out the Cisco PIX line - you can get a starter at $300. Gives you full firewall/NAT/routing capabilities. One huge caveat - don't bother with the GUI; just write the config files directly.
Upside: You can learn IOS
Downside: You have to learn IOS
Philo |
| Thu 19 Aug | Fred | A customer whose two offices are connected by ADSL had good experience with this Zyxel:
http://www.zyxel.com/product/model.php?indexcate=1022049819&indexcate1=1021877946&indexFlagvalue=1021873638 |
| Thu 19 Aug | Javier Jarava | Thanks for the advice. Will check the Cisco kit.
Someone has pointed me towards the 3Com OfficeConnect VPN Firewall, and/or (depending on users) the SuperStack or OfficeConnect SecureRouter products. From what I can see, the VPN firewall is very VPN-Oriented (50 VPNs at a time is quite a number)... In any case, anyone has any experience with that kit??
Also, any news on other MFGs. that I should check? (linksys comes to mind...)
TIA |
| Thu 19 Aug | trollop | ne touchez le Netware pas. |
| Thu 19 Aug | Guillermo | I've installed a Cisco PIX a few weeks ago, and this is a real pain.
The GUI Configuration is made for some rentacoder anti-Cisco programmer, and the old-way configuration 'language' is the worst and ugly i've seen.
take it only if you can waste several nights in change-testing-error, or if you want to appears how a Cisco guy, these that -as some other programmers- enjoy with complexity.
The best way is purchase the Cisco PIX along with several hours of Cisco tech people installation-pack.
In 2004 I can't understand how can be so difficult to define the most simple rules.
It took us two weeks to configure, with Cisco support 'helping us' via phone, but at end -of course- the PIX is running after an personal visit from Cisco certificate tech guy and made some little changes to the configuration.
Even now the configuration file is hard to understand, and you need to colect several books from a large documentation facilities in cisco.com.
long life to the complexity.
(sorry my 'English') |
| Thu 19 Aug | BCS | Recently I purchased the Watchguard X series firewalls after a long review of firewall appliances. The configuration is pretty easy (this is reletive to your networking knowledge). The X series allows you to purchase lower-end firewalls that are upgradable via a software key. Their SOHO products contain very simulare software (if not the same) as there higher end products, so setting up two offices isn't a larger learning curve. I have been generally pleased with the product. There is no firewall product out there that is perfect. Cisco PIX is VERY expensive and a pain to configer and Sonic Wall is said to have a poor user interface. I hope this helps somewhat. |
| Thu 19 Aug | John Bush | I really like the SnapGear product line. They aren't difficult to use and pretty much 'just work'.
http://www.cyberguard.com/snapgear/products.html
P.S. They seem to have changed their name to CyberGuard. |
| Sat 21 Aug | . | Sonicwall are great. |
|
| NUnit 2.2 w/ NUnitASP? | Fri 20 Aug | Greg Hurlman |
| Has anyone had any luck using the latest version of NUnitASP (1.4.1) with the latest version of NUnit (2.2)? Im in the midst of getting our build/test process up and running - any suggestions are apreciated. |
| Fri 20 Aug | Gabe | I tried recently, and I don't think it's possible. I had to downgrade NUnit to version 2.1.4 to get things working.
of course, NUnitASP is open source so you could try and fix it yourself. I suspect that you'd only have to update a few references and recompile, but I've never taken the time to look at the code so I don't know for sure. |
| Fri 20 Aug | Greg Hurlman | Might just do that - any major loss b/w NUnit 2.1.4 & 2.2? |
|
| How do I get rid of this annoying error message? | Thu 19 Aug | Alex Chernavsky |
| Im running Windows 98 SE and Internet Explorer 6.0. Suddenly, about two or three days ago, I started seeing lots of pop-up boxes with error messages very similar to this one:
=========================
Some files can harm your computer. If the file information below looks suspicious, or you do not fully trust the source, do not open or save this file.
File name: CA6VAZY9.js
File type: JScript Script File
From: pagead2.googlesyndication.com
This type of file could harm your computer if it contains malicious code.
Would you like to open the file or save it to your computer?
[Open] [Save] [Cancel] [More info]
=========================
The message above popped up while I was reading an article on www.nytimes.com.
Ive run some Google searches, and I futzed around with some of the options in IE6, but I cant figure out whats going on here.
Why am I suddenly getting these errors? And more importantly, how do I get rid of them?
Thanks in advance. |
| Thu 19 Aug | redguardtoo | disable javascript |
| Fri 20 Aug | Alex Chernavsky | Anything less drastic than disabling JavaScript? |
| Fri 20 Aug | John | Turn it on... it's probably on "prompt". |
| Fri 20 Aug | mb | that dialog means you've clicked a link to a .js file, or otherwise are trying to load it by itself. i would say 'no way'.
as to why it's happening, maybe a web site bug? maybe something else? |
| Fri 20 Aug | Jan Oosting | Run ad-aware and spybot search and desstroy.
You've probably got your browser hijacked |
| Fri 20 Aug | no name | I've never seen anything useful on googlesysndication. Just block the domain. |
| Fri 20 Aug | Art Vandelay | Windows 98 = crap
Internet Explorer = crap
starting to see a pattern that might give you a clue to the problem? |
| Fri 20 Aug | Crackhead | Yes, throw out your windows computer and run linux from the command line. You will get mad props and be a truly #*$&Q(*$ #JL)) |
|
| PHP and C++ encryption/bigint libraries | Thu 19 Aug | Richard Boehme |
| My boss just gave me an assignment today, due tomorrow, to take information that is inputted in a PHP script and encrypt it, then decrypt it in c++... it needs to be encrypted because en route its getting stored in a database and passed through unencrypted email.
I would appreciate any ideas.
Thanks. |
| Thu 19 Aug | Andrew Cherry | Look into the mcrypt library in PHP, provided you implement it with an algorithm for which there is a commonly available C++ library, like blowfish, and pass the initialisation vector along with the data, and obviously your C++ code will know the key, it shouldn't be too hard... |
| Fri 20 Aug | a2800276 | Don't go implementing algorthms or even using them directly through a library. Use standard, complete protocols/formats, if you're communicating with the the C++ code via http, use SSL, if you're sending email have a look at S/MIME. In case you don't really know what kind of channels and systems your encrypted information will pass en route, encrypt the file with an external call to something like pgp or gnu-pg and hand around the encrypted file. No chance of creating anything with even halfassed security until tommorrow from scratch, even if you really really know what you're doing.
-tim |
|
| Google | Thu 19 Aug | Yoey |
| Some years down the line, will we be saying that today, Aug. 19, 2004, was the day that Googles downfall began?
I mean, how can a company reconsile Dont be Evil when they have to answer to shareholders first, users second? |
| Thu 19 Aug | Fred | What % of the total company do today's shares represent? If it's only, say, 15%, is there a legal way for minority shareholders to force the company into doing things the major shareholders don't want to do? |
| Thu 19 Aug | no google by 2015 | Google management is clearly incredibly niave. I expect in the long run, they'll be given the run around by competitors and slowly fade away into insignificance. |
| Thu 19 Aug | Chill | Google is not at the bek and call of public shareholders b/c of the way they structured the deal: the founders and the management team own a higher class of shares than the public, so they, and not the public shareholders retain control.
This was one of the things that made their IPO unique.
On the other hand, now that they made billions in search, other companies (cue shark music from Jaws), are going to pay attention to it too, and Google's business model will come under pressure.
Only time will tell who'll win that battle. |
| Thu 19 Aug | Code Monkey | Google founders and senior management hold special shares each such share is equal to 10 shares sold to the unwashed masses.
'Do no evil' is good except that I think google thinks being greedy is not evil :-) |
| Thu 19 Aug | hoser | Greed is in the eye of the beholder. And I'd rather be holding some cash personally.
Anyhow, off topic: Michael Moore is a big fat rich white guy (in case nobobdy noticed).
Hey, y'know what? I ran into that big fat rich white guy in Seattle this summer. My wife and I were celebrating our anniversary and went to the Met Grill downtown (easily a $200/plate affair). Who is there, clogging up the doorway but the large man hisself.
Unlike Ralph Nader, Moore doesn't consider the indulgences of capitalism to be in conflict with a world view that protests such things. Nor the Kennedys.
There are few people in this world that can criticize greed with any credibility. Nader is one. Not that I agree with him, but he certainly gets my respect. |
| Thu 19 Aug | no name | nazi |
| Thu 19 Aug | Philo | FWIW, I understand Ted Kennedy got burned by the 'No fly' list today - couldn't board a plane. He earned back a lot of my respect when his reaction was 'My god - this was a pain for me, imagine what it would be like for Joe Normal?'
Bravo!
Philo |
| Fri 20 Aug | JP | > There are few people in this world that can criticize greed > with any credibility. Nader is one. Not that I agree with
> him, but he certainly gets my respect.
Not that he's not above, say, stiffing people who've worked for him and then shutting down his office to get the hell away from them....
http://stevegilliard.blogspot.com/2004/07/nader-steals-from-homeless.html
Back on topic, didn't Google only sell non-voting stock in this IPO? Ie, none of the new shareholders have any say in how the company gets run at all, so they can't affect (directly, at any rate) how the company gets run.
Of course, there's an argument that that could be considered a violation of the 'Do no evil' precept in itself.... |
| Fri 20 Aug | Rob VH | To everyone who's so sure of Google's downfall: Either A) set up a margin account at a brokerage, and short sell Google's stock, or B) give it a rest. |
| Fri 20 Aug | Rob VH | JP,
The IPO stock has one vote per share. The Class B shares that the founders hold have 10 votes per share. You can look up the breakout of Class A and B shares on yahoo finance. |
| Fri 20 Aug | JP | Ah, thanks for the info, Rob |
| Fri 20 Aug | Christopher Wells | > There are few people in this world that can criticize greed with any credibility. Nader is one.
Apparently the Republicans are helping his campaign: wanting to split the Democratic vote. |
| Fri 20 Aug | www.marktaw.com | Funny, looking at Google's chart for the past 2 days, it looks like most management's predictions for growth, but in reverse.
'We're hovering around 100 now with no real signs of growth, but under my leadership and with your hard work we'll get to 140 in no time.'
I wonder how many people are avoiding the stock just because of that line. Do you think everyone looking at that chart understands what happened there? |
|
| ASP (classic) frameworks and libraries | Thu 19 Aug | Almost Anonymous |
| As mentioned in my previous post, Im working with a new client in classic ASP. I generally work on PHP projects.
I found there is no shortage of free/open source frameworks in PHP to handle all kinds of common tasks (like form validation). In all my googling, Ive really yet to find similar resources for ASP short of a few disjointed scripts.
I hate to reinvent the wheel so are there any common code frameworks for common web tasks for ASP out there? |
| Thu 19 Aug | Herr Herr | I used to use ASP a lot. In ASP's heyday the framework craze hadn't started, so there was nothing for ASP. I imagine there still isn't because it is pretty much a dead technology.
There are plenty of libraries but you usually have to pay for them - even for something basic like file upload. |
| Thu 19 Aug | Matt Estes | While this isn't a famework at all, I've put together a code generator for making a 'CRUD' applications in cooperation with a database('Create, Report, Update, Delete'), its not meant to generate the final code, but you describe your DB in an XML file, and the generator blasts out a bunch ASP files to do the 'CRUD' operations. After you get it 'basically' right, then you hand edit it to get it how you want it.
Its written in C and GPL'ed, here's the link to where I talk about it on my site:
http://www.titivillus.net/panopticon/story.asp?sid=15
If its useful to you, let me know. If its a horrible piece of crap, yeah, I did this in a week because I got tired of writing the same code over and over again. Oh yeah, the C code is a horrible nasty mess, not split up into the numerous files and not factoring out nearly enough stuff(this is a one off hack in C, that I may one day fix to be much nicer, so respect that :). Of course, its free, so no money lost. |
| Thu 19 Aug | kc |
I would suspect that it's also due to the communities that surround it..
PHP is surrounded by the Open Source community where there has been an inherent value seen in sharing and collaboration both within and between organizations. You can download php, apache, etc and have something functional relatively quickly.
ASP comes from MS-land where this the sharing/collaboration idea is a relatively new concept. You can't just download IIS and start hacking away, you have to purchase it. Which creates a barrier to entry for those who just want to experiment. |
| Thu 19 Aug | Eric Debois | I think (think, not sure) that DreamweaverMX supports old ASP. It can generate code for alot of stuff and might have validation stuff in it. |
| Thu 19 Aug | Crackhead | Sorry KC, no dice.
There are literally hundreds of websites that have thousands of free, open source ASP libraries. Just type 'ASP' into google. |
| Thu 19 Aug | Almost Anonymous | Crackhead,
Have you actually tried typing 'ASP' in google? I tried that, then I posted here... |
| Thu 19 Aug | kc |
I didn't say 'open source ASP libraries'.
I was talking about frameworks... which in the open source (jsp, php) world, there are *dozens* to choose from and more every week. Most of them are free, some cost $$$.
How many are there in asp? |
| Thu 19 Aug | Tom H | Do you have Visual Studio? It's not a framework for your app, but it is Microsoft's product for developing on a Microsoft platform.
You might also want to get some tranquilizers or start drinking heavily, IIS/ASP/SQL Server is a bear without someone to walk you through the landmines. |
| Thu 19 Aug | Tom H | You might also find some good information here:
http://www.4guysfromrolla.com/ |
| Thu 19 Aug | kc |
Or if you can dissect and existing asp app, that works pretty well too...
That's what I did back in 2000. |
| Fri 20 Aug | Crackhead | if you are really into 'Frameworks' (99% of which suck anyway), sf.net has a lot of ASP frameworks.
http://www.google.com/search?sourceid=navclient&ie=UTF-8&q=site%3Asourceforge%2Enet+asp |
| Fri 20 Aug | Almost Anonymous | Crackhead,
Did you actually look through the results of that google search or did you just equate 'Results 1 - 20 of about 7,920 from sourceforge.net for asp' as being some useful metric? Unfortunately, most of those results are for ASP.NET, then applications written in ASP, and then causal mentions of ASP. After a few pages, not a single framework comes up.
Sure, they might all be horrible -- but I'd like to see what people are doing. The answer is, of course, that people aren't doing anything! Which is a shame.
I've currently been playing around with Windows Scripting Components -- which seems like a reasonable way to build a decent ASP framework. |
|
| Internet Operating System | Thu 19 Aug | nonUniq |
| The person who posted the question about REBOL IOS reminded me of a thought I had about 3 weeks ago that the internet, in many ways, could be defined as an operating system of sorts (I probably read that a long time ago in some pretentious IT rag).
My question is, has anyone written something that harnesses this potential, but that has a wider net than say, P2P?
What I mean is, is there software out there that represents itself as an operating system conceptually, where one operates multiple computers that blend the OS with the networking software so that the user/operator cannot necessarily differentiate between the computer and the network....?
Could there ever be an omnipresent software protocol that removes the distinction between the internet and the individual computer? |
| Thu 19 Aug | Chris Tavares | One could argue that Google is doing exactly this. You don't differentiate between Google the service and a particular machine inside the server farm. |
| Thu 19 Aug | speedy | Do you guys remember a ruby app that was similer to this idea ?
I may be remembering a crack smoke. |
| Thu 19 Aug | UT2004 Fan | I didn't know there were any Ruby apps. |
| Thu 19 Aug | anon | First one that comes to my mind is Amoeba:
http://www.csh.rit.edu/~dbort/arg/amoeba/
(NOTE: I think this project has long since been dead, though; a lot of the links on that page are deserted)
Although, I bet if you Google for 'distributed operating systems' you'll find a few other. |
| Thu 19 Aug | John Eikenberry | Inferno sounds close:
http://www.vitanuova.com/inferno/ |
| Thu 19 Aug | mackinac | Plan 9
http://www.vitanuova.com/plan9 |
| Thu 19 Aug | Kevin | http://openmosix.sourceforge.net/ |
| Thu 19 Aug | Berlin Brown | I think the Oracle Internet FileSystem could deliver an internet OS |
| Thu 19 Aug | nonUniq | Thank you for the links.
I see that openMosix is GPL'd. Neato. |
| Fri 20 Aug | vrt3 | Andrew Tanenbaum does a lot of research on distributed operating systems; he's written some books on the subject, so I suggest those as a first step if you want to study the subject. |
|
| A Question on Memory - How much Swap is desirable | Thu 19 Aug | Vin Diesel |
| Memory: 2048M real, 1594M free, 144M swap in use, 1943M swap free
The above is a snapshot of memory usage on a server I am monitoring.
Some times the free memory goes almost to zero and the swap kicks in - the swap has also almost gone dangerously low.
Short of spending $ to get memory, how much swap can I theoretically increase before peerformance really takes a hit? |
| Thu 19 Aug | moseswhitecotton | As soon as the machine starts to "swap" , thats when the performance takes the hit. Run out of swap and no telling what will happen ( but it will not be good) |
| Thu 19 Aug | Frank "Grimey" Grimes | It's recommended that you have as much swap as real memory plus a little, which is what the numbers you described imply. I never hope that a system needs that much swap, and I tend to set it much lower.
If the size of the swap is being pushed, then you should wonder if the server is overloaded. |
| Thu 19 Aug | Patrik | Vin,
It really depends on what the machine is doing? ... how many concurrent users? ... what type of service does it run?
I've seen a rule of thumb that said swap should be 3 times the physical memory. However, how much the swap gets used really depends on the type of usage. |
| Thu 19 Aug | . | I'm with mouse on this. Never let a high performance server swap. |
| Thu 19 Aug | moseswhitecotton | Make sure you realize the difference between paging (normal and expected) and swapping ( bad, bad) |
| Thu 19 Aug | Haley's vomit | If you got two gigs and only 1 gig of ram is ever used you could get by with little swap. The closer you are to your limit of ram the more you want to make it (Within reason) The figures of 2 or 3 times ram come from the days when a large computer had 64 mb of ram. We are reaching a point where 6 gb of swap may be a TAD EXCESSIVE for 2 GB of ram. |
| Fri 20 Aug | James U-S | A figure I often hear today is 1.5 x RAM. I think Win XP and presumably Server 2003 can dynamically increase the swapfile if the need arises. My swap started out as 1.5 x RAM but XP has occasionally popped up 'windows is low on virtual memory. your swap file size is being increased' and it's up to 2 x RAM now.
I would get more memory but it's a laptop with only 2 slots, both taken with 256 modules, so I can't really add any more without replacing what's in there, and that's expensive! |
| Fri 20 Aug | Nick Lamb | Let's be more explicit. The bad thing about swap is not that it's being used at all, but when things are being thrashed in and out of it.
For example, suppose you have an application with a large but well characterised memory leak and a necessarily long run time. It leaks 50MB per day, and you'd like to run it for as many weeks as possible without a restart. So long as whole pages are being leaked this will gently push 50MB per day into swap, until you run out of swap, so you can add a gigabyte of swap to the machine and go for three weeks, or two gigabytes for six weeks, etc. In that scenario using LOTS of swap makes sense, up to the process size limit where your leaky app exhausts its finite supply of unique addresses (commonly 1-3GB). Of course, someone, somewhere should be fixing the leak meanwhile...
On the other hand if you have an application where a certain amount of memory is actively needed for each interactive user, and you reach the point where the total memory needed reaches or exceeds the RAM, then the system will be constantly paging memory to and from the swap. If you're lucky this frustrates users and they quit, freeing up memory, if you're unlucky they thrash away harder trying to get something done, and the machine becomes unusable for everyone. In either case obviously you need to buy more RAM, or if necessary upgrade to newer hardware (and more RAM).
So don't worry so much about in-use stats, look at the IO metrics, and see how much disk access is being done to that swap, and look at CPU usage to see how much of the time is spent waiting for memory from swap. This is time that would be saved (for your users) if you bought more RAM. |
|
| how to run an open source project? | Thu 19 Aug | patrick |
| anyone know of any articles on this subject? there is something i might start. |
| Thu 19 Aug | Gwyn | I presume you have already thought about this a bit so why not tell us where you got to and where you got stuck. |
| Thu 19 Aug | Andrew Hurst | Just start releasing the code. Post updates on a website. If people are interested they will come.
Don't expect hordes of people.
Be sure you link to your projects website every chance you get, in all of your signatures on email, forum postings, etc. Participate in related email lists, (i.e. j2ee lists if its a j2ee app, mod_perl lists if its a mod_perl app, etc) all the while keeping the link to your project in your signature.
Don't expect hordes of people.
You'll still do 105% of the work yourself. And I say 105% because some of the contributers will do more harm than good, and you'll need to pore through the patches and help and that will take you more time than it would have to do it yourself.
Once its up and running though, with a good community, it will practically run itself. Its getting that community that takes time.
Not sure of any good books on running an Open Source project though. I learned this by watching and participating in Scoop ( http://scoop.kuro5hin.org/ ) |
| Thu 19 Aug | John Topley (www.johntopley.com) | Be prepared to spend a lot of time dealing with e-mails/mailing list posts.
Get ready for people contributing brilliant code and then disappearing off the face of the Earth, particularly when you need them to make a minor change. |
| Thu 19 Aug | Edward | Sourceforge might be a good place to start. |
| Thu 19 Aug | patrick | i looked at sourceforge and will read more. no problems yet - i haven't started it! |
| Thu 19 Aug | kc |
Yeah, I'd say that before you try to run one, you might want to participate in one on Sourceforge.
It seems like involvement happens in spurts. If you get some attention (Slashdot, Sourceforge's Project of the Month, etc), you'll get a flood of people... few of which do anything except complain about lack of features and/or ask for help.
Release often and keep a bug database active and visible.... |
| Thu 19 Aug | Rob Meyer | This book:
http://cvsbook.red-bean.com/
Has lots of information about running an open source project (as well as CVS). The CVS chapters used to be free and the open source project information was in the purchased version, but now the complete text of the 3rd edition is online. It's a good start.
The best advice I can give is to make things accessible for developers and users. Have clear documentation, a tutorial, examples, sample data, whatever else you think might help, and go out of your way to make it easy for people to get started. They will appreciate the effort you took to save them time exploring your project, and be more inclined to investigate further. |
| Thu 19 Aug | John | 'you'll get a flood of people... few of which do anything except complain about lack of features and/or ask for help.'
That is SO true... |
| Fri 20 Aug | Chris Winters | I've run (very loosely) a few Perl open source projects. Aside from the good advice from Andrew I have another small item. Probably the main way to attract people to a project is to make the project ridiculously easy to get acquainted with. This means a post-download installation time of less than five minutes. (It also means a quick start guide and tutorial for a simple application, but that's a separate post.) Sounds crazy, but it works because IME a lot of people use initial startup as a proxy for whether a project has some smarts behind it.
As a nice side-effect this forces you to decouple and/or abstract some pieces of your system. Does your depend on a SQL database? The five minute rule means your install won't work -- by the time people remember what database they have locally or get whatever users/databases you need, you're past the limit. So figure out how to use an embedded database (example: SQLite for C and scripting languages, HSQLDB/McKoi for Java) and hook that into your system. Or even have a 'mock' mode that stores objects in memory instead of a database. Will that scale? Who cares -- that's not the point. The point is to quickly show people that your project works. This goes a long way to establishing initial credibility. You can still throw that credibility away by having a crappy product, but it's a start.
For a great example of this, check out the commercial product JIRA (http://www.atlassian.com/software/jira/). It's a very sharp issue tracking system that you can have running after the download in less than a minute (more if you have slow disks and it takes longer for you to unpack the tarball). |
|
| Joel's new book. | Thu 19 Aug | Mr Jack |
| Congratulations, Joel.
Isnt everything in the book already on the site though? |
| Thu 19 Aug | John | Being bundled with Coder to Developer by Mike Gunderloy. Is that a good deal? |
| Thu 19 Aug | Woodentongue | I want to know where I can collect my royalties for J+++++++++++++++++++++++++++++++++++++ ? |
| Thu 19 Aug | Rob Meyer | I think it's great to finally see someone publish a lot of information about Oracle that typicallys passes from DBA to DBA via the oral tradition. Kudos to Joel for his clear presentation and practical book about Oracle; I'll definitely recommend it to my DBA's.
:-) |
| Thu 19 Aug | bpd | It must be a real hot seller. Amazon says, "Only 4 left in stock--order soon". As if that weren't odd enough, there's three *used* copies for sale. And, as Joel has already noted, there's already three reviews. |
| Thu 19 Aug | Lanie | I don't follow why Joel thinks the reviews don't make sense -- ?? |
| Thu 19 Aug | Lanie | Oh, and yeah, Mr. Jack, almost all of it is on the site. He added an intro and some postscripts/commentary to the articles though. (Which is what Isaac Asimov used to do from time to time, and yes, I've bought some of those JUST FOR THE COMMENTS :). (Not to imply that Joel is Isaac Asimov. That might be sacreligious.))
My guess is they did this because people like to have real books. I do. |
| Thu 19 Aug | Lanie | Is there something wrong with the comment count here, or could it somehow be on my end? The comment count for this thread is reading [15]. But (unless I bump into someone else), this here comment would be no. 8.
(And my third in a row :-o. Shutting up now.....) |
| Thu 19 Aug | MeAndNoOneElse | You expected the software to function properly? Sheeez... |
| Thu 19 Aug | Ian Sefferman | It is a hot seller for sure: Amazon sales rank of 25 right now.
Crazy! |
| Thu 19 Aug | Philo | 'Boss you should read some of the articles on this website by some guy named Joel'
vs.
'Boss, read this book by the guy who was a program manager for Excel'
Philo |
| Thu 19 Aug | anon | Wow. I knew Joel was famous, but I never realized how famous he was. I'm sure he never realized it himself. |
| Thu 19 Aug | Kevin | 'Is there something wrong with the comment count here, or could it somehow be on my end? The comment count for this thread is reading [15]. But (unless I bump into someone else), this here comment would be no. 8.'
Joel has addressed this before. The reply count is the number of replies, including those that have been deleted and are no longer visible. If it showed only the number of visible posts, you'd have a situation where a post was deleted and a new one added, but the count would stay the same so it wouldn't show up as an updated topic. |
| Fri 20 Aug | Won't read the book; already read the site | Why the fuck did he choose such a long title?
It's insane. |
|
| Sink Solitaire | Thu 19 Aug | Shuffled Deck |
| Eric Sink has a new software product (a game). I have to admit, his blog entry has left me intrigued. If nothing else, hes a good marketer. I wonder if hes influenced by Seth Godin?
http://www.ericsink.com/entries/Announcing_Winnable_Solit.html
Has he been reading the articles at desterity.com or is he just a bored CEO? |
| Thu 19 Aug | Shuffled Deck | Sorry, that's dexterity.com. |
| Thu 19 Aug | Art Vandelay | Writing a new version of Solitaire?
WOW!!
This guy is a true visionary. |
| Thu 19 Aug | anon | Art,
Ass.
The whole point of this endeavour will be to prove something within his article . . . he's reallying going to 'send something home.'
I doubt Eric is interested in 'banking' off of a solitaire game; but, I have to admit, I like his premise for developing the game. I bet he'll sell, at least, a few licenses (although, is it just more, or his order page just 'too' easy (not asking for name, address, etc.)). |
| Thu 19 Aug | Kalani | Come on Eric, if you want my money you've got to apply gravity to the dancing cards. Nobody plays Solitaire in space. |
| Thu 19 Aug | Boris Yankov | Kalani, that is part of the idea.
I guess he is making a point with using all the ideas of Positioning of Riese and Traut.
He had said that Vault really didn't followed very much the '22 immutable laws.
So he is doing an experiment here, and he will be publishing the results probably.
I would guess that he can sell much more than few copies if he tries to.
I am really intrigued in this experiment. We are waiting for the results, Eric. |
| Thu 19 Aug | steward | the only problem with this is that a pet project -- which he wrote to prove some ideas -- is too small and get's too little of his effort to be really successful. the thing is butt ugly so i suppose nobody will buy it and that is not because his marketing scheme was flawed. |
| Fri 20 Aug | no name | Coming soon: Winnable Golf!
;-) |
| Fri 20 Aug | Boris Yankov | steward, I guess that will be an interesting point.
If he can make this solitaire sell well even if he does not devote much time to it, this will be an example how marketing done right can make your product sell.
I hope he succeeds for the sake of that. |
| Fri 20 Aug | Maybe Marketing Isn't the Point | I wonder if it's really a marketing experiement or if Eric is making a point about the current state of software (i.e. bloated runtime libraries). On his download page, he made the following comment:
'Winnable Solitaire does not have an installer, nor does it need one. The EXE file is the whole program. Nothing else is required.' |
| Fri 20 Aug | Eric Sink | > the thing is butt ugly
Really?
(sniff)
How is the app ugly?
(sniff)
Don't be kind. Just give it to me straight.
(sniff)
I can take it. Really.
(cry)
:-)
Seriously, I really am somewhat curious about the specifics of what you mean. I've got a list of reasons why this little product should fail, but ugliness of the app isn't on that list. Should it be? |
| Fri 20 Aug | Shuffled Deck | Ugly? I can tell you about ugly...
Now, I'm so curious about the objective of this exercise that I'm about to pee in my pants. If nothing else, I've come to the starke realization that I have absolutely no life at all.
Do we really have to wait until the MSDN article is published to discover the pearls of wisdom? Are we there yet? I really have to pee. |
| Fri 20 Aug | Dave B. | I would agree that ugliness is also a reason the application would not sell well. When I compare your application to the solitaire included with Windows I notice several things:
1. The cards are not crisp in appearance.
2. There is no Jack, Queen or King Art.
3. I can't switch the 'picture' on the back of your cards.
Art is very important to a video game. So important that most commerical game makers hire an artist to create it. Take a look at http://www.gamedev.net and check out the forums. There's usually some artists over there offering their services.
So I would say that the artwork for your game has to at least match or better the artwork for Windows Solitaire.
Having said that I do like the icons on the toolbar, but I'm simply not used to the toolbar being there. It is convenient though.
I also don't like the way the game ends. The card animation could be a little more sophisticated. The Windows Solitaire animation has a gravitational effect.
There seems to be a couple of minor bugs in the game. Like when moving the first and only card of foundation slot 1, the outline rectangle of the card on the table doesn't show up.
Nag screens are annoying as well. Perhaps a 'register' button on the toolbar?
I also can't seem to beat the damn thing. Though I have only played it twice. Are you sure it's winnable? :-)
All in all a great effort but $12! Yikes. I can clog my arteries at Mickey D's 3 times in a row for that! |
| Fri 20 Aug | Dave B. | err... the bug should be that the base pile outlines on the table come and go as they please. |
| Fri 20 Aug | Aussie Chick | Actually with reference to this little exercise of Eric's. I wonder where else is he marketing. I am assuming that he is somehow marketing to the general public, not just via his weblog etc.
I say this because I would imagine the vast majority of his weblog readers would be clued on people asking basically the same question as seen in this post.
ie, we know something is up, tell us already. *grin*.
not the type of people who would download the game for any other reason then to try to figure out 'what has Eric got up his sleeve'. Then again, I could be wrong.
I am definetly enjoying this little bit of hype (admittedly very very little) that is being generated. Kinda cool. |
| Fri 20 Aug | Eric Sink | It's not like I have a big, explosive secret which will be unveiled when the MSDN article hits. It's true that I consider this an experiment. I want to learn something about 'indie' development.
I want the product to succeed, but it's true that my livelihood is not at stake here. All the stories and data will be published on my weblog. People can watch me succeed or they can watch me fail. Either way, I just hope the result is interesting enough for some people to want to read it.
And if it's not, at the very least, I still end up with a game that I actually like to play. And I got a chance to learn wxWindows while writing it. :-) |
| Fri 20 Aug | Shuffled Deck | 'It's not like I have a big, explosive secret which will be unveiled when the MSDN article hits.'
Damn! I guess I'll have to find a good self-help book and some dry pants. ;-)
Actually, I like the fact that Eric is willing to share his business knowledge. It's hard to find good open source business advice. |
|
| Code Olympics - what events ? | Thu 19 Aug | Woodentongue |
| If writing code was an Olympic discipline, what events would you want to see ? |
| Thu 19 Aug | Simon Lucy | Blue screening with style marks. |
| Thu 19 Aug | Cecilia | Hard - Disk throw? |
| Thu 19 Aug | el |
Everyone would be disqualified taking to much caffeine. |
| Thu 19 Aug | MySQL Dewd | Coding Marathon. |
| Thu 19 Aug | Matthew Lock | - perl golf
- regular expression marathon |
| Thu 19 Aug | kc |
No, I think there would be a minimum level of caffeine required to even compete.... |
| Thu 19 Aug | += | Java - lin? |
| Thu 19 Aug | no name | ISV
International Software Vault
Eric Sink |
| Thu 19 Aug | Matthew Lock | Int, Short, and Long Jump |
| Thu 19 Aug | Matthew Lock | - Synchronised and asynchronised swimming
- Pong |
| Thu 19 Aug | Tom H | Bare Medal programming (co-ed event) |
| Thu 19 Aug | muppet | search and sort algorithm recitation
rhetoric fencing
DBMS justification
salary/vacation negotiation
how write device driver, for contract |
| Thu 19 Aug | Matthew Lock | Flaming on news boards |
| Thu 19 Aug | Woodentongue | Review-jitsu, all classes from super-lightweight to super-heavyweight (functional specs in 'Z'), three incompletenesses, two out-of-scopes or one fatal defect to decide. |
| Thu 19 Aug | Crackhead | Unboxing |
| Thu 19 Aug | Crackhead | ICMP Pong |
| Thu 19 Aug | Christopher Wells | Mental gymnastics
Dynamic casts
Throwing exceptions |
| Thu 19 Aug | Crackhead | Cross Platform Running.
(Sorry, I'll stop now) |
| Thu 19 Aug | anon | Brain fart contest. |
| Thu 19 Aug | Kalani | How about something like those 'junkyard wars' shows (incidentally, doesn't it hurt the premise of these shows that the TV junkyard just 'happens' to have nicely wrapped breadboards and such)?
I guess the sort of thing that we do doesn't lend itself to rapid and short periods of activity. |
| Thu 19 Aug | Iago | Class Heirarchery? |
| Thu 19 Aug | Woodentongue | Athletics -
Hexadecimalathlon
Poll Fault
The Open Relay
The Discuss
The 5,000 and 10,000 level treewalk |
| Thu 19 Aug | THE APEMAN!!! | scheme parenthesing |
| Thu 19 Aug | I am Jack's sense of competition | Programmers repeat every standard olympic event but with those events renamed to 'refactored-'. As we all know, the first guy never does it right.
Buzzword-bingo (a.k.a. 'bullshit' bingo)
Pin the ) on the (.
E-mail marksmanship/sniping
Loop-nesting (Hey, if curling is a sport...) |
| Thu 19 Aug | Ich möchte Ihre lodernde Rhetorik verbieten! | Muppet tossing |
| Thu 19 Aug | no name | Double Clicking |
| Thu 19 Aug | no name | Indoor Keyboard Smashing In Bright Monitor Glow |
| Thu 19 Aug | Woodentongue | Coding Modern Pentathlon
Flaming
Sniping
Skating on the bleeding edge
Combined swamp draining & alligator wrestling
Cross-country source swapping |
| Thu 19 Aug | no name | With Goto banned, nobody will pitch up. |
| Thu 19 Aug | Raju Patel | Now the question is, who would win the medals? :-) |
| Thu 19 Aug | yet another anon | Beach Volleyball
Not that there's any relevance to coding in this, but have you seen the cheerleading babes in orange bikinis that the Greeks have planted in to background? Excellent. |
| Thu 19 Aug | yet another anon | Also,
Synchronized laptop dancing and gymnastic floor() exercises. |
| Fri 20 Aug | Aussie Chick | Googling ---- I would take Gold too!!
Aussie Aussie Aussie |
| Fri 20 Aug | Glenn. B. Hansen | Wrestling outside the box |
|
| Why so much negativity toward "Corporation"? | Thu 19 Aug | ricky |
| Why are some of the posters here are so negative about corporate working environment? I mean in general scheme of things without these corporations there will be so many people without jobs, and your country will not be as strong as today. And people seems to give low impression for people who manage to have a career in a corporate ladder. |
| Thu 19 Aug | no name | Why so many stupid questions lately? |
| Thu 19 Aug | Mr Jack | Do corporations produce employment? I don't think so.
What they are very good at is making the jobs people do have less enjoyable, less secure and worse paid. |
| Thu 19 Aug | Aussie Chick | I think ultimately a corporation is regarded as a capitalist venture. Capitalism favours profit over loyalty.
Smaller business while still capitalistic often tend to be alot more caring, the person at the top is within reach etc. If a department/role needs to be cut then the management will work hard to reposition you within the organisation rather then just make you redundant.
At least that is the impression I get. |
| Thu 19 Aug | no name | > Smaller business while still capitalistic often tend to be alot more caring, the person at the top is within reach
Translation: you can extend your fist at some velocity and twat them if they annoy you too much. |
| Thu 19 Aug | Simon Lucy | Actually, I've found smaller companies, especially family run ones, to be amongst the worst in the way they treat their employees. There are a few happy exceptions but there is often a feeling of ownership and 'loyalty' which overwhelms the staff.
Corporations may be more bureaucratic and can sometimes have an aggressive culture that wears down individuals but there are also many corporations that understand that they succeed because of success and not through pointless negativity and pressure.
But then I'm a lone gun for the most part. |
| Thu 19 Aug | Me? | Aussie Chick, what kind of non-corporate company has a department to get rid of let alone another one to redeploy you to.
In my mind anything bigger than 30-40 people is big enough to be corporate and if a company any smaller than that needs to get rid of you then there is a high chance they will be getting rid of everybody fairly soon.
Me, I just (past few weeks) moved from a small company (15 people) to a larger company (~600 at my location, ~5000 worldwide (AU,NZ)) - already I can see the politics coming into play and a few other things I don't like so I know it isn't going to be a perfect ride. But it is 1000% better than my old small company
My present feeling is that if I had to pick between a small company and a large company, I would pick the larger company.
it comes down to the resources, while at a smaller company it may be easier to get new resources, there aren't that many to get - 'Boss, I would like a bigger screen, this 15inch isn't big enough to work on' 'We will see what we can do in next months budget', where as at my new company, 'Would you like a laptop or desktop? How big do you want the screen?', while if you want something new you need to fill in the expense request and wait for it to be approved, there is a higher chance of it being approved at the larger company simply because they aren't at the financial point of relying desperately on that invoice being paid this week so you can get your wages paid to you.
in my case the depressing parts such as politics etc was even there at the smaller company so why not pick the company who can give you more?
NB All observations are based on my personal experience working at just 1 small company that was run by cheapskates, and 1 large company that seems to be run by people who are willing to spend money 'wisely' in order to create a nice working environment.
and just as an example of the kind of company my new one is - so far I have only met 3 people who have been there less than 5 years, and everybody else can't remember anybody quitting because they didn't like the place, which if true indicates this place isn't quite normal (it also indicates there is a lot of old people). And the word is that nobody has ever been made redundant, they have always reassigned people. To my knowledge most corporates have dozens of people resigning each week? |
| Thu 19 Aug | Me? | Simon hit the nail on the head.
>>There are a few happy exceptions but there is often a feeling of ownership and 'loyalty' which overwhelms the staff.
That is exactly the kind of 'politics' i was referring to at the smaller company, most people wouldn't call that politics. But it is just as bad, if not worse - the pressure that it puts on you it actually made me feel quite bad about resigning and then the 'oh but I thought we were happy family' after I had resigned it was just terrible. |
| Thu 19 Aug | hateCorpsLoveIT | '...the pressure that it puts on you it actually made me feel quite bad about resigning and then the 'oh but I thought we were happy family' after I had resigned it was just terrible.'
We can't have everything. Where is the company that isn't cutthroat about hiring and firing but doesn't expect the same sort of consideration in return? Point me to it...!
It's a two-way street. I would love for things to be the way they were in the 90s...where I could tell employers to kiss off without a worry. Now, I have to play the game. Yuck. |
| Thu 19 Aug | Aussie bloke | I agree with Simon on this as well - the worst politics I've seen has been in small companies or small IT divisions of mid-size companies. Combine that with the normal lack of sophistication in project management, estimation, scheduling, technological understanding, etc., and I've reached the point where unless I have a serious equity stake in a small business, or it's my own company, I won't work for one again. |
| Thu 19 Aug | Tony Edgecombe | For me the larger the company I have worked for the worse I have been treated, there has always been an inverse relationship between the number of employees and my job satisfaction. I guess this is why I work in a company with 1 employee, myself. |
| Thu 19 Aug | Paulo Caetano | 'I mean in general scheme of things without these corporations there will be so many people without jobs, and your country will not be as strong as today.'
The problem, IMHO, is that this is a side effect. Actually, you can look at the 'let's outsource to the cheapstakes of the month' craze as a signal of how much any corporation cares about your job and your country.
I have no problem with making a profit. However, I can't feel nothing but contempt for 'profit uber alles'. |
| Thu 19 Aug | Brian R. | Tiny co.'s are the hardest to fit in. There is no place to hide, even the CEO knows your deal. You have to be perfect for that position because there is no such thing as 'backup' in some really small co.'s where everyone is their own dept.
If this wasn't true, I'd still be working there. hehe. |
| Thu 19 Aug | trollop | http://www.perkigoth.com/home/kermit/stuff/bullshitbingo/
http://www.isip.msstate.edu/about_us/misc/humor/dilbert/quotes.html
get the idea? |
| Thu 19 Aug | Justin Johnson | Corporations haven't done themselves any favours in the PR department in the last decade, between dot-com mania, H-1Bs (this isn't limited to tech), outsourcing, offshoring, 'rightsizing', lawsuits, etc.
In my mind, the basic problem is that people, shielded by corporate structures, often exhibit more refined versions of mob behaviour. People will do things in their official capacity at work that they would never do personally, and rationalize it as part of the job.
Regardless, the anti-corporate sentiments expressed by posters like muppet and on the range are just empty, childish, fight-the-man rabble-rousing. There are good companies to work for, and bad companies, and that depends on the people inside. There are companies that are really great places to work. For every Walmart, there's a Costco (Walmart's average wage is lower than the bottom of Costco's wage scale). UPS is apparently a great place to work. The Container Store has been in the top three best employers in the U.S. for the last five years, according to Fortune magazine (I've seen it first hand). These places aren't anomolies, they represent a significant portion of the corporate employers in North America.
So whinging about the 'corporatist' lifestyle is like complaining about Americans as uneducated, uncultured, imperialists--yes, everyone knows someone like that, but the generalization is empty because so many Americans aren't like that. To me, it's a sign that someone really hasn't seen much of the corporate world. |
| Thu 19 Aug | kc |
Family run have *always* been the worst in my experience...
Sure, there are rules, but they don't apply to everyone. And if you don't work well with a particular person and/or tick off the wrong person, you're gone.
I like smaller companies 500-1500 people. They're established enough that the rules apply to everyone, there is usually *A LOT* going on with numerous opportunities and the company is still a size that you're not just a number. |
| Thu 19 Aug | Tayssir John Gabbour | I thought people had jobs before corporations.
But I have no issues with corprophiles. |
| Thu 19 Aug | muppet | +++But I have no issues with corprophiles. +++
I do. They are frightening, soulless human beings, like soccer moms and Wal*Mart managers. |
| Thu 19 Aug | Tayssir John Gabbour | Well, aside from some bad breath, I wouldn't cast aspersions on their lifestyle choices.
I hope you eat your words and become a corprophile yourself. |
| Thu 19 Aug | Justin Johnson | A corprophile is just as unbalanced as a corprophobe. There are good companies to work for and bad companies--and this extends to any organization, not just private enterprise. There's nothing essentially evil or good about corporations--they're the sum of the people working in them, and like any community, those people can be, collectively, beneficial or poisonous. |
| Thu 19 Aug | muppet | +++There's nothing essentially evil or good about corporations--they're the sum of the people working in them+++
Rule by committee removes personal accountability. That inhibition gone, base motivations are in control. The single deepest base motivation for running a business in 99% of cases: greed.
Corporations are ruled by the bottom line. Shareholders don't care about humanitarianism more than they do their ROI. On an abstract level, certainly yes, on a literal level which affects their personal bank account, no.
That's what's inherently evil about corporations. |
| Thu 19 Aug | Peter | The negativity has more to do with the obsession with quarterly profits and stock prices. Much of the nonsense has to do with manipulating numbers, just to keep the stock prices up.
Why did Enron screw everyone? Was it fun for them? They wanted their stock prices higher, and they stepped on everyone they had to. Not every company is as blantant at it as Enron was, some are pretty close.
Recently, some of the econ journals (and wsj) have been moaning about shortages in certain professions. One of the latest ones is a type of machinist called 'swiss-type machinist.' That is a job that takes about 5-10 years of experience to get good at. One or 2 bad quarters and that person is out on the street. How can a sane person expect rational people to stay in a profession that takes 5-10 years to get into, but expect zero longevity. This sort of analysis is why students are declining to enter other skilled professions like engineering: where the median career won't last long enough to pay off student loans. And if the profession does pay enough to pay off student loans by the end of the median career (like nursing), pundits claim there is a drastic shortage, and we have to import cheap labor to drive down wages.
>'Why so much negativity toward 'Corporation'?'
The answer is cynicism. As you get older, you will understand. |
| Thu 19 Aug | kc | 'The single deepest base motivation for running a business in 99% of cases: greed.
Corporations are ruled by the bottom line. Shareholders don't care about humanitarianism more than they do their ROI.'
Do you have *any* basis for that assertion?
I've found that many of the people I know have started businesses in order to 'not work for someone else' or 'because I can do it better'. Most new companies don't see *ANY* profit for their first couple years. it seems like it's more effort and work than cash at that point.
Corporate vultures, on the other hand, come into an existing business...
Of course, if a company is not public (as in stock publicly traded), there are *no* stockholders. |
| Thu 19 Aug | anon | Slant puns aren'tthat popular yet.
http://www.google.com/search?hl=en&ie=UTF-8&q=coprophile&btnG=Google+Search |
| Thu 19 Aug | muppet | KC -
The vast majority of large corporations are public and therefore fit my description and not yours so much. The case of people who started a business for the love of it or to work for themselves are usually smaller ventures, not public, and not your typical multinational corporation.
The term 'Corporation' is largely associated with the multinational flavor, moreso than the Ben and Jerry's of the world. |
| Thu 19 Aug | no name | '''I mean in general scheme of things without these corporations there will be so many people without jobs, and your country will not be as strong as today'''
Damn boy, apply a little critical thinking before you post crap like that. |
| Thu 19 Aug | anon | >> 'I think ultimately a corporation is regarded as a capitalist venture. Capitalism favours profit over loyalty.'
Well, this is just nonsense. Corporate leaders are the most anti-capitalistic people on the planet. They are tall morons with good hair, who are much more interested in carving out their fiefdoms and imposing their will than in profit.
Real capatalists - and by the way, real men - work at startups. |
| Thu 19 Aug | Clay Whipkey | I agree with anon. I think the deeper motivation for corporate execs is power, not money. All they have to do is become an exec in most huge companies, and they are hooked up. At that point, they don't realy care the capital health of the company, just in preserving the power/fear/respect they command.
Usually in orderto preserve that power, they must make the bottom line look good. They do that by extorting all the other managers below them into being obsessed with profit and bottom line, so much that the culture becomes corupt with the illusion of greed... but no one is actually as greedy as they seem. They have mostly just fallen under the evil spell and become pawns to support the power-trip of the executives.
The people who really are as greedy as they seem: day traders and career commission salesmen. |
| Thu 19 Aug | eclectic_echidna | I would take a corporation over a person any day.
With a corporation you can predict their motives. e.g. money. To a corporation there is no other thing. If a corporation has stated a different goal, then they will ultimately fail.
Even non-profit corporations fit this model. Think fund raisers.
Now with people we have no predictability, we can't know their motives. Without a thorough understanding of what their motivations are, we can’t predict what they are going to do.
It is much easier to make laws, and have things like stock markets when we have a group of corporations worshipping the almighty dollar. It is also to predict what the CEO will do when sales are down.
How does good vs. evil enter in to this? Good question.
A corporation may polute a river to save money. But a corporation would probably not engage in terrorism, unless a good money reason exists.
They may raise product prices to make more 'evil' profit, but that is predictable. Of course they are going to want a profit. Money rules. |
| Thu 19 Aug | muppet | Right. So you prefer predictable vileness and societal corruption over unpredictable potential vileness with an equal chance of potential goodness and societal improvement.
Somehow, I can't get on board with that logic. |
| Thu 19 Aug | Mayo | I think everyone knows a story like this one but a couple years back my coworker's dad got canned from a major food processing company after 25 years on the job. He was the guy that went in during snowstorms to keep the production lines moving. His employees were treated as extended family, never missed a day of work, the whole shebang.
Then one day after they decide his job can better be handled remotely by another manager also managing his own plant. Even though logically we all know that the only legal requirement is that the company pay for hours worked, this worker felt totally betrayed. The corporation did what was best for it's bottom line with no regard for the worker. He was just an entry in some spreadsheet. |
| Thu 19 Aug | I am Jack's fear of the unknown | So... evil can only be as evil as it is unpredictable.
After thinking on that one a little longer than I should've, I believe it is much more true than common sense dictates. |
| Thu 19 Aug | kc |
Actually, the vast majority of businesses in the US are small businesses.. usually defined as 'less than 50 employees' and 'less than 10 million in revenue'.
Very few of these are publicly traded (according to the Small Business Association) because 'going public' is a HUGE influx of cash and attention which usually spurs more growth. |
| Thu 19 Aug | muppet | KC -
'The vast majority of /large/ corporations' |
| Thu 19 Aug | Bored Bystander | The get back to basics - corporations are artificial persons with legal rights, responsibilities, ability to own property and owe debts, etc.
My third hand understanding is that the work of certain dead 19th century German philosopher d00ds (Kant?) established the philosophical context in which an abstraction like an artificial person was credible. Before this groundwork, the idea of a corporation was just plain butty. Ok, that's the 'Bill and Ted' version, anyway. (on the other hand, my understanding is also that the New World spice trade created the need for 'companies' to underwrite expeditions. So take your pick of the timeline.)
Moving right along - being artificial, and having as its purpose *only* financial survival and profitibility, a corporation aside from its owners, is literally soulless and has no ethical or moral context. It exists to make money. Period.
Same kind of things can be said of a car, or a computer, or a cake. They exist and are created by humans for specific purposes. I don't want my cake telling me I can't eat it. Being inanimate is not necessarily a bad thing, it's the use to which that thing is put that is good or bad.
I think what many who dislike corporations are really bitching about is the group behavior, the non accountability, and the politics of groups.
On group politics and groupthink:
I used to attend and vigorously support a church that I finally realized really didn't 'care' about me or my family's unique problems. One attends a church in part for mutual support. I was told by the pastor in no uncertain terms that he felt that our family's issues were trifles compare to the 'real problems' with with the church is occupied. He has asolutely no idea, no clue, and is absolutely out of touch.
Meanwhile, certain high profile and newsworthy programs that the church has identified as 'strategic' consume 120% of their attention.
So, what I am saying is that the people of a church can be extraordinarily callous, insensitive, and blind.
A church is a body of people. It's therefore prone to being political and just as deaf to 'right' as any corporation, owing to exactly the same factors: diffusion of personal accountability, the feeling that someone else 'must' inevitably be taking care of things, the justification of 'policy', etc.
I trust people. I don't trust groups. An individual's sense of right and wrong can be appealed to. A group of even two or three has infinite means at its disposal to evade responsibility for a result.
End of story.
- Bored (an S-corp owner) |
| Thu 19 Aug | Bored Bystander | butty --> nutty. |
| Thu 19 Aug | muppet | Bored -
Precisely. Well put. |
| Thu 19 Aug | Doug Withau | It's the man, man. And the man is keeping me down! |
| Thu 19 Aug | eclectic_echidna | > Right. So you prefer predictable vileness and societal corruption over unpredictable potential vileness with an equal chance of potential goodness and societal improvement.
Societal corruption is not the fault of corporations, but solely the fault of people. That is because corporations are made up of people.
It was just a few hundred years ago in Europe that you would be killed for not following the established religion. It STILL happens today. Not to mention that during revolutions, the rebels would kill you if you were for the government, and the government would kill you if you were a rebel. If you are lucky enough to support the winning side, you are now a patriot.
Give me a corporation any day instead of other institutions like religion. How many modern day religious extremists are killing followers of other faiths? Do you have that with corporations?
Why don’t we complain about more heinous and demonstrably harmful institutions like: church/religion (follow us, we’re good, everyone else is damned), quack-science (chiropractors, bottled water, reflexology, homoeopathy), and two-bit warlords/dictators/patriots (the men with guns).
Further, before you really complain about corporations, what is a good reasonable alternative? Communes? Communism? Anarchy?
> an equal chance of potential goodness and societal improvement.
You got to be kidding. Many people I meet are polite until you bring up subjects like abortion, nationalized healthcare, taxes. It gets ugly real fast... Like here
--
ee |
| Thu 19 Aug | eclectic_echidna | > An individual's sense of right and wrong can be appealed to.
No it can't. We aren't homogenous. I think abortion should be legal, my neighbor doesn't.
Now what? Should I drag him in the street and kill him, or wait for him to do the same to me?
I think letting a certain amount of pollutants in to the air should be legal, my neighbor doesn't.
Now what?
With those pollutants my car cost $10,000 instead of $30,000. The harmful effect being the 1 in 1,000,000 chance that one person would get cancer.
Is this a good vs. evil decision?
Also, corporations can be appealed to:
Govt: Hey Evil corporation, you can’t dump mercury into the pond.
Corp: Screw you.
Govt: We are calling your banks and freezing your assets.
Corp: Ok, ok, ok, we’ll stop.
Of course that last exchange took 18-24 months of court battles. I guess it is better then nothing…
--
ee |
| Thu 19 Aug | Bored Bystander | eclectic_echidna:
>> An individual's sense of right and wrong can be appealed to.
>No it can't. We aren't homogenous. I think abortion should be legal, my neighbor doesn't. Now what? Should I drag him in the street and kill him, or wait for him to do the same to me?
Geez. I MEANT that every individual has SOME internalized notion of right and wrong that has value to him or her. Whether it reaches any particular conclusion or whether everyone has the same definition of 'reasonability' is beside the point.
> Also, corporations can be appealed to:
>Govt: Hey Evil corporation, you can’t dump mercury into the pond.
>Corp: Screw you.
>Govt: We are calling your banks and freezing your assets.
>Corp: Ok, ok, ok, we’ll stop.
Proving my point. They stop polluting/offshoring/treating workers badly ONLY because of a brute force attack upon their assets. Not because of any sense of social responsibility.
Ultimately, it's all up to whomever runs the corp, and then you have the effect of groupthink and diffusion of responsibility kicking in. |
| Thu 19 Aug | Natty | You should check out 'The Corporation', a Canadian documentary which posits that the laws governing corporations encourage psychopathic behaviour. It forms a pretty persuasive argument!
http://www.thecorporation.com/ |
| Thu 19 Aug | Catch the liars | Try this one. Australian company James Hardie kept selling asbestos sheeting for housing long after it knew asbestos caused lung disease.
When they were finally caught and ordered to pay compensation to thousands of people dying slow deaths, the bastards and their smug lawyers arranged to transfer to the Netherlands so as to escape further liability. To avoid attracting attention, they set up a special fund that was to pay out existing compensation cases, but then secretly blocked the funding for that fund. Read about the spin put out by the nicely coiffed chairman:
http://www.smh.com.au/articles/2004/08/19/1092889285282.html
However, the depth of her sorrow was limited. She was only sorry that there was a shortfall in the initial funding of the Medical Research and Compensation Foundation, a shortfall she agrees was 'woefully wrong'. It's only a matter of a miscalculation about which she's truly, truly, very, very sorry.
You can be certain that Hellicar and the rest of the board are profoundly, profoundly sorry that the share price of the company has been slaughtered. |
| Fri 20 Aug | Paulo Caetano | 'Give me a corporation any day instead of other institutions like religion. How many modern day religious extremists are killing followers of other faiths? Do you have that with corporations?'
Absolutely not. Corporations support life - e.g., they support life by employing kids all over the world (selected parts of the world, that is); as I've read once, 'at least these kids are not starving'.
'Why don’t we complain about more heinous and demonstrably harmful institutions like: church/religion (follow us, we’re good, everyone else is damned), quack-science (chiropractors, bottled water, reflexology, homoeopathy), and two-bit warlords/dictators/patriots (the men with guns).'
Seems to me you should do some more thinking/researching before dissociating corporations (the ones with the big money) from 'two-bit warlords/dictators/patriots'.
'Further, before you really complain about corporations, what is a good reasonable alternative? Communes? Communism? Anarchy?'
I have, basically, two problems with power groups (and I agree with you that there are other power groups besides corporations)
1. That they believe that their power allows them to behave above the law.
2. That they believe they don't have to adapt to reality, just like everyone else does.
To clarify #2. When reality changes around me, I have to adapt. I may whine about it (it's only human, I guess ;) ), but I have no other option. Others refuse to do it, using their power, and changing reality to suit them; as a consequence, we get copyright extensions, idiot patent laws, special protection clauses, you name it. |
| Fri 20 Aug | Stephen Jones | -----'Try this one. Australian company James Hardie kept selling asbestos sheeting for housing long after it knew asbestos caused lung disease. '-----
The fibre cement that they produce does not cause asbestosis, and is perfectly legal to manufacture in many countries, and there is no warning against it by the WHO.
The asbestos that caused asbestosis (and nearly bankrupted Lloyds of London causing the biggest redistribution of wealth in the UK ever) was a different kind of asbestos used for fire-proofing. It crumbled easlily, and thus the fibres got into the lungs.
Asbestos cement roofing and ceiling sheets are still common in many countries (I've just put one on my house) and countries that have discouraged or banned their use have found the replacements to be inferior. |
| Fri 20 Aug | Catch the liars | Stephen Jones, you're aware that the decisions against James Jardie were made by courts in Australia that had the chance to review every shred of evidence? Even James Hardie doesn't deny its culpability, as far as I know. |
| Fri 20 Aug | Catch the liars | http://www.smh.com.au/articles/2004/08/20/1092972745982.html
Mesothelioma, the excruciating and always fatal cancer caused only by asbestos, can strike up to 40 years after exposure to the fibre, so there was little comfort in the fact that manufacturing had ceased 14 years earlier.
At the time, only three out of 70 Hardie companies seemed vulnerable to being sued for compensation by people injured by asbestos products. By April last year, all three had been shed from the group and were instead owned by two charitable trusts.
One of Shafron's tasks in February 2001 had been to brief the incoming directors of the foundation about expected compensation claims against two subsidiaries that had made asbestos between 1937 and 1987. |
| Fri 20 Aug | Stephen Jones | Hardie at present only makes fibre cement. This is not what it was declared liable for. However the companies still have liability for previous products.
Now this is no different from you being held responsible for the genocide of the aboriginail population, even though you have never killed a single aborigine, and it is quite possible that your ancestors were not even in Australia at the time. I think you would not be too happy at the possibility that all your future earnings could be confiscated to pay compensation for this, and would look for some way to emsure that your liability was limited. This is exactly what the company was doing. |
| Fri 20 Aug | Catch the liars | I don't follow you Stephen. Perhaps you are not familiar with the case. James Hardie knew as early as the 1960's that its asbestos housing products caused lung diseases, but continued selling them until the 1980's.
Victims, many of whom died while the court proceedings were underway, sued them and won compensation claims. James Hardie then created sham funds and moved offshore to avoid the new claims that doctors knew were coming from the exposure over the past 40 years. |
| Fri 20 Aug | Bored Bystander | >> and would look for some way to emsure that your liability was limited. This is exactly what the company was doing.
Again, this is the reason that corporations exist - to shield owners, employees and investors from liability.
It's a shame that irresponsible behavior by corporations and the separation of accountability from individuals is rampant, but the alternative is no commerce.
If every participant in a business was jointly and severally responsible for a business's actions, nobody would want to own, be employed by, or invest in a business. |
| Fri 20 Aug | trollop | Have a look at this for an example of the worst and best mangement styles at work, in the same town, in the same business. Skip to the end for the punchline:
http://www.pbs.org/wgbh/pages/frontline/shows/workplace/etc/script.html |
|
| How do you prepare and do perfomance appraisal? | Wed 18 Aug | P. Gallardo |
| Pardon my bad english,
I know lots of people (including Joel) are not keen of yearly performance appraisal process, but a lots of us have to do it. My question to the forums is how do you prepare yourself for this process? And how do you do it so the appraisal session (and conclusion) can be as objective and as constructive as possible?
Thanks |
| Wed 18 Aug | Mr. Fancypants | Quit.
Fuck that noise! |
| Wed 18 Aug | Justin Johnson | I've done performance appraisals on my employees for the last few years, and one thing has become obvious: performance appraisals aren't useful for identifying areas of improvement and offering constructive criticism. The atmosphere is too artificial--both you and the employee are aware that the contents of the appraisal will determine a lot, like salary and promotions, and so you're too careful, and the things you bring have a 'special occasion' feeling to them that doesn't make a big difference on day to day operations.
So, think of it as a part of process, like grades in school. Have a nice, calm, reasonable discussion about the employee's flaws and virtues (make a list beforehand of the points you want to hit), and treat it as a piece of paper that you can refer back to during salary evaluations and disciplinary actions.
Real constructive criticism aimed at improving an employee is only effective when it's constantly offered in small amounts over a long period of time. |
| Wed 18 Aug | On the ranch | Do you corporate dickheads ever realise what a load of crap you're living in? |
| Wed 18 Aug | TheGeezer | I'm in the same boat - performance review next week. Personally, I think they're a waste of time but (unfortunately) they're too deeply ingrained in corporate culture these days to be ignored. You've got to smile nicely during the process, exchange pleasantries, and agree on a few artificial targets for the next year.
In all seriousness, the best thing you can bring to the review is evidence that what you have done has added value and as a result you're worthy of a decent pay rise. |
| Wed 18 Aug | www.ChristopherHawkins.com | I'm a big fan of quarterly spot-checks for purposes of career development, with salary appraisals held seperately. Mixing the two together virtually guarantees that nobody is going to walk out of it happy. |
| Wed 18 Aug | Justin Johnson | What's your point, on the ranch? I said appraisals aren't very useful for guiding a person's career; I didn't say they were useless. Or are you cynical about the possibility of constructive criticism? |
| Wed 18 Aug | trollop | Appraisals are very important when they are introduced and when they are discontinued, because they signal a new fascinating distraction or imminent layoffs. Meantimes they are part of management's herd management arsenal, like grids, cleaning rosters and firedrills. Hohum.
Google 'KPI' or go contracting. |
| Wed 18 Aug | www.marktaw.com | 'Appraisals are very important when they are introduced and when they are discontinued, because they signal a new fascinating distraction or imminent layoffs.'
That's precisely what happened to me. Sterling performance appraisals until the 'new semi annual appraisal' and then I was laid off.
Another difference is that the annual appraisals were self appraisals, and the new surprise one was completely management driven. etc. etc.
Just remember you're the THE BEST and the company would fall apart without you. You're an expert in everything and while you're always improving, there's nothing extra you need to know to do your job.
Give yourself a 5/5 out of everything if it's a self evaluation.
They'll never know if your manager knocks it down later, but they'll probably use it to determine so many things. |
| Thu 19 Aug | On the ranch | Justin Johnson, I would say they're useless. Look at the way you waltz around them and work out strategies on both sides to handle them. Constructive criticism? Give me a break. More like corporate suck-up. |
| Thu 19 Aug | On the ranch | Feel free to constructively criticise me. I will promise to meet my performance goals. |
| Thu 19 Aug | Mr Jack | I make sure I don't wash for a few weeks, so that I really stink. This encourages my boss to keep the appraisal short. |
| Thu 19 Aug | Adrian | In most walks of life, what you get depends on what you put in. This applies to performance appraisals. If you've already pre-judged the process before you start, you're not going to get much out of it. |
| Thu 19 Aug | Simon Lucy | Hmmm lets see. Formal procedures to govern a process that should be normally taking place anyway are a waste of time.
Is that the consensus?
Or is it that your specialities are too |