New digs

Hello, is thing thing on? (tap, tap, tap – or perhaps ping, ping, ping…) Ah, there we go!

Please welcome Obtainium to its new digs! I’ve traded the stench of failure (ahem) for the heady aroma of fresh-brewed java – in Encinitas at the E Street Cafe. The cafe isn’t open yet, but through a friend I’ve got Obtainium’s Powermac G4 connected to their high speed internet pipe. (Thanks again, Greg!)

Switching locations, which I’d been dreading, was as simple as plugging in the box and setting the ip address. Also had to change DNS settings for all the websites I host.

If I can’t be sitting in a cybercafe near the beach – at least my server can.

SQL Server mini-rant

The database I use at work is Microsoft SQL Server. It uses a program called “Enterprise Manager” to manage your databases – building tables and fields and indexes; backing up and compressing the database, etc.

It’s built to be almost as “friendly” as Microsoft Access, since apparently a lot of people who use SQL Server have migrated from Access. To edit a table, you right-click on it, and select Design Table. To see data, Open Table/Return All Rows. When you double-click a table, the default is the nearly useless View Properties, where in Access the default is the equivalent of Return All Rows. So if you go back and forth from Access to Enterprise Manager, just a little annoyance.

Return All Rows is pretty cool; you can even edit data there by hand, and you can go to SQL view or Diagram View to customise the query. You can perform action queries, such as DELETE FROM merchants WHERE merchant_status = ’99’. But there’s something wrong with the engine that EM uses to perform these queries – it times out on complex actions such as multiple table joins.

So there’s another tool you can use, from one of the inscrutable “Tools” menu of EM: SQL Query Analyzer. QA lets you do very complex queries, save them, and has not only a long timeout but a timer in the window showing how long the query has taken. And I suppose you could even analyze your queries, but I’ve never managed to need that.

You can’t hand-edit data in QA, though you can of course mass-edit. “TRUNCATE TABLE users”. So you still go back to Return All Rows for that.

And neither QA or Return All Rows has the nifty feature Access has, where you can right-click to filter data – “Filter By Selection” or “Filter Excluding Selection”. This is useful enough that it’s often a good idea to ODBC link an Access database to your SQL server tables, to do ad-hoc queries and instant reports. So there’s yet another query tool for your SQL server data.

Now, technically, you really shouldn’t be allowed to hand-edit that data at all. Going in and changing, say, merchant_status, with no log of who did it (“audit trail”) and no control to prevent people from doing it, is what got Diebold in trouble for their voting system. There are ways to limit this, but in most cases the DBA (Database Administrator) can override that and edit any data he pleases, including deleting automatic audit trails, if he knows the database well enough.

From my vague reccollection, Oracle uses similar tools for database administration and management. Lance can probably correct me on this. But when I used them they weren’t exactly user friendly.

And yet I find this is one of my annoyances with MySQL. There’s a nifty open-source tool called phpMyAdmin (I can never remember the name) allows many of the same capabilities as EM, but is entirely php web-based. It doesn’t suck, but still has some challenges of its own.

While I’m at it, one of my annoyances with SQL, is that the syntax of the INSERT statement is significantly different from that of the UPDATE statement.


INSERT INTO users (username, user_status) VALUES ('fred', 1)

versus


UPDATE users SET username = 'fred', user_status='1' WHERE user_id = '123'

Couldn’t they have just allowed the syntax


INSERT INTO users username = 'fred', user_status='1'

and/or


UPDATE users (username, user_status) VALUES ('fred', 1)

so that I could copy and paste my code for update and insert? For that matter, how about


INSERT_OR_UPDATE users SET username = 'fred', user_status='1' WHERE user_id = '123'

and/or


INSERT_OR_UPDATE users (user_id, username, user_status) VALUES ('123', 'fred', 1)

The argument that would not die

My friend John Scalzi got hit by adware on his PC, and has an entertaining rant about it at the linked address.

The comments host yet another Mac versus PC argument, to which I couldn’t help but contribute. I might as well throw it in here, though I’m sure you all are tired of my broken record by now.

Apologies for continuing the Mac/PC thread, but count me on the Mac side. (This is a “rant” after all.)

-I’m a heavy user, I use all sorts of software I download off the web (tho mainly VersionTracker, which checks for viruses itself). I’ve never had a virus on my Mac. In 20 years. Never. Never had spyware or adware. And I’ve NEVER NEEDED VIRUS PROTECTION SOFTWARE. Beyond this, I still have data I created 20 years ago because I’ve never had my Mac totally crash and die so I couldn’t retrieve the data. This is worth tens of thousands of dollars to me. I consider all data on Windows to be disposable unless I have a recent backup, because who knows what evil is coming down the line tomorrow. It truly amazes me that there hasn’t been an effective widespread assassin virus that wipes out people’s data irretrivably – but one day soon there will be.

-Purchase price of a Mac is nearly identical to that of an identical Windows PC. I built a PC recently, a Shuttle (for work); it cost around $1000. I can get an iBook for around $1000 with equivalent performance, in a laptop with an OS that doesn’t suck. A high-end PC or Mac is around $2000. As mentioned earlier, buying a new Mac actually makes me happy. Buying a new Wintel PC is another several thousand dollars down the toilet for questionable gains and another ugly grey box.

-I don’t even use Windows XP at work – I’m still stuck on W2K, because XP isn’t a technical improvement, and the OS itself spys on me – they don’t trust that I didn’t steal it! Outlook is the single most offensive program I have to deal with daily, and it’s a massive unprotected target for viruses! Did you know that a lot of the email we get comes from hijacked outlook machines? And yet people are afraid to load Microsoft updates, because who knows what evil DRM or new vulnerabilities it’ll contain?

-Apple does a better job considering user needs than Microsoft. The OS, the browser, the email program – what I use the most – are all better at filtering spam and malware on MacOS. I honestly believe that Microsoft doesn’t give a shit about anything but making money; Apple is working to make quality products and hoping the money will follow, someday. No doubt a worse business strategy. Sure, someday someone could write a virus for Mac – I’d think it’d be fairly easy. But I trust Apple to come up with a solution quickly, that I would trust to download and install the day it came out.

-The biggest difference to me is that I get to actually use my Mac for productive work, and I don’t have to spend time dicking with it. I know there are a lot of computer folx whose raison d’etre (side note: http://www.dogfish.com/beer/raisondetre.cfm is my favorite beer, try it!) is messing with cards and irqs and dlls and shareware. I just want to use my computer to get work done.

Aside from rants like this (more of which are available on my website), I’ve given up on trying to “convert” people. And at the same time I refuse to help people with Windows problems, because I know how bad they can get and I tend to take it personally that there’s no way to really fix them. (shrug) “Don’t know, it’s Windows. There’s always something wrong. Good luck.”

Banana Republican

Does anyone remember when Banana Republic stores used to be cool? I remember back in around 1987 there was one in Pasadena that had a parachute and half a Land Rover in the front window. (yeah, okay, so the Rover hooked me, what can I say?) My girlfriend would make a special trip to Pasadena just to go there! The stores looked cool, and they had cool clothes – at least they seemed like real travel adventure clothing (referred to somewhere as the “Hemingway look”). Lots of loose-fitting dirt-colored linen and cotton. But mainly they had an “image”, and probably an attitude as well, that made me pleased to shop there, even tho I don’t recall actually buying that much there.

Then it got bought by the Gap and perverted into another foo foo garbage mall store. I was shopping for shoes yesterday at the Carlsbad outlet mall (shudder, but not quite as bad as the actual mall mall) and I stopped in to see what BR was up to lately. I actually bought a shirt that might have even been sold in the old store if it was still around. But the atmosphere? It’s the Gap. Bleh! The same for most of the clothes there.

Take a look at their website. No personality whatsoever (no doubt, you might say, like the people who shop there)!

No one could accuse me of being a clothes horse, but I guess I still like to identify a little with the places I shop.

I did find some cool stuff at the Timberland store, actually – two pairs of shoes, shorts, socks – yeah, they got me. The place had personality.

“Dog’s got personality; personality goes a long way.” “Ahh, so by that rationale, if a pig had a better personality, he would cease to be a filthy animal. Is that true?” “Well, we’d have to be talking one charming mother-fu**ing pig.” – Pulp Fiction

(Sorry, where was I?) They had cool rolling metal fixtures so that they could rearrange in minutes. Unlike the Rockport store, they actually had benches to sit on and try on shoes (duh!). And to top it all off, much of the stuff they had was cool looking, even if I didn’t actually want it – work boots, ripstop neon backpacks, canvas stuff. Their website has, at least a little, attitude – the homepage when I looked at it (I bet it’s set to change regularly) had an image of a sailboat and the slogan in uppercase casual, “BE THE ONE WHO STEERS THE COURSE” – a little snobbish, but hard-working snobbish. And they’ve got links to granola earthday environmental volunteer stuff (“Don’t Wear It, Use It.”) BR had “new looks we crave for summer…shop now” with a lipstick’d model.

“Throughout my life, I’ve dreamed of going to different places.

You’re still here?

Just did some work on the code behind this page (which I bravely – and foolishly – write myself in php); if I did everything right nothing much should have changed. And indeed it appears to be working still. Most of the changes mainly affect when I log in to add things, and those seem to be working too.

Strange, the differences between coding in PHP, and in ASP.NET which I’m still working on for The Giving Card. PHP is all manual – I use BBEdit (“It doesn’t suck”) for editing, and I edit code in place – when I make a change it just works. With ASP.NET I’m using Visual Studio, and I have to compile and test locally; once it tests okay, I have to FTP it up to the actual website. But the main difference seems to be that in PHP nothing is hidden – what I write is what I get. ASP does a bunch of translation before things get to screen, so “view code” shows me all sorts of junk that I haven’t written. Actually the biggest difference is probably that PHP lacks my underlying deep resentment of all things Microsoft.