Friday, June 17, 2011

How to add the File Name to the Excel / Word button/title bar in Office 2007 +

How to add the File Name to the Excel / Word button/title bar in Office 2007 + so it acts like Office 2003’s Internet toolbar.
Click the windows menu button, then click the Excel Options (shown below with a red arrow)


Click Customize (1), then Click All Commands (1a), then Document Location (2), then Add (3) and finally OK






And that’s it.  It should look like the above picture when you're done.
  



















Friday, June 10, 2011

Google Interview Process

I interviewed with Google in June, 2011.  I was contacted via LinkedIn by an internal Google recruiter.  

Initially, the recruiter did a quick phone screen about my background and interest.  He and asked for my resume, after that he sent this email:


Mitch,
Thank you for taking the time to speak with me today; I look forward to receiving your availability for the technical phone interview as well as your resume at your earliest convenience.
(*Keep in mind interviewers conduct phone screens between 11am and 4pm daily (EST) except for Thursdays; you will want to be in front of a computer and it will take roughly 45 minutes; a few days/times for me to schedule from would be greatly appreciated.
As I mentioned, here are the areas of expertise that you can select from. Also, a list of projects in some of our offices for your reference at the bottom. I should have more information to you in regards to the next steps as soon as I get all of your information back.
Technical Strengths (Please select no more than 3 to 5):
Mobile/Wireless
Networking
Advanced Algorithms
Artificial Intelligence
Machine Learning
Natural Language Processing
Data Mining
Information Retrieval
Windows
Databases/SQL
Operating Systems/Kernel
Audio/Video/Multimedia
UI design and implementation
Links:
Focus Areas/Projects at Google: http://www.google.com/intl/en/jobs/profiles/swe.htmlNew York office: http://www.google.com/support/jobs/bin/static.py?page=why-ny-ny.html&dep_id=1054&loc_id=1122&topic=1054
Being at a computer between 11 and 4pm to do the interview was a problem for me because I work in an open space and there is no place for any privacy.   To prepare for the interview, I brought my laptop and cell to all the local Starbucks.  They were too small and crowded to use so I ended up going to a local Cosi' restaurant which has free wifi.  Now that I had a place, I confirmed with the recruiter and received this email in response:
Hi Mitchell,


I work with <name removed> and have scheduled your phone interview for the following:

DATE: Thursday, <date removed>
TIME: <time removed>
PHONE: <phone removed>

Google Doc: <google doc removed> 

Should your availability change due to personal emergencies, please notify your Recruiter immediately. We are more than happy to reschedule your interview. Please keep in mind that this may result in a scheduling delay, as well as a delay in the interview process.


IMPORTANT NOTE: Your interviewer may opt to use the Google Doc linked above. You will need a computer with internet access for this interview in order to use Google Docs, a web-based word processor which lets you share and collaborate your work online. Please ensure that you are able to log into this at least a day prior to your interview and be logged in and ready to go at least 5 minutes prior to your scheduled call. Additionally, to make hands free coding a little easier, we recommend that you have a headset or a phone with speaker option available for the interview. 

A member of our engineering team will call you at the phone number above. Please note this will be a technical interview that will last for approximately 45 minutes. Google takes an academic approach to the interviewing process. This means that we are interested in your thought process, your approach to problem solving as well as your coding abilities. You may be asked questions that relate to technical facts and knowledge, algorithms, code, performance, how to test solutions, and perhaps your interest in Google products. During the interview, please feel free to ask the interviewer if you are not clear with any of the questions. Also, feel free to talk through a problem so that your interviewer can better understand your thought process.  We ask that you keep our interview questions confidential as we do use them with other candidates and having them published would jeopardize the integrity of the process.

For more information, we invite you to take a look at the following:

Please CONFIRM the time and phone number listed above, so we can add it to our company calendar. 

If you have any questions or concerns related to scheduling, please reply directly to me. Otherwise, your recruiter <name removed> will happily assist you with any other interview-related queries you may have.

Thank you,
<name removed>
So now I confirmed with the recruiter and all I had to do was wait for the call at the specified time.  I was at Cosi 15 minutes early so I got my computer setup.  At the alloted time, there was no call.  I waited 6 minutes and fired off an email to the recruiter then 10 minutes late, the interviewer called me.  


After the initial introductions he asked me about why what I was working on was interesting then he asked how specific classes in java work (I am not posting the questions here to respect Google's request to keep the actual questions private), then he asked about the performance of those classes in big O notation.  I haven't heard anybody mention big O notation in the 20 years ago since I got my Computer Science degree so remembering the specifics of the notation was definitely not first nature.  These days, computers are so fast and java is so good, that performance characteristics of the actual classes isn't that important (unless you have a problem with performance of course).  


The last thing was a problem to solve for which he said take your time, and post the answer on the Google Doc.  I definitely solved the problem correctly and efficiently, but for the other questions I'm pretty sure I didn't have the exact answers.  The end result was that I wasn't offered another interview and no feedback as to the reason why was given (which is a standard practice that I've seen over the years, but it would have been nice for Google to be better than that). 


In short, If I were to interview again, I would definitely read up on exact implementations of algorithms along with their big O notation.  


Overall the experience was good, I enjoyed solving the problem, it felt like being in school again and I love solving problems.


Comments anyone?





Friday, May 13, 2011

iPhone Development Review

I started some iOS development from scratch starting in 2010 in May.  I wanted to create a talking weather alarm clock and had not done *any* iOS development previously.  Yes, I worked with C but primarily, I've been doing java development for the past 14 years.  I was surprised that development was "required" to be done (this has since been laxed) in Objective C. 

The time I allotted to this project is my daily 2.5 hour (round drip) comute. This doesn't allow me nearly enough time to focus as I'd like but still was enough time to get "something" done.

Things I needed to learn for this project:
1. Objective C. Objective C isn't a difficult language to learn. The syntax is similar enough to other languages BUT memory management is something that has to be taken seriously.  

2. Objective C has also adopted many patterns and unenforced rules.  I.e. the word alloc means you're responsible for releasing an object but if an object is created without a special keyword, then it is autoreleased.  

2. The *vast* iOS api's.  Along the way I needed to understand Audio, Animations, NS Core Data Structures, Table Window semantics and threading concepts.  

3. Creating images using Adobe Illustrator.

4. Creating sounds using Garage Band.

While all of these things are not hard by themselves, doing them all yourself is very time consuming and I wished a many times for a partner to help out but that didn't work out as I had expected.

So the app is now in the app store review after much frustrations. Once it's available, give it a shot. You can download the app "snooZe" (it's free :) in the iTunes app store.

If I had to do it again, I would probably use a 3rd party library. I've been researching Cocos2d (free), Corona (free to develop, $200 to deploy), and Unity ($$$). I'll write about them in other posts.

Monday, April 25, 2011

AutoHotKey Review: Free & Easy Windows Scripting (Macros) Super Excel Copy Example

Ok, ok, this is an old piece of software: http://www.autohotkey.com/ and the icon leaves something to be desired, but as far as hard-core macro functionality, it's got it.  You'll find other macro programs but this is great because 1. it's free, 2. it's easy to learn, 3. it does the job and 4. it's free.

Sometimes you do repetitive things on a windows machine. i.e. copy what's selected from the browser, switch to a spreadsheet, paste, and move down one line.  

Normally, you would just slog it out and do that sort of thing with the mouse and keyboard, but when you have to do it 50 times, it gets old fast.  Thats' where autohotkey comes in.  Here's a quick example of how you could automate that:

  • Run autohotkey (click on the installed program in the start menu)
  • Double Click on the icon in system tray (usually in the lower right hand corner of your screen), then hit File/Edit Script (or Control-E).  
  • A notepad window will appear with your default set of scripts.  If you look at the file, you'll see it has some samples: Win-Z (opens a browser) and Control-Alt-N (opens notepad). 
  • In the AutoHotkey.ahk notepad window, enter this simple macro at the bottom: 
#c::
Send ^c
ClipWait ; Wait for the clipboard to contain text.
SetTitleMatchMode, 2
IfWinExist Excel
{
WinActivate ; Activate Excel
}
else
{
Run Excel
WinWait Excel
WinActivate
}
Send ^v{enter} ; paste and hit enter to go to the next line
Send !{tab} ; switch back to original window
return
  • Hit File/Save, and go back to the AutoHotKey window (double-click the icon in the system tray) and select File/Reload script (or hit Control-R).   
  • Now, we've programmed Windows-C to be a super-copy so hit Windows-C and then go-ahead and copy something from any window.  AutoHotKey will take that copied text, and copy it into excel and then hit the enter key.  You can't realize how useful this is until you need it.  In the screen shot, I had selected, WinActivate and hit Windows-C, then selected Activate and hit Windows-C.  Notice how the excel window now has the two items.  

  • Of course I've only touched the surface here, AutoHotkey has many more features which you can look up as you need them.  Keep in mind that you can always access the nicely done built-in windows help from the AutoHotKey Help menu.


App Reviews

I just started another blog called "The App Review Spot"
http://theappreviewspot.blogspot.com/

It's a place that I'm going to write reviews of the software I use (or I have some interest in).

Monday, April 4, 2011

ssnooZe 1.1

ssnooZe 1.1 is in the App Store now!  Includes world weather (instead of just the US) as well as some other enhancements.  Check it out.

Tuesday, March 29, 2011

MacOS File Compare (Free)

I was looking for a visual file compare utility and stumbled onto this free one from Apple which (I believe) came with XCode.  Its' located here: /Developer/Applications/Utilities/FileMerge.app and does a very nice visual file compare.  It also lets you merge the two files together.  I've have BeyondCompare for Windows at work which works a bit better than this, but for free, this is great.  Here's a screen shot of it in action: