I typically avoid joining each new social networking thingy that comes
along, but I’ve joined two lately.
The first was LinkedIn. You can view my
public profile here, feel free
to add me if you’re so inclined. My email address associated with me
there is larrywright at gmail dot com.
The second one was Twitter, which is a new-ish
site from the folks at Odeo (which, as an aside,
was recently bought back from the
investors - way
to go Ev), that lets you keep up with what
your friends are doing at any given moment. You can send and receive
updates via text messages, the web site, and now by instant message.
Pretty cool. View me here, and feel free to add me as a friend if you’re so inclined. Or come to to my home page and look at the left hand side of my page
to see what I’m doing at the moment. As if you care.
On an unrelated note, things have been a little quiet lately, due to
other commitments. Things are quieting down a little now, though. I’ll
have some more technical posts up soon(ish).
A random sampling of the things that I’ve found interesting lately:
Airplane Seat
Etiquette
- If you ask me, reclining your seat on an airplane is a declaration of
war. There are few things in the world that are ruder.
Mark Fletcher leaves
Bloglines
- He’s technically leaving Blogline’s owner Ask,
but that’s a minor detail. I was a happy Bloglines user for a long time,
but it started to lag behind the other readers. I’m a happy
Feedlounge user now.
Interactive Capistrano
Shell
- This has some potential for a lot of uses outside of Rails (system
administration in particular).
Video - Woman Calls 911 Over Wrong Burger King
Order
You really have to hear this to believe it.
Cheat - Cheat is a command line tool
similar to ‘ri’, but it prints out a cheat sheet for the command you’ve
specified. Awesome.
One of my favorite organizational tools is
Instiki. I use it for note-taking, maintaining
reference information, and keeping lists. I have several lists that I
keep in tables, and the other day I had need to make them sortable.
Here’s how I did it.
The first thing you need is Stuart Langridge’s
sorttable Javascript
library. This is a library that allows you to make any table sortable,
just by giving it a class of “sortable”, and a unique ID. It’s smart
enough to figure out how to sort most kinds of data, so it will sort a
date column as a date, and a number column as a number. Very cool piece
of code. Anyway, take this Javascript file and put it in the the
public/javascripts
directory for your Instiki installation.
Next, start editing the page with the table that you want to make
sortable. At the top add the following declaration:
Next we’ll modify the table. Usually tables in Textile look something
like this:
|ID|Name| |1|Joe Smith| |2|Susie Jones| |3|Bob Barker|
We need to add a table declaration and associated modifier in order to
give it a CSS class of sortable, and a unique ID:
table(sortable#mytable) |ID|Name| |1|Joe Smith| |2|Susie Jones| |3|Bob Barker|
The class name has to be “sortable”, but the ID (the part after the #)
can be anything you want as long as it’s unique.
Save your changes, and you should now be able to sort by any column in
your table.
I recently came across a presentation given on migrating a very
large database (as in, tables with 1.8 billion rows) from Oracle to
PostgreSQL. It describes some of the issues they had along the way,
including having to move from Linux to OpenSolaris due to stability
issues.
One of the more interesting challenges they had to solve was the lack of
support for partitioning in PostgreSQL. Oracle allows you to partition
tables, so for example if you had a large table, you can cluster the
data into various segments - dates in their case. The reason for doing
this is to allow you to put less frequently accessed data on cheaper
storage (say, SATA instead of SCSI).
The solution in this case was to use PostgreSQL’s support for table
inheritance (implementation details in the presentation). This allowed
them to easily add and delete new partitions. Database archiving is
always a hassle, and it also seems like this might make that easier as
well.
I’ve never used inheritence in PostgreSQL, so I don’t know what kind of
overhead it adds, but no performance issues were noted in the
presentation. Regardless, this seems like a very interesting solution to
a pretty common problem.
[preso]http://www.lethargy.org/~jesus/archive%20s/66-Big-Bad-PostgreSQL.html
Free Programming and Computer Science
Books - No explanation needed
Getting Started With Getting Things
Done
16 Year Old Guitarist Plays Pachelbel’s
Canon
Guy Kawasaki - Ten Things To Learn this School
Year -
Includes “How to survive a meeting that’s poorly run”, and “How to
explain something in thirty seconds” among other great advice.
Geek to Live: Top 10 free and cheap productivity
tools
- My favorite: Pen and Paper (second favorite: plain text).
I tend to read a lot. I’m one of those people who has four or five books
in various states of being read at all times. I’m always interested in
what other people are reading, so I thought I’d share the books that I’m
currently reading, or have just finished:
Practices of an Agile
Developer
- I’m about 1/2 way done with this one. I like it so far, but I’ve liked
every book from the Pragmatics that I’ve read. This is a great
introduction to what Agile development looks like from the perspective
of a developer, rather than a manager. Even if you’re not doing Agile
development, it’s a great book on the foundations of being a great
programmer.
The Tipping
Point
- I swear I’m probably the last person to read this. Great read, and
definitely an interesting concept.
Pragmatic Version Control Using
Subversion
- I use Subversion on a daily basis, but this has helped with some of
the advanced features.
Developing the Leader Within
You
- John Maxwell is my favorite author on leadership. I’ve read several of
his books, and I’ve found every one very usefull.
CSS Mastery: Advanced Web Standards
Solutions
- CSS isn’t my strong suit, so this book has helped quite a bit. It’s
not a CSS 101 book, it’s for taking your use of CSS to the next level.
Yes, those are affiliate links. Help feed my addiction.
What books are you reading? Leave a comment and let me know what’s on
your reading list.
Ten Things You Shouldn’t Buy
New
- The usual suspects are here, but there’s some things I hadn’t
considered.
The Complete Running Network - New blog
dedicated to running. I’m trying to get back into running, so this is a
useful resource.
Writing a Typo Sidebar Test
First
- Just what it says, good insight into the process.
Datebocks - Intuitive Date Parsing -
Javascript library that let’s you handle dates like “Tomorrow”, and
“Next Friday”, as well as more traditional date formats. Also available
as a Rails Engine.
Beast: An open source Rails forum in under 500 lines of
code
- New Rails forum software from Rick
Olson. Get the source
here. Even if you have
no need for forum software, it’s a nice example of a small Rails app.
I found an interesting pair of articles recently covering the topic of
salaries. The first article, Why secret salaries are a baaaaaad
idea,
makes the case that all salaries should be public within a company. The
arguments are pretty compelling, especially since I just finished
reading Ricardo Semler’s book
Maverick,
which is an extraordinary book about an extraordinary company in Brazil.
Among other things, employees set their own salaries, which are public.
The argument for doing this is essentially two-fold: 1) It keeps the
employer honest, discouraging inequities in pay, and 2) It keeps the
employee honest as well, as employees that are higher paid will feel
more like they have to work for it, since everyone knows how much they
are making. I see the point in this, and at least conceptually I like
the idea of having an open company, in which most details are known to
all (in the case of Ricardo Semler’s company, profits and expenses are
open to all as well).
This evening however, I found an interesting
article by Eric
Sink (who coincidentally lives only about 45 minutes away from me) that
makes the case for keeping them secret, but acting as if they were
public. His rationale is that people value their privacy, and
communicating everyone’s salaries to the entire company violates that.
He advocates keeping the salary list “clean” though, as if the salaries
were public:
So I think secrecy about compensation is important, but it should be
for the purpose of protecting the privacy of individuals, not for the
purpose of obscuring the fact that management is doing things they
know to be unfair.
All in all, I think this is an interesting topic. I admire companies
that disregard convention and defy traditional rules of business, but on
the other hand I can see the point of the traditionalists with regards
to things like salaries as well.
What are your thoughts? Ever work for an “open” company? What was it
like?
Afterthought: It’s stated above, but I’ll repeat it again. If you
want to read about a company who has open salaries, and why, you need to
check out the Ricardo Semler book Maverick. It’s not just about
salaries, there are lots of other innovative ideas in there as well.
It’s well worth the time to read.
“We should be taught not to wait for inspiration to start a thing.
Action always generates inspiration. Inspiration seldom generates
action.”
Frank Tibolt
“Far better it is to dare mighty things to win glorious triumphs, even
though checkered with failure, than to take rank with those poor spirits
who neither enjoy much nor suffer much, because they live in the gray
twilight that know not victory or defeat.”
Theodore Roosevelt
Via Garret Dimon
I’ve been interviewing people (mostly programmers and management/leads)
for about 7 years. I would guess I’ve interviewed over 100 people (if
you include college recruiting job fair “mini-interviews”). In that
time, I’ve seen and heard some amazing things. I won’t share horror
stories, because that’s not terribly helpful. Instead, I’ve put together
a list of 5 ways to interview well. Without further ado:
1. Show up.
This seems obvious, but let’s elaborate a little bit. Show up on time -
early even. But not too early, as that’s often more annoying than
showing up late. 10 minutes early is fine; 30 minutes is not. You may
want to ask the company you’re interviewing with how early to show up,
as sometimes there might be paperwork to fill out. Be prepared -have
extra resumes, samples of your work, etc. Know something about the
company you’re interviewing with. You shouldn’t have to ask “What does
your company do”, unless it’s one of those super-secret startups that
wants you to sign an NDA to walk in the front door (in which case, run
for the hills).
2. Make a good first impression.
Dress sharp: when unsure, wear a good quality suit that fits well. It’s
perfectly fine to ask the company you’re interviewing with what the
appropriate attire would be; these days, corporate dress codes are all
over the map. You should always strive to be dressed at least one or two
levels above the person you’re interviewing with (unless they’re wearing
a suit - no need to don a tuxedo).
3. Ask questions.
Nothing makes a job candidate seem less enthusiastic than when they ask
no questions. Here’s a tip though, don’t ask too many questions about
money. It can make you appear greedy, and people will start to question
if that’s the only thing that matters.
4. Don’t complain.
If you’re leaving a bad situation (boss is a jerk, company went down the
drain, etc), it’s tempting to complain about your situation. Don’t.
Nobody wants to hire a whiner, which is exactly how you’ll come across.
It’s ok to talk about things you didn’t like, but don’t dwell on it.
Talk about the things you liked about your job as well.
5. Don’t lie
You can recover from just about anything else on this list, but this one
is fatal. If you pad your resume, you will be found out - don’t even
bother. Furthermore, “I don’t know” is an appropriate answer to a
question. If I ask if you’ve done X with ABC database, don’t try and
bluff. Just say “No, I haven’t yet had the opportunity, but I’d like to
learn how”. I can’t emphasize this enough. I’ve passed on several
otherwise qualified candidates because they put some skill on their
resume that they didn’t actually have. Lying never, ever works in the
long run.
Above all, be yourself. Be relaxed, be natural, and be honest. You’ll do
fine.