Archive for the ‘Development’ Category

Remote Management

2010-04-17 21:43

As a remote developer, and now a remote manager, I’ve had to learn to develop information sources that let me figure out what’s going on in remote offices (either the main office or otherwise). One of the information sources that I miss, and that I’m reminded of every time I come back to the main office is (foot) traffic analysis.

It’s All In How You Phrase It

2010-04-08 23:12

Every time I visit a different office, I bring them some chocolate from the airport duty free. This time we got to discussing why I bring it… my first description was along the lines of:

I use the chocolate to make up for my deficiencies in collaboration skills.

Later at supper, the more concise geeky description hit me:

It’s Swiss chocolate of charsima +3

The computer programmer at the table laughed. The project manager at the table took a few seconds and then grinned. The engineers looked at me blankly.

A Week In The Life…

2009-10-16 23:39

This is what my work week looked like the week I was in Lexington. Don’t let the gaps in the schedule fool you… I was just too busy to update my calendar to reflect the meetings I had in those times.

My Work Week in Lexington

My Work Week in Lexington

BTW, my department is hiring, both developers and project managers. Don’t worry, your week won’t look like that. I just had to compact 9 months worth of meetings into less than 2 weeks.

JFGI

2008-06-27 14:43

When discussing things with a coworker, came up with JFGI to replace RTFM.

Of course it’s been done before

Readability

2008-06-25 23:40

Changing my default browser fonts to Cambria, Calibri, and Consolas has made a world of difference when it comes to how readable things are.

Lessons in UI: Audio Feedback

2008-06-21 15:44

Or… how my friend got a $470 hot water heater for free.

Excerpts from an email:

[At the store]
> ... the cashier scanned the heater,
> her register beeped.

[At home]
> Somehow, the water heater wasn't
> on the receipt at all. I chuckle to 
> think of how a Home Depot store
> manager is going to explain that 
> someone walked off with a 
> 6 foot x 2 foot x 2 foot water 
> heater without anyone noticing...

I’m betting the scanner beeped (it recognized a bar code) but failed to transmit a bar code that the cash register understood. The cash register probably displayed something on screen to notify the cashier of this, but they were too busy scanning other things to notice. What should’ve happened is that the barcode scanner should beep once (bar code recognized) and the cash register should instruct the bar code reader to emit a second ‘good, bar code understood’ or ‘bad, bar code not understood’ tone.

Alt-Tab Not Working in Terminal Services Client

2008-06-17 20:42

Short Version

Make sure the Terminal Services service is started on your local computer.

Long Version

After rebuilding my system post-crash, Alt-Tab no longer worked when I was remoted into my work computer using Remote Desktop Connection (mstsc.exe). At first I thought it was because I’d update to Windows XP SP3. I tried to edit the properties of the .rdp file that I was using, ensuring that the Local Resources tab’s Keyboard settings (Apply Windows key combinations (for example ALT+TAB)) were set correctly (I tried both In full screen mode only and On the remote computer).

I finally found the solution buried in a forums.microsoft.com post (anyone else notice that these pages, as found by Google, seem to have issues loading?). I had to look through Google’s cached version of the page. I’m reproducing it here in case anyone else has the problem.

  • Make sure you’re running as an Administrator
  • Start | Run | services.msc
  • Select the Terminal Services service.
  • Right-click | properties
  • Set Startup type to Automatic. Click the Start button if necessary.

If you found this post helpful, please click an ad.

Installing Windows XP in N Easy Steps

2008-06-03 22:18

It’s been a while since I last rebuilt my laptop. This time, I didn’t lose much. The big stuff (notably, pictures) resides on the file server, and a lot of stuff is under source control.

  1. 02:48 2008/05/26 Install Windows XP from CD. Set up Dvorak keyboard, regional format options, administrator password, etc.
  2. 03:09 2008/05/26 Set up my account, password, and login method.
  3. 03:14 2008/05/26 Insert driver CD. Start installing drivers. Notably, the ones for network cards.
  4. 03:15 2008/05/26 Set screen resolution, some other display properties.
  5. 03:20 2008/05/26 Set mouse acceleration and other input device properties.
  6. 03:29 2008/05/26 Reboot. Revel in the fact that I have 53.1GB free hard disk space.
  7. 03:34 2008/05/26 Realize wireless still isn’t working. Look for ethernet cable.
  8. 03:38 2008/05/26 Start the Windows / Microsoft update cycle.
  9. 03:39 2008/05/26 While that is happening, start going through the Control Panel.
  10. 03:50 2008/05/26 Microsoft Update is messing up. Add microsoft.com to the trusted zone.
  11. 04:02 2008/05/26 Reboot.
  12. 04:04 2008/05/26 Start downloading SP2. Why not SP3? Ask Microsoft Update.
  13. 04:13 2008/05/26 Firefox (might as well use 3.0 RC1).
  14. 04:21 2008/05/26 Reboot.
  15. 04:29 2008/05/26 Microsoft Update.
  16. 04:29 2008/05/26 Firefox extensions (AdBlockPlus, Flashblock, Customize Google, oops, Google Browser Sync doesn’t work… back to 2.0, Tab Mix Plus, Faviconize Tab, gTranslate).
  17. 04:52 2008/05/26 Connect to file server, map network drive, printer.
  18. 05:00 2008/05/26 Install Trillian, YGG.
  19. 05:28 2008/05/26 Beyond Compare.
  20. 05:28 2008/05/26 Microsoft Update.
  21. 05:28 2008/05/26 Subversion.
  22. 05:36 2008/05/26 7zip.
  23. 05:36 2008/05/26 Reboot.
  24. 05:50 2008/05/26 Microsoft Update.
  25. 05:50 2008/05/26 svn co Playpen.
  26. 05:51 2008/05/26 ActivePerl, WPP.
  27. 05:57 2008/05/26 Reboot.
  28. 05:59 2008/05/26 VS.Net 2008.
  29. 06:01 2008/05/26 Music library.
  30. 10:14 2008/05/26 Reboot.
  31. 10:24 2008/05/26 MSDN.
  32. 10:53 2008/05/26 Patch VS.Net 2008.
  33. 11:01 2008/05/26 DivX, FileHippoUpdater, TrueCrypt, SpecSharp, ZoneAlarm.
  34. 11:15 2008/05/26 PowerCommands for VS.Net 2008.
  35. 11:18 2008/05/26 nant.
  36. 11:21 2008/05/26 GhostDoc.
  37. 1!:30 2008/05/26 Microsoft Office 2007.
  38. 13:13 2008/05/26 Neuter Windows Media Player connecting to the internet. Play music for the kids.
  39. 13:13 2008/05/26 Start Visual Studio.Net.
  40. 13:14 2008/05/26 Microsoft Update.
  41. 15:02 2008/05/26 Realize that I’ve been forgetting to note reboots.
  42. 15:02 2008/05/26 Ensure mini-hunt stuff is back up and running.
  43. 15:02 2008/05/26 SF Fedora font.
  44. 15:07 2008/05/26 Auto Gordian Knot, CCleaner, Consolas font, Dave’s Quick Search Deskbar, Exact Audio Copy, Foxit Reader, Handy Registry Settings.
  45. 15:12 2008/05/26 iTunes, iTunes Scripts, iTunes Windows COM SDK, iTunes Library Updater.
  46. 15:12 2008/05/26 Lame, Microsoft Keyboard Layout Creator, Name Clip, Outlook on the Desktop, PDF Creator, DVD Decrypter, Tweak UI, URL Run, URL Run Add-In, VPN, XVid.
  47. 15:40 2008/05/26 Reboot.
  48. 15:45 2008/05/26 I have the wrong VPN client. Uninstall.
  49. 15:45 2008/05/26 Stamp 2.8
  50. 15:45 2008/05/26 Install custom keyboard layout (yes, even more custom that just plain Dvorak).
  51. 15:59 2008/05/26 Flash, Shockwave. Go through IE self-configuration first.
  52. 16:06 2008/05/26 Mike’s Ad Blocking Hosts File.
  53. 16:06 2008/05/26 Notepad2. Replace notepad.exe.
  54. 16:11 2008/05/26 SysInternals.
  55. 16:17 2008/05/26 Keyboard shortcut for Password Safe / subversion integration.
  56. 16:34 2008/05/26 Palm desktop. Outlook conduits.
  57. 17:18 2008/05/26 Quicken, Palm software.
  58. 20:21 2008/05/26 My VS.Net Macros.
  59. 20:26 2008/05/26 Run FileHippo.
  60. 20:29 2008/05/26 Run CCleaner.
  61. 22:21 2008/05/27 Configure Trillian.
  62. 22:21 2008/05/27 Trillian spell check, message split plugins.
  63. 22:27 2008/05/27 Computer is sluggish / sound is weird. Reboot.
  64. 22:37 2008/05/27 Keyboard shortcuts for FireFox, IE, Beyond Compare, Trillian, DevEnv, Command Prompt.
  65. 23:02 2008/05/27 Configure command prompt.
  66. 23:24 2008/05/27 Configure subversion.
  67. 23:36 2008/05/27 Configure DQSD.
  68. 23:49 2008/05/27 Configure Google Browser Sync.
  69. 23:50 2008/05/27 VPN.
  70. 00:08 2008/05/28 Reboot.
  71. 00:19 2008/05/28 Windows Media Player Controller.
  72. 08:55 2008/05/28 Dell Drivers
  73. 08:58 2008/05/28 WinZip
  74. 08:58 2008/05/28 Uninstall 7Zip.
  75. 09:00 2008/05/28 Uninstall Bonjour.
  76. 09:04 2008/05/28 Uninstall some Windows components.
  77. 09:20 2008/05/28 Reboot.
  78. 20:45 2008/05/28 Import VS.Net settings from work. Put under source control.
  79. 20:57 2008/05/28 Put visual theme under source control.
  80. 21:08 2008/05/28 Move the IE temp cache. Curse MSFT for forcing you to log out for the change to happen.
  81. 21:36 2008/05/28 Remove some MS Office components.
  82. 21:37 2008/05/28 Skype.
  83. 21:43 2008/05/28 Configure Firefox. Put under source control.
  84. 21:52 2008/05/28 Web cam software.
  85. 22:39 2008/05/28 Microsoft Sucks. They insist on installing MSOCache for office installations. 1GB of redundant data.
  86. 00:04 2008/05/30 Configure display for blind-Nick.
  87. 00:04 2008/05/30 More Start Menu keyboard shortcuts.
  88. 00:04 2008/05/30 Configure iTunes. iTunes shortcuts.
  89. 00:07 2008/05/30 Cleanup KB / Service Pack uninstalls.
  90. 00:07 2008/05/30 No Skype at startup.
  91. 00:28 2008/05/30 Attempt to run as a power user.
  92. 00:30 2008/05/30 Configure TweakUI.
  93. 23:57 2008/05/30 Configure VPN.
  94. 00:49 2008/05/31 Clean up Start Menu.
  95. 16:48 2008/05/31 Toddler Keys after Alex rediscovers opening my CD tray.
  96. 17:32 2008/05/31 Tangentially related: uninstall U3 from my thumb drive.
  97. 18:16 2008/05/31 Reboot.
  98. 21:09 2008/05/31 Tweak more Explorer | Tools | Options | View settings.
  99. 21:31 2008/05/31 Clean Startup stuff.
  100. 12:23 2008/06/01 Set up BlueTooth sync with Palm.
  101. 14:30 2008/06/01 As Administrator: Run [playpen]\tools\Registry\Windows Tuning - Tweaks.reg.
  102. 14:33 2008/06/01 As Administrator: Fix path.
  103. 14:39 2008/06/01 As Administrator: GPEdit.msc | Computer Configuration | Administrative Templates | System | Turn Off Autoplay.
  104. 22:03 2008/06/01 As Administrator: Tweak services.
  105. 22:44 2008/06/01 Put startup stuff in current user, not all users so that stuff doesn’t run in the admin account.

One Right Decision

2008-04-26 22:38

One of the companies that I interviewed with and was very close to accepting an offer from seems to have gone the way of the dodo. I’ve only been able to find one indirect reference to a forum posting detailing the fact that the company’s product was being shut down.

The reason that I didn’t go accept the offer was because I was worried about the amount of work I’d need to put in to getting what would be my part of the startup off the ground wasn’t worth the risk that the startup wouldn’t make it.

It’s nice to have one’s decisions validated.

The Things I Do For Work

2008-04-22 22:04

Not A Morning Person

Last week, starting Monday, I woke up at the following times:

  • 6:00 – Jet Lag
  • 6:30 – Ditto
  • 5:15 – Flight
  • 7:00 – Work
  • 7:00 – Work
  • 7:00 – Flight

Introvert

One of the main parts of my job is communicating with remote offices. In fact, I somehow try to take on more responsibilities like this.

Too Tired To Code

2007-10-04 14:15

It took me a while to figure out what young attractive women had to do with programming as I was scrolling through my RSS reader: Nullables in VB – must read article.

Windows Script: iTunes: Rate Current Track

2007-08-28 22:05

This is a script that for iTunes for Windows that will programmatically rate the current track. You can bind it to a shortcut and set a Shortcut Key such as Ctrl+Alt+1. You need to pass in the number of half stars (yes, iTunes supports ½ stars).

Download

Download iTunesRateCurrentTrack.vbs.

If you have problems with the .vbs file, download and rename iTunesRateCurrentTrack.txt (right-click, save-as).

Notes

  • Comments, suggestions, corrections are welcome.
  • If you find the script useful, please click on an ad.

Usage

#####    iTunes Rate Current Track Script    #####

Usage:
	iTunesRateCurrentTrack rating [-q]

	rating	Number of 1/2 stars.
		Valid values: Integers from 1 to 10inclusive.
	-q	Quiet mode. Don't display any non-usage error messages.

Examples:
	iTunesRateCurrentTrack 1
	iTunesRateCurrentTrack 7 -q

Email Address++

2007-05-18 20:44

Dear E-Commerce Web Sites,

Before you get overzealous when validating email addresses, please do a bit of research. Wikipedia is a good place for general background (it’s also the first hit you get when you Google email address specification). For more in depth reading, one would obviously look at the IETF RFC 2822.

Notably, a plus sign (+) is valid in the local part.

And yes… it should be noted that the company I’m going to work for is guilty of this overzealous validation.

A Tale Of Four Interviews (And Puppy Dogs)

2007-04-18 18:14
  1. Photograph: Trinity Church, Boston, 2005-09-11, © Nick Varacalli.The interview with CompanyA was interesting. The oddest part is when I had to pay for lunch at the company cafeteria. Every single other interviewer that’s interviewed me over lunch has paid. It was somewhat jarring. I think I flubbed a few parts of the interview because of the language barrier. What do you want to release in a finalizer? Managed or unmanaged resources? Duh. At one point the language barrier was so bad that I was very tempted to get up and leave.
  2. I was psyched about CompanyB to begin with. Their web site excited me more about any company since Farsight / D.E. Shaw’s. The interview process, despite being 7½ hours long, the longest I’ve ever survived in one go, did nothing to dispel that feeling, only enhance it. Despite getting the ‘Reverse a linked list’ problem, I felt that I messed it up. My inelegant solution took me too long to figure out. I also didn’t quite get the ‘How long does it take to iterate over the keys of a hash table’ question as well as I would’ve liked. Very good location, very good benefits, smart people, up and coming project, didn’t bat an eyelash at my salary demands. If I get an offer from them, I’m thinking this is the place to beat. They have 10 other open req’s. I’m already considering which friends I’d like to refer for which positions. Yes. Counting my chickens. I shouldn’t.
  3. I was psyched about CompanyC, despite trying to downplay that publicly. However, the recruiting process, despite having friends inside the company, has been a bit difficult. They batted an eyelash at my salary demands when they definitely shouldn’t have. Thankfully, through scheduling snafus, they opened up a hole in my schedule that allowed me to interview at CompanyB. I used to think CompanyC was my default, odds-on-favourite. Not so much.
  4. I wanted to interview at CompanyD because I’d heard about them (and, also heard that they paid some of the most competitive salaries in the area). That fell through last week when they found a candidate. Well… this week, said candidate fell through. Last week I told myself, and Dina, that I’d probably get an offer from A, B, or C, and it would probably be good enough for me to accept so I was most likely done with interviews. So, I’m torn about scheduling D for an interview. Though I’m excited about them, I’m also excited to be done interviewing soon.
  5. K, D, and T have all, at various times, taught both Dina and I not to adopt puppy dogs. It’s a hard thing not to do. They are generally so fun, lovable, and wonderful to get to know. We have renewed resolve on that front… but as always… it will wane. Parting is such sweet sorrow.

Milestones, Michaelangelo, Interviewing

2007-04-16 20:30
  • Photograph: Reflections In John Hancock Building, Boston, 2005-09-11, © Nick Varacalli.Alex has been saying mama and dada for a while. We assumed that he was just saying this because they’re the easiest syllables to sound out. Yesterday, we realized that Alex seems to be using Mama and Dada to refer to the correct person. I wonder how many languages use some version of mama or dada for mother and father.
  • I’m less impressed with Michaelangelo’s Sistine Chapel than I used to be. God and Adam touching fingers looks a lot like what Alex does when I have a finger outstretched.
  • Today, we realized that Alex seems to be signing to us. Now that we think about it, we think he signs food, milk, and finished / done.
  • Shaking one’s head for ‘no’ is obviously the easiest way to refuse food. I wonder how many cultures don’t use shaking one’s head as ‘no’.
  • I’m interviewing somewhere next week where I’m using three references that work at said company. I’m listing their phone numbers as internal extensions.

Interviews

2007-03-27 21:41

Photograph: Boston Public Library: Reading Hall, Boston, 2005-09-17, © Nick Varacalli.By the numbers:

  • 1 sore throat.
  • 3 phone screens today.
  • 1 dinner interview today.
  • 7 total interviews and screens scheduled for this week with 5 different companies.

I can’t talk about all of today’s interviews. Describing them would be like some of the logic puzzles Dina and I have been doing lately. This is not a real logic puzzle, but I might take the time to write one. If I do I’ll obviously blog it.

  • I’ve been interviewed by 4 people who each work for a different type of company. I snagged the interviews through unique means, and was grilled on different topics at each. The interviews obviously happened at different times of the day. I have different levels of interest for each: blah, ok, hmmm, and wow!
  • Don, who does not work for the Web2.0 startup, asked me about polymorphism on the phone. He wasn’t the first company I talked to today.
  • Adam, who does not work for the Social Networking site, did not ask me any SQL questions.
  • Bob, who works for the Financial Giant, grilled me on Interfaces and Abstract Base Classes and did not find me through a prestigious web job board.
  • Claire and the Consulting Firm found me through my online résumé and a recruiter, in some order.
  • The company that quizzed me on User Interface Design and Usability interviewed me before the company that I found because my good friend emailed me their job ad.

One company presented me with the DW-dating conundrum. I feel I did badly enough on the interview that I’m not sure that I’d want to work there if they brought me back for a second round.

Many, if not all, of the companies / interviewers have Googled me / read my blog. As transparent and straightforward as I attempt to be here, I find this presents an interesting set of constraints on what I can and can’t say about my current thought process. Appearing too psyched about any one particular company may erode my bargaining power down the road. Chronicling my worries about another company may cause them to ding me before I have time to explore those issues further in a subtle manner in order to satisfy myself that all is well. It especially constrains me from making blanket statements such as “None of the companies foo.” or “All the companies bar“. (Note to techies reading this, I have never named a code variable foo or bar.)

This interview process is interesting. I think it is much more about bi-directional fit than any of my previous job searches. Part of that is the time-scale I’m operating on (long), part of it is the fact that I have some fall-back options, part of it is that the job market is healthy without being overheated. Surprisingly, in some ways, I’ve done very little to look for a job other than telling people I know that I’m looking, and making myself attractive. I still haven’t gotten around to some of my job-search-to-do items such as “Search Monster, CareerBuilder, and BostonWorks”, and may never do so this time around. Most of my interview traffic comes from:

  • Friends / peers / my ‘network’.
  • Companies finding my résumé online.
  • Companies approaching me through LinkedIn.com.
  • Recruiters finding me through one of the above channels.

One final note, Google passed on an opportunity to interview me. I figured it was a long shot anyway.

Job Search: Help With My Résumé

2007-03-08 23:07

If you would like to proofread my résumé, either the online version or the paper version, tell me via email, comment, etc. I’ll send it to you in MS Word format.

Rusty

2007-03-07 01:36

I’m really, really rusty when interviewing. I’ve been dinged on a much higher percentage of interviews than I have in the past.

Mind you, on one of them I just gave up in the end when I realized that they were jokers.

I’d encapsulate that part of the logic. I’d write it once and unit test the heck out of it.

When that answer isn’t good enough / the right way to do things, it’s time to realize that it’s probably not a place I want to work anyway.

Update – 2007-03-08 08:45 – After I wrote this, one firm semi-un-dinged me, they’d like to bring me back for a 2nd round, in part due to some of the blog entries here.

Job Search: What I’m Looking For

2007-03-01 20:58

Photograph: Giza, pyramid, desert, Cairo, 2005-10-07, © Nick Varacalli.I’m currently looking for a great job that I can stay at for years to come. For those who’ve asked what I’m looking for, here’s a synopsis. I’m writing this for people who can help me find a job, prospective employers who want to know more about me, and in order to clarify my own thinking. Overall, I’m flexible.

Basics

  • Qualifications: My résumé. (I’d be grateful if you could proofread it / give me feedback / constructive criticism / suggestions.)
  • Position: Full time, permanent position. Willing to work part-time if compensation (see below) works out.
  • Location: Boston area, preferably within the 128 circle. Not looking to relocate but would consider it for a job with enough compensation or prestige.
  • Company: I tend to like working in small to medium size companies: it’s easier to make an impact and get things done. They tend not to be burdened with bureaucracy (not to be confused with process). That said, I’m willing to work at a large company if I can get things done within it.
  • Compensation: Made up of money (salary, bonus, restricted shares), lottery tickets (options), and quality of life. I’m flexible in the trade-offs along these three axes. I’m willing to work longer and harder for more money. I’m willing to take less money for a shorter or more flexible schedule that lets me spend more time with Alex. As for lottery tickets, EV is less important than a higher probability of a pay off.
  • Environment: I enjoy working with fun, intelligent people I can learn from. I enjoy working with what I call small-p process, where there is structure in the development environment. I dislike big-P Process where the company switches to the current process fad every 3 months. It’s great to work at companies that score high on the Joel Test or who are willing to let me improve their score. Generally, I’m a Microsoft .Net developer. I’m more than willing to learn other languages, OSes, and environments if a company is willing to let me learn.

Type Of Work

  • Desktop UI: I enjoy writing flexible, aesthetically pleasing desktop applications that optimize for user efficiency, either in user input or display to the user. If you want someone to write you a beautifully slick interface for something, I’ll need help from a graphics designer. If you want someone who can write an interface usable by the one-time user, casual user, and dedicated user, all in one, I’m your guy.
  • Web UI: Pretty much the same spiel as for desktop UIs. I won’t write the latest Flash-based ad-site for your whiz-bang product. I will ensure that the interface is usable, will work on most browsers, and you’ll have less user drop-out once I’m done. My AJAX experience is light, but I’m interested in the promise of this emerging technology.
  • Middle Tier: I like wrapping my brain around complex business logic and problems. If you want simple middle tier components that take data from the database and massage it a bit before passing it to the UI, I’m not really interested. If you want someone who can retain, understand, and manage complex state with a lot of corner-cases, I’m your guy. One of the reasons I like financial programming is it’s really challenging in the ways mentioned above.
  • Developer Productivity Tools: I hesitate to list this here because it tends to be something that I do on the side, and not normally a dedicated role. That said, I enjoy doing things that help me become a better and more efficient developer, and propagating those changes to the rest of the development staff in order to save everyone time and effort and increase product quality.
  • Project Management: I’m looking to transition into software project management.

Milestones, Scheduling

2007-03-01 12:48
  • Alex is starting to imitate a limited number of sounds. Notably “a-da”. If he’s babbling and you say it to him, he’ll usually switch to saying it instead. If he’s quiet, sometimes saying “a-da” will get him babbling / saying it too.
  • His eating got a bit better. He had 6oz one night. Since then it’s not that good, but it’s still better than it was. Unfortunately, before he started eating more, we changed 4 variables. He saw G eating, we switched him to the chunkier Stage 3 food, we didn’t add cereal to his food, and we didn’t add olive oil.
  • I think I overscheduled interviews for the last 2 weeks. I’m wiped.