Atom.io

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\\', ''):

To:

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 (0×0)
LibVLC version: 2.1.3 Rincewind (0×2010300)
LibVLC compiler: gcc version 4.8.2 (GCC)
Plugin path: C:\Program Files (x86)\VideoLan\VLC

Happy Multimedia Streaming from the Python bindings!

Hiatus

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.