A few tips for sales people.

I had a salesman stop by the other day, and after I had finally got him to listen and leave, I thought of several things that salespeople, including this gentleman, don’t seem to know.  This is common across the board, and I feel for the guy because he is just trying to make a living.  But if you take a few tips, I think your career will do much better… nearly immediately.

  1. Giving tons of information does not help me as a consumer, necessarily.

    Sales people often tend to think that if they can talk a lot and give information overload, they are more likely to make the sale.  This is flat out wrong, reason being that people do not like to be sold.  Talking continuously pretty much only gives that impression, as you aren’t understanding the potential customer’s needs and are still making recommendations.

    Lesson here:  Tell the customer what you do (shortly), then probe to see if what you have to offer meets a need of theirs.  If you do >30% of the talking, you’re doing it wrong.

  2. Don’t lie. No trust, no sale.

    So, my yard looked pretty rough, I was well aware of that problem.  The salesman asked me how I kept it, because he wanted me to keep his sign in my yard.  I said “you can pretty clearly see the answer to that” and he replied with “It looks great, I’d love to have a sign here”.

    Right there I knew there was no way we could do business together, even if I was interested.  He just lied to me, objectively – my yard looked awful.  I hadn’t mowed in nearly 2 weeks and in Indiana, it’s fertile and things grow quickly.  Not to mention the weeds.Lesson: Don’t lie to the customer, business relationships need trust.  If you lie about something trivial, then how could I trust you with anything more?

  3. Solve my problem, educate me to understand why it’s a problem.

    You may have a revolutionary product that solves all my problems in life.  If you do, help me get to the conclusion that it solves a problem for me.  You telling me will never get it through, it ties back into #1 – I don’t want to be sold.

    Lesson: Lead the consumer into the conclusion that what you have solves a problem.  Telling them won’t get that through.

There are tons more important sales tips, I am no longer in that career, but the best book I ever read is by Sandler.  In my limited experience, the tips taught there are well worth consideration.

Mac Woes – Unable to resolve hosts

I own a Mac for my personal computing, not because I am a fanboi or a loyalist, but because they simply provide the best form/function ratio for me.  Solid construction, thin, light, awesome screens, good trackpads, and solid battery life.  The price tag is well worth it for the things I care about.  If I am honest, I generally like Apple stuff better other than for phones (for those, I run vanilla android devices).  It’s nice to have an OS that has software support from most major publishers but also has the *nixy things I prefer over windows.  But that is beside the point…

That said, there are many unfortunate things with them – the fanboi-ism tends to lend for poor online help until you find something in the dark abused corner of the dumptruck.  Problems are often attributed to “user error” or allegations of the poster being an “apple hater”, at least in many of the places I have seen Q/A info that is helpful for the product.

My actual issue, is that I‘ve on-and-off had issues with my mac’s ability to resolve hosts.  For a while I was blaming Comcast (probably justifiably, though not the direct issue here).  Instead, I realized it was after I had started using a VPN from my personal computer to work (before they gave me a clone of my personal laptop for work use).  Unintelligently, I listened to IT and used the “Cisco Anywhere Client” instead of Apple’s built in one.

Symptoms, I have had on and off ability to resolve hosts.  Websites that were accessible on and off.  Very strange.  First Chrome just gives the little dinosaur:


Okay, trying firefox led to their equivalent.  Alright, maybe Safari could give some diagnostics to be helpful, you know – since that is Apple’s browser.  Nope, that just “loads” and leaves a blank page – it doesn’t even say the resources couldn’t be found.  It’s generally a fine browser on a mac, but that is not helpful to a user.

Cisco VPN gives an installer, not just a *.app file (easy to uninstall), which grabs hold in the darkest areas of your computer, things you normally don’t worry about.  Launch daemons, several “app data” type folders and a *.app.  If you have installed the Cisco Anywhere VPN Client and you see oddities in your browser speed / website resolution, here is how to tell if this is your cause:

  • Open ‘Activity Monitor’
  • In the default tab (CPU), search for “vpnagentd”
  • If it exists, force close it and try to browse to a site that appeared as down before.
  • If it works, the vpn client is probably the source of your problem.

Awesome, I found the cause.  Unfortunately, the “vpnagentd” keeps auto-starting…  I am not about to manually kill that every time I need to resolve a strange host.  One option is to write a script that kills it any time it starts, but that is an awful workaround.  Fortunately, I had enough time to kill to find all the places the client’s claws have touched.

To kill it off:

  1. Kill off the Cisco client in the menu bar
  2. Remove the .app from /Applications
  3. Follow Cisco’s uninstall guide
  4. Open terminal and login as root (`sudo -i` for most users, and it will just ask for your password – note – as you type your password is not displayed)
  5. Then remove the module from loading with: `launchctl remove com.cisco.anyconnect.vpnagentd` (without the back ticks)

I haven’t seen the issues since doing this.  Cisco makes many good things, but this is not one of them.  Use Apple’s built in VPN client instead.


Generally, I wouldn’t think that the release of another text editor would be something noteworthy… but today – Github released one that looks oddly similar to Sublime Text – Atom.

Screen Shot 2014-02-26 at 9.58.38 PM

I’m a huge fan of Sublime Text, so the thought of leaving any time soon was unlikely; however, since the “nightlies” of ST3 have been less than quarterlies the thought has crept in more and more.  Generally speaking, the delay wouldn’t be a major cause of concern for me since ST3 is stable enough to use as a daily driver – but it seems like development on a text editor that I paid for has stalled while improvements can certainly be made.  That in mind, I am reluctantly open to looking into new options.

Unfortunately, my work is strictly Windows – so I can really only try this for personal use (Atom’s beta is OSX only, at least for now).  My first impressions are definitely favorable – it maintains a lot of the expected functionality from Sublime – default keybindings, command palette, etc.  That allows for an easier transition.  It’s also more customizable – since it uses web technologies – customization will be pretty darn easy (there’s an inspector!?).

At first glance it seems like a great candidate for the “next sublime”, but I am not about to make that bold of a claim right now.  Hopefully over the next week or so I can really spend some time with it and post an in-depth review.

Screen Shot 2014-02-26 at 9.56.01 PM
Monokai Theme
Screen Shot 2014-02-26 at 9.56.23 PM
Searchable Preferences (fuzzy search)


Using VLC’s Python Bindings (vlc.py)

I’ve recently been working on a project using Python that needs to stream media from a network source, to get going quickly I decided to just use VLC since it’s open source, has bindings for most languages, and is cross platform.

Last night, I cloned `vlc.py` from VideoLAN and had almost no issues getting going based off their example code.  However this morning I was taking a short break from work related stuff (to get some perspective) and I pulled that over to my work box.  Surprisingly, I got an error that I hadn’t seen last evening:

Traceback (most recent call last):
File “.\vlc.py”, line 163, in <module>
dll, plugin_path = find_lib()
File “.\vlc.py”, line 140, in find_lib
dll = ctypes.CDLL(‘libvlc.dll’)
File “C:\Python33\lib\ctypes\__init__.py”, line 353, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found

Here I was thinking I just needed to add `__init__.py` to my modules directory, since at first glance I saw a seemingly common error suggesting a module doesn’t exist in the python directories or my local project resources directory.

OSError: [WinError 126] The specified module could not be found

Facepalm, RTFO.  The actual issue is the DLL couldn’t be found.  In some cases in my quick research, people were using 64-bit Python and moving to x86 fixed their issue, but I learned not to do that quite some time ago so that wasn’t my issue.

The actual issue lies a little before line 140 of `vlc.py` (before the actual exception’s reporting) where VLC.py searches for the required DLL `libvlc.dll`.  What happens is VLC checks if the path exists for the DLL, if it is found there it will break from checking any more and change to that directory to try to load the DLL.  If it isn’t found, it will just try to load blindly from the `cwd` (which is highly unlikely unless you manually moved it or are running a script from there… oddly).

The issue is then pretty obvious, it wasn’t found in the search and it isn’t where I am running my script from.  In my experience, the default VLC install location for windows is Program Files (x86), so it is weird that their python bindings don’t include that location and they do include Program Files... Back in the day it was probably just the 1 directory, however, it isn’t now – so you’ll need to update it, as should they (I intend to submit that minor change to them at some point here).

Change the line that iterates through the path options (for me, line 126-128) from:

for p in ('Program Files\\VideoLan\\', 'VideoLan\\',
'Program Files\\', ''):


for p in ('Program Files\\VideoLan\\', 'VideoLan\\',
'Program Files\\', 'Program Files (x86)\\VideoLan\\',
'Program Files (x86)\\'):

All that does, if you don’t know how that works, is give a few more places for VLC.py to look for the required DLL to load into ctypes.  You can manually run `vlc.py` now and get some info to show that no exceptions were caught using the __main__ path.

Usage: .\vlc.py <movie_filename>
Once launched, type ? for help.

Build date: Tue Jul 2 10:35:53 2013 (0x0)
LibVLC version: 2.1.3 Rincewind (0x2010300)
LibVLC compiler: gcc version 4.8.2 (GCC)
Plugin path: C:\Program Files (x86)\VideoLan\VLC

Happy Multimedia Streaming from the Python bindings!


I’m aware that I get fairly low traffic, but I apparently pop up often enough to get some pretty consistent email and proposed comments (before I disabled that feature, that I’d). However, I did want to apologize for the hiatus – my wife and I recently moved across the country for a new job and we were in a state of transisition for several months. I believe the hiatus is over and and I can start sharing some new thoughts again.

MotoX MMS Issues On Wifi

I got this shiny new MotoX a few weeks ago and have been having some frustrating issues with MMS – mostly that they would not send.  After some digging, it appeared that being connected to WiFi was the issue – but that was just the manifestation of the actual issue.

There were several documented “fixes”, none of which worked:

  1. Reboot into Safe Mode (Long press Power Off and select OK), send an MMS while on WiFi, reboot, and it’s fixed.
  2. From your phone, send a picture to a GMail account linked to your phone, then it will “sort itself out”
  3. Hack the code on your phone to strip out the stuff Verizon put in that did this.

Again, none of those worked – well, I didn’t try #3 because that is a bit further than I was willing to go.  I did notice, however, that sending an SMS worked in Safe Mode, which disables all third party add ons.  That implied to me that some installed app was the culprit – not Verizon’s added code to the X.  Narrowing that down isn’t hard – what that I have installed can intercept data and block connections?  Oh.  Right – ad blockers, two of which I have installed.

The fix that worked for me: Uninstall Adblock PlusI haven’t dug into what is actually causing the problem with that, but I am intending to file a bug report with ABP, because I would love to keep using it.  It seems that the data portion of the MMS is going through it and never being handled correctly.  For now, however, I am stuck with amending my hosts file (using Big Tin Can’s Adfree Android).

Update: I moved to the Nexus 5, so I never followed up with what the actual issue was here, I apologize for disregarding any additional follow up of the true issue.  I would think there is a required data connection blocked that may also share a similar URL structure as an advertiser.


Nerding out on a new keyboard

Younger people, such as myself, probably don’t recall the old clacky keyboards much anymore – now that we are seemingly spoiled with modern tech full of sleek lines and chicklet style keyboards.  For a bit, chicklets were my preferred keyboard (such as on my now deceased Lenovo T530 or current Mac).  However, I recently have become interested in the mechanical keyboard craze as I type daily for a job and want the most pleasant experience possible.

I should warn people of my experience up-front so they can turn away and stop pursuing this idea if they are happy with what they have.  My experience was that I didnt know what I was missing until I tried them – so I probably could have just not started the pursuit and saved some cash… Seriously, if you like what you have,  stick with it – there is no reason to pursue something else!

I probably could be plenty happy with the traditional rubber dome or scissor type of keyboards, but comparison is the thief of contentment.  I started noticing how the non-mechanical keyboards felt with the rubber dome, it simply collapses (requiring a full depression of a key to get characters on the screen – this is just how the key actuates, the PCB must be touched with the capacitive material) and provides an inconsistent feedback.  When trying out a mechanical keyboard, in comparison, you get fairly consistent force required for actuation and a pleasant feedback, oh – and if you care about nerd points, you can seemingly buy them with a mechanical keyboard.

The barrier to entry is around $5 at Goodwill if you know what you are looking for, and are pretty darn lucky.  Unfortunately, I really didn’t up front – so a friend at work lent me his IBM Model M.  Apparently, this is revered as one of the best typing keyboards to date and their value is surprisingly high for a keyboard from the mid 80’s still being produced.  Take a look on eBay, they’re still selling (used) for $70+ and new in box for a bit more.  The true barrier is around $75, with the current intro keyboards really beginning around there.

The main problem of deciding whether or not a mechanical keyboard is attractive for your typing needs isn’t very hard to gauge, if you type a lot – you will benefit from the customized feel, tactile and/or audible feedback, and lower impact on your fingers/joints.  That being said, the feel of various switches (the true value of the mechanical keyboard) is highly subjective.  Unfortunately, few stores carry enough mechanical keyboard models for customers to try side-by-side – so in this highly subjective topic sphere, I had to mostly rely on subjectivity and the few great sites with the objective stats.

To get some personal experience (as I would suggest for anyone joining the club), I had a few options.

  1. Some companies, such as WASD have a sample kit of Cherry MX Switches, keycaps, and sound dampeners.  I didn’t bother with this idea since that seems like it is pretty far from the actual typing experience that I wanted before dropping $75 – $150 on a keyboard.
  2. Borrow a keyboard from a friend (maybe you are lucky and have multiple friends with various switch types)
  3. Find a store that carries some mechanical keyboards to begin scratching the surface of your preference.

I utilized options 2 and 3.  The Model M was a great introduction into the market, but I may lose lots of credibility when I say that I don’t really care for the Model M.  The audible and tactile feedback is nice as this uses a buckling spring instead of the Cherry MX’s (read: provides substantial feedback).  From my limited use of it verses the cherry series, it is most comparable to the Blues.  In my use, however, the keys just seem too high which makes the use of the keyboard after a long period somewhat uncomfortable for how I hold my hands.  It’s also worth noting that this thing is loud.  In my own office or at home it’s not a problem, but with an office mate or working in an open area – people seem to dislike you.

That experience at least let me get my feet wet and encouraged me to see if the modern keyboards are more desirable.  My best luck for a side-by-side comparison was Fry’s during a trip to Indianapolis where I found Browns, Blues, and Reds.  These three seem to be the most commonly found, but plenty of others also exist.

There is a valid claim for some subsets of nerds to like specific switches:  gamers tend to favor the reds with their low actuation force while typists enjoy blues due to the combination of tactile and audible feedback.  However, there is no hard and fast rule, as this like most things is really a subjective decision, anyone who suggests otherwise is probably just an elitist who’s opinion probably isn’t worth a whole lot.

Anyway, for my experience – I started off with trying out the couple of keyboards at Fry’s that were available (some Cooler Master CM Storms, a Logitech, and a Razer).  Side by side, they seem to be as I had expected after reading a bit about the differences between switches.

I only spent about 30 minutes comparing these, so the quick summaries are fairly base level and not terribly educated.  My focus at this point was also on the feel of the switches – not the design of the keyboard nor the features of it.  I strictly wanted to determine the type of switch I wanted to start with on an introductory board.

Reds (Razer Black Widow):  These were easy to actuate and the force required is minimal.  For me, I thought I would accidentally hit to many other keys.  Supposedly gamers really like this as they actuate and rebound fairly quickly and are light to press.  They also are pretty quiet unless you bottom out the keys a ton (but still quieter than most others).

Browns (Cooler Master CM Storm Rapid Fire Pro):  I was expecting a major tactile bump, which I did not experience.  The keys, however, felt good and the feedback was helpful – I think my expectations were just incorrect.  I was really wanting to try the clears, which are supposed to be a heavy version of the Browns.  So this one most interested me as a precursor to ordering something like The CODE Keyboard.

Blues (Cooler Master CM Storm QuickFire):  Immediately I was sold on this for my first board.  It isn’t perfect nor does it have all the bells and whistles of the next one I want (fortunately, I have enough computers between home and work to necessitate several new keyboards).  But the switches provide a good combination of tactile and audible feedback.  This is only slightly quieter than the Model M, but for my home uses it hits the mark.  The actuation is fairly high so you really do not need to press the key very far to start seeing progress on the screen.  The only downside for anyone wanting to game with Blues is that the reset point is above the actuation point… So spamming a key is slightly more work.

As an intro to the market, the Cooler Master CM Storm* series are both around $75 – 80 from what I have seen.  I happily sacrificed some of the nice features of the $150 boards to simply get an exposure to something for a while before making the full plunge.  So far, the only reason I would get another board (something different to experience another option) is to have one at my office and home.  However, I can’t really speak to the validity of that claim yet as I am only a week into ownership.  Once I have had the board a bit longer, I will be adding a review of it as well.