Friday, September 2, 2011

Setting up a Monoprice 8070 router as a gateway (repeater).

I needed to extend my network to the outside of my house so was looking for an inexpensive way to do this when I came across the Monoprice 8070 router.  


It had all the features of a modern router for $30 bucks so I decided to try it.


Built in to the router is a mode where you can set it up as your primary access point and have it connect to another wireless network (hence creating another network in your house) but I could not get this mode to work even after working with Monoprice's technical support.  I had already filled out the RMA form but had not hit send yet.  The voice in my head was saying: "You should have bought the brand-name router and this never would have happened."  BUT just at that point and 4 hours working with the monoprice technical support folks, they suggested what I really needed was to use the Gateway functionality of the router which turns the router into a repeater.  This extends the network (which is really what I was trying to do anyway).  So I gave it a shot, and it works great!  I wish I had known all of this before I started and could have saved myself 8 hours of frustration.  Here are the details:




To get the Monoprice 8070 router to work as a repeater follow these directions.
This assumes you have another wireless router in place that the monoprice router will get it’s internet connection from.
Step 1:
Disconnect your existing connection from your computer (this might mean disconnecting an ethernet cable, or disconnecting from the wireless lan)
Step 2:
Plug in the Monoprice router with a cable into port #1 and your computer
Step 3:
Use Firefox (or equivalent) and go to http://192.168.0.1
Step 4:
Use the Wizard it recommends
Wizard Step 1: Select Bridge
Wizard Step 2: Put in the appropriate time zone.
Wizard Step 3:  Note:  Make sure your old network is setup on 192.168.0.1 (which is the same as the default value here).  
Wizard Step 4:  The old router should be running with DHCP enabled so you can leave the default here.
Wizard Step 5:  Change the band to match your old router’s setting.  Change the mode to Client (this is the important part) AND the SSID to match your old network’s SSID.  The rest are defaults:
Wizard Step 6: Change the encryption to match what was on the old network.  Mine is WPA2(AES) with a long pass phrase.


One thing to note, is that using a repeater in this way reduces the maximum throughput of the network by half (the repeater has to waste bandwith reading from the network and rebroadcasting that traffic).  As these routers max throughput is close to 300Mbps this shouldn't be much of an issue with a "normal" 10Mbps connection.


Let me know if this works for you.


WRITERS FINAL NOTE:  
The main reason I got the router was to attempt to extend the network's reach in my house.  


I eventually gave up on this router and went back to my D-655 D-Link router.  I had 3 issues (1) the router seemed to be rebooting randomly, but mostly when i was using the admin pages, and (2) it didn't seem fast enough and (3) I got tired of spending time trying to make this router work. I probably got a bum unit and I'm sure Monoprice would have rectified the situation as they were really trying to make this router a success in the marketplace.  


The Monoprice router did have better range than the D-Link router so I decided to try and take swap the Monoprice and D-Link Antennae to see if the range of the D-Link would be extended and, to my surprise, it worked!  I had the same range at the Monoprice router.  So in the end, I got what I wanted just not in the way I wanted it.    YMMV.









Tuesday, August 9, 2011

iTunes Smart Playlist for Your Latest Podcasts

My brother, Steve Feinstein, told me about his iTunes playlist that goes through "new" podcasts so that I don't have to keep selecting podcasts.  I now use this playlist every day.  If you have the one button headphones (or the three-button ones) like I do, you can double-click the button to skip forward and triple-click to skip backward.  Not having to go into the music player is great.  See attached screen shots (you can tweak it as per your needs).  Here's how you do it:

First Open iTunes, then click File/New Smart Playlist.  The Smart Playlist settings will appear, update the screen to make it look like the following and hit OK.  You can then drag the smart folder to your iPod and it will show up in the playlists.   Once installed, bring up the playlist, you should only see "fresh" content which will play in the appropriate order.  Good Luck and let me know if it worked for you or if you have improvements.  





A short video will be coming soon.

Thursday, July 28, 2011

Optimum Online Signal Strength - Surfboard SBV5120

Was having problems with my Optimimum Online cable service.  I checked the cables as best I could, but still, intermitent service.  The cable-guy came out with his monitoring box and determined that my splitter was the problem so he removed it from the loop and everything works great.

For those of you with a Surfboard SBV5120, I learned a quick way to find out if the signal is no good to the modem.  Go to http://192.168.1.100 and put in id: admin password: motorola  Then go to the Signal Strength tab.

Downstream Power Level should be -10 to 10 (0 is good)
Upstream Power Level should be around 46

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.