Stories
Slash Boxes
Comments

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

scrottie (4167)

scrottie
  scott@slowass.net
http://slowass.net/

My email address is scott@slowass.net. Spam me harder! *moan*

Journal of scrottie (4167)

Friday May 02, 2008
01:28 AM

"The Singularity" is stupid and Ray is an idiot

Dear programmers,

You should know better. When they show futuristic computer interfaces on Hollywood, where "hacking" consists of clicking on a button, you laugh. That's not futuristic -- it's naive, of a bygone era. Yet you accept an equally contextually stripped view of AI.

Back to "hacking": rather than being simplified, computer security is the sum of all past knowledge, plus more. We chuckle at the days when you could sniff a connection and see plain text passwords float by. Now we're doing cryptanalysis and statistical models to predict where heap will be allocated because stacks have caneries. It's *more* complicated, not less.

Back to AI. There's tons of it floating around. Airlines use complex models to price tickets. Netflix and Amazon have complicated "preference engines". The drug industry datamines for drug interactions and compliance. Elevators, rice cookers, and small electric scooters run continuous optimization problems. Sure, it's not Wintermute, but anything resembling Wintermute will have a story that completely includes all of the past, present, and near future developments. It won't exist in a vaccum. I won't be like Terminator, where some guy is working in his beautiful suburban home trying to write an AI. It'll be a complex collusion between math, psychology, anthropology, various industries, and hobby, and it'll be an extremely complex story. And there will be no singularity.

To understand this, you need to stop romanticizing "free will" and "self awareness". A British TV programme comes to mind where ad consultants were hired and subconciously programmed with the ad they were going to made, and they did it. That's not to say that humans are predictable and completely programmable -- they're too complex to be -- but that's exactly the point. AIs of the future will be more complex, but there will be no magical point. Present AIs have shocked and surprised their creators -- GumbyBRAIN comes up with some amazing stuff, and computer generated art and music, and behavior studies, and that one neural net that learned to race cars aggressively all impress the hell out of us and surprise us.

Why do humans have "free will"? Because looking out for our own interests rather than those higher on the pecking order, even if only in fits and bursts and in little rebellions, is beneficial to our own survival and the survival of our race.

Why do humans have "self awareness"? Basically the same reason -- if can't communicate a concept of self and aggressively protect it, our real, actual physical self would easily be lost and we wouldn't have offspring.

Here's another myth: humans have no instinct. Anthropology has a lot to say about that one. Then there's psychology. How many ads have you seen today that use sex to sell something? But it goes much further than that -- what makes us feel safe, happy, anxious, and so on, all have roots in instinct. We are not perfectly self aware, universe aware beings waiting for software worthy of us. We're not that much better than the classification, clustering, optimizing, planning, regressing, associating algorithms we're snidely critiquing -- in performance we are, in design we aren't.

Here's my dystopia for you:

Humans will be slaves to machines, but not in the Google data center sense, where they walk around replacing components, at least not entirely. Instead, computers will have better and better models of us, like Netflix' preference engine, and humans controlling AIs will better able to enslave, manipulate, subdue, and repress populations of humans they've somehow gained governmental, military, or commercial domain over.

Computing will continue to become cheaper. People will do interesting things with it. If I knew what, I'd go do it now rather than blather at you. Tomorrow will be interesting enough that attempts to predict it from today will fail but that won't stop people from trying. We can only predict, from past experience, what won't happen. It's a lot easier to predict that there won't be flying cars in ten years than to predict what *will* happen in ten years.

Our sense of self preservation will send us seeking new lands and computers will help. Our sense of self preservation and our desire to preserve ourselves and form offspring will make any of us who move into computers losers. Read what Freakonomics had to say about the stupidity of powerful leaders *not* using their position for sexual gain -- it's this same misunderstanding that makes us think that if we get something we want (eternal life), we'll give up something else (real children). Yes, we'll move more and more of ourselves into the computer. Our LiveJournal pages will stay up long after we're dead. We'll have chatter bots programmed with our dialogue, and whatever more sophisticated things we come up with, but, even though a computer simulation of ourself might be perfect in every regard, we will reject it as a replacement.

Humans and machines will continue to become closer. I never would have predicted this love affair with cell phones. As machines do more and more useful, interesting, and entertaining things, we'll accept them into more roles. Right now, computers are doing a large part of the work of painting and animating the movies we watch. That thought would be laughable fifty years ago. ClearChannel uses mathematical models to decide how often and when to play stuff -- it's no accident they play that same crappy song five to six times a day. They do that to make you buy the album. Given enough repetition, you *will* go buy the album, for most values of "you". Who would have thought that we'd trust our decision of which music to listen to to some computer program? Dating isn't there yet but it will be, just as soon as I finish applying preference engine logic to the problem -- muahahaha. We can already email matches for a small fee. How long until it's just a phone call through an automated system, right to their phone, as we accept our increasingly computerized, connected state? Just as computers constrain us, they also let us express ourselves. Our own self value has always been driven by other people's value of us; we seek to impress people and to establish value in their eyes. Now we do that with funny animations, captioned cat cartoons, prose...

I think I better go.

-scott

Tuesday April 29, 2008
07:20 AM

an aggregation of myself

http://meta-me.org/feed.last.cgi?uid=scrottie&format=text

Specifically, I'm on Twitter and LiveJournal (active as of somewhat recently) too.

The meta-me thingie is pretty beta right now but feel free to play with it, to track your friends or help them track you. I might merge in the code from my more recent Twitter->LiveJournal gateway that batches and posts Twitter messages on LJ, and set meta-me up so that it'll batch and post data from your various feeds onto LJ and/or other places. RSS ain't done until it has feedback loops.

-scott
05:09 AM

Solaris in a nutsa^Hhell.

Not very often do I want to throw a book away, but I got a small pile of Solaris administration books hoping to finally be able to solve this riddle -- of how to make this crapware go. Well, the books are crapware for the most part. They wave hands at actually doing anything while coping and pasting man page documentation at you and introducing you to the basics of shell. None of these have almost anything to do with Solaris. So, in the interest of being able to chuck these, I'm compiling the few useful tidbits I can find in them, here. Normally I don't buy any book I can digest in one sitting at a bookstore/coffee shop like B&N (and then often pay retail price if I find myself white knuckle clutching the thing when I have to go), but I got these from half.com, so they came sight unseen. Here goes.

prtconf, sysdef, dmesg... touch /reconfigure. volrmmount -e zip0. /etc/init.d/volmgt stop. /dev/dsk. pkgadd, pkgrm, pkginfo. admintool. showrev -p; pkgparam PATCHLIST; patchadd -R -p; patchadd -p; smpatch. useradd, usermod, userdel. format. labelit, volcopy, fstyp, tunefs, mkfs. fuser. ps, pgrep, prstat, sdtprocess. smc -- Solaris Management Console. smc, smcron, smdiskless, smexec, smgropu, smlog, smmultiuser, smosservice, smprofile, smrole, smserialport, smuser, auths, profiles, roleadd, roles. ...

-scott
Saturday April 12, 2008
03:05 AM

To maintences programmers, all languages are the same

Yeah, it's a bold assertion because it flies in the face of so many gripes from so many people for so long. Take the dailywtf. "I'm maintaining this horrible ASP programming" or "the guy who worked here wrote this in Perl". I wrote earlier about about the rot of Phoenix.PM as the entire congregation defected leaving only maintenance programmers.

These are programs that have been driven into the ground. Fear of refactoring, having the wrong people calling the shots, and the wrong priorities turned them into dung. This can happy in any language. Java has now been around long enough that programmers written in Java have descent into chaos. I've seen them. I've been hired to hire Indian programmers and I insisted on reviewing code before hiring a firm. All of them had terrible voodoo chicken bones code that in 100 lines foreshadowed million line voodoo code projects. And it was all in Java.

A program in any language in a historically badly run project evolves to somewhere past point of insanity. No self respecting programmer will try to continue adding features at this point, accelerating the descent when companies hire novices to try to extend the dung heap. The good programmers are put on maintenance; they won't do anything else, and keeping the thing running is a challenge.

But you know this. What matters is that the economics completely change when the project goes to hell.

The expectations for a maintenance programmer are calibrated to the difficulty of the project. None of the schedules, deadlines, SLOC, milestones, or other productivity metrics apply. There are easy bugs and hard bugs and sometimes the hard bugs live for a very long time time. Doesn't matter if it's COBOL, Perl, Java, ASP, or what. The maintenance programmer proved himself over and over again to his employer, so the lack of metrics don't matter. He's woken up at insane hours, worked late, and traced down insanely involved problems keeping the whole thing wedge. But... the language doesn't matter. The difficulty of fixing problems doesn't vary. It's a matter of definition: the project grew in whatever language until its unmaintainable, where ever that is for the language, and then the good programmers are just keeping the boat afloat.

Phoenix.PM is almost entirely composed of maintenance programmers. Programmers who like to write new code left a long time ago. And that was in other languages, for the most part: Java, C++, Python, Ruby...

But as a maintenance programmer, you're not writing code. And if you're proficient in a language, you can read the code. The idiom doesn't matter. The idiom doesn't make you more or less efficient at hunting action-at-a-distance problems. The hard bugs aren't in the expressions, they're in the interactions between parts of the system... or the lack of parts of the system. The fact that Perl's syntax can be confusing is completely irrelevant to maintenance programmers. Those are the easiest bugs they encounter in their job.

So, the conclusion that could easily be drawn from reading the dailywtf... that Perl is horrible, because there's so much horrible Perl out there... is a fallacy. Or that ASP is horrible because there's so much bad ASP out there... in both cases, I suspect the real problem is that programs overgrew their design, weren't redesigned and refactored, and the good programmers were forced into maintenance by business need.

If you're a good programmer who likes writing code, you're forced away from entire languages. You're suddenly unable to touch Perl, as an employee, because the only jobs are maintenance or else adding features to a completely fucked system, which you won't do. A few dozen companies mismanaging projects ruined the market for you.

And, conversely, PR won't do any good for Perl. The only thing to do is... start new projects. CPAN modules are good, but "Web 2.0", or "dot com" or whatever businesses. Make stuff in it that people care about. Create new projects that'll require maintenance, perhaps, and might be easy to maintain, but regardless *aren't* maintenance gigs right now.

-scott

Sunday April 06, 2008
04:34 AM

what twitter-land is saying about Perl

I use Twitter. I like being able to tell my 1.5 friends where I'm at and having him maybe drop in on me. (God, I suck.) I found http://www.tweetscan.com and decided to search for mention of Perl, possibly to follow Perl users in the area, if I could find them. Here's a sample of what I got:

        ceri : remembering why I hate Perl

        PoBK : *Scream* This is why I HATE perl. There are no less, that 17 modules on CPAN to query domain Whois data! Seventeen!!!1oneeleven

ironsoap : We now come to the part of the show where I sing a little song about how much I hate Perl and its evil sibling Unicode.

calico : @mrballistic - re: DB-backed sites -yep, I worked with a company doing it with PERL backends and an Access DB back then - painful

neilfws : think the perl love affair might be over

jonsagara : I can't believe there are Web applications still written in Perl.

baseonmars : i want to stab perl in the head and make it's eyes bleed.

ba78 : "No one working on ES4 wants it to be like Perl 6." :)

chastell : ‘Perl style guide’. ahahaha *snort*.

neilfws : enough perl horror for today; need to go home and calm down

acdha : replacing hackish Perl with half as much better Python feels *so* good

etherjammer : @fadeaccompli, deep sympathy. - just occurred to me - are you going to have to learn Perl?

eosadler : @amndw2 Why perl? Consider trying ruby. "Learn to Program" by Chris Pine is a great intro book that I've been teaching from.

SlexAxton : Both of these return true in Perl: "Perl" eq "Perl" and "Perl" == "Dumb"

fortunetweet : There are worse things than Perl....ASP comes to mind

breathoffire : The whole "theres more than one way to do it" concept of perl can be tedious.

noahk17 : @bluesharpie5 So far everyone has said job #2. Perl is dead anyways. I'll be sure to tweet as soon as I hear something!!

mpstaton : @dweekly perl? isn't that so 2004?

offwhitemke : Primary experience example of less code is not better, Perl. ... to be fair, there were some positives mixed in, but the overwhelming negativity caught me be surprise. I'm trying not to be in denial about my language choices. This can't go without comment. Well, it could. My reply:

Perl haters: shut the hell up until you learn awk and sed, understand what they do that other languages don't, and why Perl took from them.

I know; boring old topic. Image changes like adding strong typing (typesafety.pm), publishing Best Practices, CPANTS, aren't going to change perceptions. How do we tell a whole generation of people first learning to program on purely procedural/OO languages what the *point* of Perl's existence is?

-scott
Friday March 28, 2008
10:27 PM

How to be productive at work, not yer papa's version

I spent a few years at web shops and watched new programmers come in. They fancied themselves great programmers; being young, they had a lot to prove. They didn't like how we did things. It was so stodgy and dated. But rather than show us how it's done, they... did nothing. Overwhelmingly, they crawled into a shell, where they maintained at least the imagined possibility that they're a great programmer trapped in a terrible company. My take on this is that they're afraid that if they ever tried to spread their wings, they might fall, then they'd be really embarrassed. Or it would take a few tries to get it right. Or it would be more difficult than they imagined. Or they'd get unlucky and be judged by their one failure.

Advice: get over yourself. Good programmers know what it's like starting out, and we're not keeping score. We don't force you into a strict regiment because we have faith that you'll eventually grow into the role, trial and error included. If you don't like the company you signed on to, then do this: really spread your wings and risk making mistakes, getting in over your head, breaking things, failing to implement designs, and so on. Make your mistakes there, learn your limits, and grow, and do it before you find yourself in another company, in a position of having to prove yourself. Were you defeated by some small, backwards, ASP using company? Why? Try to conquer them. Even if you fail, you'll learn countless valuable lessons in trying to take over companies -- and by take over, I mean steering technology in a positive direction, one of your own choosing.

Work boring you out of your mind? Selling widgets not engaging? Don't pretend. Ignore the hype about agile... widget selling. They probably have a lot of turn over from unmotivated programmers. Rather than trying to strike a compromise with their programmers making staying worth their while, they treat the programmers like they're stupid and try to convince them that selling widgets is the coolest thing out there. Rebel. If you're really good, you can spend half of your time working on fun projects and still your employer will still be far better off than if they hired some twit who didn't have a good work ethic anyway. Spend your time improving Perl. Releasing code as open source used internally. Generalizing processes so your competition can use the code. Make Perl faster so your employer can buy less hardware, and share the wealth with everyone. Re-interpret your own job title. Yes, companies hate this, but it's a fallacy for them to imagine that a brilliant programmer could be tricked or coerced into spending that same energy and passion... selling widgets.

Learn what all of the other groups do. Learn the reasons they don't like your group, which almost certainly exist even though programmers are shy about admitting them. Be a judas. Make connections there. Connections are good.

Spend a certain amount of time trying absolutely crazy schemes. Write code to heuristically identify in-lineable method calls, cross reference it with DProf output of which are frequently called, and inline them with B::Generate or Code::Splice (created for that purpose). It might not work. It might be absolutely terrible. But doing something hard the wrong way will almost certainly illuminate you as to the (or a more) correct way to think about the problem. And if you get stuck in the mindset that all attempts must be successful, you'll only go after the low hanging fruit, and the project will slowly collapse under its own weight. None of the hard refactors will be done. No serious overhauls will be made. No really new ideas will be incorporated. I've worked in Perl shops that were downright xenophobic about ideas from other camps -- and I attribute it to this "all programmer time must be accounted for, all projects must succeed" induced shell shock. Under a fascist regime, all new ideas look like bad ideas.

After you fail at something hard, or something crazy, you'll have motivation -- saving face -- to work on the boring stuff.

Working on the boring stuff isn't all bad either. That's often when the patterns with a general solution appear.

A general pattern to this blog post is companies who hire programmers at one level and expect them to work at exactly that level and stay at that level, like a cog. That's not good for you or them.

Here's a fun crazy thing: write parts of the system in a completely different language. People whine entirely too much about splatterings of different languages. If the Google programmers are so fucking smart, how come they can only cope with having Python, Java, and C++ around, and nothing else? Pussies.

Work other places than in your cube. To get the juices flowing, you have to break the routine. Sure, they don't let you on the 802.11, and if you put an AP under your desk, they'd hunt it down and destroy it and you with it. But they're probably not sniffing for Ricochet. Get some old STAR modems and set up your own wireless network. Or packet radio. Or any number of other technologies. Work in the company cafeteria. Pretend it's a coffee shop.

Get your work done in a marathon session at the start of the week then take the rest of the week off. Stop in on Friday to catch up on email and get a jump on planning the next week. I don't mean work really hard from 9-5 -- I mean pull allnighters.

Make friends with people who work for your competition. Your employer will hate this too, but it's very useful to break out of the "We The Company" mindset. I'm not sure why they pump that stuff on everyone as it's fundamentally destructive. Having some perspective on it all will help keep the stupidity from bogging you down. Perspective wards off depression.

Every now and then, get your coworkers involved in a little fragfest.

When your CTO does something stupid, blog publically (but anonymously if necessary) about how stupid the thing he/she did was. Don't think that just because they report directly to the share holders, they're immune from responsibility to the shareholders (fuck all why anyone would take that leap of logic anyway).

Find people you like there. The job will end for one of you and before you leave or he/she leaves, get to know them. Your future is far more wrapped up in good people than some mythical, imagined "good job".

-scott

Tuesday March 25, 2008
10:41 PM

Offtopic: Women.

Okay, guys. Letting things go and trying to smooth things over doesn't work. It's destructive. Counter-productive. No, don't snap the first time the women does something you don't like or stats nagging or bitching. And this isn't women vs. men. Here's the crux of the problem: when one gender starts pretending like bullshit isn't bullshit, they've sent an open invitation for more bullshit. They'll find that they're *always* wrong because the other gender is making the rules. It seriously sucked to be a women in the 1950's. Men made the rules, and the rules were arbitrary, set after the fact or made up on the spot (like Calvin Ball), and interpreted according to whim and agenda. If the 1950s male felt the female was being ditzy, absent, irresponsible, imprudent, or otherwise "unladylike", he'd become angry, solemn, reproachful, or some combination. There was no arguing it. The female simply had to wait for the wrath to pass and some figurative second chance to be extended.

Then we had women's lib, equality in the workplace, the divorce revolution, female sexual revolution, and so on. This is not all bad, no question. But some myths were created as waste during the process. Here's the king of them: that if a women feels injured, that the male did something wrong. No. Bullshit. People get hurt feelings for bad reasons perfectly often. Children have episodes where they act as if adults have some conspiracy against them and that's why they don't get the cookie they want or the toy they want. With a stern hand (not giving in at the threat of a tantrum), children eventually learn that them not getting the toy or food has to do with far more complicated affairs -- money, health, and just general education in emotional maturity, especially in not being manipulative and demanding. Of course, not all children have the benefit of this education. Some go through highschool or college without anyone every saying "no" to them. And for some bizarre reason, probably also a waste product of change in the past 50 years, the conceited, manipulative, self-important, obnoxious, demanding, pouting, crying, whining, spoiled female is currently in demand. What the hell? There are countless shades of grey aside from the extreme case and it would be impossible to enumerate all of them.

Now, men's desires are treated as illogical and childish -- the desire to own motorsports equipment, to hang out with their friends (play poker, or SJG Illuminati, or just drink beer). It's indulged with condescension. The state of the house is dictated by the female, with which furniture and decoration is desplayed vetted by them, and any evidence of a male presence virtually removed. The whole house is girlified. Video games are hidden. Behavior, action, and decision making is run by the female -- at least in the last several relationships I've seen -- with a few notable exceptions. All all, with the few exceptions, were extremely unhappy. The female was insecure because she had no way of knowing that the male's love was genuine or it was a duty/act, since it's largely forced and extracted. The male can't behave as he pleases in cases where it just doesn't fucking matter, but instead has to justify everything and get permission from a gender that can't understand male stuff (just as men can't be expected to understand make up, barbie dolls, and the elaborate social system of women). And everyone is unhappy.

I'm not encouraging a revolt, or a reversal. It comes down to this: say "no" sometimes, as it *makes sense*, not to push weight around. If the women loves you, she'll deal with it. If she starts pulling crap, call her on it. Don't pretend like bullshit isn't bullshit. If she just can't express her case, give her all of the chances to explain it and give her indulgence for strange behavior in the interium. But when she's bitching at you for something stupid, say no. Leave. Let her stew. Let *her* decide if *she's* willing to love you and *herself* look past behavior she can't understand. When she demonizes behavior she doesn't understand, explain as best as you reasonably can, but don't let her inability to understand dominate your behavior. It's possible to be loving, not do that bitch-ho crap, but not be a complete pussy either. Stand up for yourself. The women are doing it and the men haven't walked away. Each relationship is still going to have a leader, but it should be a kind, and not insecure, leader.

I write this because people I'm close to are suffering.

-scott
Saturday March 15, 2008
05:27 AM

Still pondering hosting: open SSILinux cluster?

Still pondering hosting. There's a colo in town that charges less than DSL, at $45/mo and I want to have some fun with it. So here's my latest...

Colocate one SSILinux x86 machine there, and through a re-seller deal or something, encourage others to send x86 machines to me to get
installed with SSILinux and added to the cluster.

If you're not familiar with SSILinux, it's a hacked up kernel that makes a bunch of machines on a LAN look like one big machine lots of RAM, CPUs, and storage. See also OpenMOSIX.

For your $50/month (or whatever), your machine gets added to the cluster, and you get a permissive account on the cluster (probably with some restricted sudo access). So, rather than just having a lame machine colocated somewhere, you have the shared resources of a supercomputer! (Exclamation point, exclamation point, exclamation point.)

I was toying with doing yet another free shells service, but I can't break away from the fundamental problems of not wanting to lock it way down (dissallow CGI, etc) but not having enough CPU resources in one machine to give out permissive shells.

Groups of users fearful of "the slashdot effect" (also known as the reddit effect, and so on) could band together. Not everyone's site could be hit at the same time, but the spare capacity could see one or two people through the storm.

And it's anti-isolationist. Sure, it's nice being root, but it's also nice having users (which I currently lack, almost entirely). They put mp3s of little local bands in their folders and you can swipe copies. You can help them with their code, and they can easily help you with yours, and everyone just generally checks out what everyone else is doing. Life is a beach =)

Some "community policy" stuff would have to be put into place. If anyone is using more than their fair share and doing so consistently (trying to crack passwords, whatever), they get booted off the cluster after a warning. If they're merely using more resources than they're contributing, perhaps they can be asked to add another machine or upgrade their existing one.

Unlike existing shared hosts, daemons would be allowed and expected. Enough IPs could be bought and the public interface aliased such that everyone who wanted to run a stupid IRC server could.

I got this 1.6ghz Celeron machine here to colocate running FreeBSD (having given up on the stability of free Unices on RISC hardware and having given up for the time being on Solaris and IRIX), but maybe I'll really slide back that way I don't want to go and run Linux on x86 (yech, yeck) just because clusters are cool.

Thoughts? Would *you* give up (most) root privileges to have your dedicated host be part of a growing supercomputer?

-scott

02:37 AM

scrottie's guide to Phoenix

In Phoenix for about ten years, I keep thinking I should do a review site. Phoenix is mostly a wasteland of endlessly repeating chain stores, but after long, hard, careful searching, a few gems have emerged. I'm cranky, and my annoyance at the sucky drives me to find the good, and this is the result of my effort. http://placestoseeinarizona.com/ is another excellent list (hey, I've done almost all of those things!) that focuses more on adventure and living life in AZ to the fullest. In no particular order:

Doctor: Your Neighborhood Doctor, Dr. Garcia, 6345 E. Bell Rd. Walk-in. I hate the whole "doctor's office" deal. Waiting an hour for a minute of someone's time who doesn't listen and then abruptly vanishes without warning is pointless and humiliating. I really can't explain the Your Neighborhood Doctor other than to say that they just don't do that, pointedly so. It's like the story where you walk into the executive office to have a confrontation with the CEO, find yourself confronted with an intelligent, sympathetic, thoughtful person, who turns out to be the janitor -- except in this case, he isn't the janitor.

Optometrist: Horowitz Vision Center. East of the Fiesta Mall in Mesa in the same complex as a chain optometrist. Got that small town business feel. Again, she loves her work enough that she broke out of the existing system so she could do it right.

Pubs with Good Beer: Popago Brewing: Laid back, local, 20 good beers on tap, great selection in the (large) cooler including Belgian styles, a local specialty. Four Peaks, north or south location: Good atmosphere, pretty good microbrew beer. The Hopknot is probably the most exceptional of the lineup. Bandersnatch was on the top of this list except the Tempe goons ran them off in their quest to McDonands-ize downtown Tempe. Fuckers. The Roosevelt: Seriously dig their Rogue fetish. Casey Moore's, just for it's college alternative vibe.

Food: Indian, just SE of University and Rural (aka Scottsdale). Also, the Copper Kettle. Aladan's for lunch, SE corner of 92th and Via Linda. Four Peaks has fantastic bar food too, bordering on gourmet but staying in the pub genre. Que Bueno in Fountain Hills has the best salsa and damn fine margaritas. Sakura Inn in FH is cute and the sushi chef sweet and genuine, but the new owner is extremely obnoxious and pushy. Sushi Ko on 92nd and Shea rocks for authentic and is better than the overpriced "experience" places. Nello's, two locations. Some good beers (used to have a lot more) and good pizza pies -- specialty stuff.

Internet: FastQ. Grew out of the local Apple user's group, but is a Linux, Solaris shop mostly. Everyone answers the phone there, and everyone you talk to knows their shit. Dedicated IPs are cheap and the ToS is permissive, and they don't screw with your traffic or bandwidth.

Coffee: This is a real flash point with me. Current set is Mill's End Cafe (on Mill), Three Roots (also on Mill but further down) for working, but the extremely boisterous and bizarrely ignorant college students frequent Three Roots and families with screaming kids and organizations composed entirely of fat old men frequent Mill's End. Inza Coffee NW corner of the 101 and Shea in Scottsdale: every "for here" latte order gets you coffee art! Open mics, music, art exhibits, free dance lessons, homemade food, outlets everywhere. Also, loud, obnoxious, shouting sales men on cell phones during the day. Bleah.

I'm sure I'll think of more later (and edit them in)...

-scott
Friday March 14, 2008
06:26 AM

Go save your half.com wishlist *now* before they delete it

Two emails came in, back to back, while I was out on errands: that half.com was going to delete items from my wishlist unless I updated it; and that they deleted "old" items from my wishlist, and in the future, I should "keep it up to date". FUCK!!!

Looking at it, sure enough, it's down a few pages from what it was.

Every book in there, I seriously intended to *probably* buy, and even though I had twelve pages of books on the wishlist, I'd already bought on the order of 30 or 40 books from them. Every few months I go on a bender and drop $100 there. It wasn't as if part of my wishlist was "old"... what I bought off my wishlist when I went on a spending spree there had nothing to do with when I added the book to the wishlist.

So, now, things expire off your wishlist, and they have little clocks that run down, and you can add more time to them, manually. If you don't ask for more time every few months, it gets deleted. They implemented this feature and didn't warn me until after some of the timers already went off. Again, FUCK!

It's really my own fault for trusting a site with data, but half.com was my master list of books to buy. Along time ago, I dabbled with a proxy service that would show you your entire half.com wishlist on one page by scraping their site, but they changed their interface so that you can't view other people's wishlists, so it got scrapped. I had output from it so I had a snapshot of a very early wishlist. I spent the last three hours piecing together what I could of what was missing, printing out the raw wishlist pages (in fear that more timers would go off in the next few minutes), opening each page, and cutting and pasting book titles and URLs into a text file, and then finally, deleting the entire wish list so I wouldn't be getting these horrific emails that my data is being deleted.

Another reason they cited for deleting from my wishlist: their preference engine does a better job finding things for me when the wishlist has fewer things on it. So, wait, they want me to buy more stuff, but stuff that they suggest, rather than the stuff that I actually *wanted* to buy, so badly that they'll delete my wishlist items to better find things to spam me with? Bloody hell. Morons!

Maybe most of their customers add vast amounts of things to their wishlists and never look at them and they're losing tons of money buying storage space, but honestly, that's hard to imagine. Each thing in my wishlist is one record in a hinge table: it references the item, and it references me. That's two 32 bit integers. Maybe a datestamp too. So my whole wishlist was a few K, even though it was 12 pages long. Is risking pissing off their hard-core customers worth reclaiming these few K from their deadbeat customers? Wouldn't it have been nearly as effective to send people an email asking them if they really want their wishlist, giving them 30 days notice, rather than ten minutes?

eBay (the owner of half.com) is a great big monopoly and it treats its customers like shit. So, I'm now in the market for another online used book store/market. Suggestions?

-scott