I'm a hosting newb -- been running my own servers since last century -- but finally had a situation (wife decreed that company website needed updating, so I got into drupal) where hosting made sense. When it came time to move the site from testing using MAMP to hosting, I did the research and went with HotDrupal.com, which is a part of Holistic Solutions.
They seem to be doing things right. They don't overload their servers, they use fast hard drives, they make backups (though of course, I keep my own shadow!), and so on.
But here's the kicker: their tech support is absolutely superb. I mean, as a hosting newb I needed some handholding, especially since there were some unusual configuration issues due to legacy stuff I had to support.
Without a doubt, these guys gave me the best tech support I've ever received in over 35 years in the business. When he's not doing other things, the big kahuna himself, Steve, does frontline tech support.
You know how when you put in a ticket, you keep thinking about the problem, and then the solution comes to you, and then tech support gets back to you a few hours/days later with the same answer? Well, in this case, I was coming up with the answer, logging on, and finding that they'd beaten me to it.
The only ticket they failed to answer to my satisfaction was the one that asked "Where can I send you guys some beer and pizza money as a thankyou?"
Absolutely a no-brainer if you'd doing anything Drupal or LAMP/MAMP/WAMP-related.
Allow me to speak from experience - VERO is pretty much useless as a method for evil companies to enforce despotic control over the masses. In terms of furthering my nefarious plans for World Domination, it's been a total bust.
EBay hosts many auctions of bootlegs of many of the films (anime, samurai stuff) for which my company, AnimEigo, is the US licensor (turning you all into malleable Otaku will definitely get me closer to the aforementioned end-state of World Domination). At one point, we tried using VERO to cancel these auctions. It was a total waste of time.
1) After being VERO'd, the bootleg vendor would simply put up another auction. It was a game of whack-a-mole, and they had more time to play than I did. The time I wasted -- I could have spent it on the Orbital Mind Control Lasers.
2) The serious bootleg vendors would simply contest the VERO. At which point the rights-holder has to provide documentation that demonstrates that the property infringes their rights. And that, folks, takes time and money -- and I need that money, do you guys have any idea how expensive it is to build and maintain a Secret Lair?
So my advice to people who want to sell E-Meters is to contest the VERO; it requires only 10 minutes of your time filling out a form and faxing it off, and will cost the COS a considerable amount of money to take to the next step. Now, they may decide that it's worth it to them to do that, but hey, that's money they can't spend on other things - and keep in mind that for them, World Domination is a serious business, not just a hobby like it is for me.
The real point of VERO is to protect eBay from lawsuits by rights-holders.
Take your bucket of old hard drives to a Combat Robotics event (for a list of upcoming ones, see http://www.buildersdb.com/) and watch them get turned into shrapnel.
We also recycle a wide range of other consumer goods, from printers to refrigerators.
Obviously there is a balance to be had when documenting your code. For me, commenting is a literary endeavor; good comments should explain exactly what the code does, explain anything that's non-obvious, proudly point out your brilliant insights, and own up to any sleazy hacks that you were forced to perform - and do so in an elegant and entertaining manner. The ideal comments are those that allow your audience (even if it's just an audience of one, you) to understand what your code does without boring them to tears. This helps the comments do what they are supposed to do: explain what your code does, and reduce the number of "WTF?" moments your readers have (it is particularly embarrassing when you are the reader going WTF?!). They will also remind you, when maintaining your code, of both your mad skilz and the stuff you really need to make more refined before anyone else sees it and thus realizes what a kludgemaster you really are.
As a rule of thumb, you should probably have as many comment lines as code lines, but they will be clumped in particular areas. Of course, YMMV.
A bit OT: a previous poster wrote: "And each time I see those nuggets of perfection, I snag them. They get added to my pile of code samples for later use. Either in a straight copy or as a foundation of an idea that gets recoded, depending on license requirements."
This reminded me that old programmers don't write code, they just remember it and type it in again. Though I doubt I'll have to remember any 6502 code anytime soon, a pity since it was such an elegant little instruction set.
Go to your local GameStop and ask if they're running a waitlist. If so, get on it. They usually don't advertise they're doing it, you have to ask. Last year the regional manager of our local GameStop ran one for Wii's, and sent out weekly emails telling us where we were on the queue, and when we could reasonably expect to get the Wii. 3 weeks later, email comes in saying "Go to the store the day after tomorrow". Went, got Wii, kids happy, no hassles, and GameStop now gets all their business. Win win all around.
It's like I alway tell them - "You don't ask, you don't get"
As a veteran of the first copy protection wars, let me give you one simple insight that should guide you:
"Thieves don't buy"
Software thieves will not pay for your software, no matter how much you lock it up. If they can't get a cracked copy or code, 99.44% of them won't use it. It doesn't matter if they still live with their parents, or are the CEO of a big company; thieves don't buy.
Thus, you must tailor your strategy towards supporting your non-thief customers, while minimizing the parasitic cost of the thieves.
Consider doing this:
* Require registration for support, not for running the program. If they run an unregistered copy (ie: no serial number), give them full functionality but remind them how to pay on startup, gently. Perhaps do it only when you do the weekly update check, or whatever. Support is your major marginal cost, so you want to try and avoid giving support to the thieves.
* Phone home to check for updates, but continue to run no matter what. If the phone-home does detect a registration conflict, alert the user ("someone may have stolen your registration number") but continue to run.
* Explicitly disclose what your phone home does, and allow the user to disable it, or the registration check, if they so desire.
* Provide a way for your legit users to get logs of the phone-home information. Say their laptop gets stolen; the IP address logged on the phone-home could mean it gets recovered, you're a hero, and have a customer for life. But have strong data privacy rules about the information and how long it gets retained.
* If you have a product with low/no marginal costs, consider letting your users decide how much to pay you (works best with small ticket items). See http://tipping.selfpromotion.com/ for an essay I wrote on this some years back.
* Always remember to add the clause to your software license that makes Bill Gates promise to become your towel-boy.
The easier you make it for your honest users to pay you, and the more helpful you are to them, the more you will be paid.
You *know* you will be on the hook for free tech support.
What computer you recommend depends on your personality.
Suicidal : Linux, custom install
Masochistic : Windows
Sadistic : Windows
Realistic : Mac
My mom (late 60's) has been on Macs for years, and is now at the point that she installs firmware updates before breakfast, and nags her neighbors to secure their WAPs. But then, she's my mom, so you'd expect that of her. The only problem that's defeated her lately is getting and old XP craptop (needed to do accounting for her church) to connect to the wireless network, but I couldn't get it working either!
Actually, while the Eudaemonic Pie technique does work, it is actually pretty easy to detect once you know that it is possible. This is because it calls for making bets that cover a particular segment of the wheel, and the numbers in each segment are scattered. If someone consistently makes a bunch of scattered bets after the ball is in motion, it's easy to check if they cover a segment of the wheel, and if they do, the jig is up.
Worst case, the simple countermeasure is no bets after the ball is thrown.
I store my old code between my ears, in the wetware. When you've been programming as long as I have, you don't write code anymore -- you just remember it and type it in again...
Here's a simple technique I use for keeping all my card PINs straight.
I have one secret 4 digit number that I remember.
I subtract this number from the PIN for a card using modulo arithmetic.
I write the result on the back of the card.
So if my secret number is 9427 and the actual pin is 9876, I write down 0459.
Now I only have to remember one number for all of my cards, each card has a different PIN, and if the bad guys get my card and try the number helpfully written on the back, it won't work.
If only I could get my bank to use the adjusted number as a panic code...
I faced a similar decision last year. I needed to get some cameras to shoot robotic combat. Since I needed to have multiple camera angles, cost was a serious consideration.
I settled on the Panasonic PV-GS70D. It's their consumer 3-chipper, about $700-800 street. It doesn't have all the bells and whistles of the $3000 prosumer 3-chippers, but the video quality is damn close (close enough that a non-videophile audience won't notice, in particular after being compressed for DVD). And the bang-for-the-buck can't be beat; I got 5 of them, and usually have 4 filming the action.
Assuming the videos are a success (blatant plug: http://www.metalmunchingmaniacs.com/) I plan on moving up the the GR-HD10U prosumer HD camera ($3K+). It's a single chipper and people have noted some minor issues with chroma noise, but it's a progressive scan camera, and when you downconvert to standard video resolution the results should be stellar. It also has a 60p standard resolution mode that should be good for catching slow motion shots.
My wife and I are long-time TiVo devotees. We can't imagine TV without TiVo (you readers without TiVo, how can you call yourselves true slashdottians?)
Anyway, our commercial watching behavior is simple. We only watch the commercials that are interesting to us. Since we are not in the market for a truck, the Dodge Ram commercial gets skipped. And since I don't have a problem with feminine freshness, I rarely watch douche commercials.
But the paradoxical thing is, we *see* all the commercials, albeit at 30x speed. I never miss a commercial because I'm making a cup of tea while it is on, so I actually see more commercials than I did before TiVo. It's just that we only *watch* the ones that are interesting.
Also, we have noticed that those commercials (1-2 a night) that make it past the spam filter often influence us to buy something, because they are providing information that is useful to us. When my wife asks me to back up and replay a movie ad, it's a 95%+ shot we're going to see that movie (the creators of the new Ben Affleck SF flick will be delighted to know their message got through).
What I've suggested several times to the TiVo folks is that they define a couple of video flags that let advertisers mark the important frames in the ad so that they can make a more effective presentation of the ad at 30x and 60x speeds. This will make it easier for me to decide if I want to *watch* a commercial.
The next step for TiVo is to tag commercials with a "more info" button that jumps to a longer version of the commercial if there's one cached on the hard disc. That would be useful.
I've saved several HDs that refused to spin up, and given people the impression I'm a miracle worker, with this simple trick:
Absent smoke, 99% of the time the problem is stiction on the bearings. So I just turn the drive upside down and give it a few taps, and the drive will almost always spin up, because now the weight is on the other bearing.
I freaked out a friend, and saved his ass, by telling him to turn his computer upside down and hit it.
Needless to say, once you get the drive running, immediately back it up and throw it away.
* check out water birth. Sounds weird but my wife swears it greatly reduced the pain for her two deliveries. If your wife has a sense of humor, bring score cards (5.9, 5.9, 5.9 and a 5.6 from the east german nurse)
* get one of the little massage doohickies that is shaped like a ball, with 4 legs each with a small ball on the end. They are made out of wood. These are perfect for counterpressure massage on the back during delivery. Your wife will want counterpressure, and if you don't get one of these, your thumbs will have bruises on them.
* Keep the baby in the bedroom with you. If you are not comfortable with having it in the bed with you, mount the bassinette on a stand next to your wife's side of the bed so that when the baby declares it is feeding time, all she has to do is roll over, grab, and plug the kid in for a quick top-up. No getting out of bed. Trust me, this is a huge win; another reason why breast is best. After the first week, you'll sleep through the feedings. After the second week, SHE'LL sleep through the feedings. Plus, no need for a baby monitor, and if something does happen to the baby's breathing pattern, you WILL wake up.
* She handles input. You handle output.
* Some babies have trouble lying down after a feed, the milk backs up a bit. I built a small foam platform for our first that put him on a 10-degree angle, with little side bumpers to keep him from rolling off. Problem solved.
* When baby starts cruising (standing up and moving while holding on to things), if you want to get her walking, try this trick. Put two chairs close together with the seats facing. With baby standing holding one chair, get her to move to the other one (transferring her handholds). Go back and forth, slowly increasing the distance between chairs, and you'll be amazed at how quickly she learns to walk. Took me less than an hour to get my first up to the 5-6 step range. And best of all, since it is "scheduled" you can tape baby's first steps.
* If you can manage to sucker your wife into working while you take care of the kids, do it. In particular if you can work out of the house.
I actually worked on Real Genius (I managed to get them to make my credit "Hacking Consultant"). They were going to use a game I wrote (Wizardry) in one of the scenes, but it got left on the cutting room floor.
The scene where they are decoding the targeting database ("is it vectors? is it a bitmap?") was based on a suggestion I made, though the actual displays were done by someone else. I also caught a couple of science errors in the script that were not critical to the plot.
There were a couple of geeky scenes in the original script that didn't make it to the final cut that were so gross that they would have revolted everyone in america except people like us. If they ever did get filmed, I hope they put them out on a DVD, in particular the "got a cup?" joke [don't ask]
I've suggested to TiVo a couple of times that they make a minor tweak to their software and publish a protocol that lets advertisers mark (using one of the vertical blank lines) the frames that constitute the start of a commercial and the important frames.
Then as I FF (I use the second level) through the commercial break, instead of seeing random frames from the commercial, I'll see the frames the advertiser wants me to see. And if I hit play, TiVo will know where to rewind to in order to show me the commercial that interested me.
Everyone wins; I don't waste any time (FF speed is the same as before) watching commercials that don't interest me. Advertisers get a chance to interest me. And TiVo gets a valuable new income stream -- market research. They learn, for example, that families with 43 year old white males rarely are interested in douche ads during Farscape.
Taking this a step further, future TiVo devices could shuffle the ads, replacing ads that it is clear that my family won't be interested in with ones that we might be, sort of what google does with their adwords.
No downside for us in this. The zip through the commercials time isn't changed. Because let us face it, what we hate are not commercials, but commercials we are not interested in.
As a side note, one downside of the TiVo FF (even when not at fastest speed) is that I tend to miss ads for upcoming programs that might interest me. This would really help with that.
Perhaps instead of putting stamps on email (and the complicated charging structure it entails), we should instead consider a "Good Emailing Seal of Approval" using a encryption-based reputation system.
Consider the following idea (this is off the top of my head, so it's very "alpha" in nature).
Email senders (end users, isps, whatever) go to a central registration organization and buy a Seal of Approval. Maybe it costs them $50. The certificate can be anonymous if that's desired, though legit emailers will want to provide information about themselves. The money goes to pay for the registrar's services, with any extra being used to hound spammers in court.
OK, let's say Alice wants to email Bob. Every machine along the mail transport path that is part of the scheme (not all have to be) tags the email with an X-header that encrypts their ip address, date/time and the message ID (and perhaps the original sending email address) using their certificate. Effectively, it's a certified version of the Received: line.
When Bob gets the email, his mailreader can now look at these headers. There might be one from Alice's mailreader and one from her ISP's mailserver that she contacted to send the mail. Or perhaps Alice doesn't have a certificate yet, but her ISP does (or vice-versa). It doesn't really matter.
Bob can now use those certificates to do a lookup on the central registration org (perhaps using a DNSBL-type mechanism) to see if they are valid, and get an idea of the reputation of the sender (and the path to him). He can use that, in conjunction with other spam filters, to decide what to do with the email. It's just another data point.
How is the reputation generated? Easy. Bob helps do that. If he puts an email into a special spam folder (or perhaps there's a special "report these emails as spam" command), his mailreader will tell the registrar he thinks Alice is a spammer. If he reads the email, but doesn't report an email as spam, his mailreader will tell the registrar he thinks Alice is OK.
Very quickly, the registrar will be able that Alice is spamming. At which point, the word is out on Alice. Sure, she can buy another certificate. Great. Let her waste her money and support the legal harrassment of her fellow spammers (because 99% of the time, by the time Bob downloads one of her spams using the latest certificate she bought, she'll already be tagged as a spammer).
Note some of the interesting side effects of this system:
* Mailing Lists are not affected.
* No infrastructure costs inflicted on those who don't want to use it.
* Doesn't depend on everyone rating their emails.
* Hard to abuse. If you're a legit mailer (like, say, Amazon) or mailing list operator, even a big group of people who decide they don't like your politics can't overwhelm the even bigger group of people who think you're legit. And since every rater has their own certificate, they'll self-select for good people. Very few people will pay $ to be a jerk.
* ISPs can vouch for their customers, so they don't have to buy certificates themselves. ISPs won't want their certificates to get a bad rap, so they'll police their users better. It won't cost good ISPs anything, their good users will overwhelm the bad ones. But note all that info in the header. That all gets reported to the registrar when an email is reported as spam. And if the registrar turns it over to the owner of the certificate, now the ISP knows which one of his customers is being a jerk, and can cut him off at the knees.
* It permits -- if the sender so desires -- the sender's identity to be a bit more verifiable than currently possible, in particular if certificates were available (for more $) that had some documentation on the owner (such as is done with SSL certs [yeah, I know that's not perfect]). It also would provide, as a side effect, a way to do digital change-of-email-address lookups.
* It provides a method of doing whitelisting.
* It provides a method for detecting spoofed headers.
* And it provides an extra data point useful when aggressively filtering spam. So when that email from your boss comes in asking whether he should invest in a Nigerian banking opportunity, even though your bayesian filter and your keyword filter are going TILT!, the fact that it appears to be coming from a trusted source means you'll probably read it, and save the company.
Veterans of the PLATO system (you know, the place where networked notesfiles (usenet), irc, instant messaging and multiplayer games were invented 30 years ago) will remember animated emoticons being created in the early '70s.
PLATO terminals had a 512x512 pixel screen, and one could create typeable strings that could backspace, super and subscript, and overprint (in AND or OR mode) characters. Numerous versions of smileys were created that actually looked like little smiling faces, and not sideways either.
If anyone used:-) on PLATO, they would have been scolded for being uncreative.
In the late '80s, early '90s, I wrote a suite of scripts for the MicroPhone terminal app that implemented "Cant the RoboCleric" on the Gemstone multiplayer adventure game on GEnie.
RoboCleric totally automated the character. He would run around the wilderness, killing monsters and taking their goodies (but politely not stealing kills from other players), helpfully heal the sick and raise the dead, and (more importantly), answer questions about the game from an extensive list of questions and answers. GemStone had built-in instant messaging, of course.
RoboCleric not only answered people's questions, it ran around the game looking for people to help.
As one of the original authors of Wizardry, one of the nicest rewards of writing the game is reading comments such as these.
Does anyone know where Andy Greenberg and Robert Woodhead are these days?
You can find out what happened to me (Trebor) at the family website, MadOverlord.com. Andy lives in Florida with his wife and two children, where he "hacks the law". He reads/. so I'll let him reply himself.
In wizardry I, don't forget the really good Bishop cheat. Create a Bishop (need right mix of stats), and then identify item 9 until you succeed.
This was caused by a simple bug in a check statement:
if (ch >= "1") or (ch <="8") then..do the identify..
It should have been an "and", of course. So you could type in any character, and since we'd disabled boundschecking on Apple Pascal, it would twiddle bits at various offsets. Someone once sent me a list of what every typeable key would do.
When we did the IBM PC version (which also ran Apple Pascal, btw), we deliberately left the bug in, for reasons of tradition. Thus we confidently lay claim to originating the concept of "It's not a bug, it's a feature" that later made Bill Gates billions.
We wrote Apple Pascal interpreters for the PC, a bunch of japanese machines, and the C64/128. Wizardry 4 was written on a NEC 9801 machine, it would boot into PCDOS, then you'd type a command line and see "Welcome to Apple Pascal" (and yes, we bought a copy of Apple Pascal to run on it).
I can't remember whether it was Trebor or Werdna (or both) who wrote it, but there was a game on the PLATO network (circa '79 or '80) called "Oubliette" that nearly caused me to flunk out of law school.
Both Andy and I were active on the PLATO system, which was a tremendous influence on us. PLATO had email, chat, newsgroups, multiplayer realtime game, and much more, all starting in the early 70's. The multiplayer dungeon games were particularly good. Pretty much all of the basic concepts of multiplayer gaming were developed there.
Wizardry was in many ways our attempt to see if we could write a single-player game as cool as the PLATO dungeon games and cram it into a tiny machine like the Apple II.
They had close ties to the SCA Group Northern Outpost, and I was at an SCA event when I saw the white Corvette with the tag "Wizardry"
That was mine. I was never a member of the SCA, however. But they were active at Risley Hall at Cornell, where Andy lived. I don't recall if he was a SCAdian. PS: I'm not nearly as dorky as I was back then.
i have wizadry I (proving grounds of the mad overlord), in the box
IIRC, Wizardry was the first home computer game, and possibly the first home computer program, to be sold in a box. Before that it was all ziploc bags and binders.
1) an immune system cell gobbles the nasty virus or microbe.
2) it chops up the viral genome into little chunks of various sizes
3) the chunks are presented for recognition.
Now adapt this to a net-based system:
1) people get spam; they forward emails they definitely consider to be spam to spamocyte.com (or whatever), where it is chopped up into various overlapping chunks and the chunks are checksummed.
2) mtas pick random chunks from each email and send them off to spamocyte.com (or a local copy/cache of the database) for checking.
Problems: 1) spammers can mutate emails via a madlibs engine much more than natural viruses can mutate their genome. 2) bandwidth issues.
Still, I think it's an approach worth considering.
I find it truly amusing that the 150 msec time quoted is very similar to the results of research done on the PLATO system 30 years ago. They found that the limit for interactivity was about 100 msec.
PLATO was one of the first nationwide timesharing systems. Lots of things people take for granted these days (like netnews, multiplayer games, chat, and tons more) were pretty much invented on PLATO -- and it ran on terminals that had 512x512 resolution flat panel plasma displays, programmable character sets, line drawing, etc; and it all ran over 1200 baud modems.
As of 11:51 EST, Slashdot carves another notch into the stock of its traffic shotgun.
HTTP Error 403
403.9 Access Forbidden: Too many users are connected
This error can be caused if the Web server is busy and cannot process your request due to heavy traffic. Please try to connect again later.
Please contact the Web server's administrator if the problem persists.
*smirk*
I'm a hosting newb -- been running my own servers since last century -- but finally had a situation (wife decreed that company website needed updating, so I got into drupal) where hosting made sense. When it came time to move the site from testing using MAMP to hosting, I did the research and went with HotDrupal.com, which is a part of Holistic Solutions.
http://www.hotdrupal.com/plans.html
They seem to be doing things right. They don't overload their servers, they use fast hard drives, they make backups (though of course, I keep my own shadow!), and so on.
But here's the kicker: their tech support is absolutely superb. I mean, as a hosting newb I needed some handholding, especially since there were some unusual configuration issues due to legacy stuff I had to support.
Without a doubt, these guys gave me the best tech support I've ever received in over 35 years in the business. When he's not doing other things, the big kahuna himself, Steve, does frontline tech support.
You know how when you put in a ticket, you keep thinking about the problem, and then the solution comes to you, and then tech support gets back to you a few hours/days later with the same answer? Well, in this case, I was coming up with the answer, logging on, and finding that they'd beaten me to it.
The only ticket they failed to answer to my satisfaction was the one that asked "Where can I send you guys some beer and pizza money as a thankyou?"
Absolutely a no-brainer if you'd doing anything Drupal or LAMP/MAMP/WAMP-related.
Allow me to speak from experience - VERO is pretty much useless as a method for evil companies to enforce despotic control over the masses. In terms of furthering my nefarious plans for World Domination, it's been a total bust.
EBay hosts many auctions of bootlegs of many of the films (anime, samurai stuff) for which my company, AnimEigo, is the US licensor (turning you all into malleable Otaku will definitely get me closer to the aforementioned end-state of World Domination). At one point, we tried using VERO to cancel these auctions. It was a total waste of time.
1) After being VERO'd, the bootleg vendor would simply put up another auction. It was a game of whack-a-mole, and they had more time to play than I did. The time I wasted -- I could have spent it on the Orbital Mind Control Lasers.
2) The serious bootleg vendors would simply contest the VERO. At which point the rights-holder has to provide documentation that demonstrates that the property infringes their rights. And that, folks, takes time and money -- and I need that money, do you guys have any idea how expensive it is to build and maintain a Secret Lair?
So my advice to people who want to sell E-Meters is to contest the VERO; it requires only 10 minutes of your time filling out a form and faxing it off, and will cost the COS a considerable amount of money to take to the next step. Now, they may decide that it's worth it to them to do that, but hey, that's money they can't spend on other things - and keep in mind that for them, World Domination is a serious business, not just a hobby like it is for me.
The real point of VERO is to protect eBay from lawsuits by rights-holders.
Take your bucket of old hard drives to a Combat Robotics event (for a list of upcoming ones, see http://www.buildersdb.com/) and watch them get turned into shrapnel.
We also recycle a wide range of other consumer goods, from printers to refrigerators.
Obviously there is a balance to be had when documenting your code. For me, commenting is a literary endeavor; good comments should explain exactly what the code does, explain anything that's non-obvious, proudly point out your brilliant insights, and own up to any sleazy hacks that you were forced to perform - and do so in an elegant and entertaining manner. The ideal comments are those that allow your audience (even if it's just an audience of one, you) to understand what your code does without boring them to tears. This helps the comments do what they are supposed to do: explain what your code does, and reduce the number of "WTF?" moments your readers have (it is particularly embarrassing when you are the reader going WTF?!). They will also remind you, when maintaining your code, of both your mad skilz and the stuff you really need to make more refined before anyone else sees it and thus realizes what a kludgemaster you really are.
As a rule of thumb, you should probably have as many comment lines as code lines, but they will be clumped in particular areas. Of course, YMMV.
A bit OT: a previous poster wrote: "And each time I see those nuggets of perfection, I snag them. They get added to my pile of code samples for later use. Either in a straight copy or as a foundation of an idea that gets recoded, depending on license requirements."
This reminded me that old programmers don't write code, they just remember it and type it in again. Though I doubt I'll have to remember any 6502 code anytime soon, a pity since it was such an elegant little instruction set.
Best,R
Go to your local GameStop and ask if they're running a waitlist. If so, get on it. They usually don't advertise they're doing it, you have to ask. Last year the regional manager of our local GameStop ran one for Wii's, and sent out weekly emails telling us where we were on the queue, and when we could reasonably expect to get the Wii. 3 weeks later, email comes in saying "Go to the store the day after tomorrow". Went, got Wii, kids happy, no hassles, and GameStop now gets all their business. Win win all around.
It's like I alway tell them - "You don't ask, you don't get"
As a veteran of the first copy protection wars, let me give you one simple insight that should guide you:
"Thieves don't buy"
Software thieves will not pay for your software, no matter how much you lock it up. If they can't get a cracked copy or code, 99.44% of them won't use it. It doesn't matter if they still live with their parents, or are the CEO of a big company; thieves don't buy.
Thus, you must tailor your strategy towards supporting your non-thief customers, while minimizing the parasitic cost of the thieves.
Consider doing this:
* Require registration for support, not for running the program. If they run an unregistered copy (ie: no serial number), give them full functionality but remind them how to pay on startup, gently. Perhaps do it only when you do the weekly update check, or whatever. Support is your major marginal cost, so you want to try and avoid giving support to the thieves.
* Phone home to check for updates, but continue to run no matter what. If the phone-home does detect a registration conflict, alert the user ("someone may have stolen your registration number") but continue to run.
* Explicitly disclose what your phone home does, and allow the user to disable it, or the registration check, if they so desire.
* Provide a way for your legit users to get logs of the phone-home information. Say their laptop gets stolen; the IP address logged on the phone-home could mean it gets recovered, you're a hero, and have a customer for life. But have strong data privacy rules about the information and how long it gets retained.
* If you have a product with low/no marginal costs, consider letting your users decide how much to pay you (works best with small ticket items). See http://tipping.selfpromotion.com/ for an essay I wrote on this some years back.
* Always remember to add the clause to your software license that makes Bill Gates promise to become your towel-boy.
The easier you make it for your honest users to pay you, and the more helpful you are to them, the more you will be paid.
You are a computer geek.
Your mom asks you what computer to buy.
You *know* you will be on the hook for free tech support.
What computer you recommend depends on your personality.
Suicidal : Linux, custom install
Masochistic : Windows
Sadistic : Windows
Realistic : Mac
My mom (late 60's) has been on Macs for years, and is now at the point that she installs firmware updates before breakfast, and nags her neighbors to secure their WAPs. But then, she's my mom, so you'd expect that of her. The only problem that's defeated her lately is getting and old XP craptop (needed to do accounting for her church) to connect to the wireless network, but I couldn't get it working either!
Actually, while the Eudaemonic Pie technique does work, it is actually pretty easy to detect once you know that it is possible. This is because it calls for making bets that cover a particular segment of the wheel, and the numbers in each segment are scattered. If someone consistently makes a bunch of scattered bets after the ball is in motion, it's easy to check if they cover a segment of the wheel, and if they do, the jig is up.
Worst case, the simple countermeasure is no bets after the ball is thrown.
I've been doing this for years on one of my sites, with great success. Here's an article I wrote back in Y2K on how
it works..
http://tipping.selfpromotion.com/
Their twist for dead-tree pricing, cost+the tip, is a nice refinement. It'll be interesting to see how it works out.
I store my old code between my ears, in the wetware. When you've been programming as long as I have, you don't write code anymore -- you just remember it and type it in again...
Here's a simple technique I use for keeping all my card PINs straight.
I have one secret 4 digit number that I remember.
I subtract this number from the PIN for a card using modulo arithmetic.
I write the result on the back of the card.
So if my secret number is 9427 and the actual pin is 9876, I write down 0459.
Now I only have to remember one number for all of my cards, each card has a different PIN, and if the bad guys get my card and try the number helpfully written on the back, it won't work.
If only I could get my bank to use the adjusted number as a panic code...
I faced a similar decision last year. I needed to get some cameras to shoot robotic combat. Since I needed to have multiple camera angles, cost was a serious consideration.
I settled on the Panasonic PV-GS70D. It's their consumer 3-chipper, about $700-800 street. It doesn't have all the bells and whistles of the $3000 prosumer 3-chippers, but the video quality is damn close (close enough that a non-videophile audience won't notice, in particular after being compressed for DVD). And the bang-for-the-buck can't be beat; I got 5 of them, and usually have 4 filming the action.
Assuming the videos are a success (blatant plug: http://www.metalmunchingmaniacs.com/) I plan on moving up the the GR-HD10U prosumer HD camera ($3K+). It's a single chipper and people have noted some minor issues with chroma noise, but it's a progressive scan camera, and when you downconvert to standard video resolution the results should be stellar. It also has a 60p standard resolution mode that should be good for catching slow motion shots.
There's a cute trick you can use to do impromptu steadicam work.
All you need is a tripod (the heavier the better).
Collapse the legs so they are as short as possible.
Make a peace sign with your hand.
Use those two fingers, curled up (palm up) to hold the tripod under the camera base, so the whole thing is supported on the tips of your two fingers.
The weight of the tripod legs will put the center of mass under the support point (your fingers).
Your arm muscles, tendons and ligaments make natural dampeners.
I've use this several times with good results.
My wife and I are long-time TiVo devotees. We can't imagine TV without TiVo (you readers without TiVo, how can you call yourselves true slashdottians?)
Anyway, our commercial watching behavior is simple. We only watch the commercials that are interesting to us. Since we are not in the market for a truck, the Dodge Ram commercial gets skipped. And since I don't have a problem with feminine freshness, I rarely watch douche commercials.
But the paradoxical thing is, we *see* all the commercials, albeit at 30x speed. I never miss a commercial because I'm making a cup of tea while it is on, so I actually see more commercials than I did before TiVo. It's just that we only *watch* the ones that are interesting.
Also, we have noticed that those commercials (1-2 a night) that make it past the spam filter often influence us to buy something, because they are providing information that is useful to us. When my wife asks me to back up and replay a movie ad, it's a 95%+ shot we're going to see that movie (the creators of the new Ben Affleck SF flick will be delighted to know their message got through).
What I've suggested several times to the TiVo folks is that they define a couple of video flags that let advertisers mark the important frames in the ad so that they can make a more effective presentation of the ad at 30x and 60x speeds. This will make it easier for me to decide if I want to *watch* a commercial.
The next step for TiVo is to tag commercials with a "more info" button that jumps to a longer version of the commercial if there's one cached on the hard disc. That would be useful.
I've saved several HDs that refused to spin up, and given people the impression I'm a miracle worker, with this simple trick:
Absent smoke, 99% of the time the problem is stiction on the bearings. So I just turn the drive upside down and give it a few taps, and the drive will almost always spin up, because now the weight is on the other bearing.
I freaked out a friend, and saved his ass, by telling him to turn his computer upside down and hit it.
Needless to say, once you get the drive running, immediately back it up and throw it away.
* check out water birth. Sounds weird but my wife swears it greatly reduced the pain for her two deliveries. If your wife has a sense of humor, bring score cards (5.9, 5.9, 5.9 and a 5.6 from the east german nurse)
* get one of the little massage doohickies that is shaped like a ball, with 4 legs each with a small ball on the end. They are made out of wood. These are perfect for counterpressure massage on the back during delivery. Your wife will want counterpressure, and if you don't get one of these, your thumbs will have bruises on them.
* Keep the baby in the bedroom with you. If you are not comfortable with having it in the bed with you, mount the bassinette on a stand next to your wife's side of the bed so that when the baby declares it is feeding time, all she has to do is roll over, grab, and plug the kid in for a quick top-up. No getting out of bed. Trust me, this is a huge win; another reason why breast is best. After the first week, you'll sleep through the feedings. After the second week, SHE'LL sleep through the feedings. Plus, no need for a baby monitor, and if something does happen to the baby's breathing pattern, you WILL wake up.
* She handles input. You handle output.
* Some babies have trouble lying down after a feed, the milk backs up a bit. I built a small foam platform for our first that put him on a 10-degree angle, with little side bumpers to keep him from rolling off. Problem solved.
* When baby starts cruising (standing up and moving while holding on to things), if you want to get her walking, try this trick. Put two chairs close together with the seats facing. With baby standing holding one chair, get her to move to the other one (transferring her handholds). Go back and forth, slowly increasing the distance between chairs, and you'll be amazed at how quickly she learns to walk. Took me less than an hour to get my first up to the 5-6 step range. And best of all, since it is "scheduled" you can tape baby's first steps.
* If you can manage to sucker your wife into working while you take care of the kids, do it. In particular if you can work out of the house.
Enjoy.
I actually worked on Real Genius (I managed to get them to make my credit "Hacking Consultant"). They were going to use a game I wrote (Wizardry) in one of the scenes, but it got left on the cutting room floor.
The scene where they are decoding the targeting database ("is it vectors? is it a bitmap?") was based on a suggestion I made, though the actual displays were done by someone else. I also caught a couple of science errors in the script that were not critical to the plot.
There were a couple of geeky scenes in the original script that didn't make it to the final cut that were so gross that they would have revolted everyone in america except people like us. If they ever did get filmed, I hope they put them out on a DVD, in particular the "got a cup?" joke [don't ask]
I've suggested to TiVo a couple of times that they make a minor tweak to their software and publish a protocol that lets advertisers mark (using one of the vertical blank lines) the frames that constitute the start of a commercial and the important frames.
Then as I FF (I use the second level) through the commercial break, instead of seeing random frames from the commercial, I'll see the frames the advertiser wants me to see. And if I hit play, TiVo will know where to rewind to in order to show me the commercial that interested me.
Everyone wins; I don't waste any time (FF speed is the same as before) watching commercials that don't interest me. Advertisers get a chance to interest me. And TiVo gets a valuable new income stream -- market research. They learn, for example, that families with 43 year old white males rarely are interested in douche ads during Farscape.
Taking this a step further, future TiVo devices could shuffle the ads, replacing ads that it is clear that my family won't be interested in with ones that we might be, sort of what google does with their adwords.
No downside for us in this. The zip through the commercials time isn't changed. Because let us face it, what we hate are not commercials, but commercials we are not interested in.
As a side note, one downside of the TiVo FF (even when not at fastest speed) is that I tend to miss ads for upcoming programs that might interest me. This would really help with that.
Perhaps instead of putting stamps on email (and the complicated charging structure it entails), we should instead consider a "Good Emailing Seal of Approval" using a encryption-based reputation system.
Consider the following idea (this is off the top of my head, so it's very "alpha" in nature).
Email senders (end users, isps, whatever) go to a central registration organization and buy a Seal of Approval. Maybe it costs them $50. The certificate can be anonymous if that's desired, though legit emailers will want to provide information about themselves. The money goes to pay for the registrar's services, with any extra being used to hound spammers in court.
OK, let's say Alice wants to email Bob. Every machine along the mail transport path that is part of the scheme (not all have to be) tags the email with an X-header that encrypts their ip address, date/time and the message ID (and perhaps the original sending email address) using their certificate. Effectively, it's a certified version of the Received: line.
When Bob gets the email, his mailreader can now look at these headers. There might be one from Alice's mailreader and one from her ISP's mailserver that she contacted to send the mail. Or perhaps Alice doesn't have a certificate yet, but her ISP does (or vice-versa). It doesn't really matter.
Bob can now use those certificates to do a lookup on the central registration org (perhaps using a DNSBL-type mechanism) to see if they are valid, and get an idea of the reputation of the sender (and the path to him). He can use that, in conjunction with other spam filters, to decide what to do with the email. It's just another data point.
How is the reputation generated? Easy. Bob helps do that. If he puts an email
into a special spam folder (or perhaps there's a special "report these emails as spam" command), his mailreader will tell the registrar he thinks Alice is a spammer. If he reads the email, but doesn't report an email as spam, his mailreader will tell the registrar he thinks Alice is OK.
Very quickly, the registrar will be able that Alice is spamming. At which point, the word is out on Alice. Sure, she can buy another certificate. Great. Let her waste her money and support the legal harrassment of her fellow spammers (because 99% of the time, by the time Bob downloads one of her spams using the latest certificate she bought, she'll already be tagged as a spammer).
Note some of the interesting side effects of this system:
* Mailing Lists are not affected.
* No infrastructure costs inflicted on those who don't want to use it.
* Doesn't depend on everyone rating their emails.
* Hard to abuse. If you're a legit mailer (like, say, Amazon) or mailing list operator, even a big group of people who decide they don't like your politics can't overwhelm the even bigger group of people who think you're legit. And since every rater has their own certificate, they'll self-select for good people. Very few people will pay $ to be a jerk.
* ISPs can vouch for their customers, so they don't have to buy certificates themselves. ISPs won't want their certificates to get a bad rap, so they'll police their users better. It won't cost good ISPs anything, their good users will overwhelm the bad ones. But note all that info in the header. That all
gets reported to the registrar when an email is reported as spam. And if the
registrar turns it over to the owner of the certificate, now the ISP knows which
one of his customers is being a jerk, and can cut him off at the knees.
* It permits -- if the sender so desires -- the sender's identity to be a bit more verifiable than currently possible, in particular if certificates were available (for more $) that had some documentation on the owner (such as is done with SSL certs [yeah, I know that's not perfect]). It also would provide, as a side effect, a way to do digital change-of-email-address lookups.
* It provides a method of doing whitelisting.
* It provides a method for detecting spoofed headers.
* And it provides an extra data point useful when aggressively filtering spam. So when that email from your boss comes in asking whether he should invest in a Nigerian banking opportunity, even though your bayesian filter and your keyword filter are going TILT!, the fact that it appears to be coming from a trusted source means you'll probably read it, and save the company.
Best,R
Veterans of the PLATO system (you know, the place where networked notesfiles (usenet), irc, instant messaging and multiplayer games were invented 30 years ago) will remember animated emoticons being created in the early '70s.
:-) on PLATO, they would have been scolded for being uncreative.
PLATO terminals had a 512x512 pixel screen, and one could create typeable strings that could backspace, super and subscript, and overprint (in AND or OR mode) characters. Numerous versions of smileys were created that actually looked like little smiling faces, and not sideways either.
If anyone used
R
In the late '80s, early '90s, I wrote a suite of scripts for the MicroPhone terminal app that implemented "Cant the RoboCleric" on the Gemstone multiplayer adventure game on GEnie.
RoboCleric totally automated the character. He would run around the wilderness, killing monsters and taking their goodies (but politely not stealing kills from other players), helpfully heal the sick and raise the dead, and (more importantly), answer questions about the game from an extensive list of questions and answers. GemStone had built-in instant messaging, of course.
RoboCleric not only answered people's questions, it ran around the game looking for people to help.
As one of the original authors of Wizardry, one of the nicest rewards of writing the game is reading comments such as these.
/. so I'll let him reply himself.
..do the identify..
Does anyone know where Andy Greenberg and Robert Woodhead are these days?
You can find out what happened to me (Trebor) at the family website, MadOverlord.com. Andy lives in Florida with his wife and two children, where he "hacks the law". He reads
In wizardry I, don't forget the really good Bishop cheat. Create a Bishop (need right mix of stats), and then identify item 9 until you succeed.
This was caused by a simple bug in a check statement:
if (ch >= "1") or (ch <="8") then
It should have been an "and", of course. So you could type in any character, and since we'd disabled boundschecking on Apple Pascal, it would twiddle bits at various offsets. Someone once sent me a list of what every typeable key would do.
When we did the IBM PC version (which also ran Apple Pascal, btw), we deliberately left the bug in, for reasons of tradition. Thus we confidently lay claim to originating the concept of "It's not a bug, it's a feature" that later made Bill Gates billions.
We wrote Apple Pascal interpreters for the PC, a bunch of japanese machines, and the C64/128. Wizardry 4 was written on a NEC 9801 machine, it would boot into PCDOS, then you'd type a command line and see "Welcome to Apple Pascal" (and yes, we bought a copy of Apple Pascal to run on it).
I can't remember whether it was Trebor or Werdna (or both) who wrote it, but there was a game on the PLATO network (circa '79 or '80) called "Oubliette" that nearly caused me to flunk out of law school.
Both Andy and I were active on the PLATO system, which was a tremendous influence on us. PLATO had email, chat, newsgroups, multiplayer realtime game, and much more, all starting in the early 70's. The multiplayer dungeon games were particularly good. Pretty much all of the basic concepts of multiplayer gaming were developed there.
Wizardry was in many ways our attempt to see if we could write a single-player game as cool as the PLATO dungeon games and cram it into a tiny machine like the Apple II.
They had close ties to the SCA Group Northern Outpost, and I was at an SCA event when I saw the white Corvette with the tag "Wizardry"
That was mine. I was never a member of the SCA, however. But they were active at Risley Hall at Cornell, where Andy lived. I don't recall if he was a SCAdian. PS: I'm not nearly as dorky as I was back then.
i have wizadry I (proving grounds of the mad overlord), in the box
IIRC, Wizardry was the first home computer game, and possibly the first home computer program, to be sold in a box. Before that it was all ziploc bags and binders.
Best
R
Consider the way mammilian immune systems work:
1) an immune system cell gobbles the nasty virus or microbe.
2) it chops up the viral genome into little chunks of various sizes
3) the chunks are presented for recognition.
Now adapt this to a net-based system:
1) people get spam; they forward emails they definitely consider to be spam to spamocyte.com (or whatever), where it is chopped up into various overlapping chunks and the chunks are checksummed.
2) mtas pick random chunks from each email and send them off to spamocyte.com (or a local copy/cache of the database) for checking.
Problems: 1) spammers can mutate emails via a madlibs engine much more than natural viruses can mutate their genome. 2) bandwidth issues.
Still, I think it's an approach worth considering.
I find it truly amusing that the 150 msec time quoted is very similar to the results of research done on the PLATO system 30 years ago. They found that the limit for interactivity was about 100 msec. PLATO was one of the first nationwide timesharing systems. Lots of things people take for granted these days (like netnews, multiplayer games, chat, and tons more) were pretty much invented on PLATO -- and it ran on terminals that had 512x512 resolution flat panel plasma displays, programmable character sets, line drawing, etc; and it all ran over 1200 baud modems.
As of 11:51 EST, Slashdot carves another notch into the stock of its traffic shotgun. HTTP Error 403 403.9 Access Forbidden: Too many users are connected This error can be caused if the Web server is busy and cannot process your request due to heavy traffic. Please try to connect again later. Please contact the Web server's administrator if the problem persists. *smirk*