21 Feb
2010

Restaurant review: Pairings

Berkshie PorkI’m not sure why Bonfire is gone and Pairings has taken over, but the quality has dropped dramatically. Forgettable service, poor execution and scattershot menu combine to make Pairings a must-miss.

I booked a table for 7:15pm on Valentine’s Day; Krystal and I arrived to a nearly empty restaurant and a missing hostess — she also had to work coat check and was running back and forth.

The menu was all over the place: Italian firsts, Asian and Continental mains and French deserts, none executed well.

The Ravioli Carbonara was a single ravioli in a bowl of extremely salty,  thin, non-creamy sauce. The texture pushed the limit of al-dente, a bit too firm.

The Berkshire Pork looked nice but execution was off. The sausage accompaniement was overcooked to dryness. Broccoli sauce was underseasoned with awful flavor and texture. Several of the components did not work well together.

Creme Brulee was paper thin and so warm it became runny. The Lemon Tart was the best dish of the night: a nice balance of sweet and citrus.

Service was slow. Server was not knowledgeable about the menu or the wine list. It took nearly 20 minutes to get a check after final dishes were cleared, and that was only because we flagged down the manager.

The wine list was neither extensive nor impressive. Absolutely no vintage bottles listed, their best was a 5 year old bottle of Chianti. Pathetic for a restaurant called Pairings.

A big disappointment overall, especially at $60 per person. Based on the lack of turnout for Valentine’s I guess the word has gotten out. Hopefully when Pairings shuts their doors Todd English can bring Bonfire back.

11 Feb
2010

My quest for a pain free workstation - part 2

This is the second post in a series about pain-reducing improvements I’ve made to my workstation. For more detail on the genesis of the problem, read part 1.

trackmanSome of the earliest pain I experienced while working was in my right hand. It didn’t take long for me to realize that  it was being overworked. Constant jumping between the mouse and keyboard and using the cramped laptop keyboard and track pad were causing a lot of trouble.

For years, I had used a trackball on my home computer; it was fast and pain-free. So I bought another Logitech TrackMan to replace my mouse at work. It worked great for a few weeks, but then I started to notice pain in my thumb. The constant thumb movement with this particular trackball became painful over the course of an eight or ten hour day. It also did not solve the problem of moving between the mouse and keyboard frequently. My right hand is dominant, so I was using it for most keyboard commands in addition to mousing.

I decided that since my right hand was being overworked, I would switch mousing duties to my left hand. I switched back to a normal mouse, since the trackball was right hand-only and  made a cold turkey switch to mousing left-handed. It was pretty awkward at first. I did not reverse the buttons, so I had to either hold the mouse diagonally, or use my middle finger for primary click and index finger for secondary. It made me hold my hand on top of the mouse instead of palming it, so I didn’t rest my arm weight on the mouse and that was good for my wrist.

Moving the mouse from right to left also gave my workstation a more convenient layout. Keyboard was center with attached number pad on the right and the mouse on the left. So the left-side mouse was closer to the main keyboard than my right-hand was. And there was less pain because I did not need to hold my arm out; I could just let it hang naturally at my side and would still able to reach the mouse.

It probably took two months to get used mousing left-handed. Most tasks were manageable early, but touchy things, like working in Photoshop, took a while to get right. Today I can be as pixel perfect with my left hand as I am with my right. Although switching to the left-handed mouse did not totally relieve all pain, it did help with my right hand and arm so I have not switched back.

In the next post of this series I plan on detailing some of the equipment changes I’ve made at my workstation.

9 Feb
2010

My quest for a pain free workstation - part 1

hand painAbout three years ago, I started experiencing arm, wrist and back pain while working at my computer. It was not consistent and the combination of painful areas would change. Sometimes I had hand and wrist pain, usually in my right hand. Other times I would feel pain in my arm near the elbow. Occasionally, I had numbness or tingling in my third and fourth fingers on both sides.

I had taken a new job at HubSpot around the time I started experiencing pain. It was pretty obvious that the small laptop keyboard and extended hours were causing trouble. I went about a year with the pain getting gradually worse before I finally went to a doctor. I was diagnosed with ulnar nerve inflammation and inflammation of various hand muscles.

The doctor put me on an anti-inflammatory medication regiment, but it made almost no difference and taking six pills a day was annoying. The best way to reduce pain and inflammation would be to change the amount I work, or the way I work. Not wanting to work less (I love my job) I decided to try making changes to my work environment instead. So I began making incremental improvements to my workstation to reduce or mitigate pain. I’ve made several changes, gradually adding layers over time. I’m going to write about these improvements in a series of forthcoming blog posts, so stay tuned!

Read Part 2

4 Nov
2009

Swine flu ribbon

In honor of all my friends and colleagues who are battling the swine flu.

Swine flu ribbon

3 Nov
2009

San Diego Dining

I recently spent a few days in San Diego, CA with my girlfriend. We tried lots of new restaurants and I managed to snap a few pictures of the food before it was devoured. Here’s a quick photo recap for some of my San Diego dining experiences.

In-N-Out Burger

In n out burger

Although I’ve traveled in the western States before, I had never actually tried an In-n-Out burger before. It was good, but not great. It actually reminded me a lot of Wendy’s but the patties were round instead of square. Next time I go to In-n-Out I will be ordering off the secret menu.

Kono’s Cafe

Kono's Cafe

We found this place through yelp, and the reviews were astounding, rightfully so. Kono’s is a small breakfast joint with seating outside, right on the beach. The eggs were amazing, the potatoes were grilled with green chillies and cheese, the pancakes were fluffy and delicious and the bacon was perfectly crispy. I could not have asked for a better casual breakfast.

Cafe 222

cafe222

Cafe 222 was featured by Bobby Flay on the Food Network show “The best thing I ever ate.” His favorite dish there was the Peanut Butter and Banana Stuffed French Toast. Being a big French Toast fan myself, I had to try it. Overall the dish was pretty good, but not amazing, but there was lots of other great stuff on the menu. Get there early, the breakfast queue fills up fast.

Tender Greens

Tender Greens

On our last night in San Diego we were staying at a hotel in Point Loma, near the airport. It’s also a very residential area. Yet, according to Yelp there was a great restaurant called Tender Greens walking distance from the hotel. So we trekked off into the dark neighborhood and eventually found a small plaza nestled between houses with a few shops and restaurants. Tender Greens is an interesting concept, the menu is very simple and you have to order, serve and bus your food yourself. However, the food was all amazing. I had roast chicken, mashed potatoes, a baby spinach salad with toasted hazelnuts and a pumpkin tart for desert.

23 Jun
2009

The time for a better Apple TV is now

AppleTVWhile catching up on my RSS feeds tonight I noticed a couple posts talking about a live event Boxee was planning. At the event they ended up announcing a Windows version of the software, integration with Digg, Tumblr and MLB.tv. The last item stood out the most, it’s probably the first time that decent web video content is available on a TV connected device, and a sign of things to come.

TV-connected devices seem to be few and far between, and none of them are any good. Microsoft gave it a shot with their Media Center edition of Windows. Netflix has Roku. There’s the Slingbox, and then there’s the AppleTV. I always thought of the AppleTV as an iPod for your television, but it could be so much more. In fact, it’s barely even fufilling the iPod promise. The iPod touch has far outpaced the AppleTV in terms of innovation: Browser, Games, App Store, etc. I have an AppleTV in my living room but I never use it. There’s just nothing compelling about it for me. Sure I could hook it up to my desktop and transfer some media over, but that’s not what I want. I would much rather have access to free, on-demand programs, a decent web browser, and maybe some games.

Now is the time for Apple to truly innovate on the AppleTV. Steve Jobs will soon be returning from his medical leave of absence and he needs a new project. The iPhone was arguably the primary focus of Apple’s efforts for the past couple of years, and they’ve totally wrapped up the market: Tens of millions sold in hundreds of countries, App Store with half a million apps and over a billion downloads. The iPhone project is done, not that there won’t be improvements but the most chalenging parts are far behind. Jobs could take the AppleTV and finally deliver on the promise it set forth years ago. Maybe the project needs an entire reboot with a new name that fits, like iPod TV or even iTV. Personally, I don’t think Apple will get into the TV manufacturing business, but it wouldn’t be unheard of: Apple loves making it’s own hardware even in super competitive spaces (see iPhone).

No matter Apple’s intentions, the stage is now set. Boxee is looking to innovate and hopefully dominate in a market that has been sorely underserved. Apple is the only established player who has a chance to succeed, if they’re up to the challenge. Luckily for consumers it doesn’t matter what Apple does, the market is going to grow with or without them.

3 Jun
2009

Cygwin and Maven Deploy

CygwinA few days ago I completed some work on the Facebook Java API open source project and I wanted to create a snapshot release with the new functionality. The Maven snapshot repository is hosted by a member of the project and it uses public/private keypair authentication. This is a fairly common setup for Maven repositories. Unfortunately, I couldn’t get the Maven deploy plugin to work.

My workstation is running Windows 7 with Cygwin, and from a Cygwin terminal I was able to ssh to the repository just fine so I knew the public/private keys were correct. However, whenever I ran the Maven deploy command, the private key wasn’t found and I was prompted for password authentication.

Maven repository authentication details are stored in a settings.xml file, that, under Cygwin, lives at ~/.m2/settings.xml. I modified this file to include a server entry for the repository and added a privateKey setting with the path set to ~/.ssh/id_dsa. Still the deploy command did not work.

The issue, it turns out, is the confusion between Cygwin, Windows and Maven. If you run the Maven command from Cygwin, your settings file will not be accessed at ~/.m2/settings.xml, and the private key path specified in that file will not be accessible. The settings.xml file is accesed at your Windows home directory when you run Maven, in my case this was “C:\Users\dabdinoor\.m2\settings.xml”. The solution is to copy both your ~/.ssh and ~/.m2 directories to a more Windows-friendly location and update the private key in settings.xml. Detailed instructions follow.

Make sure you have your private key stored in ~/.ssh/ then, at a Cygwin terminal, SSH to the machine hosting the repository:

ssh mrepo@mrepo.server.com

You will be prompted to approve the host computer, it’s signature will be added to your ~/.ssh/known_hosts file. If your private key is approved you should not be prompted for a password.

In Cygwin, copy the ~/.ssh directory to your Windows home directory, this is “C:\Users\dabdinoor” in my case. Also copy the ~/.m2 directory to your Windows home directory.

Next, edit your settings.xml file. Update the private key entry for the repository server:

<server>
...
<privateKey>C:/Users/dabdinoor/.ssh/id_dsa</privateKey>
...
</server>

Then, try running the Maven deploy command again:

mvn clean install deploy

Now Maven should be able to properly access the private key and it won’t prompt you to approve the host because it was found in the known_hosts file. Deploy should then be able to succesfully upload to your repository.

Since Maven runs as a Windows process (and not under Cygwin) it is going to look for both your .m2 and .ssh directories under your Windows home directory, not your Cygwin home directory.

29 May
2009

log4j dynamic appender configuration

log4j logoAt HubSpot we use log4j with all of our Java projects. It’s an excellent logging tool and for the most part makes life with logs much easier. Recently I wanted to convert a bunch of projects from just logging to file to send emails when errors were logged. Luckily log4j has an email appender (SMTPAppender) that does exactly this. You just set the threshold of event (Error in my case) and the buffer size for previous events. Say you want to get emailed the last 100 lines logged before an error, just set up an appender with a threshold of Error and a buffer size of 100, sounds easy.

The interesting part (for me) was that I wanted to differentiate emails sent on my Production servers from my QA servers. Since I always deploy the exact same package to Production and QA I couldn’t change the appender definition. The answer was to use dynamic appender configuration.

Basically, any log4j configuration can read system-level variables. You can pull the hostname of the server, or even the IP address if you want, and use that value in the appender configuration. In my case I opted to use a system variable to specify the operating environment (Production or QA in my case). Here’s an example of my appender configuration:

<!-- Email Appender sends on ERROR level -->
<appender name="email" class="org.apache.log4j.net.SMTPAppender">
<param name="subject" value="[LOG] ${app.log.environment} PasswordReset” />
<param name=”to” value=”logging@server.com” />
<param name=”from” value=”noreply@server.com” />
<param name=”SMTPHost” value=”mail.server.com” />
<param name=”bufferSize” value=”512″ />
<param name=”threshold” value=”ERROR” />
<layout class=”org.apache.log4j.PatternLayout”>
<param name=”ConversionPattern” value=”%d [%t] %-5p %c - %m%n” />
</layout>
</appender>

If you are using Tomcat to run the Java application, set the system variable in the  bin/catalina.sh file. Just add or update the JAVA_OPTS variable like this:

JAVA_OPTS="-Dapp.log.environment=QA"

There turned out to be a couple of tricky bits before I was able to get this working. The first was that the use of system variables to dynamically configure Appenders doesn’t appear anywhere in the log4j documentation. I managed to figure it out with excessive Googling and putting together pieces from all the sources. The second tricky part is that the Appender threshold doesn’t really matter. In practice, the Email Appender will only fire off a message when an event of Error-level or higher (Fatal)  is logged. For instance, you can not set an Email Appender to send messages on Info or Debug level events.

Overall, log4j dynamic appender configuration is powerful and super useful, hopefully this post can help others avoid the trouble I had getting it set up.

20 May
2009

Obscure Google Chrome tips

Chrome's Edit search engines screen

Chrome's Edit search engines screen

I’ve been a devout Google Chrome user since the day it came out. Over the months that I’ve logged using Chrome, I have picked up a few interesting tips that I thought I think are worth sharing:

1. Chrome Channels: You can actually switch Chrome over to a Development or Beta channel in order to get the newest releases of the browser. Often the new releases are faster and have new features like Bookmark Manager (explained below).

2. Bookmark Manager: When Chrome launched many users lamented the lack of bookmark management. However, if you switch to the Beta or Developer channel you get access to a full-featured bookmark manager.

3. Switch Tabs: Press Ctrl+(a number key) to select that tab. Pressing Ctrl+5 jumps to your fifth tab. This only works for tabs 1 through 9.

4. Close Tabs: If your mouse or trackball has a middle button you can click it anywhere on a tab to close it. No need to click the X. This is pretty standard behavior in tabbed applications, but I never knew it until I got a mouse with a middle button.

5. Custom Search Engines in Omnibar: You can easily edit or add Omnibar search engines. To add a new one, just right click on the Omnibar and select “Edit search engines.” Then look at the list, you might already have an entry for the website you want. If not, click “Add” and provide a Name, Keyword and URL. The Name is just a label, it doesn’t matter. Keyword is how you want to access this engine, if you choose keyword of “alpha” then anytime you type “alpha” and a space in the Omnibar it will start a search on that engine. The URL is just the action of the search engine, with “%s” substituted for the search term. For example, this is the search URL for Wolfram Alpha: “http://www.wolframalpha.com/input/?i=%s”. When you open a blank tab you’ll see a “Searches” section on the right side of the page, it will contain quick access to the search engines you frequently use.

6. Keyword Bookmarks: This is similar to adding custom search engines, but doesn’t require the “%s”. If you want to access a website quickly by only typing a few character shortcut, you can specify a keyword. For example, you can create a shortcut to Twitter by typing just “tw” in the Omnibar. To add a new shortcut, right-click on the Omnibar and select ”Edit search engines” and add a new entry with your chosen Keyword and URL.

19 May
2009

Some things I am looking forward to revisited

Almost exactly a year ago I wrote a post covering a handful of items that I was looking forward to. With a year’s worth of new perspective I figured I would revisit each item and update my thoughts. My original comments from last year are provided in block quotes below.

Windows 7 (Sometime in 2009)

I hate Windows Vista. Barely a day goes by that it doesn’t make my technologogy-saturated life more difficult. So I’m really looking forward to the next major version of Windows. I hope that they took time to address all the issues from Vista. Of course this is Microsoft, so that’s probably hoping for too much.

Who could have predicted that Microsoft would actually get a Windows 7 release candidate finished on schedule? Well they did and boy am I glad. I have been running Windows 7 RC on my primary work computer for a few weeks now and I’ve been really pleased. W7 is everything that Vista should have been: It’s fast, intuitive, stable and has some remarkable productivity enhancements. For the first time in years I am not a disgruntled Windows user.

iPhone version 2.0 (June, 2008)

Although I don’t own an iPhone, I absolutely adore them. I would have bought one the day it was released (June 29th, 2007) if the AT&T network weren’t part of the deal. So I am very excited to see what happens with version 2. Will it have 3G, a new design, come in black and white? Probably all of those will happen, but as with most Apple product announcements I love being blindsided by some great features that nobody has dumped on a mac rumor site.

Version 2.0 of the iPhone was not much of a surprise. It was announced at the end of June exactly as expected and the feature set was nearly everything that was predicted. I still love the iPhone yet I won’t buy one because of the network. There’s just too little incentive to move to AT&T when I have Verizon. Hopefully I’ll be able to get a Verizon iPhone in 2010 when the AT&T exclusivity deal expires.

Facebook profile redesign (June, 2008)

I’m excited to see such a major social application unwind the clutter and put good design ahead of customization. I hate MySpace more than anyone, mostly because of the unruly profile pages. Facebook is making a preemptive strike against clutter and moving all the disruptive junk into separate pages or tabs. The timeframe on this one is a little speculative, but the screenshots have been available for some time and release is imminent.

As it turned out, I got to see two major Facebook redesigns in the last year. The first was exactly what I expected, a clean-up of sorts for profile pages. It killed the clutter and I thank them for that. In 2009 we’ve seen a major revamp of the home page with introduction of the Stream, bringing Facebook into spitting-distance of Twitter and FriendFeed.

24 season 7 (January, 2009)

I’ve been on the 24 bandwagon since the first episode, and I miss how entertaining the first seasons were. I think the show was a victim of it’s own success for a few seasons but I’m expecting a return to form with season 7. The writers strike, combined with a major re-working of the plot caused the 2008 season to be scrapped. With all the extra time the writers have had, I think season 7 could be one of the best yet.

I was looking forward to 24, but as part of my 2009 new years resolutions I wanted to watch less TV and 24 didn’t make the cut. I missed the pre-season event “Redemption” and then missed the Sunday night premier of the new season. Since I was so far behind I never even tried to catch up. The season just wrapped up last night and from what I’ve read the finale was a dissapointment. I might watch the season on DVD next year but probably not.

More from Dan

Follow Me! Follow Me! Follow Me! Follow Me!
The Website Grade for www.abdinoor.com!