last updated:06 Aug 2003 14:25 UK time
|
 |
|
(Comments added for week ending Sun 15 Jun 2003) | View Other Weeks
|
|
| Cities with the lowest unemployment | Sun 15 Jun | Nick |
| Since employment is always a favorite topic here, I thought Id give this link to the Forbes top 5 cities with the lowest unemployment:
http://www.forbes.com/2003/05/15/cz_kb_0515jobsintro.html
Huh, lets see ...
Madison, WI - nice picture of Madison.
Des Moines, IA - nice picture of Des Moines.
Knoxville, TN - nice picture of Knoxville.
Columbia, SC - nice picture of Columbia.
Sarasota, FL - NICE PICTURE OF A TRAILER PARK?!?
I laughed so loud I woke up the baby. I bet the Sarasota Chamber of Commerce is pissed. |
| Sun 15 Jun | | Bangalore |
| Sun 15 Jun | S. Gwizdak | Being a Floridian, that picture of Sarasota is entirely accurate. |
| Sun 15 Jun | smkr4 | Yea, unfortunately they do a great job of showing unemployment but not per capita income. :) |
| Sun 15 Jun | www.marktaw.com | Nick - it's entirely different if those trailers are owned and not rented. If they're owned then per capita, they may be wealthier than most of america. |
|
| Suing Joel... | Sun 15 Jun | Philo |
| In fact the sure sign that things are about to change is when the conventional wisdom becomes, things will never change.
I said that on here a few months ago. [grin]
Joel, you owe me dinner next time Im in town...
Philo |
| Sun 15 Jun | Joel Spolsky | You said it under LGPL, not GPL. |
| Sun 15 Jun | smkr4 | Joel wrote:
'It's just bullshit. The economy is cyclical and has been for hundreds of years. In fact the sure sign that things are about to change is when the conventional wisdom becomes, 'things will never change.'
Isn't this contradictory? Here Joel is saying that things will never change (about the economy being cyclical), and then he's lambasting others for saying the same thing about the economy's current state.
I'm no economist, but I do recall reading about the Austrian theory of economics--which basically holds that business cycles are unnatural, and are typically the result of our artificial manipulation of the monetary supply. Isn't it feasible that the cyclical nature of the economy might itself change? Especially with globalization, more and more money is not under the control of our economic purveyors, such as Mr. Greenspan's Federal Reserve.
After all, I don't think Economists _really_ understand why we experience these cycles. If they did, Fortune wouldn't have as much to write about. :) |
| Sun 15 Jun | Joel Spolsky | (and anyway i only give credit to people with human names, not bakery ingredient names.) |
|
| Expecting the return of the British Empire.. | Sun 15 Jun | drinking the kool aid |
| ..any day now. Maybe Ill get a job as a smithy or maybe I could be a tulip farmer. Hey, its all just a cycle right?
I hope I live long enough. |
| Sun 15 Jun | Comrade Binar | All roads lead to Bangalore and St. Petersburg.
I don't think Joel has a f#$king clue what is going on in the corporate world these days. |
| Sun 15 Jun | Whapow! | Yeah, because someone running a successful, profitable company in an industry full of failed and failing businesses couldn't possibly know what he's talking about. |
| Sun 15 Jun | And the horse you rode in on | My uncle runs a milk bar. Maybe I should ask him for advice on what the fortune 500 companies are going to do too? |
| Sun 15 Jun | Tim Sullivan | I think he does have a fucking clue, because he's right. The US economy is poised for a massive surge in both employment and economic growth, with the problems on the upside, not the downside.
The stock market is climbing, despite a number of bad economic and socal reports. The US dollar has decreased in value, making doing business in the US more attractive, especially in manufacturing. Temp and contract companies are seeing a year-over-year increase of 10%. Multiple tax cuts to both individuals and businesses. The ability to write off a larger portion of assets over a longer period of time (including software). A recession that's 2 years long - signifigantly longer than the average.
This all adds up to 'good times ahead'. So you can spew FUD, but the reality is that there is a cycle, and we're at the end of a bad one and the beginning of a good one.
FWIW, we've had 6 months of unheard of sales (on the upside) of our software, in an industry that's the hardest hit by a recession: employment. It's only getting better (this is going to be a record month for us). |
| Sun 15 Jun | cycle-o-matic | Comfortable people often pontificate about the plight of the average man, citing statistics and trends to their pals while they smoke cigars in the local club. Tulip craze over? All those lazy whiners should retool for the next craze! As if millions of people can simply flip a switch or turn their lives on a dime to suit current economic trends.
The reason the belief 'things will never change' is an indicator of an upturn, is because it reflects of desperation. It means enough people have given up or have sold everything and are now pimping themselves out for $8.50 an hour that it fuels economic growth. Of course, in the meantime it means that many people have had their lives destroyed permanently. But hey, I'm alright jack!
There is a confusion between cycles in themes and cycles in economies. An economy may return and surpass its previous measure, but that doesn't guarantee that any particular segment of an economy will return to its previous state. A bust in an industry doesn't automatically mean it will boom again. Cycles don't guarantee that an economy won't bust and stay bust, how are the japanese doing these days?
What I find most absurd is the implication that the economy is somehow independant of reality. It's almost as though growing food is entirely unrelated to eating, that even though we may grow nothing populations will continue to rise. The Incas were once a booming civilization, until they overworked the land and starved themselves into oblivion.
There is also this contradictory notion that economic cycles continue in perpetuity, in other words, nothing ever changes. If that were the case then history would not be replete with examples of fallen civilizations and crumbled economies. Change mostly happens slowly enough for people to fool themselves into thinking that nothing changes.
Another question is, who is to say where we are in the boom-bust cycle? Perhaps we are still in a post WWII boom, and this current recession is the beginning of a long slide back to poverty. Depending on your perspective the entire boom-bust cycle becomes essentially meaningless. |
|
| Your Perfect Company | Sun 15 Jun | www.marktaw.com |
| One of the job hunt sites has a question describe the company youd like to work for.
After all this bitching about the wrong company, tell me about the right company. Has anyone worked for them?
I always wondered.. If you have so many out of work programmers, why dont they get together and develop something in their spare time? Something open source or even something commercial. Its not like you have to gather materials like manufacturing.
Say, what happened to dictionary.com and reference.com? They seem to be off the map. |
| Sun 15 Jun | Philo | The perfect company has a CEO that realizes his job is both sales and managment, neither to the detriment of the other. He realizes that he needs to hire people for their expertise, then remember the reason that he hired them.
He'll realize that nobody is perfect, and he may need to give his employees guidance now and then. He'll hire people that realize this as well.
He'll be firm yet forgiving, and let his employees know what's important and what isn't. He'll understand when something isn't necessarily worth doing well.
He'll recognize the value of money - that it's important to keep the company alive (don't spend like it grows on trees) but also that sometimes you have to spend money to make money (don't be penny smart and pound foolish).
[body.replace('He', 'He/She'), yadda, yadda]
Given the nature of people, I believe a good company that needs more than a dozen employees will run itself like small companies in a collective - autonomous business managers with profit/loss accountability that answer on a macro scale to a single CEO.
That's a start, anyway...
Philo |
| Sun 15 Jun | Tom Vu | The perfect company has an __objective__. It is willing to work hard to meet the objective. The employees have a huge FU factor but stay because the work is challenging and they are seeing results. People take responsibilty for their actions and have an incentive to see the company grow and succeed.
As for why don't unemployed programmers band together and start something, because most are not that good. It takes alot more than being a great programmer to finish a project or start a company. It's easier to complain and post on web forums all day. |
| Sun 15 Jun | realist | The perfect company is full of people who want their workday to mean something. |
| Sun 15 Jun | | any job where it says: 'me', sole proprietor. |
| Sun 15 Jun | www.marktaw.com | Some truism I read somewhere is that a good CEO (or manager or whatever) hires people who can do the job, and then lets them do it.
So... nobody's actually worked for this imaginary perfect company? Perhaps there's a good reason for that.
Sadly, Tom is probably right about the unemployed programmers. |
|
| Down & Out | Sun 15 Jun | Dennis Atkins |
| The latest fortune magazine profiles a typical out of work dude -- hes 40, has decades of experience working for Fortune 500 companies, a BS in engineering, AND an MBA:
http://www.fortune.com/fortune/careers/articles/0,15114,457284,00.html
Just recalled the talks we had some months ago where people were thinking of going back into school (going back into debt) to get an MBA, thinking that would help them get a cushy job. Well.. heres the answer.
Heres my own thoughts on the subject:
1. Going back to school? Study nursing or something that there is a demand for. Nobody needs yet another MBA.
2. Want an MBA so you can understand business better? Save the hundred-thousand youd spend on an MBA and spend $500 on some good books on business instead. Take a night class at the community college for $100. that gives you 80% of the bang for far less than 20% of the buck.
3. Really want to stay in engineering? Great, create an exciting new product and market it.
4. Cant do that, dont want to, or dont have the cash to do so? Looks like youll need to switch fields.
Finding a job in the industry where somebody hands you a paycheck may not be your best option. And waiting it out might not work due to the outsourcing issue. Next big thing might be the 2038 date rollover hysteria. Thats a long wait. If you want to work in tech, youre going to have to go it alone and make your own products or services and try to get people to pay enough for them for you to live on. If you cant do that or it doesnt work out for whatever reason, take the next job you can find. Sales jobs pay well, also being a waiter in a good restaurant. Not kidding here, the experience you get in sales work will be of greater benefit than an MBA when it comes to selling your next vision to customers or investors. |
| Sun 15 Jun | Tom Vu | Take a marketing class or a 'how to sell / negotiate' class. This is more important than learning the latest BS language, framework, methodology, or whatever. If you insist on going back to school to get a degree, go to a top 20 school only. You probably won't learn anything worth the price but with an elite name school people in the know will be impressed. |
| Sun 15 Jun | Dennis Atkins | That's a great idea Tom. I'd recommend a community college because of the great cost/benefit ratio. Also, at the CCs you get fine instructors dedicated to the profession, something more rare at research universities where your professor will never be seen and classes taught by exhausted and inexperienced grad students with hard to understand accents. Universities only have the advantage at offering high level classes and fancy brand names. Unless you're going to Harvard or Cal Tech, lower division classes are best served locally. |
| Sun 15 Jun | www.marktaw.com | Getting a business education is easy - start a business. It's not rocket science, it's just hard work. Even one you don't plan on bringing to profitability (hey, it's a tax writeoff every 2/3 years).
Building a brand, getting a good product, reducing costs, increasing profit, finding and retaining customers... These things are pretty much universal, and unless you've had to worry about these things yourself, you're not really gonna get them.
Most MBA's I meet, especially the ones from the top schools, have a self confident, almost cocky demeanor, and do know a boatload about things like MS Project and Powerpoint and giving a good presentation and all that. Certainly more than most community college grads, and at the end of the day, it's touches like that that differentiate a middle manager. |
| Sun 15 Jun | www.marktaw.com | 'you're not really gonna _get_ them.' |
| Sun 15 Jun | Dennis Atkins | I'm with Mark too -- can't do better than start your own business. In fact, getting a MBA seems entirely pointless unless you've already started a few businesses already and are curious to smooth out the rough edges. How many good programmers show up at school not knowing how to program already? Not many if any. Likewise, a background running businesses should be a prerequisite for applying to business school.
But I think that if there is a class in salesmanship and marketing you can take at night available you don't have much to lose, especially if you are trying to do it during the day. A job at Nordstrums or at a good restaurant can also provide some real world experince in a safe environment that provides a paycheck that is proportional to how personable and customer-oriented you are. So if you need the paycheck, those are good thinks to look into that will help build up the skills you'll need either to market your new offering or to wow them in that elusive tech job interview. |
| Sun 15 Jun | Patrick Bateman | Half the reason I recommended taking business courses was networking - to meet the managers that may help you get a job.
Those managers don't go to community college.
Philo |
| Sun 15 Jun | Joel Spolsky | Some people are going back to school because they always wanted to, they want to learn something, and now with the economy in a slump is as good a time as any to do it. If you are interested in business administration, an MBA program is a fun way to spend a couple of years while you wait for the job market to get better. |
| Sun 15 Jun | Clutch Cargo | Tom Vu! Heh-heh. Just the name makes me laugh out loud.
Loved your infomercials, man. |
| Sun 15 Jun | www.marktaw.com | Re: Starting B-School
I've always believed that in order to learn, we need a framework from which to start. Otherwise we have no way of categorizing the information we're given, and it just passes out of us, or sits around like files scattered on the floor.
So if you've run your own business, you'll get THAT much more out of B-School. If you've already held a management position, you'll also get more out of them than someone who'se never held a position like that
I think that's what's wrong with our educational system - they force you to choose a college and a major before having any real-world experience.
Re: sales courses
The same applies here. I've read some great books on salesmanship, but don't think I got as much out of them as I would've if I was in a sales job where I could apply the principles I was learning on a daily basis. While each one increases my general knowledge, they don't really get ingrained.
I can read books on gymnastics but it won't make me a gymnast. |
| Sun 15 Jun | www.marktaw.com | Philo, did you just give away your secret identity?
School is a good way to wait out the recession, and don't those late night advertising trade schools know it! |
| Sun 15 Jun | Stephen Jones | ---'an MBA program is a fun way to spend a couple of years while you wait for the job market to get better.
Joel Spolsky'------
You've sure got a strange idea of fun! |
| Sun 15 Jun | Phil | I agree with the advice to start your own business over getting an MBA. There is nothing wrong with getting an MBA, but having experience running a business I think is more valuable. In my experience, Most of the people that I've worked with that had MBA's were arrogant, yet they were able to talk that talk, but when things got sticky, they started backtracking. On the other hand, most of the business owners that started from the ground up painted a very realistic picture to me about what it takes to run a business. One guy who used to run a consulting shop of about 6 Java developers said that there is a lot of time spent trying to acquire customers. This time is not billable so you spend it writing prototypes, marketing whitepapers, case studies, etc. He says that it is hard work, but is very fulfilling. |
| Sun 15 Jun | Dennis Atkins | Philo's been using that Phil thing for a few days now.
School is fun. I agree.
$100,000 debt is not fun. And it limits your options severely. You are not going to be starting your own business when you gotta work 2 jobs just to make your student loan payments.
make darn well sure that that degree is going to pay for itself if there is an issue of debt.
If you got a free ride from parents, goverment, or employee, it's not the worst choice. |
| Sun 15 Jun | Dennis Atkins | I mean Patrick not Phil. |
| Sun 15 Jun | www.marktaw.com | > Philo's been using that Phil thing for a few days now.
Phil? I'm talking about Patrick Bateman.
I know a doctor who went to columbia and left with close to $400,000 in debt. Yeouch. Then again, the only reason Columia, the gov't, etc. loaned it to him is that they were reasonably sure he'd be able to pay it off. |
| Sun 15 Jun | www.marktaw.com | nevermind. |
| Sun 15 Jun | Dennis Atkins | Yeah, it sucks ultra bad for doctors since they can get their licenses revoked if they fail to pay back government loans. Or so I've been told. If it's true, it sucks. |
| Sun 15 Jun | Dennis Atkins | So if your friend wants to go to Africa and help people with AIDS for $100/month salary, he's SOL, right? |
| Sun 15 Jun | www.marktaw.com | > So if your friend wants to go to Africa and help people with AIDS for $100/month salary, he's SOL, right? <
If what you say is true, then only if he wants to return to the states afterwards and continue to practice medecine. Unless he has enough stored up to last through his time in Africa. |
| Sun 15 Jun | Dennis Atkins | Yeah, it's more a statement than a question. That sort of debt precludes African trips unless he's OK with defaulting on his loan. Sometimes there are options where loans can be partically forgiven for doctoring in a rural area, or perhaps working in the Peace Corps, but it's not like you can just accept an invitation to help out anywhere, it has to be done under approved circumstances, severely limiting one's options.
For most folks, graduating with $400k medical debt means you gotta do what you have to to make those payments. That means overcharging, turning away folks without insurance, and doing what you can to get the Pharmaceutical company kickbacks. Since the big medical schools are in cahoots with the big pharmaceutical companies, you can see how this all works. |
| Sun 15 Jun | . | The thing about MBA's s that technical professionals frequently do them expecting it's an automatic ticket to advancement.
In actual fact, the very need to do an MBA can be an indicator that the person lacks the entrepreneurial or businesss skills that are needed to succeed in business or, conversely, lacks the brilliance to succeed in software development or engineering. |
| Sun 15 Jun | Philo | I'll bet a case of beer that if a qualified doctor with heavy debt wanted to go to Africa for a year or more to work relief efforts, that he/she could find someone to cover the loan payments while they were gone, assuming they couldn't find someone that would actually pay off the debt in full.
USAID, Amnesty International, the Peace Corps, the Red Cross, heck - even write a letter to Bill Gates and Warren Buffet.
Philo |
| Sun 15 Jun | | For those that want to study business: I recommend the part time MBA from a local college. Much better networking and instruction than what you get from a community college. Plus it looks good on the resume.
Remember, all those unemployed people have one too, so you need it just to level the playing field. :) |
|
| Sun One Debuggin' Fun | Sat 14 Jun | anon |
| I’m using Sun One Studio 4, update 1, Community edition. Does anybody know why, whenever I try to debug, this #$%@ app locks up tight? Anybody experience this? It happens at work (Win 2K), at home (Win XP) & on my laptop (Win 2K). It happens even if it’s just a ‘hello world’ program. Any ideas? Thanks. |
| Sun 15 Jun | Chas | I hate to be unhelpful, but this is probably caused by the fact that the Sun One IDE is based on the NetBeans/Forte codebase, which I've seen fatally fail in one way or another dozens of times since I first used an IDE in that lineage back in '99. (Forget for now that it's a bloated, slow, poorly-conceived environment that tries to do just about everything but gets nothing right.)
Eclipse is a decent alternative (although it is halfway towards the same level of bloat as Forte and its kin), IntelliJ is excellent, as is JEdit with the appropriate set of plugins (which is what I've been running for about 18 months now). |
| Sun 15 Jun | Ioao | The problem is that 'Sun One' is a complete IDE (even comes with the bugs included as we can see :-), but Eclipse and JEdit still need plugins that even if available may not work as well as a complete IDE out-of-the-box.
NetBeans (www.netbeans.org) might work better for J2EE development than Eclipse with the added plugins. Both are free so anyone interested can test them before deciding which to use.
Another one that is free is Oracle's JDeveloper.
If I had too pay for one, I probably would decide for IntelliJ, as it seems unbloated and featureful compared to JBuilder.
But overall, JBuilder is the best.
Back on the topic, try debugging other types of apps or downloading
another version of the JSDK and configuring it correctly, like adding the environment variables PATH and JAVA_HOME.
Good luck |
| Sun 15 Jun | Andrew Reid | Sun ONE == Netbeans, so if you're having troubles with it, it might be worth a try heading over to www.netbeans.org and seeing if the latest release there fixes your problems. |
|
| Oradata files | Sat 14 Jun | oracleGreenhorn |
| I am greenhorn when it comes to Oracle...
What are the files in this folder? what do *.DBF files contain? Is it ok to delete this folder if I have not been using oracle for a while? |
| Sat 14 Jun | ko | Greenhorn,
*DBF files are generally your oracle database files which contain your indexes and data... i don't suggest you delete those files :)
Oradata is generally the directory those files are placed in on a std install. (anyone, please feel free to correct, this is going on memory).
For advanced oracle help (i realise this question is not one of those, but this site is still very useful) look at http://asktom.oracle.com and search the archives. |
| Sun 15 Jun | deja vu | If you dont plan on using your database again, you can safely delete this directory
As the earlier poster pointed out, this contains most, if not all, of your database files.. The data, the indices (indexes ?), control files etc
If you want to remove the database (to regain space or whatever), I'd suggest you use the universal installer to uninstall the database completely. That will regain the space and remove everything associated with the database.. One thing that they probably dont tell you in the manual is that for a complete uninstall, you need to run the installer, uninstall and then delete the registry entries for Oracle..
Hope this helps |
|
| Hiding my ignorance about C syntax | Sat 14 Jun | Asinorum |
| Have you ever not understood something, but waited too long to ask? That is, if you had asked someone at the beginning, the question would have seemed natural, but youve waited too long, so youd lose face.
Thats how I feel about the C syntax in some function calls. For example in Win32 programming theres int WINAPI WinMain(). If int is the return type and WinMain is the function name, then what the hell is WINAPI?
Ive never seen this syntax in K&R or any other C/C++ book I have, so Ive never been able to figure it out.
What the hell is that? |
| Sat 14 Jun | Mike Swieton | Looks like a macro ;) don't know what it's defined as though. I don't do Win32 any.
Always ask when it hits you. Always. Or look it up. But never, *ever* let things go for any kind of time period.
Sometime's I'll let things go if I am relatively certain they aren't important, for instance yesterday I was working on some PHP3/MySQL code. I haven't worked with either in *years*, and my knowledge has grown to be a bit spotty. But, it didn't matter. I ignored my ignorance, and got the job done because the things I didn't understand just plain didn't matter.
By the same token, I always make absolutely sure that I understand the architechture we're working with, etc., because that is knowledge you can't work without. Or at least design without, anyway.
If it matters, always make damned sure you know it. And screw saving face, if you fsck it up, you'll lose a hell of a lot more than just asking the damned question would cost you. |
| Sat 14 Jun | Chris Nahr | WINAPI is indeed one of the many macros defined in the Platform SDK include files -- if you're confused about any of them you should either search MSDN or the all files in the directory that contains windows.h.
The WINAPI macro is defined in WinDef.h and determines the calling convention. It maps to _stdcall for VC++ which implies the 'Pascal' calling convention, i.e. the callee cleans up the stack (IIRC). |
| Sat 14 Jun | Alyosha` | WINAPI is a macro defined in windef.h as
#define WINAPI __stdcall
__stdcall itself is a Microsoft extension to the C language which states this C function is responsible for cleaning up its own stack when it exits (instead of having the calling function cleaning up the stack, as what usually happens).
There's no good reason for this; it's just due to a design decision made in Windows back in the day and one we can't change now. |
| Sat 14 Jun | mackinac | It does look like a macro. Run it through the preprocessor (if you can do that. I am a C/C++ programmer, but not Win32) and see what you get. WINAPI may be defined to be a null string and only be there as a flag for the user or for grepping the source files. And, hopefully, a Win32 programmer will come along and tell us what it is really for. |
| Sat 14 Jun | mackinac | >>> hopefully, a Win32 programmer will come along <<<
Which happened while I was typing my response. Well, now you know why K&R and your other books didn't have anything to say about it. |
| Sat 14 Jun | Christopher Wells | > There's no good reason for this
Actually it makes the compiled code a bit smaller: if there's one 4-byte parameter, for example, then the single callee will end with a 'RET 4' opcode, instead of every caller needing an extra 'ADD SP,4' after the subroutine call. It's used for most functions, except for functions like wsprintf() where only the caller knows for sure how many parameters it pushed. |
| Sat 14 Jun | mb | Isn't _stdapi also the same as the Pascal calling syntax? It's been a long time...
Note than in Visual Studio, you can ask it where anything is defined by selecting 'go to definition' or some such off the context menu (and some other places). You may have to let it build a browse file. They let you look at call trees and all sorts of things, anyone know where the equivalent (the features beyond 'show defintion') went off to in VS2003? I haven't found it yet. |
| Sat 14 Jun | Alyosha` | I think the only difference betwen WINAPI and Pascal calling convention is that the Pascal calling convention pushes the parameters from left to right. |
| Sat 14 Jun | Bored Bystander | >> I think the only difference betwen WINAPI and Pascal calling convention is that the Pascal calling convention pushes the parameters from left to right.
...AND the procedure itself removes the arguments from the stack... NOT the caller, as C calling convention does. As already stated, Pascal convention results in very slightly smaller code.
IE, you *cannot* fake a Pascal calling declaration by simply reversing the order of the passed parameters. The caller of the procedure must be aware at the assembler level that it's calling Pascal proc type.
Hence the function qualifiers, which govern the low level code being emitted by the compiler. |
| Sat 14 Jun | Dan Shappir | As has been pointed out, WINAPI is translated by the preprocessor to __stdcall. Of course, you can also use __stdcall explicitly in your function declaration:
int __stdcall WinMain()
The reason for the use of WINAPI is that it's also an indication that this function is a part of the Win32 API. There are other macros defined by the Microsoft header files that also translate to __stdcall but are distinct in order to indicate their particular usage, e.g. CALLBACK.
BTW, the double underscore prefix is a standard C/C++ convention to indicate custom language extensions, so MS was playing by the rules here (though code that uses custom extension obviously risks being non-portable).
Like Pascal, __stdcall pushes the arguments in reverse order to __cdecl, the standard C calling convention. And as mentioned above, it's up to the callee to clear the stack instead of the caller. The result is more efficient code, both because there are more instances of the calling code than the code being called, and because of the aforementioned built-in support in x86 assembly for this calling convention.
The reason C/C++ doesn't use this calling convention by default is that __cdecl allows calling functions with a variable number of arguments, e.g. printf. The Win32 API doesn't use this feature (except for the wsprintf function) and for historic reasons (which Joel may know about more than I) uses the Pascal calling convention.
More than you ever wanted to know about WINAPI ;-)
BTW, I wholeheartedly recommend to always ask when you don't understand something. Worst case, you're embarrassed once. The alternative is to carry the embarrassment inside you all the time. And if you want to avoid that one-time embarrassment, try using Google first :-) |
| Sun 15 Jun | Chris Tavares | I vaguely remember the reason for preferring __stdcall in the Win32 API was that MS did some benchmarking and __stdcall functions ended up being about 10% faster than __cdecl functions. Probably because __stdcall functions can clear the entire stack frame in a single instruction.
No idea if that's still true in this post-pentium era. |
| Sun 15 Jun | | The thing Asinorum should be embarassed about is that he or she couldn't figure out how to right click on WINAPI and Go To Definition or hit F1. Help is just a few clicks or keystrokes away. |
|
| Companies "based" upon hating Microsoft? | Sat 14 Jun | Nasty, Smelly Curmudgeon |
| Hi -
Yesterday I had lunch with a couple of buds from a past client. They are Windows developers, doing shrinkwrap product development.
One topic of conversation was one of the partners of their employer. This guy is a SW engineer who has embraced open source in his business ... with a death grip.
My friends told me about network shares containing their files down for hours, because this guy installed a new patch for either Linux or some server component. *Every* product the place does that has a server aspect has to have a Linux server port in addition to an NT/2000 server version, which bogs down and holds up their development. Even if the customers and users didnt ask for it, just in case. And I recall asking this partner about some work a while back in C++, with my past background being Visual C++ (among other platforms). NOOOOPE, had to ONLY be GCC! Pretty insulting tools-focus considering that I have twice this lame asses experience.
The main point is, this partner bitches all the time about his 12-15 hour days.... spent mainly tweaking open source based tools and working around problems introduced by the usual semi documented variations in the programs. Any business direction, marketing, sales development? Nope... just hacking.
If you ask this guy - open source is GREAT, and Microsoft is EVIL, and Windows only users are lame, ignorant and stupid. His desktop is only Red Hat.
The bottom line, according to my friends, was that this guy gets nothing done because all he does is tweak his beloved open source crap. They said that approaching him on this subject was like arguing with a teen ager (the guy is in his early 30s.)
I heard that ArsDigita went down partially because it was based partly upon Greenspuns contempt for Microsoft and other closed commercial products. Or at least, that bias didnt help things any.
Anyway, interesting. |
| Sat 14 Jun | Konrad | Not sure how much actual contempt he ended up with - one of the rumours I did here was that during the final days, ArsDigita did have a hope of partnering with Microsoft to transfer their CMS over to a windows environment - Greenspun himself for it, VC's against it.
Who knows though. |
| Sat 14 Jun | Patrick Bateman | I believe I've mentioned on here before that I interviewed at one job where they had SQL Server 2000 installed and running as a production platform, yet during the interview the project lead said that he planned to migrate to Oracle 9i on Linux 'because of Microsoft's security issues'
I decided right then to reject any offer for the job. I did NOT want to be working for a lead whose business decisions were driven by FUD and ABM thinking.
Philo |
| Sat 14 Jun | Tom Vu | what about companies based on loving microsoft even when it is not the right tool for the job. The great thing is that you are all free to do anything you want: start a company, new career, consult, complain. Human nature hasn't changed in thousands of years, deal with it. |
| Sat 14 Jun | The Real PC | Where I work they despise Microsoft. I don't feel as strongly about it myself, but I am getting to love open source. Even if I don't ever look at most of the source, it's reassuring to know it's there. It bothers me to think of using software when you can't possibly find out how it works.
The system administrators are very good and know Unix extremely well. I guess that's the key. |
| Sat 14 Jun | robert | 'The bottom line, according to my friends, was that this guy gets nothing done because all he does is tweak his beloved open source crap.'
As opposed to getting nothing done because of tweaking beloved closed source crap? What the heck is your point? There are bad programmers who are linux zealots and there are bad programmers who are windows zealots.
Your tone is that he is a bad programmer _because_ he is a linux zealot. Well, that's just as silly and teenager-ish as you claim this guy to be. |
| Sat 14 Jun | Bored Bystander | >> As opposed to getting nothing done because of tweaking beloved closed source crap? What the heck is your point?
The point is that this guy turns a business decision - buy a solution that essentially works off the shelf, compared to adopting a 'free' solution that costs him endless hours of tinkering (oh, but it was free!) - into a denial-filled admonition that it HAS to be effective and wonderful and good because it's open source.
>> Your tone is that he is a bad programmer _because_ he is a linux zealot. Well, that's just as silly and teenager-ish as you claim this guy to be.
No, my 'tone' is that a business owner - who really should be doing strategically important things to run and grow his business - is continually bogged down doing hands on damage control of open source that breaks every time a patch or upgrade is applied.
The 'bad programmer' rap is beside the point. I don't even know how 'good' he is technically. He may be tops for all I know. The real point is that the company could be spiraling down the crapper while this guy saturates his brain and his time with repetitive admin work necessitated by 'some assembly required' open source.
In other words, unwise, time wasting and self indulgent, like a teenager. |
| Sat 14 Jun | one programmer's opinion | I believe the point of this post was that focusing on technology (open or closed) as opposed to getting things done is not going to get you very far from a business standpoint.
I don't think I would want to be a business partner with the person mentioned in this story. |
| Sat 14 Jun | Patrick Bateman | It sounds like someone who doesn't understand what TCO means.
Philo |
| Sat 14 Jun | FullNameRequired | '- is continually bogged down doing hands on damage control of open source that breaks every time a patch or upgrade is applied'
Id be interested to know what opensource programs he is using? none of them are within a thousand miles of being that bad in my experience...
or by 'opensource programs' do you mean 'perl code d/l from a recipe website'? |
| Sat 14 Jun | The Real PC | I have worked with three different web servers -- MS IIS, Apache and Tomcat. Apache and Tomcat are both open source, and both are configured by editing text files. I found the MS web server to be much more of a headache to work with. Instead of simply looking in a text file to see or change the configuration, I had to struggle through a maze of wizards. You do not have the option of editing text files, because there are none, and you are stuck with the GUI.
It's true that some open source software can be tricky to use or poorly documented. On the other hand, some of it is a breeze.
I have used the open source database MySQL and it was certainly no more trouble than MS SQL.
I think people strongly prefer whichever they are most familiar with. Unix and open source have some great advantages, and of course they have disadvantages especially for someone with inadequate experience.
Getting some great things for free, and being able to see the source code, is, well, great. |
| Sat 14 Jun | robert | 'The point is that this guy turns a business decision - buy a solution that essentially works off the shelf, compared to adopting a 'free' solution that costs him endless hours of tinkering (oh, but it was free!)'
You seem to be implying that solutions that 'work' are not usually 'free.' I would say that's a false characterization, if not entirely backwards.
I use tons of 'free' software that works _better_ than 'pay for' equivalents. It costs me _less_ time. I know because I've done it both ways. (Of course, sometimes the reverse is true, but decreasingly, and rapidly so.)
So, maybe this guys makes such decisions based on the 'freeness' alone and that is clearly a mistake, but again you seem to be implying that 'you get what you pay for' and that is demonstrably false.
I think you're every bit of a windows and non-free bigot that this guy is a linux and free bigot. Your assertion that every upgrade means regressions, for example. That's your basic Microsoft-esque FUD. It's bogus. The only difference between 'free' upgrades and 'closed' upgrades is that, if it's really important to me, I can freakin' _see_ what the 'upgrade' really is before installing it. That can only be a better situation. |
| Sat 14 Jun | The Real PC | [buy a solution that essentially works off the shelf]
You assume it works better because it's expensive. But you are ignoring the fact that open source projects are often developed by programmers for themselves and other programmers, because what they want is not available on any shelf, for any price. You are also ignoring the fact that expensive software can be full of bugs and hard to use. You probably have not used open source very much yourself or you would not be so strongly biased against it. |
| Sat 14 Jun | Patrick Bateman | I'm as biased against 'open source for open source sake' as I am against 'anything but Microsoft because it's not Microsoft' and 'only Microsoft because it's Microsoft'
The best tool for the job, no matter the source. Cheaper and easier to use is better, but money invested up front can, in many cases, save money later.
Proper evaluation of technologies does not involve 'who wrote it' but rather 'who has the best looking sales girl'
Philo |
| Sun 15 Jun | Bored Bystander | Robert, on 'bigotry', stick it up your wazoo with your immature trollish namecalling. Quite obviously, you're not in business nor in any kind of decision making capacity. Read the posts on total cost of ownership. That's where I was coming from.
FYI, I've used open source on several projects. I use what works and what's available. I just installed the 'qmail' server (because I liked its feature set) and twiddled for weeks to get the damned thing to work on plain old Red Hat linux. I used the 'P2C' (Pascal to C) translator package a while back to port a monstrous application from one of my clients to C. |
| Sun 15 Jun | Kjartan Mannes | This doesn't have anything to do with open source or not. This is more like the CFO in my company popping by my office and telling me to upgrade all the NT4 and 2000 servers to 2003 because he heard such great things about it from some MS representative. (Which actually happen last week, but its never going to happen without serious testing and a few weeks running a test site in the dev labs.)
Wether it is open source or closed source you don't want the wrong people to make decisions that impact business critical issues. Upgrading the file share with an untested patch in the middle of the day is just the wrong way to go about it. Be it open source or not, you should never tinker with a working system when there isn't a really good reason to do so. |
| Sun 15 Jun | Bored, Nasty, Smelly Curmudgeon | >> Be it open source or not, you should never tinker with a working system when there isn't a really good reason to do so.
Thank you - that's the bottom line.
But open source presents a slightly different kind of risk than does COTS software. It presents an illusion of 'total control' that is only partial and which comes at huge expense of time to anyone who wants to believe in their superman abilities. Nobody in open source wants to admit this.
And yes, Windows Update breaks things too. But that's fairly rare. And I'm not defending Windows.
However, open source presents a unique source of stability issues that COTS SW doesn't. Open source 'culture' demands that you keep current with every new patch and release - yet Linux progress itself is founded on the principle of non-binary compatibility, in contrast to (ahem) Windows. It's just 'assumed' in Linux that the user will know how to install tarballs and admin their box to put some library on it. In Windows, since the source is not available, it's demanded that a Windows 95 program (and even some Win 3.1 programs) run on Windows XP. A six year lifespan for a binary program is unheard of in open source land, but it's expected and demanded in Windows land.
And the fact that the source is 'open' induces certain people to believe that they can change things with no notice, since after all the source is included so 'anyone' should 'rtfm' and make it work, right?
I've descended down pitiless black holes of confusion and conflicting newsgroup advice with open source. When it works, it's great. But to get your job done, at some point you have to be satisfied and ... LEAVE IT ALONE. |
| Sun 15 Jun | robert | 'Quite obviously, you're not in business nor in any kind of decision making capacity.'
Quite obviously - except that I am. I'm not going to get into a slinging contest but you're completely off the mark.
'FYI, I've used open source on several projects. I use what works and what's available.'
Good for you. That was not the impression you had originally left. |
| Sun 15 Jun | Johnny Bravo | What I've noticed so far is that people tend to think that open-source means 'grass-roots' and COTS means 'big business'. Actually, anytime when large companies turn away from Microsoft into an open, free future, with open-source systems, they end up with IBM. Of course, they don't save a single buck.
So, if you don't have to count every cent you spend on software, open-source is fine. If you want to save money, spent it on the cheapest software that gets the job right - be it open- or closed software. |
| Sun 15 Jun | Andrea Raimondi | Hi,
Some disclaimers first:
1) Windows pays my bills as developer.
2) I actively use Linux, even though I'm not an expert or a
guru about it.
Now, direct to the point.
You have heard many times saying from
Microsoft detractors that MS is evil, MS is
this and MS is that.
I'm simply putting it as it is:
Microsoft can't be trusted. Why? Simply because you
can't see what is *into* their programs, because
many times MS said everything and its contrary.
'Windows will be all built around COM', that was the
claim not too many years ago. Where's that claim now?
'With Windows 98 and DirectX your gaming experience
will be the best possible', this was said in the install
process of Windows 98. What a pity they 'forgot' to say
that it would crash basically every day at least three
times per day.
But let's stay apart from the statements, and let's see the
thing technically.
Twelve years of programming maybe don't make me an
expert, definitely don't make me a newbie either.
What is the problem with Microsoft Windows and
Microsoft development tools?
Let's make a simple, but meaningful example:
Visual Basic 6.
Visual Basic 6 comes with very few available
components after install. That doesn't mean
there aren't any components with Visual Basic,
just means what I said. Few components are
readily available.
This can seem little, since you can always add
other components, which are in Windows and
some are shipped with Visual Basic.
This may be ok, as long as you KNOW what to
look for. Take a programmer which never did VB,
put him in front of Visual Basic, tell him how to add components and tell him - without any further
tip - to find the ListView.
I bet he'll need quite a noticeable amount of time
before he does. Other tools put it readily visible.
Now, do the same for the tabbed dialog.
But this time, tell him to build the tabs at
run-time and to add a ListBox on each tab.
Now he's LOST.
Why? First of all because there're TWO tabbed
dialogs available and only one allows child controls.
But even without going so far, you have to remember
that, for example, ListBoxes items are 0-based, while
collection items are 1-based.
Another example?
ListItems collection of the ListView has a 'Clear'
method, which isn't in the plain 'Collection' class.
I still didn't find a way to clear a collection without
disposing and recreating it in 7 months.
But maybe this is already too far, so let's speak
about variables.
Everything in Visual Basic which is not defined in a
specified type is considered a Variant.
Visual Basic allows implicit conversions, so this code:
Dim A,B,C
A = '123'
B=456
C=A+B
is perfectly *legal*.
Legality of such a piece of code is just *awful*,
terrible, horrible and tremendously insecure.
Let's now see the other side: Linux.
Linux is given to you as it is, and there're
practically no unsupported claims.
You can analyze line by line every single line of the
Operating System and customize it as you like.
Linux is way more stable than Windows, I probably
hung Linux 3 times in 5 years.
Yes, due to my inexperience I had to reinstall it
several times, but it was *my* fault, not Linux
fault.
I have to format my Windows partition at least
three times a year, to have a 'clean' system.
With Linux, I just keep going.
Try to make a virus for Linux :-)
I wish Linux paid my bills, but it doesn't for now.
For now. Will it? I don't know. As long as I can
foresee the future, also Windows could die tomorrow.
Would I miss it? Probably not, except for few programs.
Now let's see the 'programming' side:
Hey, there's nothing like Visual Basic, except for one,
whose homepage I don't remember.
It's on SourceForge, anyway.
So that means there's no visual programming?
Not at all. There is. Borland Kylix, which also comes in an
Open edition, and you even have a *complete*
component suite( namely, FreeClx ).
Is it usable? Yes. Does it have the same VB's
idiocy? Nope.
It's simple to learn( derived from Pascal ), easy to use and
powerful.
You might ask why I haven't switched yet.
The main reason is that actually I can't foresee a
placement for myself in the Linux world, and that
Linux shops and positions are not very common
right now.
What stops Linux shops? Customers, which are
scared of making the big step to Linux.
Why are they scared? They are scared because
most businesses can't conceive of not paying for
something.
Plus, there's the Microsoft Marketing.
Yes, the powerful and excellent Microsoft marketing
division. Open Source has no marketing guys, at
least not ones at the Microsoft levels. Why?
Because M$ has the money, the others don't.
And those who have the money and could fight,
don't because in some way are chained to Microsoft.
The original title of the post is 'Companies 'based' upon
hating Microsoft?', I don't agree, I think it should
more be 'Companies 'based' upon freeing from
Microsoft?'.
But how can you fight with a multinational world-sized
software company that says 'I can help you finding
customers if you choose my products'?
My 2c,
Andrew |
| Sun 15 Jun | Johnny Bravo | Totally pointless. I bet I could find countless examples for any computing-related decision where it proves that 'Linux is better than Windows/Open-Source is better than Microsoft-based' - or just the opposite. |
| Sun 15 Jun | Stephen Jones | For once I'm in agreement with Johnny here.
Win 98 SE is fairly stable; there are plenty of three and four year old installations going around without any trouble. And Win 2K Pro is as stable, or more stable than most Linux distros.
VB is a programming language and Linux is an OS - pears and oranges.
Most people don't want to go through every line of code of the OS. They want to use it. This going through everything and tweaking it instead of producing useful work is what started off the thread.
Personally I think there are three things involved here:
Open Source allows a certain type of programmer to waste his time tweaking: -- true but that is not the fault of the software and the typical Unix sysadmin is more famed for refusing to change anything younger than the planet.
Command line interfaces are more difficult to administer: -- to start with yes; the GUI is an excellent learning tool because it restricts choice, but the advantage declines with familiarity; and many Linux geeks genuinely find Windows difficult
Companies who leave MS end up with IBM and don't save a buck: -- simply not true in most cases (what's IBM got to do with web servers for example?). As for savings it all depends how much retraining you need. A large company with many Unix trained IT staff will manage the shift much better than an all MS shop. The general rule is rapid change costs money. |
| Sun 15 Jun | Andrea Raimondi | Well, find one please showing where Microsoft
Software can be better than Open Source software.
I backed my opinions with easily verifiable statements,
didn't I?
The problem here is not Windows in itself( well,
partly it is ) but Microsoft, its attitudes and its
behaviours.
I'm not saying Microsoft is evil and the others are all
good, each software company wants to make money.
The problem is that some software companies give
their users some 'base of trust' which lacks in
Microsoft.
Are you saying you can beleive every word from
Microsoft? Where're the standards gone?
Microsoft recently got out of a committee because
they wanted the WebService thinghy done
their own way, with no compromise.
I wonder what will happen with CSharp and
dotNET.
I'm not very confident about their future, and I am
truly scared by Palladium - which sounds like something
terrible.
You say my post is totally pointless, cool, ok, show me
where I am wrong.
Pinch the pit and show me where I'm biasable.
I'm sure I don't own the Ultimate Truth, but
I am really confident that you don't, either :-)
Btw, please, try to create a web page like this:
[html]
[head]
[title] This page will crash my Windows machine [/title]
[/head]
[body]
[input type]
[/body]
[/html]
Do use the proper tags, of course, save this page in a
HTML file and then view it in Internet Explorer...
scaring, uh?
Andrew |
| Sun 15 Jun | Johnny Bravo | Ever heard of IBM WebSphere?
My claim that companies shifting from MS to IBM don't save any money is based on ... my ability to read newspapers, on- and offline. Also, when you have some 1.000+ seats running Windows workstations, and want to change the platform - would you try and train some 50+ employees inside your company, or rely on some small business for maintanace, or would you rather prefer the 'strength and expertise' of Big Blue?
For the rest of the reply: I'm with you. |
| Sun 15 Jun | Johnny Bravo | The latter one was for Stephen, here's another one for Andrew/Andrea:
Sorry, I won't bite the bait. |
| Sun 15 Jun | Stephen Jones | You haven't actually said anything that is verifiable. except for your claim that the code snippet will crash IE, which isn't true on my machine. |
| Sun 15 Jun | Stephen Jones | Dear Johnny,
If I decide to set up my web site using Apache, PHP and SQL server I fail to see how IBM enter into it, just as if I decide to use Samba to save a fortune on W2K Server client licenses for my small business.
A company that changes over from using a 1000 Windows workstations to using !000 Linux ones is not going to save any money at all; that however is not how it works. Open Source software is introduced piecemeal, where it is most effective.
Sure plenty of firms are using IBM as a consultancy, but if they used MS software they would simply be paying IBM or another consultant.
Frankly Johnny, the chances of you saying anything against MS are about the same as Andreas saying anything good about it. |
| Sun 15 Jun | Andrea Raimondi | Hi,
Win98 SE is fairly stable as long as you
don't try Internet Sharing or some 'exotic'
things.
As for the stability of Win2k, we can agree, I yet
didn't find myself in a hang not drawn by me.
Wait wait wait!!!!
Please don't twist things: I compare VB in development
with development tools for Linux, not with Linux in itself.
Yes, going with IBM is not a 'save', but there's not
only IBM out there which offers Linux.
There're other successful distros, like Suse, which
perfectly fit the bill.
Plus, you have to consider several aspects:
most Admins are not expert, in both platforms.
I'm not saying there're no good admins in both
platforms, I'm simply saying that most of them are
not expert.
Linux is a bit harder to configure, I agree, but
there are TONS of howtos and manuals out there
which help in the task.
What really makes the difference for most users to
pass along from Windows to Linux is what I call
'the newbie loop'.
The newbie loop is simply the loop of questions
that get asked.
In the Windows world, you'll find lots of people
answering the same basics questions, in the Linux one,
'RTFM' and 'UFSE' will be the answer for most questions.
Windows does allow( and somehow encourages for )
approximation, Linux doesn't.
One of the real problems here is that most companies
don't focus part of their staff on administration
technicalities and you find yourself to struggle in
order to make a DNS server work in your domain intranet
( Windows 2K Server, 3 weeks ago ).
Plus, Microsoft Documentation lacks many times on
very important topics and each version has its own
help system, sometimes even more than one, which
doesn't help.
Linux has all the *relevant* informations and the
help system hasn't changed in ten years.
With Windows you don't know the current state of
your machine, with Linux you do.
When there're problems at boot time, Linux
makes you see exactly *what* went wrong and
often *why* just in the same moment it happens,
while with Windows you may keep using it while
important errors keep being hidden, unless you
don't go looking for the log files.
And even in the latter case, many times you'll get
cryptic errors which can't be decoded easily.
One thing I remember with Win2K Pro is that I
couldn't run it on one of my computers because of the
VIA chipset on the motherboard.
It kept showing BSOD. At last I gave up.
Andrew |
| Sun 15 Jun | Andrea Raimondi | Johnny,
Which bait?
I'm not trying to make you fall in a trap, I am
trying to discuss - which is difficut, I acknowledge :-)
My point is fairly simple: companies are not based
upon hating Microsoft, but on freeing from its
influence.
I know the same *may* happen with IBM, but
there're plenty of *vendors* which are not IBM.
Those vendors don't really sell the OS, but more the
support, the printed manuals, the package.
Microsoft surely helped in spreading the use of
computers, but it wasn't the only one to do it.
Probably I can't say many good things about M$
because I've been using its products for a long time :-)
Plus, I noticed that nobody replied on the lack of
trust towards Microsoft... so, do u or do not beleive
every word from Microsoft?
If you can't trust your vendor, how can you feel
'safe'?
Andrew
P.S. Small clarification about my name, before someone
asks: I sign 'Andrew' here and 'Andrea' in my final sign
because 'Andrea' is my true name, but I'm a male and my
name is usually recognized as a female name. |
| Sun 15 Jun | Andrea Raimondi | Stephen Jones,
How did you know that snippet crashed
Internet Explorer?
I never said it did... :-)
Andrew |
| Sun 15 Jun | Johnny Bravo | 'Frankly Johnny, the chances of you saying anything against MS are about the same as Andreas saying anything good about it.'
This thread was started with some comments on a company and one of its workers, indicating that there are some massive objections against Microsoft. The other was about misconceptions with Microsoft's so-called monopoly. For both of which I supplied arguments, trying to express that I do understand that people are biased against Microsoft, but I do not understand why people seem not to be biased against e.g. IBM at all, although the same reasons would apply.
Stephen, if you were to start a thread 'Why Linux File Servers are better than Windows File Servers', I might as well drop in some arguments in favor of Linux. |
| Sun 15 Jun | Bored Bystander | Windows and its applications generally work like an appliance. Windows based applications are black boxes. Commercial Windows programs and COTS software work for most real world applications. If they didn't, then nobody would buy them. That's the real value of Windows.
Open source applications, in most cases, DEMAND of the end user *very* strong Unix or OS level sys admin skills, the ability to understand how to rebuild applications using 'make' and other tools, and the ability to 'RTFM' (God how I hate that acronym when it's shoved in people's faces) as a fallback. All of these skills are required for most users to even consider using open source applications.
The open source community appears to those of us with specific real world needs to solve as a closed clique of elitists who seem to believe that a person has to literally 'live' in the application's source code in order to be deemed worthy of assistance.
Example: I installed Qmail on my server recently. The 'best' manual on installation of Qmail is called 'Life with QMAIL'. Not 'QMAIL Installation' or 'QMAIL for Everyone' - but 'Life with Qmail'. The author apparently believes that people should 'live in' the application, not merely use and control it. Words are important..
And I don't think that this attitude is singular to Qmail, it is found all over open source. The 'you must be found worthy in order for it to work for you' mentality. The 'your computer desktop must be your entire life' type thinking.
On Microsoft's untrustworthiness: Yes. I suppose that they will convert everyone who uses their stuff to a subscription model eventually. But they will have to compete against 'free' software in order to do it. Based on what I have seen, it's not that much of a fight, given that an end user has to make an interest in the OS and the tools his life in order to get help and make things work. Most of us have more to do in our lives than flail around with unstable tools. |
|
| Who here works on car engines? | Fri 13 Jun | Philo |
| I rebuilt my lawnmower today (long story), and I was thinking about it - how come (in stereotypes at least) geeks dont work on cars, while jocks do? Working on an engine is pure mechanics - basic engineering. Ive got no problems working on cars at all...
Any ideas?
Philo |
| Fri 13 Jun | DB | This geek not only likes working on cars, but also welding, machining and woodworking. Just wish I had the time to get better at it. |
| Fri 13 Jun | Matthew Lock | I like working on cars. Here in Australia cars last for ages due to the lack of rusting, so I enjoy working on Datsuns from the 70s. |
| Sat 14 Jun | Prakash S | No excatly car engines but...
When I was a kid, I used to love building those minature model cars, complete with engines, tyres, etc. |
| Sat 14 Jun | Rob | I don't think that stereotype is true. Personally, I used modify and tinker with high performance car engines (ported rotary engines, and a 300 HP 5.8L V8). I know a few software developers that are car buffs, although granted, most of them don't work on engines.
I plan to spend most of my money on a collection of cars, a workshop with a hoist and a dyno -- and the rest of the money, I'll spend on foolish things. |
| Sat 14 Jun | www.marktaw.com | When you're 13 you can't have a car?
You can't play video games on cars?
Cars don't have IRC? |
| Sat 14 Jun | Stephen Jones | Scott Mueller uses his hardware skills to alter the chips on the cars he races.
As far as the mindset goes the skills needed of a mechanic are the same as those of a systems administrator, or a doctor doing a diagnosis; a logical mind and the determination to get to the root of the problem. |
| Sat 14 Jun | Ken Klose | I'm interested in cars and working on them but don't know how. If I find myself in that situation with computers, I buy a copy of the relevant O'Reilly book. What good resources are available to learn about cars, engines and the like. It seems to me like everything I've seen is a reference book about a specific model written for people who already know what they are doing. |
| Sat 14 Jun | | I used to play with gas powered radio controlled cars, planes, and helicopters. The engines seemd real to me...single piston, 2 stroke. |
| Sat 14 Jun | Mike Swieton | I'm interested in just about anything I can mess with. That is primarily limited to computers, however, because of one thing: learning on computers is *cheap*.
I talk to a friend about doing some work on my car, just because. If I spend $300 I can get a few more horsepower out of it.
However, when I didn't like how XMMS worked, I changed it. That one cost me nothing.
I don't know enough about cars because that would require working on cars. OTOH, I taught myself C without much help at all, for a lot less money than a car (which I was too young to drive then anyway).
I think the stereotype comes mostly from computer people meeting other computer people more readily than motorheads 8-} |
| Sat 14 Jun | software engineer | Hardware engineers work on hardware, software engineers work on software. |
| Sat 14 Jun | Dan G | I've rebuild my project car from pretty much scratch a couple of times, this time however it should be staying complete with 500hp worth of home built, injected v8
Im in Aus (brisbane) and yer, code all day, spin spanners at night |
| Sat 14 Jun | Simon Lucy | Software engineers fix bugs in hardware, and hardware engineers give software engineers new ways to screw up. |
| Sun 15 Jun | Geoff Bennett | I love working with wood. I've been renovating our little californian bungalow for the last few months, and I've loved every minute of it (even the annoying stuff). There's something about running a bit of wood across the saw, something about putting together different bits of wood and making something, something about the smell of the crowd and the roar of the greasepaint...
I'd never done it before the renovation, and other than high school wood working, never used a saw. I'm a convert. I'm already eyeing off a nice De Walt sliding compound mitre saw which I can justify by building the back deck... |
| Sun 15 Jun | Ethan Herdrick | I can't believe no one has done a YMMV double meaning on this thread. |
| Sun 15 Jun | Timmy | Perhaps because developing an in-depth knowledge about either car engines or computers would require a large enough chunk of time that it would preclude you from learning about the other? |
| Sun 15 Jun | jcm | For one, I have _never_ been interested in cars because it's so messy. I mean grease over your hands, unhealthy particles in the air, plus the physical injuries (cuts and burns on hands) all for some dubbious results.
Not very attrative to me at least. For me a car is just like a oversized toaster: you put the key, you turn, it ignites. Difference with toaster: you can replace a toaster when it breaks as you have to fix a car. So... I found a good mecanics!
He's an honest man and like me just LOVES what he's doing (and was quite a challenge to find ;-) . It's just we don't love the same things :-) |
| Sun 15 Jun | Philo | I'm thinking jcm is the reason for the stereotype... |
| Sun 15 Jun | www.marktaw.com | I think jcm is one of the few people who spoke up on this thread who admitted to not working on cars. I'm another. Then again, I'm not much of a programmer either. I get the concepts of both, but never dove in and worked on either.
I think you're getting a skewed response here - mostly people who DO work on car engines, and everyone else isn't responding. |
| Sun 15 Jun | Gwyn | I have worked on cars; because I couldn't afford to get someone else to do it.
Now I don't because:
1. With black box 'brains' there are things you just cannot tinker with or fix problems with.
2. You often need (expensive) special tools
3. In car development there is an aim to reduce the amount of space all the doings take up. Consequently a simple job can require half a dozen other jobs as pre-requisites because you can't get where you need to.
I like software; if you want to fix it or change it then you just change the code; no need to buy new bits or dismantling to get to the part you want to change (which can take hours). And no need to get all greasy! And you can do it indoors..
Anyway, why tinker with cars?; if you want something that goes fast just buy an off-the-shelf motorbike (Blackbird, Hayabusa, ZX12R). 0-60 in less than 3 seconds and a top speed of 180+. It's hard getting a car to do that!
The only engine I do maintain is my microlight (ultralight to you yanks) engine.. and that's cos I wouldn't trust anyone else with something that I rely on to stay in the air! |
| Sun 15 Jun | Philo | Mark - I was replying (tongue in cheek) to the *reasons* jcm gave - 'it's icky and I might break a nail' [grin]
I'm sure there are a lot of geeks who don't work on cars, and I'm sure that for most of them it's a combination of time and money issues...
Philo |
| Sun 15 Jun | Dave B. - Agricultural Engineer? ;) | I work on engines and machinery, and drive heavy equipment all of the time. Cars, trucks, lawnmowers, tractors, farm machinery, you name it. It's part of my job. I work on a farm (*but thinks he would like to work in IT*). I also love woodworking and gardening. Just finished a solid oak raised panel desk. I could talk cars, farms, computers, tools etc. all day with anyone.
As for the geek stereotype, maybe it's because a car is a symbol of independence whereas a computer is not. You also don't have to take a test to use a computer whereas you have to take a drivers test for your license. You can't show off with a computer. A computer isn't really a status symbol, unless it makes you a lot of money. (I could be wrong on all of this though as computers are more 'mainstream' and 'common place' now.)
It may be that 'geeks' don't have the desire to work on 'cars' because they 'know they can do it' - 'it's simple mechanics' and 'common knowledge' and are in pursuit of something more. They may also think that they can't afford it. A wrench set from Sears and some oil isn't that expensive (of course you have to have a work area, shed, garage etc). (I think the reverse is also true that some people believe they can't use computers because computers 'are math'.)
Another reason may be that 'geeks' think they 'need a manual' or have to 'learn it'. To me, manuals are helpful, but not a necessity. You really don't need a manual to change your oil or your plugs or even your alternator or your battery etc etc. These are all standard things that garages make big bucks on because people don't want to take/make the time/investment to do it themselves. Which is understandable. You may not own a car or have a garage or an area where you can work on your car or may not have the time. (Our local recycling program collects used oil.)
I believe sometimes you just have to 'do it' instead of relying solely on the manual. That's how you gain experience. Some people are so afraid to do things without instructions...
There are exceptions to the manual. That is if you are working on complex high-tech items. Modern Aircraft, (space)ships etc etc all have some form of a 'technical order' or T.O. for different subsystems. e.g. NASA (I worked on aircraft...).
As for the person who talked about getting dirty and cuts/scrapes, all I can say is that I have never ever been cut by working on any machinery. I have gotten dirty but hey that's part of the job. Agriculture is one of the most dangerous occupations. (Offtopic: I've actually met people who didn't know what a combine or a tractor was. Please, tell me you know. Without them we'd all be in the fields with sickles. And thank Henry Ford and Harry Ferguson for the 3-point hitch system.)
My $0.02. |
| Sun 15 Jun | echidna | I think one reason software people don't typically mess around with engines is that the fields typically reflect different geo-cultural environments.
To be exposed to machinery with an opportunity to modify it typically requires environments dependent on machinery and with a need to fix it, such as on farms and in some rural areas. Car hobbyists are another field, and they also typically are associated with outer urban areas where there's a lot of space.
By comparison, software typically requires a lot of close access to modern computers, associated information and generally peer groups with similar interests. This will generally be found in middle class, relatively wealthy urban environments, which are the opposite of machine-rich environments.
Cross-overs can occur where rural students move to urban areas and enter occupations or courses involving extensive computer work.
I grew up on a farm and I used to pull morobikes and pumps to pieces before I could legally drive. Friends of mine could pull $100,000 tractors to pieces using heavy lifting equipment, and perform fixes that would otherwise require professional expertise. Interestingly, in social surveys, those friends would nowadays show up as high school dropouts, because they left school to work on their farms.
I'm a software engineer now, and I just don't have time to fiddle with machinery. |
| Sun 15 Jun | X. J. Scott | Well I'll thank Ferguson since he's the one who invented and patented it. And speaking of him, please wish my 8N a happy birthday. It's her 50th birthday.
Speaking of radical innovations? How about the moldboard plow? brought to us by our very own Th. Jefferson, farmer, inventor and founder of the University of Virginia. |
| Sun 15 Jun | Dave B. | >> 'Ferguson since he's the one who invented and patented it'
True, but without the 'hand-shake' agreement, I don't think Ferguson would have been successful marketing the 9N. I would have to look it up, but I believe Ferguson ventures out on his own over a dispute with Ford.
You have an 8N! Is it original? I'm restoring a Farmall A - ATM and we still use a Farmall M for odd jobs on the farm (This one has a hand clutch). I also attend a lot of Steam Engine shows. Reminds me of all the work I did as a kid. |
| Sun 15 Jun | Dave B. | >> 'I grew up on a farm and I used to pull morobikes and pumps to pieces before I could legally drive.'
I hear ya.
>> 'Friends of mine could pull $100,000 tractors to pieces using heavy lifting equipment, and perform fixes that would otherwise require professional expertise.'
We did the same thing.
>> 'Interestingly, in social surveys, those friends would nowadays show up as high school dropouts, because they left school to work on their farms.'
In my graduating class, I don't believe anyone dropped out, but then again we weren't encouraged to pursue a career in agriculture. |
|
| Hosting a tech support news server? | Fri 13 Jun | Mitch & Murray (from downtown) |
| Subject line says it all. Recently there was a thread on news server peering, my question is a bit different.
Mitch & Murray rent space on a Verio hosted virtual server. Although there are various web enabled forum packages available that will run on that configuration, I have always preferred a real Usenet style newsgroup for technical support purposes. It is time for M&M to run one of those.
Questions:
(1) How is this done? How do we do the news.mitchmurray.com IP address and news server config?
(2) Does anyone know of a virtual server hosting company that will allow us to do this (Verio wont)? If not, are there companies out there that specifically host these things for a fee?
(3) Is there someone who can talk me out of this and convince me that running a web-based support forum is the way to go? Frankly, other than the Fog Creek implementation, I think they are slow and butt ugly.
Thanks from all of us downtown ...
- Mitch & Murray |
| Fri 13 Jun | Anymouse | I think it depends on your target audience. Are they techies who know how and will take the time to subscribe to your news group or are they common folk who just want a simple way of asking a question. Personally I don't like newsgroups, and prefer forum style question/answer, it is much simpler.
Just my $0.02.
You think I'm joking. I'm not. |
| Fri 13 Jun | Anymouse | By the way, you guys from the Midwest by chance? |
| Fri 13 Jun | Philo | DataDynamics' news server is one of the top reasons I've seen that people like the company. I think it's a great idea.
You know, you might try dropping their tech staff a line to ask about it - couldn't hurt.
Philo |
| Fri 13 Jun | Bored Bystander | I started the thread about peering. I've also thought of setting up a news server too.
There is a newsgroup called news.software.nntp, and this thread discusses private news server installation under NT:
http://groups.google.com/groups?hl=en&lr=lang_en&ie=UTF-8&oe=UTF-8&threadm=3482A2AD.84278B5A%40sprynet.com&rnum=1&prev=/groups%3Fhl%3Den%26lr%3Dlang_en%26ie%3DUTF-8%26oe%3DUTF-8%26q%3DINS%26btnG%3DGoogle%2BSearch%26meta%3Dgroup%253Dnews.software.nntp
Of course, The *nix world invented news servers and it has a ton of packages out there.
As far as the technicalities: subdomains are simply added to your internet server's DNS server entries - I know nothing about this process, just that whomever maintains your DNS entries for you must add things like 'mail.mitchnmurry.com', so that is the same level that would resolve 'news.whatever'. IE, the same process that makes www.somedomain.com the same as somedomain.com. In practice many sites (and most smaller sites) have all of these subdomain aliases pointing at the same IP address.
If you are indeed renting a virtual *root* host, I'd find it strange that Verio won't allow you to run such a low bandwidth service. I have a virtual Linux root host and my provider doesn't care what I run on it, as long as I'm not vandalizing things... |
| Fri 13 Jun | Bored Bystander | One other thought - just to answer your original question succinctly - news is just another program, like Apache, nothing magic about it. Has its own ports, and wants its own IP address (even if shared with other services.)
And, yet another thing - I tried a while back to find a commercial provider of 'private' news servers with no feeds in or outbound, just a private little news sandbox. NOBODY SEEMS TO DO THIS, ANYWHERE. So you're stuck with hosting your own. |
| Fri 13 Jun | mb | There's a mail-to-news gateway which might be able to do what you want, I don't remember quite what it said about private groups and the site's down right now.
www.gmane.org
Note that you will need your own IP address if you really want a newsgroup.
Do you really think your customers want this? Might be better off with a news interface, web interface, mail interface if you really want news. |
| Fri 13 Jun | JWA | Hi M&M,
I personally prefer a message board, or maybe a news server with web-based access like the MSDN boards.
Now that I'm using ActiveReports in a number of projects I had to go and set up Outlook Express just to access it. For any kind of customer service operation you want the barriers to be as close to zero as possible. Since maybe 99.9% of your customers have a web browser, and are likely going to your site to look for this support, it makes sense to just give them a link that they can go to immediately without requiring the 70% who dont have a newsreader setup to set things up, and then all of them to have to switch applications just to begin finding their answer.
With that said, I have found that using DD's support news server works pretty well. It is cleaner than most message board implementations, but then again FogCreek's system of a well-implemented board works well too (Other than the lack of an ability to flag topics of interest in an easy to find manner).
-- Josh |
| Fri 13 Jun | Tom | Can you not supply both, and gateway between them? I think for a forum like this one you could do it quite effectively; you'd have a problem with threading, if it were just like this board, but that's pretty obvious.
Really, though, it depends what you're selling. (What _are_ you selling?) My thoughts on this would be these, and they're pretty simple but there you go:
If it's a shrinkwrap type affair, web board will probably be fine.
If there are subtleties involved in its use (it's a programming library, or programming system, or something mega complex like Excel), a newsgroup would _definitely_ be useful (I'd say better, but of course there's the issue of the barrier to entry) so that real regular users have a forum that's convenient to use on a regular basis. I assume you want to keep these users sweet because they'll be recommending your product to friends and will doubtless help questioners for free.
If doing both news and web forum, I would set aside a group for news-style users _only_ -- this group will probably be slightly different from your 'average' poster to the web board, and will possibly want a slightly more 'newsgroup' feel. (But without the slightly cliquey nature of many usenet groups, I should add!)
I'm presupposing you don't mind your customers giving each other support of course! |
| Sat 14 Jun | www.marktaw.com | There are plugins to some of the popular forum packages that let them read & post to newsgroups. |
| Sat 14 Jun | Stephen Jones | If the purpose of the forum is technical troubleshooting then go to the ZDNet forums and set up a message forum as close to theirs as you can.
You want the right tool for the right job and the limitations of the ZDnet way (one post only at a time) are perfect for answering specific questions, keeping things on topic, and allowing people to see who's posted what. |
| Sun 15 Jun | Geoff Bennett | It sounds like your renting space on a drive, not a server, so this is going to be a problem. They're not going to let you install some software on their servers. Your best bet is probably hosting your own server of a broad band line. It's bit of work, as you've got to learn how to secure it and admin it etc, but it's not hard once you get it set up.
I'm guessing your not after crazy download bandwidth as Fog Creek are (distributing shareware over the internet), so a small BB link should be fine. You can probably get one of Verio. Then all you need is a static IP.
You can be cheap and just run one IP instead of a range. Verio should be happy to keep your DNS records for you, so you don't need an extra IP for that. You can then use NAT to route ports to specific servers on the inside, or be even cheaper and just throw the lot (web, mail and news) on the one box.
I've done these configurations a few times (all ways: multi-IP and NAT'ed) and never had any real trouble. Obviously, there's a speed difference between multi-IP and NAT'ing, but is shouldn't be an issue for you. |
| Sun 15 Jun | Bored Bystander | One counterpoint to the idea of running an NNTP based news server: usenet use is a 'geek thing.' I know of several private news servers. All are run for product support of programming libraries.
In fact, the only advantage I can see to running a news server is that it IS esoteric. Maybe that's a desired quality here.
But most non technical end users will be completely lost with a Usenet interface. Also, you have the issue of your company's content being saved on someone else's hard drive as a built in behavior of offline readers. Perhaps you would not want every message to be saved offline in other's hands, I don't know. (Yes, in most browsers you can Ctrl-S and save the HTML. But it has to be done per page, generally.)
A web based bulletin board is the current universal solution to these issues. No seldom used client software to config and everyone can figure it out. |
| Sun 15 Jun | Christopher Wells | > No seldom used client software to config
I notice that if you put an URL like news://news.foo.com/foo.public.foo-support on a Web page and someone clicks on it or enters it into IE, then Outlook Express will pop, connect to the newsserver, add an entry to the newsgroup, display existing threads... |
| Sun 15 Jun | www.marktaw.com | I've never had anything like that happen to me. Ever. |
| Sun 15 Jun | Chris Ormerod | If you just want a newsgroup that **looks** like a newsreader then http://foxweb.eontech.com/forum/default.fwx might help you out. |
|
| For those who have been fired from a job ... | Fri 13 Jun | programmer |
| This topic was brought to mind by the thread on refusing to do something your boss asks you to do.
Im just curious -- if you have been fired from a job, how did you get back on your feet? How did you explain to your new employer the circumstances of your departure from your previous job?
Did you lie? |
| Fri 13 Jun | Alex | It might be nice to have a friend 'check your references' to know just what your ex-company is saying about you. Is it only 'X worked for us from jan 2000 to june 2003' or do they start ranting on and on about how you were fired and so on? Are they forthcoming with the reason why you left and so on? This helps determine how you approach the situation in an interview. The rest is just putting a spin on it. Just make sure you slam them as little as possible and don't name anyone, that's bad taste.
If they're really slamming you hard, then you have to figure out what to do... Sometimes you can name someone that's more sympathetic to you as a reference... I know I've do so in some cases when the parting was not an happy thing. |
| Fri 13 Jun | Henry Ford II | Never explain, never complain. |
| Fri 13 Jun | Philo | a) Camel is the first job I've been actually fired from. All I've been saying is 'that contract ended.' :-)
b) I don't always give managers as references - when the parting is on bad terms then I'll give coworkers as references. I've got a mix in the bag o' references.
Philo |
| Fri 13 Jun | www.marktaw.com | I was downsized out. It was in the newspapers. One of my friend was fired for no good reason (her previous performance appraisal is glowing) and she's filing a wrongful termination suite.
Now you see the power of the performance appraisal in action - just give a negative one before you fire someone and they won't sue your ass. |
| Fri 13 Jun | Philo | Uh, how does she figure she can sue? Companies can fire people any time they want for any reason (except discrimination)
If she tried to quit the job, how would she feel about being sued for wrongful resignation? ('What's the problem? You cashed your last pay check')
Philo |
| Fri 13 Jun | www.marktaw.com | 'Companies can fire people any time they want for any reason'
I think there are laws against this kind of thing, but most make you sign some sort of contract stating what you just said. I really don't know. |
| Fri 13 Jun | BigRoy | 1 - Follow Alex's advice. If you find out rant about your performance, contact the HR person and talk to them about the information they are passing. Most large companies will only give 'Employee for 1/5/95 to 6/13/2003, as a programmer.' The reason is they have been sued too often to give an form of opinion. Termination without a criminal conviction is always someone's opinion. Opinions lead to legal hassles in the US.
2 - Network with clergy, doctors, professionals, anyone with a title of authority. Work with your Chamber of Commerce, or a major charity. A letter of reference from the local bank president will carry more weight than your team leader at your last job.
3 - In most cases, firms will not contact the most recent employer fearing they may get you fired if you still work there.
4 - Your CV or Resume are sales documents, not legal ones. Use them to expound on your virtures. Try to be ambiguous 'Bob's Programming house: 1/5/95 to present' You never want to lie, but how many people put 'and my last boss was a jerk' on their's even when he was? |
| Fri 13 Jun | BigRoy | And now for the corrected version of my previous post's first paragraph...
- Follow Alex's advice. If you find they rant about your performance, contact the HR person and talk to them about the information they are passing. Most large companies will only give 'Employee for 1/5/95 to 6/13/2003, as a programmer.' The reason is they have been sued too often to give any opinion. Termination without a criminal conviction is always someone's opinion. Opinions lead to legal hassles in the US if given where they may impact you financially. |
| Fri 13 Jun | Philo | Mark, every state is different and I'm in Virginia, but as far as I know unless the contract states to the contrary, employment is always completely severable. A company can say 'this just isn't working for us' and you're gone. Think about layoffs - people fired simply to improve profitability.
The documents companies get employees to sign are to make absolutely sure everyone is clear on the situation, but they don't create the right.
And seriously, think about it - what kind of equitable construct says the employee can leave at any time but the company can't fire you at any time?
Philo |
| Fri 13 Jun | www.marktaw.com | > what kind of equitable construct says the employee can leave at any time but the company can't fire you at any time? <
One designed to protect the employees? Did you know that it's illegal for certain city workers to strike because they provide basic services? |
| Fri 13 Jun | Sgt. Sausage | For MarkTAW:
It's called 'at will' employment, and although varied from state to state -- most states here in the US has 'at will' employment. With some variation in each state, it basically means that :
(a) You, the employee, are free to leave at any time for any reason.
(b) Conversely, the employer is free to let you go at any time -- without giving a reason. They can let you go for any reason they want, or no reason at all (within the guidelines of not being fired for any of the 'protected' statuses -- Age, race, sex, religion (or lack thereof)).
On the other hand, if there's an actual Employment Contract, or some version thereof, then whatever's outlined in the contract will take precedence over the above discussion -- subject, of course, to interpretation by a judge or jury in the US civil courts if you and the employer don't agree on the interpretation of the Contract.
In the absence of a Contract, in most states the 'at will' laws take effect.
I tend to agree with 'at will' -- it's fair to both parties. I caution those who argue against it to consider it as equitable to both parties. If you get rid of the ability for an employee to fire you 'at will', then you, as employee, should *not* be able to simply quit (resign, whatever) whenever you like. It's got to be fair to *both* parties in the transaction. |
| Fri 13 Jun | www.marktaw.com | Sgt. Thanks for the clarification. I think she's going to talk to a lawyer about it... I'll update here. |
| Fri 13 Jun | Bill | I know in my state you can be fired at will, the only issue is if you are entitled to unemployment insurance. If you are fired for violating some policy, the company may not have to pay you unemployment. I was involved once with someone being fired for sleeping on the job, and he didn't get anything.
I've also been layed off from companies that have gone out of bussiness and had to sue them because they didn't pay off vacation time, which is something you have earned and are owed. |
| Fri 13 Jun | BR | People do actually have certain rights with regards to employment. Those rights persist even though an employment contract might seem to override them, and even though you might have signed it.
Almost all contracts with recruiters contain several clauses that are not enforceable, and which the recruiter knows not to be enforceable.
On the subject of employers providing damning references, they can be sued for this. They can also be sued for wrongful termination if there were not valid reasons for the termination.
As to how to refer to being sacked, the answer is not to worry about it. Lots of people get sacked, for a variety of reasons not necessarily related to their performance. Hiring managers understand this.
It's best to describe your departure as a move and to deliberately put a good spin on it. It's just basic diplomacy. If you're too direct about the reason, it's like you're saying you're no good, and no-one wants to hire someone who's telling them they're no good. People who believe in themselves will put a good spin on it. |
| Fri 13 Jun | njkayaker |
While I'm not arguing changing the 'at will' stuff, I think that the employment 'arrangement' tends to favor the employer not the employee.
Let's take the following example: a long-term (e.g. 20 years) employee (not top management, not a 'key' employee) is laid-off from a large employer.
The disruption to the employee is likely huge (finacially, career-progress, ability to find a job, etc). The disruption to the employer is typically very small.
The employer will tend to create processes that make an employee a fungible commodity.
On the other hand, it's much harder for an employee to replace an employer. |
| Fri 13 Jun | Colin Evans | California has 'at will' employment as well, but the distinction that I've usually heard is 'laid off' vs. 'fired for cause'. Being fired for cause means that you get denied COBRA, unemployment benefits, and any out-the-door benefits (severance, paid time off) that were promised in your contract. It is legally sticky to fire someone for cause, so it only generally happens when you get caught photocopying your butt or something comparable. |
| Fri 13 Jun | Philo | Okay, I'm arguing basic principles, not law here-
You're an entrepreneur. It's time to hire your first two employees. One is a superstar, the other just gets by. You realize after a while that you could really run the company between you and Superstar, and that the guy who just gets by in general makes more work.
He doesn't do anything *wrong* - he's there from 9-5, obeys all the company rules, completes every assignment, etc, etc, etc. But his demeanor is annoying (he's a jock and you guys are geeks, or he's a trekkie to the nth degree and you're not, etc), and his coding, while passable, isn't where you need it to be for what you're doing.
Those of you who feel that companies need to have a reason to fire people - do you *really* want a situation where you cannot get rid of JustGetsBy guy? What 'cause' do you have to fire him? He's never late (Superstar often is), he keeps his workplace tidy (Superstar doesn't), he generally completes assigned tasks on time (Superstar is occasionally late on his, but then you're assigning different levels of tasking)...
Shouldn't you be able to let JustGetsBy go simply because he doesn't fit in the organization?
Also, don't forget - if you make it harder to fire someone, you're going to make it MUCH harder to hire people, since it's a much bigger commitment. You're going to be talking about coding exams, personality tests, hours of interviews, trial periods with no benefits, etc, etc, etc.
And for the person who said 'Hey, when a person gets fired it's the end of their world while the company just goes on' - that can work both ways. The person who is fired can get another job and not care - income is income. But what if the project manager quits two weeks before deployment? That could actually kill a company. So the risks work both ways.
Philo |
| Fri 13 Jun | | If you think the risk an employer faces is the same as what an employee faces, you are indeed working for some very small companies.
I work for a $2M start up where I'm 1/3 of the development staff. If I left it'd hurt.
But you know what? I know I'm still replaceable. I've seen it too often in my limited 10 years.
A decent sized development shop though? Fuggetaboutit. The VP can leave & they'll keep on going. |
| Fri 13 Jun | T. Norman | The trouble is that while an employer provides 100% (or close to 100%) of an employee's income, you the employee provide only 1% or less of the employer's income (for a mid- to large-sized company). So it much easier for them to tolerate your departure than for you to tolerate a job loss.
'At will employment' is a law bought by large corporations. They get to eject you when they feel like it, while if you leave without notice they'll find ways to smear your career or reputation. |
| Fri 13 Jun | Philo | 'while if you leave without notice they'll find ways to smear your career or reputation.'
Does anyone know of a situation where this happened?
Philo |
| Fri 13 Jun | Bored Bystander | Philo:
Companies generally have to develop a culture that won't repel the kind of people that they need to hire on.
I hear what you're saying about JustGetsBy, but, most of what you're describing are subjective criteria, which REALLY grates on me when we're talking about playing tiddlywinks with someone's ego and livelihood. Yes, in at-will employment you can both in principle and legally fire or release someone just because they have orange hair. However, my observation is that companies that treat their employees capriciously as you're attempting to justify usually aren't desirable places to work. What you're describing almost sounds like JustGetsBy isn't in the same clique as the owner and his star employee, so he ought to be considered for termination.
And, devil's advocate wise - were you not yourself terminated recently w/o cause from the 'Camel' contract position because they just didn't like you, regardless of the work you actually performed? How did that feel?
The biggest pricks I've worked for (both FT and contract) readily and eagerly ejected people at various times due to trivial differences of personality and culture.
Besides, when companies take the easy way out and fire people for little cause instead of working on the problems in the relationship, they are weakening their ability to embrace the kind of diversity that real companies need badly. Some companies and many owners (of two bit sh*tholes) become addicted to the 'fire!' word like crack cocaine.
I think it's much more constructive for employment to proceed on the basis of objective mutual needs and desires. It's also a useful exercize in simply learning how to deal with people as individuals. Most of the stuff you've summarized could and should be recouched as objective employer needs or 'demands' in the context of 'employee development', and should be gotten out of the context of 'he's not cool'. (Except for annoying behavior, that should be quantified and and critiqued in the same vein.)
If the guy doesn't 'develop' in a set time, OK, fire him. But at least give the person a chance to perform against objective criteria. |
| Fri 13 Jun | Philo | Actually, I was fired from Camel for cause - not working 40 hour weeks. I was stupid to give them the excuse.
However, I will be the first to say that if management felt I was hurting the project, I should go. Sure, maybe managment's misguided, but that's up to *their* management to fix.
I would say that in the realm of wrongful termination I would probably have a case - almost definitely enough to get a settlement out of them. ('You let him go on travel then fired him for it? Come again?'). Would I sue? Hell no - they can run their project any way they like.
I wouldn't sue if they simply said 'Philo, this isn't working out for us. There's the door. Take care'
BTW, anyone taken a stab at defining 'for cause'? ;-)
Philo |
| Sat 14 Jun | John McQuilling | Philo,
Regarding the lady with the good review that got fired. She may be claiming discrimination of some type. She was doing fine and got fired and others did not. If an employer cannot give a reason for firing her, they leave themself open to a discrimination charge.
It may not be fair but the burden is on the employer to show that they don't discriminate. Many companies therefore have policies about documenting problems and warning the employees before they can be fired.
It is also the case the many companies will settle rather than go to trial to avoid the cost of litigation and the bad publicity. |
| Sat 14 Jun | Stephen Jones | Philo, in my experience companies that fire people end up finding it incredibly difficult to hire. People just don't want to risk it, or simply don't want to work there.
I've been fired from so many jobs I've given up counting. I worked for a school in Kuwait that lost 90% of its staff every year, either through not renewing the contracts or having the staff refuse to renew. This went on for five years until the owners realized that maybe the problem was with the headmistress doing the firing and got rid of her.
I once lasted three hours as Director of Studies of a Language School in Madrid. I started work on a Saturday morning (which in itself annoyed me no end) and was fired because the owner saw me reading the newspaper instead of working at eleven in the morning. I told him he hadn't given me anything to do and he told me he hadn't hired me to do what I was told but to fuse my initiative. As the language school had no books, no furniture, no staff and no students I reckoned that was a little difficult but I told him I was using my initiative; I was looking through the classifieds for another job.
Then there was the brick factory that got through all of its staff every four months. I was on college vacation and some Moroccan mates who owed us a favour were working there and got us hired. The first day they put me with them to make stack the bricks to put in the oven; they weren't the best of teachers nor the most concscientious of employees and the stacks just got by. As luck would have it they transferred me to the other end of the oven the next day and my job was to unload the very bricks we'd stacked the day before. We had micro-managers who decided to show us how to do it, and I believe they were still alive when they lifted the pile of bricks of them, but wasn't around to find out. |
Sat 14 Jun | Albert D. Kallal | Some good comments here. As a consultant one of the really neat things is the number of different companies I get to work for. That means I get to see a lot of different management styles.
In reading the above the following stood out:
The biggest pricks I've worked for (both FT and contract) readily and eagerly ejected people at various times due to trivial differences of personality and culture.
Besides, when companies take the easy way out and fire people for little cause instead of working on the problems in the relationship, they are weakening their ability to embrace the kind of diversity that real companies need badly
Yes, the real end result is the the compnay suffers.
I have seen some of the companies I consult for let go some extremely talented and well liked employees for reasons of “trivial” personality clashes. It is amazing how often people are let go simply because of a small clash over some small event, or issue.
What was sad is that the manger who was obviously looking for a reason to get rid of this good employee had to justify the firing to higher ups. In fact, the manager had to look for reasons to justify the letting go of the employee to anyone around, otherwise it would not look good at all. (you don’t have to justify getting rid of a rotten employee....that is easy!). Of course, one has to ask why did the manger hire the employee in the first place? Why did the manager make such a mistake? Why did the company fail this employee?
What really was sad is this manager simply started taking work away from the employee. Then turned around and started telling everyone that the person was let go due to lack of work performance! Yea, right! It is also interesting that as a consultant, I am probably the only person that realized that work was being taken away from that employee. Often, it is seems that as a outside consultant, I have a much better picture of what is going on. Of course, I also don’t fall for lame excuses from managers trying to look good either. It is hard to pull the wool over my eyes.
The problem here is that two things happened here. First, a good talented person was rubbed out of the company. The result is a very bad experience for that employee who really did nothing wrong. I really did feel bad to see that employee go (very well liked). Further, it does mean that the company will have a harder and harder time keeping really good people. No one I know would work for a company that gets rid of good people like that. At least I will not! No doubt the next employee hired will not know what happened.
The instant a company becomes a place where people really don’t want to be there is the instant the company starts down the road of decline. I guess I have real high standards in this regards. I simply will never work for anyone who is not in the pursuit of excellence. Any organization that does not create an environment to let the best people excel is not worth working for. Any company that is not highly motivated is one I would never become an employee of. The instant a company start to function on issues of pride and pettiness, that is the time to move on.
I willing to bet that from now on that this manger will not hire talented people. When employees are more dumb, you can push them around more! Also, talented people are a threat to the manager. (the manager is a real control freak).
For most people the work environment is the number one thing in their lives. In looking at my past memories of work enjoyment, the best memories are always when I have worked with VERY talented people. They simply are joy to work with. Bright people tend to be more fun, and also tend to have a great sense of humor. Motivation is not needed with talented people and once the flight towards excellence grabs hold the work environment becomes pure magic and enjoyment.
In today’s competitive business world, the ONLY companies that will succeed are the ones that have figured out how to get good people, and make them happy.
There is no other formula for success here.
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Sat 14 Jun | Bored Bystander | Albert:
Unfortunately, most companies today are run like a 'Survivor' series - a sick combination of popularity contest, backstabbing free for all, and ejection of the least politically adept. It happened to me in 1991, and I see it's really caught on. :-(
I think it's what happens when the overall business and cultural environment becomes polluted by too much desperation and short term thinking.
>> In today’s competitive business world, the ONLY companies that will succeed are the ones that have figured out how to get good people, and make them happy.
True, but short term 'relief' and fingerpointing are the only actions allowed anymore in most places. Enlightenment like this has gotta come from the top. If the owners think it's 'neat' to see people under them backbite and blame each other, justifying it as local Darwinism intended to increase the overall quality of the staff, there's little for an individual to do but get the hell out of Dodge... |
| Sun 15 Jun | Simon Lucy | There are civilised countries however, where employees do have rights. |
| Sun 15 Jun | Taffy | Stephen Jones wrote
>I told him he hadn't given me anything to do and he told me he hadn't hired me to do what I was told but to fuse my initiative.
I fused my initiative years ago.
It interesting to read about all about the poor workers who have been unfairly treated. Well, I was a poor worker and I was well treated. When I say poor worker I mean I wasn't much good at my job. At one of my appraisals I was told that I should have been sacked years ago. I could only agree. Despite this I managed to get to retirement age before they could sack me. I worked for a big firm in the UK. In the States I wouldn't have lasted 10 minutes. |
| Sun 15 Jun | Stephen Jones | The fact that you were a 'poor worker' and still managed to last till retirement, actually proves the point people are making.
That often, being fired is quite arbitrary. I also suspect you're idolizing the States when you say you wouldn't have lasted ten minutes. This forum regularly hears about 'Betsy's' who have not done any useful work in their company for the last fifteen years, and appear untouchable. |
| Sun 15 Jun | Philo | Simon - I know some people who work in such a 'civilized' country (UK). They cannot STAND that some of the incompetent people they work with can't be fired. They also know the things they can do to take advantage of the company, and some of them abuse them frequently.
These things all cost the company money. Cost the company enough money and the company has to lay off workers, or even goes bankrupt. Then people who are good, hard-working employees are out of business. That's fair? That's preferable?
Philo |
| Sun 15 Jun | Stephen Jones | It's easy enough to lay someone off in the UK. You can do it within the first two years with no cost at all.
After that, if you can't prove dismissal was justified you'll be paying compensation, though not normally a great deal, and you can cut down on what you pay by negotiating a deal before it goes to the tribunals.
However the case in my experience is that the people everybody complains they can't sack are perfectly competent; it's just a question that their face doesn't fit. |
| Sun 15 Jun | www.marktaw.com | 'No doubt the next employee hired will not know what happened.'
I can't imagine how they would know, unless they're told by the other employees. I've been in an environment where I couldn't imagine how a new employee wouldn't know. You're right that consultants can look at a project (a) more objectively, and (b) with more perspective than an employee. I still regret not taking one of the consultants out for drinks on his last day, I really wanted to get the scoop on his view of the project.
'The instant a company becomes a place where people really don’t want to be there is the instant the company starts down the road of decline.'
Unless it's a Fortune 500 company, in which case it'll chug by no matter how many divisions are disagreeable. It's the smaller companies that have to worry about the effect of miserable employees. And in this economy, employees really are completely dispensible. |
|
| Synchronicity? | Fri 13 Jun | S. Tanna |
| The other night I had a very vivid dream about swimming cockroaches. When I awoke, I had this phrase still buzzing around in my mind, couldnt get rid of it. When I went to the computer, slashdot had a story about swimming cockroaches.
I have often experienced this type of phenomenon, including with coding stuff. |
| Fri 13 Jun | Stephen Jones | It's called coincidence |
| Fri 13 Jun | !!b | Yea, I sometimes dream about my code. I see it listed on sheets of paper and my mind is manually stepping through it. Then all of a sudden it hits me. The solution to a problem I was having. All I have to do then is remember it and write it down. |
| Fri 13 Jun | Patrik | I have had that experience too, solving coding problems while you sleep. It was way back when, when I first learned about linked lists. |
| Fri 13 Jun | Steve Jones (UK) | Sounds like messages from The Architect. |
| Fri 13 Jun | S. Tanna | It could just be coincidence
But in idea that intrigues me is that because something has happened before, it is more likely to happen again.
Imagine a universe with no physical laws at all initially. All events are by chance. Two particles happen to move toward each other by chance (or move apart at a decreasing rate). By chance, this happens between lots of pairs of particles, more often than say 2 particles fly apart for no good reason. The 'attraction' behavior is self-reinforcing in a kind of feedback loop (it happened before so is more likely to happen again, then on next iteration it is even more likely to happen again). Eventually we get gravity and other physical laws.
15 billion years later, I have a dream (thought) about swimming cockroaches (and more particularly about the phrase 'swimming cockroaches') -- which makes it more likely somebody with similar sorts of interests to me starts to think about this phrase in a news post - or more likely vice-versa the news post and people reading/thinking about it, caused the idea to repeat in my head, even though I hadn't seen the story.
Spooky action at a distance - yes - but so has quantum mechanics.
In principle, I don't see why this idea, wouldn't be testable. |
| Fri 13 Jun | Stephen Jones | You're letting Real PC get to you.
So let's give the more likely explanations. Fristly you dream of something every night, five times a night. Now if you dream about swimming cockroaches and slashdot publishes an article on bouncing buffalos, then you will forget about both your dream and the slasdot article. It is only when you come across what you dreamed about the night before that you remember it.
Then there is the likelihood that both you and the slashdot author got on to the idea of swimming cockroaches because you both independently saw the same TV program or read the same artilcle or whatever.
As for dreaming about code that is an entirely diffrerent matter. |
| Fri 13 Jun | John C. | Stephen Jones has nailed it.
Or as someone else once pointed out: In New York City, a one-in-a-million event happens to somebody eight times a day. |
| Fri 13 Jun | The Real PC | S. Tanna,
The theory that the laws of physics evolve was proposed by Sheldrake. If you didn't read his 'A New Science of Life' I recommend it.
Things that are repeated are strengthened, whether it's a person's habit or skill, or the laws of the universe.
Synchronicity was one of Jung's ideas (but was actually around before that). It has to do with the idea that the universe is sort of like a holograph, and each point somehow contains the whole.
Sometimes people read synchronicity into ordinary coincidences. But the more you get onto that wavelength, the more you notice them, and synchronicities happen that could not possibly be explained by chance.
Stephen Jones, you have been reading to much Amazing Randi. |
| Fri 13 Jun | Neil | It's causality, innit.
Like when someone says 'Why are we here?', you answer 'Because if you weren't, you wouldn't be able to ask that question.'
Which is slightly more polite than 'Shut up and stop asking stupid questions.' |
| Fri 13 Jun | Neil | 'Stephen Jones, you have been reading to much Amazing Randi.'
Nope, I think he's been studying science. It's quite a popular and succesful way of describing the world.
For example, I see aeroplanes flying every day. I've never seen a magic carpet flying. Therefore don't think magic carpets fly.
BUT I *am* prepared to be convinced otherwise. Richard Feynmann nailed this important point. |
| Fri 13 Jun | S. Tanna | Synchronicity need not be unscientific - it doesn't need to be inconsistent with 'known' scientific facts, and it is potentially testable.
You can consider the idea (the state I would say I'm nad have been for a long time) without buying into any pseudo-mystical stuff.
Most people consider me (and I consder myself) to be an arch-skeptic on most paranormal type stuff, but I consider synchronicity to be by far the most plausible, and testable, of those 'out there' ideas.
Also to be fair about Sheldrake, he hold a biochemistry phD.
http://www.sheldrake.org/intro/ |
| Fri 13 Jun | Tom |
Like... like, what exactly?! If this kind of thing didn't happen, I might be inclined to agree with the 'cannot be explained by chance' thing, but as they do I think we can safely say the world is working as it always does, which is to say pretty randomly.
Perhaps you are aware of that Paul Simon lyric:
I was walkin' down the street,
when I thought I heard this voice say,
'Say, ain't we walkin' down the same street,
together on the very same day',
Maybe I should stop the next tourist I see and remark upon this, for it is truly a remarkable coincidence that out of the 6,000,000,000 people in the world we should both meet?
The man seems to talk a fair bit of sense, though he's a bit strident for my liking. Still, you cannot argue with his main point -- which seems to be that most people who claim inexplicable talents seem to be strangely reluctant to put them on display for measurement.
One can draw from this one of two conclusions. Firstly, that these talents exist, but that they are so flaky and unreliable as to be effectively useless. Secondly, and this is the view I take, that people claiming to have these talents are without exception charlatans, and that in all likelihood these talents do not exist.
Er... oh, sorry about that! What does all this have to do with software?! |
| Fri 13 Jun | Neil | 'Er... oh, sorry about that! What does all this have to do with software?! '
It's sheer coincidence that my code works at all!
But it sometimes does. Spooky. |
| Fri 13 Jun | S. Tanna | > What does all this have to do with software?!
Perhaps... :-)
Whether a programmer creates code that is solid or bug-ridden is purely by chance, at least the first time he tries. The 2nd, 3rd, 4th... etc. time you get self-reinforcing feedback loop (you're more likely to write a solid/bug-ridden program now, because you tended to write solid/bug-ridden programs before). Hence you end up with good and bad programmers
Soldi/Bug-ridden programming is also affected by what previous programmers have done. If in past programs, bug-ridden predominated, it will predominate more and more in future. Hence we have a world in which nearly old programmers observe that the new programmers are not as skilled as they used to be. |
| Fri 13 Jun | The Real PC | On the subject of synchronicity, I recommend 'The Roots of Coincidence' by Arthur Koestler. |
| Fri 13 Jun | | Does anyone here believe in God? |
| Fri 13 Jun | Chris | It's funny how this question comes up at some point on every forum, no matter what the forum's topic.
Personally, I don't. |
| Fri 13 Jun | GenX'er | Another suburban morning
Grandmother screaming at the wall
We have to shout above the din of our Rice Crispies
We can't hear anything at all
Mother chants her litany of boredom and frustration
But we know all the suicides are fake
Daddy only stares into the distance
There's only so much more that he can take
Many miles away something crawls from the slime
At the bottom of a dark Scottish lake
Another industrial ugly morning
The factory belches filth into the sky
He walks unhindered through the picket lines today
He doesn't think to wonder why
The secretaries pout and preen like cheap tarts on a red light street
But all he ever thinks to do is watch
And every single meeting with his so called superior
Is a humiliating kick in the crotch
Many miles away something crawls to the surface
Of a dark Scottish Loch
Another working day has ended
Only the rush-hour hell to face
Packed like lemmings into shiny metal boxes
Contestants in a suicidal race
Daddy grips the wheel and stares alone into the distance
He knows that something somewhere has to break
He sees the family home now looming in his headlight
The pain upstairs that makes his eyeballs ache
Many miles away there's a shadow on a door
Of a cottage by the shore
Of a dark Scottish lake
More from artist :
Police, The
More from album :
Synchronicity |
| Fri 13 Jun | www.marktaw.com | Damn you all, you're going to push my amazon wishlist above 500.
I'm not crazy about Koestlers writings, he seems to stretch a little too much. A lot of this Sheldrake character's writings seem to be available on his website.
Isn't it obvious that Slashdot simply discovered the back door into your brain. When's the last time you patched? |
| Fri 13 Jun | Plutarck | Well, I just ask the question, 'Why is an extraordinary answer preferable to a mundane, boring answer?'
The simple fact is that ideas like evolving behavior and changing physical laws and conscious existance and syncronicity are really all quite fascinating and interesting; they are intriguing and titillating and fun to talk about.
But that has absolutely nothing to do with truth. In other words, 'How intriguing and interesting a hypothesis is has absolutely no relation to the truth or validity or usefulness of that hypothesis.'
Sometimes the truth is just plain boring, and it can be outright depressing, but that does not make wishful thinking any less logically fallacious. But humans are Rationally Irrational - people choose what irrational, contradictory, mutually exclusive things to believe according to the cost of holding those beliefs.
Believing in faeries and angels and helpful loving dieties, and all sorts of things like that, for most people is economically rational, because there simply isn't much perceived cost. However, one must always be on guard to avoid accepting what one would prefer to be true to as actually true, regardless of proof to the contrary. |
| Fri 13 Jun | The one who should be doing other things | 'I don't believe in god. And He knows it.' |
| Fri 13 Jun | The one who should be doing other things | My position has always been this:
I cannot really know if god exists or not.
No matter what I believe It won't change the truth.
So, therfore, I really don't care. |
| Fri 13 Jun | The Real PC | [one must always be on guard to avoid accepting what one would prefer to be true to as actually true, regardless of proof to the contrary.]
You have been brainwashed if you think Amazing Randi knows the truth. |
| Sat 14 Jun | B# | Lemme guess, home schooled? |
| Sat 14 Jun | Plutarck | 'You have been brainwashed if you think Amazing Randi knows the truth.'
Of course, because anyone who strongly disagrees with you and finds your beliefs illogical must be brainwashed. Yes, stick with that - it's a real winner. |
| Sat 14 Jun | Tom |
I don't think he would disagree with you! (It's kind of the whole point...) |
| Sat 14 Jun | The Real PC | Amazing is a zealot, which is very different from being a skeptic. |
| Sat 14 Jun | Simon Lucy | To paraphrase
Synchronicity happens all the time, that's why we notice it.
Non synchronous things happen all the time that we don't notice.
We notice obvious things, our noticing things doth not the Universe make nor do the things we don't notice not form part of the Universe. |
| Sun 15 Jun | Michael Moser | >Er... oh, sorry about that! What does all this have to do
>with software?!
>
>It's sheer coincidence that my code works at all!
>
>But it sometimes does. Spooky.
>>
>>
>>Whether a programmer creates code that is solid or bug-
>>dden is purely by chance, at least the first time
>>he tries. The 2nd, 3rd, 4th... etc. time you get self-
>>inforcing feedback loop ...
>>Hence you end up with good and bad programmers
>>
How does that explain the scientifically proven phenomenon of code rot?
(programs stop working after you have stopped bothering - it happens ;-)
... is there a ghost in the machine? |
| Sun 15 Jun | S. Tanna | > How does that explain the scientifically proven phenomenon of code rot?
Surely as computers are digital, and retain information perfectly, you would expect, using the normal rules, for finished programs to get no better or worse over time, i.e. quality should be constant if the program content is constant.
However, in one version of a synchronicity driven world, one good program can be influenced by unrelated bad programs (the average), even if the good program doesn't internally change... hence code rot :-) :-) :-) Joking
~~
Seriously though why is it that synchronicity is such an established element of literature (all genres), films, even history. So much so we don't even notice.
For example, we are so used to some chance item/event obtained/established early in the plot, being crucial to the resolution of the film, that we don't all walk out laughing or complaining at the end of the movie, when this happens. And this kind of thing is all over literature too.
In history, people constantly talk about history repeating itself (and variations of). |
| Sun 15 Jun | Simon Lucy | In general, the reason is people are people (and have largely been such for 150,000 years) and the world is still the world.
We have 7 stories (if you like 7 jokes), ants may have 3. Dolphins might have 5.
This makes synchronicity (or noticed coincidence), quite likely. |
| Sun 15 Jun | The Real PC | Synchronicity is hard to prove, since a certain number of meaningful coincidences are going to happen just by chance. But if you ever get into real synchronicity mode, you will see that it's real.
You probably won't experience it, though, if you have the kind of brain that's well-insulated from all that extra-dimensional stuff, and/or if your mind is closed on the subject.
It's true that a non-skeptical believer can find a synchronicity in just about anything. |
| Sun 15 Jun | S. Tanna | I personally wouldn't go beyond the point of it being a possibility
The way to establish if it's more than that is experiment.
Here is an example of a controlled experiment that might work
You have a machine which can randomly toss a coin, or toss it to land on head/tails
If you do this pattern
- Throw heads deliberately a lot of times
- Throw randomly
- Repeat ad infinitum
Over lots of repeatst, the random throws should tend towards more and more heads, predominating.
I don't think this would with a coin even if synchronicity were true, but it shows the idea of the type of experiment. |
| Sun 15 Jun | Stephen Jones | One thing humans are very bad at is calculating probability. They always think things are less likely than they really are. And when there are other non-random factors involved, then plenty of things happen.
I remember reading that novels such as Fielding's 'Joseph Andrews' were highly improbable because of the number of chance encounters among the protagonists. Yet when people are travelling from one place to another there are in fact a very limited number of places where they are going to stop. Backpacking around the Middle East many years ago I found that I was constantly bumping into the same people, and the simple reason was that we were all heading the same way.
One year going to Greece we met a university friend of mine at the Yugoslav-Greek border. What were the odds? Of meeting him fairly slim, but of meeting one of my collection of university acqaintances fairly high; after all well over half of them were hitch-hiking around the world every summer. Now, less likely was it that I should again meet him next summer 150 miles away from the University at a pub that could only hold a couple of hundred. But again there were explanations; we were in the pub because there was a Stephane Grapelli concert, and that particular friend was known to me because he was the secretary of the University Asian Music Society and I was the treasurer; so even though it was jazz, and not Indian Classical Music, shared interests would have made it likely we did attend.
Now meeting the same person two summers purely by chance is higly unlikely; but it was the last time something like this ever happened in two consecutive summers, so multiply it by the oh-so-many summers I have gone through and the number of passable acquaintances I have had and it becomes quite probable. |
| Sun 15 Jun | x | Tanna,
OK, so your experiment is really about morphogenic fields as being the driver of synchronicity. Still, even if that particular one failed it wouldn't disprove anything since who knows if it works on metal objects. Maybe it doesn't work at the collective unconsciousness level, maybe only at the cellular formation level. Or maybe the other way. Or neither. Or both.
At the cellular formation level, I've devised and performed two replicable experiments that prove the existence of morphogenic fields. I'm not the only one to be doing such experiments either, but this is one of those situations where the existing paradigms of mechanism is firmly entrenched among the old school zealots and the realities of the new paradigm are being fought at a war level -- particularly by big biotech firms, for whom this evidence will shut down their for-profit gene distortion business. Realize that if morphogenic fields exist, it doesn't matter how well they isolate their production fields or what way hde wind is blowing, their modified genome will still get out and take over. Then we'll end up in the situation we acre with bananas -- all existing genomes of corn and soybeans will be a sterile production monoculture ready to be wiped out at a moment's notice by any random crop rot. So, prove morphogenic fields exist and Monsanto's cash business goes down for the count since the alternative is mass starvation and death. doing research that threatens Monsanto is like publishing news articles about mafia figures -- those who do so don't have pleasant lives. |
| Sun 15 Jun | www.marktaw.com | // off topic
> Backpacking around the Middle East
Ah, that's why the interest in backpacking.
// end off topic
Aren't human beings programmed to notice recurring events, or synchronous events?
We're trained by years of evolution to notice when two things happen at the same time. Otherwise, on some fundamental level, we wouldn't even put together 'leaves rustle / someone might be rustling them' or that some fruits can be eaten and some can't or even be able to put together language - if someone pointed to a cat and said cat at the same time, if we didn't have the ability to associate the two.
Otherwise, we'd be like the proverbial goldfish that doesn't remember anything prior to 7 seconds ago.
What I want to know is who is the first person to figure out that sex leads to childbirth. The two events aren't obviously related. |
| Sun 15 Jun | Dr. Ruth | 'The two events aren't obviously related.'
Something goes in.
A few days later, nausea and cramps.
A few months later, beginning to show.
Then... something bigger comes out.
I think it's related enough to be figured out. |
| Sun 15 Jun | Stephen Jones | ---'// off topic
> Backpacking around the Middle East
Ah, that's why the interest in backpacking.
// end off topic-'
Eh? |
| Sun 15 Jun | The Real PC | [What I want to know is who is the first person to figure out that sex leads to childbirth. The two events aren't obviously related.]
It was unknown for most of the time humans have been on earth. When they at last figured it out, it led to the idea of breeding animals, an important breakthrough.
Many primitive societies studied by anthropologists in the early 20th century believed pregnancy was caused by the wind, or something like that. |
| Sun 15 Jun | www.marktaw.com | Dr. Ruth - How about this, on the ladder of mammals, how many of them do you think also make that association? Cats? Dogs? Primates? Whales? Dophins?
How many times have you been sick and called one of our friends, and had them say 'Oh yeah, that's been going around' or 'Sounds like food poisoning.' Or how many women do you think start describing morning sickness to one of their friends and their friend says 'Oh my God, you're pregnant?' Are you telling me that doesn't happen? Now remove prior knowledge that sex leads to pregnancy. That would happen all the time.
Today women have sex and if they don't get their period immediately run to the drug store and get a pregnancy test. It's part of our society, part of the collective knowledge.
> Eh?
In an earlier thread I said something about backpacking and you said that what I experienced was very common. |
| Sun 15 Jun | www.marktaw.com | Real PC - Thanks. Not only did you defend my logic, you answered my question. |
| Sun 15 Jun | The Real PC | [the existing paradigms of mechanism is firmly entrenched among the old school zealots]
X,
Yes that's true. It's going to be a struggle but obviously the truth has to win eventually.
It's similar to what happened with the tobacco companies. It's impossible to prevent scientists from getting to the truth, even though it may take decades.
People like Sheldrake, the new physicists, etc., are leading the way. Some of us, for some reason, are able to see through the lies of the zealots.
The so-called 'skeptic' organizations are doing a good job of stalling scientific progress. But truth, evidence and logic always prevail eventually. |
| Sun 15 Jun | www.marktaw.com | 'When they at last figured it out'
As I read this this At Last as sung by Etta James came on my MP3 player... Synchrnoicity? Or did my brain just pick on on two similar events. Or did JOS hack into my mp3 player the same way slashdot hacked into the original poster's sleeping mind. |
| Sun 15 Jun | www.marktaw.com | > I've devised and performed two replicable experiments that prove the existence of morphogenic fields <
So what is the experiment?
> So, prove morphogenic fields exist and Monsanto's cash business goes down for the count since the alternative is mass starvation and death. <
Didn't you just tell me that you did prove it? |
| Sun 15 Jun | The Real PC | You can't prove something by just doing an experiment. Proving also means convincing others, and that depends on publishing in respected journals, which depends on passing the peer review. Maybe just having the phrase 'morphogenetic fields' in your abstract gets you screened out.
This kind of research requires a change in thinking similar to when people finally accepted the earth goes around the sun, or that time is relative. Actually, it's much worse because if morphogenetic fields are proven people will have to consider that there is a collective mind. It opens a door that materialist scientists would like to keep shut. |
| Sun 15 Jun | S. Tanna | All kinds of nutty ideas get published in peer reviewed journals all the time. (Not saying every article is nutty, or that synchronicity is necessary nutty).
Science is not based on proof, but disproof. A scientific theory is one that can be falsified.
The obvious classic example would be Newton's laws of motion. They provide a pretty good explanation of the world, but Einstein developed an alternative theory (which is consistent with 'know' facts) and tests were devised to see whether Newton or Einstein better fit observations. Of course there are numerous other examples too.
The same idea could be done for synchronicity or morphogenic fields. You may have to wait for the current generation of scientists to die off to get it broadly accepted by the scientific community, but it will happen eventually if a reproducable experiment is discovered.
In the case of physics, you probably don't have to wait that long, I suspect that many physicists are looking for new theory (look at all the wacky theories you get these days) - provided of course it fits the known observations and any new ones that might be made. Futhermore a synchronicity theory based on probability might appear reasonable to physicists (assuming experiments) as quantum mechanics also relies heavily on probability
And by the way, I do not accept a collective unconscious is required for synchronicity. A more parsimonious explanation based on probability is more 'scientific' (occam's razor) in the absence of any experiment that requires collective unconscious to make the theory firt the facts. |
| Sun 15 Jun | The Real PC | [All kinds of nutty ideas get published in peer reviewed journals all the time.]
I don't understand your basis for saying that. Of course the peer review process isn't perfect and nutty ideas might get through, even in the conservative journals. But saying all kinds of nutty ideas get published all the time can't be accurate. |
| Sun 15 Jun | The Real PC | [I do not accept a collective unconscious is required for synchronicity]
I said that morphogenetic fields imply the existence of a collective mind. |
| Sun 15 Jun | S. Tanna | > I said that morphogenetic fields imply the existence of a collective mind.
I don't believe that is necessarily true, unless you define 'morphogenetic' to require such.
There could be some kind probability field causing things to self-repeat for any form of matter, or just living matter, that doesn't require any kind of mind, collective or not, behind it. Simply a fact of nature.
Even if it this probability field causes different people's brains to communicate in some way, it no more requires a collective mind, than say talking or reading and writing (other forms of communication). If you were to define 'collective mind' as simply existing because of any form of communication between different brains, then we already know it exists, and the term is essentially meaningless.
I repeat nutty (and not so nutty) ideas get published in peer reviewed journals all the time. Watch the TV news, or read the newspapers, and you can find one (which is the tip of the iceberg), regularly, almost daily. Most of the nutty ones get debunked sooner or later, but this is never as well published. Think hink about some of the odder medical stories - for example.
'peer review' simply means some people read it and approved it before it got published. If the peers are nutty themselves, or believe the experiment is sound, or the article needs to be published, or...a hundred other reasons... article will get included in such a journal. |
|
| Not my problem... | Fri 13 Jun | Astarte |
| This kinda relates to smart and gets things done in my mind but Id like some opinions to balance things.
I manage projects involving different teams, each with a team leader. We use bug tracking software to keep track of bugs found and we make use of formal functional specs. Sometimes a member of one team will come across a bug / oversight in the product / spec which was caused by a developer in another team . The rule is to log in the bug track software and preferrably also to phone / email the other dev and let them know. That dev can make calls about fixing / not fixing yet but at least we have a record.
Recently I have noticed an attitude of Its not in my code and I didnt write it so its not my problem, even where the issue is potentially catastrophic for the project as a whole. When the issue is eventually found by the testers, a dev might say, Yeah, I saw that around 2 months ago.
My feeling is that it is part of a devs professional responsibility not to drop the ball. But I would think that because I am the project manager :) So what do you think? |
| Fri 13 Jun | Stephen Jones | Sounds to me like you've got severe problems and this is only the symptom.
One possibility is that you have one team that is making loads of problems and the other developers are sick of reporting it.
If you want to get people to report things, then the following must happen: the person who reported the bug must be thanked, a significant proportion of the bugs must be fixed, and the person who reported must receive feedback.
Another possiblity is that your developers have found themselves having arguments over whether a bug is a bug, and have decided that reporting merely creates problems. If they are under pressure to meet schedules then this compounds things.
Your call |
| Fri 13 Jun | Kero | Sounds like your process optimizes for not careing about other people's bugs. Maybe you need to reward the bug finders, although then you can have folks writing bugs for the rewards. Maybe you need to penalize the developer that noticed a bug but didn't report it, make them read a long study on how much cheaper it is to fix the bugs in development than in test or something. Or even better, maybe you need to have a heart-to-heart talk with your developers and determine what is going on in their personal lives that makes them not care about bugs at work? Or maybe I need more coffee... |
| Fri 13 Jun | DingBat |
There are only really two things that I consider 'career limiting moves' on my team:
1) Saying 'I don't know'
Now, wait. It's ok not to know the answer to a problem. However, too often those words are delivered with the meaning 'I can't be bothered to figure it out'. Which is basically another way of saying...
2) Saying 'It's not my problem'
There's no such thing as 'not my problem' on our team.
Ok, so you have a problem right now on your team. You won't change it overnight. You can start by gathering the team together and explaining the way you want the team to work. It will take time, but most people will respond to the message. Those that don't.... well, there are lots of unemployed developers out there, right? |
| Fri 13 Jun | | I think Stephen nailed the problem.
First off, in a company with tight resources the person that created the bug should do the fixing -- unless it's simple, they can fix it much more quickly ($) than the finder.
To me, it sounds like one team has grown frustrated with the other team, like maybe their bug reports are always met with resistance.
I worked on a multi-team project once where this happened. The other team would check in code that wouldn't even compile. Code that would compile was buggy as hell. After several months of fighting this behavior we decided we would try to do their work for them. Big mistake, long story short we eventually stopped caring and the project was scrapped several months later.
If we'd had a manager with a spine it could've been avoided. |
| Fri 13 Jun | mackinac | Maybe this is related to the 'smart and gets things done' concept. That is, are you a smart enough manager to figure out how to change the attitude of your developers.
There is some cost to the developer for reporting a bug: time to characterize the bug, time to make the entry to bug tracking, time to notify the other developer. Look at feedback to the developer reporting the problem. Does the overall project function better? Do they get hassled for reporting insignificant bugs? Is there any relation to their long term career prospects? Etc., etc....
SJ point about schedule pressure is significant. Consider the following scenario:
Dev A spends 5% of his time reporting bugs and is 5% over schedule on his own assignments.
Dev B sees the same number of bugs, but ignores them and gets done on time.
Who gets the better performance review? |
| Fri 13 Jun | | hey dingbat.
'not my problem' is really short for 'not my problem to fix'.
it's not your team's place to fix management problems. unless of course you are so grossly incompetent that they need to go over your head.
there's plenty of companies that need good developers, right? |
| Fri 13 Jun | DingBat |
['not my problem' is really short for 'not my problem to fix'.]
Don't be a moron. The guy said one of his developers admitted to spotting the problem two months ago and didn't do anything about it.
What, he couldn't pick up a phone and tell someone?
Writing tight code does not necessarily make you a successful developer. Releasing products that people want to buy makes you a successful developer. You think if a customer buys your product and it's buggy they're not going to blame you because you didn't work on that particular chunk of code? |
| Fri 13 Jun | Astarte | Just to clarify: The person who wrote the bug fixes the bug. Not the person who finds it. But the points raised here are very valuable - I am trying to see things from the teams' perspective, not beat them up for doing the wrong thing. Then I can try to be 'smart and gets things done' to fix it :) |
| Fri 13 Jun | been there, done that | dingbat, please reread the original article. this is a team dynamic issue. how can one team claim ownership over another teams code? you think the problem is bad now, just wait and see what happens then. Resistance will become hostility. |
| Fri 13 Jun | DingBat | [dingbat, please reread the original article. this is a team dynamic issue]
I suggest you do a little re-reading yourself.
The issue is developers not escalating issues that affect an entire project simply because it does not technically fall in an area under their responsibility.
A developer in our team gets only one chance to pull something like that. Sounds harsh but why do we need developers who can't look out for the whole project?
Btw, we practice common code ownership here so in fact the person who found the error could very well be asked to fix it. |
| Fri 13 Jun | Johnny Simmson | You say 'Recently I have noticed an attitude of '. So this attitude didn't exist before? Or are you just now noticing it? If it didn't exist before, I would say that Stephen is right on the money. We've all been on projects where certain people didn't pull their weight. Don't beat the developers that are pulling the dead weight to get them to pull it faster, just get rid of the dead weight. |
| Fri 13 Jun | Beth Linker | Do the teams in question have much interaction other than the bug finding/fixing process? People are more likely to make time to help someone out (by logging a bug, for example) if they value their working relationship with the other person.
If your developers don't perceive another team's developers as part of their group and important to their success, helping that team out will be a lower priority. Getting them together socially, or to work on some sort of small project or team-building exercise might help build better relationships. |
| Fri 13 Jun | one programmer's opinion | '...not beat them up for doing the wrong thing'
Well, if your company has a clearly stated policy on this issue and your developers know about it but are simply ignoring it then you probably need to privately chew a few of them out for not doing the 'right thing'.
If you have the authority, you should call a team meeting and lay down the law on how things are going to work from now on. You don't need to act like a hardass in this meeting -- simply remind your reports that reporting bugs is part of their job responsibilities and failure to do so won't be tolerated anymore. |
| Fri 13 Jun | Must be a manager | Astarte, I think you need to do more 'give the team a talk' or 'get rid of the deadwood,' to quote some of the suggestions so far.
I would recommend quite dramatic changes to make teams more responsible for their own code, as opposed to relying on outsiders to spot the problems. This means rearranging schedules, introducing formal release cycles, and providing slack so developers have time to design their code better first time. |
| Fri 13 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | I had two thoughts that made me wonder if the problem isn't your process instead of your people.
1. Are you using a simple or a complex bug system? Have you considered that perhaps reporting a bug is too much work?
2. Why are you forcing a phone call? It seems like you've got a couple problems with that. First, the finding dev is assigning the bug (that shouldn't be their job), and two, you're putting them into a potentially confrontational situation by forcing them to call the coder, which may exacerbate an already existing situation of arguing bug vs. not bug. |
| Fri 13 Jun | Daniel Shchyokin | The only reason this stuff happens is somehow it is too painfull to report a bug- do you make the team reporting a bug fix it? |
| Fri 13 Jun | Big B | It seems clear to me that the team is just not buying into the process. Adding more process at this time would only make things worse. What you need is for each team member to take responsibility for the project as a whole. Empowering the team members should help get you in that direction. Again, I am going to recommend a book at talks a lot about team dynamics, and how to overcome these types of problems: Dynamics of Software Development
by Jim McCarthy, Denis Gilbert. |
| Fri 13 Jun | Johnny Simmson | You really 'Must be a manager'! Good advice.
Would you rather fix the problem, or announce that the beatings will continue until morale improves...
:) |
| Fri 13 Jun | Dennis Atkins | So Dingbat, Simson and One Programmer all think that the developers who noticed the problem but didn't report it are incompetant morons who should be fired.
Yeah! Keep filing until morale improves!
In this environment, any developer with an ounce of sense will instantly learn a powerful lesson -- in addition to not REPORTING bugs because that is a punishing and fruitless experience, one should NEVER ADMIT to having noticed a bug. So if you see a bug, not only should you not report it, but if it is later found, you should absolutely deny having ever seen it since if you do so admit, you will be fired by the PHB.
Please tell me you guys are not really project managers.
Now some of the other posters had the right idea. It's interesting that the best developers don't feel comfortable reporting bugs for whatever reason. Find out what that reason is and see if you can't come up with a way of fixing the problem in the system.
Or you could just keep firing your best developers, like is being proposed by some serious dumb-asses. |
| Fri 13 Jun | Johnny Simmson | Dennis: You mean Simmson?
I don't think that!!! |
| Fri 13 Jun | Johnny Simmson | I see. When I said get rid of the dead weight you took it as I meant fire the other team. That's the most reasonable interpretation of what I wrote, but it isn't what I meant. My bad. |
| Fri 13 Jun | Matt H. |
These posts reminds me of a frustration I had some time back.
I was getting on a quality kick, reading books about it, talking about it ... I guess I was annoying some folks. Honestly, I wasn't trying to be a jerk, I was just excited about quality, and I guess some people felt that I was putting them down.
So, anyway, a new project comes, and I'm not coding on it, but I have some available bandwidth, so I volenteer to do some QA work.
I log a buncha bugs. This annoys people. They admit that I'm being helpful, but I know I'm annoying them.
By 'Crunch time', after code complete, I offer to do testing again. One of the coders says something to me like:
'Matt, you are in a unique position, because you know C++. Not only can you log bugs, you can go ahead and fix them. In fact, I would ask you to not just log bugs, but to -ALWAYS- try and fix every bug you log.'
He repeats this statement something like four or five times, and he always seemed to to do it in front of witnesses.
Each time I would smile and say something like 'Sure.'
Then, I sit down, find some bugs, and fix them. We work together on a few, and I legimately help ship the product earlier.
The working relationship turned out fine, and everything worked. To this day, I'm not quite sure what he was 'afraid of.'
My best guess is that it's always easier to criticise than to do, and he start cashing the checks I was writing. I -think- I did just thatm and it turned out ok.
Just grist for the mill, |
| Fri 13 Jun | Matt H. | The last para for my last post should read:
'My best guess is that it's always easier to criticise than to do, and he wanted me to either put up or shut up. I -think- I did just that, and it turned out ok.' |
| Fri 13 Jun | Tom Vu | I have seen the 'not my problem' approach alot with developers and employees in general who work only for the weekly paycheck. They have no incentive to do anything beyond what is minimally needed to get paid. I think it's your company culture and hiring practices that is the problem here. |
| Fri 13 Jun | DingBat | [Or you could just keep firing your best developers, like is being proposed by some serious dumb-asses.]
Why does this sound extra-defensive?
How cares if I scare a developer into not admiting they found a bug two months ago but didn't report it? I can't friggin believe this is even a concern. Admitting you saw something TWO #$%#$^%# MONTHS ago but didn't do anything about is totally useless behaviour anyway. Are you seriously suggesting I encourage this?
And who said anything about 'best' developers. If your best developers are ignoring flaws then you have an interesting definition of 'best'. What are your worst developers like?
You must be trolling to write something like that. |
| Fri 13 Jun | anonymous | Intelligent people quickly learn not to continue doing futile things. Your smartest developers will therefore be among the first to stop reporting bugs.
I've been in this situation and regardless of whether you think I'm any good, it was obvious flagging showstopper bugs was pointless. I create work to the best of my abilities, and the company pays me to the best of its. If it doesn't care about bugs, why should I?
'The definition of insanity is doing the same thing over and over and expecting different results.' -- Ben Franklin |
| Fri 13 Jun | Philo | I agree with Dingbat in principle.
The problem with saying 'it's not my problem' isn't that you didn't fix some specific issue - it's the attitude. This is actually the root of a lot of the old management platitudes - 'There's no 'I' in team', etc.
The developers are acting like the only thing they have to care about is their little niche. Management needs to help them understand that their job is releasing the product, they just happen to have specific *tasking* that's on a micro scale. As such, anything that affects the realease is their business.
Let me say it again:
YOUR JOB IS DELIVERING THIS PRODUCT.
It's disturbing that they don't know this, but understandable. They need to be taught differently.
Now Dingbat, I do take issue with chastising 'I don't know' - you actually want to encourage people to tell you when they don't know the answer. But they also need to be encouraged that if they don't know, they will find out the answer. The military answer is that 'I don't know' is unacceptable, it should be 'I'll find out'. But let's be realistic. ;-) 'I don't know' is acceptable, but you'd best find out.
Philo |
| Fri 13 Jun | Daniel Shchyokin | I worked in a company where the support dept couln't get to all the calls, some of them would leave a message, and the bad support engineers would leave the message overnight the manager, a lazy weasel if there ever was one, would then assign the previous nights support calls to whoever took them off of voice mail.
Afcourse this didn't solve the problem, since then people stopped picking up messages from voicemail altogether.
You are the manager , your JOB is to hold people accountable for what they do, and make it as easy as possible for them to do it.
DO YOUR JOB |
| Fri 13 Jun | there you go! | YOUR JOB IS DELIVERING THIS PRODUCT
Then let me fire my lame ass manager that lets the other team get away with knappy sub-par performance.
;) |
| Fri 13 Jun | | Ding Bat, whatever you're managing, I don't think it's serious software development. |
| Fri 13 Jun | Plutarck | Here's my problem with the whole blame-and-punish management philosophy: managers don't exist to supervise fault-less employees who never make mistakes or errors. The job of the manager, when not in charge of perfection, is to improve - which means fixing problems, not trading one problem for another.
The fact is, honesty requires trust, and trust itself requires a feeling and perception of security; 'I can tell you this, because it won't hurt me.' The reality is that there are few people in the world who are ok with saying something simply because it is true, no matter how much it may hurt THEM - not other people (people who are ok with hurting other people are really not THAT hard to find). That's not brutal honesty, that's out-and-out altruism - and chances are, if you are so apt to declare 'if you don't behave in an ideal fashion then you are a worthless moron', they will almost certainly not have such great attachment and like for you that they are willing to do much of anything for you that goes against their interests.
The actions of a manager always sends a message, and the message sent by simply firing anyone who makes an error is one which inspires fear: 'If you are found to have done something wrong you will have no chance to improve; I will not work with you to fix the situation, I will not help you, and I won't be bothered to try to understand, and I am probably impenetrable anyway.' No matter how much you might dislike the results, I can tell you EXACTLY how this will change behavior, and here it is:
- People stop caring. As they are not cared about, such that they will simply be discarded if they are found to be in any way defective, they won't care about other people either - the law of the jungle, not laws of civility.
- People look out for themselves - ONLY. Project failure, other people loosing their job, company failure - makes no difference. Since it's already been proven that they may very well loose their job anyway, they might as well just take what they can get in the short-term and go elsewhere when things go to shit.
- People become secrative. People use temporal proximity to intuitively determine cause and effect; it doesn't matter if someone is being punished for something that happened two months ago, because people will connect the most proximate action - admission of guilt or responsability - to being punished (such as fired). A simple lesson is learned: 'Don't admit to anything, ever - you'll just make it worse for yourself.' Don't confuse action which you don't like with actions which are just stupid; as the manager, it is your responsability to align the interests of the employees and yourself.
- As people become more paranoid and secrative you will simply become increasingly unable to know what the hell is going on, because no one wants you to know, so you are now operating in limbo.
Fear illiminates trust and crushes creativity, inspires secrecy and suppresses creativity. If you are working with manual labor and slaves, this isn't a problem, and is probably preferable. If you aren't, then I would advise you to seek to minimize fear by any means necessary - which means having to expend some effort into understanding how this whole mess got started and why the person/people did what they did in the first place, how you can keep it from happening again without breaking something else, and how you can get everything back on track.
If one cannot understand anything else, then one should be able to understand this: People greatly dislike the idea of them being discarded, even if they did something wrong, and will thus actively and ruthlessly seek to avoid it. So don't be an idiot - don't discard people because they happend to do one thing that you don't like or that causes trouble for you. And if you are perceived to have caused the whole problem in the first place, then people will REALLY hate you and actively attack your interests, because one of the greatest stresses in life is to be blamed and/or punished for something that you weren't responsible for. |
| Sat 14 Jun | Dennis Atkins | Simmson,
OK, that's good.
Anonymous & Plutarck,
I love you both. |
| Sat 14 Jun | Dennis Atkins | Anyway Astarte, here's your solution:
1. Allow anonymous reports to be filed in the bug tracking system. This will enable you to sidestep the issue of whatever psychological or political dynamics are at work here and go straight for the solution.
2. Assign someone (such as yourself) the job of assigning these bug reports to someone else to look into, at which point your bug tracking software should not allow bugs to be closed until they are really resolved.
Also use this as a learning experience to get a better handle on the motivations and psychology of your developers. Don't jump to conclusions about their motivations, create a system where meeting your expectations is a naturally rewarding or at least not punishing experience. |
| Sat 14 Jun | Dennis Atkins | Also... military attitude was brought up. reading PLutarck's post was quite instructive as it lays out the reasons why we were able to wreck havoc in Iraq while sustaining minimum casualties. Iraq had an extremely authoritarian military command structure in which everyone was expected to follow orders without questioning rather than think for themselves.
Organizations that work this way are famously easy to utterly destroy. The rank and file NEVER give a shit and will not put up a fight. So you just walk in and take over.
That's why Microsoft is able to kick the butts of their competitors. Microsoft works with a flat authority structure -- just like the US military -- the little guy at the bottom is given the resources, training, and backup he needs and is able to make decisions him/herself on the battlefield. There's a vague plan 'take over iraq' with some possible specific plans, any one of which can be discarded by anyone at any moment for a better plan.
You go in with this plan and a army of trained and empowered soldiers, and you can wipe out any force that exists, especially the highly organized ones that are too efficient to be mobile.
This goes back to the American Revolution where we Barbarian Yanks would hide in the trees like monkeys and jump at Redcoats from behind. We used that tactic to win. Ghenghis Khan used these tactics as well. |
| Sat 14 Jun | Dennis Atkins | Also i wonder if this isn't why Linux is such a mess -- the little guys aren't empowered. Spend a year on some cool code and it gets vetoed by the Supreme god Linus Torvalds whose final decisions must not be questioned. Your effort is thrown away without a word of thanks. Make a actual mistake and get ridiculed and mocked by your peers. On top of htis you don't get paid and people who didn't wriite tho code make all the money off it. This is a system for making quality software? Or a system for sadists and masochists to get together for exploration of mutual pain synergy? |
| Sat 14 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | 'Also i wonder if this isn't why Linux is such a mess -- the little guys aren't empowered. Spend a year on some cool code and it gets vetoed by the Supreme god Linus Torvalds whose final decisions must not be questioned.'
The Linux kernel is hardly 'a mess', and is the only place where Linus has veto power. It's a good thing he does, too, because an unstable kernel would kill Linux's reputation.
So, beats me what you're talking about here. There's nothing messy about the Linux kernel or the process of verifying code that goes into it. |
| Sat 14 Jun | Norrick | As a guy who has spent most of his career as a lead developer, I consider it totally unacceptable to NOT call attention to an issue with the codebase for an upcoming release. I don't care if it's a different part of the project or a different project entirely. If it's under the banner of the development group, and you find something wrong, you run it up the flagpole. PERIOD.
That said, I also find it totally unacceptable to allow negative repercussions to result from running said issue up the flagpole, or to make it difficult or painful in any way to do so.
You can put all the burden on the developers, but that's how bugs end up not reported. There must be 2 components in place: 1) high expectations of professionalism from the dev team, and 2) a high degree of support from management when someone finds a bug.
Astarte, try making one change to start with: remove the phone call from the bug reporting process. I'm betting you'll find that your reporting rate goes way up. Your issue tracking system should have email notification, and if it doesn't get one that does. |
| Sat 14 Jun | DingBat |
Ah, developers. Always thinking about edge cases, no matter how ridiculous.
A lot of people have put forward all sorts of scenarios where not fixing a defect, or even better, ignoring it totally is justified. Interesting.
Anyway, a serious question: how do you have to define professionalism such that it's ok for you to ignore a problem in your project? I don't care how onerous your defect tracking system is (and I seriously doubt it's all that much trouble) how can you take yourself seriously as a software developer and turn your back on a problem?
To me, this is on the order of a worker on an assembly line allowing a new car to go out the door with faulty brakes because it wasn't his responsibility.
This has really been an eye opening discussion .
Btw, Philo, I don't seriously 'punish' people on the team for saying 'I don't know'. But saying 'I don't know' get's much lower marks at review time than 'I don't know but I have a few ideas about how I can find out'. I only have a problem when 'I don't know' means 'I give up'. |
| Sat 14 Jun | anonymous | Are you calling futile situations 'edge cases', DingBat? If it is not a futile situation, then ignoring defects is unprofessional.
But if you are talking about all situations, futile or not, then please outsource to some other nation. Starving is preferable to working with you, and for all developers in your country, we'd thank you. |
| Sat 14 Jun | anonymous | Hmm, I seem to have some remaining anger about that job... |
| Sat 14 Jun | | DingBat, it sounds like you like to push your shortcomings onto your developers. It's THEIR fault for not controlling the other team. yeah right. I wouldn't work with/for you either |
| Sat 14 Jun | Simon Lucy | As a side issue,
I wouldn't use the Iraqi invasion as an example of superior organisation. It doesn't bear a seconds analysis at that level, decimation of morale had already largely occurred. Overwhelming munitions did the rest. |
| Sat 14 Jun | Punter | Wow, who's glad they don't work for dingbat?
Me, for one. |
| Sat 14 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | 'Wow, who's glad they don't work for dingbat?'
-1.
He didn't say anything I disagree with, so I'd be more inclined to work with Dingbat than I would with you. |
| Sat 14 Jun | | The only problem I have with DingBat is that he gave the impression that he sees no problem with managing through intimidation: 'How cares if I scare a developer into not admiting they found a bug two months ago but didn't report it? '
I'm sure that came out wrong, or I'm sure I took that wrong. I'm sure he himself was talking about an 'edge case'. I'm sure he would rather have happy, productive developers rather than scared, spiteful ones.
If you don't understand the implications of having a satisfied workforce, then you have probably never run a business, or it wasn't as successful as it would've been otherwise. I'm not going into the basics of management here, there's plenty of resources for that. But just let me say that's bad management. Military is a special case.
Now if he's talking about an 'edge case', then sure. Somebody that refuses to do their job needs to be fired. I don't think anybody is disagreeing with that. |
| Sat 14 Jun | but, that's just me. | I would have a hard time working for somebody or hiring somebody that called himself 'the dotnet guy', unless of course he designed a significant part of the architecture. |
| Sat 14 Jun | DingBat | [The only problem I have with DingBat is that he gave the impression that he sees no problem with managing through intimidation: 'How cares if I scare a developer into not admiting they found a bug two months ago but didn't report it? ']
The point I was trying to make about that particular situation was this:
1) The originator of this thread had CLEARLY stated that one developer admitted to having seen a bug TWO MONTHS before it was finally logged and had done nothing about it.
2) Another followup stated that 'punishing' (whatever you take that to mean) this developer simply taught them not to admit they had seen the problem.
3) My response: Why do I care if they admit they had seen the problem? They didn't log the problem, right? What possible benefit does their late admission provide the team? I don't want you to admit you saw a problem two months ago. I want you to log it when you find it. Admitting you saw it and didn't do anything about it is useless.
Clearly there is some confusion concerning my previous posts. Of course you don't rampage around treating developers as boot camp recruits. Mentoring is a part of the entire process. But I think we have the right to expect a certain level of common sense.
I admit I am stunned by the attitude of some of the developers here. To uncover a problem and not to do everything you possibly can to either rectify the situation or make sure it's logged is just indefensible. You cannot be a professional software developer and defend that position.
I find it highly amusing that, when presented with the possibility of 'malpractice' on the part of developers, some of their peers immediately begin a FUD campaign: the defect tracking tool is too cumbersome, their managers are evil, evil, people, etc, etc. I don't care if you have to chisel the defect report on granite tablets in Sanskrit, you do what you have to do for the project to move ahead. To do anything else is unprofessional.
Troll away. |
| Sat 14 Jun | anonymous | Ah, you've hit the point DingBat. It is common sense to report showstoppers. So why is there a systematic tendency for people to act irrationally?
Now, it may be that the drones are just irrational. That is a systematic problem of hiring, but it might require individual solutions of shouting at people. Still, it violates common sense to try applying individual solutions before knowing if there's a simple system solution. The solution might be a simple email reminder.
Why are the teams doing something obviously wrong? Not even the orig poster knows. I hope he/she'll tell us when he finds out. |
| Sat 14 Jun | Dennis Atkins | 'What possible benefit does their late admission provide the team? ... Admitting you saw it and didn't do anything about it is useless.'
Dingbat, I thinik the thing you're missing here that many of the others see clearly that his statement is not at all useless. He is very clearly communicating an important message, one which a competant manager would instantly pick up on, but would go right over the head of a PHB.
Here is how the conversation would play out under a manager who knew how to listen to the concerns of his troops:
'Yeah, I saw that bug two months ago.'
(said out of ear shot of others) 'Oh wow, but it wasn't entered into the bug tracking system.'
'Yeah.'
'So, is there something I should know about the bug tracking system? Something about it that isn't working?'
'Ah, I guess it's OK.'
'But you thought about entering the bug, right?'
'Oh sure.'
'So what made you reconsider?'
'This isn't just an issue with me but with all of us. Let's just say that certain guys here get really pissed off when management uses the bug count to decide who gets a raise. These certain folks tend to see shooting the messenger who reported them to the 'gestapo' to be the best way to unleash their frustration with an unresponsive and largely clueless system.'
'Wow, I'm really glad we had this talk. What do you think of this? If anonymous bug reporting were added AND the system was changed so that bug counts are not trackable or reportable in any wayby the person who caused them, do you think we'd have a better accounting of bugs?'
'I'll personally see to it that word gets out that every bug is to be reported. But look, I'm not shitting you, if this comes back to bite the other guys in the ass, I won't be able to convince them again.'
'I give you my personal assurance that management will have their act together on this issue ASAP. Thanks for your candidness. I promise to keep the details of this conversation just between the two of us.'
'Well, I appreciate it. We hate not being able to report bugs and would love to see the system fixed.'
'It will be.' |
| Sat 14 Jun | Dennis Atkins | On the other hand, if you work with professional robodrones on the planet of the Cyborgs, these issues will nnot trouble you because every robot is a metal man that is thoroughly 'professional', meaning he follows orders precisely and exactly. the robodrones who are unprofessional are just defective and need to be terminated with extreme prejudice. Gosh it must be wonderful working on the planet of the professional robodrones rather than working with flesh and blood humans like the rest of us. Everything must be so neat and tidy and perfect for you. Love the black boots, BTW. |
| Sun 15 Jun | some old geezer | DingBat et al, as manager with a dozen years of experience, including being somewhat of a specialist in turning projects around, I can assure you that there was a reason that that developer didn't report the bug. The possible reasons have been gone over already (intimidated, couldn't reproduce, didn't know the rules, team dynamics, yada yada yada).
A good manager will ferret out the reason, and correct the problem. You see, the problem isn't that the developer didn't report the bug; that is merely a symptom of some other problem.
Now, you could be right. It could be this guy just doesn't give a rat's you-know-what. But that's also a symptom! Once you invest in a guy, and he's been around long enough to know the business, it's a far better course ($) of action to try to correct whatever problem is causing his apathy. Maybe you can't correct his problem. Have you ever had to fire somebody? I have. It's a horrible thing to do. That's why I don't go to any popular places in my town anymore. I can't bear to see the families I've affected.
Oh well, this is probably lost on all of you... I have little faith left in this industry. And even less left in myself... jeez 10:30 on a saturday and I'm browsing discussion groups??? I must be getting old. |
| Sun 15 Jun | DingBat | [Oh well, this is probably lost on all of you... I have little faith left in this industry. And even less left in myself... jeez 10:30 on a saturday and I'm browsing discussion groups??? I must be getting old. ]
Lol.
Okay, it is POSSIBLE that the developer wasn't logging the defect because the tracking system is unwieldy. I tend to doubt this, probably because I've personally never seen a system THAT unwieldy, but I suppose it exists.
On the other hand, doesn't Occam's Razor suggest that the developer is simply displaying 'it's not my problem' tunnel-vision?
Whatever. I agree that there's a problem to be fixed here. Coaching for the offender and possibly tweaking the tracking system. Despite what many here might think, I'm not advocating terminating someone (at least not for first, second, or possibly even third offenses) for this. Too much paperwork. But I would have thought that basic defect tracking discipline would be a pretty standard weapon in any developers arsenal. Maybe I'm wrong.
One thing that concerns me however is the idea that all this process and stuff is just something that happens to developers. Like network outages or running out of Coke. Do you think it would be all that much of a stretch to expect good, honest, developers to mention it when they find the tracking system is too heavy? And, hey, maybe even suggest a solution? Come on. Are we participants or just bystanders in this whole process? |
| Sun 15 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | 'Okay, it is POSSIBLE that the developer wasn't logging the defect because the tracking system is unwieldy. I tend to doubt this, probably because I've personally never seen a system THAT unwieldy, but I suppose it exists.'
They do exist. In fact, most of them are painful, to varying degrees. But the worst case, by far, was at one job where the devs really only used the bug system to list their own bugs, and to mark them fixed. If we actually found a bug to go into the system, we e-mailed QA, because the bug reporting process was just ungodly difficult. |
| Sun 15 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | Oh, it's worth pointing out that the manifestation is that all the devs hated the bug system, not just one (and the boss knew it too, because... managers should be using the bug system too!). |
| Sun 15 Jun | some old geezer | If they don't like the bug system because they have a problem with the user interface, I'll agree that that's pretty lame. |
| Sun 15 Jun | Must be a manager | Astarte, make all parts of the code the responsibility of specified individuals and give them printed descriptions of the required behaviours.
Get them used to running through these test plans before they commit modules, and give them a day to do it too. Encourage them to write test harnesses. Give them days to do this.
Pretty soon your guys will take pride in the quality of their responsibilities and you won't even have to rely on external parties to notice bugs. |
|
| cold-calling companies in job hunt | Thu 12 Jun | Mike Swieton |
| In a recent thread, one poster stated that an applicant would be better off just cold-calling someone of import (department head/etc.) and chit-chatting with them about IT stuff for a bit, so that youve spoken with someone on the inside, who could you could then hand a resume.
Ive never tried this, but it made me think: is this really a good idea? Ive heard a lot of recomendations that say you should call the company and talk to them.
What the hell do you talk about? You have a (at least in theory, if hes a good manager, way I figure) very busy manager that you are calling for idle chit-chat?
Do you guys actually do this? I doubt it works any less well than random resume sending, but does it work better? Or does it piss off the guy on the other end? I would think it would annoy me, personally. How do these conversations normally go? Ive heard a lot of people saying you should talk to them, but no one ever said what they usually *say*... or are these trade secrets? ;) |
| Thu 12 Jun | Andy | I would like some feedback on this too. I have never cold-called anyone for a job, always gotten the job through pretty normal channels.
However there is a job I want now, which I saw on the company's website. I uploaded my resume but haven't heard anything. I think whenever you upload resumes through a website, they just go into some black hole of a database. No one ever looks there until they've exhausted their other options, is my feeling.
So I was thinking about sending them a hard copy of my resume/cover letter and/or cold calling them. I am just wondering what kind of success or experiences people have had doing this for programming positions. How do you make the step to getting an interview? |
| Thu 12 Jun | | It makes you look really desperate if you do it wrong.
Informational interviewing, as it is called, is a delicate art.
see www.asktheheadhunter.net or www.jobhuntersbible.com |
| Thu 12 Jun | | http://www.asktheheadhunter.net or
http://www.jobhuntersbible.com |
| Thu 12 Jun | | Maybe not cold-calling but you should send a resume to people in the department you want to work in. It worked for me when I graduated, but I wasn't entering IT specifically. You should also offer more than just programming or vocational skills. What industry knowledge do you have? |
| Thu 12 Jun | Safety Wire - Know how to twist it - It could save your life. | I have 'cold-called' employers. What I did was called the employer and asked to speak to HR. I'm put on the phone with an HR person. I say something to effect of, 'Hello, My Name is SoAndSo I am calling to inquire about the position XYZ you have advertised in/on this or that newspaper or website or if you have any internships or positions available at the present.' Be firm/be friendly when asking. Learn to accept the answer they give and turn it into something positive. They may say, 'You can look at our website.' Now's your chance. 'Would you happen to have your website address.' or 'Would you mind if I mailed my resume to you.'
Anyway, This usually starts the ball rolling. So you get in with HR person and talk a little. It doesn't have to be about anything. Bullshit with them. You have to know how to make conversation. I find that HR people like to talk. I don't know why they just do. (At least some of them.) They are the person shielding you from getting at your source. The IT department. Sympathize with them get on their good side. Make sure you get their name! Let me say it again, get their name. A persons name is most important to them. Some people have a hard time calling other people by their name. You must do this. After you have chatted with them and gotten their name and talked about the position a bit and maybe the weather or what not - ask who you can send a resume to. They may say send it to me. That's ok. That's great! as a matter of fact. Now in your cover letter you can address that HR person as being someone you have spoken with about the position. You might be thinking, well that's not someone in the IT department. You would be correct. But this HR person has the power to get you an interview with those people in the IT department. If you are given a contact in the ad for the job, then use them to your advantage. Don't annoy them, just be friendly and courteous. Image you were that HR or IT person. What would you want to hear?
All of these things are a matter of good communication, people skills and to a lesser extent luck. How do you think recruiters get their leads. Sometimes companies contact them and sometimes they call the companies, 'Hello, This is XYZ from agency ZYX. We would like to offer our services to you.' Well, you get the picture. |
| Thu 12 Jun | Mark Wieczorek | > Let me say it again, get their name <
Learn to both pronounce it and spell it correctly too. |
| Thu 12 Jun | Martha | Mark, I take it this springs from personal experience? :) |
| Thu 12 Jun | www.marktaw.com | I actually enjoy having people attempt to pronounce my name, or knowing how to pronounce it, attempt to spell it.
But it's always impressive when they get it right from the get go. |
| Thu 12 Jun | | More effective is to be part of SIG's or discussion groups or something like that, where you come to meet and know people in your field. When jobs come up, they put your name forward. |
| Fri 13 Jun | Tony E | I have got quite a lot of contract work through cold calling but nowhere near as much as through referalls. At the end of the day you have got nothing to loose so give it a try. |
| Fri 13 Jun | somebody | I think the idea is that 9/10 (or maybe 99/100) that you call will think you're crazy or wasting their time, but you might get the remaining 1/10 (or 1/100) at exactly the right time. If someone is thinking about hiring someone new but hasn't committed or put up a listing, and you call with the right qualifications, you might end up being the first or only applicant for the position. |
| Fri 13 Jun | Dennis Atkins | Bingo SomeBody!
It's the same thing as picking up girls. The more you ask, the more you get lucky. Luck is just persistence and maintaining a positive attitude in the face of repeated rejection. |
| Fri 13 Jun | www.marktaw.com | Bingo SomeBody!
It's the same thing as spamming the world. The more you spam, the more you get paid. Money is just persistence and maintaining a positive attitude in the face of repeated rejection. |
| Fri 13 Jun | Pinky and the Brain | >> 'Money is just persistence and maintaining a positive attitude in the face of repeated rejection.'
It's also having something of value that someone else needs or wants. Once you have that then it's a matter of persistence and attitude. |
| Fri 13 Jun | anony1 | It's not the same as spamming. With spam there is nobody on the other end of the line that is taking an equal 'win/win' stake with you.
If you call someone it is give and take... e.g. the personal touch, e.g. following up, e.g. taking the initiative. Even if 99% of the time you might get 'well we're not really hiring right now, maybe in the Springtime check back then ok?'... at least there's the 1% of the time.
Who would you rather hire, someone who is qualified, or someone who is qualified and is keen to work for you? |
| Fri 13 Jun | www.marktaw.com | What about telemarketers? |
| Sat 14 Jun | Norrick | Since losing my job on Valentine's Day, I've made it a regular practice to write personal letters of introduction to CEO's, VP's of Development, Development Managers, Principals, etc. and invite them to meet.
I don't ask for a job. I just ask to meet and talk about what it is we both do and see if there is a natural pertnership or not. Note that I use the word 'partnership' - that removes you from the role of supplicant and makes you more of a peer, a fellow businessman. I also have a 30-second 'commercial' tht I leave on voice mails that gets me a pretty good callback rate.
So far, I've been managing to get enough contract work to earn about 75% of my old salary, and it hasn't taken much effort. My biggest obstacle is the economy - most businesses just aren't spending much money right now.
So yes, you can cold call. And you can write personal letters. I've done both, and both have gotten me work. Not every time, mind you - out of all the executives I've contacted, about 60% have called back, 30% have met with me and 10% have given me projects.
If you haven't read Influence by Cialdini, read it now. In fact, read up on marketing and how to write sales letters. Read as much as you can. And then act. You'd be surprised what happens when you take so simple a step as introducing yourself to people and asking what they do. |
| Sat 14 Jun | Punter | Nice one Norrick, I like it!
Appeal to the executives greed and laziness :)
How many executives are sitting around thinking 'What excuse do I have to expense lunch at the best restaraunt in town today?'. Norrick to the rescue! |
| Sun 15 Jun | www.marktaw.com | > If you haven't read Influence by Cialdini, read it now.
That book is so good it's scary. I honestly don't want that many people to read it, or at least a certain kind of people. |
|
| Skills Atrophying | Thu 12 Jun | Bob |
| I used to be an excellent and well-rounded software developer (VS6 C++/VB, COM+, etc.). In 2000, I took a job at a Fortune 100 company in Boston as a VB6 developer for a huge salary thinking that Id hang around for six months to a year - just long enough to save up for some luxuries - and then move back to something challenging... Then the bubble burst, and Ive been here ever since - skills atrophying all the while.
Development isnt like riding a bike. If you dont use your skills, you lose them, I think. I find myself struggling to remember idiosyncrasies of simple C++, let alone the complexities of ATL. And I havent even looked at .NET! I dont even have time to work on my software engineering skills at home because Im also a CS grad student, and the only thing we use at school is Java. Believe me, a regimen of Java and VB (while theyre both excellent tools for what they do) aint gonna keep you in top form.
Help! What do I do? |
| Thu 12 Jun | robert | Stop worrying and be good at what you are currently using. If a future job requires a shift in skills, you'll adapt and spin those things back up. But if you don't need them, who cares?
Unless you _really_ want out of the job, that is. You didn't really say that, though. You sound like a bodybuilder who's concerned about muscles shrinking that he never needed in the first place. |
| Thu 12 Jun | Bob | >> 'Unless you _really_ want out of the job, that is.'
The job's fine for now. I have a nice big year 2000 salary -which I'd _never_ get offered nowadays - and they pay for school. This place is as good a place as any to ride out the bad economy. |
| Thu 12 Jun | Lauren B. | I've been in the field for about 15 years, and I used to worry about atrophying, too. But you know what? It does come back. Maybe not instantaneously, but it does.
Maybe you're worried about not being able to rattle off intricate details (code, configuration options, whatever) immediately right off the top of your head. So what? If you remember that there is an option to do FOO and you can look it up, that's the REAL knowledge.
Sure, there will be interviewers that'll expect you to recite this stuff. I say, screw 'em. A solid understanding of the principles of good coding, experience with a language long enough that you get to know (some of) its inner workings, and effective strategies for finding out what you don't know or recall will keep you going in the long run. |
| Thu 12 Jun | Ioao | I can't say anything non obvious, so relax and enjoy the flow :-) |
| Thu 12 Jun | Billy Boy | If you're really worried, you could write code at home for fun or as a side project. I've never understood why people think that you should only use your programming skills at work. Most of the people I know in other occupations do things on their own time (construction workers always seem to have some side project, nurses/doctors read their journals, etc).
I'm still waiting for the people who jumped into this trade for the money to jump to the next fad... |
| Thu 12 Jun | Jack of All | Don't worry, languages ARE like riding a bike. You're not going to jump the canyon after 10 years of walking, but given a few months you'll be ready to risk a few broken bones in no time ;)
Why worry? CODE is CODE.
I haven't had 2 jobs in a row where I use the same language, but being your typical 'ENTP' that doesn't really bother me.
Natural, COBOL, C++, Java, JSP, VB, ASP, VBA *shudders*, Perl, HTML
It all blends into one big language. I'll never be the Suuuper Genius of any one in particular, but I'll always find my cheese.
On the other hand, I dev because I love it, but given a choice between getting paid to play on my PS2 or program... well...
Then again, I'm thinking of becoming an interpreter for the deaf... so what would I know ;) |
| Fri 13 Jun | Chris Winters | There are many open source projects out there who'd love for a worthy developer to take an interest, learn the system, offer architecture suggestions and/or contribute code. Find a project you like -- preferably whose products you already use to minimize the learning curve -- and start monitoring mailing lists and offering help. It's a long-term solution, but quite rewarding.
One of the main benefits of working on an existing project is that the mission is done by someone else -- it can be tough to motivate yourself if you create a project on your own. |
| Fri 13 Jun | one programmer's opinion | I agree - your programming skills do atropy if they are not used on a regular basis.
'Believe me, a regimen of Java and VB (while they're both excellent tools for what they do) ain't gonna keep you in top form. '
Are you trolling?
Lot of large companies use Java to create complex server-side applications/systems and VB is still being used to build desktop applications. If you want to work with bleeding edge technologies then you should be applying at places that use it. |
| Fri 13 Jun | Plutarck | Programming isn't like riding a bike - HOWEVER, your skills and 'mental muscles' don't just vanish forever, putting you in the position of it being as if you never learned them in the first place.
I think the best way of understanding it is 'rust'. When you aren't using these skills, effectively they are being left out in the elements unused. Things get filed away in the back of your mind, you misplace spare parts, things degrade and break and don't get fixed or replaced because you aren't noticing them.
However, you are pretty much forever with more than nothing - even if the stuff wears down to a bare frame.
As an example, when trying to start programming I choked on VB. I would try to learn it and get into it few a few weeks, and then get stuck and leave it for months. Eventually I did it for 1 month, then stopped for 6 months. When I returned I started over as if I hadn't learned anything, and found myself learning vastly faster than I did before, and when I hit the place I got stuck in last time I just sailed along without a problem - I still don't know what went wrong originally. In a day or so I was doing better than I had originally.
Effectively, if you decide you really need those old skills, you just have to get back and start excercising them and 'knock off all the rust'. It's not 'just like riding a bike' because it won't be as easy as it once was, but I think you'll find that relearning is many orders of magnitude easier and faster than learing originally, and, if your experience is anything like mine, you will actually end up better than you ever were pretty quickly (at least partially because you have been improving in related skills and abilities the whole time). |
| Sun 15 Jun | Dario Vasconcelos | Another view on the skills issue: I accepted a small project at the bank I used to work three years ago. I had not been in contact with financial matters since then, and you know what? I think I actually understand it better now. Not to say I find it more joyable, but at least many things are clearer now for me.
It's kinda like playing basketball after several years of only watching it on TV: maybe you're not in shape, but you surely have learned a lot about it.
Of course, regarding technology, reaching the wave again might be tougher. But I think a good programmer will always get in shape pretty fast. |
|
| VS2003.Net Enterprise Architect | Thu 12 Jun | Stanislav Kraev |
| For a long time userstyle programmers of VC++ up to 6.0 could not use some useful free libraries like Blitz, Boost and so on. New compiler in VS2003.Net is much more friendly with ANSI and allows to deal with such libraries. Some ports to VS already can be found. For example Ranis Loki library port. Can somebody explain me how to work with Blitz library if i have downloaded distribution kit and VS itself. Is it necessary to wait port? |
| Thu 12 Jun | Chris Tavares | In theory, you should be able to just take the straight blitz or loki libraries and use them as-is, no port required.
I say 'in theory' just because I've never tried it myself. However, I have heard statements from the VC++ team saying that they used these two libraries in particular as tests to see if they got the compiler working properly. So I'm willing to bet they just work. |
| Sun 15 Jun | Stanislav Kraev | Indeed it was as Chris Tavares said. No special port needed. At least some non-significant corrections. It's very pleasant that new .Net compiler became more ANSI friendly. |
| Sun 15 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | And the irony is that, now that it's fixed, almost everybody I knew who complained loudly about it (myself included) over the last 5 years has now moved on and isn't using C++ any more. |
|
| Who Moved My Cheese? | Thu 12 Jun | Brent P. Newhall |
| (Credit where due: MarkTAW mentioned this book in the Procrastination = not always bad thread.)
What do yall think of Who Moved My Cheese?
I tried reading it, and it was so simplistic and poorly written that I couldnt finish it. And its a short book. Ugh. |
| Thu 12 Jun | www.marktaw.com | It's nothing compared to my new book
'Unleash Your Inner Pussy: Lessons in Business from my Cats'
Again, that title was suggested by Plutarck, it's not my original.
Let's just rehash the humorous highlights of that thread. |
| Thu 12 Jun | www.marktaw.com | I have a theory on these things.
Certain movies - the matrix, the lord of the rings, star wars, various romantic comedies are so familiar either due to them being part of a series, or them being so formulaic, that you feel safe watching them. That you'll be entertained at some minimal level and you're not really taking a chance by seeing this movie.
That's what I think brings on the success of books like Who Moved My Cheese, and anything Oprah recommends. It's a safe gift - doesn't mean much, easy to read, etc. |
| Thu 12 Jun | Pete Something | That was one of the most stupid books I have ever read. I borrowed it from a mate who said how great it was. It was a fable that deserved three paragraphs. I mean really, sometimes we have to be flexible. Thank you for your great wisdom. |
| Thu 12 Jun | Bored Bystander | It's most useful as a catchphrase: 'well, my situation changed dramatically and I got screwed, so I better adapt or die'.
The book is written at a 3rd grade primer level. Kind of insulting to one's intelligence to have a book contain a staged Q&A at the end...
It does have an important life lesson, but embedded in a smarmy format. |
| Thu 12 Jun | www.marktaw.com | > a staged Q&A at the end
I never got to the end. |
| Thu 12 Jun | Bored Bystander | In WMMC:
After the dramatic and gripping allegory involving the travails of the mouse whose cheese has been moved, surrogate human readers discuss amongst themselves the moving story of the starving mouse...
(I better stop, I'm about to hurl.) |
| Thu 12 Jun | www.marktaw.com | You know what, I think I might have gotten to that point and just blocked it out of my memory.
We could write our own allegory. It shouldn't be too hard. What kind of animal can you compare a programmer to? |
| Thu 12 Jun | Hardware Guy | 'Who Moved My Soap? The CEO's Guide to Surviving in Prison,' by Andy Borowitz, is probably a better read. |
| Thu 12 Jun | Steven E. Harris | That CEOs spend time at the office or on the airplane reading this kind of pandering drivel, claim to have learned something in the process, and expect others to do the same makes them look like incompetent, idiotic suckers.
Maybe there is some truth to be found in this book. |
| Thu 12 Jun | Prakash S | These are the kind of books - people from upper management will pass on to people and create a big hoopla about it - and these people bill $ 300 an hour.... sheesh.... |
| Thu 12 Jun | anon | I've generally associated that book with clueless managers. |
| Thu 12 Jun | mb | OK, so what is a good motivational book?
(A friend lent me the cheesy book a few years ago. All I remember is that it was drivel.) |
| Fri 13 Jun | www.marktaw.com | That probably dependson what motivates you. |
| Fri 13 Jun | Julian | There was a mildly amusing cartoon in which a flustered boss asked his secretary where his 'Who Moved My Cheese' book was. |
| Fri 13 Jun | www.marktaw.com | See, now that's motivational. |
| Fri 13 Jun | Erik Lickerman | I recommend 'The Iliad' by Homer. It's wierd how much those ancient Greeks knew about our modern corporations. |
| Fri 13 Jun | Leonardo Herrera |
I managed to read it cover to cover, standing in a library waiting for my wife. I'm glad I did it because now every time somebody ask me about that book, I can answer 'yeah, I read it, tooks me about 20 minutes, it was pretty stupid.'
I love to insult lesser minds. |
| Fri 13 Jun | Erik Lickerman | -er I mean 'weird'.
I make a pretentious recommendation like that. You'd think I could spell. |
| Fri 13 Jun | www.marktaw.com | weird is wierd that way. I before E except after C and in the werd Wierd, err Weird. |
| Sat 14 Jun | realist | I recently read 'Jonathon Livingston Seagull' I put it in the same camp as 'Cheese' . A statement of the bleeding obvious. |
| Sat 14 Jun | www.marktaw.com | And Jonathan i one of the best selling books of all time. |
| Sun 15 Jun | Darren Collins | My wife's previous employer gave everyone a 'Who Moved My Cheese' course and made them all read the book. Then, whenever the bosses made a random, arbitrary, pointless, or even downright stupid change to their systems, they just answered all criticism with 'you're just upset because someone moved your cheese.'
I can't remember, but did the book ever mention *why* the cheese kept moving? Some bosses seem to think after reading the book that it's their job to become the cheese-mover, to keep those pesky mice busy and to stop them from being lazy!
A friend once remarked that as soon as a company starts handing out these types of books, it's time to start looking for a new job. |
|
| Source Code to this board? | Thu 12 Jun | tim |
| Wow just found this site! Great articles. I was wondering if the source code to this message board available? |
| Thu 12 Jun | Yaniv | Take a look at Dave's web site: http://www.sswltd.com
He has done an excellent job! |
| Thu 12 Jun | Alex Chernavsky | PHP / MySQL version:
http://www.johnsadventures.com/backend/DiscussionForum/APHPDiscussionForum.html |
| Thu 12 Jun | tim | Awesome, thanks for the links guys! I'm surprised Joel doesn't offer his source code. |
| Thu 12 Jun | Dave B. | Thanks for the compliment Yaniv!
I have removed the 'emoticons' as they were rather unpopular. :) I also started to use CityDesk again for writing the articles.
I hope to finish Beta 2 of the ASP.NET version... soon. ;) |
| Thu 12 Jun | Chris Tavares | Joel has said in previous messages that the current source code has a lot of stuff in it that's specific to Fog Creek's setup (server names, databases, etc.) and that cleaning it up to distribute it is not on his list of priorities. |
| Thu 12 Jun | . | > I'm surprised Joel doesn't offer his source code.
What's surprising about that? He's put a lot of work into it. |
| Thu 12 Jun | EOF | >> 'What's surprising about that? He's put a lot of work into it.'
Probably not as much as you would think. It sounds like something that grew from a small beginning and as he recognized a need for change he or one his employees implemented it. The code is (guessing) functional but not clean. I doubt he put more work in than the guys who clone the thing. |
| Fri 13 Jun | www.marktaw.com | I think there's a little more to this forum than meets the eye. |
| Fri 13 Jun | Philo | For example, the code for the magic topic-zapping elves has a semi-sentient neural net combined with the first truly random CPU-based random number generator...
Philo |
| Fri 13 Jun | The Architect | 'Please. As I was saying, she stumbled upon a solution whereby nearly 99.9% of all test subjects accepted the program, as long as they were given a choice, even if they were only aware of the choice at a near unconscious level. While this answer functioned, it was obviously fundamentally flawed, thus creating the otherwise contradictory systemic anomaly, that if left unchecked might threaten the system itself. Ergo, those that refused the program, while a minority, if unchecked, would constitute an escalating probability of disaster.' |
| Fri 13 Jun | !!b | 'I think there's a little more to this forum than meets the eye.'
Such as? |
| Fri 13 Jun | www.marktaw.com | I could tell you, but then I'd have to kill you. Or at least this thread.
I can tell you one thing that isn't on this board... Smilies. =) |
| Fri 13 Jun | !!b | You mean you have admin rights to this forum? Or that by sharing your knowledge Joel would delete the thread?
As for Smilies - bah! |
| Sat 14 Jun | www.marktaw.com | I have no admin rights to this forum, I don't really know anything about it that isn't public knowledge. I'm just kidding with you, though I do suspect Joel has some stuff baked in that we don't know about. |
| Sun 15 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | Joel sent out an e-mail to his subscribers that gave some hints not only to his motivations for his UI decisions for the forum, but also some of the behind-the-scenes administration that they do here. He asked that it not be publicly re-published (I don't know whether he's taking requests for it off-line though). |
|
| Smart/Funny/Stupid Code Snippets | Thu 12 Jun | John |
| Yesterday, while debugging I found this code:
CApp::LogOff()
{
:
:
if (m_bLoggedOn)
m_bLoggedOn = false;
:
:
}
Why would anybody want to check m_bLoggedOn to be true to set it to false? Just m_bLoggedOn = false would be fine enough. |
| Thu 12 Jun | John Topley (www.johntopley.com) | Looks like a case of mistaken optimisation to me. |
| Thu 12 Jun | Better than being unemployed... | Maybe the original developer's been bitten by doing 'free(pPointer)' or 'delete m_pObject' without checking for NULL first, and has forced themselves into that style as a habit. |
| Thu 12 Jun | Mr Jack | delete m_pObject will perform correctly with a null pointer. |
| Thu 12 Jun | i like i | 'delete m_pObject will perform correctly with a null pointer.'
Very true. A double-delete if p isn't null won't. hence if you free a pointer outside a destructor, you ought to null it imediately. Makes for more robust code generally.
.. just done my good thingfor the day .. |
| Thu 12 Jun | Frederik Slijkerman | Many programmers do not really understand boolean expressions and variables. This leads to code such as:
bool b;
if (b == true) ...
and
if (x > 3)
b = true;
else
b = false; |
| Thu 12 Jun | | Frederik Slijkerman's post : warning C4700: local variable 'b' used without having been initialized
;-) |
| Thu 12 Jun | spaceman | Regarding delete of NULL. It should be okay. It is not on all compilers so, however. Maybe the compiler was written before the standard was set or maybe they just fscked up, but I have had to work with one that doesn't work correctly. |
| Thu 12 Jun | DingBat |
Sorry Frederik, I sense where you are going with your post and submit that it is more of a case of readability than 'smart' code.
I have no problem if a shop wants to make it a standard to include things like:
bool_var = x > 3;
but I'd usually take the more readable version any day. |
| Thu 12 Jun | John Topley (www.johntopley.com) | Do you think
bool_var = (x > 3);
is more readable? |
| Thu 12 Jun | DingBat |
Um, actually no. That was my point. |
| Thu 12 Jun | Frederik Slijkerman | Hm, I'd say that b = (x > 3) should be standard idiom for any decent programmer. I don't find
isLeapYear = (daysInYear > 365);
particularly hard to read. |
| Thu 12 Jun | mackinac | Frederick, you're right. The idea of boolean expressions having a value that can be assigned to a variable seems to be a concept that some programmers have a difficult time with.
I find things like your examples in my current project, but here is an example that tops yours. Variable names changed to protect the guilty. This is C++:
int a(0);
// Some computations to set a to something.
bool b = ( a == 1 ) ? 1 : 0; |
| Thu 12 Jun | Joel Spolsky | he he.
in MFC / Win 32 programming you have all these BOOLs left over from before they had a bool type in C/C++. BOOL is typedefed to 'short.' In a couple of rare cases may have three distinct values, usually a third for unknown, so when the bool type was added to the compiler they couldn't change what BOOL meant.
Now if you have
BOOL b= TRUE;
bool f = b;
you get a compiler error, complaining that you are converting a short to a bool and thus possibly losing data without an ugly cast to prove that's what you want. A couple of Juno programmers took to writing
if (b)
{
f = true;
}
else
{
f = false;
}
good lord. Later this was reduced to
f = b?true:false;
but that's just too alarming to me. Eventually we settled on
f = !!b; |
| Thu 12 Jun | | There is something wrong with
f = (TRUE == b);
? That seems much more readable than double !s. |
| Thu 12 Jun | Better than being unemployed... | I don't like the use of !!. It's non obvious why it's there. Personally, I just use either all BOOL or all bool and don't mix and match them if I can avoid it, as they are two distinctly different types. |
| Thu 12 Jun | na | f = !!b;
??
f = b;? |
| Thu 12 Jun | na |
(BB) || (!(2B))
'shakespeare' |
| Thu 12 Jun | mackinac | I agree with the idea of making code readable and can get a little obsessive about it, lining assignments up in neat columns and agonizing over variable names so they'll read nicely. Concerning the simple example given above, it is hard to imagine anything clearer than:
int x(0);
bool b(false);
// ... some computations here...
b = x > 3;
Although in real code I'd try for better variable names. And that 3 might get replaced by a static const value. |
| Thu 12 Jun | S. Tanna | Particularly for file reading/writing functions, I like to use booleans and short-circuit evaluation, assuming a basic set of bool returning file functions, it saves checking every returning value to a write call
Like (I realize the first bOK && is not necessary, but it makes the code independent of later re-ordering)
BOOL WriteData( ... )
{
BOOL bOK = TRUE ;
bOK = bOK && WriteInt( ... ) ;
bOK = bOK && WriteStr( ... ) ;
bOK = bOK && WriteStr( ... ) ;
bOK = bOK && WriteBin( ... ) ;
bOK = bOK && WriteDouble( ... ) ;
return bOK ;
}
Better yet this idea can be used to write code that both reads and writes a file format in a single function with no nasty checking (change all 'Write's to say Archive* which are set of general bool returning read/write functions
~~
I also find that having nicely named functions (or temporary variables) to evaluate boolean expressions to be used as part/all of if's can reduce duplication and make code mode readable. |
| Thu 12 Jun | z | This may be a nit picky distinction, but why not the even simpler:
BOOL WriteData( ... )
{
return WriteInt( ... )
&& WriteStr( ... )
&& WriteStr( ... )
&& WriteBin( ... )
&& WriteDouble( ... ) ;
}
Other things being equal, less stuff on the page makes for easier reading. |
| Thu 12 Jun | Devil's Advocate | z -
I believe that your version will not evaluate subsequent function calls once one returns false. The first code snippet will always evaluate all of the function calls.
Either one may be preferred for different problems. |
| Thu 12 Jun | Daniel Shchyokin | In java at least (C++ may be different),
you always want a thread to finish running by exiting a for loop, rather than calling stop or exit on it!
so if you have a thread running a constant set of instructions in the background you would write
class X implements Runnable
{
condition=true;
public void run()
{
while condition
{
...
}
}
}
the method he had in there would be used to terminate the loop, i.e . run would retrun after is set to false. |
| Thu 12 Jun | z | Devil's Advocate, you are right about my code snippet, but wrong about S. Tanna's.
Note that, in S. Tanna's code, when any WriteXX function returns false, bOK is set to false. In subsequent statements bOK is the first term in the boolean expression. Since it now evaluates to false, the second term is not evaluated, due to 'short-circuit evaluation' as mentioned by S. Tanna. The results of the two forms are the same. |
| Thu 12 Jun | Daniel Tío | Some time ago I found this code snippet on the source code of a reservation system used by an airliner:
...
MOV A, B
MOV A, B # I'll say it again. Just in case.
...
Also, I used to have a coworker who liked to comment obvious parts of code using rock song lyrics, stuff like:
// As Red Hot Chili Peppers said 'What I've got you've got to get it put it in you'
COMMIT;
Pretty dumb. He thought it was funny though. |
| Thu 12 Jun | Toad the Wet Sprocket | RPG Daniel? |
| Thu 12 Jun | Brian | >There is something wrong with
>f = (TRUE == b);
The problem is that you don't capture the usual semantics of BOOL this way. Any value that's not equal to FALSE is treated the same (by logical operators and conditional expressions). So more likely, you'd want:
f = (FALSE != b);
This came up in comp.lang.c++.moderated a while back, and I think the consensus was the '!!b' that Joel mentioned. I don't exactly recall why this was preferred over 'FALSE != b' (and I can't find the thread right now). I find the '!!b' to be slightly more readable, but not by much. |
| Thu 12 Jun | Steven C. | z:
Since I use a source level debugger, I vastly prefer S.Tanna's style of function calling (one call to a line) when I'm in similar situations.
In theory, a smart compiler should be able to compile his code into your code with speed optimizations, but when debugging unoptimized code its very nice to be able to source step between function calls.
But that might just be a personal preference. |
| Thu 12 Jun | z | Steven C., you do have a good point. My goal was to make the code easy to read and understand by using a structure that was both logically and visually simple. I wouldn't put much effort in to optimizing this, let the compiler do it.
But the concern about debugger use is valid. I have run in to such problems myself and sometimes make the code a little less neat in order to make the debugger easier to use. |
| Thu 12 Jun | S. Tanna | The point of my snippet is the short-circuit, easy of debugging/reading, and writing it this way also allows you to handle other cases that sometimes occur
BOOL WriteData( ... )
{
BOOL bOK = TRUE ;
bOK = bOK && WriteInt( ... ) ;
bOK = bOK && WriteStr( ... ) ;
if ( bOK )
{
// prepare something else here
}
bOK = bOK && WriteStr( ... ) ;
bOK = bOK && WriteBin( ... ) ;
bOK = bOK && WriteDouble( ... ) ;
return bOK ;
}
Another thing I do which goes with which is very useful if saving into your own binary format or whatever is to add extra int's (some magic numbers which are unlikely to be in the data stream) which is very useful to help you confirm you really are in the right place in the file/stream/etc when debugging a file format
Something like
bool ArchiveVerify( int& marker )
{
if (...writing... )
{
return WriteInt( marker ) ;
} else
{
BOOL bOK = TRUE ;
int nFromFile ;
bOK = ReadInt( nFromFile ) ;
bOK = bOK && ( nFromFile == marker ) ;
ASSERT( nFromFile == marker ) ; // trigger debug error if I messed up file format
return bOk ;
}
}
BOOL ArchiveData( ... )
{
BOOL bOK = TRUE ;
bOK = bOK && ArchiveVerify( eMagic1 ) ;
bOK = bOK && ArchiveInt( ... ) ;
bOK = bOK && ArchiveStr( ... ) ;
bOK = bOK && ArchiveInt( ... ) ;
bOK = bOK && ArchiveStr( ... ) ;
bOK = bOK && ArchiveVerify( eMagic2 ) ;
~~~
In Undocumented Windows (about Windows 3.x) there is an awesome (or ugly unmaintable) bit of assembler code from Windows which reads 2 ways depending on where you start reading at a byte offset.
~~~
A very old one, (but totally stupid) that stuck in my mind (I think I read it, not saw t), was some assembly said something like
db 0x723 ; RIPLVB
Can you guess what the comment means? |
| Thu 12 Jun | Art Metzer | HEX 723 = DEC 1827
'Rest In Peace Ludwig van Beethoven' (1770-1827). |
| Thu 12 Jun | Brian | RIPLVB is from Code Complete, right? |
| Thu 12 Jun | S. Tanna | It may be there, but I seem to remember first hearing about it in Commodore Pet days, which would have been early 80s
Perhaps it is an apocryphal |
| Fri 13 Jun | | 'The problem is that you don't capture the usual semantics of BOOL this way. Any value that's not equal to FALSE is treated the same'
Can you expand on this for those of us who are hard of thinking this morning? Are you referring to this bizarre third state that Joel was referring to? |
| Fri 13 Jun | Better than being unemployed... | Daniel Tio wrote:
'Also, I used to have a coworker who liked to comment obvious parts of code using rock song lyrics, stuff like:
// As Red Hot Chili Peppers said 'What I've got you've got to get it put it in you'
COMMIT;
Pretty dumb. He thought it was funny though. '
You can translate this easily into :
// I'm not interested in the quality of my job as much as this song I've got running round my head
Last year I inherited a stagnant code base from a project nobody wanted to own that was going nowhere, with the intention of turning it around. You wouldn't believe the rubbish that was buried in the source code. Song lyrics, animated postboxes, smiley faces, all sorts of rubbish. Oh, and a database library with a function called 'Stupid'. Hmmm...
It annoys me intensely to pick through three year old in jokes from incompetent monkeys. |
| Fri 13 Jun | sgf | >>
RIPLVB is from Code Complete, right?
<<
Yes. By amazing coincidence, I saw the question here yesterday, then last night I read through that page of Code Complete.
:) |
| Fri 13 Jun | mackinac | >>> 'The problem is that you don't capture the usual semantics of BOOL this way. Any value that's not equal to FALSE is treated the same'
Can you expand on this for those of us who are hard of thinking this morning? Are you referring to this bizarre third state that Joel was referring to? <<<
I didn't post that, but I'll try an explanation.
This is C++ code. In the example given:
#DEFINE BOOL short
#DEFINE FALSE 0;
#DEFINE TRUE 1;
bool f;
BOOL b;
/* Some code to assign values to f and b, then: */
f = (TRUE == b);
If we're careful and only assign 0 or 1 to b there is no problem. But b is a short and there are various reasons why it might have some other value assigned. In C zero values are considered false for logical tests, non-zero are true. Suppose b gets set to -1. Then the following happens:
b = -1; /* Just for example */
f = ( TRUE == b ); /* f is now false */
if ( b )
some_statement; /* b true, this executed */
if ( f )
some_statement2: /* f false, not executed*/
Actually this is kind of bad C++, but the discussion was about converting C to C++. |
| Sun 15 Jun | Brian | >>>Can you expand on this for those of us who are hard of thinking this morning?
mackinac's post pretty much sums up what I was alluding to. The crux is that (with mackinac's variable declarations)
if (b) // executed when b = 2
is not identical to
if (b == TRUE) // not executed when b = 2
I wasn't thinking explicity about Joel's tri-state variable, because you hopefully wouldn't try to put that into a bool variable in the first place, and you would be more careful about making sure your variables always have one of those 3 values (so you could compare it to TRUE, FALSE and OTHER). |
|
| Monster.com tip | Wed 11 Jun | Philo |
| Since I know a lot of people here are looking, I wanted to pass along my #1 job search tip:
Change your resume on Monster *every* day. Why?
Recruiters only search resumes on Monster that are 48-72 hours old. Making a change resets the date on the resume, and youre back in the mix.
I noticed this in 99 when I was hunting - posted my resume and the phone rang off the hook, then dwindled down. I had to make a change for some reason, and the phone started ringing again. It was after the third change I noticed the pattern. Its held true ever since.
Last four months - nothing off Monster. Edited my resume Saturday and Ive had four inquiries in the last two days.
I hope this helps someone out there...
Philo |
| Wed 11 Jun | ac | Ssssssssssh!
If everyone does that then it won't work as well. |
| Wed 11 Jun | www.marktaw.com | I think this works for all the major job sites. |
| Wed 11 Jun | anon | And personals sites! |
| Wed 11 Jun | R C | 'And personals sites.'
Today I'm black.
Tomorrow I like Sushi.
Yeah. I like it. |
| Wed 11 Jun | www.marktaw.com | Uh oh. We're not headed into an era of blog-umes are we? You know, weblog-resumess that detail the minutae of a person's work life. |
| Wed 11 Jun | Walter Rumsby | How depressing.
Surely such a popular site could implement a better solution than this.
I think the more people that know this the better - it may lead Monster to do something about their search tools. |
| Wed 11 Jun | www.marktaw.com | Slash resumes? Build up karma by helping other people out with their resumes, and the person with the most karma gets listed first?
Otherwise, this gets back to the 'how do you sort through 2,000 resumes' question - if you have a job bank where several thousand people equally qualify for a job based on the search criteria, how do you choose which ones to display first? |
| Wed 11 Jun | anon | I think that makes sense, considering that job searchers are looking at the most recent postings as well. |
| Wed 11 Jun | Chris Winters | Mark, this site might be the ultimate in blog banality:
http://www.wibsite.com/wiblog/dull/ |
| Wed 11 Jun | Chris Nahr | ROFL. I particularly like the 100+ comments after each 'I wore a pair of shoes today' entry. Great parody. |
| Wed 11 Jun | Steve H | Walter, if a headhunter searches for 'Oracle ASP' in a certain geographic region how else should monster return the 200+ results? Ordering by last modified date ensures that the people actively looking for work are listed higher up on the results. Seems fair to me. |
| Wed 11 Jun | GersonK | Steve H - yes, more recent resumes are more likely to be active job seekers, but as this thread demonstrates, sorting on date also rewards people who are willing and able to constantly update their resume simply to exploit the sort order.
Possible improvements: give users an 'I'm still looking button' - make it clear that searchers can filter out users who haven't clicked it within a certain timespan. (yeah, this does have the cynical advantage to monster of forcing users to visit more often, but it also makes the rules more transparent, and helps people who have longer job searches - eg somebody searching after 2 months doesn't show up below somebody who already got a job after 1 month).
Make the sortable date the last significant change. This might be a little trickier, but if the change won't have a real effect on how the resume will show up in searches, then searchers shoudln't care about the change. This means people simply changing to get better search placement would have to risk said placement. |
| Wed 11 Jun | Plutarck | 'if you have a job bank where several thousand people equally qualify for a job based on the search criteria, how do you choose which ones to display first?'
I think I have the perfect solution to all such problems: do it completely and utterly randomly, with no rhyme or reason.
That way you are as insulated as possible from unintended consequences of your culling techniques. |
| Wed 11 Jun | ODN | That reminds me of a resume-filtering technique I heard a while back on this forum... Take half the resumes and throw them away without looking at them. Why? Never hire someone who is unlucky. |
| Wed 11 Jun | analyst | My advice would be to forget Monster.com and all the job sites. The seeming simplicity of those approaches is also the danger. You're subjecting yourself to mass swamping, and also to review by people with superficial understanding.
Instead you have to find and build networks directly with companies that do the work you're interested in. This is not as hard as it sounds. Most employers, especially the ones worth working for, advertise their positions on their web sites. In fact, that's often how recruiters find those positions in the current market.
In summary, the best investment of your time and effort is outside the recruiter / middleman supply chain. |
| Wed 11 Jun | www.marktaw.com | Re: blogging
- http://radio.weblogs.com/0001011/blogparody.htm
Re: resume sorting
I think I have the solution to this problem. YAWYL - the claritus database that tracks neighborhoods by zip code and determines which of the 50 or so class types live there.
http://www.marktaw.com/culture_and_media/YouAreWhereYouLive.html
Do you want docile, lower class workers that are easy to control with salary, or do you want upper class workers who are more sympathetic to the idea of keeping sed lower class workers in line?
It's funny how innocent that article seems even 1 year ago compared to what's now public knowledge about TIA and that the pentagon wants to create a database tracking every possible item of data about every one of it's citizens. |
| Thu 12 Jun | www.marktaw.com | Monster in particular lets you add skills in their weird 'add a skill' interface. Why not add a skill a day? |
| Thu 12 Jun | Philo | ...after reading the 'Learn [x] in 24 hours' book?
Philo |
| Fri 13 Jun | www.marktaw.com | Exactly!
There's always another way of saying the same thing so that you'll turn up in marginally more searches. |
| Fri 13 Jun | Stephen Jones | Do you actually need to change the wording, or can you just delete a word, put it straight back in, and post again. |
| Sat 14 Jun | www.marktaw.com | I think you have to change something, but it's trivial. Why not try it for yourself and see? |
| Sun 15 Jun | Philo | I just alternate adding and removing a space from the title.
Philo |
|
| Procrastination = not always bad | Tue 10 Jun | S. Tanna |
| Everywhere, lots of advice, procrastination = bad. Do it now! Get started! Dont sit on your hands. Do the tough job today - dont put it off!
Sometimes when you have a tough programming problem, you have a solution, but an ugly one, a bit of procrastination can be good. Often, you come up with a better solution, during the procrastination period. |
| Tue 10 Jun | Philo | Efficiency is just productive laziness.
Philo |
| Tue 10 Jun | Bruce Perry | Years back, I worked with one client (major insurance co.) that made changes to the specs very frequently. My way of handling them was to delay making the changes for a few days. That cut the work in half since they'd often change their minds again and return to the original decision or even pick a third option.
So by being slighly lazy, I only had to do half the number of changes. |
| Tue 10 Jun | Mister Fancypants | I agree with the original post.
I find that in many ways the subconscious area of the brain is a better problem solver than the conscious part. When faced with a particularly difficult task it is often better for me to step away from the computer and go out for a walk and not even think about the problem in the conscious part of my brain. More often than not, when I go back to the problem later I find that somehow my subconscious has magically worked out all the difficult parts and the solution is now very clear.
Whether or not that truly qualifies as 'procrastination' is up for debate. |
| Tue 10 Jun | S. Tanna | My methodology is usually
At the start figure out if I can do all the tough parts, at least some method, even if ugly. Maybe write a test app for the very toughest parts to prove it if necessary
When I get to an ugly part in the app (not necessarily tough), I sometimes leave that for 1 hour, 1 day or even a week or two, while working on other things. When I come back, nearly always I find that I have a better way to do that ugly part, although occassionally I just have to then bit the bullet. |
| Tue 10 Jun | B# | I was thinking of this very thing last night and I've become convinced that anything but the most mundane task should be started (substantially) and then returned to a day or 2 later.
Invariably the task seems clearer and the subconscious mulling clarifies it. |
| Tue 10 Jun | Steve | My rule of thumb:
Never make a design decision the same day you conceived it -- go home, sleep, come back at 9am the next day, and give the final word. |
| Tue 10 Jun | flamebait sr. | The best trick is to swap tasks. Work on one while your subconscious is working on the other, so that you aren't actually procrastinating at any point. |
| Tue 10 Jun | mackinac | Even better, some problems just go away if you wait long enough. |
| Tue 10 Jun | Martha | Never put off until tomorrow what you can skip altogether. |
| Tue 10 Jun | Kyralessa | That's not procrastination; that's just setting a problem aside and working on something else.
Procrastination is setting a problem aside and not working on anything else. |
| Tue 10 Jun | www.marktaw.com | This is the quintessential artist's dillemma - how do you force a work of art? Scientists are known for coming up with solutions while doing something completely unrelated, and actually avoiding the problem in order to solve it. |
| Tue 10 Jun | Plutarck | MarkTAW: There are actually some statistics on just that, about how people solve problems - such as while working on the problem, working on a related but different problem, working on an entirely different problem, not 'working', etc.
About 60% was through working directly, and the 2nd biggest was different but related...but can't recall the rest. It's all in the book 'Jump Start Your Business Brain: Win More, Lose Less, and Make More Money with Your New Products, Services, Sales & Advertising' by Doug Hall. It's really an incredibly, incredibly good book on cultivating creativity, among other neet subjects.
I highly reccommend it. |
| Tue 10 Jun | www.marktaw.com | It is now item # 433 on my Amazon.com wishlist... |
| Tue 10 Jun | X. J. Scott | Wow guys! You are really in tune.
This is how it works totally and glad to see others on the same wavelength.
Some days I blaze through the code, like I am running across the prairie chasing a deer.
Other days are like climbing a slippery waterfall, like today. Stare at 1 function in the code for 1 hour. I think, 'damn.' Go mow the lawn. Glance at the code. Think, 'Shoot, that is complicated. I'll never figure out how to make the change.' take a shower. Stare at the code. Think, 'This is really screwed. I am doomed. I need to rewrite this entire system from scratch.' Go plant some tomatoes, come back, stare at code. Change one line of code and add two new ones. Everything works.
The alternative would be to dive in, screw everything up hopelessly making all nsorts of changes and then have to roll the whole thing back at the end of the day, making no progress.
The thoughtful time spent mowing and showering is what we call 'design'. |
| Tue 10 Jun | Big B | I'd like to recommend against procrastinating something because it hurts to think about it. You need to manage your risk by solving the hard problems first, then the easy ones. If you put off the hard problems, not only do you risk that the hard problems take a lot more work than you thought. It may also turn out that the only solution to the hard problem invalidates the work you've already done.
I totally agree that sleeping on a problem helps one understand it better, and as such is very useful to do, but if you have not given the problem any serious thought first, no amount of sleeping will help. |
| Tue 10 Jun | GersonK | Kyralessa - procrastination doesn't have to involve not working (at least, in my book). Sometimes I'll put aside a difficult and unpleasant in favor of a less important but easier or more enjoyable task. |
| Tue 10 Jun | www.marktaw.com | Since we're in Joel's Forum, I thought I'd post some articles that he'd written about this kind of thing.
Where do These People Get Their (Unoriginal) Ideas?
http://www.joelonsoftware.com/articles/fog0000000068.html
Fire And Motion
http://www.joelonsoftware.com/articles/fog0000000339.html |
| Tue 10 Jun | www.marktaw.com | I think that humans, by nature, are somewhat random. It's genetically programmed in to us. Look at how our ancestors lived. You had to focus for a few minutes - a half hour at most, catching your food, building your shelter, etc. Maybe some things took a few days of solid work to get done, but the goal was always in sight.
Nowadays, the goal is several months out, and the actual goal has no effect on you whatsoever - the company you work for makes more money. It has an indirect relationship to whether or not you're shielded from the elements or get to eat.
So it was probably useful that as you were crouched waiting for that (whatever you're going to eat) to come along, your mind wandered. Maybe your mind wandering allowed you to think of better ways to reinforce your dwelling from the rain.
The same way, being opposed to changing something that works also is in our favor because it helps us survive. I think it's that dychtomey that drives us as a species - don't change what works unless you've had some insight into the process that will make it better.
I don't think we're alone in this either. My cats repeat what works until they seem to have a better idea and then they stick to it.
I should write a book on this topic and then do the lecture circuit. |
| Tue 10 Jun | B# | I would say that doing your work and getting to eat are very much related. And if you are the company you work for... well. |
| Tue 10 Jun | Martha | He didn't say they're not related. They are, it's just that the relationship is indirect, so it's less transparent, less immediate, easier to ignore. |
| Tue 10 Jun | B# | Yeah, I should read twice and blurt once! eh? |
| Tue 10 Jun | www.marktaw.com | I do that too. My motto is 'measure once, cut twice' lol. |
| Tue 10 Jun | B# | Measur? |
| Tue 10 Jun | www.marktaw.com | mesur uns kut twise |
| Tue 10 Jun | Philo | As I continue to address the issues I have with work habits, I've recognized one thing about my procrastination - when a task is (mentally) a big ball of mud, then even looking at it is like similar poles of a magnet - I'll do anything else.
When I have a concrete bug list in front of me, then I can work for hours and hours, because I have a 'recipe' for what to do - small tasks that need a little work, then I check them off and feel progress.
I'm working on fighting the urge to run away when I have 'Implement customer preferences IAW specifications' sitting in front of me. Heck, I'll just open a page and throw on a table and a datagrid just to start *doing* something.
It's helping a lot, tho (IMHO) not enough... :-/
Philo |
| Tue 10 Jun | T. Norman | Procrastination is also good sometimes when it comes to technical decision making. People often make decisions to go with approach X or platform Y long before they know enough about the requirements to make an informed decision, where there is no need to act so hastily.
Or they start deciding low-level implementation details way too early and have to rip them out halfway through the project. Or they make a decision too early and every decision afterwards is forced by that decision and the system is so tied to that decision that it becomes impossible to choose any alternatives.
For example, if you decide from day 1 that the product will be backed by an Oracle database, forces will tend to lead the design in a direction that makes it become tied strongly to Oracle and prohibitively expensive to make it run on anything else. But if the database decision was left to a later stage, a database-agnostic design would begin to take shape, and whatever database is decided on in the end it will be much easier to port it to another database should the need arise. |
| Wed 11 Jun | anon | Just usually bad. |
| Wed 11 Jun | | Don't put off until tomorrow what you can put off indefinitely. |
| Wed 11 Jun | Yanwoo | There seems to be a fundamental misunderstanding of what procrastination means here.
Procrastination is bad because it means not doing things which you know you should do now - a lot of the examples here are when not taking the next action was the right thing to do and that's not procrastination. |
| Wed 11 Jun | www.marktaw.com | No, the examples here are when normally you would think the next thing to do is tackle the problem head on, but it turns out that by not doing what you think you should, you actually help yourself. |
| Wed 11 Jun | S. Tanna | > Procrastination is bad because it means not doing things which you know you should do now
Look it up at http://www.m-w.com/
Procrastinate basically just means to put off intentionally |
| Wed 11 Jun | Yanwoo | or
'to put off intentionally the doing of something that should be done' |
| Wed 11 Jun | Yanwoo | >>No, the examples here are when normally you would think the next thing to do is tackle the problem head on, but it turns out that by not doing what you think you should, you actually help yourself.
I take your point - but surely with experience you learn when things need to be left a while and when things should be done now? Hence, one you have procrastinated once and had positive results surely the next time it is not procrastination since you are choosing not to do it for a good reason?? |
| Wed 11 Jun | Plutarck | 'I don't think we're alone in this either. My cats repeat what works until they seem to have a better idea and then they stick to it.
I should write a book on this topic and then do the lecture circuit.'
You know Mark, that sounds actually perfect for the lecture circuit. Sounds dumb enough to get attention, yet not completely and utterly absurd enough to turn people off (not that that would be possible...), and actually makes some sense.
How about the title 'Unleash Your Inner Pussy?'
...on second thought, maybe you should just pick out your own title, or get the advice of someone who has learned to resist the urge to make gratuitous 'cat/pussy' jokes. |
| Wed 11 Jun | www.marktaw.com | I still can't get over that Who Moved My Cheese book that was so popular. I read it over the course of 10 minutes while in the Harvard bookstore. I can't believe how simplistic it was, yet it was a giant best seller. I think it was shorter than a Joel essay. |
| Sun 15 Jun | Darren Collins | I just thought of a great response to this thread. I'll come back and type it up when I get the time... |
|
| Want "First Impressions" feedback for my website | Fri 13 Jun | Bill Rayer |
| Im looking for first impressions critical feedback on my
Lingo website ( http://www.lingolanguage.com ). Nothing in-depth, just find something that doesnt look right or is annoying or tacky or cheap or whatever.
Im asking because I believe people form first impressions in 15 seconds or so, whenever looking at a new website / product / book etc. Ive spent too long on this website and I cant assess it properly. Eventually I want to make it into a commercial product, so it has to look and work right. I can take the criticism (I think...). |
| Fri 13 Jun | Sigh | http://validator.w3.org/check?uri=http%3A%2F%2Fwww.lingolanguage.i12.com%2F&charset=iso-8859-1+%28Western+Europe%29&doctype=HTML+4.01+Transitional |
| Fri 13 Jun | Patrik | Ok first impressions:
1) Even though its cute I would do away with the random quote on the pages. If you want it I would suggest you put it underneath the logo / white info boxes.
2) The links uses default 'purple-when-visited' style, which makes the bottom navigation hard to read. Try find a color that goes well against both the purple and white background colors used.
3) Inconsistency between pages, 'Product Info' page uses Icons which looks kindof clipartish whereas the other pages uses simple numbers for the different chapters.
I would prefer numbers.
4) Since the feel of the site is kindof boxy given the white box where all the information is, I would if I were you go with rectangular screenshots consistently. Faded edges are good if you want to show its not a full screeen shot.
Now Im done nitpicking :-) |
| Fri 13 Jun | non | Looks good. Where you say, 'Click the 'Product Info' button for an introduction...' I might put links in that text too. But I'm not a usability expert, so ymmv. |
| Fri 13 Jun | Ken Klose | I don't know if this is about your website per se. But I checked out your site when you first announced Lingo on these boards. I went straight for the screenshots and my first impression of them was that they looked like Borland Delphi circa 1996 (or Borland Pascal if Delphi's pedigree doesn't go back that far). Didn't look window's XPish at all as far as polish (i.e. eye-candy) goes.
Then I went looking for some sample code. A 20 or so line program that said 'Hello World' or 'Save Ferris' or some such, and didn't find it (maybe its there, I didn't find it).
Then I said to myself, 'hmmm, with a few more years of development, this might actually be useful for something, but if I want to write Windows apps today I'm gonna have to go off and learn Visual C++ or a Borland tool' (I'm a java guy) and left.
Sorry if I sound a bit cruel. I'm trying to be honest. I admire what you're trying to do but development tools is a crowded space, even if there is a need for a simple way to make Windows EXEs.
I haven't looked at your product, so I might be wrong, but I sense that you might running into the 80/20 problem that Joel described a while back (http://www.joelonsoftware.com/articles/fog0000000020.html ), it might be impossible to build a successful simple development tool since simplification necessitates removing complexity (features) and inevitably you'll remove (omit) a 'make-or-break' feature for virtually everyone in your target audience. |
| Fri 13 Jun | Thomas | My _subjective_ feedback:
1. Put the colorful 'Lingo Language' logo at the top-left corner and get rid of the boring horizontal stripes.
2. Reduce the intro text... I'd say cut out most of the 1st and 3rd paragraphs. Then, add some information about Lingo right there on the front page. Put something 'catchy' out there that makes me want to learn more. For example what's the key feature or aspect of Lingo that makes it stand out? And maybe put the latest couple of news items out there. (If you do this, be sure you have new news at least a couple times a month or the website will look start to look dead/abandoned.)
3. The buttons look kind of cheesy.
4. The screenshots are too small. Make them clickable and open a separate window to display full-scale images.
5. A 'Why should I use Lingo' page would be useful.
There's my 2c based on what makes a website get my attention and keep it.
-Thomas |
| Fri 13 Jun | Phibian | Random impressions, in no particular order:
'What's an FAQ' should read 'a FAQ'. But also, I would think that your target audience is going to know that. (Struck me as odd). Also, if your audience doesn't know what a FAQ is, then explaining what it is after the fact isn't *that* useful.
The website FAQ in general is probably going to be the least referenced section. Why is it at the top? My FAQ list would read something like:
What is Lingo (looking for a two sentence sound-bite)
Why should I use Lingo (top advantages?) or perhaps - Who is Lingo for?
I missed the 'what's different about Lingo' section at first glance, which would be my next question.
At first glance, I wondered what the difference between Lingo and VB is. I mean, aside from the implementation. I'll bet you'll get asked that a lot, because to someone with no background (like me) it seems to be the same on the surface. (Actually, we have a similar problem, with people asking us: 'What's the difference between our product and Front Page', or 'What's the difference between our product and PHP'. Which, since we get both questions all the time from potential users depending on their background, tells you something. But I digress.)
The technical spec section is a single line, so I missed it among the forest of words. Also, the rest of the FAQ is just there, whereas this section wants me to click on something to go to another section. I'd embed the technical specs into the FAQ as well as wherever else they are.
Shipping prices are listed and extraordinarily complete, but product prices are 'not yet available'. Not sure of how you go about ordering via Pay Pal - I guess not yet. I'd hide all of the Pay Pal stuff until you are ready to process orders.
'Finally, even the most brilliant progams sometimes have one or two little bugs! Use the Lingo debugger to ruthlessly hunt them down' Took me a moment to realize you were talking about the program written in Lingo, and not Lingo itself.
Quote: 'Only those who have successfully implemented an idea know the terrifying abyss between the idea and its implementation, and what it costs to bridge it' Not exactly the warm fuzzies I'd want to get from a program purporting to make implementing an idea easy.
Speaking of the quotes - at first they seemed to deal with the difficulty of software design, but as I visited more pages, they increasingly talked about subjects all over the map. I have mixed feelings about them. Certainly I don't think they are worth the inch and a half prime real estate you've given them, but that's just a personal opinion.
Tech support. Somewhere else I read that you 'welcome' calls between certain hours, and email anytime. Shouldn't your tech support number be on this page too, along with hours of operation? (Speaking of which, implying that you don't welcome calls outside of business hours strikes me as bizarre. I'd just say: 'For technical support, please call x during our business hours of, or call x between hour 1 and hour 2.)
News. It's very cute. It's got the personal voice thing - so again I'm ambivalent. I'm just not sure whether I'd put that sort of information as 'product news'. Also, most of the site comes across as very professional - eg defining insurance terms, non-delivery etc. But then your news section has a completely different tone (starving programmer tearing out his hair in an office covered with plastic sheeting and only his cats for company). Amusing, yes, but I was left confused as to the image you were trying to portray. |
| Fri 13 Jun | Stephen Jones | I like the aesthetics. The purple visited links still stand out on the purple background but I see no reason not to change either the background color or the visited link. Play around.
I like the buttons, and I like the boxed effect. I'm viewing in Netscape 7.0 at 1280 x 1024 for what the info is worth.
The screenshots are too small.
The tone of the FAQ's is much too patronizing. Somebody who doesn't even know what a FAQ is is not going to be in the market for a programming language, however basic.
Get rid of the random quotes at the top. Irritating.
Try and give the initial page a little more impact.
In general you're on the right track though. |
| Fri 13 Jun | jb | I agree that the buttons look kinda bad. My first impression of the site was that it reminded me of how sites looked about 3 or 4 years ago. It looks like a Frontpage theme. |
| Fri 13 Jun | Stephen Jones | Dear Phibian,
It's 'AN FAQ'. The letter 'F' is pronounced 'eff' and thus begins with a vowel sound, just as we say 'A UFO' because the letter 'U' is pronounced 'you' and thus begins with a consonant sound. |
| Fri 13 Jun | Big B | I suggest a 'User testimonials' section:
'WOW! ...more productive than Borland Delphi'
- RAD Booster
'Since I discovered it I'm finding putting together my programs so much easier.'
- Ged Byrne
(with apologies)
There are probably more to find in the previous Lingo thread if you dig deep enough :) |
| Fri 13 Jun | Philo | Stephen - unless of course you pronounce it 'fack' like I do. Then it's 'What's a FAQ?'
And given the confusion, I'd just leave the question out completely and make the header
FAQ (Frequently Asked Questions)
[Note - this is contrary to standard writing styles, but I think anyone who's scanning the headers will be scanning for 'FAQ'; people looking for answers will be reading and find the full text]
Philo |
| Fri 13 Jun | www.marktaw.com | First of all, congradulations on getting this out the door! It must've been a lot of work.
An F.A.Q. or A FAQ (pronounced FACK), You say Potato I say Potatoe.
seriously though, purple background = less professional
big bubbly buttons = less professional.
Screen shot of the icon? What value does that add? Makes me think you're lacking real features to show me.
The logo should be in the upper left hand corner of the page, not just on the homepage.
Tables with borders went out of style a while ago
One day I'm going to write the Dress for Success for websites.
If you want developers to respect you, you could emulate Sourceforge.
At least those are my obsevations. =) Take 'em or leave 'em. My website commits the ultimate sin of having a black background, and I'm working on a new design... I think it's going to be black again.
Your assistants are cute. Are all of your random quotes things you found on JOS? |
| Fri 13 Jun | Patrik | Thinking a bit more about the site; now its second thoughts really. I like the LingoLanguage logo. Have you considered using the four colors in the logo as an overall color theme for the site?
Also, before you start taking orders commercially, have another emailadress than the hotmail address currently on the site. Personally I tend to run in the opposite direction when I see hotmail and 'Buy Now' on the same page.
In my experience its important to project a 'company image' even if you are a small company/alone. |
| Fri 13 Jun | Stephen Jones | So it's 'What the FAQ's that!?' |
| Fri 13 Jun | www.marktaw.com | Patrick, well said.
Color Schemer Online just updated, maybe this will help him choose colors:
http://www.colorschemer.com/online.html This one actually works in browsers other than IE. |
| Fri 13 Jun | Bill Rayer | Aaargh, the pain....
Serionsly though, thank you all for the feedback and the suggestions. It's not always comfortable reading but it's exactly what I need. I'm going to print this out and use it for improvements.
FWIW I used notepad for the HTML (based on some files produced originally by hotdog), Paintshop pro for the buttons and some javascript for the quotes. I use dialup 56k modem and ISPs are fairly expensive here.
Thanks all. |
| Fri 13 Jun | www.marktaw.com | I love Paint Shop Pro, but still use verison 4. It's a good fast & dirty tool. |
| Fri 13 Jun | Bill Rayer | The version I used (6 or 7?) had pre-defined buttons and also generated the HTML for the button hilites (roll-overs in web artiste speak). Based on the feedback one of my tasks is to choose a more contemporary button :) |
| Fri 13 Jun | www.marktaw.com | Why not choose a site and model yours after that one? Not quite rip it off, but do a side by side comparison and decide what elements on your site can be improved to bring it up to that level?
We don't create in a vacuum. |
| Fri 13 Jun | Peter McKenzie | First impression: quite slow to load
2nd impression: Too much of what Steve Krug (Don't Make Me Think) calls 'Happy Talk' on the homepage. I mean 'This website has all the information you need to help with your programs.' ... doh! Of course it does, its the bloody homepage of the language! No need to state the obvious, people won't even read that far anyway. Read Krug!!
I think you need a tagline, how about 'Lingo, the easiest way to write windows executables'
Oh man, those buttons on the left hand side take an age to render. Quite annoying and makes the site feel a bit amateurish.
Site looks kind of dead without news on the front page, suggestion: cut down the happy talk and move your news/weblog to the front page.
I kept looking for a link to a language manual/guide/overview from the front page but it wasn't there.
Its a FREE demo download right? Announce that loud and clear so I see it before I decide there is nothing interesting here.
Apologies for being over critical. I think it sounds like an interesting product, although I'm not (yet) sufficiently motivated to download it.
Good luck with your business.
cheers,
Peter |
| Sat 14 Jun | www.marktaw.com | 'Steve Krug (Don't Make Me Think)'
Awesome book. I recommend it to everyone concerned with usability. Again, see my (humorous) review on Amazon. |
| Sat 14 Jun | Phibian | Stephen: http://searchwebservices.techtarget.com/sDefinition/0,,sid26_gci213954,00.html
http://dictionary.reference.com/search?q=FAQ
For what it is worth, my impression is that the pronunciation 'eff aa queue' is generally used if it is spelled 'F.A.Q.', otherwise 'fak' is the more common pronunciation (although both are acceptable).
Doing a general seach on google for 'A FAQ' (368,000) vs 'An FAQ' (72,000) it is clear that 'A FAQ' is more common, however 'The FAQ' is even more common (1,060,000)- and would avoid the confusion from people pronouncing it both ways.
Anyway. To get this back on topic:
-Copyright notice for the language doesn't match your news section. (1992 vs 1998). Why not?
-I really like the Product Information section. It's concise, contains the information I need to know, and has cute icons :) I think though that the Title 'Product Information' and the sentence 'this section etc' are superfluous.
I've thought more about what you are trying to do, and I'm wondering if you are targetting the right market. The impression left by the website is that the tool is aimed at rank programming beginners. The trouble is, that the vast majority of your non programming world is not likely to suddenly start programming. Others that are interested in programming but lack the skills won't be able to program unless it is extremely easy (and doesn't require thinking like a programmer). And, in this case, I think you are running into VB as a competitor again. And, based on a previous thread, the consensus around here is that although VB is powerful, it's seen as a language for inferiors. So there is a danger of marketing your tool as a tool for wanna be programmers. Certainly, I'll bet your early adopters have at least a basic programming background (something I'd ask at time of download, but that's just me). If that is the case, you should provide some examples beyond the 'Hello World' variety.
Anyone else have thoughts on this? |
| Sat 14 Jun | Maybe you should choose a different name... | http://www.erg.abdn.ac.uk/public_html/research/projects/lingo.html
http://hallhtml.com/html_graphics_design/156.shtml
http://www.lindo.com/table/lingot.html
http://www.fbe.unsw.edu.au/Learning/Director/Lingo/programming.htm |
| Sat 14 Jun | MyNameHere | Perhaps provide some downloads of executables that you have written in Lingo so that people can see what's possible.
Also, perhaps there should be a 'Docs' link which would have the documentation (including the hello world program). If there were downloadable docs then that would be great because that's how I evaluate languages.
There is a hello world program in the 'Technical Support' area. I found that strange because technical support is for people who are having trouble installing Lingo or similar problems, not for people who want to learn how to program.
Also, the hello world program you have would be better if it used the same format as the example in the 'Downloads - section 4 - Write a Program'. i.e. colourful screenshot and simple instructions.
I don't like the look and feel, but I also appreciate how difficult this is for a programmer - do you have any graphic designer friends?
If it's possible, get your isp to add some http headers to your graphics directory that tell my browser to cache the images - I dislike sluggish mouseovers (or switch to some css mouseovers/hover). |
| Sat 14 Jun | Oren Miller | It would really be A FAQ or A Freq...
You put A or AN based on the pronunciation of the word, not based on the pronunciation of the first letter. Just like I would never say 'give me AN freebie', just because it is the letter is pronounced eff.... |
| Sat 14 Jun | Harvey Motulsky | If I were to look at this web site for real, I'd have two questions:
1. Is this a professional product, a real company? Or just someone fooling around?
2. Who is this for? How is it different than VB or Delphi?
Since two of the three paragraphs on the first page say nothing (paragraph 2 is good), I'd probably conclude that this isn't for real.
The rest of the site, in a quick look, gives me no sense of who this product is for or how it differs from others.
With some programs, I figure I can evaluate the actual program in a few minutes. So I download a demo and try it, rather than read a bunch of stuff on a web site. But not a compiler! It would take a few hours, at least, to get a sense of what it is all about. So you need to give me a really compelling reason to spend those few hours. This web site simply doesn't give me a single reason to do so.
What is the point here? Easier to learn? More efficient to build small programs? More efficient to build large applications? More compatible? More modular? Easier to spread work over a team? Easier to write programs for PDAs? ???? The web site really doesn't give me a clue.
Sorry to be so negative, but I don't think it will be so hard to answer these questions and make a compelling site. |
| Sat 14 Jun | Guy Incognito | What does Lingo offer over VB.NET or Java (which are free and much more robust?) |
| Sat 14 Jun | Guy Incognito | Oh, I'll concede this product probably made more sense back in 1992 when it was first conceived, but now it seems like sort of a dinosaur.
Congratulation on your accomplishment though nonetheless.
Maybe a Lingo.NET would make more sense though if your really bent on sticking with it.
(It’s just my personal opinion, but the language syntax is ugly!) |
| Sat 14 Jun | Guy Incognito | If your interested in Lingo.NET I'd offer you my book 'Compiling for the .NET Common Language Runtime' by John Gough... but for some reason it ended up in the pile of books I donate to library... |
| Sat 14 Jun | Ken Klose | I have to agree with Harvey. A prominently displayed features matrix comparing it with VB, Delphi, Java or whoever you see Lingo as comparable to would really help a first time visitor get a sense of what Lingo is, and whether its useful to me. |
|
| SourceGear Vault vs SourceOffSite vs SourceSafe | Fri 13 Jun | le bob |
| I have proposed to my company to evaluate SourceGear Vault as an alternative to SourceSafe/SourceOffSite.
There are 3-4 developers using SOS, and 20+ using VSS (im one of the SOS folks). SOS/VSS drive me crazy, and must cost me at least 45 mins a day in lost productivity.
I have heard from the Vault mailing list that Vaults client is much faster than SOS for over-VPN, but slightly slower than VSS for local access.
Does anyone have any experience with Vault they could share? One of the other dev groups in the company is rather adverse to change, so the transition and resulting performance must be the same or exceed VSS for local access. Our repository is about 2.5GB in size.
Thanks! |
| Fri 13 Jun | richard | Dont forget to consider perforce (unless you really need the 'Share' functionality - can't think why :) )
http://www.perforce.com |
| Fri 13 Jun | | Or CVS and all it's variants.
wincvs
cvsnt
cvsweb
tortoise |
| Fri 13 Jun | Gregor Brandt | I highly recommend tortoise for any windows CVS uses out there. |
| Fri 13 Jun | Mark Hoffman | I'll second the recommendation for looking at CVS.
I primarily work in Visual Studio.NET so I use SS for local projects, but for anything that requires remote users I switch over to CVS.
It's a bit of a hassle at first when you come from SS, but once you climb that little learning curve it's an enormously powerful, and free, tool. |
| Fri 13 Jun | Matt Christensen | TortoiseCVS works amazingly well. Give it a try. It's free. |
| Fri 13 Jun | | I'll second the recommendation for tortoise. When we switched from SS I wanted a client that took less than 5 minutes to learn. Tortoise fit the bill: I was able to get up to speed almost instantly. As a bonus, I've been able to 'grow' into CVS. We run CVS on a linux box, but I know that there's some CVS implementations for Windows too.
Also recommend ExamDiff.
http://www.prestosoft.com/ps.asp?page=edp_examdiff
http://www.tortoisecvs.org/
Best of all, they are free. |
| Fri 13 Jun | Fred2000 | I use VSS in a side project, and CVS at work. VSS is lame lame lame, from the 1996-era installer to the not being able to check out the same thing to multiple users.
CVS, on the other hand, is beautiful. My Linux box runs as a CVS server, and does my nightly builds. From Explorer I can use TortoiseCVS, but I generally just use the awesome CVS integration in IntelliJ.
Also, CVS is free free free. |
| Fri 13 Jun | le bob | Yes, well if it was up to me I'd go with CVS completely, but outside of our group of 5 developers, the other 25 are deathly afraid of change, any sort of change.
And unfortunately due to 20 years of code base, my group and other groups have code bases that are intertwined in source control, using the stupid 'share' feature in VSS. Grrrr.
So really the only alternative that will get us off VSS is another package that looks like VSS, but is better. Which is why I'd like feedback on Vault (MS SQL backed).
Thanks! |
| Fri 13 Jun | Christopher Wells | ClearCase supports 'links' for what that's worth; I migrated a VSS repository to ClearCase. |
| Fri 13 Jun | mb | Have you demonstrated tortoisecvs?
Explorer integration is really cool.
Of course you do lose the Visual Studio integration, but apparently it can be integrated with VC6 or so. |
| Fri 13 Jun | Fred2000 | Wait, somehow your code is tied to VSS? It can't work unless you use VSS? |
| Fri 13 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | My experience has been that the major need for VS integration -- check-out before editing -- is really not required with CVS. I suppose I do miss the prompt about files being added to the project should also be added to the source database, but in practice, it's just much effort to hunt down the files that you haven't yet added as part of your merge & commit effort (once you get into the groove of it, anyway).
But I digress... given the requirements for something that works just like VSS, then CVS is definitely NOT the right choice. Of course, I count this as a bonus in CVS's column, not in VSS's column, but that's just me. :) |
| Fri 13 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | Should be 'it's just not much effort'. :-p |
| Fri 13 Jun | Dennis Forbes | Just as a quick comment, VSS does have multi-checkout functionality, though it has to be enabled in the administration (because some developer groups just aren't capable of handling merges). Having said that, there is no doubt whatsoever that VSS is lacking in he branching/SDLC arena. |
| Fri 13 Jun | Eric W. Sink |
Le Bob,
Apparently we don't have too many Vault users here on Joel's forum yet. Perhaps that will change with our upcoming 1.1 release, which has FogBUGZ integration. ;-)
If we can be of any help to you, feel free to contact me. |
| Fri 13 Jun | Bill Carlson | My company switched to Vault from VSS. The transition was painless. The UI is similar enough to VSS that long-time VSS users will pick it up right away.
Vault is a quality product that basically works. You can't say that for VSS. |
| Fri 13 Jun | trollbooth | [CVS, on the other hand, is beautiful.]
Try getting a guy in marketing ora complete n00b to understand 'import'.. 'wait so I import it to another machine? How is that an import?' |
| Fri 13 Jun | Nick Brosnahan | If you're interested in an up and comer, try Subversion. It's a replacement for CVS that is designed to overcome its shortfalls. It deals with irritations like not being able to version directories or moves. It also has support for metadata, constant time branching, atomic commits, and many other nice things, but it's pretty much as easy to use as CVS. It's been self-hosting for months and is nice and stable. Still working towards 1.0 though. |
| Sat 14 Jun | Philo | If you use Tortoise the only thing your users really have to care about is:
Update
Commit
Add Contents
It was easier to teach my boss TortoiseCVS than it was sharing a .Net web project.
Philo |
|
| The Mythic Microsoft Monopoly | Thu 12 Jun | Conspiracy Anti-Theorist |
| Microsoft was never a monopoly, is not a monopoly now, and will likely never be a monopoly.
But before you grab your pitchforks and torches, let me explain.
A monopoly is a company who has *no* competition, nothing more. There is no implication of wrong-doing in the term.
Back in the day, you had a choice between Standard Oil and um, nothing! If you didnt choose gas from SO, you didnt drive a car. Because of this stance and some greedy executives, SO began raising prices to an unreasonable level.
After enough complaint, laws were passed prohibiting monopolies, because if a company has an entire industry, and absolute power corrupts absolutely, the *consumer* (*not* competitor) suffers.
And so SO was broken up into some of the companies we know today: Exxon, Chevron, and Mobil. In Europe there is still Esso (SO spelled out).
Later in the 20th century people had a choice of AT&T and not having phone service. And as technology got cheaper and operational costs lowered, prices increased because of greedy executives. So consumers complained until the government stepped in. Unfortunately, they botched the job and only created the micro-monopolies we know and hate today.
Welcome to the last 20 years. Microsoft Corporation has major success with a product called Windows. Everyone on Earth (except Apple) is rejoicing because the GUI can now sit on top of DOS, making PCs a lot more appealing, and shattering Macs micro-monopoly of GUI enabled computers for the home. Consumers win big.
Enter 1995. Until now, networking in Windows has been difficult and buggy, and the Internet has entered the arena. Both of these areas are of hot interest, and Microsoft knows that these things need to be integrated into operating systems.
Novell has been making millions selling software that replaces Microsofts difficult networking. But with the introduction of Windows 95 and dramatically improved networking, Netware takes huge hits. Novell doesnt like this, since they havent done enough R&D to put out a product before they get killed. So the only recourse they have is to start lobbying that Microsoft is trying to take over everything.
WordPerfect is a very similar story to Novell. They didnt invest in R&D to make a GUI word processor, and then it was too late. They sell off to Novell who starts complaining for them.
Netscape is developing a web browser, but since thats their business, they have to sell it. But the browser doesnt have significanly more features than Internet Explorer, so people take what they get for free. [If you disagree with this argument, think about this: If a Sony car stereo doesnt have better features than the AC Delco in your new GM car, will you buy the Sony? But if it does, you most likely will.] Netscape has no other recourse than to follow the example of Novell and accuse Microsoft of being monopolistic.
As people who liked Novell, WordPerfect and Netscape products rallied, they found a new banner to follow: open source. They didnt like it because it was good. They liked it because they could use it against Microsoft. And they used it only because it was *free*. [Contradiction: They resorted to competitors free products to fight Microsoft giving away free products (IE)]
At the same time, Microsoft is making ordinary contracts with computer manufacturers to ship Windows with new systems. One of the clauses is that the manufacturer can get a good deal on software if they only sell MS. This is ordinary. Coca-cola pop machines dont sell Pepsi, do they? The anti-MS coalition calls it anti-competitive and monopolistic, which is true, but remember, its far from unique.
Enter Sun and their Java platform. They resurrect an old idea from the 60s into a new coffee-flavored name: one language that could be used on all platforms via a virtual machine. They want strict control over the platform so they can make sure no one takes away their cash flow, because in software its often the second guy to come along who wins. It gets implemented by many companies (MS included), and the idea doesnt work at first. Everyone has made proprietary changes, so you dont get the true platform independence. Sun doesnt want MS to be the second guy (who might win), and MS is the only one with money. So Sun joins the anti-MS group with a lawsuit. And yet today, Sun is still trying to get everyone in line so that their idea can work.
After successful political lobbying by these corporations, the government agrees that MS can be a government cash-cow. So they lay charges of being a monopoly.
But wait! Does MS have competitors? Yes, tons! How can you have a monopoly with competitors existing? You cant!
Have the complaints come from consumers? No, Windows is still flying off the shelves. Win9x is less than $100, and upgrades are half that. NT/2000/XP Pro are priced for businesses at $300 or less. [Compare that to Photoshop which has maybe a 20th the code, but retails for $1000] Complaints have come from competitors. The monopoly laws were meant to protect consumers, not competitors.
Is MS a monopoly? No. Were they judged as such? No. They were prosecuted under the only law available.
Are they guilty of practices that shut down their competition? Yes. Is every company alive guilty of that? Yes. Is it illegal to do that? No.
The lawsuit was dreamed up and they were guaranteed to lose. Why? The government and the anti-MS coalition wanted a cash cow. They never got a fair trial, since the lawsuit was a mean to an end, and not an end.
The Microsoft Monopoly is a myth. They are only guilty of being successful at doing what every software company wants: being a household name. |
| Thu 12 Jun | Stephen Jones | Dear conspiracy anti-theorist,
Read the findings of fact in the DOJ v MS case. It states quite clearly that MIcorosft is in a monopoly position in the OS market, and that it abused that postion.
Consumers are complaing about Windows; they actually took out a class action in California over Win 95 and MS settled.
When the Koreans or Chinese dump goods for less than the cost of production on the American market it's not the consumer who asks for retaliatory tariffs, it's the American company which cliaims it is unfarly being driven out of business.
With regard to Standard Oil it was Rockefeller's firm belief that capitalism and unfettered competition was bad for America and for business, and that a cartel or monopoly would provide the seciurity necessary to provide a stable marketplace and protect the consumer. Exactly the same argument you are using more than a hundred years later.
|
| Thu 12 Jun | Johnny Bravo | Let me add some details: (1) The very first version of the Netscape browser has not been written from scratch, but rather used the codebase of NCSA's Mosaic browser. Isn't it ironic that the primal accusation against Microsoft in the so-called browser war was: 'first they'll give it away, then charge for it'? (2) Until the late 90's IBM was making more money from software than Microsoft did. (3) Sun's primary goal for Java was to give their product (sic!) Java away for free, then, once a firm user base was established, sell Java-affine hardware. |
| Thu 12 Jun | Conspiracy Anti-Theorist | Stephen,
I am not advocating monopolies, since they tend to hyper-inflate prices which is bad for consumers.
The group in CA was a small group that saw an opportunity to get some cash back at the expense of manipulating media hype. I bet most still use Windows and are happy with the capabilities of the system. |
| Thu 12 Jun | Philo | By law, a monopoly controls around 85% of the market. Microsoft has been found to be a monopoly in the desktop software market.
Being a monopoly is not illegal. The government doesn't care if you can only get something from one place. What *is* illegal is abuse of monopoly power - once you have customers locked in, do you take advantage of them?
FWIW, I don't think MS is particularly successful at abusing monopoly power - they only win because the other side routinely screws up. They went after Quicken and lost, badly. Now Quicken is screwing around with copy protection and Kiplinger's is reaping the rewards.
Philo |
| Thu 12 Jun | Mickey Petersen | Wow.
Great posting. I must say that I completely agree with what you wrote; it's concise, eloquent and correct(in my book anyway).
Most people can't seem to fathom that Microsoft is doing a good job at their task; sure, they have their flaws like any other company on the earth, and they take their fair share of flakk for it.
People seem to think that you can keep selling crud to people and expect them to keep jumping on the proverbial bandwagon. That's just not true.
If Microsoft sold really, really awful products they wouldn't *have* a monopoly. You really can't build a monopoly on crud. Look at the dotcom era. How many of those sold air? Lots. How many of those that sold air still sell air or are even around? Close to none.
Why? You can't sell pee, call it lemonade and then go on to build an empire based on your 'magic recipe'.
If it's not the 'destructive marketing' it's the prices. Case in point: Microsoft Office XP Full is priced in at $437.82 dollars at Wal-Mart. Sure, that's a lot of money if you're a home-user; but, then again, most home-users own OEM and not Alienware or their own homebuilt machine. Most OEMs come with Microsoft Works or Microsoft Word bundled with the machine. That leaves those who roll their own machines or those who own businesses. For a small business this price is little compared to the increase in productivity they gain with the product. Why is it not important? They use it to further their own business, speed up processes by typing in their letters, budgets and whatnots vs. using a pencil or a typewriter.
Those who roll their own have to decide if they REALLY need it and either buy only the parts they need, or suck it up and pony up the cash for it and then stick with it for all ternity. (There's still the factors of development costs and whatnot, but explaining that here would be redundant, eh?) |
| Thu 12 Jun | Mark Hoffman | ' Read the findings of fact in the DOJ v MS case. It states quite clearly that MIcorosft is in a monopoly position in the OS market, and that it abused that postion. '
They may be true, but it doesn't mean that the Court was correct. It just means that is what that Court felt and MS felt it wasn't in their best interest to keep appealing.
And people suing an enormously wealthy company by no means proves anything. Large companies are sued every day for silly things. It's the Great American Lottery. Find a company; sue; hope you win and win big. |
| Thu 12 Jun | eclectic_echidna | The courts say that Microsoft (M$) is a monopoly.
The courts say that OJ is innocent. (At least the first time around)
Who cares? I like M$ being a monopoly. That way I only have to code for one OS, and have a very high chance of getting M$ type jobs for many years to come.
In the mean time, I will hedge my bets and stay current on MySQL, PHP, and perl.
Long live M$!
--
ee |
| Thu 12 Jun | JJ | It is absolutely NOT fair for MS to force companies who want to sell Windows computers to ONLY sell windows computers.
It's like I own a beer company, and by beer has 75% of the market.
Then, I say: any bar or shop that wants to sell my beer must NOT sell another brand of beer - otherwise, I won't give them my beer to sell.
And so I instantly increase my market share from 75% to 98%, or something.
This practice is absolutely unfair! |
| Thu 12 Jun | Johnny Bravo | Actually, the anti-Microsoft movement is quite popular over here in the European Union, especially in Germany. But alas - any major company is subject to be sued or publicly offended, be it for it's so-called monopoly, discrimination against women, exploitation of the Third World, etc.pp. Same applies to other countries (cf. Dubya).
Recently, there's been a pitch in Munich, Linux vs. Microsoft, regarding the OS on the 14.000 desktops belonging to Munich's administration. Linux won. IBM got the contract. So it's not 'grass roots vs. big business'. |
| Thu 12 Jun | Sgt. Sausage | To the original poster:
Amen brother! I couldn't have said it better myself. |
| Thu 12 Jun | Conspiracy Anti-Theorist | You're right, it's not fair, but not unique to MS.
Companies rarely like the word fair.
My argument is we should not build MS into this empire of evil.
Let's get on with the world and write great software. MS hasn't stepped in my way to doing that. |
| Thu 12 Jun | Johnny Bravo | To clarify the latter post: bashing Microsoft is as popular as bashing George W. Bush in Germany, for the same reason: people believe (sic!) they fight against the Great Evil. |
| Thu 12 Jun | S. Tanna | I personally think Microsoft Windows has a monopoly. The reason being, yes you can purchase other operating systems, but in a lot of cases there is no practical alternate choice for the business or vertical applications that users might need, so in effect customers have no choice.
I think most of the things MS is accused of, seem to be hokey claims.
For example: Integrating the web browser with the OS and file browsing?Practically every browser was trying that to some extent
The most serious allegations to me are none of the technical stuff about OS features, but simply the pricing schemes for OS (now reformed) - i.e. per computer type or per CPU shipped -- and the allegations about reverse bounties.
And I agree most of Microsoft's competitors have tripped themselves up.
One thing people never seem to mention about the DOS->Windows switch, is there was a step change in numerous application markets. The dominant vendor tended to be the one who got a good Windows version out first, rather than the previous dominant vendor. Only case I can think of that wasn't like that - AutoCAD.
Right now I think MS is going off the rails. To maintain their stock price they need constantly growing revenues. As they have more or less filled their main market, this is why they have been experimenting with other stuff, which I expect them to lose money on or at best break-even on. |
| Thu 12 Jun | Johnny Bravo | Microsoft does not depend on a high stock-price, as they are told to have some 40 billion dollars in their pockets. |
| Thu 12 Jun | Stephen Jones | Microsoft has indulged in some very nasty illegal tricks (apart from the legal ones such as false promises and spreading of FUD).
Remember the Caldera DOS case; MS wanted to make people use MS DOS with Windows 3.1 instead of any other DOS, which would have worked just as well. To cut out the competition in the DOS market it put in subtle bugs tnat made Windows 3.1 unstable with those OS's.
Then there is the forcing OEM's to pay for MS OS's even if they don't ship them, and then refusing to let OEM's ship a second OS in a dual boot configuration, or even to partition the Hard drive so the owner could install a second OS himself (ever wondered why your HD came as one huge partition even though most sensible people want to keep their data on a separate partition?)
The class action against MS was based on lack of support for Win 95. Basically they released it but didn't provide support for the bugs; I was in Spain at the time and small companies were finding their systems crashing, and they went to the vendors, who then found that all the MS support lines for OEM's were permanently engaged.
I really fail to see why it can't be accepted that Microsoft often produces good products, and that even when it doesn't it gains market share through the gross incompetence of the competition, yet in other cases its commercial practises are immoral, and often illegal, and certainly would not be tolerated in any other industry. |
| Thu 12 Jun | S. Tanna | Yes they will continue to operate for a long time, regardless if their stock crashes because of cash reserves
But all key execs, and many employees own stock and are therefore motivated by stock price. |
| Thu 12 Jun | Voice of rationality | Just a quick note. I would love it if Microsoft bought or built anti-virus software and embedded it for free in Windows. One less thing to worry about.
Why should I have to pay 3rd party companies for
-- backup tool
-- file compression utilities
-- browsers
-- intranet web servers
all stuff missing from MS-DOS/Win 3.1 that MS has added over time.
Every new Windows version brings more capability for the same price. I enjoy using Linux and Java (esp on the server), but I've got a Win XP box on my desk. I appreciate its ease of use and the fact that so much comes with it. |
| Thu 12 Jun | Stephen Jones | ---'I would love it if Microsoft bought or built anti-virus software and embedded it for free in Windows. One less thing to worry about.'----
And have it updated by Windows update?!
I quoted Dvorak in the other artilcle about how he thought MS wanted to include anti-virus software because it would mean that you would have to connect to them every day, and thus be more prepared for a subscription model for everything else.
And imagine the horror of it if MS managed to see off the oppostion, as it has almost done with browsers. Now at least you can say you don't want an upgrade but with AV stuff you won't have a choice, and of course, then you will find that they will not let you just get the virus definition file updates but must pay for the updates to the whole program. |
| Thu 12 Jun | Marc | JJ,
You analogy is completely wrong. They didn't they you *couldn't* sell other software, just that it will cost less if you sell them exclusively.
This is EXTREMELY common in business. Anyone who owns a restaurant will tell you that selecting a number of products exclusively will lead to better pricing.
Coke will give you steep discounts to exclusively sell their product.
Scotts will give you a free towel dispenser for your bathroom, if you agree only buy from them. |
| Thu 12 Jun | And the horse you rode in on | By the court's decision, Microsoft don't even compete in the market they're supposed to have a monopoly in. No recent version of Windows (either the NT or 9x line) fits the definition given for 'desktop operating system'. |
| Thu 12 Jun | Mister Fancypants | Microsoft are certainly no saints, but their current de facto monopoly has much more to do with their competitors not understanding how business works as it does with Microsoft using shady tactics.
And, in response to S. Tanna's above:
Why should Microsoft be punished because third party developers don't write software for other operating systems? Hell, MS even writes the occasional update to MS Office for Mac...
Most people just seem to gloss over the fact that Microsoft wasn't granted a monopoly through government regulations, ala AT&T. They fought to the top, mostly against a company (IBM) that people thought was as unbeatable as people currently think Microsoft is.
When you ask most Linux zealots why Microsoft is 'number 1' their only answer is 'because they abuse their monopoly', but that's a chicken and egg answer, they can't have gotten in their #1/monopoly position by abusing their #1/monopoly power if there is no government granted monopoly. |
| Thu 12 Jun | S. Tanna | > And, in response to S. Tanna's above:
I don't think I said they should be punished for merely being a monopoly.
My point is merely that they have a monopoly at least in certain application types
If MS should be punished for anything, it is for if and when they abuse their monopoly. |
| Thu 12 Jun | S. Tanna | > When you ask most Linux zealots
BTW I hope you are not including me in that category. I do not use now, have never used, and have no plans to use Linux. I write Windows software, though in the past have used/programmed other OSs.
I have also written some articles upset/enraged one or two Linux/Open-Source folks |
| Thu 12 Jun | T. Norman | 'This is EXTREMELY common in business. Anyone who owns a restaurant will tell you that selecting a number of products exclusively will lead to better pricing.'
That is fine as long as you're not a monopoly. If a shop sells only one non-monopolistic brand, consumers will be able to easily find somebody else who sells a different brand. But with a monopoly, consumers have to search long and hard to find any alternatives, and are often unsuccessful at doing so. Try buying a new laptop with Linux installed instead of Windows. Or a laptop with no operating system at all. You almost certainly won't be able to find a shop that sells one within 20 miles of your house, and once you get on the internet, you'll be lucky to find more than 3 vendors in the country who will do that. And even then those may not sell laptops with the specs you want. |
| Fri 13 Jun | Bored Bystander | Microsoft has done a superb job of exactly one thing: letting smaller, weaker companies research new areas of SW business and letting them pour money into product development and other trailblazing. Basically, knock themselves out as the 'evangelists'. Once the market need is established, MS basically clones the concept and runs the pioneers out of business, more or less.
They've done this with: windowing OSs; disk compression software; financial software; office productivity software; networking platforms; web browsers; development tools - to name just a very significant few. I think if you look carefully, MS has never really invented or pioneered ANY new area of business. They're not stupid!
Why is this, that is, why can MS keep re-inventing itself? I think it keeps coming back to the fact that MS is an empire composed of semi-autonomous 'soviet republics'. They haven't yet gotten big, stupid and complacent, as most of their once-competitors did. The divisions within MS operate like survival obsessed small companies.
They watch and observe the marketplace... 'oh, look, Borland's doing RAD with Delphi... hmm, when we do .Net, let's 'adopt' that concept of component based programming in C#.' IE: VB was a somewhat inept trailblazer of a product (unique for MS to pioneer anything, really); Delphi was brought out as the VB-killer which it never really became; and Delphi more or less taught MS what really effective development tools ought to do. For free. And, Borland stupidly bungled the marketing of Delphi - pricing it out of reach of their core solo developer/fans, for one major thing.
Borland was and is a stupid company that toyed with the 'enterprise' market (Inprise? hahahaha) and disregarded its long suffering hacker loyalists. Novell was a big, stupid, arrogant company that reamed its customers. Wordperfect was once a big, stupid company that lost its market position by not embracing Windows at the outset.
Anyway, that's an aspect of MS's behavior that I didn't see discussed in this thread. Basically, it's neither illegal nor immoral to use your competitor's stupidity against them. Rather, I see it almost as admirable... |
| Fri 13 Jun | Conspiracy Anti-Theorist | I think that follows the principle of the second guy often winning in software.
Someone will spend a lot of cash to make a product. The second guy adds a cupholder to it, slaps a Disney logo on it and kills the original vendor. |
| Fri 13 Jun | Yanwoo | We all need to consider the longer term consequences of a monopolistic power abusing their position. Less choice, less innovation and higher prices.
Microsoft have been fantastically successful and I don't think they should be punished for this, however, when you reach a position of monopoly you need to act with more social long term responsibility. Your actions can cause significant damage. |
| Fri 13 Jun | Stephen Jones | Insisting that a company only use your products and offering a huge discount for them has been common practise for as long as I have been alive. It has also been illegal for most of that time.
Even buying a distribution company to sell your ownproducts is likely to cause government intervention. It used to be common in the UK for pubs to be owned by breweries that forced their managers or tenants to serve only their beer. This practise was stopped many years ago.
The worst offenders are in fact the members of the Motion Pictures of America Association. Their pet practice is bundling. If you want to buy one movie from them, say 'Titanic' or 'Gladiator' you have to buy a whole bundle of crap that they'd never be able to sell otherwise. When the Spanish government thought about doing something about that in the early 80's the Minister of Culture, Jordi Solé Tura, got a personal visit two days later from the President of the Association.
It's quite strange. The heads of the 'IP' megacorporations spend half their time lobbying governments to kill regulation designed to ensure a level playing field on the grounds that it interferes with their market, and the other half of the time lobbying the same goverrnments to bring in ever more restirctive legislation to protect their dubious intellectual property rights. Then they proceed to get a whole army of followers who voluntarily bombard the web with the half-digested pap from their PR departments.
And these people are the same ones who always said the problem with communism was that you could only have one type of car.
Or one type of petrol. Imagine if a petrol company with 80% market penetration, told car manufacturers that their customers would get a 20% discount if they fitted the car with a chip that only allowed it to accept one kind of petrol. How many car manufacturers would risk not doing that?
Let's give you another example. Mobile phones. In the UK, and many other countries, it was common practise for the telcos to actually give away the phones on condition that the user signed a contrac with the telco for a certain period of time. This is one of the main reasons why you have near 100% mobile phone ownership amongst those that want it in the UK. These phones were deliberately limited to be used by one telco only. However the telcos failed in their attempts to stop people flashing the firmware to make the phone compliant with all other companies once the initial contract period was over.
I can continue, but the point is that people are defending behaviour from Microsoft that they would never defend in any other industry. |
| Fri 13 Jun | Johnny Bravo | Actually, Microsoft's CTO William Gates III. is totally aware of his social responsibility. Just browse a little on http://www.gatesfoundation.org/ and compare that to the behavior of Microsoft's competitors. |
| Fri 13 Jun | Stephen Jones | So Bill Gates makes sure everybody knows about his generosity whilst his 'competitors' may keep it under wraps.
The truth is that Gates has been known to use philanthropy as a way of pushing his company. Look at his last visit to India as an example.
Secondly we are not talking about what Gates does with his earnings; we are talking about whether they are ill-gotten in the first place. Any Colombian drug baron spends a much higher proportion of his income on social causes than Gates does, but that doesn't mean we approve of their business practises. |
| Fri 13 Jun | Johnny Bravo | Please provide some background information, facts, figures, numbers on the latter statement. |
| Fri 13 Jun | Johnny Bravo | To put it more bluntly: are you in any way affiliated with any of those Colombian drug barons, or where does your insight stem from? |
| Fri 13 Jun | Johnny Bravo | Here are my numbers, taken directly from the foundation's web site: '(...) the Seattle-based foundation has an endowment of approximately $24 billion through the personal generosity of Bill and Melinda Gates.' yes, that is a 'b'. |
| Fri 13 Jun | | 'A monopoly is a company who has *no* competition'
This is completely untrue. The legal definition may differ from one country to another. |
| Fri 13 Jun | Chris Nahr | Windows is just one side of the Microsoft quasi-monopoly; the other side is Office where MS pursues a pricing scheme that prevents anyone else from breaking into this monopoly. Have a look at the MS Word 'How to buy' page:
http://www.microsoft.com/office/word/howtobuy/default.asp
Way down the page, you can buy a new license of Word XP (without the rest of Office) for US$ 229. Okay, now let's look at the pricing for the whole Office XP package:
'Professional': $329, includes Access, Excel, Outlook, PowerPoint, Word.
'Standard': $239, includes Excel, Outlook, PowerPoint, Word.
'Standard' for students & teachers: $149.
Notice something? For TEN extra dollars, you get Excel AND Outlook AND PowerPoint in addition to Word! That's the equivalent of paying an extra $1000 when you buy a new car, and get two more cars for free.
So what will potential Word customers think upon seeing this pricing scheme? Of course they'll go for the whole suite, either Standard or Pro -- and never even think about checking out competing spreadsheets, or e-mail programs, or presentation programs. Same with buying Excel; similar with Access and Outlook, although the price difference is here around $100 instead of $10 (still way less than the combined price of individual products).
Bundling rebates are common, of course. What's unique is the amount of rebate Microsoft is giving out. You couldn't do this with non-software products that required any significant manufacturing costs. IMO this is a legal loophole that should be closed so as to allow competition for individual office applications. Either Word is really worth $200+, then you can't give it away for $10 in a bundle. Or it's really worth $10 (or $20), then you can't sell it for $200.
(Uh, and why is MS whining about piracy if Word is really just worth $10? :-p) |
| Fri 13 Jun | doesn't really matter | I would like to raise a question about open source software: do you think it can be seen as unfair competition?
I mean how do you think ISVs feel when one day they see on the market a competing open source product that is offered for free and whose development was funded by big hardware companies with tons of money? |
| Fri 13 Jun | Stephen Jones | Dear Mr. Bravo,
How much of the Gates foundation money is actually in Microsoft shares and how much in hard cash?
How much of that money has actually been spent, and how much of the money that has been spent directly or indirectly benefits Microsoft?
What evidence do you have as to the charitable donations of other major sharelholders in the software, hardware, telecommunications industries or any other industries that allow you to make a comparison?
Do you think that the fact that most of Rockefeller's money was given to the Rockefeller foundation makes arson, extortion and murder legitimate business practises. (All were used by his companies in the 1870's) . |
| Fri 13 Jun | Simon Lucy | Some actual facts.
Until 1993 in South Korea every motherboard manufactured had to have an MS DOS licence paid for. This was under the guise of protecting against piracy.
It was a cost that every other competitive OS supplier had to overcome in the sale either of OEM product or Retail product.
In 1993 the FTC in South Korea declared such contracts illegal and monopolistic ( before the US or EC got their act together).
Those same contracts persisted in Hong Kong, Taiwan and Thailand after 1993. This monopoly was supported by Intel, it was AMD that broke that monopoly as a side effect of breaking the Intel stranglehold by undercutting prices and providing performance that Intel struggled to meet. |
| Fri 13 Jun | Just me (Sir to you) | Go to http://www.sciencemag.org/search.dtl and do a search for 'Gates foundation' for the incredible impact this institution has on the worldwide public health scene. |
| Fri 13 Jun | Stephen Jones | Er, Just me's link will lead you to a search engine that will give two articles about the Gates foundations spending in public health.
Unfortunatley to read them you need to be a member of the AAAS, or get free partial access, which is not available to those who use Netscape as a browser. |
| Fri 13 Jun | Stephen Jones | And may I point out that the question isn't how Gates is spending his money but how he earned it. |
| Fri 13 Jun | S. Tanna | The surreal thing about these types of discussion is that Microsoft is in my opinion not the only monopoly in the software business, or even in the PC software business.
It seems that the stock market goes crazy, the whole premise, is often the new company who stock is skyrocketing will hold a monopoly in a certain business area in a few years - although the analysts usually call this something like 'high barriers to entry' or 'network effects'.
Examples of companies that have succeeded:
Anybody know any serious computer artist who doesn't use Adobe Photoshop? Now look at the cost of Photoshop compared to other computer graphics programs
Some other PC-software examples: Adobe/PDF, AutoCAD, Macromedia/Flash/SWF
I actually think the government's role should be to foster CONTINUING innovation and competition:
When network effects get too strong: break up the company and/or force them to open up their file-formats/APIs/etc. Breaking up a company is NOT punishing the company, as very often a broken up large company is worth more to the stockholders once broken. |
| Fri 13 Jun | Stephen Jones | The problem with breaking up the company is that of valuation. How much would the OS or server division of MS be worth if the Office division made a version for Linux?
The argument against MS's monopoly is that it is using it to embrace and extend. I suppose you could argue that Photoshop has its plugins, and they make it difficult for others to enter, but I doubt if you could claim the same about Quark Express, or AutoCad, or Flash. |
| Fri 13 Jun | Just me (Sir to you) | Sorry about that. I guess you need a subscription to Science.
Some excerpts:
'The foundation has rearranged the public health universe so speedily that many have yet to comprehend the change. “They're having a huge impact,” says Barry Bloom, dean of Harvard School of Public Health in Boston, which, along with his own lab, has received some of the Gates Foundation's largesse. “There is no other money like that anywhere in the world.” The $400 million investment in AIDS projects, for instance, is having a major ripple effect, says epidemiologist Peter Piot, who heads the Joint United Nations Programme on HIV/AIDS, by “shaming many ‘donor’ governments” into spending more.'
some examples of projects funded by the foundation:
Vaccine Fund
Immunization of poor children
$750 million
International AIDS Vaccine Initiative
AIDS vaccine R&D
$126 million
Global Fund to Fight AIDS, Tuberculosis and Malaria
Increase in treatment and prevention
$100 million
Program for Appropriate Technology in Health
Elimination of meningitis in sub-Saharan Africa
$70 million
Save the Children Federation
Global neonatal survival initiative
$50.5 million
African Comprehensive HIV/AIDS Partnerships
HIV treatment in Botswana
$50 million
Harvard Medical School
Tuberculosis control
$44 million
London School of Hygiene and Tropical Medicine
Establishment of malaria center
$40 million |
| Fri 13 Jun | S. Tanna | > The argument against MS's monopoly is that it is using it to embrace and extend. I suppose you could argue that Photoshop has its plugins, and they make it difficult for others to enter, but I doubt if you could claim the same about Quark Express, or AutoCad, or Flash.
That 'An argument' not the 'The argument'. Another argument is whether consumers are getting a good enough deal because of lack of sufficient competition.
Compare the cost of Photoshop vs other graphics programs. Compare the cost of AutoCAD vs other PC CAD programs
Incidentally AutoCAD has their scripting, plug-ins and APIs, and DWG format, third party products that integrate with AutoCAD.
And with any complex software, there is a huge barrier to entry - in just getting people to understand/switch to other complex software. |
| Fri 13 Jun | Christopher Wells | http://www.pbs.org/now/transcript/transcript_gates.html |
| Fri 13 Jun | Mike | And thus ends this weeks 'Moments in History as I Care to Recall Them.'
Join us next week when we tell you who made the GUI |
| Fri 13 Jun | Stephen Jones | I can get to see the abstract, but only if I follow a five step registration process that involves accepting advertising emails, and I have to use Internet Explorer to register anyway! I do consider it ironic that MS attempts to cut out the competition result in us not being able to read about his exploits.
The fact that there 'isn't this kind of money' going around elsewhere says more about the priorities of governments at present than about the generosity of the Gates foundation.
And I honestly couldn't care if Bill gave all of his money away and lived naked in a mud hut. The matter under discussion here is the nature of MS's monopoly, not what Bill does with the money once he's earned it. |
| Fri 13 Jun | S. Tanna | > The problem with breaking up the company is that of valuation
I am not a stockbroker (or a lawyer), but can't see why that would be a problem.
Say you break MS say into 4 or 5 pieces, like
- Operating Systems including IE
- Business Applications (Office)
- Enterprise Applications (Back Office, SQL Server etc)
- Internet sites (MSN, Hotmail)
- XBox / Games / Home (Encarta)
Then you give 1 stock certificate in each new company (5 total) for each stock you held in the old company.
The companies will diverge over time as they do have different interests, especially if you make the insiders sell a good percent of what they own over a preset period of time. (So Gates etc. doesn't own a big chunk of all 5 new companies - he can keep his stock in any one of the 5 he picks) |
| Fri 13 Jun | Stephen Jones | Massive problems. If you simply split the companies up but keep the same proportion of stoclk in each then the split is a charade.
And if you don't how do you value them. Remember you are splitting them up because one section is using its ppwer to leverage sales of the other. So which will dominate when they are separated? Will the Office section go down the drain because other companies have the same access to API's as they do, or will the OS system contract because people turn to Linux after MSOffice turn out a Linux version (or even decide to stop supporting the Windows version altogether!) |
| Fri 13 Jun | Stephen Jones | And how do you split the server and desktop market when the OS is basically the same.
Yet MS has always used changes to the one to force sales for the other. Want a client server network; buuy NT server and then the client licenses. Want a mail server, then you need not just Exchange and its client licenses but also W2K server and all of its client licenses. And what happens when they are forced to open up the API's so that you can connect to Samba and avoid the client licenses; they take away the ability to connect to a domain from XP Home, so you have to pay the equivalent in the lost client licenses in discriminatory pricing. |
| Fri 13 Jun | S. Tanna | > Massive problems. If you simply split the companies up but keep the same proportion of stoclk in each then the split is a charade.
The insiders are forced to sell their shares over a set period. Bill Gates for example is not allowed to own more than 1% of 4 or the 5 (he can keep a big holding in any one) after say 2 years. Senior execs are only allowed to hold a board position 'new' baby-MS company.
Over time the stocker holders of each will diverge. Not everybody who believes in the future business prospects of Windows believes in a good future for X-Box or vice versa, so you might sell you share in one company, hold another, acquire from a third etc.
The stock price for each is determined by the market when people trade. Just like other stocks.
The baby-MS companies interests are different, and differences will increase over time. For example, from day 1, the MSN/Hotmail company has no particular internal interest in pushing IE. |
| Fri 13 Jun | S. Tanna | The pieces are arguable, it could be
- Operating Systems including IE
- Business Applications (Office) + Enterprise Applications (Back Office, SQL Server etc)
- Internet sites (MSN, Hotmail)
- XBox / Games / Home (Encarta)
or a dozen other variations.
I don't see a problem with pricing. If you buy an Oracle Database server, and an Oracle-based application written by somebody else, the market is able to make this model works - and there is in fact a broad choice of Oracle-based applications, and applications which work with different database servers. Likewise you could get Exchange being only 1 of many different *popular* mail servers that run on Windows platforms (and a baby-MS server company would presumably encourage this), likewise you'd get mail/groupware clients that worked with various different servers (an the baby-MS business client company would presumably be one of these) |
| Fri 13 Jun | Johnny Bravo | Dear Stephen Jones,
I'd rather not go as far as saying that Mr. Gates were some kind of modern Robin Hood. But fact is that (1) Microsoft does not pay dividends to it's shareholders, and (2) Bill Gates for sure does not have an annual salaray above 100 Million US-$/year.
So where does Bill's money come from? Partly by selling his own stock, partly through strategic investments in other companies. The bottom line is: he has taken money from his customers, and given part of it to the foundation. The rest of the profit still resides inside his company.
Actually, it _does_ matter how he spends this money, because (cf. Gordon Gecko) money is not created or destroyed, it rather changes its keeper. And I do sleep better knowing that a share of the money spent by buyers of Word helps researching AIDS cures, than seeing it pour into the pockets of SUN or IBM.
On a side-not: If people were not using MS Word, but rather OpenOffice - do you think anyone would really save money? No, because even in the Linux/Unix market large installations of Office Suites are being accompanied by large corporations, namely IBM and Red Hat, or SuSe over here in Germany.
Also, one should notice that the marketing strategies as performed by Microsoft do have their roots in IBM. Microsoft did not invent bundling of software, nor has it been the first company to aim at world dominance ('We are the dot in com.')
Honestly, I'm wondering how you'd imagine a world w/o Microsoft's 'monopoly'. Free software for free people? Then I'd recommend reading a book about the 80's IT industry, or: How IBM won and lost it's dominance. |
| Fri 13 Jun | mb | (1) Microsoft does not pay dividends to it's shareholders
Yes they do. 8cents/share/year. (Yeah, it's recent. But before the recent federal dividend tax-giveaway changes.)
http://www.microsoft.com/presspass/press/2003/Jan03/01-16ds.asp |
| Fri 13 Jun | Johnny Bravo | Those 28 billion $ have been transferred to the foundation before feb/march 2003. So the aforementioned point regarding the charity of Bill Gates is still valid. |
| Fri 13 Jun | sammy (monthly microsoft musings) | It's sort of hard to see an overall better computing world than the current one. (Certain) hardware is extremely cheap, ibm didn't go after the clones and msft is said to be keeping hardware prices down. I prefer a more expensive Windows than expensive hardware.
Some argue that the tech level would be far better off had msft not existed, but great tech companies often don't survive. Amiga, Symbolics, Lucid... all these died without Microsoft intervention. Apple imploded.
Obviously though, msft gets increased public scrutiny because it's a single supplier that can easily take advantage of its position. It's very easy to get into conflicts when you're dependent on one source. (Wouldn't Microsoft be paranoid if it had such a dependency?) |
| Fri 13 Jun | Stephen Jones | Dear Johnny,
The original poster claimed that MS did not have a near monopoly, and that it's present position has nothing to do with being bootstrapped on to a prior monoploy by IBM, or deliberately sabotaging others efforts, or breaking solemn agreements made in court not to bundle.
This is arrant nonsense, whatever the other reasons for MS's position are.
What Gates does with his money has nothing to do with the original purpose of the thread. I don't even know who the chief shareholders of IBM or Sun are and I have no idea what they do with their wealth. But I find it strange that people should identify with Microsoft and view other companies as big bad corporations. |
| Fri 13 Jun | Johnny Bravo | Yes, they've broken agreements, yes, they've sabotaged others - but not for the sole purpose of being evil. I do think one has to take into account what Microsoft has done for society, and then consider that Microsoft does not exploit the Third World by hiring engineers in e.g. Indonesia for the fraction of cost compared to US wages (as Intel does), Microsoft does not exchange it's workfore for H1B's (as IBM, HP, Dell do), etc. It's funny to see that the industry argues with Microsoft, but the one people who have most insight into the company, it's employees, seem to be happy the way it is. Are they all brainwashed?
Bottom line is: any company or country being in struggle is tempted to blame others. Just take a look at the other post and the mentioned article about Scott McNealy, or take a look at most arab nations who blame The West/The US - whatever conspiracy there might be.
That's exactly the same socio-cultural pattern. Or, to quote John Milton: 'The mind is its own place, and in itself can make a heaven of hell, and a hell of heaven.' |
| Fri 13 Jun | Stephen Jones | Dear Johnny,
Did the fact that MS had about one third of its staff hired through contractors and thus denied both health coverage and stock options pass you by. They sure complained; they took MS to court.
And who are these Indonesian software engineers hired by Intel. If you're taliking hardware all hardware is contracted out to the Far East. My MS optical mouse has made in China on it. And what is wrong with giving work to developing countries. Surely it is at least as good a way as combatting poverty as paying exorbitant sums of money to Western drug companies for drugs to cure third world diseases which is what the Gates foundation appears to be doing over AIDS. |
| Fri 13 Jun | Johnny Bravo | The question is not how you want Microsoft to be, but what other alternatives there are. Clearly, I'd rather live with Microsoft's quasi-monopoly than having it battered to a state where you again have a non-network of incompatible platforms and architectures - what anti-Microsoft advocates tend to call 'consumer choice'. Remember the days of pre-DirectX, buggy Netscape 3/4, WordPerfect vs. SmartSuite, TRS network drivers, etc.?
So discussing about the failures and mis-behaviors of Microsoft does lead to nowhere. You have no choice at the moment not because of Microsofts strategy, but because other companies have failed to deliver an acceptable alternative. Period. |
| Fri 13 Jun | Matt Christensen | People are treating this as an either/or when it's not.
I think two things are true:
1) Microsoft makes products that people find useful.
2) Microsoft has engaged in anti-competitive behavior.
I think that (1) is the main reason MS is succesful, but that doesn't mean that (2) isn't an issue. |
| Fri 13 Jun | Stephen Jones | Dear Matt,
Thank you for expressing things so succintly. |
| Fri 13 Jun | Stephen Jones | Dear Johnny,
You're confusing monopoliies with standards. All TV sets have to follow the same standards, as do all music CD's but that doesn't stop there being a variety of vendors you can buy from.
And look at the PC. The end of IBM's monopoly did not bring about the chaos and additional expense you describe, but quite the opposite. The cost to the consumer of hardware of ever increasing quality has plummeted, to the extent that you can get a complete computer for the cost of the operating system. The fact that software has remained the same price turns your argument on its head. |
| Fri 13 Jun | Johnny Bravo | Oh boy, does it never end ...
You are confusing software with hardware. While I'm totally with you when it comes to IBM's former hardware standards monopoly, I was merely pointing at the software side when I was talking about 'pre-DirectX, buggy Netscape 3/4, WordPerfect vs. SmartSuite, TRS network drivers, etc.'
Your latest attempt to score was totally pointless.
Anyway, Matt made a good point. Let's leave it this way. |
| Fri 13 Jun | Columbian Drug Baron | I spend about 75% of my income on charitable issues. That's about average. |
| Fri 13 Jun | Overburdened Taxpayer | More than 50% of my income goes to pay for other people's problems. |
| Sat 14 Jun | Stephen Jones | You're not getting the point. Standards don't have to be tied to a monopoly. |
| Sat 14 Jun | T. Norman | Standards have a better chance of surviving if they are NOT tied to a monopoly, because the monopolist can change the standard at will -- like Microsoft has done with their OS and more so with their Office suite. |
|
| New MFC Project and COM? | Thu 12 Jun | jedidjab |
| Hi,
Were about to start a new project using MFC and hopefully COM. Does anyone have recommendations on books or websites?
Also, Ive been reading very different views on using ATL to simplify COM -- what are peoples opinions on that?
Cheers
Jedi |
| Thu 12 Jun | Duncan Smart | '...hopefully COM' -- ha ha ha, nice one!!!
A *new* project using MFC/COM? Any partcular reason why? |
| Thu 12 Jun | jedidjab | I was on the team that implemented COM inside CorelDRAW (back when I was a co-op / new grad). Obviously I wasn't involved in any of the architecture, but I did gradually learn more and more about it and it seemed pretty interesting (albeit it introduces another layer of bugs and can be hell to debug).
Fast forward to some years later, and I'm in a company that's starting a project that will hopefully become part of a suite of products. Since we're already planning integration between the applications, COM seemed like a nice way to go. It also gives us a way to run automated testing through VB scripts.
I'm open to suggestions :) |
| Thu 12 Jun | Chris Tavares | MFC does do COM, but the way MFC does it adds a lot of confusion and limitations to the process - limitations that really start to chafe if you need to do more advanced COM stuff.
ATL CAN be used in an MFC project. In fact, if you're dead set on doing an MFC project I'd say use MFC for the GUI stuff and ATL for the COM stuff.
However, ATL does take a better level of developer to understand and take advantage of it. If your teammates aren't comfortable with C++ templates and are totally confused when they see:
template< class Base >
class MyImpl : public Base {
...
}
then you should expect a fairly big training burden with ATL. |
| Thu 12 Jun | Alyosha` | I recommend ATL Internals by Rector and Sells. It's well written and has great coverage over the things you need to know. Even if you end up using MFC, many of the concepts apply. |
| Fri 13 Jun | pietro | For COM
Beginners:
Inside COM, Rogerson
Advanced:
Essential COM, Box
and the COM Specification, available on Microsoft's web site (http://www.microsoft.com/com/), plus msdn has literally hundreds of articles on the subject.
If you're going to be using C++, then using ATL makes life much easier. The usual recommended beginners books on ATL (if there is such a thing as beginners books on ATL) are 'Developer's Workshop on COM and ATL 3.0' by Troelsen and 'Professional ATL COM Programming' by Grimes. And for the real details 'ATL Internals' by Rector and Sells. There's supposed to be a new edition of this, but I haven't seen it (Sells also has a web site, http://www.sellsbrothers.com/ with quite a lot of ATL/COM information).
There are many more books around; like always, pick the one whose author's style appeals to you.
Also, don't forget there's nothing wrong with writing COM in Visual Basic, you just don't get the same fine grain of control. Pattison's book, although more oriented to COM+, is good for this.
Good luck, you'll need it, it's a steep learning curve. |
| Fri 13 Jun | jedidjab | Thanks for all the advice .. I'm probably going to pick up the Troelsen book as a start and go through it. Luckily the project isn't starting immediately, so I do have some time to research the subject. |
| Fri 13 Jun | Tony E | You might want to consider WTL rather than MFC, it is very similar to ATL in its use of templates and much nicer than MFC. You won't find any books on it though! |
| Fri 13 Jun | jedidjab | Hmm..I'm a bit confused by a few people's comments on MFC. If you were starting a brand-new Windows-only application based on documents, wouldn't you use MFC? It seems like a lot of extra code to write it with the Win32 API (and I'm not familiar with WTFL yet).
From most of the discussions on the boards, it appears that starting a project in .NET right now doesn't offer much of an advantage, especially with the huge download required for most end users. Am I missing something? |
| Fri 13 Jun | S. Tanna | I started an app with MFC on 3rd Feb this year. Almost done now
My app target Win95 and up. But it uses stuff like the new common dialogs when available on the system etc.
The market won't care that I'm not using some new fangled programming language
They will care they don't have to download the net framework
They will care my app is super fast, feature-packed and ready now (okay real soon)
I never understood the arguments which begin 'MS just released a new programming language, therefore I must do...'. It seems to me, it's always better to start with 'I want to do...' and then figure out how. In my case a 'traditional' MFC/C++ app [doc/view all that stuff] was, I considered, the best way to do it.
So in summary, I think MFC is still a reasonable choice for a lot of apps. |
| Fri 13 Jun | | I once fired up VS.NET 2002 and ran all of the AppWizards to get skeleton GUI app.
The MFC app was the only app that had the new WinXP controls.
I found this amusing, considering how new and fandangled .NET is. |
| Sat 14 Jun | Chris Nahr | That's easily solved by creating a .NET application 'manifest' that tells the app which version of the common controls to load... |
|
| Hungarian Notation | Thu 12 Jun | Gunjan Sinha |
| With C++ I make it a point to in fot Hungarian Notation. Just makes reading the code a little easier.
Arethier any norms for VB. I recently started on VB.Net, so I want to get into a habit right away. Has anybody set some rules for themselves? |
| Thu 12 Jun | Mark Hoffman | Hungarian notation is falling off in popularity among the .NET crowd. Somewhere on MSDN, MS has published their opinion of good naming conventions. |
| Thu 12 Jun | abel | i used to code with type notation untill i started programming those loosed typed languages like perl, php etc. for me, type notation in those languages is a limitation. |
| Thu 12 Jun | pietro | It's a mix of mainly Pascal (LikeThis) and some Camel (likeThis).
You can find it under 'Design Guidelines for Class Library Developers' in the MSDN library.
Personally, I prefer it to Hungarian. I also tend to use the universal type names of the FCL in C# (Int32 rather than int), but that's another discussion. |
| Thu 12 Jun | Joel Spolsky | Personally I'm still a big fan of Hungarian, it's ESPECIALLY important in untyped languages, and we even use it in SQL code which I've found very, very valuable. |
| Thu 12 Jun | Philo | I was a huge Hungarian advocate, but something about .Net just makes it seem like a waste of time. Actually, I just realized that .Net *does* follow some of the later hungarian recommendations - over the last few years most standards I read indicated that class variables didn't need a prefix (since adding a 'c' doesn't really do anything).
Well, since everything in .Net is a class... [grin]
However, I *do* prefix controls on webforms, since it makes them easier to find in intellisense.
Philo |
| Thu 12 Jun | pietro | > Personally I'm still a big fan of Hungarian, it's ESPECIALLY
> important in untyped languages, and we even use it in
> SQL code which I've found very, very valuable.
I used to use it all the time, especially when I was using VBScript and Javascript just to keep track of what was supposed to be what.
But in a langauge like C# I feel it makes less sense with namespacing and tighter variable scope. Of course, you could just write code that was one long procedure and it would get very confusing, but if you're doing it right you shouldn't really need Hungarian. Plus as a personal preference I think the code looks less 'ugly' than with Hungarian.
Although I do still use it in forms programming, for example a 'lbl' prefix for a label. |
| Thu 12 Jun | Spaghetti Rustler | '... if you're doing it right you shouldn't really need Hungarian...'
Unfortunately, if you're rustling someone else's spaghetti code, it can be very handy to be able to *quickly* see that:
dwCustNum = dsCustomers.GetI('custno');
... is an error. As long as there are amateur hacks, there will be Hungarian to help bring order to chaos... |
| Thu 12 Jun | Swahili Dilio | I personnally follow the umain methodology.
http://mindprod.com/unmainnaming.html |
| Thu 12 Jun | Philo | But if you can teach them to use hungarian, can't you just teach them not to check in code they haven't compiled?
BTW, another reason hungarian is less necessary in .Net - no implicit type conversions.
string var1;
int var2;
[lots of code]
var1=var2; //hard to find bug in VB, throws an exception
// upon compiling in C#
Philo |
| Thu 12 Jun | runtime | I have been a hardcore Hungarian Apologist for many years, but lately my faith is wavering.
I am now test-driving one word names, but I still find the m_ and g_ 'namespace' prefixes useful. I also like the 'p' pointer prefixes, especially when dealing with pointers to pointers ('pp').
I am giving up Hungarian mostly because of the inconsistent naming of strings, pointers to strings, and arrays of chars. Which is really correct? In most cases, knowing the actual underlying type of the 'string' is unimportant, but when it is then Hungarian's supposed advantage of 'visual type checking' breaks down when you code: pszUserName = archUserName;
char* pUserName = NULL;
char* pszUserName = NULL;
char* szUserName = NULL;
char achUserName[USERNAME_LENGTH];
char rgchUserName[USERNAME_LENGTH];
char sUserName[USERNAME_LENGTH];
char szUserName[USERNAME_LENGTH];
char pUserName[USERNAME_LENGTH];
char pszUserName[USERNAME_LENGTH]; |
| Thu 12 Jun | runtime | oops, I also forgot:
TCHAR* pUserName = NULL;
TCHAR* pchUserName = NULL;
TCHAR* pszUserName = NULL;
TCHAR* szUserName = NULL;
TCHAR* pUserName = NULL;
TCHAR* ptchUserName = NULL;
TCHAR* ptszUserName = NULL;
TCHAR* tszUserName = NULL;
WCHAR* pUserName = NULL;
WCHAR* pchUserName = NULL;
WCHAR* pszUserName = NULL;
WCHAR* szUserName = NULL;
WCHAR* pUserName = NULL;
WCHAR* pwchUserName = NULL;
WCHAR* pwszUserName = NULL;
WCHAR* wszUserName = NULL; |
| Thu 12 Jun | Passater | Referring to the above example:
dwCustNum = dsCustomers.GetI('custno');
How do you know that dwCustNum is of type DWORD. dw prefix? Are you sure? That prefix means nothing to the compiler. In a typeless language you can put anything to a variable regadless the prefix.
Personally I hate hungarian notation, it pollutes names, making the code harder to read. And as to the spaghetti code, don't you think that you are applying wrong methods to solve the problem, isn't it better in the long run to educate people instead of having a policy to use this notation, which I am sure will fall apart during the maintenance period of the product life time. |
| Thu 12 Jun | Andy | I use p for pointers and that's about it. I could see m for members as well. But microsoft goes totally overboard. The code looks nasty. I don't understand the whole point of having the types in your variable name. Isn't that what the compiler is for? (at least in a statically type-checked language which almost all MS code is in)
Having a decent code browse feature in an editor or those tooltips lets you know the type. I've seen people use hungarian on functions to indicate the return value, i.e.
void vFunction();
int iFunction();
float fFunction();
int* piFunction();
well why not
int ifipiFunction( float f, int i, int* pi )
since the arguments are part of the type for a function. It gets ridiculous. |
| Thu 12 Jun | Eric Lippert | > don't understand the whole point of having the types in
> your variable name. Isn't that what the compiler is for?
As I pointed out the last time this came up in JOS, there are two completely contradictory philosophical approaches to Hungarian naming conventions.
The one I call 'the sensible philosophy' is the one actually espoused by Simonyi in his original article: Hungarian prefixes concisely describe semantics and explicitly do not describe storage. Simonyi is very clear on this point.
The one I call 'the pointless philosophy' is the one espoused by Petzold in 'Programming Windows': Hungarian prefixes connote the storage type and do not describe semantics at all.
Most arguments about Hungarian are, at their root, based on this fundamental dichotomy.
As you correctly note, the pointless philosophy is, in fact, pointless. The compiler does that for you, and all the hungarian does is make the code redundant and hard to maintain.
However, the sensible philosophy is very valuable when writing low level C code. Case in point: one day about seven years ago I rewrote the entire VBScript string runtime library -- which had to work on European, Far East and Bi-Di Win16/Win95/WinNT systems -- so that all the Hungarian prefixes correctly described the semantics of every variable. If a variable was a maximum count of characters then it was cchMax. If it was a pointer to a string of not-null-terminated unicode characters then it was a pwch. Etc.
By simply renaming all the variables correctly I found SO MANY BUGS. Every place that a cb was assigned to a cch, I knew that there was a Unicode or DBCS bug right there. Hungarian greatly improved the code quality, particularly on DBCS machines.
I still use semantic Hungarian prefixes in my C# code, but to a much smaller extent because most of the problems that Hungarian solves were designed out of the language in the first place. I try to never use 'storage' Hungarian prefixes in any code, C# or C++.
Eric |
| Thu 12 Jun | Andy | That's interesting, I didn't realize that the original intent was for semantics. I do use stuff like that, nFoos/numFoos for the number of Foos, max and min as prefixes. But I don't think that is what most people associate with hungarian now. Most people think it is p for pointer, m for member, s static, i integer, f float, etc. It might be marginally okay if everyone used the same hungarian, but everyone uses a different one so it's not. Like in perl it's built into the language kind of, you can use $ for scalar, @ for lists or associative arrays, I forget. But anyway it's standard, so it sort of works.
I think your example is a fine use of a naming convention, but most people wouldn't call it hungarian. I think within each _individual_ program, it is very often necessary to come up with a consistent naming convention. However, most people associate hungarian with a system you adopt for _all_ programs that you write.
Incidentally, it would be nice if typedefs in C/C++ really created new types. That is, if I say
typedef double Inches;
typedef double Pounds;
Pounds p = 1.0;
Inches i = 2.0;
void f( Pounds p ) { ... }
p = i; // should give an error, but doesn't
f( i ); // also shouldn't work, but does
I think this would let the compiler solve certain problems that you would use a naming convention for. |
| Thu 12 Jun | Danil | I'm inclined to think that, if you want a new type, you should ask for one. If typedef generates a new type, it looses much of its effectiveness.
Of course, if you want to take the blue pill, see
http://www.accu.org/cgi-bin/accu/rvout.cgi?from=0au_b&file=s001117a |
| Thu 12 Jun | Eric Lippert | > typedef double Inches;
> typedef double Pounds;
Indeed, that would be nice. An even stronger approach towards solving this problem is the use of unit classes.
At one point there was a proposal to add unit classes to ECMAScript, but I don't think anything came of it. (Then again, I haven't read the committee procedings for a while, so it might still be there.)
The idea of a unit class is to declare a class which can lexically decorate literals. For example:
var distance : inches = 4 inches + 3 cm;
var speed : velocity = length / 12 seconds;
The type system presumably has enough information about conversions between various units to determine that adding foot-pounds to Newton-metres is OK, but will throw compile errors if you try to add inches to kiloPascals.
Eric |
| Thu 12 Jun | Tom |
I'm with Danil on this one!
If you do this you have a problem. If T is 'std::vector', what is 'typename T::value_type'? How many bloody types do you want?!?!
I'd have to think about this a bit more, but my gut reaction is that a whole bunch of template stuff would not be half so useful it typedef introduces new types. (Note, I'm not necessarily talking about using typedef to massage the syntax into something usable, but that too.)
You can do kind of what you want using templates incidentally. Template your class on random type T and instantiate multiply with different typedefs. Voila, N incompatible classes that are otherwise identical. Manual instantiation of template classes will solve your 'but it all has to go in the header file and what about the code bloat' questions :) |
| Thu 12 Jun | Eric Lippert | Well, clearly there are potential uses for both 'create an ALIAS for an existing type' and 'create a NEW TYPE from an existing type'.
Your example of alising ugly template type names is a good example of the former. Creating typesafe enums from of subsets of the integer type, or traditional OO class extension are good examples of the latter.
I predict that as computing power continues to increase we will see more and more ability to put arbitrary constraints on types -- there is no reason why we couldn't implement languages with type constraints like
var c : int( c > 0 );
c = -1; // Whoops, type system violation.
Of course, such a system requires the compiler to solve the Halting Problem if you want to guarantee type safety at compile time -- but as computing power increases, we can start with check-on-write constraints and then move up to systems which compute dependency graphs to determine when type system violation checks must occur.
Eric |
| Thu 12 Jun | Clutch Cargo | Hungarian is crap. It has been utter crap ever since C supported function prototypes and type checking arguements.
Untyped languages are a different story. Hungarian is less crappy there. |
| Fri 13 Jun | Julian | At my first programming job, coding C in 1995, Hungarian was quite helpful. However, it's unnecessary now that I'm using Java in 2003, for these reasons:
1) In Java and C++, type mismatches are much less likely to shoot you in the foot than they are in C.
2) IDE's can instantly tell you the type of any variable, and for better IDE's instanctly display any type errors before you compile.
3) Better programming practices, such as shorter functions/methods and refactoring, make it easier to keep track of your variables, removing the need for Hungarian notation. |
| Fri 13 Jun | Andy | Well, now that I think of it, there are some things you could do with templates. I haven't fully thought of all the implications of making typedef create a new type, but I know in at least some cases it would be nice. typedef is barely better than defining a macro, instead of what its name implies -- defining a type. Another keyword would be cool.
But I guess for the subsets of an integer problem, if you could just do something like:
template
class BoundedInt
{
// constructor, assignment operator, etc. check the bounds
// if you need arithmetic, operator+ etc would have to check bounds too
}
But that's a lot of typing for something that's not too hard to avoid in other ways, depending on the program. Maybe for debug builds this would be useful, and then for release you could typedef it away to just an int, to eliminate the overhead. |
| Fri 13 Jun | Simon Lucy | One of the problems of overlaying any informal naming structure onto variables (whether strongly typed or no), is that it sets up the sin of mistaking the map for the territory.
I've come across bugs where an 'h' was misplaced in that it implied it referred to a handle when in fact it semantically was not. As a handle is itself an abstraction outside of the language that was just sin on top of sin.
In these kinds of areas we are poorly served by current languages. |
| Fri 13 Jun | Spaghetti Rustler | '... isn't it better in the long run to educate people instead of having a policy to use this notation...'
Ha!!
If I could educate people to write better code, I'd be so rich Bill Gates would be my pool boy!
Also, I have better things to do than proselytize (sp?)... |
| Fri 13 Jun | Albert D. Kallal | The thing that turned me on to using some notation was the fact that you often need a bunch of variables grouped on a particular concept. So, it not only the issue of showing the user the data type, but in fact that using notation gave me a natural grouping of variables. I find that there is less mental effort needed to come up with variable names. More important this is natural grouping also.
Lets assume we are dealing with a student table.
So, if I need to open a table of students, it is likely that I also need a variable to hold the table name, and also a recordset. The result might be placed into a collection. Without some notation system I have to come up with 3 variable names that really represent the same data, or same concept.
A imaginary example could be:
Dim rstStudents as recordset
Dim strStudents as string
Dim colStudents as new collection
Dim lngStudentid as long
You can see, all of the 3 vars above are “grouped” together. All of the above vars are to deal with a chunk of code that has to do something with a student. This kind of grouping was the first benefit I noticed about using some notation.
IMHO, the reason for Hungarian notation falling out of favor is that now with OO programming, all of the above vars would be a member of a object. So, now that “natural” group of vars in reference to “student” is not needed. You might get:
Students.RecordSet
Students.TableName
Students.Collecton
In other words, due to more OO, then there is less need as a developer to use some notation that “groups” the above set of vars together. Since the values are grouped in the object, then there is LESS benefit to using some notation.
For sure some notation does still help the issue of the data type used, but again with OO you are dealing with a object that has all kinds of stuff, and thus again it makes less sense to try and “type” the object. You can type the members of the object, but it don't give you that grouping I talked about.
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Fri 13 Jun | Passater | A number of variables grouped together is called a structure. You don't need any kind of notation to show that. |
| Fri 13 Jun | Passater | I mean even without having classes you could group variables in the old structural languages like c and pascal. |
| Fri 13 Jun | Stephen Jones | I think VB programmers tend to like Hungarian because it is useful for controls, as well as for what Albert says. It does make naming controls or variables easier.
Now lblStudentID is the same as StudentIDLabel and many people prefer the latter naming convention. I can't see that it makes a big difference, but using a notation to show controls and variable types (whether something is a string or an integer is useful to know in VB) seems a good idea for amateur (and maybe not so amateur) programmers. |
| Fri 13 Jun | mb | There are non-struct groupings.
For example, textStudentID is the textbox, while iStudentID is the local variable which is the integer representation of the contents of the textbox.
You then might use this to create the Student object which has other properties. |
| Sat 14 Jun | Albert D. Kallal | >>A number of variables grouped together is called a structure. You don't need any kind of notation to show that.
>> I mean even without having classes you could group variables in the old structural languages like c and Pascal.
That is true. I loved working in Pascal, and that is where I got real hooked on User Defined Types (UDT).
Remember, this natural grouping is only ONE of the many benefits that some notation system gives you.
There are a number of limitations as to when a UDT can be used in VB. You can’t define them in VB class objects for example. Further, unlike Pascal, you can’t define UDT’s local in a sub or function. So, the amount of effort to start defining a new user types every time that you need simple recordset and table name gets to be a bit of work. You now have to come up with a “name” for the UDT type, and THEN also have to define this var “group” using that type name. I was trying to save mental effort here!. There are also some issues of scope of the UDT also. I mean, do you have to define the UDT as global (vb = yes you must)? And, you also often will have to pass individual members of the UDT to other routines anyway. Often that natural grouping I talked about is not worth the extra effort to define a global UDT.
Unfortunately, the lack of flexibility in UDT’s is a true weak spot in the VB language. However, since it is a weak spot, this just again favors using some notation system to make up for this fact.
Obviously many people are finding that with .net some notation is not worth the extra effort.
So, this is kind of a horse for the course kind of thing. It seems that some programming styles and languages seem to benefit more from notation then other languages.
So, if I just need two vars in a routine (one for a recordset and a table name) then VB does not sit well from the effort to define a new type for this. However, that is not such a bad idea here either! I am actually open to suggestions on this concept because of my Pascal roots. No question that creating a UDT does give a natural grouping “concept” that I talked about.
With OO so much of the conceptual grouping occurs by methods of objects.
Another important issue here is that new languages are less strongly typed then they used to be. (casting of data types is rather automatic in VB as compared to Pascal for example). With OO this is even more so as code must handle different types of data objects passed. Hence, modern languages care less about data types now.
There is also a bit of a style issue going on here. Some developers don’t care, or bother to use some type of notation.
For me, VB is certainly one of those languages that seems to really benefit from some notation.
Sure....Peoples mileage will vary on this issue...
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
|
| Excellent grades | Wed 11 Jun | please don't hold it against me |
| Come on Joel, let me explain my B average.
I was a young kid from a small town. Nine people total in my graduating class. I was the only one that went to college from my class, the first one in my family ever to go to college, and I went to the university that was closest to my home (youre right, youve never heard of it). The two classes ahead of me and the two behind me only produced 2 other college graduates (I havent kept up with the other classes).
Of course, I never had to study in high school or college, and a B average was acceptable to me, even desirable in some instances -- no one likes the kid always acing the exams. I didnt even know there was study materials for the SAT - the people that bothered to take it in my home town just showed up.
The only teacher that really talked about college said it didnt matter where you went to school, they were all pretty much the same.
It wasnt until I was out for several years and looked in to getting a MSCS that I realized what I had done. |
| Wed 11 Jun | please don't hold it against me | Oh... the university that was close to my home town consisted of ~1000 people from the other small towns in the region, so it was really like high school all over again. Without parents. |
| Wed 11 Jun | FullNameRequired | what a relief :)
actually Im not good at hating _anyone_....my partner believes its because Im emotionally stunted geek with anger management problems....personally I prefer to believe its because Im an easy going kind of person with a good sense of separation between my ego and myself...
_or_ I may be suffering from that geek disease, whats it called? the one where I would speak in a monotone and spend periods of time banging my head against walls....
mind you, people who suffer from that tend to me a lot smarter than me in geeky areas....
so Im back to either easy going or anger management problems :) |
| Wed 11 Jun | please don't hold it against me | well... I am having a bit of fun.
I'm just trying to point out that 'excellent grades' doesn't mean 'smart'. Remember Joel's essay says that his requirements are 'Smart' & 'Gets things done'. His version of 'Geeks' are middle class kids that went to Ivy league colleges. Much different peer group than what I'm used to. The majority of people where I went to school were receiving government aid. The school I went to didn't get a computer until 1989. It was a trs/80. |
| Wed 11 Jun | FullNameRequired | Ive not yet completed my university degree (now 35 years old, completing via correspondence) and left school at the age of 17 to spend 10 years working as a labourer :) now I own and run my own software company and spend an awful lot of time hopping between countries in a futile attempt to keep my clients confused as to my whereabouts.
Ive just discovered that my IQ is only 117 so I dont even have the distinction of being particularly bright.
When I was younger some people assumed I was pretty thick, now some people assume Im very bright.
truth is that they are _all_ wrong.
if people wont hire you then find your own way forward and stop ya bloody whinging ya great ninny. |
| Wed 11 Jun | please don't hold it against me | No. I'm just saying there's smart people that don't have excellent grades, so maybe that shouldn't be a 'requirement' if you're looking for smart people.
Why are you all so angry? |
| Wed 11 Jun | | Law schools love stories like yours.
1. You have a big ego.
2. You were the first in your family to graduate college.
3. You're from the sticks.
If you're a minority and you really are smart, say 'hello top 14!'.
Tech support is an entry level job though. Presumably this person won't have much else to go on other than what they did in school. |
| Wed 11 Jun | Philo | I think I missed something - where did Joel say he only hires people with A averages? That seems really counter-Joelish to me...
Philo |
| Wed 11 Jun | please don't hold it against me | 'Excellent grades and a track record of success'
http://www.fogcreek.com/Jobs/CSR.html
'Most of the geeks I've known are middle class nerdy kids who got great grades and went on to ivy league colleges where they were appreciated for their nerdiness'
http://www.joelonsoftware.com/oldnews/pages/fog0000000269.html
A's hire A's, B's hire C's. |
| Wed 11 Jun | please don't hold it against me | no interest in law school, but my GRE percentiles were very good (v:95,q:95,a:97), maybe I could qualify my GPA with those. But, I'm not actually interested in the job, I'm just starting conversation. Apparently one that touched somebody's nerve.
I agree with you FullNameRequired. I had a couple of teachers that were disappointed that I didn't enroll in grad school, but I knew that credentials would only help me get jobs working for other people. Not what I want. |
| Thu 12 Jun | Joel Spolsky | OK, let me clarify a bit.
I don't care if you got good grades, I care if you're smart and get things done.
Getting good grades, however, is one of the best ways you can prove that you're smart and get things done.
A high GPA in college means that dozens of smart professors evaluated an entire semester of your work, each independently, and judged you to be smart. This is more meaningful than good references (previous employers may be afraid to get sued). It is more meaningful than good SAT scores (that was one test, three hours). It is more meaningful than all the active verbs you were taught to use in your cover letter.
Lacking good grades, I'm going to need some other evidence. Tell me a story about some time when you faced a challenge and overcame it. Dazzle me with your brilliance in the cover letter.
Faced with a hundred resumes for one open position, I can pretty much guarantee that:
* I'm going to ignore spam resumes with cover letters that are completely generic. This makes it look like you're applying for a million jobs. That in turn makes you look desperate, which makes you look unhireable. It's all about impressions. Somebody who says, 'CityDesk is cool, I want to work for the guy who designed CityDesk' is going to impress me more than the person who says, 'I'm an excellent team worker and also able to get things done on my own.' This is not because I'm vain, it's because it shows that you're making an effort to find a job that's a good fit rather than resumespamming.
* I'm going to ignore email where the name of the mailbox doesn't match the name on the resume. What the heck is up with that? If you're so clueless about email that you haven't managed to get an email address with a name that matches yours, I'm not sure how you're going to answer Fog Creek's email.
* I'm going to discard resumes that don't demonstrate the level of literacy that we expect from high school graduates in this country. Yeah, there might be some reason you can't get noun/verb agreement, but I don't have time to find out what it is. |
| Thu 12 Jun | www.marktaw.com | OK
'CityDesk is cool, I want to work for the guy who designed CityDesk'
Hire me. =) |
| Thu 12 Jun | Philo | Joel, do you ever get resumes from Monster or other online services?
Philo |
| Thu 12 Jun | www.marktaw.com | Philo - when you're as high-profile as Joel, I suspect you don't need to go to Monster. That would just add more resume's to the mix, and why increase it from 100 resume's to 1,000 (sorted by date). |
| Thu 12 Jun | Andy | Is this site really that popular? I stumbled across it awhile ago and I think it's great, but you guys are making it sound like every software developer worth his salt knows about this site. I thought it was just some random corner of the web.
When I think of a site that a lot of programmers read, it would probably be slashdot, though I don't read that myself. |
| Thu 12 Jun | www.marktaw.com | JoelOnSoftware.com is #68,100 out of all internet properties. To contrast, Atkins.com is #69,281. MarkTAW.com is a lowly #661,332.
http://www.alexa.com/data/details?url=joelonsoftware.com |
| Thu 12 Jun | www.marktaw.com | Slashdot, btw, is #964 |
| Thu 12 Jun | Andy | Cool link! thanks...
I was surprised that microsoft has 4 sites in the top 10! MSN, Microsoft.com, Passport, and Hotmail... damn their monopoly has only grown stronger since the lawsuits... I can't believe microsoft.com is higher, much less in the same league, as amazon.com.
However I noticed this:
Please note: The traffic ranking for archive.org is inflated because users of the Alexa Toolbar are disproportionately likely to visit this site. The Internet Archive is a nonprofit digital library of the Internet.
So I guess how they track it is that they get people to download that alexa toolbar (like google does) and then they track what sites they visit. So it's not totally accurate, but still interesting. |
| Thu 12 Jun | Stephen Jones | JOS might only be a small corner of the web but for a company that only had three other deveopers last count I would have thought that would be hi-profile enough.
And to the guy who started this thread, employers aren't after giving you a chance; that only happens in corny Holllywood movies made by studios who wouldn't give you the time of day, let alone a good job.
Employers want somebody who can add value to their company, and a degree from Oxbridge or an Ivy League university is a fair indicator the candidate is likely to do this. You're only going to get a lookin when there's a boom, and there aren't enough of those to fill the shortlist, and then you'll only get the job if those on the shortlist aren't any good. If they're OK they'll still get the job even if you're better. |
| Thu 12 Jun | Stephen Jones | Incidentally the figures for fogcreek.com are higher.
http://www.alexa.com/data/details/traffic_details?&url=Http://discuss.joelonsoftware.fogcreek.com
The site is rated at 43,693
As, unfortunately for Joel's bottom line 78% of users come to it from disscuss.fogcreek.com this suggests that 75% of the fogcreek figures should be added to the joelonsoftware ones, which still leaves this as a little corner in the web, but a somewhat more populated one than you thought before. |
| Thu 12 Jun | www.marktaw.com | Good point about discuss.fogcreek.com. I think the bottom line is the reach-per-million internet users... Though to put meaningful numbers on that you have to know how many internet users there are total. |
| Thu 12 Jun | | 'I'm going to ignore email where the name of the mailbox doesn't match the name on the resume'
That's me out then. The mailbox I use for personal mail is the same as my initials.
'What the heck is up with that?'
If you're so clueless as to not work out that people use mailboxes for filtering and discovering who gets email addresses from whom, I'm not sure how you're going to cope with email from people who have their own domains. |
| Thu 12 Jun | | Sorry. Rereading that last post it came out harsher than I intended. I stand by the jist of it however. |
| Thu 12 Jun | Stephen Jones | I think that what Joel is referring to is where people us their girlfriend's or father's or daughter's or neighbour's email instead of their own.
Happens quite a lot (one theory I have is that it's the wife applying on the other guy's behalf because she's sick of having him loafing about unemployed all the time).
It makes a mess of the tracking system. You have to deliberately enter the email you are replying to as linked to a contact for the original poster.
My favourite similar story was from an applicant for an English job who gave a list of the usual office computer skills in the addtional information in the resume. The trouble was that the resume's file name was 'Dadsresume.doc' |
| Thu 12 Jun | Yves | I think you misunderstood what he wrote.
For example, if your name is John Smith, he expects the mail to be as this:
From: 'John Smith'
and not
From: 'Type your name here' |
| Thu 12 Jun | Katie Lucas | 'a degree from Oxbridge or an Ivy League university'
It's amazing the publicity engine Oxford and Cambridge manage operate that people think like that.
Yeah, Oxbridge is a great place to get a grad from if you want one that can do maths and theory and nothing else.
For a decent CS person, places in the UK advertise for someone who graduated from a 'redbrick' university. These are the newer ones, with more of a focus on practicality, but not the extent of being an ex-polytechnic (which don't do /enough/ theory)..
Of course, being British, when I say 'newer', I mean 'new within the last 150 years' -- There are competing claims for the first redbrick from Birmingham (1901) and Liverpool (1881). {The argument appears to be that Liverpool only had a red brick building, not a entirely red brick campus..} |
| Thu 12 Jun | Evgeny Goldin | http://www.alexa.com
Totally great ! Installed their toolbar and surfing with pleasure already ... |
| Thu 12 Jun | | What's wrong with:
From: 'Type your name here'
/shrug
The other form assumes you have a nameserver named after you. |
| Thu 12 Jun | Christopher Wells | I took Maths and nothing else at Cambridge. I learned software engineering on my first job, from a comapny who I thoght knew knew more about software engineering than any university at the time (the Data Networks Division of Bell Northern Research).
I went to King's COllege; it's a left-leaning college (for example, they changed the dining hall to remove the platform of the 'high table' for the dons). When I was interviewed, the tutor said: 'So: you have As for your A-level, and good marks in your entrance exam... but do you think it's fair for us to take you, since you went to a good school, and are competing against other people who didn't have good teachers?' I replied 'It wouldn't be fair to discriminate against me, since I went to that school on a full scholarship.'
My Dad tells me that the Blair government is proposing (because, in the U.K. much of the university and student funding comes from government) that universities should have a stricter quota system: to limit the number of applicants from priviledged backgrounds whose parents went to university.
If the tutor has said to me 'Do you think it's fair, given that your Dad is a university professor and your Mum created a Montessori nursery school for you? I don't know what I would have said. |
| Thu 12 Jun | Fernanda Stickpot | 'Yeah, Oxbridge is a great place to get a grad from if you want one that can do maths and theory and nothing else.'
I don't know so much. Their Software Engineering program seems to have a pretty good mix of stuff you wouldn't necessarily find time to learn elsewhere, but which helps you to think (theory) and practically applicable stuff like requirements gathering.
I say 'looks' but I haven't started yet. The stated intent is to have real-world practical value, and I'll be interested to see whether it actually unfolds that way. |
| Thu 12 Jun | Gusta | 'http://www.alexa.com / Totally great ! Installed their toolbar and surfing with pleasure already ...'
Congratulations! You're being closely monitored! |
| Thu 12 Jun | Joel Spolsky | I'll get a resume where the resume is purportedly for, say, Nancy Smith, but the email will be from Fred Jones. To me this says that Nancy doesn't quite have email yet, she's using Fred's email address, and she's not even going to make the effort to set up a free hotmail address for the purpose of applying for this job, because she's just too clueless about email. Either way anyone who is still that hopeless with email is so far away from being qualified to install FogBUGZ on Windows 2000 Servers and debug SQL Server administration problems that it's not worth the time it takes to delete the resume. |
| Thu 12 Jun | Stephen Jones | I was speaking about recruiting in general, not just software.
Every year they ask faculty staff at most European universities to name the best university in their field apart from their own.
They then publish the top five and you will find Oxford and Cambridge in nearly every one of those top five where they actually offer the course. |
| Thu 12 Jun | Steve | I think the type of degree is important. I didn't get A's in college, but I majored in Electrical Engineering. Wow, what a meat-grinder that was, but I graduated and am better for having suffered through it.
I think that training has helped me succeed. |
| Thu 12 Jun | | I used to hate feeling out HR forms that asked me what my gpa was. Although it's a respectable number, I worked full time when I was going to school so it could've been a lot higher. Getting good grades always took a backseat to putting food on the table & a roof overhead though, and sometimes it was a struggle. I think that says more about me as a person than if my gpa had been higher w/o working, because it made me a lot stronger than what I would have been. But they don't see that, they just see the number. Their loss.
Luckily I've been out of school long enough now that I can rely on my contacts and my track record instead of where I went to school and what grades I made. |
| Thu 12 Jun | programmer | Joel says --
'I'm going to ignore email where the name of the mailbox doesn't match the name on the resume. What the heck is up with that? If you're so clueless about email that you haven't managed to get an email address with a name that matches yours, I'm not sure how you're going to answer Fog Creek's email. '
I LOVE this ... I have always been irritated when people write me from their girlfriend's or boyfriend's address, and then say, 'Do not respond to this, please send e-mail to cccccccc@ccccc.com' -- I'm like Joel, I wonder why the hell they don't have a freakin' Hotmail account of their own, if nothing else.
Bravo, Joel. I love your attitude. |
| Thu 12 Jun | Philo | Incidentally, do those of you who want to see a high GPA consider the source?
Candidate 1:
3.5 GPA
120 credit hours (1991-1996)
B.S. (Major: Computer Science)
Podunk Univ.
Candidate 2:
2.7 GPA
165 credit hours (1985-1989)
BSEE
Top Ten engineering university
Does Candidate 1 automatically 'win'?
Philo |
| Thu 12 Jun | www.marktaw.com | Philo - I think that's a loaded question.
Would you hire
Bill Gates
High School Dropout
CEO Micosoft
?
Remember, Joel mentioned having a proven track record (or something like that). The guy who went to a presigious university and has been in the 'real world' a number of years has advantages that aren't tied to his resume.
When someone asks for a GPA it seems to me that it's more of an indicator that the position is for recent college grads who won't have a lot of other experience on their resume than that he's filtering strictly on GPA. |
| Thu 12 Jun | John Harvard | That's Harvard dropout. not high school dropout. big difference. |
| Thu 12 Jun | | Ivy leagues are notorious for grade inflation. |
| Fri 13 Jun | S. Gwizdak | When I'm interviewing someone, I only care if the GPA is on the paper, and if it's a relatively OK value. I could care less about the difference between a 3.1 and 3.9.
What I care about is a) are they smart b) are they the type of people who can do things when asked c) can they fit in. I've found lots of really smart academic types, but I seriously doubt their ability to get things done in a corporate environment. Overly shy, overly introverted (if you can't adequately tell me about your projects -- how can you adequately communicate what you're doing?), and overly nervous get filtered out. |
| Fri 13 Jun | www.marktaw.com | That's why you should always interview drunk.
j/k |
| Fri 13 Jun | smkr4 | S. Gwizdak
'Overly shy, overly introverted (if you can't adequately tell me about your projects -- how can you adequately communicate what you're doing?), and overly nervous get filtered out. '
Because you know, the computer industry's just full of beaming extroverts. :)
I don't really understand this prejudgement. Usually people who are overly shy or what not are that way because it's an interview setting. And some lack of clarity may indicate, among other things, a level of excitement about past projects.
(frankly, an obvious lack of any enthusiasm is the #1 turnoff for me when interviewing)
As a manager, what does this so-called 'communication problem' really cost you? If you have to spend minutes more having a problem explained to you, is that really less worthwhile than having better intellectual output? Programming is an introverted activity; it's not a sales position. |
| Sat 14 Jun | matt | I disagree. Software is a team effort. Social skills are very important.
I've worked with extreme nerds that just don't get it. They don't pick up cues from other people and don't know when to move on. They often get huffy and red faced or pout when minor issues don't go their way. It's like dealing with a child.
After a certain age there are some things people are expected to have figured out, and if they haven't, well, you have to wonder why not.
Potty training. Manners. Conversation. Business communication. Handling pressure.
I believe the nerd-genius thing is a myth. Every smart person I've met has mastered basic life skills. |
| Sat 14 Jun | smkr4 | matt:
I wouldn't say that someone who is 'overly shy' in an interview is necessarily lacking basic life skills. Personally, I have interviewed the _pathologically_ shy, and I agree there. But that's certainly an extreme case--a little too extreme to correlate with academics in general, which I think is what Mr. Gwizdak was doing.
At any rate, business communication, etc. is a skill more suited to communicating with management than communicating with team members on a software project. And if we could only do the latter (ie, if management would stay out of our way more :)), we'd have much better teams. :) |
|
| Cool title | Wed 11 Jun | Software craftsman |
| My company doesnt have a formal difference between software engineer, senior software engineer, staff engineer, whatever. We all are software engineers, even if some of us have quite senior positions, lead projects, etc.
We are allowed to put anything on our business cards, however.
What would you chose as your title, given a choice?
Please be reasonable, President will not work, probably :)
Another question -- I have Ph.D. Should I put it on my business card or its too ambitious?
Thanks! |
| Wed 11 Jun | Damian | Jedi |
| Wed 11 Jun | Tom | Just your name. Put PhD after it if you would like; personally, I wouldn't, but then I don't have one :-)
Just don't put your job title on it. This will add a touch of class. Trust me.
I'm English. We know all about class. |
| Wed 11 Jun | Tim Sullivan | I've always like's Wile E. Coyote's business card:
Wile E. Coyote
Super Genius
Yours, of course, would be:
Wile E. Coyote, Ph.D.
Super Genius |
| Wed 11 Jun | mackinac | I kind of like Software Engineer. In the past I have been Member of Technical Staff. That is kind of vague but could be interpreted as a do anything kind of person. I'll settle for Super Genius. |
| Wed 11 Jun | Philo | I generally go with 'Software Architect,' because that's what I think I do. I've always considered 'Software Engineers' to be embedded, real-time guys, and that's not what I do.
I've heard a rumor there's a guy at NASA whose sole job is to sit around dreaming up ways to break the speed of light. His business card says simply 'Master of Time and Space'
Philo |
| Thu 12 Jun | Joel Spolsky | You can put any title you want? How about 'CEO'? |
| Thu 12 Jun | Philo | Wouldn't 'Father of VBA' be a better attention getter? [grin]
Philo |
| Thu 12 Jun | B# | Tim
LMAO
My kids and I have been running around using that title for years. The only one I've seen that I like better:
Isaac Asimov
Natural Resource
and just to clarify it's:
Wile E. Coyote
Suuuuper Genius |
| Thu 12 Jun | www.marktaw.com | Mark Wieczorek
How did you ever get by without me?
Thomas A. Anderson
'The One'
Martha Stewert
Embezzeler
Dr. Drew
Fox Thinks I'm a Genius
My personal favorite:
Mark Wieczorek
Human Being
I think I'd avoid 'architect' like the plague now. Unless you put 'the' in front of it.
The Architect
The Matrix
What does Steve Jobs' business card say? Probably just:
Steve Jobs
Does he really need to put anything else?
Joel - does your say 'founder' ? |
| Thu 12 Jun | treefrog | OK, maybe this is a US / UK thing (I'm in the UK), but round here I would not describe myself as Treefrog Ph.D, but as Dr Treefrog.
And I definitely have it on my business card.
regards, |
| Thu 12 Jun | - | I know a sysadmin with 'BOFH' as job title. |
| Thu 12 Jun | Steve Barbour | Mine says 'Geek'.
I think that pretty well sums it up, but you could try 'Computer Geek' if you need to be more explicit. |
| Thu 12 Jun | Steve Barbour | Oh, I had a previous job doing network sales (I really needed the job) at a local VAR where I was the only sales guy.
My title was 'Vice President of Intergalactic Sales'.
It was in response to the title inflation going on, in a small company in which everyone pretty much made their job up as they went along, and pretty much everyone was a Vice President of something (all 10 of us).
Actually got a few sales calls from people just because they liked the title. |
| Thu 12 Jun | tapiwa | I would second Tom's suggestion
I have no job title on my business card.
No credentials either.
Always want to puke when i see
Joe Blogg - BSc (hons) MSc(Oxon) DPill FICS ........ |
| Thu 12 Jun | mark | I think 'Jedi' is a pretty cool title. Don't feel like you can live up to it? Then try 'Padawan' for a couple of years... |
| Thu 12 Jun | Gustavo W. | How about something charmingly fascist, like 'Dictator for Life'?
'Information Achitect' is always nice, as is 'Software Developer Extraordinaire' |
| Thu 12 Jun | pietro | Agree with treefrog, putting 'Dr Pietro' is better. Those in the know understand what it means, others may or may not care.
OTOH, I can do the same, but I very rarely do. Unfortunately it generally means little outside the closed academic world. |
| Thu 12 Jun | asdf | I like MTS (Member Technical Staff) as it references the once mighty Bell Labs - where everyone was MTS to start, and it was a coveted title to be had. |
| Thu 12 Jun | Mark Hoffman | I agree with putting Dr. on the card instead of adding PhD on the end. I dunno...It just seems a bit over the edge to add PhD, but prefacing it with Dr. seems ok.
While the English may be the masters of class, I'm not sure I would agree with not putting a title on the card. When I get a card from someone I naturally look at their title. If I don't see one, it makes me wonder if they are just a lowbie in the company who is a gopher and doesn't deserve a title.
But I could be wrong. |
| Thu 12 Jun | Mister Fancypants | Mr. Fancypants
Renegade of Funk |
| Thu 12 Jun | www.marktaw.com | > Mr. Fancypants
> Renegade of Funk
AWW yeah.
I think when most people see 'Dr. Smith' they immediately assume 'MD' and one day someone will yell 'is there a doctor in the house' and you're gonna get shoved in the wrong direction.
No title on the card may be classy, but when I have a half dozen business cards in front of me and I'm trying to figure out who to call, it helps to have titles.
Makes me wonder who the first person to call themselves 'Web Master' was. |
| Thu 12 Jun | william williams | Most ISO companies use 'Software Designer', 'Manager', 'Director' and 'CEO'. |
| Thu 12 Jun | B# | Gern Blanstan
Master of Time, Space and Dimension
- Steve Martin |
| Thu 12 Jun | Brent P. Newhall | My personal business cards say:
Brent P. Newhall
Masked Defender of Justice |
| Thu 12 Jun | www.marktaw.com | I have one of those 'make your own business card' kits at home. I haven't thought of anything clever to put on them though, any suggestions?
Since this isn't a professional calling card, I'm willing to take wacky suggestions (hint: none of the suggestions so far jumped out at me, though I did like my own 'human being' one).
If you really have nothing to do, you can browse my website to learn more about me. |
| Thu 12 Jun | B# | MarkTaw
Hopeless Semantic |
| Thu 12 Jun | www.marktaw.com | I thought maybe
MarkTAW
Overly Sarcastic |
| Thu 12 Jun | B# | Hey, I thought it was moderately amusing in that semantics is defined, among other things, as the study of relationships between signs and symbols and what they represent.
Joel might even want to hire someone of this ilk. |
| Thu 12 Jun | jb | It appears that
MarkTaw
Narcissist
would be most appropriate. |
| Thu 12 Jun | www.marktaw.com | MarkTAW
Narcissist
See, now this is good stuff.
How about
MarkTAW
I now return you to your life, already in progress. |
| Thu 12 Jun | www.marktaw.com | > Hey, I thought it was moderately amusing in that semantics is defined, among other things, as the study of relationships between signs and symbols and what they represent. <
That would definately define well what I'm trying to accomplish with the business card. Did anyone catch that PBS thing about the guy who sells paperclips and erasers and crackers in order to examine the process of purchasing and transactions?
MarkTAW
Just gave you a little white rectangle |
| Fri 13 Jun | anonymous | Mine, rather mealy mouthed, says:
Java/C++ Expert and Project Manager |
| Fri 13 Jun | Plutarck | I think, were I to have a business card, I kind of like the idea of using something unexpected - like a verb.
I once received the title from an administrator, 'The Verbose', but perhaps that isn't quite what I'm looking for. I like the idea of a personally descriptive phrase, rather than a title, as it tells about me rather than merely what I do.
So, for instance:
Brian Hall
Verbose, Not Garrulous
General Problem Solver
Except, you know, a good one. |
| Fri 13 Jun | www.marktaw.com | Business Card
I used to belong to Mark Wieczorek* but I now belong to you.
* Mark Wieczorek has a website at...
I think the real answer is to make a few of several good ideas, like those collectors magazine covers. Then put instructions on the back for how to turn it into various origami animals. |
| Sat 14 Jun | Patrick Bateman | A few weeks ago several of my business partners and I were sitting around the table at Pierce & Pierce. This was a perfect time for me to show off my new business card. I, especially proud of this one, explained to them that the color of the card was called 'Bone' and the lettering was something called 'Scilian Braille.' They were impressed until David Van Paten pulled out his new card. Timothy Brice, the only interesting person I know, told him that it was 'really super' and asked him, 'how a nitwit like him got so tasteful.' I can't believe that Brice prefers Van Paten's card to mine. Timothy then proceeded to pull his new card out to show the group, which was impressive, very nice. I wanted to see Paul Allen's card, which Paul had just given to Brice several minutes previous. When I looked at it, my body filled with hate. It had a subtle off white coloring, and a nice bold thickness, and oh my god, it even had a watermark. This was what led me to the butchering of Paul Allen. |
| Sat 14 Jun | www.marktaw.com | Well, my inkjet won't watermark, but I can go to the local stationers and get an embosser. I do also have a little hole puncher type box that rounds the edges very nicely, which makes my cards stand out (I did that at my old job where the business cards were completely standardized and it was always a good conversation piece during meetings as we were handing out business cards).
Maybe I should go classy instead. My sense of humor is probably too dry to come across on paper anyway. I'll come up with what I think is the single most witty thing that's ever been put on a small piece of stiff paper and nobody will get it. |
| Sat 14 Jun | Simon Lucy | One of the pleasures of hardly ever meeting anyone in the flesh anymore is that I don't need all those crappy business cards. |
|
| Would you move? | Wed 11 Jun | RP |
| Im a 24 y/o sw developer.
I worked 3 years before the new economy colapsed.
After 6 months of unemployment, I found a job at an ultra stable company that holds the monopoly of its business here in my country. The company is rock solid and extremely wealthy.
The only problem is, I was hired as a programmer and for the past 12 months I havent done much. They have a lot of money, they thought they needed a developer and so they hired me.
As you might imagine, Im bored to death and completelly demotivated.
Now suddenly comes another job. An old friend of mine, and arguably the best boss I ever had invited me to work in his company. Well be doing web and SMS development. This is obviously an much smaller company and the work will be much riskier.
What would you do? Stay in the stable and gray company or go to a lightweight, ultrafast company, but much more unstable?
I know the ultimate decision is up to me, but any anwer would be welcome. |
| Wed 11 Jun | Mike Swieton | Can you afford it? Personally, I don't place money as the highest priority. If I have the money to to it, if i'm not desperate, I'd take the move.
Do you really think you won't hate you job next week, too?
My previous job was easy, flexible, stress-free, and paid well. And I couldn't wait to be done with it. I left, and haven't looked back.
On the other hand, I don't have to worry about a family, or car payments, and such. If I had kids to raise, I'd make damned sure they'd be fine first.
Decide and clearly state your priorities. Then enforce them. |
| Wed 11 Jun | RP | No car, no house, no wife, no kids, no nothing. Still living with the parents. |
| Wed 11 Jun | B# | I can't attribute it but; 'You've already decided so get on with it and don't look back.' |
| Wed 11 Jun | www.marktaw.com | Then go. be sure to save your pennies for a rainy day rather than buy every PS2 game in existance though. |
| Wed 11 Jun | mackinac | Move. |
| Wed 11 Jun | Alyosha` | Switch.
I used to be in the same situation. If I could go back in time, I know now I would have jumped ship instead of continuing on at that resume stain of a company.
At first I thought it was a pretty stable company too. Numbers were up and to the right every quarter. But the company lost its primary customer and things turned in around in a hurry -- I realised then that there was absolutely NOTHING innovative being developed in the company, nothing anyone in their right minds would buy, and the company had no future.
Really the only good reason I had for staying was the 'better the devil you know than the devil you don't' principle. But you don't have that problem. You've worked for this guy before. You have respect for him -- as he does for you ... and, bottom line, you'll be working on something new and interesting.
Go for it. |
| Wed 11 Jun | mackinac | >>> Stay in the stable and gray company or go to a lightweight, ultrafast company, but much more unstable? <<<
This would not be a significant criterion for my choice. I'd look for capable management and a good work environment. Working for Stable and Gray sounds unpleasant; I would get out of their soon, in any case. But there is still the question of whether Light and Fast is the right company to go to. If it were a start up founded by a guy with a big idea for getting rich quick and funded by VC, I'd avoid it and stay at S&G while looking for something else.
It sounds like you have already decided that you would prefer to work for F&L. It is a risk, but unless there is an obvious disaster in their future, why not take it? |
| Wed 11 Jun | | The stability and comfort of the easy, regular job are more important than might they might seem. However if you stay there, the difficulty in moving later, when you do actually have to move, will be that much greater. You might even turn into someone who can't get a job.
So move now. |
| Wed 11 Jun | Joe Blandy | You have already made your decision. Now you only need to figure out why. |
| Wed 11 Jun | Mike Gamerland | Consensus is move. At 24 you have your life ahead of you. If this new opportunity fails you still have decades to make your mark.
Just a word of advice: Almost every successful person I have spoken with or read about says the same thing. It is not success that defines us, but how we deal with failure. If your new opportunity does fail, don't let it define you.
Good luck! |
| Wed 11 Jun | Hedge Hog | take the new job as a telecommuter and work from your current workplace. you get 2 incomes and are in the clear. |
| Wed 11 Jun | Bored Bystander | This is a tough call. Obviously, if good jobs were falling off the trees in your area, you wouldn't feel that you have to look for a concensus from an online forum. So I gather that if you don't take this job, you may have a long wait in order to find a comparably desirable situation elsewhere.
Here's how I see it. Unless you can map out and pursue a beneficial career path in your present company that will advance your career and in which you will learn and grow, you will stagnate, given only what you've already stated. When or if the axe DOES fall, it will probably be very hard for you to find a new job. It will be very hard to present trivial duties and makework in a positive light when you're interviewed in the future. Whereas, if you stay 'lightfooted' and move sensibly in order to secure a more challenging and 'growthful' environment, then you're building your own skills and securing yourself.
Of course, there's more to job changes than just technical career path vs. risk. You also need to assess whether you always want to be a developer and whether there is a path to get you out of development in your present company. That is, IF you want to leave development eventually. Likely, a very lean and mean (small) employer isn't going to have much room to advance in terms of promotions - unless they hit the lottery and grow like crazy. A larger company generally has better chances of lateral moves into different career areas. IE, development at a large company may be one of the few less desirable jobs there, and other roles may offer better work. Or not. |
| Wed 11 Jun | T. Norman | Job stability is a thing of the past, unless you're something like a doctor or a professor (with tenure). The only choice left is between unstable and really unstable. |
| Wed 11 Jun | Jason Watts | I have had almost 10 jobs in 10 years. Never once have I regretted moving on.
Go. |
| Wed 11 Jun | Tim Sullivan | You're 24. Do it. Worst case, the company goes belly up and Mom and Dad feed you until something else comes along.
'It's better to regret something you HAVE done, than to regret something you HAVEN'T done.'
-- Someone
:-) |
| Wed 11 Jun | Andy | I would say since the OP is 24, definitely go if you're bored. At 24 you most likely haven't learned enough to get a good career going. If you take it easy at a cushy job, you could find yourself without any relevant skills when you get out.
That said, I work at a fast-paced company now, and I would give anything to work at a boring job. I would just do my duties and for the rest of the day work on my own stuff. |
| Thu 12 Jun | Punter | Move. Yes. Do it. |
| Thu 12 Jun | R Chevallier | Yes, GO FOR IT. It's easier to take risk now than later. So you won't regret it. |
| Thu 12 Jun | Bella | Yes, move. It's too early to sell out for stability. You dont need money at this age, you need challenges and self-actualization. In fact, if you sell out for money, you will have resentment for that saved money once you have some chick bleed you dry of it (marriage). enjoy your career while you can, when you can take risks and fuck around a little. |
| Thu 12 Jun | | 'the work will be much riskier'
What do they expect you to do? Hunt terrorists? AIDS worker in Africa? |
| Thu 12 Jun | Fernanda Stickpot | Move.
The risk of changing jobs is that the company might fold, forcing you to look for a new job and forcing you to rely on your parents a bit until you find one.
The risk of staying in your present job is that your skills will atrophy and you'll have a résumé that could be written on the back of a bus ticket, once you take all the exaggeration out. This will happen whether or not you lose that job, but if you do lose it, you are going to be in major trouble.
At least if you lose the flashier job, you'll have some good skills and worthwhile business experience to sell.
Move with all possible speed. |
| Thu 12 Jun | Steve Barbour | Well the concensus is move, but think for just a minute. There is a huge opportunity you're missing at your current location. They need a developer (everybody needs a developer), they just don't know why they need a developer.
Instead of twiddling your thumbs, go find those areas at your current employer that could use a little automation. The biggest, slowest moving target is usually information sharing in the back office, but get up from your desk and start seeing how the secretaries are spending their time.
If you sit down and watch the secretaries for a week, things that you could improve with a little coding work will literally jump out at you.
Once you've done that a few times, you'll be very busy, because once people begin to understand that they have the talent in house to fix those annoying manual processes they'll start to find them for you.
Once that happens, you will not be bored.
BTW, has anybody else had the experience that it is the secretaries that actually run most businesses? |
| Thu 12 Jun | Brent P. Newhall | My advice? It depends on your own personality.
Personally, having worked for both large and small companies, I prefer to work for big companies. I like the security, the long-term contracts, the fact that requirements don't change at managers' whims, etc.
Do you like working for large companies? Do you know which one you prefer?
If you prefer a large organization, you might want to stay. Small companies have their own headaches ('By the way, we have two bathrooms to share among 45 people').
If you prefer small companies, or just don't know, I recommend moving. To quote that Fight Club song, 'I say: Evolve, and let the chips fall where they may.'
(Yep, secretaries run all major companies. But then, they always have.) |
| Thu 12 Jun | Bored Bystander | Steve Barbour: EXCELLENT point. |
| Fri 13 Jun | RP | To Bored Bystander and Steve Barbour:
I've been there over a year and haven't done much. I mean, nothing. I haven't done one thing that's usefull to the company.
I don't think my position will become important in the near future. |
| Fri 13 Jun | Bored Bystander | Ok, the you should probably move. If you're that turned off by the place you're at now, the situation probably isn't salvagable.
But one bit of advice. Don't allow people on any BBS to vote on your career. It's one thing to wait to hear from people you respect, it's another to be indecisive and to need affirmation from others. Ultimately, it's only your skin in the game.
But given what you've said, I'd move if I were in that situation. |
| Fri 13 Jun | Steve Barbour | Actually, I wasn't saying that you should stay. I'm not there, and usually there are other factors involved in the decision to move, like culture.
Just remember to keep your eyes open for ways that you can excel. If you look for places that you can help your employer save/make money and then follow through, you'll (generally) be recognized by your employer. Plus you'll probably feel better about yourself knowing that you made a real contribution.
You can use that in any job. It's the way that mail clerks end up at important positions. Of course, if you want to be CEO, it doen't hurt to cheat a little (so long as you don't get caught). |
| Sat 14 Jun | Biotech coder | Paraphrasing, because I don't have the book in front of me:
Peter Keating to Howard Roarke: 'How can you always decide for yourself?'
HR to PK: 'How can you ever let others decide for you?'
The Fountainhead
Ayn Rand |
|
| stop deleting interesting topics.. | Mon 09 Jun | FullNameRequired |
| why was the topic on that chappie who was creating a new programming language deleted? it was on-topic and surprisingly interesting.
...as was shown tby the # of posts made to it.
Im _really_ getting sick of topics disappearing after a # of people have posted to it, sometimes good conversations seem to go for a while and then arbitarily disappear if they dont meet the (non-written) standards of the forum police.
rather disappointing ;( |
| Mon 09 Jun | FullNameRequired | ye gods.....in a rather ironic twist I would suddenly give anything for this particular post to be deleted...
somehow I missed the computer language one despite repeated searches and leapt to an incorrect assumption ;( |
| Mon 09 Jun | realist | That's rather funny, and therefore this is a good thread and should stay.
Also we all get a chance to vent some pent up angst on somebody making a mistake. |
| Mon 09 Jun | www.marktaw.com | Search here Sucks. Joel admits it too. |
| Tue 10 Jun | Li-fan Chen | If you have a SQL Server backend, what's the best way to make it search fast. How is Microsoft solving this problem? |
| Tue 10 Jun | ac | this thread?
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=49148 |
| Tue 10 Jun | Erik Lickerman | I agree. My very interesting and responseful (yeah you read me, 'responseful'!) topic 'what should I eat' was mercilessly deleted after a few hours despite obvious user interest.
I felt hurt. My self-esteem plummetted and I considered formng a support group. But then I thought,' who in hell would want to be in a support group with someone like me?'. |
| Tue 10 Jun | FullNameRequired | 'But then I thought,' who in hell would want to be in a support group with someone like me?''
I think thats a very good point and one that you should consider before joining or starting any club.
Personally, Ive only known of your existance for a few brief moments but I already consider you an unpleasant chap with very few (or no) redeeming features. |
| Tue 10 Jun | The Word | I'd be happy to be in a support group with you, Erik...but only so I could make tasteless jokes about your last name. |
| Tue 10 Jun | Erik Lickerman | Speaking of which- maybe this is a new topic, but why do so few of you pst your real names to this site? |
| Tue 10 Jun | FullNameRequired | why would we post our real names? what possible good would that achieve? |
| Tue 10 Jun | www.marktaw.com | Because there's no reason to post your real name? Besides, it might cause more harm than good when your boss stumbles upon Joel on Software and discovers that you're dead set against performance appraisals and thinks he should shove them up his arse!
The value you add & get from this forum isn't dependant on posting your real name. |
| Tue 10 Jun | Christopher Hester | Erik-
I will be in your support group. I could tell you the reason many do not use real names, but that answer would cause this thread to be deleted. |
| Tue 10 Jun | www.marktaw.com | Christopher - does this have anything to do with the recent Building Communities article?
People don't use their real names in many web forums. the only difference here is you don't have to register your e-mail address either. |
| Tue 10 Jun | somebody | I don't use my real name simply because I'd rather not risk a boss or coworker happening upon this and figuring out it's me. The likelyhood of this is probably slim (and I realize that they could find out by monitoring my internet usage while at work) but it does make me feel a little more comfortable with being open about work related things (and if I'm particularly harsh, I post from home).
I fill out the email field with a real email address so that anyone on this forum could contact the real me if needed for some reason. |
| Tue 10 Jun | Christopher Hester | My response would contain swear words and the like. More so I would end up saying bad things about others. Therefore I chose to allude to this, rather than stating the obvious. |
| Tue 10 Jun | www.marktaw.com | Ah. I getcha. |
| Wed 11 Jun | One can put any old crap in here | I don't use my name because there is a control which asks for it but then is unable to enforce that fact. Its just stupid. |
| Wed 11 Jun | www.marktaw.com | 'One can put any old crap in here',
So you're afraid of someone spoofing you?
Interesting how one's design decisions leads to different behaviours on different systems. Would you feel this way if the forum required registration? |
| Wed 11 Jun | Mint-choc chip | No, I just don't see why an edit box should have a label like 'Full name' when it could as easily say 'Favourite ice-cream flavour' and mean exactly the same - because here is no way of knowing that what you enter is your full name, or even your real name it is meaningless. That there is validation that you enter /something/ (even if it is only a space character) makes it even more so. |
| Wed 11 Jun | Simon Lucy | Well its so long ago that I first posted that not using my actual name seems hubris rather than security.
Plus anyone that cares can discover that Sliver is the other 'name' I use.
My paranoia is picky. |
| Wed 11 Jun | Brent P. Newhall | So, you think it's stupid that the interface *requests* something rather than *demand* it? Why? |
| Wed 11 Jun | mackinac | My real name has some interesting characteristics. My last name is a common English word and also a common term in cyberspace. Google shows 134,000 hits.
OTOH, it is rare as a last name. A Google search using 'first-name last-name' yields only 13 hits ('of about 44'), all being stuff I posted at various places on the Internet over the past 10 years. The first couple are JOS postings where I used my real name.
This persistence of posting makes me cautious about using my real name.
On a side note: the number of hits on my name seems rather low. I've done it before and gotten more and I know some are missing. |
| Thu 12 Jun | | 'My last name is a common English word and also a common term in cyberspace. Google shows 134,000 hits.'
Your last name is a slang word for sexual intercourse?
No. Probably not. Too few hits. |
| Thu 12 Jun | 12/6/03 | 'So, you think it's stupid that the interface *requests* something rather than *demand* it? Why?'
Actually it does 'demand'... something, but to answer your question - because it bothers to check the input, but in what seems to me an amateurish way. The check seems to be (based on what I can get away with) 'is not empty'. Even a space character will suffice. To my knowledge nobody is called ' '. In fact a check of two words each of minimum two characters, with only letters allowed would be on the way to a proper check IMO, given that identity on the 'net is almost impossible to prove.
My refusing to go along with the textual request yet satisfying the error check is, if you like, me pointing and saying 'look, this is silly'. It isn't worth making big deal over. |
| Thu 12 Jun | www.marktaw.com | I think forcing you to put *something* prevents everyone from posting as 'anonymous coward' so even if they're an occasional poster and only use '.' as their name, you get some sense of continuity. I have no sense of continuity when I read slashdot... Any random slashdot poster is lost in the wash of slashdottishness to me.
Asking for a 'Full name' in that field simply encourages people to not act anonymously. |
| Fri 13 Jun | | It doesn't work though, does it. |
| Sat 14 Jun | www.marktaw.com | You're the guy with nothing in the name field, aren't you? You've been posting here for the past week or so, mostly on this topic. If you're not, you're someone imitating him. |
|
| Embedded SQL server for VB? | Fri 06 Jun | Frederic Faure. |
| Im currently looking for the small SQL servers that dont require any installation besides copying a DLL or something.
At this point, I know of:
- embedded MySQL : works great from PowerBasic, but GPFs from VB
- SQLite : terrible performance through the AGS version
- embedded FireBird Interbase : no info at this point, as its pretty recent and no documentation
Anybody knows of other solutions?
Thx
Fred. |
| Mon 09 Jun | LesC | Ditch the VB and go with MS Visual FoxPro.
Easy to program and has native data engine. |
| Tue 10 Jun | Frederic Faure | Thx Norbert, that did it :-) Amazingly fast... Now, just have to figure out how to play with sqlite_get_table() in VB...
LesC : sorry, but we don't have the luxury of rewriting the whole damn thing in FoxPro. |
| Sat 14 Jun | Pablo | CodeBase is the way to go. |
|
| Sun's Last Stand | Fri 13 Jun | Matt Watson |
| There is a pretty interesting article over at wired about Sun their preoccupation with Microsoft, and how it is hurting them.
http://www.wired.com/wired/archive/11.07/40mcnealy.html
Nothing brand new here, but still interesting to read. |
| Fri 13 Jun | Johnny Bravo | 'Sun was celebrated as one of the Four Horsemen of the Internet' - that is the Four Horsemen of Apocalypse? Indeed, the doom that came to the dot-com-era! |
| Fri 13 Jun | xyzzy | A quote from the article:
'With all we've got up our sleeves, mate,' declares Andy Lark, the New Zealand-born marketing chief, 'we've got the competition quaking in their boots.'
Reminds me of this guy: http://www.welovetheiraqiinformationminister.com/
Who has said, 'In a few days, you will all witness something that can only be considered very beautiful against the Coalition forces. That, I assure you.' |
|
| Folder compare utitily | Thu 12 Jun | The one who should be doing other things |
|
I have two copies of a folder that has about 8 GB of size total and a couple of thousands of (binary) files. Both folders (the original and a copy) are in the same machine (Windows XP Professional). Using the folder properties dialog, I can see that there is a diference of 10 files that are missing in the copy folder.
The problem is: I need to know what files are missing in the copy folder. Do you know if Windows XP or VisualStudio (VS 6 or VS.Net) have any utility that would do the trick?. If not, any third-party tool? This is a one time task, so I don’t mind if it is not a fully automated process (I would like to see If I can do it without coding).
I already tried windiff, but it does not only compare folder structures, but also file contents, and its taking a lot of time (I started it and it looked like it was going to take several hours).
I want to compare all the tree structure including files, don’t care abour file contents.
Thank you very much in advance.. |
| Thu 12 Jun | mb | dir /s /b folder1 > folder1.txt
dir /s /b folder2 > folder2.txt
massage the two (w/a perl script, etc)
windiff folder1.txt folder2.txt
does not compare file sizes, you can omit the /b for that. |
| Thu 12 Jun | The one who should be doing other things | I am not very proficien with perl.. but I am sure a perl script will do it.
I'll post it if I find one or come up with one. |
| Thu 12 Jun | The one who should be doing other things | MB, Very good idea,
that will do the trick
thanks again |
| Thu 12 Jun | www.marktaw.com | I think examdiff does this. There are a million free diff utilities - some compare only two files, others can compare directories / subdirectories.
Check download.com or google for diff utilties. |
| Thu 12 Jun | Peter McKenzie | I don't think you need a perl script or any special tools. How about this:
dir /ON /B folder1 > f1.txt
dir /ON /B folder2 > f2.txt
fc f1.txt f2.txt
Just did a quick test and it seems to work. Note:
/ON sorts (/O) by name (N).
fc is the built in windows File Compare.
cheers,
Peter |
| Thu 12 Jun | Peter McKenzie | Oops, it seems you're after subdirectories as well in which case you'll need /s and some munging as pointed out by mb. |
| Thu 12 Jun | The one who should be doing other things | Mark, I knew I should have first searched the net (and in fact I did).
I posted the topic because I had the feeling that there was some very simple way to do it with the standard windows tools, and thought that some people here could came with interesting suggestions.
I don't mean to say that I don't appreciate your answer, or that I don´t think it was useful. thanks. |
| Thu 12 Jun | Mark Wieczorek | > I knew I should have first searched the net (and in fact I did).
I've seen a few posts here where the person simply didn't know WHAT to search for, so I thought if I introduced the word 'diff' so you could search for that. =)
I'm enough of a geek to want to run a regex on some plaintext I got from a dir, but not enough of one to do it in perl. If there's a .exe that can do it for me, I'm all for it.
I guess that's difference between programmers and laymen... programmers think 'how can I do this in perl.' |
| Thu 12 Jun | mb | actually no perl is required for my solution, it uses windiff.
you can use notepad, and I probably would for a one-off. all it is is replace 'c:\path\to\dir1' with '' on file1 and replace 'd:\other\path2' with '' on file2.
the /on is probably useful... |
| Thu 12 Jun | Joel Sundquist | Use ROBOCOPY it is a utility that came with the NT4 resource kit...I use it as a poor man's replication tool. Look for it on google and you will find it somewhere. It is a free utility. |
| Thu 12 Jun | The one who should be doing other things | I finally eded up with:
c:\dir1:> dir /on /b /s > file1.txt
c:\dir2:> dir /on /b /s > file2.txt
Replaced 'c:\dir1\' and c:\dir2\ with an empty string in both files.
And the perl script:
open FILE1, '; close FILE1;
open FILE2, '; close FILE2;
foreach $line(@linesFile1)
{
if(! grep{$_ eq $line} @linesFile2 ){ print 'Not found: $line\n'; }
}
I simply could not have the windiff to work. The output was always kind of messy for no reason :( |
| Thu 12 Jun | The one who should be doing other things | And fc.exe was just like:
'Resync Failed. Files are too different.'
:( |
| Thu 12 Jun | Peace o' cake | find . -type d -exec diff --brief {} otherdir/{} \; |
| Thu 12 Jun | Troy King | I should probably verify before I post, but I'm pretty sure that Beyond Compare does this: http://www.scootersoftware.com/ . |
| Thu 12 Jun | www.marktaw.com | Beyond Compare is great. Araxis Merge might be better, but it's way more expensive. |
| Fri 13 Jun | Lacko | You all like to complicate it, don't you?
Just use Windows Commander or Total Commander (same thing), even if it's a trial version. Go to Commands menu / Synchronize Dirs, on the left side select the original folder, on the other side select its copy, check the Subdirs checkbox and press Compare. You even have option to see unequal files beside the missing ones.
That's all folks! |
| Fri 13 Jun | i like i | Now I've never taken it to these lengths, but codewarrior has a great folder compare option. Even an eval copy of codewarrior should have it in. |
| Fri 13 Jun | Ant | Beyond Compare is fantastic!! One of those utilities I can't remember how I ever did without.
In this case it will show you which files only exist in either folder and effortlessly let you copy the discrepencies one way ot the other. |
| Fri 13 Jun | Ged Byrne | Another vote for Beyond Compare, it really is. |
| Fri 13 Jun | Ryan Mitchell | Go grab Unison for a free file synchornizer:
http://www.cis.upenn.edu/~bcpierce/unison/ |
| Fri 13 Jun | Matt Christensen | I've had good luck with FileSync (http://www.fileware.co.uk/products.htm#FileSync) |
| Fri 13 Jun | Daniel Shchyokin | don't need a perl script to comapre fed them into access as two seperate tables and do an outer join |
| Fri 13 Jun | The one who should be doing other things | The perl script is one line of code (aside opening the files)
Using two tables would requiere creating the database structure, and performing the query.. I feel it is more complicated.
But its a great idea also.
I think it depends exactly on what are you trying to achieve. |
| Fri 13 Jun | The one who should be doing other things | You were so dam right!
Beyond Compare is the way to go.
thansk again |
|
| Removing an extra windows XP OS | Thu 12 Jun | Jermaine |
| I recently had many problems with my windows xp pro, could not even start it up and I tried every solution I found on the net. So I decided to reinstall the operating system. Now I have two operating systems.
At startup it gives me a choice of
WINDOWS XP PROFESSIONAL
WINDOWS XP PROFESSIONAL
How do I go about removing the second one?. Which happens to be the old operating system.
Thanks in advance. |
| Thu 12 Jun | Chris Tavares | Right click on 'My Computer'. Choose Properties.
Look on the 'Advanced' tab. You should see a 'System and Recovery' section at the bottom, with a 'Settings' button. Press that button.
Under the 'System Startup' block on the next dialog, hit the 'Edit' button to edit your boot.ini file. That's where XP is getting the extra OS from. |
| Thu 12 Jun | Jermaine | Would this actually recover the hard disk space the old OS is taking up? |
| Thu 12 Jun | Stephen Jones | First check that the first one, which is the default, wiil allow you to boot, by waiting for the timeout.
Then get rid of the start up screen. Go to My Computer/properties/advanced/startup and recovery/advanced and set the wait period to zero. You can also edit the file if you feel brave, but I see no reason to bother. |
| Thu 12 Jun | Chris Tavares | The old OS is probably NOT taking up any space - if you reinstalled over it, all you've got is a stale listing in boot.ini.
If it does still have some files on the disk, you'll need to go in and delete them manually via windows explorer. |
| Thu 12 Jun | Stephen Jones | Why are you saying the old OS is taking up space?
Do you have two WinNT folders? I thought you had just installed XP on top of itself. I suspect the second OS is a phantom OS. |
| Thu 12 Jun | Jermaine | hhhmmm, ok I have only one WINNT folder, but I seemed to have a lost a whole gig of hard drive space. |
| Thu 12 Jun | Jermaine | Also, programs that I once had dont longer execute. Ok, no big deal, I can re-install them. But when I do, I lose hard drive space. Despite the fact that I'm actually re-installing over the old files.
This is weird. |
| Thu 12 Jun | Stephen Jones | Lost space is normally the system restore folder. It is set by default to take up to 12% of your HD space. If you need the space you can go to My Computer/Properties/ System Restore and turn it off or lose space. |
| Fri 13 Jun | Jermaine | Ok, for example, I've re-installed norton systemworks, into the same directory where it already existed. The logic would be that no more amount of space would be lost nor gained. Yet the re-installation took up an extra 60megs of space. (I used the same standard installation option) |
| Fri 13 Jun | Stephen Jones | Dear Jermaine,
I've just explained where your 60MB has gone. Every time you install new software a new system restore point is created. That is what is taking up those 60MB, and it will continue to do so until the maximum default 12% of hard disk space is reached. |
| Fri 13 Jun | Jermaine | Thanks Stephen, its clearer now, for a while, I thought the pc had devloped worms or something :) |
|
| Microsoft buys Linux antivirus company | Thu 12 Jun | Noname |
| And yes, the reason is what you think it is.
The RAV product line will be discontinued after Microsoft completes the acquisition of the technology, Microsoft said.
http://www.computerworld.com/softwaretopics/os/linux/story/0,10801,82045,00.html |
| Thu 12 Jun | Conspiracy Anti-Theorist | Yyyyyyaaaaaawwwwwwnnnnnnn!
I'm tired of people trying to show Microsoft as something like Dr. Evil's Virtucon!
Microsoft is a *company*. They have *competitors*. Fewer competitors means more *business*. Business helps them make *money*. Money is the reason they are a company.
This is hardly unique to Microsoft, and happens everyday. The only difference is when Microsoft lifts a finger, every 'idiot who only learns info from media headlines' freaks out. |
| Thu 12 Jun | Conspiracy Anti-Theorist | Isn't St. Ellison of Oracle trying a hostile takeover of PeopleSoft?
B*tch about that for a while. |
| Thu 12 Jun | Philo | Trying and, as of today, failing.
Philo |
| Thu 12 Jun | not a conspiracy | The other difference with Microsoft is that they're a convicted monopoly. Just not a regulated one.
Make of that what you will. |
| Thu 12 Jun | Steven C. | I realize this is pedantic, but its something that people often don't realize (unless they know any anti-trust law):
Being a monopoly is NOT illegal.
Profitting from your monopoly rents* IS illegal.
The issue here is that while Microsoft was proven to be a monopoly opinions differ on whether they are profitting from their monopoly rents.
[*]: monopoly rents' is an economic term (if I recall my econ) which covers the difference between the 'fair market' price of something
and the price the monopoly can charge -- this difference is the 'rent' having the monopoly generates for you. |
| Thu 12 Jun | Steven C. | P.S. Anyone who actually KNOWS Anti-trust law, feel free to smack me down -- I just know someone who knows anti-trust law, and I like to pretend it rubbed off on me some. |
| Thu 12 Jun | Mickey Petersen | It takes two to tango in these business deals if i'm not mistaken.
I'm sure if this Romanian company shared the original poster's 'concern' they wouldn't have sold their company -- or would they? They *do* get money and a new job. |
| Thu 12 Jun | Stephen Jones | Microsoft was convicted of using its monopoly position to levarage itself in other markets. That is illegal. Microsoft's unsuccessful defence was that it wasn't a monopoly, which is what causes people to talk about it being a convicted monopoly.
Microsoft would also have been convicted of quite a few more things if it hadn't settled first.
You can't say that Microsoft is just reducing competition in this case though because it actually isn't in the anti-virus market. However I suspect it as more interested in the technology than the product, and it probably has bought some smart developers.
With Linux MS is in a bit of a bind. It needs to be able to claim that Linux is a viable competitor in order to stop governments interfering in the market as they would have a legal right to do if MS was an accepted monopoly, but it certainly doesn't want Linux to be too much of a competitor for obvious reasons. |
| Thu 12 Jun | Mickey Petersen | Stephen Jones,
...'With Linux MS is in a bit of a bind. It needs to be able to claim that Linux is a viable competitor in order to stop governments interfering in the market as they would have a legal right to do if MS was an accepted monopoly, but it certainly doesn't want Linux to be too much of a competitor for obvious reasons.'...
That's actually a very good point and once I haven't thought about myself. Thanks. |
| Thu 12 Jun | T. Norman | There are very few Linux antivirus products out there. So by buying up the few companies who do make those products and squashing them promptly, they hope to make Linux look less secure by increasing the ability of viruses to hit it. |
| Thu 12 Jun | Sammy | I suspect the GNU people are more happy than anything else. It opens up a market that was well-satisfied to a possible Free Software solution. (Say, one that only charges for updates, with free client.)
Especially since people will feel burned that companies can simply stop caring about supporting its customers. |
| Thu 12 Jun | Walt | Linux anti-virus programs won't make Linux seem more secure.
Windows anti-virus programs don't make Windows seem more secure.
'Real' security is related to how many bugs are in the OS.
'Media' security is how many bugs in the OS make headlines.
Microsoft has bad media security. Both have bad read security. |
| Thu 12 Jun | T. Norman | It's not that antivirus software makes an operating system look more secure per se; it's that the virus hits that make the news make them look less secure. An absence of antivirus software on the market would create more opportunities for viruses to spread and do damage.
Unfortunately for Bill G., one of the reasons there isn't much of a market for Linux antivirus software is that it is secure enough that it hardly needs it! |
| Fri 13 Jun | Stephen Jones | One of the main reasons MS software is particularly prone to viruses is its ubiquity and the fact that it is a mono-culture.
The analogy from real viruses fite perfectly here. How fast a virus spreads depends on how many hosts it can infect and the relationship is nearer logarithmic than directly proportional. Just look how fast an epidemic spreads in a crowded city compared to how fast it spreads in an isolated cournty area. Secondly gene variation, and sexual reproduction, provide lots of slightly different variations of the host, and the virus finds it more difficult to attack them. There are basically only three versions of Windows around, 9*, NT3 & NT4 and NT5 (aka W2K & XP); the fact that many viruses only effect one of the versions shows how a small change can make a difference. The administrators nightmare, which is the hundred of different versions of Linux that are deployed make fast propagation difficult.
Also there is the fact that many 'viruses' are in fact worms that propagate through Outlook. Outlook is intended to be easy for you to work with, and so it's easy for a virus to work with too.
There is normally a trade-off between security and convenience. If Linux gets a siginificant share of the desktop and becomes more user friendly it will also become more prone to virus attacks. |
| Fri 13 Jun | Walt | Linux is far, far from secure. Patches are almost daily. And since even the patch is open source, hackers use the patches to derive the attacks, and then go after the unpatched systems.
It's inherant to the model. You can't keep people from having the desire to be hackers. If they can see the code, they know all your weaknesses.
Again, Windows is only perceived to be less secure because of the publicity their bugs receive. |
| Fri 13 Jun | trollbooth | [Microsoft is a *company*. They have *competitors*. Fewer competitors means more *business*. Business helps them make *money*. Money is the reason they are a company.]
All companies want to make money, that's not news. But that doesn't mean they can do *everything* to deter competition because the public benefits from competition. Are we really served when MS shuts down competition? What would happen if they bought every competitor simply to shut them down? Could we just write it off in the name of business and capitalism? Yes you can make money. Yes you can compete. But stacking the deck is a whole other story. |
| Fri 13 Jun | Stephen Jones | Walt, to say that MS only appears less secure because it receives publicity is rubbish. However potientially insecure a Linux system maybe in real terms a Microsoft system, particularly one using Outlook, is likely to receive many many more virus attacks than a Linux one.
As for whether Open Source is better as a security model than closed source that is a matter of debate. I think the balance of opinion is that Open Source is a securer model, but the argument is not at all clear cut. |
| Fri 13 Jun | Walt | Stephen,
You have to separate the types of security you are talking about.
Consider Windows and Linux alone as operating systems. Don't think about the machines they are on, the network configs, etc. How secure are they in comparison to each other? It that arena, they are very comparable, since they are both very insecure.
When people speak of how insecure Windows is, they're really not talking about the OS. They're talking about the fact that since there's a 9:1 ratio of Windows to Linux, there is a 99:1 ratio of Windows hackers to Linux hackers.
Since there are so many more attacks on Windows, the media draws their attention in that direction, and people think that when 99% reports of hacks are on Windows systems, Windows must be that much less secure than Linux. But it's not.
The metrics for determining how secure they are need to be level.
You can say that there are 50,000 kids flunking school in country A, and 500,000 in country B, and then say that country B's school system is bad. But you can't ignore the fact that country A has 1 million people and country B has 1 billion people.
My point is that people make a false inferrence that Windows is less secure than Linux based on the wrong metrics, and it is the media that is providing the wrong metric. |
| Fri 13 Jun | Stephen Jones | Wrong Walt! You're talking hypothetical insecurity, and the fact that Linux deployments are not uniform and MS ones are is one reason for MS being less secure.
In practice if you use Outlook or Outlook Express you are going to have a much greater chance of receiving a virus infection than if you use another mail client, and the odds of receiving a virus on a Windows machine is much greater than that of receiving it on a Linux machine.
And look at the server market, where there are probably more Linux machines than Windows boxes. All those machines infected with Code Red, or Nimda, or Slammer are not Linux machines. |
| Fri 13 Jun | BC | Oh, hush. We all know that it's those unwashed Linux guys who are hacking Windows... :-)
http://newsforge.com/newsforge/03/06/12/132234.shtml?tid=19 |
| Fri 13 Jun | Walt | At my university in our CS department, we had Solaris, Windows, and Linux labs.
Which one do you think was hacked on a regular basis?
It was the Linux labs. They would be hacked from the outside, and used to run DOS attacks against the university's own web servers.
The Windows machines never got hacked.
The viruses you mention have common roots, and they only get spread these days through those who haven't kept up with the original patch that would cure all their problems.
But it's the pure number of users of unpatched Outlook that make it a big deal. It's not the OS.
Don't kid yourself. There are Linux viruses that go through email.
Microsoft is doing their best to patch the holes, just as Linux is.
You can't blame MS for people who won't install patches. |
| Fri 13 Jun | mb | >You can't blame MS for people who won't install patches.
Yes you can. I installed a patch (from windows update, who knows which one since I install them all).
Now it takes 1-10 seconds to open a new window. calc.exe. Properties windows. Explorer windows.
Used to be .1 - 1 seconds.
People learn from experiences like this. What they learn isn't 'keep system up to date'. |
|
| More efficient method to brighten image? | Thu 12 Jun | JWA |
| Hi All,
Im putting some basic image editing support into my app and Ive come upon the need for a faster way to brighten an image.
Im using .NET and have found that going through the bitmap object pixel-by-pixel and increasing the brightness on each of the r, g, & b channels (code pasted below) is very slow. Even when doing this on a thumbnail image it is very slow.
Does anyone have any reccomendation on a better way of doing this? Everything else that I am doing works fine using simple .NET methods so I dont really want to spend the time or money to implement a component like LEADTools or something just for this one function if I dont have to.
Oh yeah, this is very slow on my dev machine (XP PRO, P4 2.53GHZ, 1gb RAM, 64mb video, etc.), and terrible on slower machines. So its not just the computer.
Thanks,
--Josh
Dim x, y, tmpColor
Dim addR, addB, addG As Integer
For y = 0 To bmp.Height - 1
For x = 0 To bmp.Width - 1
tmpColor = bmp.GetPixel(x, y)
Work out how much can be added for each color
If (tmpColor.r + amount) > 255 Then
addR = 255
ElseIf (tmpColor.r + amount) < 0 Then
addR = 0
Else
addR = tmpColor.r + amount
End If
If (tmpColor.g + amount) > 255 Then
addG = 255
ElseIf (tmpColor.g + amount) < 0 Then
addG = 0
Else
addG = tmpColor.g + amount
End If
If (tmpColor.b + amount) > 255 Then
addB = 255
ElseIf (tmpColor.b + amount) < 0 Then
addB = 0
Else
addB = tmpColor.b + amount
End If
bmp.SetPixel(x, y, Color.FromArgb(addR, addG, addB))
Next
Next |
| Thu 12 Jun | jedidjab | I posted about this quite a while ago -- the one thing people seemed to agree with is that image manipulation is the one place where C/C++ (and pointers) really shine. Maybe you could write some unmanaged code to get it done faster? |
| Thu 12 Jun | S. Tanna | I do my image processing in C
I suspect that the GetPixel/SetPixels take the time as they need to calculate the offset into the image for each pixel and are called repeatedly. Of course you don't know until you measure.
I don't know enough about .net, to know if you can do this, but if you can treat the bitmap as an array (like an array of bytes) and walk thru in order since you are walking thru all the pixels.
One obvious optimization with your code is to reduce the number of adds (does tmpColor.r have enough range to go over/under 255/0 ? Again don't know enough about .net, but if does,
If (tmpColor.r + amount) > 255 Then
addR = 255
ElseIf (tmpColor.r + amount) < 0 Then
addR = 0
Else
addR = tmpColor.r + amount
End If
becomes
tmpColor.r = min( 255, max( 0, tmpColor.r + amount ) ) ; |
| Thu 12 Jun | JWA | Hi Guys,
Yeah, I simply overlooked reducing the addition load. Changing it to:
addR = tmpColor.r + amount
If addR > 255 Then
addR = 255
ElseIf addR < 0 Then
addR = 0
End If
speeds things up. Now at least the thumbnails process more smoothly.
I'd really prefer to keep this in managed code and not have to dig into C or C++, so I just want to streamline it as much as possible. I don't think that .NET would let you treat it as an array of bytes, but I'll look into that. |
| Thu 12 Jun | DJ | Try this:
From Max Raskin at http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=165&lngWId=10
Public Shared Function BrightnessFilter(ByVal BrightnessValue As Integer, ByRef b As Bitmap) As Bitmap
'===================================================================================='
' This function is quite simple, it adds/subtracts the BrightnessValue to each byte '
' and so it increases/decreases the brightness of the pixels. '
'===================================================================================='
If b.PixelFormat = PixelFormat.Format8bppIndexed Then
MsgBox('256 colors bitmap are not supported.', MsgBoxStyle.Critical Or MsgBoxStyle.ApplicationModal, 'Error')
Return Nothing
End If
If BrightnessValue = 0 Then Return Nothing
bmData = b.LockBits(New Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb)
ptr = bmData.Scan0
nOffset = bmData.Stride - b.Width * 3
For y = 0 To b.Height - 1
For x = 0 To (b.Width * 3) - 1
Dim bByte As Integer = Marshal.ReadByte(ptr, 0)
bByte += BrightnessValue
' Make sure that the byte doesn't go beyond 255 or beneath 0
If bByte > 255 Then bByte = 255
If bByte < 0 Then bByte = 0
' Write the new byte and loop until all bytes are modified
Marshal.WriteByte(ptr, 0, CByte(bByte))
' In C++ we would simply do ptr += 3; but here it VB.NET
' it gets ugly, but it works (op_Explicit converts from Int32 to an IntPtr
' pointer).
' We increase the pointer by 3 (3 bytes for BGR):
ptr = IntPtr.op_Explicit(ptr.ToInt32 + 1)
Next
' Advance an offset
ptr = IntPtr.op_Explicit(ptr.ToInt32 + nOffset)
Next
b.UnlockBits(bmData)
Return b
End Function |
| Thu 12 Jun | Duncan Smart | JWA: not that it will speed up your code - but those If...Else's are getting on my nerves ;-) how about using Math.Min() and Math.Max()? |
| Thu 12 Jun | JWA | DJ,
That works beautifully. Lot's of good things to learn from that. Fast and smooth, thanks.
Duncan,
I tried the Math.Min and Math.Max originally, and once again after S.Tanna reccomended it, but it was a lot slower, almost twice as slow. I went to the If..ElseIf to at least try to minimize the total number of comparisons needed.
I would have thought that the math comparison functions would have been better too, and I'm not really sure why they were so much slower.
--Josh |
| Thu 12 Jun | Chris Tavares | The comparison functions are slow because they require a function call for each compare. The if statements don't, so they're faster. |
| Thu 12 Jun | S. Tanna | Like I say, I use C, don't know about .net, but I guessed 3X adding is bad.
What about eliminating ALL the adding from the loop.
Precalculate an array of the added values, then use that in the per pixel loop. In pseudo-C :-
int add[256] ;
for ( int i = 0 ; i <= 255; i++ )
{
add[i] = min( 255, max( i + amount, 0 ) ) ; // or the IF version
}
for ( int x = 0 ; x < width ; x++ )
{
for ( int y = 0 ; y < height ; y++ )
{
rgb = GetPixel(x,y) ;
SetPixel( x, y, RGB( add[r], add[g], add[b] ) ) ;
}
} |
| Thu 12 Jun | Groby | Even in C, replacing an addition with a table lookup is not a particularly good idea. (For the C-crowd - remember that table[index]==*(table+index) so you're still adding)
Addition is pretty much the cheapest operation that can be had.
The link that DJ posted is right on the money - convert the whole bitmap into an array of bytes, operate on that and gain a LOT of speed. Calling GetPixel/SetPixel is rather expensive, especially if you do it for every single pixel in the picture.
Two more minor improvements:
Pointer management: Don't add to ptr in the inner loop. Instead, use 'x' as the offset for ReadByte/WriteByte. After all, you're passing in an offset anyways, and you need x to loop-count. Only increment ptr by stride once you go to the next scanline.
Alternatively, you can try incrementing the ptr and only using ReadByte(ptr) (and WriteByte, of course) without specifying the offset. One of the two approaches is going to net some speedup but I'm afraid you have to measure.
Common Subexpressions: If you really need speed, don't trust your compiler to eliminate common subexpressions. You potentially compute width*3 for every scanline - do it once, outside the loop. The compiler /should/ do that for you, but you should either check on the compiler output or do it yourself if you need extra speed.
Or, you might resort to using Color matrices which are available in GDI+ - you can fairly easily scale or translate your whole color space. Look for ColorMatrix for more info on that. Here's a quick (untested) code fragment that should do the trick. It's a bit C-ish, sorry - my VB is more than rusty
Public Shared Function BrightnessFilter(ByVal BrightnessValue As Integer, ByRef b As Bitmap) As Bitmap
Dim newBitmap = New Bitmap(b)
Dim g = Graphics.FromImage(newBitmap)
Dim imageAttributes As New Imaging.ImageAttributes()
Dim width As Integer = b.Width
Dim height As Integer = b.Height
Dim colorMatrixElements As Single()() = { _
New Single() {1, 0, 0, 0, 0}, _
New Single() {0, 1, 0, 0, 0}, _
New Single() {0, 0, 1, 0, 0}, _
New Single() {0, 0, 0, 1, 0}, _
New Single() {BrightnessValue / 255.0, BrightnessValue / 255.0, BrightnessValue / 255.0, 0, 1}}
Dim colorMatrix As New Imaging.ColorMatrix(colorMatrixElements)
imageAttributes.SetColorMatrix( _
colorMatrix, _
Imaging.ColorMatrixFlag.Default, _
Imaging.ColorAdjustType.Bitmap)
' overdraw the bitmap with brightened colors
g.DrawImage(newBitmap, _
New Rectangle(0, 0, newBitmap.Width, newBitmap.Height), _
0, 0, newBitmap.Width, newBitmap.Height, _
GraphicsUnit.Pixel, imageAttributes)
Return newBitmap
End Function
Hope this helps,
- Robert |
| Thu 12 Jun | S. Tanna | > Even in C, replacing an addition with a table lookup is not a particularly good idea. (For the C-crowd - remember that table[index]==*(table+index) so you're still adding)
You are eliminating the 2 IFs for <0 >255 and possibly 1 assignment all X3 per pixel.
It also has the advantage the same update loop can be used for other modifications such as contrast enhancement
But the GetPixel/SetPixel is what kills as they probably expand into something like
offset = ( y * 3 * height ) + ( x * 3 ) |
| Fri 13 Jun | Chris | Don't think it'll help much, but it would probably be a good idea to cache the height and width before your For loops. As it is right now, your bmp object has to determine its width and height on each iteration. The difference there really depends on how the object determines those values internally, though.
Good luck. |
| Fri 13 Jun | JWA | Hi Chris,
That's interesting. Do most languages calculate the terms of a for statement on each loop? I guess that I'd always assumed that it would be set on the first pass and then remain static. It makes more sense to calculate on each loop to account for a changinf target, but I just always assumed it was a one shot thing.
How is this typically done in most languages?
--Josh
P.S. Thanks to everyone for their insightful and extremely helpful comments to this question. I learned quite a bit of technique just going through all of this. |
| Fri 13 Jun | Christopher Wells | > But the GetPixel/SetPixel is what kills as they probably
> expand into something like
> offset = ( y * 3 * height ) + ( x * 3 )
They expand into a call into the O/S and video driver: maybe thousands, not dozens, of opcodes. |
| Fri 13 Jun | S. Tanna | I don't know know if we're talking C or dot not, and a memory bitmap or one on screen. But even in the best case, it's a nasty calculation to do in a loop
Oddly enough I had the exact same problem in one of my programs. |
|
| don't wanna ? | Thu 12 Jun | ddv |
| Friends,
In your opinion, is it OK to just say dont wanna when you are given a task by your boss / proj. leader ?
To put things into perspective - I am a developer / maintainer. Recently, Ive been given a task that suits a sysadmin, and I neither am good at it or have any sympathy for it. I literally suffer when I work on this task - and my productivity is in accordance. So, is it OK / acceptable to just say I dont want to do it ?
P.S.: I realize that Yes will be a frequent answer. Id like some details, and especially motivation though,
Thanks in advance |
| Thu 12 Jun | DingBat |
Is this really a serious question?
In case it is, it's perfectly ok to say 'I don't wanna'.
Is it ok for your project leader not to give you a raise next review period? |
| Thu 12 Jun | Joel Spolsky | Do read Melville's 'Bartleby, the Scrivener' first. |
| Thu 12 Jun | Bill Carlson | Ideas:
1. 'So-and-so knows that better than I do. Maybe he would be a better fit?'
2. 'So-and-so is eager for something technical to do. Maybe they would like a challenge?'
3. 'My current project(s) are cruicial to the company. This side task will delay their completion.'
4. Postpone and procrastinate until it goes away or gets reassigned. This works in more cases than people think.
5. Fake incompetence.
6. Request clarification that this is a temporary job duty. (not that this really means anything).
7. Do the task, but bitch about it.
8. Cop a 1999 and say 'don't wanna; oh and by the way, my department wants a raise and an indoor badmitton court installed on premisis'.
9. Yes sir. Right away sir. Did you say jump? I'm already in the air, sir.
If you've been at your job a couple years and people like you, #1-8 could work, otherwise it's #9. |
| Thu 12 Jun | www.marktaw.com | > I realize that 'Yes' will be a frequent answer. I'd like some details, and especially motivation though, <
You seriously think that will be a frequent answer? From Philo maybe, but not anyone else (just kidding).
I questioned one assignment I got where I thought my boss was asking me to fly out to Japan (it turns out he wasn't) and I don't think he ever forgave me for it. |
| Thu 12 Jun | Philo | LOL! Bite me, Mark.
My answer would be 'it depends'
Are you the best person for the job? How much off your track is it? How distracting will it be? How long will it take? Is it a single task or an ongoing assignment? Was the tasking an offer or a directive? etc.
For those who are bordering on advocating unquestioning obedience, would you really salute smartly and say 'aye, aye, sir' if the directive was 'I want to test our backup system - format the production server and restore it from scratch right now'? How about 'I think we should drop Java and redesign our application from the ground up in Visual Basic'?
When you get senior enough, then some orders should be questioned. If your boss tasks you with something when someone else is better qualified, or you're already working 60 hours/week, or you honestly don't have the skills, then IMHO you are *obligated* to raise the issue.
If it's a preferential issue, then it's possible to gently disagree - we use an online shopping package that I *loathe*, and I tell my boss every time I have to do something with it. But I also do what I'm asked to do.
All the preceding of course has a massive caveat that if you've got the wrong boss, then saying anything but 'how high' could get you fired. [shrug]
Philo |
| Thu 12 Jun | Lou | Stephen Covey mentions one of his former employees in 7 Habits of Highly Effective People. He asked this person to perform some task. After a few moments of thought the employee turned back and replied (and I paraphrase because the book is at home), 'I'd like to do that, but I'm already operating under a full load of work, here are my project (points to a whiteboard with information on it) and their deadlines and progress. Which one would you like me to postpone or which one would you rather I handed off to someone else to accomodate this?'
He quickly found someone else to do the job, realizing how effective this person was being. Note, language is very important. If you reply that 'I don't wanna' you'll have problems. If you make a simple case not directly related to the project - that is, if you show your other pressing work and how disruptive this will be - you might have a chance. Best of luck. |
| Thu 12 Jun | Swahili Dilio | Do read Melville's 'Bartleby, the Scrivener' first.
I would prefer not to. |
| Thu 12 Jun | Thomas | 'Don't wanna' is not a professional answer.
How about: 'This is not something I'm skilled at and is not the type of task I have an aptitude for. Can this be reassigned to someone with more experience and aptitude?'
If you have a good boss, he will recognize that what you're saying is that it's inefficient for you to take on this task, and that he'll get better, faster results by giving it to someone else. The catch is that 'someone else' may not exist or may be unavailable, in which case you may well have to suck it up and do it.
-Thomas |
| Thu 12 Jun | moses whitecotton | Lou is right on the money! I have actually used this approach and did not even know it came from '7 habits'. |
| Thu 12 Jun | www.marktaw.com | I was never good at that Steven Covey / CYA speak. I'm pretty bad, actually, at saying something I don't actually mean.
I blame it on being to sober most of my life... I think most people learn to lie when they're being picked up in a bar by someone they desperately don't want to be picked up by. |
| Thu 12 Jun | Brent P. Newhall | Stephen Covey's approach is neither CYA nor lying. It's telling the truth.
Which would be my approach. Explain that you dislike this work to your boss, that you're not skilled for it, etc.
My Dad did this once with a boss he hated, and the boss not only respected him and found him other work to do, he always complimented my Dad for being upfront about it. |
| Thu 12 Jun | trollbooth | [Do read Melville's 'Bartleby, the Scrivener' first. ]
I would love to. Unfortunately I have a full load of books to read including: Hemmingway on Fishing, Patterns of Enterprise Architecture, Jack London - Collection of Short Stories, Robot City #3, and Body of Secrets (Inside the NSA).
Which one of these would you like me to postpone? ;-) |
| Thu 12 Jun | www.marktaw.com | Robot City # 3 - I read those books as I was growing up. I discovered it via a radio show produced here in NY and played late at night on WBAI.
The video game is also very good, I tracked it down becuase the books were so good. I think I got it for $5 from half.com
You're right, Covey isn't CYA or lying, but it is good salesmanship and presenting things in a certain light, which I'm not very practiced at.
If I'm explaining something to someone I can 'get inside their head' and figure out what they need to know, but often when I'm selling myself, especially to an authority figure, I get a little nervous and have a hard time 'telling them what they want to hear' even if it is just a matter of putting the truth in a better light. It's definately something I need to work on.
(do I pass my performance evaluation?) |
| Thu 12 Jun | . | Read short form
http://www.cwrl.utexas.edu/~daniel/amlit/bartleby/bartelbylemaster.html |
| Thu 12 Jun | Jim Rankin | 'You're right, Covey isn't CYA or lying, but it is good salesmanship and presenting things in a certain light, which I'm not very practiced at.'
Then put everything else aside and work on this. I'm guessing you've got good technical skills. Salesmanship is a necessity in a capitalist economy. I think the critical skill is empathy. In a sales/consultant/employee situation, you need to be able to express your opinion in terms of the customer/ client/boss' needs, priorities and values.
I don't think I'm great at it either, but I think I'm a lot better than I used to be.
What do y'all think are good resources for this?
Good luck. |
| Thu 12 Jun | Bored Bystander | The specific circumstances mean everything.
The mention of living in a capitalist society raises an interesting point. Even people at FT jobs should probably adopt the attitude that they have to re-sell their bosses on them as employees at regular intervals. This wasn't the case 10 or 20 years ago but it's the way we have to live today.
Even degreed professionals have to adopt the mentality of sales people continually re-selling themselves. It eats sh*t as a workplace trend and makes me wonder if productivity hasn't taken a nosedive based upon pressuring everyone to market themselves, but it's what businesses now demand.
Fail to 'sell yourself' enough times and you're history, whether outsourced, position eliminated, or offshored. No matter what you do or how well you do it. And saying 'don't wanna' as an only explanation is a prime recipe for raising your visibility enough to make this highly probable. |
| Thu 12 Jun | Philo | Bored, your attitude puts you squarely in Catch-22 territory.
Either
a) Tell your boss when you're overburdened so he can prioritize your tasking, but risk getting fired for saying anything but 'yes, sir - how high?'
or
b) Always accept every task assigned and start doing substandard work and missing deadlines because you're overtasked. (And this includes being assigned something that the appropriate worker could do in an hour but takes you ten because you don't have the requisite knowledge)
Philo |
| Thu 12 Jun | Bored Bystander | Philo,
No, I didn't say that at all and I didn't mean that.
The scope of my statement was that when you *explicitly* refuse to do something asked of you, you are potentially placing your position in jeopardy. By 'explicitly' I mean saying 'no, I won't'.
YES, I agree with every word you state. But you know what? Companies that pile it on very often don't care how crappy the result is. They are looking for line worker accountability. They need a column of Yes's. One No mars things, makes things messy, makes the managers look like the a-holes they are.
I was fired from a job 12 years ago for doing just that; for saying 'no, I can't do that because I am almost doing X and Y.' The management didn't give a damn, they only wanted to see people dance when they shot at their feet.
I could have survived if I had not made an issue of this, even if I had done really crappy work as a result.
The job, BTW, was horrible, the coworkers and the management were all pricks, and I hated the place anyway. It was good to leave.
But I speak from experience, and I do realize that it's a catch-22.
Perhaps the real issue is: do you want to work steadily for just one company, or do you want to do quality work? In many cases these are mutually exclusive choices... |
| Thu 12 Jun | Bored Bystander | Correction:
>> 'no, I can't do that because I am almost doing X and Y.'
I meant:
'no, I can't do that because I am >also< doing X and Y.'
Philo - also, sorry for jumping all over you on that post. I have a sore spot when it comes to employee-management relations. I am a casualty of telling my management 'the truth' which happened to be reinterpreted as 'what Bored wants personally which does not suit us, so good-bye'. |
| Thu 12 Jun | . | As a negotiating thing, watch out for the trap of giving 'reasons' that your manager can then explain away.
If you really don't want to do it, you need to explicitly tell him or her it's a really dumb job for you and you DON'T WANT TO DO IT. That can't be argued away.
Sometimes non-technical managers don't understand the differences between roles. |
| Thu 12 Jun | Dave B. | If you say no tactfully and professionally and have a good reason for it, then you place yourself in the position of being on the upswing and maybe being able to negotiate. If your boss still says do it then you politely inform him/her of the consequences and move on.
If you just abrubtly say no that takes away your neutrality and puts you on the defensive against a person who you just denied power. This creates tremendous friction. You also make yourself appear unprofessional in nature and risk your job.
It takes a lot of patience and will-power to be 'professional', in the end it's worth it. I take my frustrations out at the gym. (Flexes!) |
| Fri 13 Jun | Astarte | Do you mean 'I *hate* doing X' or 'Doing X is beneath me / a waste of my precious time'?
If someone says to me 'I really hate writing docs', I will be sympathetic but make them do it anyway. I will make allowances for bad grammar and poor style and I will try to move as much of it off to someone who likes it and is good at it, but all jobs have bits you don't enjoy and sometimes I need you to just bite the bullet and do it.
Some of the other suggestions made would really piss me off. Don't just fake incompetence or procrastinate until I have to find someone else to do it. Have the guts to look me in the eye and say 'Look, I'll do it but I won't like it'. And then knuckle down and do it. |
| Fri 13 Jun | The Real PC | As an employee, it's important to at least seem like you want to be cooperative. The boss is, by definition, the boss and we are there to do the work that needs to be done.
On the other hand I think it's ok to express how we feel about it. You can say Of course I will do it, but it isn't really one of my strengths.
Also, if you hate system administration-type work, it could be because you aren't used to it.
If you hate something because it's too difficult, my advice is learn how to do it. If you hate it because it's too easy and doesn't require any of your skills, then maybe your boss should be made aware that an unskilled person could do it and it would cost the company less. |
| Fri 13 Jun | trollbooth | You have to wonder what would have happened to Bartelby if he had been asked other questions. What would have happened if asked 'Would you like to sit here in this cell for the rest of your life?' he replied 'I prefer not to'?
Sometimes inaction causes more damage than action. |
| Fri 13 Jun | programmer | I actually tried this once, when I worked in a university archives.
I was one of two student employees in the archives, both of us managed by our boss, Ed. One of the student employees came back to me and said, 'Ed thought you might want to help me clean off these shelves and move the books' (or whatever the task was).
I thought, since Ed had said, 'might want to,' that I was open to refuse this job, if I 'didn't want to.'
So I said, 'No, I don't think so, I would prefer not to.'
He walked away.
Three or four minutes later, Ed marches back, very purposefully, and says in a very abrupt way, 'Get up and help him do that.'
That's the only time I have ever refused to do something, but I am glad I did. It was a learning experience. |
| Fri 13 Jun | J. Random Hacker | Near the beginning of my project, I went to a politically influential co-worker and said:
'You think you want me to help out with sysadmin tasks. Unfortunately, once I start doing that, my programming will screech to a halt. Within two months, you will have deprived the company of a programmer. I know this from bitter experience at previous jobs. So if you want new features, you need to find somebody else to sysadmin.'
This is true for a lot of programmers--the constant interruptions of sysadmining, even if they only add up to an hour a day, cut producitivity by over 50%. You probably couldn't program and work as a receptionist, either.
If your boss does creative work, he or she will understand. |
| Fri 13 Jun | Plutarck | Personally, I'd just say something like, 'Well, I'm certainly capable of doing that job...but I think you'd prefer I didn't - and I'll tell you why, if you have a minute. I'll do whatever you prefer, but I figure you'll appreciate knowing about this...'
You then simply explain that working on this problem will be like driving a nail into a board...with your head. It sucks away your energy and your drive, and while you can do it, it seems impossible to do it anywhere near as well as you could do something you could take the same level of pleasure in as your other work like [example].
Here's the key: managers like to make informed, productive choices (preferable ones which leave as little uncertainty as possible, and which generally make them feel good for having been useful).
Remember that their whole job is to make decisions about what other people should be doing, so if you just say 'no', you are effectively doing the equivalent of them deciding what algorithem, tools, language, or technique to use in solving coding, or refactoring your code without your consent, or deciding what variable names you should use. In effect, whether you intend it or not, you are saying 'I know how to do your job better than you do, and can do it as well as my own job - so you're useless, really.' You see, even if you feel that way, that isn't a good way to get people to behave as you would like them to behave.
To explain your concerns, lay out the evidence, and then: Give Them The Choice. If they just want you to do what you hate, and you've layed out your case properly, then you are really only left with A) Do it, B) Refuse (really bad idea - this decision is 'strictly dominated' by the next one), or C) Quit/Resign.
People probably get into more trouble trying to keep secret what they shouldn't and not explaining themselves than by being secretive and keeping things to themselves - usually. |
|
| With | Thu 12 Jun | i like i |
| Pascal and VB have a with keyword that lets you set a context for variables. So:
with windows.get(TOP).controls[12].canvas do begin
moveto(10,20);
lineto(30,50);
end;
is equiv to:
windows.get(TOP).controls[12].canvas.moveto(10,20);
windows.get(TOP).controls[12].canvas.lineto(30,50);
which is easier on the eyes? Would c++ and Java be better with a with keyword? |
| Thu 12 Jun | Mr Jack | No.
Adding the with keyword would invalidate a lot of existing C++ code, it would require a special case of scoping rules, and solves no new problems.
if it bothers you
whatever& with = windows.get(TOP).controls[12].canvas;
with.moveto(...);
with.lineto(...);
Provides almost equal convenience. |
| Thu 12 Jun | Justin | It's not just visually better....
I always used the construct anyway, for no other reason than it made my code easier to read, but I was told by someone a couple of years ago that there is a performance advantage to using 'with' as the reference to the object is not obtained for every line in the code......or something.
Shows the dangers of taking comments at face value ;)
One of these days I'll get round to checking that. |
| Thu 12 Jun | | Personally I hated it. It obscures where the contents of the 'with' are coming from (if that is clear). |
| Thu 12 Jun | Tom | No, you run the risk of silently importing or hiding identifiers from the outside scope if the structure changes.
Just alias the object with a shorter-named variable and use that. You will either get the same code, or something slightly better. |
| Thu 12 Jun | Chris | With is the work of the devil, let me explain:
(We use VFP)
>>> Bad Example >>>>
Procedure Proc1()
With Thisform.someControl
Proc2()
EndWith
EndProc
In a PRG far, far away with no comments about what actual WITH statement this relies on:
Procedure Proc2()
.Parent.someothercontrolontheform.someproperty = somevalue
&& etc, etc. with no other comments
EndProc
<<< End Bad Example <<<
So now you have a seperate procedure that can't be called from anywhere else in the whole program.
Maybe the WITH command needs a limit put on its scope so it can't go between different procedures or something? |
| Thu 12 Jun | One-Armed Bandit | I hate 'with'. It makes code less readable to me because it makes method calls look almost identical to global function calls. Not to mention the problems you incur if you move code around. I agree wholeheartedly with those saying just assign any long expression to a reference variable and use the reference. This solves the performance problem your colleague mentioned without incurring the problems of 'with'. |
| Thu 12 Jun | Better than being unemployed... | With seems to be one of the biggest culprits I've found for writing bad code in VB.
Worst of all are nested withs. Ie :
With Object1
.Foo
.Bar
With Object2
.Bar
End With
End With
Totally frustrating to read. |
| Thu 12 Jun | treefrog | Maybe slightly OT, but Ruby has a very nice structure for this sort of thing, using code blocks and a yield keyword.
The sort of place you would most usually come across a block would be in an iterator
e.g.
array=[1,2,3]
array.each { |x| print x,' ' }
=> 1 2 3
This passes each value used in the array out into the block, using x as a local name for the value passed out. Instead of of { }, you can delimit the block using do ... end.
Then there is a yield statement, used to pass out values from a subroutine to a block. For example
def series
x=1
while (x<100)
x+=x
yield x if block_given?
end
end
series { |y| print y, ' ' }
=> 2 4 8 16 32 64
Yield doesn't quite do what with does, but it is a very nice way of gaining a local context, and also lets you overwrite generic behaviour with specifics where you need to.
Best regards, |
| Thu 12 Jun | Oren Miller | treefrog,
That's not the same thing. The ruby construct is for iterating through collections. The example in the original post does no such thing. It is operating on a single known member of a collection. |
| Thu 12 Jun | Philo | Don't blame the tool for the actions of those who wield it...
The 'nesting a function call within a with' and 'nested withs' constructs are simply bad coding.
The reasons for using With:
1) object only resolved once
2) when properly used, code is more readable
3) makes code easier to type
Compare:
cmdRecordset.Parameters.Add(cmdRecordset.CreateParameter(name, type, length, value)
cmdRecordset.Parameters.Add(cmdRecordset.CreateParameter(name, type, length, value)
cmdRecordset.Parameters.Add(cmdRecordset.CreateParameter(name, type, length, value)
cmdRecordset.Parameters.Add(cmdRecordset.CreateParameter(name, type, length, value)
or
with cmdRecordset
.Parameters.Add(.CreateParameter(name, type, length, value)
.Parameters.Add(.CreateParameter(name, type, length, value)
.Parameters.Add(.CreateParameter(name, type, length, value)
.Parameters.Add(.CreateParameter(name, type, length, value)
end With
I generally only used with when I had a tight grouping of calls to the same object - either something like the above or a series of property assignments.
Philo |
| Thu 12 Jun | Better than being unemployed... | Oh, don't get me wrong, I'd agree with your example there - just most of the code I've seen has With used in all the wrong places. |
| Thu 12 Jun | Joel Spolsky | I introduced 'With' to VBA because Excel macros were full of cases where you did ten things to the same cell, range, chart, etc. For example if you have a macro that creates a chart, you need to set about 23 options on the chart before it looks the way you like it. In the user interface, you select the chart and do 23 things. This maps nicely to opening a with block and doing 23 things, so the macro recorder could generate with blocks and thus create vastly cleaner code. (Try it... the macro recorder generates With blocks all the time).
To the macro recorder, a with block is better than setting a temporary object variable because the macro recorder doesn't know what other variables are already in scope and it can't be trusted to pick a name that doesn't collide.
Another reason for With in VBA is that the language was designed so that you didn't have to understand what a reference or pointer was to write code. Of all the people that write Excel macros, only about 1/10th of them have the aptitude to understand pointers and references. You may look down on them but if you're concerned about the usability of a programming environment, avoiding pointers and references helps more than just about anything else.
(Another way we avoid references in VBA is that whenever you have an object, there is some kind of property of that object, usually an index or a string, which indicates which one it is. So people can do this:
Dim i
i = myRow.Index
then
... myRow(i) ....
Here an i is serving the same purpose as a pointer without actually BEING a pointer, and probably 10 times as many excel-macro-tinkering-people with no programming training can make it work.
Last point. Some people in this discussion seem to be unaware that to use With in VBA, you have to put a . in front of every member that you want to be relative to the With statement referant.
With ActiveWorksheet
.Save
.Close
End With
The leading . means 'in the scope of the with statement.' That solves the scoping problem completely and makes the code more readable and completely deterministic. |
| Thu 12 Jun | Stress | 'I introduced 'With' to VBA' - Joel
Seriously? |
| Thu 12 Jun | Joel Spolsky | Yep, here's the spec from December 1991:
(critical) Repeatedly specifying the same object (or part thereof) gets tedious. We need a Pascal-like 'with' statement that might work as follows:
with [book1.xlw].[foo]
[d3].FontName = 'Helvetica'
[d5].Formula = 25
end with
Actually, a neat keyword for this feature might be 'tell':
tell [sheet1.xls!a1]
Formula = '=SUM(R1C1:R5C5)'
FontName = 'Helvetica'
Number = 'General'
end tell
For recording, our strategy would be as follows:
* when the selection or active window changes, create a new tell context with the current selection
* collapse tell clauses containing 0 statements to nothing
* collapse tell clauses containing exactly 1 statement to eliminate the tell clause |
| Thu 12 Jun | Eric Lippert | Indeed. Note that Joel's clever construction of 'With' has the nice (though abusable, as noted) property that one can lexically determine the value of the 'missing' prefix.
This is not the case with the Javascript/JScript 'with' block introduced by Netscape. Let me just take this opportunity to tell you all to never, ever, ever use the 'with' block in JScript. It makes the code slower, it eliminates our ability to do compiler optimizations, and it makes the code harder to read. There is absolutely no point to using it.
Lemme give you an example.
case 1:
var x;
x = foo.bar;
case 2:
with(foo)
{
x = bar;
}
In the first case we can at compile time determine that x is a local, and generate more optimal code as a result.
In the second case, we have to generate code that searches foo dynamically to see if we are assigning to 'foo.x' or to the local 'x'. Worse, if 'foo' is an extensible aggregate object (like, say, the 'window' object in IE) we have to search the entire transitive namespace of the aggregate in order to determine that in fact we need to bind to the local x. (And then when we do bind, we bind by name rather than by ordinal.)
Worse, what if you _accidentally_ have an 'x' property on 'foo'? This is quite possible if foo is an aggregate. You have just written a bug into your program.
The reason the runtime interpreter has to do all this work is because the code is not clear, and that means that humans reading the code have to do the same thing -- to understand whether this code means x = bar, x = foo.bar, foo.x = bar, or foo.x = foo.bar the reader needs have complete knowledge of every method and property of foo.
I have no idea why Netscape designed a language construct with these semantics, but they did. Avoid, avoid, avoid.
Eric |
| Thu 12 Jun | John Topley (www.johntopley.com) | Joel,
How come you've got access to a Microsoft internal spec? Do they not mind as it's an old one or do they not know that you have it?! Just curious. |
| Thu 12 Jun | Chris Tavares | The With statement in Pascal and VB are semantically equivalent to this:
Canvas *p = windows.get(TOP).controls[12].canvas;
p->moveto(10,20);
p->lineto(30,50);
The only difference is the p-> is implicit in VB/Pascal, and explicit in C++/C#/Java/what have you.
In fact, if you look at the generated assembly code from Pascal or VB, the above is EXACTLY what the compiler is doing under the hood. |
| Thu 12 Jun | Dan Shappir | Joel's statements are certainly valid, especially in the context they where given (VBA code for Excel automatically generated by the macro recorder). For general purpose OO programming however, I believe that the use of 'With' indicates that the various properties/methods should have been grouped as members of a specific object, and that the code executed within the 'With' should have been a method of that object.
Another way to look at it is that the 'With' statement plays with the scoping rules by transforming a specific object into a scope. This indicates the close relationship between scopes, or more precisely closures, and objects. Indeed, programmers using functional languages like to quip that objects are a poor man's closure.
To check out this scope/object relationship taken to extreme see:
http://w3future.com/html/loell/ |
| Thu 12 Jun | Joel Spolsky | Follow along, John, I wrote that spec. |
| Thu 12 Jun | Chris Ormerod | Joel,
I think John means that he thinks you probably should have handed that back to Bill as you were leaving Redmond. |
| Thu 12 Jun | Joel Spolsky | Dan, you should see how many properties a cell in Excel has. If making a cell bold and red requires a call to a method with lots of arguments, you're going to have 40 arguments, 38 of which will be 'do not change' sentinals. |
| Thu 12 Jun | Joel Spolsky | Oh right. Sorry Bill. To be fair it has been baked into the product for 11 years, it's hard to see it as secret. |
| Fri 13 Jun | i like i | Lol: I said it, I was wrong, Joel likes it, and suddenly it isn't such a crazy idea after all! Joel, you're quite a opinion-setter :-) |
| Fri 13 Jun | Philo | Hey! Since when does 'well that's what Microsoft does' win ANY argument with programmers?
Philo |
| Fri 13 Jun | Better than being unemployed... | I think Joel's idea for putting With into VBA, and the examples he's given are sound.
However, his intended audience (Non techies using Excel as part of their job who want to knock a macro up quickly) is definitely not the same audience as the developers I've inherited code from, who being professional software developers most definitely should understand pointers and references!
And the examples of good usage are different from the places I've seen it abused eg: in three page long functions enclosed in a With acting on a seemingly random object with various nested Withs inside that.
Right tools for the right job etc... |
| Fri 13 Jun | Simon Lucy | As for the VFP example, there is absolutely no point in using 'with' in code that can be addressed outside of the required context but in context within a method of a form its entirely reasonable.
If I remember rightly Algol and PL/1 have the same construct. |
| Fri 13 Jun | Dan Shappir | Joel, I said in my original post that With makes perfect sense in the context you described. What I meant in my post is that when I design an object hierarchy to use in my own applications, whenever I find myself using With (if the app is written in VB) or wanting to use With (if the app is written in C++ or Java) it's usually a clear indication that the sequence of set and get operations should have been encapsulated in a method.
It's also important to realize that this property based programming, that fits so naturally with Excel scripting (and VB GUI apps, and browser DOM manipulation) can have significant adverse side-effects in other contexts. For example, it doesn't work well with multi-threaded apps (because the sequence of operations isn't atomic) and result in a huge performance hit when marshaling is required (e.g. DCOM or SOAP).
BTW, I like VB's implementation of With more than that provided by any other programming language that supports it (that I'm familiar with). The . prefix makes it clear which variable is an object member and which is simply local (automatic). It also works great with InteliSense. I actually like it so much that I wish other OO languages, such as C++ or Java, would have used the . prefix to indicate access to members inside methods. That would have saved me the need to prefix member names with 'm_'. |
| Fri 13 Jun | James | You don't need this in C and C++ because you have pointers. The original version of Pascal was much less free and easy with pointers, so 'with' made sense. Note that Wirth took this statement out of Oberon, a later successor to Pascal. |
| Fri 13 Jun | Andy | Well is having a pointer exactly the same thing? I do use them for this purpose, to alias a complicated expression, but I think you will pay for an extra indirection if the compiler doesn't optimize it out.
e.g.
foo->[goo[i]].a = 1;
foo->[goo[i]].b = 2;
having 'with' basically is syntactic sugar that lets you not type the same expression twice.
if you use the C way, you have to do an extra assignment an indirection per field accessed:
void* p = &foo->goo[i];
p->a = 1;
p->b = 2;
I'm not sure how optimizable this is... I'll try it out someday... |
| Fri 13 Jun | Andy | nevermind the fact that most of the expressions above don't compile, I think you get the point : ) |
|
| Test The Nation | Wed 11 Jun | FullNameRequired |
| disappointing result really...
48, resulted in 117 IQ
barely above average ;( |
| Wed 11 Jun | FullNameRequired | anyone else want to try?
http://www.testonfox.com |
| Wed 11 Jun | Philo | I don't recall any certified IQ test ever having a time limit per question or a 'test your memory' section...?
Philo |
| Wed 11 Jun | Gunjan Sinha | I made 117 too! |
| Wed 11 Jun | Devil's Advocate | 58 ==> 132
If only I weren't reading JOS in the other window the whole time :-P |
| Wed 11 Jun | Billy Boy | 56 correct or 129
I'm not convinced that this test is accurate...I'm just not that smart.
Maybe I'll try it with random answers, if only they did not force the timer to run out before going to the next question. |
| Thu 12 Jun | Chris | I'm pretty skeptical about the accuracy, too. I watched the show the other night, and there was a city in Virginia that averaged 138. No friggin' way.
I'm 24 and got 120 on the test. |
| Thu 12 Jun | ? | 126 |
| Thu 12 Jun | www.marktaw.com | That city in virginia probably only has one person with internet access, and he hacked it from an orbiting sattelite he put there himself.
They never said how many people took the test in that town, just how many lived there overall. |
| Thu 12 Jun | Andrew Hurst | 49 Correct, 118 IQ. Doesn't seem like a very reliable test to me. tests english for a good part of it, etc. |
| Thu 12 Jun | Spam | The whole things seemed a little strange. By no means am I a statistics expert, but should there really be a (roughly) linear relationship between the number of correct answers and the suggested IQ?
And why such a large selection of memory questions? And adding numbers? I'm also not a psychologist, but isn't there a different between quick thinking, and intelligence? |
| Thu 12 Jun | PJA | 49 = 128. Wife says all results for me must be discounted. |
| Thu 12 Jun | Hardware Guy | Do they deduct points for watching Fox? |
| Thu 12 Jun | www.marktaw.com | They screwed this up to. They said that 50% of the poulation falls within 1 standard deviation, but it should really be 64%.
If I remember correctly, 1 standard deviation (90 - 110) will be 64% of the population, 2 standard deviations (80 - 120) will include 86% of the population, and 3 standard deviations will be 95% of the population.
So if you scored above 110 you did better than 82% of the population. If you scored above 120 you did better than 93% of the population. If you scored above 130 you did better than 97.5% of the population.
Look up Standard Deviation and Bell Curve for more information and an explanation as to how those numbers were decided on. DO NOT look up the book Bell Curve, I think it was a case for white superiority over blacks or something equally controversial. |
| Thu 12 Jun | www.marktaw.com | > Do they deduct points for watching Fox?
They should add points because of the dumbing effect it has while you're watching it. Perhaps that accounts for why the average IQ was outside of one standard deviation. |
| Thu 12 Jun | Yves | Hmm... 58 => 139
So apparently the questions' scores are weighted.
But this test must be true because it gives me a high score, whereas other tests give me lower scores!
Right? |
| Thu 12 Jun | Alyosha` | 54 questions correct / 126 IQ.
Ten points were deducted because I entered Democrat on the front page.
I noticed that old trickster on there: circle is to square as sphere is to _____? I answered 'cube' -- reasoning that a sphere looks like a circle from all sides in the same way that a cube looks like a square from all sides. But then I remembered that the question was really about volumes of rotation -- a circle, rotated around its diameter, forms a sphere; so a square, rotated around its center, forms a cylinder ... so I was probably penalised for that one. |
| Thu 12 Jun | Lauren B. | Hey, I'm taking a psych class right now and we're just getting into intelligence, IQ, learning, memory, etc. We have to take some of these IQ tests for class:
http://nicologic.free.fr/
Have fun! |
| Thu 12 Jun | Matt Christensen | Any IQ test that begins by asking your hair color, eye color, and political party deserves to be taken with a very large grain of salt. |
| Thu 12 Jun | Scot | yhe test was nomalized, but without knowing 'against what' it would be hard to take it seriously. the party affiliation and color questions referred to above were used on the show to answer questions like 'do dems or reps have higher iq'... so i will give them the benefit of he doubt there. the whole thing gave my wife and i a great laugh! |
| Thu 12 Jun | Plastics | 50 => 127
Agrees with a prior test they made us take in highschool. |
| Thu 12 Jun | Aurelio | 55 => 135
Maybe they take into account the remaining time after you answer each questions. The higher the time, the higher the IQ ? |
| Thu 12 Jun | Aurelio | It was simpler than that.
http://www.testonfox.com/247/table.htm |
| Thu 12 Jun | www.marktaw.com | Wait a minute, my Maximum IQ is 135? No wonder the students didnt do so well, they test was biased so they couldn't possibly do as well as the scientists or Dr. Drew, even if they got more questions right.
That also doesn't look like a bell curve to me. It takes 6-7 questions to get 10 points. It's pretty linear. |
| Thu 12 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | 'DO NOT look up the book Bell Curve, I think it was a case for white superiority over blacks or something equally controversial.'
Spoken like someone who formed an opinion based on second or third hand knowledge, instead of by someone who read the book.
Deduct 10 points from your Fox score for lack of critical thinking skills. :-p |
| Thu 12 Jun | Philo | I also don't get the correlation between score and age. Are they saying older people tend to be not as smart?
IQ tests should be age-insensitive, other than the caveat that you can't test for IQ over a certain age (IIRC)
Philo |
| Thu 12 Jun | Mark Hoffman | Since we've opened this can of worms...
Here is some info about the book in question:
http://www.apa.org/journals/bell.html
From just skimming what they wrote, it doesn't appear to be just a racist tome as has been implied. |
| Thu 12 Jun | www.marktaw.com | You're right, I did form my opinion from 2nd and 3rd hand reviews, though I may have gone as far as to read the dust jacket myself.
I spend a lot of time in Barnes & Noble. |
| Thu 12 Jun | S. Tanna | I studied Experimental Psychology in University. IQ studies was an area I took a particular interest in. No, memory for a bunch of symbols is not usually part of an IQ test, but I guess it might correlate with IQ. I don't think the test is very good or standardized (I got bored with the crappy UI)
The book the Bell Curve is pretty poor in my opinion. Most of the fundamental arguments that the book used (and maybe some of the data) had been thrown around around since 70s and 80s, and shown (and generally accepted) to be flawed reasoning.
You may or may not decide to draw conclusions like that book, (I wouldn't as I have yet to see any truly convincing evidence for the positions, and plenty that undermines them) but I wouldn't use any of the arguments in that book in a serious debate. |
| Fri 13 Jun | ODN | If you're smart enough to use Alt-PrintScreen and a pocket calculator you deserve your 'high' IQ. |
|
| Use of the word Engineer | Wed 11 Jun | Daniel Schwartz-Narbonne |
| In Canada, the word Engineer is reserved for someone who has completed a degree in Engineering, and holds a valid Engineering Licence from a professional body. I was just wondering how things work in the USA? What do you guys use as the standard for calling som |