Reading List

Posted on

Here’s a list of great papers in Computer Science.  There are some great papers on there, but one thing missing is the book, Structure and Interpretation of Computer Programs.  That’s not exactly a paper, I suppose, but it is one of the most influential programming books.

Regarding books that I need to read, here’s a list of 88 books that influenced America.  I need to remember to read some of those, along with The Old Man and the Sea…  I guess I just need to finish that last one at some point…

Read more »

Starbucks Mugs

Posted on

“Here’s your coffee.  I gave it to you in a large mug because I think I broke all the medium ones.”

Laughing, “what?”

“Yeah, well, we moved all the glasses down low, and whenever I open the cabinet one falls out.”

Read more »

Surveillance Art

Wired has some great reporting, and this story is no different.

On July 3rd, I installed this exhibition app on all the free computers at the 14th Street Apple Store. […] When the slideshow first opened, it would capture an image of whoever was standing in front of the computer, and show them first before fading into the previously captured photos.

It’s the backstory behind the “People Staring at Computers” art exhibit.  This guy wrote a program which used a MacBook’s webcam to detect faces, then capture a photo and send it to his server.  He installed it at a few Apple stores and let it run for a few days.  Many people think the result is pretty cool (and I agree), but Apple and the Secret Service didn’t.

Read more »

Peppers and Coffee for the Heat

This article from NPR will be interesting to any chili pepper fans, and to anybody who has enjoyed drinking coffee on a hot day.

“The hot drink somehow has an effect on your systemic cooling mechanisms, which exceeds its actual effect in terms of heating your body,” says McNaughton.

It’s a look at why Indians drink hot tea, because you know, it’s hot there.  Why wouldn’t they drink cold water or a soda?  Hot drinks on a hot day seem strange to folks in the US; I like to hike with a cup of coffee, even on a hot day, and folks regularly tell me that’s strange.

Read more »

Middle Eastern Language Patterns

I dropped cable TV a few years ago, and when I finally got a Roku I started getting some news again.  Watching the Arab Spring on CNN International last year, and tuning into Al Jazeera English at any time, I’ve noticed that interviewees from the Middle East tend to use many more analogies than Western speakers.  These news channels interviewed folks from all walks of life all over North Africa, and out to Afghanistan, and I noticed this pattern regularly.  The speakers had some apt, colorful analogy that they could toss into their regular speech.  I was impressed, but it made me wonder what the cause of this difference was, or if I was just imagining it.

Read more »

PHP: The Right Way

There are a lot of pitfalls to using PHP, and they bite new users quickly. “Spot the vulnerability” is a cool site which highlights examples of these pitfalls: http://spotthevuln.com/ (BROKEN NOW)

Of course, PHP is a pretty speedy way to develop any type of server-side web code. Josh Lockhart has put together a list of best practices for PHP development and tailored it to new PHP developers: http://www.phptherightway.com/

If developers would follow the recommendations in the databases section it would take care of so many vulnerabilities out there today. There are parameterized database APIs available for most popular programming languages.

Read more »

Simplify Your Writing

Chapter 5 in Godel, Escher, Bach, section Recursion in Language, has a great example of how my writing needed to be simplified for technical writing. It describes how asides in writing, created by commas and parentheticals, are similar to pushing and popping the writing’s context to a stack. There is always a way to simplify that writing, it suggests.

Pretty smart…

Read more »

Advanced SQL Injection

Ok, here’s a great blog post by Chris Shiflett about a crazy-creative SQL injection technique: http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string

Very cool.  His technique relies on tricking addslashes into breaking up a two byte character with a slash, creating a valid two byte character followed by a valid one byte character.  He mentions that this (specific attack) is impossible with UTF-8 because all two (or more) byte characters have continuation bytes that start with 0b10.  Hrm.

Read more »

"Yoda" Conditions

Here’s a creative idea I’d never considered before.  I’ve written code like this, but accidentally, and then it looks wrong so I change it back.  Here’s a quick example:

if ( 42 == myInt )  as opposed to  if ( myInt == 42 )

The former may be better to use because occasionally we all forget to put that second “=” in there, and we accidentally turn our comparison operator into an assignment operator.  Compilers will complain if you try to assign a value to “42”, but not if you try to assign 42 to a variable, and that’ll make it easier to catch your mistake.

Read more »

LCD Modules

I’ve never built anything with an LCD on it before, but it seems like it’d be useful.  Here’s some good info on creating an project with an LCD and an Arduino:

http://arduino.cc/en/Reference/LiquidCrystal

It’s a library of functions that make it very easy to work with the LCD controller.  The controller has to be compatible with the HD44780 controller’s instruction set, but that’s basically an industry standard.  Mouser has a selection of 20x4 character displays:

Read more »