Monday, July 31, 2006

Seeing the Signs

Justin found out the hard way tonight that those red-pepper looking items in tbe buffet line were actually habenero peppers. As in the insanely hot peppers that you are supposed to use only the smallest hint of.

Instead he loaded up his bowl full of them, and then proceeded to sweat his way through the rest of dinner.

He ate his whole meal and made it out with his pride. His taste buds weren't so lucky.

Better him than me.

--Ben

Office Essentials

Alison had the smart idea of putting up a kitchen supply reordering list. Now we can let someone know when we run out of cups or Mountain Dew (aka Staci's fuel).

I love how someone added their own essential item, right between Styrofoam cups and paper plates.

And they even gave the hints: "very high" for priority and "much" for quantity.

I wonder what I should add to the list?

--Ben

Fonts, fonts and more fonts

Download fonts | dafont.com

A nice collection of freely available fonts -- thanks to Seth Godin and his loyal readers.

Now, if only I had a way to dynamically generate text using these fonts...

Sunday, July 30, 2006

It works!

The mango slicing technique I blogged about earlier actually works.

Gosh, what on Earth did people before the internet? How did lifes big and little problems get solved?

--Ben

Continuations will continue

The other day I was reading this blog post by Philip Wadler who was discussing the topic of whether or not continuation-based servers are here to stay. There seems to be a sense that they may be important now, but in the future, their benefits will be lost (thanks to technologies like Ajax).

I'm in the camp that suggests that continuation-based servers will and should be around in the future. And rather than just explaining, I'm going to try show you why.

Here's the problem I wanted to tackle last night. In general, when developing a web application, it's preferred to use plain text and CSS to control the look of the text. However, this greatly limits your font choices, as you can't depend on people's browsers having that esoteric font you want to use. The solution to this problem is to use images instead of plain text to represent parts of the page that need special formatting. This isn't that hard to do on a small scale. But on a larger scale correcting typos, switching fonts, changing wording, etc. can become a real hassle.

To get the best of both words, I decided I would create a framework that generated an image of text on the fly. That way, the web app wouldn't be any harder to maintain than plain text, yet would produce nice looking images.

What does this have to do with continuations? Nothing, yet. I want to demonstrate that solving this problem with continutions is more straightforward than solving it in a traditional web server.

My continuation based server of choices is SISCweb, which I like for all sorts of reasons. Though I think the solution to this problem could actually happen easily in any continuation-based server.

Before we get into the solution itself, just a quick reminder about how SISCweb represents HTML pages -- it takes advantage of SXML. Essentially, it trades < and > for parens. Compare the following example:

<h1>The Mystery</h1>
<p>
 It was a <i>dark</i> stormy night ...
<p>

versus

(h1 "The Mystery")
(p
  "It was a " (i "dark") " and stormy night...")

Attributes on tags are handled using the notation (@ ...), so you have:

 <img src='myimg.gif' border='0' />

versus

 (img (@ (src "myimg.gif")
         (border 0)))

(If you are thinking yuck! after looking at the above, then it's probably time to read this article.)

And here's my solution to the problem above:

(define (image-text text properties)
  `(img (@ (src ,(forward/store! (render text properties)))
           (alt ,text)
           (border 0))))

(define (render text properties)
   (lambda (req)
     (let ((image (make-image text properties)))
       (send-image/back 'png image))))

(define (make-image text properties)
  ;; lots of java code to do things like:
  ;; (1) Creating a buffered image
  ;; (2) Grab the graphics context
  ;; (3) Write the string into the graphics context
  ;; (4) Crop the image
 )

The top level function in this code is image-text, which you call like:

  (image-text "The Mystery" '((font-family . "Copperplate Gothic Bold")
                              (font-size   . 22)
                              (padding-left . 10)
                              (color        . "#0033FF")))

image-text works by creating an HTML img tag as one would expect. However, the src of the image tag has a rather strange value, it's:

 (forward/store! (render text properties)))

forward/store! is where the magic of continuations come in. forward/store! is provided with a function to call. It doesn't call this function, but instead, returns you back a URL, that when invoked, will call it.

In other words, when the browser goes to retrieve the image (by following the URL of the src attribute), the server will automagically invoke the function returned by render.

If you look at render, it's a function that simply returns another function, which when invoked, will actually call make-image, to generate the needed image.

One of the really cool features of SISCweb is that you can easily call Java from Scheme. In this case, I am taking advantage of the JDK facilities for doing on the fly image generation and encoding.

If you compare the solution above with that of a traditional server, you'll find one key difference. In a traditional server, you need to think of the image tag creation and the actual image generation as two seperate steps. You need to make sure you properly interface the two, by using either the session or query arguments.

With the continuation-based approach, you can think of the process in a natural way. In general the continuation-based server allows you to take any part of your code and generate a URL which, when invoked, will call that code. In the above case, I needed a src attribute that called image generation. In other cases, it may be a src attribute of a JavaScript tag that wants to pull in some AJAX-based code.

One thought that probably comes to mind is: "So what's the big deal? The server generated a URL and a dispatching scheme that I could have hand coded myself without any problems."

True, but one of the lessons we've learned over time in the programming languages world is that the more you can take the burden off the programmer and have him just focus on his problem, the better.

The classic example is garbage collection. Sure, we could all manage our memory manually. It's not that hard on a small scale. But on a big scale, it's a pain. And in the end, you'd just rather not worry about it.

I think continuation servers buy you excatly this - suddenly, tasks which would have required extra thought and code can now be expressed in a natrual way.

The complete solution to the problem I described above also included one other small element. I wrapped the individual image styles in seperate functions, and ended up with:

 (define (h1 text)
   (image-text text '((font-family . "Copperplate Gothic Bold")
                      (font-size   . 24))))

 (define (h2 text)
   (image-text text '((font-family . "Century Gothic")
                      (font-size   . 14)
                      (font-weight . "bold"))))

This allowed me to write HTML as:

 `(div ,(h1 "The Mystery")
        (p "It was a dark and stormy night ..."))

(For those not used to reading the above notation, the "," above calls h1 as a function, instead of generating the literal text h1>.)

As you can see above, the generated image text looks essentially the same as regular text. Mission accomplished.

Java + TrueType fonts on Linux

Install and configure Unicode TrueType fonts in Linux

The above was the simplest tutorial I could find on how to get True Type fonts working with Java on Linux. I used it as a rough guide, and made the following two tweaks:

  1. I didn't have mkfontscale available, so I used ttmkfdir to generate fonts.scale.
  2. The file name has changed in the JDK from font.properties to fontconfig.properties.src. However, the value to add: appendedfontpath=... is still correct.

The cool part is that it appears as though I can just drop all the TrueType fonts from my windows box into a directory, follow the steps above, and *poof*, Java will find and use these fonts when I say:

  Font f = new Font("Alba Super", Font.PLAIN, 22);

I wish this worked without me having to spend 2+ hours looking around on the web for the right steps to follow. But hey, I'm just glad it works.

Friday, July 28, 2006

Exotic Animal - In DC?

Check out this very large and very odd looking moth thing we came across today.

With the heat and humidity today being at rain forest levels, I'm sure this bug felt quite at home.

--Ben

System Administrator Appreciation Day

System Administrator Appreciation Day

Thanks Dave! Your work is really appreciated. Especially when you get up at 2am on Sunday, so I don't have to.

Update: And of course, thanks to Phil too! Without you, my laptop would be just an expensive paper weight. Thanks for keeping it alive and humming.

Thursday, July 27, 2006

Site Design Ideas - Lots of them!

Whenever I need to help design a website, an obvious idea comes to mind. Look around at the web, pick a few web site designs that we/I like, and use them for design inspiration.

This sounds easy, right?

And yet it almost never works. Why? Because the only sites that come to mind are really boring: cnn.com, bloglines.com, slashdot.org and freshmeat.net among others.

The reality is, most of the sites I spend the majority of my time on just aren't designed in any special way. Or, they may have a unique design which fits for them, but why would I want to be like them?

Then, a few weeks ago I came across the following site from LifeHacker:

css-galleries.com

From the name you might think that this website offers CSS templates or something like that for you to plug your website into. That's what I thought and was wrong. It turns out, this site doesn't have much to do with CSS (as far as I can tell, anyway).

This site turns out to be something much more valuable.

It's essentially a gallery, updated daily, of *designed* sites. I've been following it for some time, and sure enough, on a daily basis I now see 10+ websites that have an interesting look to them.

I'm excited to try using this on my next web design project. Instead of scratching my head, thinking of sites to use as models, I can just jump over to css-galleries.com and browse through hundreds of examples.

Finally, no more basing my design suggestions on slashdot.org.

--Ben

Test...

Posting images via my sidekick isn't working. Oy.

I'm not sure who to blame (t-mobile, danger or blogger), but somebody has something broken.

--Ben

Wednesday, July 26, 2006

Design Wisdom

The Elements of Style for Designers - Boxes and Arrows: The design behind the design

Here's some useful design wisdom, as inspired by the classic writer's book The Elements Of Style.

I'm not surprised that the author of this article was able to connect up the advice on writing with that of design. In many ways, writing and programming have a lot more in common than say building a bridge and programming.

Just consider...

  • If you want to be a good writer, read. If you want to be a good programmer, read a lot of programs.
  • There's no strict recipe to follow when writing, it's a creative process. The same is true for crafting a software solution.
  • You can't really edit your own work, you won't see your own errors. The same is true with programming.
  • You need to write and re-write and re-write some more. You need to code, and refactor and refactor some more.
  • Just because you write something doesn't mean you've expressed it well and that you are done. Just because the code runs doesn't mean you can walk away from it - is it maintainable and clear?
  • You can get writers block. You can get programmers block.

And there are probably plenty more parallels as well.

In general, writing, programming and designing are all crafts. I think the more you learn about each topic, the better you can do in any one of them.

Tuesday, July 25, 2006

Mockups and Stories

The Guided Wireframe Narrative for Rich Internet Applications - Boxes and Arrows: The design behind the design

Before you implement any design, you typically want to see it mocked up. And of course, you need to present this mockup to some audience who in theory will buy off on it.

The above article makes a terrific suggestion - instead of just developing the mockups (or in their case, wireframes), develop the mockups and a story to accompany them.

In short, because we couldn't build a prototype (due to time and budget constraints), we built a story.

The above article gives concrete suggestions on how to develop such a story as well as a fairly painless way to present the story.

This could be an especially useful approach, because it's not unusual to present a design with one particular aspect in mind that you'd like to emphasize. Naturally, the client immediately picks up on something totally different (and typically incomplete), and you need to scramble to reset expectations.

With a technique like the one above, you set those expectations as you go along.

Scrum - Lightweight methodolgy meets formality

The other day I heard someone mention the lightweight development process Scrum. I had heard of it in passing before, but didn't know anything meaningful about it. With such a catchy name, I thought I should check it out.

It turns out, it's a really an interesting approach to software development. In many ways it's just like Extreme Programming, minus some of the controversial parts (pair programming, for example). In fact it seems less interested in how you write your code (test first or not) and more interested in creating an environment where you can actually spend your time coding.

What I found most remarkable is that Scrum took shape through formal process development. In other words, this isn't just a process that feels right to developers but actually has the recommendation of people who study processes behind it.

As the Scrum propaganda explains, there are two kinds of processes. Those that are repeatable and well defined and those that aren't. Most software development processes assume that the former approach best describes software development.

Basically, if us geeks would just pull it together and focus, we would have enough definition and repeatabilty in our tasks to make traditonal methods work.

But, of course, we've learned as an industry that this simply isn't true. Development, as much as we wish it were, simply isn't a well defined science.

Take a simple example like "setup tomcat server." Is this a 5 minute job, because all you have to do is download a zip file and follow the instructions? Or is it a 2 week job because you are going to get ClassCastExceptions and have no idea why. Both can be true.

Scrum looks at this reality in development and faces up to it. Its response was to embrace this chaos and to design a process that works with this reality. And because there already is a science for dealing with these types of processes Scrum doesn't need to be designed in a vaccum.

I found this whole story and approach fascinating. As my team grows, and we need a more formal approach to development, Scrum seems like an obvious candidate for adoption.

It's either that, or I can write up our current process, give it a slick name, write a book about it, and earn fame and fortune.

--Ben

The Big Cheese's Birthday

It's my CEO's birthday and he's on the road doing CEO things.

But, that hardly seemed like a good excuse for not celebrating his big day.

So while he's out playing businessman we are enjoying his very yummy cake.

Happy Birthday Chris - and next year may you have your cake, *and* eat it too!

Sunday, July 23, 2006

Introducing Ryann Emilie

Today we got to meet Ryann Emilie for the first time - and boy is she cute!

She's still new to this world, so she basically eats, sleeps, poops and cries - and that's about it. But she does all of this exceeding well.

We are most impressed with her parents, as they make this "having children" thing look easy.

We are so excited to baby sit - Ryann looks like a natural emacs user, I can just tell.

--Ben

Most Inappropriate Toy

Shira and I were just at Toys-R-Us picking up some goodies for a friend's newborn.

Having some time on my hands, I walked around and tried to find the most inappropriate toys in the store.

There were two candidates that came to mind.

The first was the obvious choice of the Barbie dolls that are dressed in totally sleazy clothes. I understand that the doll is going to be all anatomically out of whack (way too tall, way too skinny) - but do you have to dress the doll in clothes that look they belong in a Girls-Gone-Wild video? C'mon - isn't your little girl going to want to copy this?

This seems like a one way ticket to bulimia and body image problems for life.

The second, less obvious choice was the lego set in the attached picture. I love legos and don't mind kids building sophisticated intergalactic armies (heck, my brothers and I did).

But do you really want your 8 year old kid building and playing with an asylum/prison camp scene? Isn't that a bit much? What's next, the Guantanemo Bay prison kit?

So how did I do? Are there worse toys? Am I overreacting?

--Ben

Unexciting Day

You know you've had an unexciting day when the most interesting thing that happens to you is trying a new recipe for Tuna Burgers.

On the other hand, the recipe was quite delicious and fairly healthy (18 grams of protein isn't bad), so maybe I shouldn't be knocking it?

Still, there's just something pathetic about tuna being the hilight of one's day.

--Ben (proving one blog post a time that any subject is bloggable - even tuna burgers)

Saturday, July 22, 2006

Pro Independence

Me, I'm pro independence. America should not attempt to reconcile with Britain, and instead should fight the good fight to be free and independent.

OK, so I'm a little late to the party on this one.

But I just listened to Thomas Paine's Common Sense, and he's pretty much sold me on this independence idea.

I got a bit historical on my last trip to the library and rented Common Sense, the pamphlet put out by Thomas Paine to motivate people to break ties with England.

I guess it worked.

The book I rented wasn't about Tom, or a commentary on his work, but the real deal. Just some guy reading the text of his work.

I was surprised how easy it was to follow and was only tripped up by a few expressions - all of which could be determined through context.

I'd recommend to anyone who wants to write in a persuasive manner that they give this book a listen.

A while back I heard Thomas Paine and others who published similar pamphlets compared to the bloggers of today. The analogy probably isn't far off. He had a strong point of view and wanted to be heard by a large audience. Most of all, he depended on the weight of his words and not his reputation (Common Sense was published anonymously) to get his message across.

I give Common Sense a 7/10 for being both educational and inspiring. Give it a listen, and down with the King!

--Ben

Thursday, July 20, 2006

Cool juggling video

Shira and I thought this was one cool video - the juggling is amazing, and the camera angles are unique.

Jeff G. - I assume this guy learned his tricks by watching you?

Fun in the sun


The first toss
Originally uploaded by benjisimon.
Today we had a really fun day at work as it was our company picnic.

I was really impressed with the amount of planning and effort that went into making this such a cool day. We played volleyball, tossed around water balloons and hit golf balls among other activities.

I also learned my development team is the best volleyball team in the company -- who knew?!

See more pictures here.

A Hacker's Introduction to Partial Evaluation

A Hacker's Introduction to Partial Evaluation

This is an interesting and mind bending discussion on the topic of partial evaluation. Knowing nothing about this subject, I found this to be useful, if not a tad bit overwhelming, introduction.

I also liked the code examples the author chose to develop. He managed to show how a passing around functions and overriding primitives can make for surprising clear code.

If you are a Lisp geek, and want to expand your horizons give this paper a try.

And may you be luckier than me and not need 3-4 close readings before you start to see the light.

--Ben

Mapping Done Well

Zillow.com - Real Estate Search Results

Zillow is an example of a mapping UI done well. Using Zillow you can enter an address and see the housing prices for both the location you entered as well as the surrounding area. The UI is really smooth, allowing you too zoom in and out to get a different view of prices in an area.

I even like their cute little message they display between searching and your results:

Searching 65,000,000+ homes...this may take a few seconds.

Play around with UI - I really think it's mapping done well.

Though, I should mention that I could do without all the banner advertising on the sides and top of the page. But that's another story.

Caffeine: The Caffeine Corner

Nutrition Action Healthletter - Caffeine: The Caffeine Corner

Shira and I were just wondering what the caffeine content of Green Tea was, and I came across this link on BoingBoing.

Green Tea weighs in at 30mg, which is pretty hefty considering it kinda qualifies as a health drink. On the other hand, it's no worse than a 12oz. cola (35mg) and considerably better than a "Coffee" (135mg).

What I want to know is, who can get away with drinking a 16oz. Starbucks coffee (550mg!) and not consider checking themselves into a rehab center?

The AIM BudgetBot

Hack Attack: The AIM BudgetBot - Lifehacker

Here's a clever idea - track your budget through AIM.

I've written before about how useful I find AIM bots. This is especially true on the sidekick, which has a really powerful instant messaging client.

My two favorite bots to date are the AOLYellowPages bot and the SmaterChild bot.

The AOLYellowPages bot is nice for obvious reasons - I can lookup phone numbers on the go really easily. SmarterChild turns out to be nice because it offers a wide variety of services - my favorite of which include spell checking and a dictionary. This has saved my butt quite a few times when I'm away from a computer, but still need to spell a tricky word (And even a not so tricky word. Or even a really basic word.)

SmarterChild can also be used as good entertainment for kids, as it will allow you to play simple games such as hangman and word scramble

Give these bots a try and think about how cool their user experiences are. At some point, someone's going to catch on to the power of this interface, and we'll start seeing more and more of them.

Tuesday, July 18, 2006

Restaurant Review: Bistro Med

A few nights ago Shira and I had a meal at Bistro Med in Georgetown.

The food was mixed, as was the service.

The bread was really fresh - as in burn your fingers while tearing it - fresh. And the hummus was good too, it had a bit of spice to it that made it unique.

On the other hand my spinach melt was nothing to write home about (though the fries were good!).

The biggest let down was Shira's salad. She ordered "the very berry and apple kiwi salad." It was described as various berries and other fruits over field greens. In reality it was a bunch of kiwi chunks, a handful of blueberries, and some slices of apple all placed on top of what appeared to be less than fresh bagged iceberg lettuce. Yeah, it was that unimpressive.

The waitress was nice, but wasn't quite in sync with our meal (I'm assuming they were short staffed). For example, she brought us hummos but no bread along with it. When we did ask for pita/bread, they brought one piece.

Eating hummos without pita is kind of like bringing out the dipping sauce for wings, but not actually bringing out the wings. Sure, it's a good start, but it doesn't leave you with something you can actually eat.

Overall, I give the place a 6.75/10. The food that was good was really good, and the rest I think I can write off as bad choices/unlucky.

Just, whatever you do, don't fall for the slick advertising of the salads.

--Ben

Monday, July 17, 2006

Jewelry Hack

I just left Jared from picking up a repair for Shira. While waiting for my credit card to be processed this woman came in to get her ring inspected.

Only she had one problem - she couldn't get the ring off.

The salesman took one look at it and said "no problem, I'll grab the windex." Windex, I kid you not.

I took a look at her kinda swellen finger and though "no way, there's simply no way that's coming off."

He sprayed a squirt or two on her finger, and sure enough, off came the ring - no problem at all. I was blown away.

So there you have it, Windex as a ring remover.

Maybe they were on to something in My Big Fat Greek Wedding.

--Ben

Sunday, July 16, 2006

At the Canal

Us at the Canal in Georgetown.

The sun was almost down, so the quality is basically yuck.

Had a fun night playing the role of romantic couple strolling the streets of hip Georgetown. Hey, even I can pull that off every once in a while.

--Ben

Trendspotting with Google Suggest for Google News

Micro Persuasion: Trendspotting with Google Suggest for Google News

This is a clever hack to see what people are interested in.

Friday, July 14, 2006

Phrases You'll Hear

Phrases to make your EARs ring

An excellent list of phrases you'll hear in the media regarding Isreal and this latest conflict.

Including...

  • "Cycle of Violence"
  • "Disproportionate use of force"
  • "Peace Process"
  • "Exercise Restraint"

Well worth checking out.

Thursday, July 13, 2006

SMS for Geeks

SMS (Text-Messaging) Shorthand for Geeks Using Server Response Codes

A cute list of SMS shortcuts for geeks. Think of it as 10 codes for hackers.

If you find this even remotely funny, then you are a geek. Congrats.

Via: LifeHacker

Staying on Message

I was reading this cool paper on using Logo to teach programming to kids. The idea being that it's better to teach kids to "program the computer" than to have the "computer program the kid."

This of course makes terrific sense, because the skills one learns when programming are essentially just problem solving skills that can be applied to much of life. The paper is also written in the form of a collection of ideas for using a computer and programming fairly non-traditional things, like generating movies, music, robots, which I also enjoyed

I realized that the author of this paper, Seymour Papert was also part of the One Laptop Per Child project. This makes a lot of sense, because the OLPC project is essentially building on the idea in this paper - give every kid a computer, so they can learn to program, so they can learn to think.

No surprises there.

In fact, the paper ends with the comment:

Only inertia and prejudice, not economics or the lack of good educational ideas, stand in the way of providing every child in the world with the kind of experience which we have tried to give you some glimpses [of in this paper]. If every child were to be given access to a computer, computers would be cheap enough for every child to be given access to a computer.

Again, no surprises there.

Well, maybe one surprise. The paper was written in June 1971. Yes, that's right - 1971. Sure, it mentions the expensive cost of teletype interfaces - but the concepts in it are just as sound now as there were 35 years ago.

If you are an educator, I encourage you to check out the above paper, as well as other logo papers. No matter what subject you are teaching, do your students a favor and teach them how to program

For the rest of us, this is a great example of taking something you believe in and sticking with it no matter what. Sure, the technology may change, but the ideas don't.

Tuesday, July 11, 2006

You know you have been working on a design too long

When you know the color pallet so well you can get by with a grayscale version.

What's next? Compliments like: Ahhh, I just how that shirt brings out the #1A22FF in your eyes?

--Ben

Automatic Image Layout

A List Apart: Articles: Automatic Magazine Layout

The above is a handy article that talks about automagically laying out images in a visually pleasing manner.

Actually, the auto generated technique looks better than I probably would have come up with on my own.

Handy stuff.

Monday, July 10, 2006

Seth's Blog: What should Digg do?

Seth's Blog: What should Digg do?

Gosh Seth is smart. In the above article he lays out a really clever business plan for Digg (not that Digg asked him to, I guess he's just a nice guy).

I especially like that the business model is a win-win for everyone, and at it's heart is very simple.

So, next time you think that the only way to make money on your site is to charge for access, or to throw up ads, think again.

Find great podcasts

I'm a big fan of podcasts as a way to fill up gray time. But where do you find cool programs when there's so much junk out there?

I'm glad you asked. I'm even more glad LifeHacker answered.

Check it out, and you'll have plenty of things to listen to.

Zappos - advice and inspiration

First, some advice on buying shoes from Zappos.

Zappos has a really impressive return policy - "free shipping both ways" as well as 365 days to return stuff. So, when buying stuff from them take advantage of it and buy a couple different sizes - get the 7, 7 1/2 and the 8. That helps reduce the annoyance that shoe sizes are so inconsistent.

Now for inspiration.

I would think that shoes would firmly fall into the category of things you "just can't sell on the net." They don't have rigerous standards like sizing and styles. And your typical shoe shopper wants to actually try them on to see how they fit and feel.

So what did Zappos do? They leverage what the net is good at (massive inventory, price, reviews, etc.) and mitigate the other issues with policies that are nice and generous.

It's a simple recipie - yet still impressive when done well. And they do it well.

--Ben

How to Cut a Mango

How to Cut a Mango

It's always been a mystery to me how one should actually cut a mango. I usually end up with a big soggy mess and lots of frustration, as I attempt to saw through the gigantic pit in the middle.

But not any more, thanks to the above link.

Warning: I'm pretty sure you'd lose a couple corners off your Totin' Chip if you followed the exact instructions in the link above. And we wouldn't want that, would we? So be careful.

Via: LifeHacker

Sunday, July 09, 2006

Web Whiteboard

Imagination Cubed

The above is a link to a very cool, lightweight, collaborative whiteboard. It has a very slick UI, and the ability to "play back" the drawing you have made.

There's no signup needed to get started, just hit the above link and start drawing away.

Now, if I just had a tablet attached to my laptop, this application would really rock.

Via: LifeHacker

Ten things programmers might want to know about marketers

Seth's Blog: Ten things programmers might want to know about marketers

The above is a fun list by Seth Godin about what programmers should know about marketers.

I really liked #6:

Truly brilliant coding is hard to quantify, demand or predict. Same is true with marketing.

And when you are done with the above list, check out Nine things marketers ought to know about salespeople.

Having been in a business that focused on self-service I really got a kick out of #9:

I know you'd like to get rid of me and just take orders on the web. But that's always going to be the low-hanging fruit. The game-changing sales, at least for now, come from real people interacting with real people.

Writer's block? 10 Killer Post Ideas

10 Killer Post Ideas | Performancing.com

You've just created your blog. Now, what do you write about?

The above link points to an article that gives you some really good suggestions.

Via: Micro Persuasion

WikiBios.com - Ben Simon's Biography

WikiBios.com - Ben Simon's Biography

Cool - another way to make my life an open book!

I think I've reserved my name...now I just need to find time to fill in the details.

Update: Actually, I was wrong. I don't need to fill in the details. They explain in a signup e-mail I got:

Congratulations! You have created your own online biography at WikiBios.com, the site that believes everyone deserves to have their story told. While we encourage you to edit and create new biographies for your friends, we simply ask that you do not edit your own WikiBio. Trust us, it’s better this way.

Very interesting. So, anyone want to edit my biography? I'll edit yours!

Israel, Gaza and True Intentions

TIME.com: Remember What Happened Here -- Jul 10, 2006

I read the above article in Time and really thought it captured well an important aspect of the Israeli, Palestinian conflict.

Israel withdrew from Gaza, the Palestians respond by waging war. How is that OK? Why isn't the international community up in arms? I just don't get it.

Thursday, July 06, 2006

Free Guide for Google AdWords

http://www.allbusiness.com/blog/JustForSmallBusiness/3357/006236.html

Of late, I've had a number of converstions with folks who are interested in taking their business online. One topic that always comes up is: "where do I get my customers from?"

Luckily I have a really easy answer to this question - Google AdWords. For a relatively cheap amout you can advertise pretty much anything you could image to people who are looking for your product! And you only pay when they visit your website. How can you go wrong/

I'm glad I found the above link as it points to a free guide that explains how to use AdWords. Now I can give them the above answer and provide them with some followup details.

Just the other day I caught a podcast where the (once?) head of Excite was explaining why they didn't become Google. I was excpecting him to mention the PageRank algorithm. Nope, instead he said that Google figured out AdWords and Excite didn't.

He explained that AdWords turns the traditional advertising model on its head. You can now advertise to any size audiance you want for a remarkably cheap price tag. This something that just wasn't feasible to do.

And of course he's right. The gagillions of dollars Google makes from AdWords allow them to dabble in whatever else they want.

--Ben

Text Me

TxtDrop is providing an interesting service - they provide you with a form to allow poeple to text you without exposing your phone number.

So, go ahead and try it - send me an SMS message...


txtDrop.com

Via: Textually

Wednesday, July 05, 2006

This could all be yours

5 bedroom brick home in Arlington, with a view across the street of the Simon Residence.

All this can be yours for the excellent price of $875,000.

Hurry, supplies limited.

--Ben

CSI Arlington

Tonight Shira and I came across a fairly unusual sight on our way to dinner, a bunch of local streets were closed down in Arlington..

As we drove by we saw an ATF agent talking to an Arlington cop. It was a little less dramatic than on TV, as they were using a mini-van to haul around their gear instead of black Chevy trucks.

According to the NBC4 article below, there was a shoot out between some ATF agents and some bad guys that ended up with the bad guys barricaded in a house 2 miles from us.

Just another quiet evening in safe and secure Arlington.

NBC4 - Police Standoff Under Way After ATF Shooting

--Ben

Cool Tool: Painting Idea

Cool Tool: Qwikie

Note to self: next time I paint something (or have someone else do the job) I should pick up a few Qwikie's so that touch ups are nice and easy.

Tuesday, July 04, 2006

Waiting for the fireworks

Shira and I staked out our now traditional spot to watch the fireworks. You get a pretty good view of the DC and surrounding area's shows, and it's just a few minutes walk from our house.

This year I learned my lesson and didn't actually take any photos during the show. In years past, I would spend so much time taking pictures that I wouldn't really end up "seeing" the fireworks.

Oh well, my pictures never came out that great anyway.

--Ben

Monday, July 03, 2006

Me. Hot. Very. Hot.

Had my first run in a while, and it was on a 90 degree day. So it essentially kicked my butt.

But on a good note, I figured out solutions to two of my problems. The magic words? Iframes and inline editing.

--Ben

Yenta Notes - Jewish Mother Ringtones

Yenta Tones

Finally, a ringtone with the word fakakta in it!

Yet more proof that you can find anything on the internet.

Why Design Is Hard

Seth Godin pointed out this very interesting article about graphic design and context. I thought the article captured very well one of the reasons why graphic design is so tricky.

In contrast, when designing software you can often sketch a basic design on paper or in your head, and then validate it before implementing it or even adding details.

Is the design modular? Does the design build up useful abstractions? How about encapsulation? What can be changed about the implementation before the design breaks down? Is this design built up of known patterns? How about anti-patterns?

If you get satisfactory answers to questions like those above, you know it's safe to proceed.

But as the article explains, and my experience confirms, graphic design doesn't have this luxury. Why? The reason given in the article explains the need to validate a design in context.

One example given is that of choosing a font for a design. He had suggested using a generic sans-serif font. Of course his customers were disappointed. Yet, as he explained, the Chanel (as in Chanel No. 5) logo is made up just such a simple sans-serif font. The point is, in then context Chanel uses it, a plain sans-serif font works great.

The bottom line is that you can't evaluate a design until you see it in context. And you can't see it in context till you've implemented the design. In other words, you can't decide if a design is worth moving forward on until you've moved forward on it. Tricky, eh?

So, what can you do about this? The only two things I know to do are: (1) Setup an environment where it is easy and expected to try different designs - both from a technical and political perspective. (2) Have an expert designer on the case, so that she can use her experience to help rule out at least some design ideas that she knows won't work well.

Sunday, July 02, 2006

The Happy Couple

Lauren and Nick - in just 11 months and 1 day they will be husband and wife.

For now, they are off to someone else's wedding.

--Ben

Update: What's up with the super high contrast photo? It appears as though my new sidekick takes photos with the contrast set too high. I'm not sure how to fix that - but I'm on it. Any sidkick hackers out there have any suggestions of what to try?

Sunday in DC

What do you do when you have guests in town? You take them to Jared of course!

We needed to get Shira's watch resized and Lauren and Nick needed to look at wedding rings.

Shira was a real trooper and occupied herself browsing through the store and looking at diamonds while Nick and Laruen were shopping.

Shira "tried on" a 1.5ct and 2.0ct diamond ring. Boy, was that a sight to see.

--Ben

Saturday, July 01, 2006

First Post

This is my first post from my brand new sidekick! So here are some random thoughts about the new sidekick 3....

- The device is smaller than the sk II. In general that's a good thing, though the shoulder buttons will take some getting used to.

- The software on the device, with the exception of the presence of a music player, is the same as the sk II.

- Bluetooth works with my Acura TSX

- The edge network appears to be nice and fast. Though I'm not sure how mlmuch faster.

- The keyboard is a bit different than the sk II - still solid, but a bit more "plasticy." Still, it's a very good keyboard - mostly just different

- The trackball works well and is very natural to use

- The camera seems improved - though the attached shot was taken in low light, so that's not fair

- The fact that all I had to do to get my new sidekick setup with all of my previous settings was to drop in my SIM card, is amazing. It's the easiest phone upgrade I've ever had.

Am I glad I upgraded? Yes! The new device appears to rock.

--Ben