Microblog entry through a Twitter Quick Post (#qp)

Writing the perfect #todolist (31:56):
@Freakonomics: How to Be More Productive https://t.co/joIzg1YQLM


Finding the 4Runner Framework

I’ve been thinking about web application frameworks. These days we are both blessed (and perhaps cursed at times) with a richness of choice. This abundance reminds me of a scene from Moscow on the Hudson where the main character (Vladimir Ivanoff played by the amazing Robin Williams) goes to a regular American supermarket isle for coffee and has a mental breakdown due to the vast choices on the shelves. He’s a Russian defector that had only one coffee choice in Communist Russia, and now there’s just too many options.

So how does one avoid the analysis-by-paralysis break down that vast choice of frameworks present? One approach is to use a logical approach choosing something that is “boring, old, and popular”. This approach is perfectly reasonable for a work related project. But what about a personal project or experiment – how do you choose a framework to learn for that? It has to be something that gives you some spark of excitement – doesn’t it?

The main Ruby on Rails page speaks of “optimizing for programmer happiness.” I love the “optimizing” part since it makes sure to remind you that you’re speaking to a rationally focused audience. But what is “programmer happiness” and how can a framework provide this? Or better said, how can I recognize that a framework has this very personal component for me – this elusive feeling thing called ‘happiness’?

For me as an engineer, the term “happiness” is a bit too fuzzy and perhaps that is the case because I’m in “feeling” territory rather than “thinking.” How do I identify this feeling, this joy component that the RoR page speaks of?

There was a moment a few days ago where my car, my 4Runner, provided the answer (yes – I know – I suppose that it is a guy thing to find an answer in a car).

So it all starts with my history of cars. My first car was a Chevy Chevette that I bought using some very hard earned paperboy money. The Chevette was a somewhat terrible piece of crap that leaked rainwater into the driver side compartment. The final act of Chevette crappiness came in the form of the engine seizing at highway speeds. So if there were a “car owner happiness” scale – it would have been a -5 (on a scale from 0 to 5).

After the Chevette, there was a cavalcade of cars including a Chevy Malibu (my last American car) that bled to death when its transmission case cracked during a nasty East Coast winter storm. Then there was the Honda Civic (super-reliable but blah), the Acura Integra (super-reliable and slightly less blah on the joy/happiness scale), a used Isuzu Trooper (the SUV equivalent of the Chevette in terms of reliability and crappiness…I had weekly visits to the mechanic with this 4WD disaster), a very used Lexus ES 300 (engine blew up a year after purchase; it had an amazingly smooth ride but everything on that car cost 4 times as much as a regular Toyota) and finally the 4Runner.

I bought the 4Runner with one hundred and thirty thousand miles, and it has served me well for almost a decade. The one mistake that I made was not getting four-wheel-drive, but that’s on me, not the car.

For the past few days, I’ve had to switch cars with my wife due to a home renovation project. She has a zippy Prius that can run circles around the 4Runner in terms of maneuverability and fuel economy.

So there’s this one day when I come home and see the 4Runner on the driveway. There’s this momentary internal (nice) sigh with this “I really like this car” feeling. I look at it, and I see this “real life” version of a toy car that I used to play with as a child. And at this joyous point, I remind myself that this car is mine. It’s this odd momentary joy that is hard to put into words.

I think that when I look for a web framework for personal projects, I need to find the sigh…I really like this framework feeling. This is programmer happiness and joy – isn’t it? Now this is not to say that my 4Runner doesn’t have issues (like the lack of the 4-wheel-drive and all the bumps and scratches of a used car) but that joy…that joy is still there when I step back and take a look at this vehicle. I need to find a similar vehicle for code – a vehicle that gives me the same feeling as the 4Runner.

I need to find my 4Runner of frameworks.

The eli4d Gazette – Issue 003

Hello Friend,

Welcome to Issue 003 of the eli4d Gazette. You can find the newsletter archive at http://tinyletter.com/eli4d/archive and the blog at eli4d.com.

Have a great day!

Eli (@eli4d)

The eli4d Gazette

Issue 003: 2016-04-13

Tech Pick

JavaScript! Do you love it? Do you hate it? Sometimes JavaScript and especially the latest JavaScript frameworks remind me of our current presidential race. Pushing this analogy to its limit – in the JavaScript framework world – which framework would be the equivalent of Trump? What about the Hillary one? Or the Bernie one?

Of course, I’m kidding because it’s all fun/sad melodrama. What’s not melodramatic is the fact the ECMAScript 6 aka ES6 is here. It’s not fully adopted by by everyone, but we’re getting there. Some neat articles about ES6:

Media Pick

Season 1 of the disturbingly dark and technically accurate Mr. Robot series. It’s like a cyber-space/security version of Dexter.

TextExpander Expands into Subscription Pricing while Consumers Shrink with Sadness


Ok – I couldn’t help write a title that plays off TextExpander’s name and functionality.

So what is TextExpander? TextExpander is a program that is the equivalent of keyboard shortcuts but for words/phrases/paragraphs. For example, I have a snippet (i.e. whatever you want to expand to) that expands ;thx to Thanks for your help!. So thx is the trigger that expands into the snippet of Thanks for your help!

The brilliance of TextExpander is in its integration with iOS. The TextExpander that runs on my Mac can save my snippets to a folder on Dropbox, which TextExpander Touch (iOS) version can use. Then I can use this text expansion on my phone in 2 ways:

  • The first use is through iOS apps that support TextExpander expansion (like Day One and ByWord).
  • The second is through the TextExpander keyboard for iOS apps that don’t support TextExpander (i.e. most apps)

It is my eventual loss of this integration that makes me sad about Smile Software‘s (the maker of TextExpander) to change their pricing model to a somewhat steep subscription model ($45/year).


Pricing up to now

Up to now Smile Software charged for upgrades. Typically the price was around $20 for such upgrades. For instance, the (Mac) TextExpander version that I have is version 4.3.7. When Smile went to version 5, I didn’t upgrade. Why? Well – 4.3.7 had all the functionality that I needed so I didn’t see the point.

In fact, I think this is the core issue with the change to subscription pricing for TextExpander. As a consumer, I only need updates to the application when Apple makes operating system changes that break the old version of the app. TextExpander for me is in the same class as text editors (like the previously mentioned ByWord). For example, I don’t need ByWord, but it’s nice, and it makes me more productive with its built-in features.

Subscription what?

Smile Software Announcement – 1

On 4/5/16 Smile Software announced subscription pricing.

As a consumer, I don’t share my snippets. They’re my own quirky snippets – why would I need to share them?

Smile Software Announcement - 1

Smile Software Announcement – 2

Continuing with information from the announcement:

Why do I need a web application? Up to now Dropbox acted as the synchronization tool since I just need the Mac application to sync up with TextExpander on my iPhone/iPad.

Also, why mention the technology stack? This is a product announcement – so why mention Meteor and Galaxy (and why have links to them)? Maybe I’m reading too much into this but seeing the pricing for Galaxy (which is a service that provides hosting for Meteor) does not persuade me to TextExpander’s subscription model. After all – if I don’t need the web application, then I don’t need Meteor nor Galaxy. Dropbox synchronization has been more than sufficient.

Smile Software Announcement - 2

Smile Software Announcement – 3

The subscription pricing explanation talks about “regular costs to provide an online service”. But if Smile used Dropbox (like it has up to now), then there are is no “online service” and “regular costs”? Exciting times indeed.

Smile Software Announcement - 3

Is this subscription pricing worth for me?

I’m a consumer of TextExpander, not a “life hacker”. I’m not a business, and I’m certainly not an “enterprise user”. So I speak from this perspective.

I can’t justify TextExpander’s subscription pricing. As mentioned before, I can justify needed upgrades due to application breakage from operating system upgrades. Maybe I’m frugal (I’m still sporting an iPhone 5S and am patiently waiting for the iPhone 7S plus), but $50 per year for a text editing class application is very hard for me to justify.

I’ve let Smile Software know this through the contact link mentioned in their announcement. If you feel the same – you should let them know too or through Twitter (@smilesoftware and @textexpander).

Is this subscription pricing worth for me?

TJ Luoma explains this pricing issue very well

TJ Luoma explains this pricing issue well in his http://rhymeswithdiploma.com/post/142315992434/textexpander-6-or-how-not-to-launch-your-saas post (found through John Gruber’s excellent Daring Fireball site). It’s a post well worth reading. He talks about SaaS and contrasts TextExpander’s subscription model with 1Password for Families (another subscription product).

Where to go from here?

Smile Software published a follow up to their pricing change blog post. The folks at Smile Software are friendly and intelligent people. The concluding part of their follow-up post clarifies that TextExpander was a product that was either declining or staying flat sales-wise. Their choice to go to subscription pricing is a choice to pursue a different set of customers (i.e. business/enterprise/”life hackers”). I bear no grudge towards Smile Software and I wish them well with this approach.

Personally, I’m going to stick to 4.3.7 and potentially upgrade to 5.0 as the “final” TextExpander upgrade. My hope is the iOS integration will work for a while though iOS 10 is coming up fairly quickly. After TextExpander’s Mac/iOS integrations stops working I’ll pursue another solution like TypeIt4Me.

Where to go from here?