Showing posts with label computers. Show all posts
Showing posts with label computers. Show all posts

Monday, October 17, 2011

Getting hacked was only the beginning

Here's a great article about what happens when someone malicious takes control of your Gmail account. It's by the person that knows best: the person who got burned. Without spoiling it, they were in a world of hurt. Go read it.

One way that this whole thing could have been avoided was turning on two-factor authentication, "something you know plus something you have". The basic idea is that you don't just have a password, you also have some randomly rotating key that is attached to a physical device in your possession. For something like a corporate network, it's a little keychain that looks like the readout at the top of a solar calculator, with 6 numbers that change every 30 seconds. You type in your password with the 6 numbers at the end.

For Gmail, it requires that every time you log in to Gmail using a new device, and once per month after that, you have to type in the 6 digit code that they SMS to your cell phone. If you have to pay for texts this might not be the best. You can also print out backup one-time use numbers that will work as codes. Do this if you want to feel like a spy.

The great thing about two-factor authentication is that even if somebody knows your password, their ability to guess random numbers you have no control over is limited. For well designed systems like Gmail, they won't be allowed to try your password plus all million random numbers they need to enter to get into your account. Instead, after a small number of failures, they'll get locked out.

Another way most of this could have been avoided is using a program like Thunderbird to download all your mail to a local backup. You still might lose control of your account, but you won't lose years of your personal lifestream.

Without putting too fine a point on it, I'm proud of the way my company, Amazon, puts the customer first. Like good design, security, and scalability, you can't bolt on the customer service after the fact. Getting there might be painful for Google.

Lastly, I think this is not the last wake up call for personal data. Over the past several years, like all of you, I have outsourced some personal data to big corporations who may not be aligned with my interests. I've thought twice about how to own my own data and send it out to everyone. I think I'm settling on Blogger plus RSS to Google+ and Facebook. Eventually I'll host my own blog and email, as soon as I can think of a killer domain name (not surprisingly, most variations of danlewis.com are already taken). That's just the first step toward decentralizing the big sprawls these social networks have become.

Friday, November 13, 2009

The Oracle of Stupid


Someone at work pointed this out. You can ask the magic box any question, and this is the best we can come up with.

Reproduce: go to Google and start typing a question. Google will start giving you suggestions that are relevant and popular. Best, try to imagine who would have searched for that and why. Sometimes it is tragically obvious, sometimes it is not.

Here are a few more to try:

  • is there
  • are there
  • who was
  • why
  • why is
One word of warning: "can" and "could" questions seem to be dominated by questions about pregnancy...

Tuesday, October 27, 2009

Software installs for a fresh Mac

Here's a list of software I had to install to get closer to normal in the Mac:

  • Firefox (with NoScript, AdBlockPlus, Greasemonkey, Ubiquity, Firebug, and Vacuum Places)
  • Carbon Emacs
  • Xcode with developer tools
  • Quicksilver
  • X-Edit 2.0 (for my guitar pedal)
  • Nethack
  • Crossover Games (running Steam and thus, Team Fortress 2)
  • GarageBand extras
  • GrandPerspective (hard drive dissector)
The terminal situation on the Mac seems pretty hopeless. I could use a good recommendation. I'm looking for Command-means-meta and high color, tabs would be nice. At this point I'm just running M-x shell in Emacs, but Emacs has problems in the remote shell (in particular, I can't get remote completions to work because Emacs consumes the Tab).

Monday, October 26, 2009

Back in Mac

I know it's time to buy Windows again or whatever, but... I got a Macbook. The year of Linux on the desktop is coming, maybe soon, but... I got a Macbook.

So that's that. I've joined the ranks of the smug, latte-drinking weenies. I'll spend my life looking down my nose at well-meaning gents and shatter their illusions of love.

One of the many consequences is that I now have a platform to establish my online identity from. Before, sharing my wife's iMac, it was hard to just take over. I'd want to blog something and be on it all night. Now that I have the laptop, the resource contention is over. So I friended 40+ people on Facebook, I'm blogging tonight, I have a place to get back into reading the internet one RSS feed at a time, I even got a Google Wave invite. Look out world, here I come.

Also, I have a mobile recording station. Along with a helpful tip from the makers of my multi-effects pedal and a shiny new vintage white solid-body electric SG, I've been making recordings in Garage Band. And they sound like real music! It's hard to try to fake that sound with a plugged-in acoustic guitar. Now it sounds pure and sharp.

I'm gaming with the details turned up. It turns out that Team Fortress 2 has a ton of shiny lighting effects that I never saw before. It has actually been hard to play because it's so cool looking...

The only feature I am really missing compared to my Amazon laptop is a number pad accessible under the uiojkl keys. As it is, I either have to accept the dangerous yubnhjkl (You have much trouble lifting a large box. Continue? [ynq] (q)) or the hard to reach 123456789 for moving around in Nethack.

This may not sound like much of a missing feature to you, but you don't play nearly as much Nethack as I do.

Monday, February 09, 2009

Fate, it seems, has a strange sense of irony

I'm moving back to Seattle! Believe me, I am as shocked as you are. I haven't lived in my hometown for seven years.

As you may know, I've been working on defense software for Lockheed Martin in Littleton for the past year and a half. I'm proud of my work at Lockheed and I don't regret the last several months by a long shot.

Over that time, Sarah and I came to realize two things: we are not mountain people, and we're not really outdoor people. We've made some great friends and had some fun times, but we're ready to be close to family again, in the wet and woolly and green Pacific Northwest.

I'm starting work for Amazon shortly (yes, that Amazon) as a software developer. As an AI guy interested in getting out on the cutting edge, this was a chance I couldn't afford to pass up. To be honest, I racked my brains after my on-site interviews, replaying them for several sleepless nights afterwards, finding ways I could've answered technical questions better. I read somewhere that rat brains do this after the rat runs a maze. Their neurons actually fire in the same pattern that they did while running the maze, dozens of times.

My C++ and SQL questions were fun and interesting. I was thinking about "find the longest palindrome in a string" for several days afterward, still looking for performance hacks.

I was pretty sure I blew my last interview after venturing into some chancy territory about internet technology, with which I have a nodding familiarity, but no great expertise. You can imagine my surprise and my relief when, after my last sleepless night, I looked up the difference between a GET and a POST and found out that I had basically remembered correctly, in a somewhat stressful situation. That was when I began to believe it all might happen.

Last Friday, the hiring manager talked to me again about the position, proposing an interesting project for my first several months, then all was go. The recruiter made me an offer I couldn't refuse, and we were off.

I'm suppose to be there two weeks from today, but I have trouble believing the relocation can happen so quickly. On the other hand, I've been surprised already.

Tuesday, June 17, 2008

Spore arrives

So, I've been on about this for a while. Spore is a game coming out in September that will unleash unparalleled creativity on an unsuspecting gaming populace. It's the game of life, where you pass through successive generations designing yourself, from bacteria to creature, from sentient being to civilization. You model animals, cities, buildings, vehicles, flora in amazing detail, and then, through the magic of Will Wright and his team, your creations come to life. Then, through the magic of Will Wright, they will populate the galaxies of other players, a galaxy with millions of worlds that you can visit, eventually, in your species' spaceship. It is an unfinishable game.

Today a demo of just the creature creator went online. It is completely free to try, and you can construct the crazy animals that will fill the game. Get it here. Repeat, GET IT. Your jaw will hit the floor. Your kids will love it. You will love it. Your dog will love it.

It is a little nerfed; there is a $10 version with all parts and options enabled, which I am certainly buying as soon as they make it to stores (Thursday, I think). You need a halfway decent computer to run the software, but if you've bought in the last couple of years you should be fine (the specs for Vista are pretty fricking ugly though).

If you'd like to see some of my ridiculous creations, they will start filling in here. So far, only ballicus curius has made it to the internet. But I've done a couple more that should be on the way. And let me say, before you even start playing, you can spend hours just making animals.

This is one of the more amazing pieces of software I have ever seen. The technical challenges involved in turning J. Random Player, with help from the computer, into a successful 3D modeler were apparently astounding. I've been getting chills.

Sorry I've been out of the picture. It has not been for the best, but it's that kind of season in life. My software should be done with main development this week, though, so I may be able to take my foot off the gas pedal by next week.

Sarah is in Utah visiting friends and family, with Alex, so I have been all alone in the house. It is very strange. But I have been studying computers and doing whatnot.

My high school's ten year reunion is in a couple of weeks. In some ways, I am sorry not to be able to go. I haven't seen some friends in ages. I don't know why, but lately I keep thinking I will meet some friends to read books with. There is a guy at work who has been interested in my dive into Charles Stross lately, but it's not the same.

So, for the record, Charles Stross is an amazing speculative fiction writer. I read Singularity Sky, which is about as good an introduction as you could get to the Singularity (disparagingly, "the nerd rapture", when we create an AI that can bootstrap itself into godlike intelligence, or alternatively when we create nanomachines that can convert base materials into the stuff of our wildest dreams). Whether you believe all the theories or not (and I am inclined not to), it makes for a great story.

He also wrote a great near future story called Halting State, essentially about a world where the internet is very closely intertwined with real life, as in virtual reality layers that are based on the place on earth you are standing right now. So you could put on your VR goggles and be in a whole new world, essentially. So the story goes, what amounts to a bank in World of Warcraft 3.0 is robbed by a band of orcs. Then a group of hackers and forensic investigators is brought in to figure out what happened, on behalf of the country running the bank. It's hilarious, and I can't give away the terrific story. You should read it right away.

I had another book by Stross about a tech journalist who falls into a brave new world, like a curious shadow of Earth, called The Hidden Family, first in a series. It is great so far, as is Iron Sunrise, the sequel to Singularity Sky.

Sometimes I get like this with an author and I want to read all their stuff, as much as I can find. So far I've done it with William Gibson, Lois McMaster Bujold, Neal Stephenson, and Shusaku Endo. Stross is another one of those.

I'm also trying to get further in Godel, Escher, Bach. Every time I check it out, though, someone reserves it right behind me. I am going to break down and just buy it soon.

Friday, May 23, 2008

Hard at work

Well, I've been working hard lately. It is close to delivery time at my work. On the bright side, that means I'm just about the end of my first shipping product. In other words, I was working on this software when it was barely a twinkle in our customer's eye, and my water just broke.

It's been a great experience. I've been getting better with Emacs and the shell, and with a lot of C++ over the last five months. Working with the team and a larger existing code base has also been enlightening. I've found it just takes a while to get up to speed with how things are organized, and the project's standard ways of doing things. I wish I'd had my TAGS file in Emacs months ago though. (It basically finds the proverbial needle in the haystack of code files for you.) Learning to give and take with my teammates and come up with mutually beneficial designs has been great too.

Now, we're working overtime. I am glad that we don't do 50 to 70 hour weeks for most of the year. This is really wearing, it's reminding me of grad school. I get about one day off per week at the moment. We're fortunate enough to get paid, so Sarah and I are probably taking down another credit card or two this month.

Hemingway slipped to the back burner as I read some Isaac Asimov this week. He's a giant in the sf field, writing many well-loved novels. Foundation, which is about the a society whose future has been mapped out by a psychohistorian, is a real classic. There's Nightfall, which is about a planet where night only falls once every couple of millennia.

And there are robots. Asimov coined the word "robotics" and wrote some great stories about them. I finished rereading I, Robot again, which is a collection of short stories about the first robots, and the three laws of robotics. They made it into a movie, I hear, but it was more "inspired by" than "based on" the stories in this book. It's charming and rereadable, and it even has a female lead. Pick it up, 100%.

I also read the first in a trilogy (Robots of Dawn, maybe?), which was a robot murder mystery called The Caves of Steel. It posits a human race, thousands of years in the future, on an overpopulated Earth, that has crowded into massive biodomes, made yeast products the main nutrition, regulated everyone's employment, and started to replace human workers with robots. Although humanity has space flight and has colonized other planets, the agoraphobia and xenophobia of the remaining earthlings is keeping a lid on the society, living out their lives in caves of steel. And that's just the setup. This is a fine, fine book. Its point-of-view feels alien to us air-breathing, outside-enjoying humans, just as it should. The main character's outlook on robots prefigures some of our current obsession with illegal immigrants stealing American jobs, and our mistrust of foreigners. There are some great moral themes as well. This is highly recommended. It might make more sense, though, if you read I, Robot first.

I've been working my way through C++ Coding Standards, which is a list of 100 pithy dos and don'ts by Herb Sutter and Andrei Alexandrescu. Sutter is the chair of the ISO C++ standard committee, and Alexandrescu is an expert on using C++ to do template metaprogramming (for libraries). Now, in some ways, C++ is a pig, and this book is like the lipstick on the pig. It's testimony on the complexity of the language that a book like this, which is almost completely language-specific tricks, had to exist. But there's another way that C++ is like a pig, and that is that it is liable to eat your foot if you try to ride it, and poke you with its bristles. And this book is like a saddle for the pig, for those of us forced to get on and put that pig through its paces. And, for what it aims at, it's a terrific book.

Ok, I just ran across this video, and it's too cool. This is just one more thing I love about computer science:


Change of subject. We bought a scuba diving game called Endless Ocean. It is very low impact as far as difficulty goes, but it is beautiful and mellow, like interacting with a screen saver.

Last, we preordered Wii Fit from Amazon while they were still taking orders. It arrived yesterday, and boy are my arms tired. Yes, they were weak, but still. The thing, for those of you who don't know, is an exercise game packaged with a balance board, which can sense your weight, center of gravity, balance, pressure, however you want to think of it. It is about one third game and two thirds exercise tool, with yoga and strength training as well as balance games and aerobics. It tracks your weight and activity, and tells you how weak you are. Sarah and I both got a good workout from it. In fact, I'm going to spend the next few minutes working at it again. It offers few advantages over the gym, but it does have one killer feature: the privacy of your own home. And, it does all the tracking for you, and it's fun.

Tuesday, April 15, 2008

Code folding in emacs

I wrote a regular expression today that got my C++ major mode in Emacs to play nice with outline mode. For the first go round, I am just collapsing down to comments. We are using Doxygen so the structure is predictable.

It helped me double-check that I'd done the comments up to our standard, which was useful and productive.

Customizing Emacs has been a bit of a ride, but there is enough material on the internet to do quick fixes. My job isn't really paying me to learn an editor, but I'll spend a little time to get things like this in order.

One thing that's caught me a little off-guard is how little I depend on an IDE to get stuff done at work. I definitely recommend that the programmers out there wean off Visual Studio and Eclipse, and just put a good editor in their toolbox.

I saw The Simpsons' "Worst. Episode. Ever." again tonight. It's a meta-episode about how the Simpsons' writers are running out of ideas, so they have to recycle old plots, make ridiculous running jokes, crappy dialogue, and default to implausible coincidences to resolve the story. It's one of the funniest things they've ever done.

For those who don't know The Lewises, we have about 15 hours worth of Simpsons episodes on the DVR right now. It's the 800 pound gorilla, the monster show, undefeated champion of the world. It's twice as long as Seinfeld and still going. The quality is still running surprisingly strong.

Best. Sitcom. Ever?

Wednesday, April 09, 2008

Google takes over the Internet

Let me bring you up to speed.

Ok, that's not exactly hyperbole. While Google has been essentially the most popular first click on the Internet, it has done so as an honest broker. It has said that pages sink or swim in its search results on the basis of algorithms, not favors for favors. It is a road sign on the (sigh) information superhighway, rarely an offramp or destination.

There are some exceptions. Google has steadily built a stable of productivity applications: Gmail, Gcal (the calendar), Google Maps, Google Docs and Spreadsheets (think Word and Excel, less powerful, but collaborative). They also own some content, like Youtube (and Google Video), and of course Blogger.

You can find the bleeding edge stuff at labs.google.com. Google 411 is a fascinating example. You can call a toll-free number from anywhere, 1800 GOOG 411, talk to a robot, search for a business by type, then get connected to the business without putting down the phone. The whole service is always free.

Why is Google doing Google 411? No, no, it's not just to put regular 411 out of business, which it totally would if anyone knew about it. There's a much awesomer reason to do it. While you talk to the robot, your voice data is being collected to train speech recognition algorithms. They're trading information so their robot can listen to you. It's not much of an invasion of privacy, really (if you called real 411, you'd be telling a person what you were looking for anyway). You can even block your caller ID before calling in, if you're paranoid.

Last week, Google stuck a program out there that allows you to use their office products even when you're offline, and seamlessly resyncs your data when you regain your internet connection. Google Docs and Spreadsheets are now competing directly with Microsoft Office...

Trust me, they are doing stuff there you could not imagine.

Until now. Google's system scales better than anything else out there; the amount of data they use and process is mindboggling, and they've created several unique tools to analyze it all efficiently. This week Google opened up its internet infrastructure (in beta), allowing people access to their application servers, Google FS filesystem and BigTable databases. It's called Google App Engine.

They're allowing 500 MB of space free, and a generous amount of bandwidth per month. The level of use they are allowing is free into the future, three applications per person. If you want more space or page views, you'll pay Google some amount of money.

Chances are good that the next great internet application, the next Facebook, will be written on these servers. And best of all, it takes 90% of the thinking out of hosting internet applications. It is Internet programming for the masses, in Python. It costs nothing just to go make a cool project that anyone in the world can see. A lot of budding young programmers will do just that. And Google will buy that awesome application that already runs on their infrastructure, along with the programmers who wrote it.

I decided to be a budding young programmer. To go with my Emacs and Unix obsession, I'm getting back into Python by fooling around with it to do processing for my Netflix prize data. And of course, I'm on the waiting list for the Engine... internet programming is a somewhat hairy world. I am taking my baby steps through Unix first, then onward.

I am on the home stretch of The Baroque Cycle. It's been just about perfect. I'm on the last 200 pages (out of 2500 or so). I'll be sorry to see it go. But, there's a new Neal Stephenson novel coming out in the fall, so I'm right on time. I've also never read Catch-22, so I got that from the library.

Thursday, March 27, 2008

More editors

So Emacs 22 got installed at work. I had a heady sense of power, during which I actually got real work done.

As it turned out, there are several chapters in Learning Gnu Emacs that are not important to me at this time, like the major mode for HTML, or Lisp programming (which I already know how to do). So I'm almost done with it. What I really have left to learn are the programming modes and the Emacs object model.

Dean tried to start a rainstorm on my parade. Hi Dean! I still remember getting up early for your C++ class. Good times. I think he's right. The best programmers don't care that much whether they work in vi or emacs. They probably spend the vast majority of their time thinking.

I heard a quote once that SQL was one of the only languages where you do more thinking than typing. I think it's true for me, but in every language I work in, not just SQL. I figure things out for a long time, then type as fast as possible (unless it's the night before something is due; then I just type). Sometimes I worry that I am not getting done all that I could be, if I were frenetic and focused enough to bang out enormous applications overnight.

I don't know if my emacs phase is just a novelty. I have enjoyed not leaving the environment to get all my work done. I don't really feel like I'm context switching to just go to the shell buffer. I feel a little like this was the way it's meant to be.

Lisp as an extension language is good in my book too. I still think Scheme and Common Lisp are probably the most amazing languages I have ever tried to understand, so I guess I am doing all this learning for a variety of mutually self-supporting reasons.

I know enough vi to get around in a pinch, so I don't feel qualified to boo and hiss at vi users. We have some great programmers using vi at my job, too.

But let's also say I am doing an experiment with this tool. I have a crush, we're on our first date. But do we really have a future together? Stay tuned.

New topic, I've been listening to Chris Thile's new band's new album. They are called the Punch Brothers and it is called Punch. (They did another excellent album called How To Grow a Woman From The Ground while Thile was still in Nickel Creek.) It is a chamber-classical-bluegrass album about love, Thile's divorce, and religion. The main music is a forty-minute bluegrass piece called The Blind Leaving The Blind. In four movements. They're all, individually and together, virtuoso players. I can barely wrap my head around it. If you are remotely interested from this description, plunk your dollars on the table (or the computer). They have a Myspace site if you want to hear something awesome first. Or Google videos.

Wednesday, March 26, 2008

Emacs, Unix, geeking out all over the place

This isn't very exciting to almost anyone, but after months of vacillating, I've finally taken the plunge into using GNU Emacs at work and at home.

My PC has been relegated to the dustbin of history, only turning on for music recording now (and that's only because I can't get the guitar pedal control program working). For me lately, Unix has been it at work and it at home.

What is GNU Emacs, you ask? Well, for you non-programmers out there, you might think of it, at first blush, as a very very very sophisticated version of Notepad. It is first a text editor. On the other hand, there is a joke about GNU Emacs: it's a nice operating system, not such a great text editor. This refers to the fact that Emacs is extensively programmable, and as such has become, over the years, a command shell (windows users, open cmd.exe), a software development tool, a program interpreter, a games platform, and pretty much anything you can think of and program. It even edits text.

Why is it so cool? Well, in the Unix world, there are basically two text editors: vi and emacs. They are fruitful, and multiply, and so there are vim and gvim and xemacs and so on. There are other options, like Nirvana Edit and Nano/Pico and such, but vi and emacs dominate the text editor landscape.

A lot of programmers I really respect use Emacs. One in particular, Steve Yegge, got me thinking when I read stuff like the following. Incidentally, if you're a computer programmer, you could do worse than read his two blogs. He has a somewhat unique perspective as an employee of first Amazon, then Google, not to mention the creator and maintainer of Wyvern, which can be described as a cross between Nethack and MUDs. In other words, whether you agree with all he says or not, he's brilliant. So listen:

Emacs is the world's best text editor. It's not just the best for editing program source; it's the best for any kind of text-editing. Mastering Emacs will make you more effective at writing and editing email, documentation drafts, blogs, HTML pages, XML files, and virtually everything else that requires any typing.


and

The original brilliant guys and gals here only allowed two languages in Amazon's hallowed source repository: C and Lisp.

Go figure.

They all used Emacs, of course. Hell, Eric Benson was one of the authors of XEmacs. All of the greatest engineers in the world use Emacs. The world-changer types. Not the great gal in the cube next to you. Not Fred, the amazing guy down the hall. I'm talking about the greatest software developers of our profession, the ones who changed the face of the industry. The James Goslings, the Donald Knuths, the Paul Grahams, the Jamie Zawinskis, the Eric Bensons. Real engineers use Emacs. You have to be way smart to use it well, and it makes you incredibly powerful if you can master it.


and


In the meantime, Emacs isn't going anywhere, and Emacs-Lisp isn't going anywhere, not for several decades at least, so it will benefit you to learn them deeply. It will never be obsolete knowledge. You might as well start learning it now, and reap the benefits now.


and finally, the quote that always gets me:

Old algorithms don't suck, unless perhaps you count Bubble Sort. Generally, the more tried-and-true an algorithm or data structure is (DFS, BFS, quicksort, binary search, hashing, etc.), the more confidence you have in it. Ideas are fundamental and timeless, but technologies are always replaced.

Lisp straddles the line between a fundamental idea and a technology — which is another reason it took me so long to settle on it. And in many ways I'm still unhappy with it. But I believe it's the best thing out there, and will continue to be so for (at least) my lifetime. (My bet on Emacs fifteen years ago is still paying off.)


I realized that I was standing at the cusp of a unique opportunity in my career: I could make a great bet, hardly risky at this point given three decades of history on this one. The bet would improve my productivity and understanding for years to come. So why not?

Something just got to me in the last couple of days. I decided to get out Learning Gnu Emacs, read the first few chapters, then just decided that it was time. I knew enough to be dangerous, and I'd look up things in the book when I found I wanted to do them. I got myself running at work, my shell in one window and my text in the split screen, and I really didn't look back.

I was practically getting shivers. It was exciting, to see things just working, to get my fingers used to messing around. There is a reason why you just start up Emacs and don't leave the environment for the rest of the day.

I asked our sysadmin to get Emacs 22, which came out more recently than what we had (Emacs 19 from 1997!), and then tried to build it from source myself. That was a little ambitious for Day One, it turned out. But Day Two should get it going smoothly.

This is one of those programmer rites of passage, like customizing your prompt and terminal. I'm sort of getting it at the same time that I really want to get Unix. On those lines, I also got Classic Shell Scripting so I can pursue another decades-old programming tradition.

I even got Linus Torvalds' biography from the library.

The only regret I have is that I'm putting learning operating systems and compilers on the shelf for a little while to get all this done. But I figure that learning the Unix Way first will be worth it. (For the Unix Way, see also Eric S Raymond's stuff: The Art of Unix Programming, How To Become A Hacker, The Unix and Internet Fundamentals HOWTO, and of course, The Cathedral and the Bazaar.)

Tuesday, March 18, 2008

Poking around

I've been poking around with the Mac, installing MySQL (a database management system) so I can get the Netflix data into the database. I also spent a good half hour figuring out you can use nice/renice to reprioritize processes, and use prepare/execute to speed up MySQL insertions, which is making the Perl script go a bit more smoothly on the 10 million insert statements I need to do to get the data into a table.

I also plugged my pedal into the Mac. I was a bit surprised to find that it was plug-and-play, zero configuration in Garage Band. I have been doing stuff in Audacity, but it's apparently the week to experiment.

If the "Music By Dan" player in the left column is not showing five songs by me, you can also go look at a static Google page with them here. An earlier commenter gave me the impression she couldn't see them.

On Vince's encouragement, I picked up some more Glenn Gould CDs from the library, along with Simon and Garfunkel's albums. Incidentally, their entire concert in Central Park is here. I also got Stephen Colbert's I Am America (And So Can You).

On the way home, I was listening to Kathy's Song and it got me thinking, here:

And so you see I have come to doubt
All that I once held as true
I stand alone without beliefs
The only truth I know is you


I don't think that I have beliefs exactly. Instead I have one big belief, or one big world of belief that I inhabit. The individual things that make up my world, it turns out, are all connected. They are supposed to hang together, and for the most part they do. They are not gas particles randomly colliding in Brownian fashion. Really they are more like a crystal, albeit with impurities.

I will try to get around to explaining this when I have a few more minutes. But what I want to say about it for now is that pursuing destructive proofs by contradiction (gotchas) of a crystalline belief is like pointing out impurities in a crystal. My wife's engagement ring has a diamond with such an impurity, but that doesn't make the diamond worthless, or make it structurally unsound. As a believing person I am not personally attached to x, y, or z flawed example belief. If you want to destroy a diamond, you have to use another diamond.

Monday, March 03, 2008

new mac, old mac

When Sarah got her dad's Mac, I was bequeathed with her old Mac, a G4 iMac. I have enjoyed putting it to good use. One thing I've had to do is start backing up her files off the computer so I can use the hard drive space for the Netflix prize contest.

This got me thinking about backups. I am using the poor man's backup, the DVD, but I would like to be able to easily back up my PC and Mac, preventing the destruction of about ten years' worth of personal data. A lot of it is crap like shareware I installed, but a good chunk of it is stuff that is creative, or personal history, or both.

I think I need to look into off-site backups for this data. If anyone has a reliable option, please let me know.

Meanwhile, I am rereading my machine learning texts, trying to get back to where I was a year or so ago, in the thick of graduate school, just coming off a data mining course.

Saturday, March 01, 2008

Same Mistakes

Another song is up, in the Music by Dan sidebar to the left. If someone cannot access these songs, please let me know. I have been hosting them on a pages.google.com account, which I would not expect to cause any problems.

I seem to be able to do about one recording per night, but of course my nights are not always free.

This song is by Jon Brion, an amazing musician. He does a lot of film scores nowadays, including I Heart Huckabees and Eternal Sunshine of the Spotless Mind, which is how I first heard his name. He also produced Fiona Apple's "Extraordinary Machine" album, along with Kanye West's "No Registration". On top of that, he has a standing gig at Largo, acoustic club par excellence.

It's my third crack at the song (and there were about fifteen takes on the bridge vocal). Be glad the first ones are not on the internet. I don't know why I love this song so much. I think I like how it sneaks up on you. I like how the chorus is always the same but is constantly changing interpretation. I like the power of memory, the remorse, the chance to start again, the conflicting emotions.

The main guitar effect is distortion, but pretty clean unless I play just loud enough to break into fuzzy. I saved the settings for further study. The clean sound is just a little chorus. Not much to it really. I was a little surprised that I could play it high as a little lead and low as a little bass. This guitar effects pedal is so cool.

Overall, I think this song sounds a little fuller and better than the other ones. Also, it's louder. I need to consider going back to balance volume levels for all the songs in the player. Or just make enough songs that the old ones kind of fall off the bottom ("retire").

I am getting up to speed on the Netflix prize. The idea is to improve on the Netflix movie recommendation engine. You're basically given ratings for 17000+ movies by about half a million Netflix users, then told to predict their ratings for other movies. First prize is ONE MILLION DOLLARS. Yearly prizes of $50000 for the current leader.

There are many other people kicking around ideas. I think I will do it as a hobby at first, then slowly become obsessed with it. It is machine learning and data mining, and I have been trained to hack my way through such jungles.

I am two-thirds of the way up Mt. Baroque Cycle. The Confusion was, once again, well worth all 800 hardback pages. It is made for people like me (hackers who like history, science, romance, and tales of derring-do). Not for kids, but it is for you. The last volume is The System of the World. I'm starting it tonight.

Monday, February 11, 2008

Godel, Escher, Bach (major geek alert)

This reminds me of that classic Johnny Carson bit, Carnac the Magnificent. The swami, bejeweled and enturbaned, holds up the envelope to his forehead and closes his eyes: "Godel, Escher, Bach". "Girdle Esher Bock" echoes Ed McMahon. He reads the card: "Instructions for a German wedding."

(I tried desperately to come up with a better one than that. It's the Escher that kept getting in the way.)

Godel, Escher, Bach: An Eternal Golden Braid, by Douglas Hofstadter. This is actually a book about self-reference, about logic and metalogic, about patterns and fugues, about artificial intelligence, about symbols and interpretations. I haven't read very far yet, but it is already pretty mindblowing. It won a Pulitzer and it hasn't changed since 1979.

Plus this guy told me to read it. About halfway through the blog post, he veers off into stuff about being a programmer and making software that may or may not interest you.

In the preface to the 20th anniversary edition, Hofstadter explains the main idea: things that refer to themselves in some sense examine their own state and are conscious. This self reference, he calls a "strange loop", and suggests that there may be a scale of consciousness based on the amount of introspection that a thing or system does. It's basically a goofy, insightful, jarring 800 page book. With bonus dialogues between Lewis Carroll's Tortoise and Achilles. With digressions on Bach canons. With pictures. Only 100 pages in; I'll tell you how it goes.

I've also been reading lately that the Internet is like a brain. See, for instance, Dimensions of the One Machine. I've read many similar such arguments that seem to conflate hardware density and speed with intelligence, then claim that in the year 2040, due to the consistent doubling of computer power due to Moore's law, we'll have computers with brains that surpass the human mind.

I think these arguments ignore the complex structural differences between the network of neurons and synapses that we have, which are stuporously interconnected, and the logic gates on a computer, which are not. While we're stuck on the x86 architecture (like most home computers nowadays), we will not stumble onto artificial brains.

One thing the Internet does not seem to do much is introspect. The closest thing we have at the moment is probably search. Google is not really the Internet. It is really about the Internet. However, introspection seems to imply a greater sense of feedback and control than Google really does... Google holds up the mirror to the Internet, but then what happens? Really, Google just builds a better mirror.

The feedback at the moment is all coming from the human users.

If the Internet were a giant brain, how could we even interpret its thoughts?

In vaguely related news, Will Wright's intelligent design simulator, Spore, is coming out in September. From cell to civilization to spaceship, the player evolves their creations, then sets out to explore a vast universe. Here is a cool interview with the latest. For earlier posts, see here and here. I've been waiting for this one for a long time.