Thursday, October 25, 2012

Roadshow Experience

As I write this, I am sitting in Nashville listening to a group of developers jam on guitars / Bass.  It is a good night.

The event is the Nashville .NET Rocks Roadshow.  The speaker was Kate Gregory.  As expected, she gave a good presentation on C++ 11 and C++ Amp.  I have a strong C++ background and know these subjects well, so there were no big surprises, but it was still a good talk.  It is nice to hear a competent defense of C++ in the wake of the developer productivity that is .NET.  I do wish that she had addressed what I think is a problem - catching up to productivity enhancements every 10 years is nice, but C++ really could use a quicker cadence for specification modification.  I imagine that in 10 years we will be back on the defensive talking about missing features.

Carl and Richard both gave good talks that both hold possibilities professionally.

But by far the most interesting part of the evening was the live recording of a .NET rocks episode.  It is interesting to, in a small, personal way, be a part of something public that has had a big impact on my life.  It is odd to see some of what goes on behind the curtain, but it was a very good experience that more than met expectation.

Now the after party is going.  I had a chance to catch up with some friends I made at Codestock, but now most have left.  Carl is participating in a jam session.  Richard is running a scotch session.  I sit alone in the corner blogging.  I am losing the battle against a plague my children morphed into something entirely unnatural, and definitely do not want to infect a travelling show.   

Jimi Hendrix.  I wondered how long that would take.  Apparently 4 songs, or 1 hand-written blog post.

If you get a chance to attend one of these events, I highly recommend it.  If you do, stick around after.  There is more to life than work. 

Tuesday, September 18, 2012

Ergodex DX1 Windows 8 Driver

I have updated the Ergodex DX1 driver that I support to include Windows 8 support (tested on x64, untested on x32).  In order to do this, I had to purchase a VeriSign Authenticode account and sign the driver.  The setup experience should be a little smoother across the board now that the driver is signed.  This did require a capital investment of $100, and that will be a yearly fee, so if you get use out of this product I would appreciate a contribution (Available at our website at http://www.in-character.com and linked from in the tool using the "$" link on the main screen).

The driver, version 3.1, is available on our product page at http://www.in-character.com/Pages/ErgodexDX1Suite.aspx.

Here is a direct link for download:  http://patrickvhines.com/Releases/DX1_Driver_3.01.zip

Saturday, July 28, 2012

Ergodex DX1 Suite 2.04.0128 Released

I have released version 2.04.0128 of the Ergodex DX1 control software.  It is available on the product page at:


This adds a new big feature (macro support) and has been lightly tested.  I also reworked the UI for simplicity.  The next release is planned to be 3.0 with a full round of testing.  Please do not hesitate to send me bug reports.

Thursday, July 5, 2012

Ergodex DX-1 Driver 2.03.0101 Released

I have updated the Ergodex DX-1 driver project and released it.  It is available on the product page located at http://www.in-character.com/Pages/ErgodexDX1Suite.aspx.  I did not have time to do what I would consider adequate testing on this.  I know of a few bugs in the tool.  This is mostly a baby-step release on the way toward full macro support, which is why I am proceeding with a release in the current state.  I did add the ability to bind to modified key sequences (so you can now bind a DX-1 key to shift-A, for example).  Hopefully my other projects will allow a relatively quick release supporting macros, but given the number of side projects going at the moment, I can make no promises.

Tuesday, June 26, 2012

Codestock Keynote - Nick Bradbury

A Message For Me

I recently attended the Codestock conference, a conference for software developers.  At the end of the first day of the conference, there was a keynote address by Nick Bradbury.  This keynote seemed to have been written special for me, and I thank Nick for delivering it.  I do a lot of software development outside of my employment.  While this is not for financial gain, it is still real software development, with real customers.  

Make something you need

Nick's message was about the life of the independent developer.  While I do have a more standard employment relationship, in some limited aspect I am an independent developer.  I struggle at times to stay focused, to know which project to work, which project to prioritize.  Nick's first point that really struck home with me was to make something you need.  Several of my projects are things that I think will benefit others, but are not things that I need.  I can see in his points things that I struggle with on these projects.  Lack of motivation.  Lack of insight.  And ultimately lack of releases.  There is one project that stands out as something I need, something I want.  This project needs the lion's share of my time, which Nick has helped me see.


No one reads help

I have pushed this repeatedly in my workplace, oft to no avail.  But it was elegantly stated during this keynote.  My recollection, probably less elegant, is that if a feature needs a help file, the feature needs to be redesigned.  Intuitive experience is one of the most important aspects of your software.  I believe that customers will not open your help, but will instead just go to your competitor.  And you always have a competitor.


Staying Relevant

A large part of my life is spent staying relevant.  I do not want to spend the sunset of my working career maintaining legacy software.  I want to be a driver of technology.  To that end, I give up a lot.  Probably too much, but only that which I see as needed.  It is a hard rope to walk, managing family and work life.  I fail daily, but my family is provided for, I remain relevant.  But in the quest for relevance and skill maintenance, I tend to get distracted by making, and often drop the learning ball.  If this time is so important, it needs to be primarily time that makes me more relevant, more marketable, even at the cost of lack of software deliveries.


Make a difference

This was really something that hit home with me, and what really made me want to write this blog post regarding this keynote.  Nick's parting words were great ones in my mind.  
If you feel like you're wasting your time creating software you don't believe in, find a way to stop doing that.  Find a way to create software that makes a difference. - Nick Bradbury
For me right now that way is to focus on a single project that I care about, that I need. Thank you Nick for delivering this keynote.

Saturday, June 16, 2012

Codestock 2012 - Day 1

Yesterday was day 1 of Codestock, a software development conference held annually in Knoxville, TN.  This is the first conference I have attended, and it proved to be a very valuable experience.  I am looking forward to tomorrow even more.

Registration

As the morning began, I met with my expectation.  Get up early, go register, get some breakfast, find the first session.  I don't mind the get up early part, but seem to be in the minority.  Registration starts at 7 AM and I show up at 6:50.  Based on some comments on the lines during the Keynote, this seems to have been a wise decision, because there was no line to speak of.  

Attendees

The attendees that I met throughout the day were a welcome part of this experience.  There seems to be a thriving community here of developers.  Unfortunately for me, I am on the outside of that community, and can tell that being on the inside would greatly enhance this experience.  There are many familiar names, but none know me.  I did get pulled into several great conversations surrounding my Samsung Slate 7 Windows 8 box, so I'm glad I brought that.  After the days festivities there was a social event at one of the local restaurant-bars, where I really sealed the deal on my social awkwardness.  I did get to converse with several fellow Huntsville natives that I have met through our local user's group (HUNTUG).  

Sessions

I tried to fill every moment I could with session attendance.  They pretty much went as I expected.  Two were great, one mediocre, two were bad.  For the bad sessions, I really got a sense that the presenters knew they were bad and would use the experience to make future presentations better.  But I have to say that even from the "bad" sessions, I still walked out knowing more than I walked in knowing, which is of great value so I thank all presenters. 

The session that gave me the most was, not surprisingly, the Windows 8 deep dive, given by Jennifer Marsman.  This was a good refresher on the recent Windows 8 Code Camp that I attended with a little more real-world coding stuck in.  Jennifer is a great communicator, stays on topic, keeps the audience engaged, and packs her sessions with content.

Keynote

They keynote address was given by Nick Bradbury and it was by far the highlight of the day.  The talk was on the life of the independent developer.  He went through his career path and showed us his path from birth to success, what he has loved, what he has less-loved.  Almost everything Nick had to say seemed to be a message designed for me.  That we are at a pivotal time in human history.  That I am a big part of that.  That I want, and should want, to be a bigger part of that.  That I can affect real changes in this space.  That code craftsmanship matters.  That money only matters in that I have to provide for my family, but it should not be an end goal.  That user experience is not a buzzword, but rather a light that shines on the darkest corner of software development containing our greatest failures as an industry.  I thank you Nick for this presentation.

Sunday, May 27, 2012

DirecTV Believed Unethical Billing

I fully understand that it is a business' goal to make money.  Some businesses do that by charging customers.  This is a perfectly valid and moral relationship.  The morality of this breaks down, however, when a business intentionally charges customers for a service they did not provide.  It is my opinion that consumers should refuse to do business with companies that have that business model.

I have recently discovered first hand that DirecTV has a business practice that I believe to be immoral.  If you be a moral person who is also a customer of DirecTV, I advise you to read on and decide for yourself if you can remain a customer of theirs.

Six months ago I suspended my DirecTV.  The way this works is that they stop putting charges on your bill, and they stop providing service, and at some date in the future, that service is reinstated automatically if the consumer does not take action.  I believed this practice to be designed to lure customers back in by automatically reactivating and maybe getting a little billing out of customers.  But I entered into this aware, knowing I would probably forget, get reactivated, charged for a few days, and then cancel.  We do not have room in our budget for DirecTV.  But I was hoping that would change over the six months.  At some point, that will change, and I will consume media again.  I can say that unless DirecTV takes action and based on my personal experience over the last 2 hours, I will not be a customer of theirs again.  Ever.

I get bills from DirecTV every month.  Since we suspended service, and since DirecTV advance bills for service, there was an 80 dollar credit on my account.  For the last 6 months or so, I have gotten a bill every month showing this credit.  DirecTV refused to refund me this money unless I cancelled the account outright, which should have been an indication to me that they were eventually going to unethically keep this money.  So here is how my bills looked:

From my gmail history, and echoed at DirecTV:



So you can see that I get a bill every month like clockwork.  This all makes sense at this point.  And I knew that at some point, they'd start charging me again.  I have now learned that service was reactivated on 4/26/2012.  Let me refresh one thing in your mind though:  DirecTV advance bills.  My 4/26 bill showed an $-80.08 credit.  My service reactivated on 4/26, so why did the 4/26 bill not show that?  Why was there not a charge?  Here is the 4/26 bill:

Note that there is no indication of services on the above bill.  It is April 26, and my service was reactivated on April 26.  This bill clearly states there are no charges (and you can see in the bill below that they do advance bill for service).  I believe this is consistent with a business practice designed to unethically take my money.

Compare that with my May 26 bill:


Now this was very interesting to me.  When I read this, what I believe to be going on is an attempt to empty out my credit without giving me a chance to respond.  If they advance bill, which they have always done up to this point in my experience, and are continuing to do from this point on, why were my April 26 - May 26 charges not on my April 26 bill?  They state it is because the service was suspended at that time.  I believe DirecTV is more competent than that.  I believe that billing was done in this way for the sole purpose of getting my $80 credit, and then some, without giving me a chance to respond.  I believe this is consistent with a business practice designed to unethically take my money.

DirecTV has been contacted, and refuse to refund the money.  I am was a potential future customer, and they refuse to refund a bill for a service I did not consume.  They claim that they notified me that the account was to be reactivated, and that they notified me of this on April 4th.  I use gmail for my e-mail, and gmail stores all emails unless you delete it.  I delete only spam.  The first picture that I posted in this article was a listing of all of my e-mail from DirecTV.  Note that no e-mail was listed from April 4.  I searched my e-mails from April 4 and received only 3, none of them were from DirecTV.  There is a chance that a spam filter caught it, but I find that unlikely if they follow consistent business practices.  I get e-mails from them every month that make it through the spam filter just fine.  From what I can tell, DirecTV did not send me this e-mail, which I believe is consistent with a business practice designed to unethically take my money.

This business practice only affects those who have suspended their service.  I think it is reasonable to say this group of people is primarily those without financial means to pay their bill.

I believe that All lines of evidence I can gather support the hypothesis that DirecTV has instituted billing practices designed to legally but unethically take money from the financially impaired.

If you are reading this and find it logically sound, please consider cancelling your DirecTV service if you have it, and consider publicizing this message through social media.

Sunday, February 26, 2012

Ergodex DX1 Suite 2.01.0055 Release

I have just published a new version of the Ergodex DX1 software.  This version mostly just adds one feature - persistence of configuration data between runs.  In my opinion this turns this software from near useless to a viable solution, depending on your reliance on macros.  Macros are still not supported, but they are the next big feature to implement.

The application can be downloaded from the product page at: http://www.in-character.com/Pages/ErgodexDX1Suite.aspx

Wednesday, February 1, 2012

Ergodex DX1 Suite 2.00.00 Release

DX1 Software Release
This post serves as the release of version 2.00.00 of In-Character's Ergodex DX1 control and configuration software.  This is support software for a piece of hardware.  If you do not have one, it's most likely a complete waste of your time to get this.  However, if you just want to see what I am up to, there is a DX1 simulator that will start automatically if you do not have a DX1 device attached.

For details on this product, please see:

 http://www.in-character.com/Pages/ErgodexDX1Suite.aspx

The release is here:

http://www.patrickvhines.com/Releases/Ergodex_DX1_Suite_2-00-00.zip

Friday, January 13, 2012

label:unread

Unread Mail in GMail
I exclusively use GMail as my e-mail client for all my mail.  For the most part, I keep things read, responded to, up-to-date.  But occasionally, one slips through the cracks.  When this happens and I notice, it's not a big deal.  But occasionally, one gets by and it is months before I notice.  If it is recent, I can use the "All Mail" link to find it and make sure it is not important.  But there have been a few over the years that really slipped through the cracks.  

In addition, I don't delete e-mail.  Google stores it all for me.  The result here is that somewhere in my mailbox with Google there were about 130 unread mails.  As of this writing, I have 22,445 e-mails stored in my mailbox.  Going through this to find the unread mail is not feasible.  One would expect an easy way using the Google Mail interface to see this mail.  But if it exists, it is certainly not intuitive (or I am just blind to it).  

Labels
The solution to this is the Google Mail label feature.  You can assign labels to e-mails based on rules.  For example, if you e-mail me at my work e-mail it is automatically labelled as "phines@quadrus".  An easy interface is provided on the left where you can click a label and see only items that are tagged with that label.  In addition to these custom labels, there are some labels that Google manages and automatically apply to e-mails.  For example, when you click on the Inbox, you are actually just viewing e-mails tagged with the Inbox label.  The Inbox link is just a convenience, but you can also search for labels.  If you go to the search field at the top and type in "label:inbox" you get the same list of e-mails displayed as if you clicked the Inbox label on the left.

The Unread Label
There does appear to be a label called "unread" that is applied to unread e-mail.  If you go to the settings where you can manage your labels, there is a section for system labels.  However, this label is not listed.  I have no idea why.  I would expect this to be listed as an option, and default to being on.  There should, in my opinion, be a link on the left called "unread" that makes this easy.  But whatever the reason, this has not been done.

The Solution
While not exactly "user-friendly", the unread mail can be displayed.  If you go to the search field at the top and enter "label:unread" as your search term, you will see only your unread e-mail.  Hopefully Google will make this more user friendly.