Monday, October 10, 2011

Optimum Online Docsis 3.0 Ariss Modem

A few months back, I started having internet speed problems at night.  Primarily after 6PM and before 12AM.  The phone techs all seemed to think getting 2Mbps was way too slow and would send a tech out to investigate.  The first few times, they changed cable (running a new line to the house, changing some cable in the house, etc.) but alas it did not fix the nightly problem.


Finally, after months of complaining to Optimum online and having techs come to the house to discover "nothing" wrong, I read that sometimes these new 3.0 modems work much better so I got optimum to provide a new cable modem.
Arris TM802 Manual
and so far this new modem has been providing speeds like I've never seen before.  I've seen 20Mbps regularly and have been very impressed. The only downside is the Upload speeds are definitely lower.  With my old Motorola Surfboard modem, I was getting 2Mb/s up consistently and 2Mb/s - 10Mb/s down.  Given my speed issues, I'll happy with this setup.






It also appears to have a battery slot in the bottom (for which Cablevision did not provide a battery).


If anyone knows a backdoor into the modem's diagnostics, I'd like to post that here.


So, if you've been having speed issues like this, I think the first thing I'd try is to get one of these new modems!  


Leave feedback if this has worked for you to let others know.





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.

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:

Monday, March 28, 2011

NSDateFormatter


This link has all of the NSDateFormatter format variables which isn't in the Objective C documentation:
http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns


NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init]; 
NSString *format = @"EEE, MMM d, ''yy"; 
[inputFormatter setDateFormat:format]; 
NSDate *date = [inputFormatter dateFromString:sdate]; 
[inputFormatter release];

Here's the section from the standard:  Appendix F: Date Format Patterns

A date pattern is a string of characters, where specific strings of characters are replaced with date and time data from a calendar when formatting or used to generate data for a calendar when parsing. The following are the characters used in patterns to show the appropriate formats for a given locale. The following are examples:
PatternResult (in a particular locale)
yyyy.MM.dd G 'at' HH:mm:ss zzz1996.07.10 AD at 15:08:56 PDT
EEE, MMM d, ''yyWed, July 10, '96
h:mm a12:08 PM
hh 'o''clock' a, zzzz12 o'clock PM, Pacific Daylight Time
K:mm a, z0:00 PM, PST
yyyyy.MMMM.dd GGG hh:mm aaa01996.July.10 AD 12:08 PM
Characters may be used multiple times. For example, if y is used for the year, 'yy' might produce '99', whereas 'yyyy' produces '1999'. For most numerical fields, the number of characters specifies the field width. For example, if h is the hour, 'h' might produce '5', but 'hh' produces '05'. For some characters, the count specifies whether an abbreviated or full form should be used, but may have other choices, as given below.
Two single quotes represents a literal single quote, either inside or outside single quotes. Text within single quotes is not interpreted in any way (except for two adjacent single quotes). Otherwise all ASCII letter from a to z and A to Z are reserved as syntax characters, and require quoting if they are to represent literal characters. In addition, certain ASCII punctuation characters may become variable in the future (eg ":" being interpreted as the time separator and '/' as a date separator, and replaced by respective locale-sensitive characters in display).
Note: the counter-intuitive use of 5 letters for the narrow form of weekdays and months is forced by backwards compatibility.
Date Field Symbol Table
FieldSym.No.ExampleDescription
eraG1..3ADEra - Replaced with the Era string for the current date. One to three letters for the abbreviated form, four letters for the long form, five for the narrow form.
4Anno Domini
5A
yeary1..n1996Year. Normally the length specifies the padding, but for two letters it also specifies the maximum length. Example:










Yearyyyyyyyyyyyyyyy
AD 1101001000100001
AD 121212012001200012
AD 12312323123012300123
AD 12341234341234123401234
AD 123451234545123451234512345
Y1..n1997Year (of "Week of Year"), used in ISO year-week calendar. May differ from calendar year.
u1..n4601Extended year. This is a single number designating the year of this calendar system, encompassing all supra-year fields. For example, for the Julian calendar system, year numbers are positive, with an era of BCE or CE. An extended year value for the Julian calendar system assigns positive values to CE years and negative values to BCE years, with 1 BCE being year 0.
quarterQ1..202Quarter - Use one or two for the numerical quarter, three for the abbreviation, or four for the full name.
3Q2
42nd quarter
q1..202Stand-Alone Quarter - Use one or two for the numerical quarter, three for the abbreviation, or four for the full name.
3Q2
42nd quarter
monthM1..209Month - Use one or two for the numerical month, three for the abbreviation, or four for the full name, or five for the narrow name.
3Sept
4September
5S
L1..209Stand-Alone Month - Use one or two for the numerical month, three for the abbreviation, or four for the full name, or 5 for the narrow name.
3Sept
4September
5S
weekw1..227Week of Year.
W13Week of Month
dayd1..21Date - Day of the month
D1..3345Day of year
F12Day of Week in Month. The example is for the 2nd Wed in July
g1..n2451334Modified Julian day. This is different from the conventional Julian day number in two regards. First, it demarcates days at local zone midnight, rather than noon GMT. Second, it is a local number; that is, it depends on the local time zone. It can be thought of as a single number that encompasses all the date-related fields.
week
day
E1..3TuesDay of week - Use one through three letters for the short day, or four for the full name, or five for the narrow name.
4Tuesday
5T
e1..22Local day of week. Same as E except adds a numeric value that will depend on the local starting day of the week, using one or two letters. For this example, Monday is the first day of the week.
3Tues
4Tuesday
5T
c12Stand-Alone local day of week - Use one letter for the local numeric value (same as 'e'), three for the short day, or four for the full name, or five for the narrow name.
3Tues
4Tuesday
5T
perioda1AMAM or PM
hourh1..211Hour [1-12].
H1..213Hour [0-23].
K1..20Hour [0-11].
k1..224Hour [1-24].
minutem1..259Minute. Use one or two for zero padding.
seconds1..212Second. Use one or two for zero padding.
S1..n3457Fractional Second - rounds to the count of letters. (example is for 12.34567)
A1..n69540000Milliseconds in day. This field behaves exactly like a composite of all time-related fields, not including the zone fields. As such, it also reflects discontinuities of those fields on DST transition days. On a day of DST onset, it will jump forward. On a day of DST cessation, it will jump backward. This reflects the fact that is must be combined with the offset field to obtain a unique local time value.
zonez1..3PDTTimezone - Use one to three letters for the short timezone or four for the full name. For more information, see Appendix J: Time Zone Display Names
4Pacific Daylight Time
Z1..3-0800Use one to three letters for RFC 822, four letters for GMT format.
4GMT-08:00
v1PTUse one letter for short wall (generic) time, four for long wall time. For more information, see Appendix J: Time Zone Display Names
4Pacific Time
All non-letter character represent themselves in a pattern, except for the single quote. It is used to 'escape' letters. Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.