Friday, November 29, 2013

OneNote and How I Learned To Love It

I have been using Microsoft OneNote for a little over a year now and have finally decided to take a moment to write on my experiences with it.

For those of you not familiar with OneNote, its Microsoft's offering in the notebook replacement arena. Much in the same vein as Evernote, its primary purpose is to assist you in your daily note taking, something that is quite common when you work as a Programmer. OneNote is a part of the Microsoft Office suite, and while I have had access to it at work, I did not really give it a chance until I picked up my Windows Phone back in May of 2012.

Microsoft has made a big push in the last few years to make their Office suite more avaliable to consumers, outside of the traditional Enterprise setting. Starting with Windows Phone, and then with their forays into products such as Office 365 and SkyDrive to compete with Google Docs and Google Drive OneNote has been pushed from a once niche product to the forefront. Microsoft Office Home and Student 2013 come with OneNote and new Windows 8.1 Tablets smaller than 10.5in come with Home and Student 2013 preloaded.

My first real experience with it was via Windows Phone which contains a native App that allows you to edit notes and then store them to Microsoft's SkyDrive service. You can then edit the notes using the SkyDrive/Office 365 WebApp, or link your desktop version of OneNote to SkyDrive and have one centralized place where all of your notes are uploaded and then synced down to your devices. This integration was a huge selling point to me as it allowed for central storage of my thoughts and notes in a way that was consistent and fluid.

The tool itself is very powerful, allowing for various forms of input via Keyboard, Voice, or Digitizer. It integrates extremely tightly with the rest of the Microsoft ecosystem, specifically with Outlook/Exchange and Sharepoint which allow for seamless flow between Office Apps.

That being said the tool does leave a lot to be desired, for one its document formatting tools leave a lot to be desired. In its defense I think they are trying to market it as a place to jot your notes with the intention that you open up into Word once you want to do some heavy formatting. However having editable Styles (specifically allowing for the "Code Style" to be modified) would be a huge boon.

Also as with most tools it is only as good as the experience of the end user of the tool. While I do not believe the learning curve is high on this tool, good note taking skills, which a sizable portion of people lack, are crucial when using a tool such as this.

The final complaint was the high complexity of a recovery when something "goes wrong". I recently ran into an issue in which somehow my unfiled notes section became corrupted during a Sync between my devices. The recovery process involved me creating a new section and copying out the affected pages. While a simple task for me, I could see how it would be daunting for your average end user.

What continues to bring me back to this program is the integration and cloud aspect of the program. The fact that there is a single experience between multiple devices and that your data follows you everywhere is a huge productivity boost and encourages use of the product though ubiquitous use. If you have not already tried OneNote, or had tried it in the past and given up, give it a shot today and experience what an integrated solution offers you.

Friday, November 22, 2013

Developing for Windows 8.1

Earlier this Month I took my first plunge into writing a Windows 8.1 App. While I am still learning the ins and outs I had a few initial reactions that I wanted to post here:

  • While it is claimed you can write a Windows Store App in C# what they really mean to say is that you can write your Application in a very specific subset of C#.
    • This posed issues for my intended project as I was hoping to rely on a common third party library to accomplish some tasks.
  • Documentation of the API is spotty at best, several of the API/Method names are reused between WPF, Silverlight, and Windows.
    • This makes searching for help on the Internet a bit more difficult because while on the surface all of these technologies appear very similar there appear to be (at least in my experience) minor differences which cause some "fixes" not to work as expected.
  • Having a strong understanding of XAML, DataBinding, and Async programming are keys to success in writing Windows Store Apps.

Friday, November 15, 2013

Hackerspace

I recently have had the privilege of being invited to participate in a Hackerspace here in Billings, Montana. Andrew Niemantsverdriet worked with the head of the Rocky Mountain College Computer Science Department and was able to allocate us a small room to meet in and work on small geeky projects and sit and chat.

It has been a pleasurable experience and we're looking forward to starting our first "real" project.

Wednesday, November 13, 2013

Blog Neglect...

Looking back at this blog I have not posted in well over a year, I had some big plans for posting on a daily basis (ala Raymond Chen and his blog The Old New Thing, probably one of my favorite blogs).

I am still living in Billings and it is exciting to see the changes the city is going through as it continues to expand, I have not made the commitment to purchase a house here, but I should probably do so soon.Not much has changed work wise for me; I am still the Build Master and work hard to solve challenges every day. It is a sometimes frustrating, but always rewarding job, that I am lucky to have.

As far as toys and gadgets I continue to build my collection, I have finally drank the Windows 8.1 Kool-Aid, and I will write up my experiences with in at a later date (although judging by my past responses that may or may not happen!).

Friday, June 1, 2012

Upgrading to Firefox 12

I have held off upgrading to the latest version of Firefox for various reasons, but I finally took the plunge a few weeks back and upgraded to the latest and greatest.

A few of the reasons I have held off upgrading have been resolved, either by changes by the Firefox team, or through extensions:
  1. Status Bar
    1. Personally I enjoyed having the status bar at the bottom of the page in Firefox. Fortunately this has been resolved by installing the Status-4-Evar which brings back the classic status bar.
  2. Simply Sliver Persona
    1. I personally do not care for the Aero look beyond just the frames, I feel it is distracting when used beyond the window title bar. Applying a Firefox Persona will remove the Aero Glass from the background of the Back and Forward Buttons.
  3. Firefox 3 Aero Theme
    1. Alternatively on my Desktop I have installed the Firefox 3 Aero Theme, which replicates the Firefox 3 Aero look. The theme replicates the original look pretty well.
  4. Standard Windows Menu Bar
    1. I do not care for menus that are docked onto the Window Title Bar. In fact menus like this violate the Microsoft UI Guidelines for Window Frames http://msdn.microsoft.com/en-us/library/aa974173.aspx#frames Don't add controls to a window frame. Put the controls within the window instead.
    2. Thankfully this is configurable in Firefox to disable this behavior and return to the standard Windows Menu Bar.
  5. Tabs on Bottom
    1. I do not understand the desire to have 'Tabs on Top', I prefer them on the Bottom where they have always been.
    2. Once again thankfully this is configurable in Firefox to disable this behavior and return to the original location of the tabs.

In once all of these changes have been made, the newest Firefox looks and behaves enough like Firefox 3.6 for my tastes. Plus there is the advantage of running the latest and greatest version of Firefox.

Thursday, May 31, 2012

Fabulous Adventures in Windows Phone 7.5

While back home in Hawaii I had a chance to replace my phone of 4 years (a BlackBerry Curve 8330) which has served me well.

Being on the Sprint Network my choices were a little limited when it came to new Phones, however they did have offerings from all of the major platform providers: iOS, Android, BlackBerry, and Windows Phone.

I had heard a lot of good things about the Windows Phone platform and decided that I had waited long enough before making the plunge. Sprint offers only one Windows Phone, the HTC Arrive, which is a candy bar slider.

Out of the box the phone was running stock Windows Phone 7, however I knew that Microsoft had released Windows Phone 7.5 "Mango" late last year, therefore the first thing to do was update the phone to the latest and greatest. Apparently this upgrade cannot happen over the air, therefore I had to reinstall Zune on my laptop (I had not reinstalled it after I upgraded to a Solid State Drive last month).

After Zune was installed I began the long process of upgrading the phone to Mango. In all it took about an hour to download and install all updates. It also required several reboots of the phone. My experience with the original Windows Phone was so limited that I cannot really speak to the differences or improvements with Mango, however I must say that I am impressed with the level of integration offered in Windows Phone with regards to Faceboook.

After linking my Facebook Profile to my phone it downloaded all of my friends photos and their contact numbers and added them to my phone book. The end result is their Facebook photo being displayed every time I get a call, which is a nice touch.

Another nice touch is the ability to switch between SMS/Facebook Chat/Windows Live Chat all in the same message thread. It keeps the entire conversation in one window, as opposed to splintering the conversation across programs.

I have yet to start programming for it, but I'm excited to give it a shot, unfortunately it appears that you need to pay $99 to Microsoft in order to become a developer for their App Store, so perhaps I'll wait until I have a 'Killer App' before I take the plunge!

Until next time.

Wednesday, May 30, 2012

Installing Tomato on a Linksys WRT300N

While back home in Hawaii, I was tasked to fix the 'broken internet' connection. Awhile back I had purchased a Linksys WRT300N to replace a cheap D-Link 524 that had seen its fair share of use at home.

My parents are not heavy Internet users, so I thought it best to leave the stock firmware on the device. However this has proved to be troublesome, with my parents having to power cycle the router at least once a week.

Recently I picked up an ASUS RT-N16 for my house back in Billings. I installed TomatoUSB and have been very impressed with the stability of the router. Therefore I thought I would give Tomato a shot here on the router in Hawaii.

First you need to ensure that you have the right version of the WRT300N, apparently only V1 and V1.1 routers are supported. I purchased the WRT300N just as it had come out, so I had a V1 router on my hand.

After a few hours of Googling I was able to stumble across a helpful post on the TomatoUSB Forums, the suggestion was to first install DD-WRT and then install TomatoUSB. I used the NoUSB "tomato-K26-1.28.9054MIPSR1-beta-Std.trx" which can be found at http://tomatousb.org/download under the 2.6 Experimental NoUSB Link.You will need WinRAR to extract that file.

Following the guide posted on the DD-WRT Wiki I was able to successfully install DD-WRT, I have reproduced the relevant steps below (as the Wiki page seems to have disappeared):
  1. Disconnect your device from wifi and run a cable directly to your router.
    1. Anytime you do any flashing like this you want to ensure that you are hardwired to the device and not attempting to do this over wifi.
  2. Download DD-WRT v24 Mini [dd-wrt.v24_mini_wrt300n.bin].
    1. I downloaded it from here ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/2010/08-12-10-r14929/broadcom/dd-wrt.v24_mini_wrt300n.bin as per the wiki. However that link might be dead, and you may have to do some googling.
  3. Open your web browser to 192.168.1.1
  4. Log-in and find any settings you might want to keep and copy them down or cut and paste them to notepad or another editor.
  5. Do a proper HARD reset on your router. (30-30-30 Reset)
    1. I had to perform another Google search to understand what they meant by a proper HARD reset (30-30-30) Apparently it means to hold down the reset button while the device is plugged in for 30 seconds, then while still holding the reset button unplug the device and wait another 30 seconds, while still holding the reset button plugging the device back in and waiting 30 seconds. This means that you are holding down the reset button for 90 seconds. This clears the NVRAM on the device apparently and ensures that your device is good to rock and roll.
  6. Set your computer to a static IP address of 192.168.1.7 Subnet mask to 255.255.255.0
    1. All we are doing with this step for you network guru's is giving ourselves a static IP address to ensure that we don't rely on the router to be running the DHCP service. This step should be familiar to anyone who has reflashed any of these devices.
  7. Log back into the router
    1. I had trouble using Firefox 12, so I had to fall back to using Internet Explorer 9 in order to upload the new firmware.
    2. It will have defaulted to the original login username and password. These should be <blank>/admin, please note that the user name is actually blank!
  8.  Go to Administration->Firmware Upgrade in the Linksys Menu
  9. Browse to the dd-wrt.v24_mini_wrt300n.bin you downloaded, and hit upgrade.
  10. Wait until you can access the dd-wrt webgui at 192.168.1.1
    1. This is important to wait, because you are flashing you do not want to power off the router at the wrong time, as this could brick your device.
    2. The default login information for DD-WRT is root/admin
  11. Power cycle the router
    1. Once again, make sure that the device has completed the flashing procedure. You can tell that this has been completed because you are able to access the dd-wrt webgui.
    2. To Power cycle just simply unplug the power, wait 30 seconds, and plug the power back in.
  12. Wait until you can access the dd-wrt webgui at 192.168.1.1
  13. Do ANOTHER hard reset on the router. (30/30/30)
    1. This is the second hard reset for the router.
    2. It is important to do these hard resets, so while you may try to skip them do not!  you will get yourself into a world of hurt!
At this point DD-WRT has been installed. Some people like DD-WRT and your router should be back in action at this point, I myself have no real experience with it, so I continued on to flashing TomatoUSB:
  1. Login to the DD-WRT webgui
    1. Again I am still using Internet Explorer because of issues with Firefox
  2. Go to Administration -> Firmware Upgrade
  3. Browse for the tomato-K26-1.28.9054MIPSR1-beta-Std.trx that you had downloaded and extracted earlier in this guide.
  4. Start the firmware upgrade.
    1. Make sure it finishes by waiting for the web interface to come back up. The default login information is  admin/admin
  5. Once this completes do one more hard reset on the router (30/30/30).
You should now be running Tomato! Have fun.