Monday, November 11, 2013

Slow Getting Up by Nate Jackson

Finished this book yesterday.  It was good and detailed and painted an interesting, if not all that surprising, picture of the NFL.  He adds a human element to the regular TV spectacle and generally comes down harder on himself than anybody else.  Parts of it can be rambling, but for the most part, he reins it in.  The style seems influenced by Hunter S Thompson, but it isn't quite that haphazard or funny.  The most striking thing after having finished the book is how even though he can see that football has used him up physically, he doesn't regret it or seem bitter towards the league at all.  A worthwhile read.

Wednesday, November 06, 2013

Google Calendars

I use google's calendar for keep track of personal events and my company also switched to google apps for business (which was a horrible decision because everything except the hangouts feature is crap compared to their competition).  So I'd like to copy a few important events from the business calendar to the personal calendar.  I shared the business calendar with my personal account, but it only showed "Out" and no details for all the events.  So I forwarded the invitation, but that did nothing except give me the information in a different place (no fancy "import this event" on the attached .ics file).  I tried to open the event in android where I have both calendars, but there was no way to copy it.  So I had to export the event as an .ics file from the business calendar, then reimport them in the personal calendar.  That is regressive behavior which is why I liked MS Exchange better.  I'm not that special and there's no way I'm the only one who hits these minor annoyances every other day.  It has to be more than just email to meet my needs, I guess.  Google apps are still siloed except for a few tiny footbridges (and a bunch of google plus junk sprayed all over everything like a skunk frat party was just there).

Also, google voice is removing the ability to make softphone calls: .  So they've got followme ring groups and bad transcripts, but not much else.

Monday, October 21, 2013

Waze Quick Review

Waze is an app which is supposed to optimize your commute by gathering a ton of traffic data from it's many many users.  Google bought them recently.  I've used it for a few weeks for a 30 mile daily commute.  So far, it's not particularly useful in Northern Virginia because the HOT/495 Express Lanes completely screw it up.  Also, the voice control is next to useless (I get prompted "OK?" and say "OK" and it asks me to repeat myself three times before canceling my action.  Maybe better for non-toll road commuting.

Wednesday, October 16, 2013

Quick Verizon MotoX Review

Came to this phone from a Droid Pro (tried a galaxy s4 for a week and returned because it was too big).  Very bright screen with great vivid and apparently accurate colors.  The minimum brightness is way too high in the dark.  The Screen Filter app awesomely fixed that.  It lets you disable a lagre part of the built-in verizon crap that you can't uninstall.  Verizon is being complete jerks about rooting still (I really wish I had convinced my wife to switch to T-Mobile so I could have gotten a better phone for rooting/roms/different OSes).  It gets amazingly hot when charging or playing a game or just leaving the mobile data on in your pocket.  The camera is fine.  The button placement is annoying.  There's no quick way to disable LTE (to reduce the heat problem), but you can set your prefered network setting to global instead of LTE.  It's just as fast as the S4 was for everything I've done.  The motorola assist stuff is moderately ok, but I haven't used it heavily.  The quick camera launch gesture is sweet though.  Google Now doesn't do anything I want well.  If I wake up the phone to tell it to do something, I have to still unlock the phone by looking at the screen and entering my PIN which defeats the purpose of voice control.  It requires a mobile data connection for most commands.  There's no SD card.  It is totally comfortable to hold while running and is isn't waterproof, but it does have a water repellant coating.  So far the voice quality on phone calls is great, which is awesome and makes me wonder why it sucks so bad at recognizing my voice.  The desktop wastes a bunch of screen space and doesn't look as good as cyanogenmod 7 did on my droid pro.  The calendar widget in particular is space-inefficient.  The motorola migrate app is a great idea that I haven't tried out yet.  Apparently the custom shell program will be available outside AT&T in November.  Firefox is a much better browser than Chrome on it and there's no default generic Android internet browser.

Did I mention that it gets way amazingly super duper hot while using mobile data or wifi?  I wish it were rootable and boot loader unlockable.  Can't wait until Verizon Wireless gets a clue or I get a different carrier.

Things left to try: Tethering, OpenVPN

Tuesday, October 15, 2013

Java Inanity

I just found out that java on windows now overrides the system path and always runs a version as defined in the registry.  Only does this on Windows.  Every other OS doesn't even have a registry causing secret hidden problems.  Whoever made that design decision should be keelhauled.

I found out that deleting java.exe, javaw.exe, and javaws.exe from c:\windows\system32 took care of the issue.  So dumb . . . . 

Monday, September 30, 2013

Gmail's UI Curtails Productivity

Typing formatted emails in Gmail's not so new compose UI really stinks.  None of the shortcuts except maybe bold or underline are anything like a standard and there's no way to remember them all.  I've got about a thousand pixels of blank space at the bottom of the message box between the send button and the trash icon that's going to waste now.  It's incredibly senseless . . . .

Friday, September 27, 2013

Maven Annoyances Notes

To fetch dependencies without going through the local maven repo first, use
 mvn install -U

To find conflicts, use
 mvn dependency:tree

When you get an untraceable jar version conflict error or some spring error that is way outside your own code, chances are high that maven is creating the problem and you should build clean and/or refresh your local repo.  The downside is that it takes forever to run a maven build when an ant build would be snappy.

Wednesday, May 22, 2013

Decent Ideas

Exempt stick/clutch pedal manual transmission passenger cars from CAFE requirements on the argument that they increase driver attentiveness and consequently improve safety and make traffic better.

Combine an rgb LED "bulb" (like one of the incandescent replacement bulbs with an edison or gu10 base) w/ an infrared sensor like the thermometers that you can point at anything to get a surface temp and then have the bulb change color to show the current temp below it.  Install a crap ton of them on the ceiling in a gallery or outside and get a large live interactive color display.

Tuesday, May 07, 2013

Droid Pro Root Rom Tip

You have to go back to the latest SBF backup before clockworkmod recovery installation with the droid2bootstrap.apk will work.  If you update after installing the sbf (to get rid of the nonstop crash messages), I don't think the installation will do anything.  It just keeps using the regular recovery.  After you manage to install it, just tap down-volume when the LED lights up blue and go nuts w/ your unsigned roms.

 I am eager to learn more.

Thursday, May 02, 2013

Pointless Idea

A Manual CVT transmission where the driver has a slider or gear lever that controls the gearing ratio. 

(So I can have a stick shift that actually shifts, while also having the stupid automatic transmission that I don't want, but it saves fuel now, so it's hard to buy a car without one)

Wednesday, April 03, 2013

jQuery DataTables FixedColumns

I used the jquery datatables plugin recently because it was a tiny bit easier than jtable or jqgrid.  The fixed columns plugin complains about jquery.browser not being present in newer versions of jQuery (unless you use the jquery migrate plugin) and glitches if you use jquery-ui and turn off sorting.  Turns out the latest dev version fixes these issues, it just hasn't been pushed to the regular extra package zip downloads on the extras page. So, use the dev version instead of patching it yourself like I did before I realized there was a dev version.

Friday, March 29, 2013

Workaround IE Class/Style Sticking Bug

In my click event handler for a tr element, I'm toggling the class with jQuery, but in IE 7,8,9, and 10 the style of the class doesn't get removed until I click a different row.  I fixed it by prepending a space (' ') to the tr content after calling toggleClass.

Javascript Dates and Internet Explorer

Internet Explorer 8,9, and 10 all handle dates differently.  Here's an illustration of that:

Thursday, March 28, 2013

Copy VMs from one ESXi host directly to another

I found out today that esxi's firewall prevents outgoing ssh by default.  It was blocking my scp attempts.  Once I turned it off (vsphere client->host->configuration->security profile->firewall properties, check the ssh client box and hit ok), it was a simple matter to clone the one host to the other by enabling ssh on both, logging on as root to the target machine, and running

scp -r root@sourcehost:/vmfs/volumes/datastore1/* /vmfs/volumes/datastore1/

And that cloned all the VMs.  Change the firewall back when you're done and all that's left is registering them with esxi and dealing with any guest OS license/SID issues.  If you use the vmware ovftool, it will be faster (my observation, not based on real benchmarking) and automatically register your vm with the target host, but you have to leave the machine running the ovftool running and connected to your network or the process will die.  Also, no wildcards with the ovftool so you have to do the VMs one by one.

Wednesday, March 27, 2013

Monday, March 25, 2013

OSS Endpoint Manager + Polycom 501 LineKeys Fix

Using OSS Endpoint manager and our polycom phones, I could not get any lineKeys settings to propagate to the generated _reg.cfg files.  I could edit the files after they were generated and reload the phones just fine, but if I made any changes in the freepbx gui, my changes would just be overwritten.  So, under Connectivity->OSS Endpoint Template Manager, I created a new template that was a clone of the polycom 501 templates.  I edited my template (clicked the pencil), then I edited $mac_reg.cfg and changed line 33 from:
on the assumption that $lineKeys just wasn't being defined no matter what you enter in the GUI.  After that, I regenerated the config for all of my phones and rebooted them all because I like hearing that beeping sound go all the way through our offices and it worked fine.

Next up is removing all the config that doesn't apply to the 500 series phones since they are taking like 8 times longer to boot up now than they did with trixbox.

Wednesday, March 20, 2013

Json Serialization Bug in .NET w/ Json.NET

I tried to conditionally serialize an object to Json using the ShouldSerialize function method described here.  It didn't work because I defined the ShouldSerialize functions as members of a child class and the reflection code is using only the DeclaringType to look up the ShouldSerialize methods.  Using a ContractResolver worked around the bug.

Friday, March 08, 2013

Fun with PBX

Working on a new pbxinaflash experimental vm to replace trixbox.  So far I've learned that I know way less than I thought I did and trixbox and freepbx are miles apart.  Also, pbxinaflash and incrediblepbx are related, but different.  Also I have no idea whether to use pbiaf-purple or piaf-green.  The main difference appears to be 32 vs 64 bit.  More bits is better, I guess, and it would get me incredible pbx 11 instead of 10 to use the 64 bit version.  It might be worthwhile to at least try out YATE while I have a little time . . . .

Thursday, February 28, 2013

Aerial Relays

 Since commercial airplanes are in the sky between major metropolitan areas most often during the day when bandwidth demands are pretty high, it might make sense to use them like a cross between satellite relays and wi-fi bridges to increase bandwidth capacity during those times. 

Thursday, February 21, 2013

Fun With Wireless

Configured a Ruckus Wireless 7982 AP today.  If I set the 2.4Ghz access point to use WPA2/AES or WPA2/Auto Encryption, then it will crash my Droid Pro, but if I choose TKIP, it will be limited to 802.11g networking.  The solution was to set it to use WPA-Auto/Auto Encryption.  Weird.

Thursday, February 07, 2013

Including TFS Info In Visual Studio Project Build Output

I wanted to know what build version is in which environment and whether there were pending local changes when a project was built so I put a few things together to recreate what I'd done before with ant and subversion.  This requires a visual studio version with TFS support in the first place (so that you have the tf.exe command available) and may or may not work on a build server.  If you try it on a build server, please leave a comment about whether it works or not.  Also, it assumes you already got the latest code from the server.  Otherwise, the tf history info might list changesets which you haven't pulled down locally.  Personally, I think that's a bug in tf.exe.
  1.  In the properties for your project, under build events, add the following as either a pre or post build step:
    set PATH=%PATH%;$(DevEnvDir)
    $(ProjectDir)\tfsVersionScript.bat $(ProjectName) $(ProjectDir)
  2. Create a file in your project root directory called tfsVersionScript.bat with the following contents (You'll have to adjust the number of times you put "..\" in the tf command arguments based on your own TFS folder structure so that you get the changeset history and pending changes for the right folder):
    @echo off
    del /Q %2\version.htm
    echo ^<html^>^<head^>^<title^>%1^</title^>^</head^>^<body^> > %2\version.htm
    echo ^<p^>Built project %~1 in path %~2 ^</p^> >> %2\version.htm
    time /T >> %2\version.htm
    date /T >> %2\version.htm
    echo ^<pre^>Most recent changes from tfs: >> %2\version.htm
    tf history ..\..\* /recursive /stopafter:10 /noprompt >> %2\version.htm
    echo ^<br\^> >> %2\version.htm
    echo ^<b^>Pending local changes:^</b^>^<br\^> >> %2\version.htm
    tf status ..\..\* /recursive /format:brief >> %2\version.htm
    echo ^</pre^>^</body^>^</html^> >> %2\version.htm
  3. Run the build once.
  4. Add version.htm to your project so it will be included when you package the output
  5. Save and check-in your pending changes.  Add the .bat file to tfs, but not the project and don't bother checking in version.htm.  The .bat file doesn't even need to be inside the project directory.
Not perfect, but a lot better than relying on somebody manually updating a config file.