last updated:13 Jan 2004 15:08 UK time
|
 |
|
(Comments added for week ending Sun 11 Jan 2004) | View Other Weeks
|
|
| Small ISV's - Do you have testers? | Sun 11 Jan | Ben R |
| We all know testers are good, but as a small shop it can be hard to afford a full time tester when you only have a team of about 3 developers.
So what techniques do you use? Do you get the team break out of their developer role and do a few days of solid testing here and there on a project? What about University students looking for cash, anyone had good experience using them? What about a small group of customers looking for a significant discount? |
| Sun 11 Jan | Marc | We do a bit of it all really.
One thing we do is have the training and customer service guys bang on it. They are not formal QA, but that are pretty good at it. |
|
| Advice Wanted | Sun 11 Jan | Mostly Harmless |
| I have an (young, just older than the teens) employee who must posess the most amount of unrealised potential I have ever seen in my thrity plus years in the business. I do not say this lightly.
However, this person is going gthrough some personal problems right now, with, unfortunately, drugs and a few other things. It is beginning to have an effect on the employees performance at work.
Perhaps I should explain a little more. This person works in both the technical support side of my business and also does some programming work. In either discipline the work is almost flawless and customers often requested to deal with only them. They constantly surprise the more experienced people with their ability to grasp abstract concepts and quickly output a workable and robust solution. They are an order of magnitude better than many of the employees with CS degrees (even from very reputable institutions), often producing more elegant solutions in a shorter time period.
I really dont want to have to fire them, but have no other choice if the current predicament continues.
Advice please. |
| Sun 11 Jan | Wayne | Talk to them about it. Be nice, but tell them if they don't shape up, they're going get shipped out.
Tell them if they need help, you're there for them.
It might help to inform them that you want them to do more programming for you, I think everyone hates doing Tech Support adn it might give them something to look forward to. |
| Sun 11 Jan | no name | What problems? The way you described it you should be giving him a raise. |
| Sun 11 Jan | Christopher Wells | Chapter 10 of _Alcoholics Anonymous_ http://www.amazon.com/exec/obidos/tg/detail/-/1893007170 is _To Employers_. |
| Sun 11 Jan | Mike Swieton | I have no managerial experience, so no advice I can give from that side will mean anything.
But I've had some friends that have had other personal problems, and I think it's worth considering. An example: a friend of mine, a few years ago, met this girl (that's how all sad tales start, isn't it?).
For the sake of anonymity, we'll call them Alice and Bob. Anyway, no one likes Alice. That's not without reason: she is an alcoholic and cocaine addict. At least those, there may be more. She was, I am quite certain, 18 or 19 when they met. So anyway, the important thing is that Alice is horny and Bob can't say no (how many 19 year old guys can, really?).
All of my friends knew she was bad news. We told him that. Being the stubborn guy that he is, Bob now has a kid and a wife. That's OK for some people, but it's not a good relationship, as one might imagine.
The point is this: we *all* told him, repeatedly, that the girl was bad news. I think he realizes it now, but with the kid, it's hard for him to get out.
You need to be very careful what you say to your employee. I think you're very likely to get a 'Fuck off, you're not my parents, don't lecture me' response. I know that's what I'd say, were I in his position. How many people do you know that are that willing to admit they are wrong? At least, until they've really messed up?
Here's an idea that's more likely to either succeed of fail explosively (beware!): Contact the kid's parents and friends. You can't help him. Face it, you really can't. His parents can't help. Anything you or they could do would have to be very extreme. But if his friends all think he should shape up, I think he'll very likely do it. Or they could be like Bob, and not admit to anyone until its far too late.
But then again, as a boss, you are probably not in a position to get into his personal life at all. Maybe you should call up one of those government programs or non-profits that specialize in helping misguided youths. They probably have some worthwhile advice, better than anything I could give.
Maybe you'd be better off just flat-out firing him and saying you'll hire him back when he's clean. It's less invasive than actually getting involved, so you'll probably be on better terms with him in the long run.
I hope things work out well for him. |
| Sun 11 Jan | no name | Shouldn't all employees be treated the same? I assume you have clearly defined performance expectations. So it should be a simple matter of progressive discipline, just as with any other employee.
If you are a manager, I would think you already know this. |
| Sun 11 Jan | that asshole guy who always has to say something clever | perhaps you could find out what he's smoking, and see if he can hook up the rest of your employees with the same. your business would be unstoppable! |
| Sun 11 Jan | braid_ged | that asshole guy who always has to say something clever,
That reminds me of story a buddy of mine was telling me about a mechanic that lived at the end of his street.
The guy started to do a little speed, and my buddy would drive home at midnight only to pass this mechanic out in his front yard scurrying around working on the wrecks in his front yard.
This guys family were in two minds, they were concerned about him using illicit drugs, on the other hand he had done up and sold three cars in a month :D |
| Sun 11 Jan | no name | There's nothing you can do. Really. |
| Sun 11 Jan | Matt Conrad | First, I would try to find a way to work around the performance problems, if there is any flexibility or possibility of cutting him some slack. Can he work second shift? Probably not, but maybe. What about half days, starting at noon? Maybe this problem is one that can be patched up for a while and it will blow over eventually.
Quite possibly not. If you have to fire him, I agree with the other guy that if he gets cleaned up and comes back after, say, six months, you could give him another chance. Trust your instincts on this part, don't get conned.
Don't beat yourself up if things don't work out. |
| Sun 11 Jan | no name | If he knows that you're aware of his problem and you confront him with a sincere desire to help, he will probably be amenable to listening.
I think it's imperative that he knows what the result of continued use will be. Nobody is worth it in the long term. The change will be slow but one day soon, you'll wake up with more problems than you can cope with... so will he.
Deal with it NOW. IMHO |
| Sun 11 Jan | Philo | From a personal point of view, do what you can to help him out. I have friends who have been through AA, and I have to say I'm truly impressed with the results - an almost fanatical devotion to keeping themselves clean.
From a professional point of view, it's an interesting problem. You don't mention how it's affecting this person's work, but on an objective level, are they still performing at the level you expect from your employees? I mean, if someone performs at 150% and their performance drops by 30%, they're still outperforming the norm... [grin]
However, I recognize it's not that easy, and if the 'problems' are the typical substance abuse spilling into work problems (tardiness, unreliability, personality changes, etc) then it can affect more than just that person's work - it can affect the entire workplace.
Definitely talk to the person and let them know you're willing to help. Offer resources (rehab/counseling) and let them know that if they're willing to work on their problem, their job will be available.
Philo |
| Sun 11 Jan | Justin Johnson | I have an employee without significant education or experience, but he has a really strong aptitude--exactly the sort of person you want to encourage and lead to do much better. However, he has a miserable temper, and has stormed out of vice president's offices when he's gotten (justifiably) angry at how he's being treated.
I want to keep him around, but I can't let his temper go unchecked. The balancing act I've struck that's worked so far is to give him his leash when he needs it, and talk to him afterwards, laying down the law (ie, it's unacceptable to storm out of meetings, and if it happens again we'll start climbing the discipline ladder, from writeups to suspensions to termination).
What I've done right (by luck, really), is to never talk down to him. He's receptive to discussing his problem as a barrier to professional advancement, and with due regard given to the fact that the veep really was being an asshole. In other words, by phrasing it as a practical problem with his continued employment, rather than as a father-son chat or as a you're-wrong-I'm-right-you'll-do-as-I-say situation, he's gotten better at controlling his temper.
Were I in your position, that's the tack I'd take: I'm here for you if you need help, but it's fundamentally your problem, and if you don't take responsibility for it, then it will be difficult, and then impossible, to continue to employ you.
That said, I got lucky in figuring out how to handle one difficult employee, and I doubt that there's a single good way to handle everyone who's personal problems are screwing up their job. I do think that you won't do him any favors by cutting him an endless amount of slack. |
| Sun 11 Jan | Tom H | Do you know anything about his personal life prior to working for you? If his current troubles are an abberation from his normal behavior, you might be able to help him through it. On the other hand, if his life history is a series of episodes like this, he needs more (professional) help than you are able to give.
In either case it would probably be best for all concerned if you can set him up with counseling, I really doubt you are qualified to diagnose or help him. |
| Sun 11 Jan | Mitch & Murray (from downtown) | If you want to try and understand him and ultimately help him, find out what you can about his parents. Most children are, by and large, skewed mirrors of their parents - both the good bits and the bad bits.
The comments about AA certainly apply as well. |
|
| Music (or digital media) licensing | Sun 11 Jan | Gwyn |
| Hi gang. Ive been thinking a bit about the futility of trying to protect digital data such as music.
Anyway, thats not what I wanted to discuss (unless someone can tell me how you can ever protect it from being copied). What interests me is; when you buy a CD, what rights do you get. The information on the CD is limited - no complex terms and conditions that you get with every software package you install...
The record companies are upset that they are losing money. Strange because they never seemed so keen on correctness when they charged us full price to buy a cassette of music wed already bought on vinyl and then a CD of music which we already had on vinyl and cassette.
If I buy a CD I presume I am free to play it myself. I presume I may play it in the company of friends. I presume I can copy it for my personal playing. I further presume that I may sell it on. And I presume I can lend it to someone. This may be against copyright (I dont know the detail) but in the UK regardless of stated law, if the majority of people do something different then it can be challenged as common law (part of our unwritten constitution).
So, to further extend this to encompass music stored on a hard disk, presumably I can play it, my friend (who I lend it to) can play it, as long as Im not playing it at the same time (he could play it from a shared location - just like if we lived in a shared house he could borrow it from my CD rack).
So theoretically I could share my record collection with 100 other people as long as I manage the collection so that there are no collisions (multiple people trying to play the same track at the same time).
I guess what Im trying to get at is that trying to protect the current licensing model is infeasible, but actually the current licensing model is wrong.
Is per-play licensing the solution? (it gets round the inequality of paying the same price for 2 CDs; one of which I regularly play and the other which I played once and quickly tired of) But how do enforce this anyway...?
What is the predicted position 10 years from now? Is there a solution to the current problems? |
| Sun 11 Jan | www.marktaw.com | Actually, some copyright notices say no lending and no public performances.
At some point, perhaps it's defined by a certain # of people sharing it with 200 people is lending. By your logic you could set up one of those diner juke boxes that pipes everyone the same songs and just as long as everyone in the diner is my friend (hey, i'm a friendly guy, my customres are like family) I don't have to pay licensing.
Philo posted something about this a while back that was very knowledgable. |
| Sun 11 Jan | Philo | Copyright is about control - you have whatever privileges the author chooses to grant.
The courts have created some fair use privileges, like quoting for commentary, reproduction for educational use, copying for backup purposes, etc. But they're privileges, not rights.
And broadcast/performance is one of the rights that authors control.
There's a lot more to this, but I'm sleepy. Ask more questions. :)
Philo |
|
| <b>New Massachusetts Legislation for unemploy.</b> | Sun 11 Jan | working in massachusetts |
| Im a W2 contractor in Massachusetts and I just received an email from my agency stating that Massachusetts legislation is changing 1/1/04 for unemployment filings for the staffing industry.
Here is the body of the email:
--- begin email body ----
Massachusetts legislation is changing 1/1/04 for unemployment filings for the staffing industry. Please read and sign the attached document by Friday January 16th and return to [AGENCY_NAME] Group acknowledging you are aware of the new changes. If you have any questions about this new law please feel free to call us anytime.
--- end email body ---
Here is the document youre supposed to sign:
--- begin attached document----
Recent Massachusetts legislation beginning January 1, 2004, states that a temporary employee on assignment for a temporary help firm will be deemed to have voluntarily quit if the employee does not contact the temporary help firm for reassignment before filing for unemployment benefits. The unemployment benefits may be denied for failure to do so.
Please make sure that you contact your [AGENCY_NAME] recruiter for reassignment if and when your assignment ends. Failure to do so could jeopardize your right to any unemployment benefits for which you may otherwise be eligible under Massachusetts law.
Please sign below confirming your receipt and understanding of the new unemployment requirements and fax to 555-555-5555 or mail to:...
--- end attached document ---
My question: Did anyone hear of this legislation change? And why would I sign this document? This document is from the agency, I doubt there is any law saying I must sign it. |
| Sun 11 Jan | working in massachusetts | heh, guess I can't use tags in the title -- sorry! |
| Sun 11 Jan | We didn't start the fire, it was always burning | Only Joel and whoever else he lets mod this board can make topics bold.
Why don't you want to sign it? It's not going to harm you any. In fact it will protect you. It's just acknowledging that you are knowledgeable of your responsibility if your current assignment ends... |
| Sun 11 Jan | working in massachusetts | I just want to be careful, that's all -- make sure I'm not missing something, so I thought I'd run it by everyone. |
| Sun 11 Jan | Zahid | That's a bizarre claim ... they want him to sign because that will limit his ability to pursue unemployment later. Of course it potentially harms him.
On the other hand, they'll probably ask for his resignation if he doesn't sign. But then, by virtue of not having signed, he might have a valid unemployment claim =) |
| Sun 11 Jan | We didn't start the fire, it was always burning | Zahid - shutup. Don't make things complicated and confusing.
Massachusetts guy - if you are leary of signing the document then find someone to discuss it with. Someone in your agency, or the unemployment office perhaps, or better yet both. |
| Sun 11 Jan | Brad Wilson | 'That's a bizarre claim ... they want him to sign because that will limit his ability to pursue unemployment later. Of course it potentially harms him.'
No, signing the document doesn't harm him, because ignorance is not a legal defense. Even if he did not know that he was obliged to do this, he'd still be obliged to do it, because it's a LAW.
Personally, I think the company was very helpful in informing him of ways to make sure his unemployment wouldn't be denied, given the law changed. |
| Sun 11 Jan | Marc | This is Massachusetts. We're worry about signing /any/ document because they all tend to lead to 4 billion dollar holes being dug in our back yard, tax hikes to pay for programs that bring puppies to convicted rapists in prison, or automatically reinstating Michael Dukakis as Governor. :-)
Seriously though, I would check with your local state reps office. They do a pretty good job of pointing your too the right people. |
| Sun 11 Jan | Zahid | If they were just sending him the letter as a courtesy, they wouldn't ask him to sign and return it. Sending the letter protects him; but the acknowledgement requirement protects them. |
| Sun 11 Jan | working in massachusetts | Zahid is right. Signing it is in no way going to help me. That I know. I guess it is really a question of, what's the damage, so to speak. |
| Sun 11 Jan | Philo | The signed letter does two things:
1) He is now aware of his rights. This is a courtesy.
2) It's prima facie evidence that can be used to dismiss his lawsuit. Said suit would fail anyway, under the law; this just cuts to the chase quicker.
Philo |
| Sun 11 Jan | working in massachusetts | Philo, what exactly would be my suit? |
| Sun 11 Jan | Stephen Jones | Presumably Philo is referring to the suit you could take against them for failing to inform you you might lose benefit.
Whenever you get something like that just sign to acknowledge receipt.. Make sure you write the words 'acknowldge receipt' before your signature. |
| Sun 11 Jan | get a life. | If you are working for a staffing agency and live in massachusetts, your life pretty much sucks, anyway. I hardly see how signing this document makes any difference in the grand scheme of things. |
| Sun 11 Jan | Dennis Atkins | Surely you know that any competant lawyer says NEVER to sign ANY contract or other agreement without consulting with an attorney. (Affidavits that your tax return is true and correct is not in this category.)
Anyway, tell them you'll run it past your attorney. If they ask for it again tell them you're saving up for an attorney but at the rates they give you you can't afford one. Seriously. That's what I do. There will be a lot of protesting and making you out to be a troublemaker and in the end someone will write 'refused to sign', initial it, and send it on to wherever. |
|
| Can't Copy Money | Sun 11 Jan | Eddie |
| Adobes secret cant copy this bill code was found. Whats funny is people are complaining about it now. They say its a form of art. Yea right...
http://news.yahoo.com/news?tmpl=story&u=/ap/20040110/ap_on_hi_te/copying_dollars_6 |
| Sun 11 Jan | M | Color copiers have been doing this for years. Lousy feds and all their laws to maintain a valid currency ;) |
| Sun 11 Jan | Chris Nahr | See, if we were still using gold coins this wouldn't be an issue! Damn artificial paper money... |
| Sun 11 Jan | Mayor McCheese | So don't use Photoshop. There are other programs that will do the job. |
| Sun 11 Jan | veal | Whether art or not eddie, now that software vendors think they have a right to control how you can use your own computer, you have an opened can of worms. On principal, I am now sad that I forked over $1000 to Adobe for CS, and knowing this would have chosen a different product, even though I would never try to produce fake currency, and perhaps might not have a need to incorporate partial images of currency in artwork, say as a design motif for a finance related website like http://www.moneypage.com/
As margins drop and upgrades become less compulsory, the dominant software companies seem to be losing sight of exactly who funds their existences. For instance, all this talk about 'digital rights' by the likes of Microsoft and others is subtervuge for *taking* the rights *of* the software buyer and replacing them with vigorous power by third parties *over* that same buyer. Palladium, or whatever they renamed it in the wake of exposure, seems an attempt at sneaking unbreakable controls into *your* hardware and operating system, so you don't get to decide what to do with it. Who is buying the Windows PC, you or Jack Valenti? Ballmer doesn't seem to know, so I switched to a Mac. Apple may someday follow suite, but now I've proven to myself that I can jettison any single vendor, even Microsoft.
With important freedoms, such as those the US constitution grants where I live, the best policy is to keep such freedoms sacred even if they also provide avenues for outlaws. In abandoning a freedom in the name of some secondary concern, you'll tend to lose more than you first thought. For instance, if you give a single branch of government an unfettered right to eavesdrop on any phone call, you may or may not reduce crime (the criminals will adjust their telephone behavior), but you definitely have created an opening for legal Nixon-style antics with many subtle consequences.
Ignoring the technical absurdity of the following example, would you buy a particular hammer if the hardware store put in controls that prevent you from framing other hardware store buildings with it? What if they just put in controls to prevent you from building Charles Ng style torture bunkers? Next how about they extend that to brothels? Next, union meeting halls? Uh oh. |
| Sun 11 Jan | Incoherent Abbreviator | LOL! (also good job veal for being the first to post a super long tinfoil beanie post this sunday morning!) |
| Sun 11 Jan | Eddie | Point taken Veal.
So how do you deal with people who do copy money? It must be a big business? |
| Sun 11 Jan | veal | How shall we deal with counterfeiters?
Put them in prison for 15 years and publicize their fate.
Gear an economy so everyone with enough gumption to produce fake money can make a decent living legally.
Print money on paper with qualities unlike inkjet paper, and likewise for the ink.
(Hint: Two of these we mostly do. One we hope we do.)
Dang, gotta go... my beanie's come loose.
http://zapatopi.net/afdb.html |
| Sun 11 Jan | veal | By the way... I'm not suggesting that *governments* should not be trying vigorously to stop counterfeiting. I don't even necessarily have an issue with governements (or in this case, an interested quasi-governmental group) approaching vendors with this idea.
I'm just saying that's not what I payed Adobe for. They've overstepped an important line by trying to control how we use a tool that we've bought from them, and by doing so surreptitiously. |
| Sun 11 Jan | Philo | Veal, it's interesting you mentioned the Constitution.
See, the Constitution explicitly grants Congress the power to give authors and inventors the right to control their works.* It does NOT mention fair use anywhere - that was created by the courts.
Now I'm a strong supporter of fair use privileges, and I'm annoyed as hell that the RIAA, MPAA, and other non-creating groups are working to curtail fair use while ignoring the desires of their consumers.
I just wanted to clarify the issue. Not everything is a Constitutional right. ;-)
Philo
*Even though there were no computers in 1783, it's reasonable to extend that control to the PC DRM level. |
| Sun 11 Jan | Noname | The Constitution also says we have free speech. But copyright conflicts with free speech.
The Constitution gives artists and inventors control for the purpose of promoting science and the useful arts -- not 100% command and control.
So the courts had to resolve the conflicts that copyrights presented and the result is fair use. |
| Sun 11 Jan | Stephen Jones | The Constituiton grants IP for the social good.
(It is in fact the only property right mentioned in the Constituiton. When the Constitution was drawn up many wanted to include a right to property but for various reasons, including the legal definition of slaves and the feeling that absolute property rights were more suited to oppressive British law, a compromise was agreed on and the right to 'the pursuit of health and happiness' was written in instead.)
Now can somebody please tell me the social good that is protected by Disney having the Mickly Mouse copyright always extended when it's about to run out, or Amazon claiming one click, or British Telecom trying to claim all clicks!
With regard to Photoshop I suggest, if you really need it, you get a copy of a free or pirated program, make a copy of a $1000 note and send it to Adobe to pay for it. |
| Sun 11 Jan | veal | Hmmm... I don't believe the US Constitution says anything about the character of copyright. It only **enumerates a power of Congress** to secure such a right, (should Congress desire to) without actually saying specifically what that right might be, nor incidentally, specifically guaranteeing any particular right to authors.
'[The Congress shall have power] To promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries;'
http://www.law.cornell.edu/constitution/constitution.overview.html
As with may things, a strict constitutional position would have to rely upon the enlightenment context of the Constitution to figure out what 'exclusive right' might have been assumed by the framers. Right to use? Right to publish? Right to sell? Is that right transferable by contract? Can a corporation be considered an author or inventor for the purpose of assigning right?
Legislative acts of Congress surely excercised this Constitutional right to promote progress by securing specific rights to authors, recorders, film financiers, and sundry others. We'll not learn those rights by reading the Constitution however.
It might be fun to explore how DRM jibes with the 4th amendment, or even more fun, with the 3rd amendment ban on the quartering of soldiers in any house without consent of the owner. :-) |
| Sun 11 Jan | mb | Note that it is legal to use images of money. So long as it's clearly not being used as a counterfit. (e.g. the size is way out of whack.) The new secret detection routines make this legal usage difficult.
Now imagine any sort of other software law-enforcing system. Any heuristic is likley to be wrong at some point. |
| Sun 11 Jan | FullNameRequired | 'Now imagine any sort of other software law-enforcing system. Any heuristic is likley to be wrong at some point.'
Im rather fond of the law enforcement system that waits until I commit a crime before taking away my rights :)
admittedly in america that system has pretty much disappeared, but in other countries its still considered a valid approach. |
| Sun 11 Jan | Robert Jacobson | The AP article isn't really clear about the technical details -- does Photoshop display a warning dialog box when you try to import an image of currency? Does it do anything more severe, like prevent you from saving the image?
As a side note, there was an amusing, and possibly chilling, article about the failability of human heuristics: a Massachusetts family was briefly investigated by local police after they bought a copy of Microsoft Flight Simulator for a kid's Christmas present. An overeager store clerk thought he was striking a blow against terrorism by reporting this 'suspicious' purchase to the cops.
http://www.recorder.com/Headlines/tuesday_basic.htm
(Thanks to Raymond Chen's blog for this link.) |
| Sun 11 Jan | FullNameRequired | 'As a side note, there was an amusing, and possibly chilling'
funny how people view things. I found it rather more chilling than amusing.
The thing that _really_ struck me is that after the clerk reported the 'suspicious' purchase, local law enforcement _actually saw fit to visit them at their house and inquire about it_
I mean, wtf? |
| Sun 11 Jan | Philo | 'By 8 p.m., a state trooper was at my house,' she said. 'At first, it was a little unnerving because it was pouring rain and my husband had just left ... My son said he heard someone walking around outside and it startled him. We had put our Christmas tree in front of a sliding glass door and the trooper ended up tapping on the glass of that door and putting a flashlight in and it scared us.'
*************
Mr. State Trooper is lucky he didn't get shot. Trespassing is trespassing, even if you're the police. I'm not advocating shooting police; I'm saying if you knock on someone's back window on a rainy night and shine a flashlight in, you're asking for trouble.
Why the hell couldn't this guy just go to the front door and ring the bell?
Philo |
| Sun 11 Jan | FullNameRequired | 'Why the hell couldn't this guy just go to the front door and ring the bell?'
because (im guessing wildly of course) he was a stupid-ass 27 year old and this was _the_ single most exciting thing that had hapened in his life in years.
What the bet he was fantasizing about catching some real live terrorists....
|
| Sun 11 Jan | Full name: | So the only people who can load images of dollar bills into Photoshop now will be the hackers who, if they can figure out how to bypass copyprotection will figure out what piece of code loads whenever they scan in a dollar bill.
You can't use images of money on your website or in your brochures without some strange effects, but hackers will be able to copy money. Or even better, they'll just use an old version of Photoshop, which does the job just as well.
So the net effect is that sure fewer counterfeiters can make copies of money, giving more power to those who can. I mean, let's face it, the new 20's are the old 20's plus some green ink around the edges. They'll just keep using the old templates.
You don't exactly need to be an artist to dye the edges green and create a bunch of floating 20 symbols.
I'm sure that now that this is public half the crack sites now have 'Old Photoshop, Will Copy Money.' |
| Sun 11 Jan | mb | There was a good discussion of this on slashdot. If you read the high-moderated comments you'll find out info. My memory says that it blocks you from inserting the image (it runs the code on every paste, maybe open, and various other times, slowing the program down), and displays some dialog warning that you may be doing something bad. The algorithm itself was explored by someone, it's some pattern used in a number of different currencies.
Apparently they also look for some other watermark patterns, and have been for a few versions. |
| Sun 11 Jan | Anonymous Coward | 'The Constitution also says we have free speech.'
No, it doesn't. It says 'Congress shall make no law...abridging the freedom of speech....' In particular, it does not say that a company cannot limit their own software in some capacity. The free market will determine if Adobe's new 'feature' will reduce sales. Obviously, I don't think it will make much of a dent, but if you don't like it, don't buy it. Buy a competitors product that does not restict you in this way. |
| Sun 11 Jan | Noname | Adobe can add or remove whatever capabilities they want from their product, but they should inform the purchaser before the transaction if a capability like this was removed. Otherwise it is consumer fraud. |
| Sun 11 Jan | bark up another tree | Are you telling me that if I release a second version of my software and change or remove features, that I need to give you a full audit of what my software does not do? I wonder what Adobe would have said if you asked them specifically about the ability to manipulate images of money in this version of photoshop. If you didn't ask when you purchased it, then, I would suspect, they did not try to commit fraud since no false information was exchanged in the sale.
Honestly, this is a company distributing software, not a government institution trying to limit your freedoms. If you want to exercise your 'rights' go get a lawyer and sue. |
| Sun 11 Jan | Philo | Let me make another pitch for Philo's Consumer Protection Law:
If a truthful label suggestion produces the reaction 'Our sales would plummet!' then that labeling is required by law.
(In other words, if telling the consumer the truth about your product may induce them not to buy it, you have to tell them)
Philo |
| Sun 11 Jan | Noname | Artificially disabling software from copying specific types of images is not something a reasonable person would expect. Removing such a feature should indeed be made known prior to purchase.
Similarly, if a cellphone maker decided to make their phones bleep out cuss words they should let you know that before you purchase. You shouldn't have to inquire about the infinite possibilities of restrictions that could be there; they should tell you up front what they did. |
|
| Downloading ALL messages from a NNTP server | Sun 11 Jan | George |
| I am using Outlook Express for reading Usenet news. In fact, its not Usenet, but my employers internal, private newsgroups.
The problem is - after a while, old messages disappear from Outlook Express, altough they are still stored on the server (yes, I know not many firms do that, but we do - we store messages for the last 6 years or so).
What I would like to have, is a news client which downloads ALL messages locally, including message bodies, and then allows me to read them, search in them, etc.
Is there a good news server which allows this?
Thank you! |
| Sun 11 Jan | www.marktaw.com | I believe XNews does this. There's 3 settings. Store header & body, store header, store nothing.
Plus, you can archive certain posts, but they go into an archive folder and aren't sorted by group. |
| Sun 11 Jan | Insert half smiley here. | Outlook Express will do this.
Visit Tools|Options, Maintenance tab. There is a check box marked 'Delete news messages N days after being downloaded'.
Uncheck this, along with any other relevant ones, and OE will keep everything. Once you've done this, probably best to unsubscribe and resubscribe so it downloads all the ones it had previously expired. |
| Sun 11 Jan | Insert half smiley here. | As a side note, I discovered this by looking at all the dialogs on all the options of all the menus... does noone else do this when confronted with a new program??? |
|
| Creating 'software product' for a client? | Sun 11 Jan | JD |
| This is really odd.
I use a product called Mail Washer for fight the spam and I simply love it. It is made by company named Fire Trust. http://www.firetrust.com/
Now today I came across a company named eCOSM. http://www.ecosm.com/ In their products section they mention that they created Mail Washer Pro, Benign and MSG TAG (other two products) for CLIENTS.
All fire trust does is to sell the software Mail washer Pro and Benign. I think what they have added to product is full time support staff (as they mention on site).
Isnt this odd? Why cant eCOSM, try and sell the software product themselves? Or was it like, Fire Trust people had idea about product but didnt have enough technical knowledge to build it. Then they outsourced the development of product to eCOSM.
This is something I never came across before. Your views??
JD
http://jdk.phpkid.org |
| Sun 11 Jan | Philo | Go to Best Buy. Look at the TV's. Note that no TV has the 'Best Buy' brand on it.
Welcome to the world of retailing. [grin]
Philo |
| Sun 11 Jan | JD | As Joel has perfect Idea about how desktop CMS should look like and function, he can just contact these guys and get his product developed! I think it will be lot cheaper than building it in NYC! ;)
JD |
| Sun 11 Jan | Canuck | Actually, this is what I do for a living :)
My company builds software from the ground up for our clients for them to market, sell and distribute. They primarily hire us because they don't have the technical skill to develop the software. What they bring to the table is money, marketing people, industry knowledge and distribution channels. |
|
| Conditional Compilation | Sat 10 Jan | C Rose |
| Hi all
Its very common to want to conditionally compile code; one simple example is including logging for debugging purposes.
In C and C++, I have usually seen this achieved via the preprocessor mechanism. For example, in C:
#define DEBUG
/* ... some code */
#ifdef DEBUG
printf(Got here!)
#endif
(I know that one can define a GOT_HERE macro and the like, but Ill ignore this herein.)
However, macro use tempts one to move ever more functionality onto the preprocessor, making the code hard to debug (as debuggers dont generally display macro expansions).
In Java, there is no (standard) preprocessor, and the use of constant global variables to test upon is encouraged, for example (C-like pseudocode):
const debug = true; // global scope
// ... some code
if(debug) print(Got here!);
The advantage of this approach is that the program is non-modal: when reading the code you dont have to mentally run two different programs (in the case of a single DEBUG symbol), or 4 or 8 or 16... You just treat the debug variable like any other variable in your code. Your code also looks neater (IMHO), as you dont have ugly MACRO symbols all OVER the PLACE.
However, my C compiler (GCC 3.x) *does not* realise that when a global constant debug is initialised as false, the conditional statements should be excluded in the executable (as revealed by reading the assembly output). A cheat is to define a DEBUG macro and use it as follows:
#define DEBUG (1==1)
/* ... some code */
if(DEBUG) printf(Got here!);
In this case the compiler *does* realise that when DEBUG is false, it should exclude the conditional code.
Does anyone have any thoughts on this issue. How do you handle conditional compilation in your projects or your language? Are other compilers smart enough to figure out when to omit code that can be proven to be obsolete at compile-time? |
| Sat 10 Jan | Almost Anonymous | 'Are other compilers smart enough to figure out when to omit code that can be proven to be obsolete at compile-time?'
I should be noted that it's not possible to prove that the code is obsolete in C. You can change that variable via a pointer or if global from a different compilation unit linked in after the compilation stage. So, what C is doing there is correct for that language.
I find that most languages have different standard practices for the same purposes. Using global variables is Java's way and using preprocessor instructions is how it's done in C. I recommend that you do it the C way! |
| Sun 11 Jan | Jonathan MacAlpine | One really neat debug macro I read recently (though I can't remember where) was the following:
// btw, _DEBUG is the MSVC standard
// 'debug mode' directvie... don't know
// if that's how it is with GCC
#ifdef _DEBUG
#define DEBUG_CODE(x) { x }
#else
#define DEBUG_CODE(x)
#endif
then to use it you'd just go...
DEBUG_CODE(
printf( 'Got here!\n' );
)
you can have variable declarations and everything in there. Dunno if that helps, but its a nice trick. ^_^ |
| Sun 11 Jan | Andrew Lighten | In our code all our debug based logging is non-conditional at the point where you use it. That is, the calls to write debug data to the log are always there.
We can configure our logging object to throw them away.
The downside to this is that the code is always there and you're making a function call to the log object even if you've got debugging turned off. For us the cost of instantiating the logging object is minimal anyway; debug info is just one of about 6 types of entry that gets written into our logfile.
The upside is that you can turn the debug code on any time, any place. This has saved us on several occasions: customers who report problems that we can't reproduce. Ask them to fire up their configuration utility, tick the 'Record debug information' checkbox, and run again. Email the logfile to us (via an alias that FogBUGZ picks up) and you've got something to work with.
The minimal cost of the often wasted function call is trivial on a modern machine. |
| Sun 11 Jan | Chris Nahr | .NET provides a nifty "Conditional(symbol)" attribute that can be applied to method definitions. When you write a call to a method with this attribute, the compiler checks the value of the symbol mentioned in the attribute (typically DEBUG or TRACE). If it's false, the entire call is dropped from the binary; otherwise it's included as usual. Good combination of preprocessor efficiency and uncluttered code. |
| Sun 11 Jan | Roel Schroeven | Are you using -O to tell gcc to optimize? If not, gcc compiles what you give it, with no attempts to throw away unused code.
I just did a small test:
#include
const int debug = 0;
int main()
{
if (debug)
printf('starting...\n');
printf('Hello, world!\n');
if (debug)
printf('finished\n');
return 0;
}
Compiled with 'gcc -S debug.c', there are indeed three calls to printf in the output file. Compiled with 'gcc -O -S debug.c' however, the first and the last call have disappeared (and the remaining one is converted to a call to puts, apparently). |
| Sun 11 Jan | Roel Schroeven | -O is very basic optimization of course. Feel free to use -O2, -O3, -Os or whatever suits your needs.
If it still doesn't work, check your compiler flags: I'm surprised to find out that the unused code isn't stripped if I use -pedantic. |
| Sun 11 Jan | C Rose | Roel,
OK, I'm close to solving the problem:
I'm writing my dummy code on OS X using Apple's XCode (used to be called ProjectBuilder). Setting GCC to use -O, -O2 and -O3 doesn't optimise out the debugging stuff.
However, doing a 'gcc -O -S test.c' at the shell *does*.
XCode has some funky 'ZeroLink' technology that lets you write code, build it and run it in debug mode; then you can edit the code, XCode will compile in the background (without a linking step being required), and your changes take place in the already running app. (Apple identified the link step as being a bottleneck in the development process and decided to get rid of it as far as they could.)
I'm guessing that this ZeroLink stuff is messing with the compilation.
Thanks for all your comments. |
|
| Dark Eyes | Sat 10 Jan | Dark Eyed Programmer |
| I must sit at my computer for up to 18 hours a day some days. During this period my eyes become really dry and turn dark and I try eye drops and they do help, but I need a better solution short of giving up computers.
I have moved my computer way away from the heat vent so the dry air doesnt blow on me. I try to take breaks from the computer every hour or so for 5 - 10 minutes maybe longer. Of course sometimes when youre on a roll you just cant stop.
Im wondering if anyone knows how to cure dark eyes without having to stop using the computer or what kind of eye drops you guys use that are gentle. I use computer eye drops. My eye doctor tells me that it might be my glasses that cause the problem also so I got a new pair, but they dont seem to help. I havent tried contacts that might be an answer. |
| Sat 10 Jan | Tony Chang | 1. High quality flat screen monitor.
2. Every 15 minutes, focus on something in the distance. if you have no window, take a break and walk outside.
3. Stop working 18 hrs. Bad for your health. |
| Sat 10 Jan | www.marktaw.com | > High quality flat screen monitor.
LCD should be even better. From what I've read, LCD is better because the image is actually there, while with a CRT it's just a projection, and your eyes have a hard time focusing on it... or something like that. |
| Sat 10 Jan | Troy King | Some more suggestions:
1) Turn the brightness and contrast down. This helped me tremendously.
2) Try the 'liquid tears' type eyedrops that you can use any time, as much as you like.
3) Occassionally, use an eyecup with eyewash to do a full rinse cycle on your eyes. They take some practice to not get your face all wet, but they really sooth the whole eye when you use them.
4) If you take an antihistamine, try a different brand for a couple weeks. Claritin made my eyes just terrible; Drixoral doesn't bother them at all. |
| Sat 10 Jan | Troy King | One more idea, on the glasses -- when I switched to glasses with an anti-reflective coating, it also made quite a difference. I don't get the bright spots and glare and stuff. That cut down on the headaches some. |
| Sat 10 Jan | _ | I used to work for lots of hours every day, too, back when I was a student.
Now I have a girlfriend, and so I work only 8 hours a day.
Since then, my vision has improved A LOT.
Simply the fact that I seriously cut the number of hours improved my vision. |
| Sat 10 Jan | Tony Chang | Right, I meant to say LCD or 'flat panel' and not a flat 'screen'. I keep forgetting that they call those CRTs flat screen and the LCDs are actually panels. Sorta like the terminology confusion between the format formerly known as USB 1.0 and its new name 'USB 2.0 normal speed'. |
| Sat 10 Jan | Aussie Chick | yes, I have a little lump in my left eye, and just noticed one starting in my right eye.
They aren't visible to anyone, but after a long day my eyes are dry, and I can feel them under my eyelids!!
I also use eyedrops to try to combat them. |
| Sat 10 Jan | Mark Hoffman | ' haven't tried contacts that might be an answer.'
I'd proceed with caution with contacts if you're eyes are drying out.
I had a problem with my eyes drying out and on a handful of occassions, the contact lens would actually adhere to my cornea. Needless to say, this was immensely painful since the contact was scratching the cornea each time my eye moved. It normally involved going to the ER to have anasthetic applied and having a doctor remove the contact. I was a slow learner..Most people would have learned the first time. Took my about 3-4 times before I realized I wasn't cut out for contacts. By that time, I had developed scar tissue on the cornea and had to have it scraped off. (Yes, the procedure is as horrible as it sounds.)
Anway, the condition must be not be something an opthamologist can easily diagnose because when I visit a new doctor, they will examine my eyes and invariably suggest contacts.... |
| Sun 11 Jan | Philo | 'People who work abnormal hours shouldn't wear contacts'
I learned that at the Academy. I didn't get to the point of having to have them scraped off, but I came close.
Basically, if you work a long/varied schedule, you should wear glasses and save the contacts for social events.
[and yes, I'm sure there are lots of people that work 23 hour days and wear contacts - this is a guideline; YMMV]
Philo |
| Sun 11 Jan | Chris Nahr | I can't wear contacts either due to dry eyes, and that goes back to when I was ten years old. Defnitely don't try contacts if your eyes are already uncomfortably dry without them, you'll just waste money and possibly damage your eyes. Make sure to get proper glasses instead.
Also I'd suggest daily eye muscle training -- move your eyes around, in one direction and the other, and look up, down, left, and right, 20-40 repetitions of each. Looking at a monitor (or book) all day long may cause your eye muscles to weaken, and that will lead to squinting which then has to be corrected by your weak eye muscles whenever you're trying to focus. The result is unclear vision, headaches, or eye pain; and you might get those without even knowing the cause.
This has actually happened to me. I spend a fortune on corrective glasses and even contemplated surgery (to shorten the eye muscles) until a doctor suggested eye training. One year later, I could use glasses without such correction and my ability to focus over extended periods of time had greatly improved. |
| Sun 11 Jan | Chris Tavares | Every 15 to 30 minutes, get up from your desk and walk around for a couple of minutes. Take breaks. Don't just work for 18 hours straight. |
| Sun 11 Jan | Jimmy Jo-Jo | Contacts, as noted above, will make things worse. Wear glasses if you can.
The best thing I've found for curing my computer-related eye problems is just looking at far-off objects every 20 minutes or so. Gives the eye a break, and is a decent excuse for taking a minute to think. |
| Sun 11 Jan | Juju | Also, remember to BLINK.. Concentrating too much on what's going on on the screen makes you stare for long periods of time without blinking. |
| Sun 11 Jan | Simon Lucy | I use contacts these days (though right now I'm without any), so I don't have to wear varifocals. I use eyedrops throughout the day oh and the contacts are dailies.
As my prescription has changed I might not be able to put up with contacts for much longer, my astygmatism has increased and the ghosting of type is more prevalent.
When I am in a period of wearing contacts I swap to glasses about every 3-5 days.
My working certainly became more comfortable after switching to an 18' LCD monitor. |
| Sun 11 Jan | www.marktaw.com | I've seen programs that will flash 'blink' on your screen every few seconds, and supposedly you actually learn to blink and after a while it isn't distracting. I never did get used to it (nor did I ever get used to the MS Natural keyboard)
Also, a timer set up to ding every 15 to 20 minutes to remind you to focus on something far away is good.
Plus, spend time outdoors. I'm lucky enough to live in an area with elevated trains with trees growing on either side of the tracks. I make it a point to go to the front of the train and stare into the distance, really try to focus on things that are far away, which I think helps offset staring at something 15' away all day long.
Here's a question. How does breaking every 15 minutes interfere with flow states, or do you ignore that rule whenever you're deeply involved in something?
Lastly, stay hydrated. It's hard to manufacture tears if the rest of you is dehydrated. 8 glasses of water a day breaks down to a glass of water every 1-2 hours. This is most easily accomplished by having a large water bottle by your desk, you'll naturally just start drinking more. If you slack off, set a timer. |
| Sun 11 Jan | Zahid | Can you customize these programs to flash "Take Zahid to lunch" instead? |
| Sun 11 Jan | Aussie Chick | >I've seen programs that will flash 'blink' on your screen every few seconds, and supposedly you actually learn to blink and after a while it isn't distracting. I never did get used to it (nor did I ever get used to the MS Natural keyboard)
Do you know any details? This is exactly my problem, I try to remind myself to blink, but I know I just don't do it. |
| Sun 11 Jan | I pitty the fool, who is a fool | Check out the FlashWindowEx API call under windows. I think it's normally used to indicate that the process of an inactive window is complete and the windows needs attention. |
| Sun 11 Jan | www.marktaw.com | Sorry, I don't remember what the name was or who made it, but a Google search turned up this:
http://dimbu.com/programs4free/complete.html |
|
| Weird COM problem - works in VBS but not in ASP? | Sat 10 Jan | Ted |
| Ive inherited an undocumented COM object which our shop uses to generate machine-tied licenses for our product.
Although it works fine on its production box, Ive been wrasslin with getting the thing to work under a fresh machine and am having some strange results.
I wrote 2 test scripts - nearly identical VBS and ASP. The
VBS works perfectly -
A134-VB43C
but the ASP returns a whole bunch of
HHHH-HHHH
My C++ detectives tell me these are bad characters - but I cannot see any difference in the scripts - aside from createobject vs. server.createobject and msgBox(result) vs response.write(result)
Anyone have any good testing ideas, or perhaps something obvious Im missing? the author and source appear to have disappeared, alas.
Thanks in advance to anyone who replies. |
| Sat 10 Jan | Joel Spolsky | Not enough information! |
| Sat 10 Jan | Ted | Sorry- here's some more I've scraped up.
The COM object appears to just call another DLL which actually contains the algorthm to generate the keys themselves.
I think these lines may be the culprit:
STDMETHODIMP KeyGenerator::getNewKey {
..call the DLL that makes the key...
BSTR keyResult = _com_util::ConvertStringToBSTR(pstrLicenseString);
*Key = keyResult;
SysFreeString(*Key);
return S_OK;
} |
| Sat 10 Jan | Codewhore | My two thoughts are:
1) Permissions issue
2) Regional encoding from IIS |
| Sat 10 Jan | Joel Spolsky | More code!
The SysFreeString is suspicious. |
| Sat 10 Jan | Ted | I gave full control permissions to Everyone and the IUSR on the DLL's that didn't seem to help. Looking into the regional settings.
Joel, here's the complete method that's called by the VB hope the formatting is OK -
STDMETHODIMP CKeyGenerator::getNewKey(BSTR machineId, long licensetype, long eval, long *array, long *lSerial, BSTR *Key)
{
array[0]=0;
array[1]=0;
array[1]=0;
array[2]=0;
array[3]=0;
array[4]=0;
array[5]=0;
array[6]=0;
array[7]=0;
array[8]=0;
array[9]=0;
array[10]=0;
array[11]=0;
array[12]=0;
array[13]=0;
array[14]=0;
array[15]=0;
array[16]=0;
array[17]=0;
array[18]=0;
char acMachineId[1024] = '';
char string[1024]='';
char *pstrMachineId = &acMachineId[0];
char *pstrLicenseString= &string[0];
licensetype=0;
eval=0;
long aSerial=0;
*lSerial = aSerial;
long NumberOfValues=(sizeof(array)/sizeof(long));
pstrMachineId = _com_util::ConvertBSTRToString(machineId);
SysFreeString(machineId);
LicenseGenCreate(NULL, &pstrLicenseString, lSerial, licensetype, eval, pstrMachineId, NumberOfValues, array);
BSTR keyResult = _com_util::ConvertStringToBSTR(pstrLicenseString);
*Key = keyResult;
SysFreeString(*Key);
return S_OK;
}
I am going to run to the office for a few hours - thanks a lot for your help, guys |
| Sat 10 Jan | Ted | Also should note that it's returning TTTTTTT-TTT-TTT, not HHHH-HHHH-HHHH, if that matters. |
| Sat 10 Jan | coresi | *Key = keyResult;
SysFreeString(*Key);
As Joel said, once you free the *Key you will get undetermined results. In an optimistic case the *Key won’t be de-allocated right away so you will get by chance a valid key. If you use this method in an inter-process or inter-apartment call (the IIS for instance), the marshaller won’t reconstitute the string on the other side and you will get just a raw patch of memory. |
| Sun 11 Jan | Ted | Thanks much guys. I commented out the SysFreeString, recompiled, but still no dice. I'll keep diggin' |
| Sun 11 Jan | Ted | The issue turned out to be that the DLL's needed to be separately registered using Component Services! Thanks for your help. |
| Sun 11 Jan | r1ch | Ted, as coresi and Joel said, the SysFreeString is in the wrong place - if you free the string before returning then when the calling function uses it it may not contain your string any more. Even though it's working at the moment it will fail later on and if the caller is freeing the memory like it normally should then you may get other more serious problems like heap corruption instead. |
|
| Where to study Computer Science online? | Sat 10 Jan | Juan Pablo Garcia |
| Hi:
I´ve learned on my own to code using a simple tool like RealBasic. I want to study online, to give my knowledge a formal foundation. I have time and I´m not in a hurry. I´m 35 and I don´t code for a living, but I´d like to learn the right way.
Anybody knows about a good source of online courses? Also, I´m not sure if I should study programming or computer science. I plan to learn in a 5 year period. My desire is to be able to apply for a programming job if I want to in the future.
thanks a lot, if you know something useful please email me.
Juan |
| Sat 10 Jan | Sgt. Sausage | You'd better think about it as full-time. Most BSCS (Bachelor of Science, Computer Science) students take between 4 and 5 years to complete their degree program, and even then they're far underqualified when they actually graduate.
I'm not saying you can't do it in 5 years, as per your goal, I'm saying please don't underestimate the task at hand.
I got a BSCS in 4 and a half years. I coded, read, studied, researched, attended classes, lectures, labs, etc. for roughly 10 hours a day, 6 days a week. It ain't easy to pack 75 years of computing fundamentals into a 5 year program.
Be prepared for a lot of work. |
| Sat 10 Jan | Tom Vu | http://ocw.mit.edu/OcwWeb/index.htm
developed offshore too |
| Sat 10 Jan | M | Sounds like you are not looking to get a CS degree, so don't worry about packing it into five years. You will not be learning the equivalent of a CS degree on your own (Language, History classes are not required for personal study).
Keep in mind what your goals are. Are you looking to get a job doing this, or is it that you want to find out everything you can about computers to fulfill a passion. You can focus on some modern languages, say C# or Java and then combine that with the fundamentals of writing effective software. You can also spend a lot of time in theory-land.
MIT has some courses online. Another place to look is Joel's book recommendation (particularly Code Craftsmanship and I Wanna Be a Programmer). Ultimately if you are looking to add languages to your toolset, nothing beets time and a good book.
Also, start looking for jobs in testing or other jobs that get you close to the programming world.
Good luck! |
| Sat 10 Jan | Robert Sayre | I don't understand why people harp on that OpenCourseware site. It's not that impressive, and it's really just a lot of clerical work to get syllabi and some PDFs posted on a web site. At least, that's all I saw for the classes I checked out.
The courses at aduni.org are really nice, and there's video. The SICP class is particularly good. I've watched most of those lectures. |
| Sat 10 Jan | Juan Pablo Garcia | Thanks for the comments so far. I agree that I can get by without a full program and that I must take it easy because it is a hard effort to do.
I´m talking about coding work, and my fear is that I´m used to think about something and then doing it, but I never follow the established rules and things get harder as I find myself reinventing the wheel. I´d like to learn how to do things right. But, if i get an interesting book about good practices, they all supose that I´m a programmer, but I lack a lot of common programmer knowledge in math, etc.
I´ve learned a LOT on my own, starting form scratch with a book and now I know the basics about OOP. I feel like I can accomplish everything I want to do but I´m sure I will do it the incorrect way :-)
I´ve found that I love to solve problems and that I can do it, so I dream with becoming a 'real' programmer someday. I put a lot of passion daily in a software product I´ve made, and my beta testers use and love it, but I´m not prepared to join a team working on anything because of my lack of knowledge. Today, if I must pay with sleepless nights my ignorance, it´s my own problem, but I want to change that in the future.
thanks again,
JP |
| Sat 10 Jan | :) | http://www.google.com/search?hl=en&lr=&ie=ISO-8859-1&q=algorithms+and+data+structures |
| Sat 10 Jan | M | JP - At the end of the day, what counts is solving a problem for your customer as a programmer. If you are a consultant, employee or anything in between, your end goal is to meet the requirements of the person paying you. Often, the person paying you doesn't give a hoot about whether your code is 'correct' by the standards of the experts. Be sure that in this profession you will constantly be improving your abilities and methodologies. The best way to get good at solving problems is by solving problems. As with any skill, we get embaressed by our early attempts, but improvement is what comes with time. Don't feel as if the variable police will swoop in and inspect your variable naming convention or anything. The only person who will ever look at your code besides you is other programmers - and let me tell you, they don't like anything but their own code.
Happy Coding! |
| Sat 10 Jan | Juan Pablo Garcia | Well, I know that users don´t weight the quality of code, but sure they ask for fixes and improvements that can be better done if well started and maintained.
I don´t want to learn because of them or anybody snooping at my code, but because I suspect that if people uses 5 or 6 years studying what I have learnt from a book or two, they should know more stuff (and usefull one) than me.
Suppose I must hire helping people, I will spend 10 years for a seasoned programmer to understand my code, although my users are happier everyday and they don´t mind that I´m here at 3:30 AM fixing a bug...
And, if I want to work for someone coding, he will expect me to solve problems at the end of one day, not one week.
I´ve been looking at aduni.org courses, and they are fine. I will study them but will continue searching something formal that gives credits, and on target for my possibilities.
I thank the help of you all but I don´t want to search books or references in Google as I have lots of them, I want a formal course with a schedule online. Does this exist?
Regards,
JP |
| Sun 11 Jan | Matthew Lock | Arsdigita had a kind of university for a while. They still have streaming video of their lectures online: http://aduni.org/
You can get the lot on an 80gig harddrive too if you send them $160 or something. |
| Sun 11 Jan | Titivillus | I highly recommend a university education if you're in the position to afford it....
But having said that, I am self-taught in a lot of respects for CSC(caveat, I did get a BS in Electrical Engineering). The internet is AWESOME for learning really deep things and getting better. There is a burgeoning movement for 'open source textbooks'. Basically, professors and students alike are getting tired of the price gouging of publishers coupled with a lack of quality.
I have been trying to collect a list of all the free high quality sources that are out there onto my webpage. Most of the links on it are free online books, but some are not.
http://tos.maintree.com/titivillus/library.asp#technical
http://tos.maintree.com/titivillus/softwaredev.asp#software_dev
Yeah, there are links, opinions, and grammar on my site that are worthy of a lot of criticism, but oh well. If you're serious, most of the stuff on there should be a good start. |
| Sun 11 Jan | Juan Pablo Garcia | Oh Thanks!
I´ll give it a try to your links, and if I get engaged, I´ll keep doing what I´ve been the last 20 years of my life...learning by myself.
regards,
JP |
| Sun 11 Jan | Robert Jacobson | Robert and Matthew, thanks for the great links to Arsdigita. I hadn't heard of this before, and it looks great -- like what the OpenCourseware site ought to be. I'm thinking about springing for that hard drive collection. |
| Sun 11 Jan | Warren Henning | I don't know if studying on the Internet is such a good idea. I mean, it might be acceptable for finding information, but it just seems to me that the Internet is about moving around quickly -- it's an ADD-driven clickfest. Boom, boom, boom. That's why I think ebooks will never be big.
Computer science requires a lot of concentration and thought. It's very hard. :( |
| Sun 11 Jan | Titivillus | To Juan: Hey, if you enjoy those links let me know, and if you find some stuff not on my page, let me know about those too.
As to studying on the internet and 'ebooks'. The 'ebooks' I link to are PDF's, and frankly, its a lot simpler to print them out. The better ones I take to a print shop and have bound.
And to the internet being for ADD people only, you should check the aid to researchers such things as the ACM Digital Library and Citeseer are doing. The ACM DL has EVERY paper published in an ACM Journal. Citeseer indexes bibliographies of research papers forward and backward. Its really great once you find a cool paper and want to see what's been done since. Citeseer usually has the full text as well. The adfest crap you talk about is usually from commerical sites, researchers and professors writing text books and putting notes online are usually doing it to do what they ALWAYS have: sharing their research(sometimes out of the goodness of their, sometimes because they want the 'fame' that comes from it.
http://citeseer.nj.nec.com/cs
http://www.acm.org/dl/
(unfortunately, you have to have a subscription to this one, but many universities have them, like mine :). |
|
| How to Copy Files from Hard Drive to DVD-RW Drive? | Sat 10 Jan | poor newbie |
| This may be a stupid question, but please bear with me, Im a newbie. I have a DVD-RW drive on my PC, and I dont know how to archive files (i.e. my Quicken & Outlook data). I have spent a while looking for the answer online, but I only seem to get back instructions on how to copy video files. Thanks. |
| Sat 10 Jan | Incoherent Abbreviator | LOL! |
| Sat 10 Jan | Bored Bystander | Usually there is application software supplied with CD-R and DVD-R drives that you must install, which allows you to create CDs or DVDs with the drive. Generally, you tell the software what kind of CD or DVD you want to make (video DVD, audio CD, data CD) and then you drag and drop files into the software from your hard drive. Lastly when you've assembled all the files you want to record, there is a 'burn' command.
If you didn't get software with your DVD drive, Nero is pretty good: http://www.nero.com/us/index.html - It will cost about $50 US.
If you can't handle these instructions, you probably need more fundamental help with computer usage and you shouldn't bother with recording DVDs just yet... |
| Sat 10 Jan | Duncan Smart | If you're using Windows XP you simply drag and drop the files onto a blank CD-R/CD-RW as it has CD-burning software built in. |
| Sat 10 Jan | Brad Wilson | +1 for Nero. I've used both Nero and EZ CD Creator, and I like Nero a lot better. Of course, I also picked up Nero Ultra, which came with a nice 5.1-channel DVD player, too. ;) |
| Sat 10 Jan | poor newbie | 'If you're using Windows XP you simply drag and drop the files onto a blank CD-R/CD-RW as it has CD-burning software built in.'
Hi Duncan Smart,
I have Win XP, but as soon as I try to explore my DVD drive or copy to, I get a message to 'insert disk'. Am I doing something wrong?
BTW:
Bored Bystander & Brad Wilson, I tried Nero and it seems cool. I'd rather not have to pay the fifty bucks, though, if the software is built into XP. I might buy it anyway though, because it does so much stuff with video & audio. Thanks. |
| Sat 10 Jan | Mike Swieton | You have inserted a disk, right? 8-}
On a more serious note, are you certain that your drive was installed properly? If you had it installed by a company, it almost certainly is, but doing it yourself sometimes can be trouble for some people (because if it doesn't work you may have to troubleshoot both software and hardware problems).
Always check the silly little things like these, first :) It's amazing how often some problems are just loose power cables, etc. |
| Sat 10 Jan | Bored Bystander | What Mike said. Can you read DVDs and CDs from this drive?
When your system starts up: if you know what the BIOS settings mean that are displayed at startup, look to see if a reasonable device name is displayed for your DVD drive. It's one of the first screens you see before Windows tries to start. If you don't see a name for your drive in the BIOS, chances are the drive is not responding. |
| Sat 10 Jan | Brad Wilson | When using XP, if I look in Windows Explorer, it tells me what the drive types are:
Local Disk (C:)
Local Disk (D:)
DVD Drive (E:)
CD-RW Drive (F:)
If the descriptions of your optical drives don't properly align with the drive type, then I wouldn't expect XP's built-in burning service to work.
Also, it's worth noting that I believe the built-in burning service supports CDs only, not DVDs, but I'm not positive on that one. |
| Sun 11 Jan | | To burn data (not music, etc.) to a CD/DVD, you first need to format it. Right-click on the drive, hit Format, hit whatever OK buttons pop up, and it will quickly prepare the disc. *Then* drag-and-drop. Anyone who bought burning software after upgrading to XP missed the boat. |
| Sun 11 Jan | poor newbie | The hardware seems to be installed fine. I can read data DVDs & CDs, as well as music CDs and DVD videos. I've also written a data DVD using the trial version of Nero.
BTW, the drive came factory-installed.
Blank suggested:
'Right-click on the drive, hit Format'
This sounds reasonable, but when I right-click, no 'Format' option appears.
Thanks! |
| Sun 11 Jan | Brad Wilson | You don't need to format the disc for burning to recordable discs. Only re-writeable discs require formatting, and there is no built-in re-writing support in XP that I'm aware of.
Besides, there's plenty of reason to buy burning software, even if you're using XP. The little functionality that's in XP offers almost no options. Data is always multi-session, discs are always left open, and burning a music CD requires using Media Player an formats that it understands.
That doesn't even count the things there are no facility for at all (copying discs, creating and mounting ISO images, etc.). |
| Sun 11 Jan | John Topley (www.johntopley.com) | Windows XP doesn't support DVD burning out of the box. That's one of the things that's coming in Longhorn. |
|
| rule of engagement, #1 | Sat 10 Jan | Timothy Falconer |
| Never work for someone that doesnt know the difference between a branch and a loop.
http://bigfractaltangle.com/archive/2004/01/09.jsp |
| Sat 10 Jan | no name | Sounds to me like the guy didn't want to deal with people anymore so he made up some rules as a scapegoat. Hey, if you want to run a service oriented company then you have to deal with people. Even if you decide to switch to a product based company, you still have to be able to deal with people. |
| Sat 10 Jan | no name | Same ol' Same ol'. Here we have a consultancy that wants to 'help' people by writing software for them. Read 'help' as make money off of them.
Rule #1: You don't and never will fully and completely understand your customers business.
Rule #2: Your customer really doesn't NEED the software you are making for them. Did they contact you or did you sell them something they don't need. If they contacted you were you truthful in representing the fact that they actually needed the software? 95% of the time I've found that people do not need custom software. Especially small businesses. I recommend they buy a ready made accounting package or whatever off the shelf software satisfies their needs and then I teach them how to use it and set it up for them.
Your article reads like you only want to deal with people who know what they're talking about when it comes to software. Too bad. Welcome to the real world. |
| Sat 10 Jan | Philo | LOL! Amazing - the guy wrote an article detailing why he's a horrible consultant and why nobody should ever hire him.
To be worth the rate, a contractor ideally translates client needs into code. Part one of that is understanding the client's needs. The client should not have to understand the difference between a branch and a loop - that's not their job.
And if there's a major business requirement that didn't get into the design, that's the fault of the consultant for not learning the business well enough to understand the requirements.
The author is thinking in terms of working for project management when he doesn't understand that he IS project management.
Philo |
| Sat 10 Jan | Joel Spolsky | At least he admits 'Later that week, when I re-read my rules, it became clear: I don't want to do contract work for clients anymore.'
I don't either. We stopped doing that at Fog Creek as soon as we could support ourselves from software. |
| Sat 10 Jan | Stephen Jones | ---'1. Never work for someone unless they know the difference between a branch and a loop.
Just this one criteria would have eliminated every unpleasant client experience from the last two years.'----
I rather suspect it would have eliminated every client experience from the last two years. |
| Sat 10 Jan | Stephen Jones | Actually I'm not too sure I know the difference between a branch and a loop.
Isn't a branch a bit like when Granny has Alzheimers and wanders off down the street some day to get lost and never come back, whilst a loop is when she has short term memory loss and keeps asking you every five minutes where she's left her zimmer frame until you finally have enough and crack her one over the head with it to shut her up once and for all? |
| Sat 10 Jan | www.marktaw.com | No, a branch is a government organization. A loop is what they send you on when you try to get information from them. |
| Sat 10 Jan | Mark Hoffman |
'2. Clients must understand and appreciate our iterative timeboxed approach. They need to understand the tradeoffs. '
Gee...If they don't understand, then it's because you failed to make them understand.
His whole attitude seemed to be combative towards his clients..As if he was irritated that they wanted to give him money. Amazing. |
| Sat 10 Jan | Timothy Falconer |
A few clarifications... we've been making custom-built software & websites for almost six years, with a wide variety of clients. We're actually pretty good at translating customer needs to working code. What I'm referring to are high-maintainence customers that don't really know computers, most of which are asking for customizations to the web applications we've built for them.
I suspect if/when you've fielded the fiftieth change request from the managing director of a non-profit arts organization, someone who doesn't read or remember your emails, or remember the clearly outlined points from any of your design talks, you'll understand the frustration. Some clients just can't get it, no matter how clear you are.
The best clients we've worked with are other technology firms, hence the 'branch/loop' criteria. There's a big market here, particularly as an outsourced resource. To say that we'd have no market following this rule is short-sighted.
As for pushing our services on others when they don't really need it, that's a pretty surprising point. Most of our clients have wanted custom websites and web applications, products to sell (they were entrepreneurs), or widgets to drop into their existing software projects. I can't think of one client that we 'sold' in the sense you're talking about. Almost without exception, they came to us with their need.
|
| Sat 10 Jan | no name | They're perfectly valid comments from a programmer who has never mastered the art of the schmooze. He's more comfortable working for technical clients who understand development.
Developing software is hard, but so is making sure other people are happy with what you're doing, even though they don't have a hope of understanding it.
He needs to hire an account manager. |
| Sat 10 Jan | Bored Bystander | Hire an account manager? Perhaps. But I think the flames of Timothy are not exactly deserved. I don't perceive the egocentrism of the techno-fascist weenie at work here.
The fact is, the vast majority of end users don't have the slightest clue of how a technical project is conducted. Most end users, even managers, have no comprehension that their judgement might be taxed by the tradeoffs or decision making that an outsourced project absolutely demands of them. This is the most common problem with outsourcing both for the provider as well as the client.
Many times I've dealt with end users who fight the discovery process tooth and nail as too time consuming and too difficult, and yet hold you accountable body and soul for reading their minds. The precision you need to do your job makes most end users bleed from their noses.
Most clients - even many so called 'technical' contacts within companies - expect complex deliverables to be delivered with absolutely no internal or specification complexity, like ordering a baked potato in a restaurant. It's QUITE rare to find a client who doesn't require a Vulcan mind probe.
I say, 'BFD' to all the naysaying. Timothy's been in business for awhile and is learning what the parameters of his business need to be. His only 'mistake' was in exposing his logic to the world.
Performance speaks louder than a bunch of armchair quarterbacking. Good for him. |
| Sat 10 Jan | DevX | I have ran a custom software development business for about 5 years.
After the first 2 years, I have decided work only with clients who knew something about technology, and to simply refuse projects for clients that didn't have a clue.
This was one of the best measure I have taken - after doing this, profitability increased a lot.
Working for a client who doesn't have a clue about technology means you have to make a choice between:
- You spend a lot of time and effort educating/teaching your client. You won't be able to bill this time and effort adequately, because this type of client usually doesn't value your work.
- You do their project, they change requirements 1000 times, and you work like hell to hit a moving target. Even after you completed the project the way they wanted it, they are still not pleased.
Both variants waste a lot of time, effort and money. |
| Sun 11 Jan | Stephen Jones | By only taking technical clients you are simply moving yourself one stage back in the process. Those clients are going to have to deal with the non-savvy customer. Now that may be a reasonable division of labour, but to criticize the clients because they don't understand your obscure processes is like criticizing a house buyer because he doesn't the chemical properties of building materials. |
| Sun 11 Jan | Timothy Falconer | Who's criticizing? It's simply a matter of finding the best match.
Have a look at a few of the other articles in the same category, particularly 'Semantic Gap'. I hope it's clear that I have nothing against non-technical users. I just don't want to explain what a 'record' and a 'field' is any more.
http://bigfractaltangle.com/archive/cat_grannies_and_gurus.jsp |
| Sun 11 Jan | Philo | Why are you explaining what records, fields, loops, or branches are?
Non-technical clients should be shielded from that stuff completely. When I had a non-tech client tell me that each partner's data should be in a separate database, I politely told them that unless they had a legal requirement for that, it really wasn't something they should worry about. I stepped them back and identified the *business* concern:
- Partners can't see each other's data
Good enough, I can do that with SP's and authentication.
Non-technical clients *think* they need to be involved with technical decisions. I tried as much as possible to back them out, since there was no more point in them asking/dictating architecture than there would be in me telling GM what kinds of alloys their pistons should be made of.
If it makes you feel any better, I'm sure your clients hated you as much as you hate them. :-)
Philo |
| Sun 11 Jan | Simon Lucy | I'm sure many organisations that have had to engage such external consultants have their own rules, amongst which might very well be...
#127 never engage someone that cannot use a knife and fork at the same time, or at least who cannot discern the difference between them. |
| Sun 11 Jan | DevX | So, what's wrong with that?
A consulting company may only have technical skills, and work for clients who know about technology.
Another consulting company may have fantastic skills in dealing with clients who don't have a lot of clues about technology.
In the market, both kinds of consulting companies can prosper.
Why?
Because there are clients who don't care if your company has the necessary staff for working with non-technical users - they just want to tell you what they want done, in technical terms, and they want you to do it.
It's like when I buy computers: I go to a local company where I can tell them exactly what components I want, what hardware settings (bus frequency, etc) I want, etc.
I don't care if they also have the capability to sell to non-technical people. In fact, they don't have this capability.
But they serve the customers who know about computers much better than other companies, because they have lots of components, you can have a very technical discussion with them, and get advice, etc. |
| Sun 11 Jan | Stephen Jones | There are consultants who are hired by technical companies because they are even more knowledgeable and specialized than the technical who is workigroups own workers, but in general the 'consultant' who is working for a tech savvy client is much more likely to be filling the role of a sub-contractor. Which, as everybody is saying, is a perfectly good situation for somebody who is uncomfortable with laymen.
It does seem to me though Timothy, that you were spending so long failing to explain things your clients didn't need and could understand, that you may have failed to explain to them what they did need and could understand. For once I'm 100% behind Philo on this; as far as your customer is concerned a field is where he keeps his prize Anguses, and you should not try to confuse the image or he'll be feeding data to the cows and stuffing hay down the floppy disk drive. |
| Sun 11 Jan | كوب | Maybe it's just me, but doesn't this seem just a bit like a shameless plug for his own website that backfired? |
| Sun 11 Jan | Stephen Jones | Yea, looks like he doesn't understand developers either!
I hadn't realized he was the original poster. |
| Sun 11 Jan | Portabella | > Non-technical clients should be shielded from that stuff completely.
I agree 100% too... to the extent that it's possible.
You do find clients who want to discuss both technical and business details. (Often the money people will delegate to someone like this, since they *seem* to be competent in both areas).
Since these clients, or the people they represent, are the ones who are ultimately paying, it can be difficult to cleanly separate concerns. If you try to focus too much on business requirements, they'll drag you back to the technical details; one of the things that I think is going on is that they are afraid of being BSed unless they hear some technical phrases that they understand. I wish there was a cookbook formula for how to deal with this situation, but AFAIK there isn't.
'Just forget about those clients, they're more trouble than they're worth'. They may be trouble, but often dealing with them is quite lucrative. |
| Sun 11 Jan | one programmer's opinion | I am not questioning Timothy's technical knowledge/skills, however, I am amazed that he has been able to land several (significant?) contracts with non-technical clients.
Philo wrote, 'The author is thinking in terms of working for project management when he doesn't understand that he IS project management.'
Bingo! Give that man a cigar.
Now, perhaps Timothy doesn't need to pursue high-maintainence non-technical customers, however, if he does then he is going need to learn more about the black art of fixed-bid custom software development. Among many other things this entails:
* Spending free time explaining to the client how your billing process works. Note: You might need to provide the client with several variations and allow the client to pick the method they feel most comfortable with. Clients also must be told that you welcome change requests, however, they will need to pay for them.
* Spending free time coming up with a competitive bid. This is where the black art of pricing comes into play. Many high-maintainence non-technical clients won't be willing to pay for the preliminary capture of the high-level requirements. So some firms deal with this fact by establishing a 'Pre-Sales Effort' methodology. Basically, this means doing a quick preliminary pass of the first few phases of whatever SDLC your company follows for free. If the customer accepts your bid, then you need to figure out how you are going to recover the time and money spent on the proposal/estimation process you just did for free. If the customer doesn't accept your bid, you eat the cost of what it took to put in a bid. |
| Sun 11 Jan | www.marktaw.com | > I stepped them back and identified the *business* concern <
Unfortunately this is a rare skill. Most people accept what they're told at face value without trying to figure out what the real need or motivation behind it is.
What was the name of that annoying girl on Animaniacs who kept asking 'why?' until it drove someone crazy. The example I remember was her asking a painter why he was painting, and eventually got him to say 'because I don't want to get a real job.'
You're right, the non technical client should be shielded from the technicalities. The problem is, you also have to be good enough to figure out what they really want. |
| Sun 11 Jan | T. Norman | Sometimes the non-technical client tries to dictate technical details to you, even if they don't make sense. Maybe that is the situation that Timothy F. is complaining about. |
| Sun 11 Jan | Portabella | > What was the name of that annoying girl on Animaniacs who kept asking 'why?' until it drove someone crazy.
Her name was Mindy.
'OK lady, I love ya, bye bye!!!!' |
| Sun 11 Jan | Timothy Falconer | What a mess. The assumptions in this thread are unsettling.
Regarding fields and records, I'm surprised someone woud say that clients shouldn't have to deal with this level, that we should be shielding them from it. I'm not sure what kind of clients you've worked for, but I can't imagine any non-trivial database application that affects multiple parties in a business where the client doesn't have to deal with the 'name' field or the 'person' record. You might call them objects or attributes or forms or entities, but at some level, the client has to know about this sort of thing.
Of the assumptions above, one that seems to be repeated is that we've failed to educate our clients about our billing procedures, our lifecycle, our project management, etc. We actually do have a standard rap we use that explains all this. It's part of our standard contract, it's part of every proposal, it's part of every initial design discussion. Yet as much as we try (and we do explain things in friendly, non-technical ways), there are some clients that never quite grok it.
As for hiring an account manager, we're talking about requirements analysis and software design. Schmoozing is one thing, divining the client's specific needs is quite another. The less technical the account manager, the greater the chance for miscommunication. Again, I'd love to hear about projects where an account manager made decision decisions with the client without involving the architect. |
| Sun 11 Jan | FullNameRequired | Ive been fascinated by the outburst.
it sometimes feels like every few days of work we have a discussion about how little our clients really understand about an area, and how we can either repair or work around that lack of knowledge.
But this one developer says something along those lines out loud and suddenly everyone is...well....accusing him of being an incompetent.
is everyone else out there _really_ finding it so easy to marry the worlds of programming and....people...?
Ive got a 'business mentor' type person with whom I have regular discussions and from whom I have received an impressive amount of much needed advice.
During one such discussion he brought up the occasional need to 'fire' clients, pointing out that some clients are just plain not worth the hassle.
this was a possibility I had _never_ considered before, but I have to admit to loving the idea when I heard it.
Almost immediately I began having fantasies similar to those in the OP's blog, dreaming about limiting my clients to those who were, well, at least vaguely intelligent about techie things
That was unrealistic of course :)
I have since 'fired' two clients and IMO the business is stronger (and more profitable) because of it. |
|
| microsoft shared source initiative | Sat 10 Jan | OK, so its a controversial subject, that does _not_ necessarily make this a troll... |
| http://search.microsoft.com/search/results.aspx?View=en-us&p=1&s=0&c=1&st=b&qu=shared+source&na=30
kind of cool really, they are _slowly_ learning that opening up the source is useful to the customers and doesnt necessarily kill the business doing so stone dead.
more cute perhaps, like watching a baby learning to walk... |
| Sat 10 Jan | AnonAnonAnon | Not really. Access to the source is so controlled that you cannot make any changes, recompile or do more than an inspection. In that case, how do you know they gave you the actual code? |
| Sat 10 Jan | Mister Fancypants | I'm sure they don't give you the actual code. I'm sure they hire some guys to just write code that kinda looks like the real code to trick you. |
| Sat 10 Jan | Brad Wilson | Why would you need to compile it, anyway?
The point is for you to inspect the code so you can understand the internal workings of the existing system, not to make a derivitive product from Microsoft's code. |
| Sat 10 Jan | Robert Jacobson | Umm, Microsoft has never *claimed* that it's the actual Dotnet Framework code. Quite the opposite -- it describes the Rotor code as a different, experimental implementation that targets FreeBSD in addition to Windows. ('There are significant differences in implementation between this code and the code for Microsoft's commercial CLR implementation....') [1] Microsoft has been very upfront about these differences and the (many) limitations of the Rotor code. [2,3]
The only legal limitation is that this code can't be used for commercial purposes. You can modify it, compile it and redistribute it to your heart's content -- just not for commercial purposes. [4]
Sure, this code isn't terribly useful, but it can be fun to dive into it and see how it works. I view it more like a kid's science fair project. Take it for what it is... if you're expecting Microsoft to turn the Dotnet Framework into some open-source Sourceforge project, you'll be disappointed. (But there's always the Mono project for that.)
[1] http://msdn.microsoft.com/library/default.asp?url=/library/en-us/Dndotnet/html/mssharsourcecli.asp
[2] http://www.ondotnet.com/pub/a/dotnet/2002/07/22/rotor.html
[3] http://msdn.microsoft.com/msdnmag/issues/02/07/SharedSourceCLI/default.aspx
[4] http://msdn.microsoft.com/msdn-files/027/001/901/ShSourceCLIbetaLicense.htm |
| Sat 10 Jan | Robert Jacobson | Ah, sorry -- I see now that the OP wasn't referring just to the Rotor project, but entire "Shared Source" program. However, the Shared Source license applies equally to the other projects, too -- you can compile, distribute and modify the code, just not for commercial purposes. |
| Sun 11 Jan | Chris Tavares | Actually, the Rotor code is *very* useful as a learning tool. It's a good example of a working CLR. The GC has been simplified, the JITter is simplified, but that just makes it a little easier to understand and experiment with it.
Considering one of the goals of Rotor was to get it used in college courses as part of studying virtual machines and operating systems, I think it succeeds pretty well on that score. |
|
| Windows RPC question | Sat 10 Jan | Andy |
| Im setting up a nightly build system with about 20 Windows XP machines, and Im wondering how I can do some sort of remote procedure call thing. I just want to call some code on another machine from a master machine, and possibly return a result (though even that is optional). This is really really basic stuff, nothing fancy.
Right now there is some hack where the callees run a script that polls for a file to be renamed on a network share. The master machine (caller) renames the file, then the callees see that, and execute the code that theyre supposed to.
The build scripts are written in Python if that matters. I was thinking about using Python XML-RPC but I think that would involve installing a web server on 20 machines, which I might want to avoid if possible -- if it can be done with a bare Windows XP installation.
I have googled and searched the MS website, and it does seem like there is some RPC mechanism built into Windows, but I cannot find any decent info about it. All the google links are from like 1994 about Windows 3.1. : )
If anyone could tell me how to execute a simple RPC call end-to-end on 2 Windows machines, I would greatly appreciate it. Thanks. |
| Sat 10 Jan | r1ch | If you can get away without returning a result then you can use the NT shell command 'at' to schedule the job on the remote computers. |
| Sat 10 Jan | Matthew Lock | If you are happy using IIS then you already have a web server on each XP machine, or at least if you installed it at setup. |
| Sat 10 Jan | Tom H | If you can convince the owners of those machines to fall behind on their security patches, there's probably a couple of vunerabilities you could exploit...
http://www.securitytracker.com/alerts/2003/Jul/1007212.html |
| Sat 10 Jan | Brad Wilson | There's two options, really, short of setting up the web servers.
One is the traditional RPC mechanism, and the other is DCOM. They actually look pretty similar, but there's more available documentation on the DCOM path. |
| Sat 10 Jan | Ron | I second DCOM, it's incredibly easy and straightforward, though if you haven't used COM before you may want to look at other options first because there is a month or two learning curve to COM in general.
But basically all you do is use CoCreateInstanceEx (in C++) on the source machine and give it the remote machine's network name, and the remote component GUID, then it launches the desired .dll or .exe on the remote machine and sets up the link so to you it's just like making regular method calls. |
| Sat 10 Jan | coresi | You didn’t offer too many details so the mileage can vary. I use a central MSSQL server to store commands and results. As a plus MSSQL has a nice scheduling mechanism. Both commands and results are handled by a web interface (ASP). Using a Web interface allows everybody to issue commands and see the results as well. DCOM is too complex for this simple task in my opinion. |
| Sat 10 Jan | Andy | Thanks for the responses... the at command is more along the lines of what I'm looking for I guess. I haven't done COM, and there is no C++ in this program yet. Too bad it doesn't look like the at command can wait for completion and get a return value, but I guess you can fake that by writing some sort of file to a network share when the child program is done.
Any other suggestions would be appreciated. I still might go with Python XML-RPC, depending on what software you need to install... if anyone has used that on both client and server sides, I would appreciate hearing about it. |
| Sat 10 Jan | r1ch | Andy - the other option to signal completion is to have the remote machine schedule something back on the original machine when it has finished. |
| Sat 10 Jan | Christopher Wells | An old-fashioned way is to implement your own RPC using TCP: install some 'server' software to listen on the remote machine (but you may need to make it a 'service' not just an application, if it's to be run on the remote machine before anyone has logged in), when you want it to do something they you connect to it using 'client' software.
You can send anything over the TCP connection (including a command formatted as XML), and return anything (including a result).
You'll need to put your server software on the remote machine, but it will be standalone (won't need an entire Web server as well).
http://heather.cs.ucdavis.edu/~matloff/Python/PyNet.pdf tells me that Python supports TCP. |
| Sat 10 Jan | Philo | Sockets, SOAP, COM - all should work and as a guess they should be relatively available in Python.
Also look for a componentized web server. I know they're available. The nice thing about a web server is that 3/4 of your work is done for you (negotiation, responses, pro forms errors, authentication, encryption).
DCOM is pretty much COM over a wire, and I'd think Python can implement a COM sink, can't it?
This problem has been solved a lot - keep looking, you should be able to find a fairly established solution.
Philo |
| Sat 10 Jan | Andy | Hm, I am a little confused, maybe I can clarify a little more. I'm looking for the solution that:
1) requires the minimum of software installation on the bare Windows XP Pro machines (like just Python would be nice, since it's already on there)
2) requires the least amount of knowledge by me : )
3) Lets me simply call a remote (Python) function, wait for a return value and get it. Or perhaps call a batch file with command line arguments, and get its return value (just an integer, I believe)
4) There is no performance requirement, as I will be making about 1 call every night : )
Out of all the solutions so far, I'm leaning toward the Windows at command, but it would be nice to have something cleaner. |
| Sat 10 Jan | Christopher Wells | http://www.oreilly.com/catalog/pythonwin32/chapter/ch12.html
It seems that the Python interpreter can be registered as a DCOM object, so that you can invoke arbitrary Python command on a remote machine from a Python program running on the local machine. |
| Sat 10 Jan | mb | the simplest?
as people suggested, the at command. then send the results back to the master computer--write a file to a file share (simplest), call a web method (can even be get http://master/response?computer=3&result=74), schedule another command with at.
nothing need be installed on the slave computers, and very little (e.g. a file share or web server) on the master.
if in LA, use different terminology than master/slave. |
| Sat 10 Jan | Philo | I'm thinking you should make it asynchronous (in which case the AT command or a DCOM call would be very easy) - just rely on logging to determine what happened the next day.
You've got distributed computing, and calling methods synchronously gives up that advantage. If one machine hangs, you're done for the night. Instead, you fire off 18 (or however many) initiation commands, have each client write to a file share or database upon completion or error. The in the morning you simply check the results and bang on the machines that reported errors.
Philo |
| Sat 10 Jan | Andy | Yeah I'm thinking I'm going to go with 'at'. Thank you to everyone.
I do need to wait for certain processes to be done because of dependencies, but also I need to time out if one process fails, so the build can continue.
I think that the at command will do that -- except does anyone know if there is a syntax for the time to be 'now'?
It seems to only want to schedule things at a specific time. Of course I can hack it and get the current time through a script, but I don't want to deal with things like the system clock being wrong, or daylight savings happens and so it schedules a job before 'now', etc. |
| Sat 10 Jan | Chris Newcombe | Try Pyro - Python Remote Objects.
http://pyro.sourceforge.net/
It's robust, very simple to use and works very well for us in a 14-machine stress-test lab. Each machine needs to run a Pyro server (Python script) and one machine needs to run a naming server.
regards,
Chris |
| Sat 10 Jan | Frederic Faure | If the requirement is the minimum amount of dependencies, you might want to use XMLRPC, with just a couple of routines on a web server, and a light-weight component on the client to make a call. You'll find implementations in either COM or Python here:
http://www.xmlrpc.com/directory/1568/implementations |
| Sun 11 Jan | r1ch | You can use soon.exe, part of the Windows resource kit, downloadable for free from the link below here to schedule things to run now (or at least soon) I think. http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/soon-o.asp |
|
| Would you... | Fri 09 Jan | FredSavage |
| have any ethical dilemmas working for a porno website. By "working" I mean programming, and not the actual "modeling"... ;) |
| Fri 09 Jan | Matt Latourette | Ethical considerations aside, wouldn't you be concerned about your employability for your next job hunt after having worked for NaughtyPeopleDoingNaughtyThings.com? Somehow, it doesn't seem like a particularly appealing bullet point for your resume. |
| Fri 09 Jan | Andrew Burton | Then don't put it on your resume, just do it for the money. And, no. |
| Fri 09 Jan | Mark Hoffman |
This is a hugely personal issue and the answers are going to be widely divergent.
I wouldn't because I have objections to porn. I want nothing to do with that industry.
Others are less bothered by it. Some would prefer to work in that industry.
To each his own.... |
| Fri 09 Jan | no name | I was once enticed by that particular warm comforting maw and spent a hard couple of seconds going back and forth, back and forth on the issue. After debating both sides, the latter and the fore, playing with each issue individually and together, I concluded that any expectoration would be satisfying in the short term but in the long, it would leave me, spent and alone. |
| Fri 09 Jan | braid_ged |
Depends on the porn.
With the power-play / humiliation undertones of some of the legal porn out there I can say that even though I am quite liberal about pornography there are deffinately sites I would not be comfortable working with. |
| Fri 09 Jan | Ed the Millwright | I would not do it because I believe that porn dehumanizes people, both men and women, reducing them to objects. And I'm entitled to my opinion so there. |
| Fri 09 Jan | one programmer's opinion | '...wouldn't you be concerned about your employability for your next job hunt after having worked for NaughtyPeopleDoingNaughtyThings.com?'
That might be the name of the web site you are asked to help create or maintain, however, that doesn't mean the owner of that particular porn site doesn't own a business and use a more benign business name such as Media Ventures, Inc.
Most business people only care about one thing which is can this person do the work that needs to be done. HR drones tend to be a different story. Imo, employability only becomes an issue if you are applying for a full-time web programming position within a company that has a conservative work environment (i.e. Insurance, Financial, Manufacturing, etc.). My question is 'How many of those type of companies actually hire web programmers?'. I bet most of them primarily hire contractors on a per project basis or use an outside firm to create and maintain their websites. |
| Sat 10 Jan | Sam Livingston-Gray | If I announced that I was going to work on a porn site, I would be single shortly thereafter. Obviously not a consideration for you, since you didn't mention it...
...on the other hand, if you want ethical dilemmas, here's a little food for thought. http://www.latimes.com/news/custom/showcase/la-tm-pornjan12.story |
| Sat 10 Jan | Philo | Two plusses about having a porn site on your resume:
1) Heaviest trafficked sites on the internet. Purely objectively, you'll have some very real scalability experience to bring to the table.
2) For some interviewers, it would be a plus; esp. if it's a site they've heard of. And *very* especially if you maintain those contacts and talk about the office Christmas Party...
But again, the huge negative is it only takes one person in the hiring chain to have a moral objection and it's 'No Hire' city...
Philo |
| Sat 10 Jan | Brian R. | Some great replies here.
Besides everything else, porn is a dead-ender. What the heck do you program w/a porn site. It's some javascript that you'd probably crank out with dreamweaver.
Theres some purely programming stuff you could do, but in that case, if you weren't morally opposed to it, you probably would have hung your own shingle (site) out their already.
Just say no! :-)
Let's have some professional pride. There's more than one way to make a dollar. |
| Sat 10 Jan | Brian R. | ' By 'working' I mean programming, and not the actual 'modeling'... ;)'
I hear you, but would you really want to see that co. succeed, when you think about it? I mean the co. itself, not the people that work there. |
| Sat 10 Jan | John Rose | I agree with what Philo said about it being a potential *plus* on your resume- definitely some of the most heavily-trafficked sites on the 'net, which is some pretty darn valuable experience.
Think about most sites you've worked on in your life. They probably don't get enough traffic to keep a Pentium 133 warm. 99% of the sites out there probably get a couple hundred visits a day, or less. |
| Sat 10 Jan | Li-fan Chen | I think the same ethical question could extend to other fields: weapons development (especially the dumb bomb variety), casino gaming, unsolicited commercial emails, etc etc etc. |
| Sat 10 Jan | Nicky | I would LOVE to.
Porn is cutting edge. They try every new technology, every new schema. All cool shit is tried out there first. Just think of any single advertizing or ecommerce schema in today's web: it started on porn web sites.
Porn is challenging. Think scalability, security, interoperability.
Porn is morally right. I am living in an police state, in a surveillance country regulated by old decripts with rules made for me that they don't obey. I am working in a sexually frustrated industry, surrounded by prude concitizens. Anything I do that can disrupt that is good. Anything I do that breaks the convention, that is frowned upon, that pisses them off - I will.
And instead I am making developer's tools... :-( But I have this AWESOME idea for a porn startup. If only my current startup makes enough money, in a few years I will be the porn KING! |
| Sat 10 Jan | Stephen Jones | Considering how much more harm and degradation religion has caused than pornography how many of you would have ethical dilemmas working on a church site.
(And let's not even start taliking about a politicians website). |
| Sat 10 Jan | Shlomi Fish | I personally would not want to work for most porn-sites. I don't think porn is unethical (quite the contrary). But most porn is disgusting, and I'm not sure I like the concept of the industrial porn qua porn. If a site contains some porn and is otherwise of good quality and value, I wouldn't mind.
Other things I wouldn't do is work for cigarettes makers or alochol vendors, or things that are worse than that. Probably not for most religious institutes and political parties, as well. I think they are all perfectly legitimate and legal but still quite harmful.
That put aside, even though I maintain some web sites on my free time, I hope to find a job in something more serious than web publishing. If it involves some webmastering, it would be nice, but other areas appeal to me much more. |
| Sat 10 Jan | ... | What do you think the effects of offshoring will be on the porno website business? Will american perverts be put out of jobs? Is nasty-asian-sluts.com actually produced in uh...sweat shops in asia? On that token, there seem to be many more 'hot american teens getting dirty' sites than there are sites about 'hot indian teens getting dirty.' - and there are certainly more indian teens than there are american teens?
Maybe indian teens aren't as hot or perhaps they don't get dirty as well as american teens? Should hot american teens form porno ..uh...unions now, to prevent the inevitable loss of jobs to india? This question of porno outsourcing would seem to combine the main interests of most mid-level geeks (we could also get into what architecture is better for pornography: unix or NT), so everyone, please post your thoughts. |
| Sat 10 Jan | I'll stop now. | Indian teens are perfectly capable of getting as hot and nasty as American teens. The only thing is that when you outsource, if you want to be successful you have to actually write a full detailed script with stage directions and storyboards as opposed to just jotting down an outline and making changes as you go.
So you have to have a more up-front design instead of using XP (Extreme Porn). Of course, there are some parts of XP you can still use; for example, PP (pair porn) is obviously a requirement... |
| Sat 10 Jan | sgf | Wouldn'r that be XXXP ? :) |
| Sat 10 Jan | Full name: | I'm working on a book that explores some of these issues. Out of curiousity, how would you characterize the difference between having sex with someone for money and dedicating 15+ years of your life to schooling, and another 30+ to corporate life.
Is it the nature of the work that offends you, and if so... What about the work you do doesn't offend you? |
| Sat 10 Jan | Codewhore | Well, in one you prostitute yourself and your body to fulfilling someone else's pleasure so they can get rich off your exploitation while throwing you a few dollars so you can barely survive.
While in porn you get to have sex for money! |
| Sat 10 Jan | no name | Outstanding, LOL |
| Sat 10 Jan | Jeff | A concern may be when an HR person asks for the urls of the last 5 websites you developed. If you are in that business long enough your only recent reference will be an illicit site. Now I know where I work if you look at porn at work you get a write up, not something I would want if I was looking to hire someone. |
| Sun 11 Jan | Stephen Jones | If HR asks tell him, and say that if he wishes for more details you can arrange for a full dossier of your projects for him on DVD.
If the job's really worth getting then volunteer to give him the phone number of some of the 'content creators' for a reference. |
| Sun 11 Jan | Serge Wautier | CV considerations != Ethical considerations. Ethical considerations are the OP's question
For some reason that I ignore, 'Good Will Hunting' came back to my mind. You know, the place where Matt Damon's character explains why he wouldn't work for NSA.
Morale and ethics are definetely difficult matters... |
| Sun 11 Jan | Serge Wautier | Google and the Internet truly are amazing ! :-)
Here's what Will Hunting said about NSA :
http://www.stmoroky.com/reviews/films/goodwill.htm#nsanote |
| Sun 11 Jan | Mike | 'Considering how much more harm and degradation religion has caused than pornography how many of you would have ethical dilemmas working on a church site.'
what an ass |
| Sun 11 Jan | Mediocre ASP Monkey | >>Considering how much more harm and degradation religion has caused than pornography how many of you would have ethical dilemmas working on a church site.<<
I'd decide to work on a porn-related project on a case by case basis - I'd need information before deciding whether or not I could work with them, whether I'd enjoy working with them - just a special case of the normal procedure of determining whether I'm right for the job ;)
If it's a religious site of any kind, then I *already* know that I cannot work with them. I wouldn't work on a religious project even if welfare was the only alternative.
Not that I'd get past the interview ;) |
| Sun 11 Jan | SC | > what an ass
Hmm, not really an appropriate thing to say on a thread about working on porn sites:-) |
|
| OOP Concept: Abstraction? | Fri 09 Jan | All around the world, statues crumble for me |
| Is "Abstraction" considered an OOP concept or is it simply a word that summarizes Polymorphism, Encapsulation and Inheritance? In other words, abstraction is achieved through the use of Polymorphism, Encapsulation and Inheritance. |
| Fri 09 Jan | Vince | no, and no. You can have abstraction without using object oriented concepts. I've used abstraction in Perl and classic VB by having generic DataAccess methods, etc. I think your confused on the concepts a little... |
| Fri 09 Jan | All around the world, statues crumble for me | I'm not confused. Never have been. Whilst abstraction is a generic concept, I am not referring to it in this context. |
| Fri 09 Jan | Brian R. | ' In other words, abstraction is achieved through the use of Polymorphism, Encapsulation and Inheritance.'
Yes, that's the whole point. Abstracting away from the 'main()' part of the program. So main() is simple, but the library programming becomes more sophisticated. That appears to be the trade-off.
Abstract the work away from the developer to the SW Engineer. |
| Fri 09 Jan | All around the world, statues crumble for me | Hrm... I think people are missing my question.
In school we were taught the there were 4 main OOP concepts: Abstraction, Polymorphism, Encapsulation and Inheritance. We were told that Overloading was not considered an OOP concept but a language feature.
I'm not talking about anything except the core OOP concepts here. I realize abstractions are created everywhere in programming. The languages we use to program are themselves abstractions. This is not what I'm referring to.
I am referring to core OOP concepts. Is abstraction considered to be a core OOP concept or not? If I go into an interview and the interviewer asks me what are the core OOP concepts? Would I be correct in saying abstraction is one of them? To me abstraction simply describes the other 3 concepts or more generally, like everyone else is saying, describes programming in general.
If abstraction is a core concept how would you define it in that context? |
|