MacBook, defective by design banner

title:
Put the knife down and take a green herb, dude.


descrip:

One feller's views on the state of everyday computer science & its application (and now, OTHER STUFF) who isn't rich enough to shell out for www.myfreakinfirst-andlast-name.com

Using 89% of the same design the blog had in 2001.

FOR ENTERTAINMENT PURPOSES ONLY!!!
Back-up your data and, when you bike, always wear white.

As an Amazon Associate, I earn from qualifying purchases. Affiliate links in green.

x

MarkUpDown is the best Markdown editor for professionals on Windows 10.

It includes two-pane live preview, in-app uploads to imgur for image hosting, and MultiMarkdown table support.

Features you won't find anywhere else include...

You've wasted more than $15 of your time looking for a great Markdown editor.

Stop looking. MarkUpDown is the app you're looking for.

Learn more or head over to the 'Store now!

Saturday, September 26, 2015

Edit: Turns out something smellier than I expected is going on with the NYT and ebooks. From the Stratechery piece:

To my regret, and in a rich bit of irony, I failed to research disconfirming evidence for the New York Timesโ€™ conclusion that ebook sales were indeed dropping.

Fortunately, the Author Earnings blog took no such shortcuts and came to some different conclusions. I strongly suggest reading the whole thing, but here are some pertinent excerpts...

And now, back to what I originally wrote...


Interesting but overly simple NYT article from @Gruber on "The Plot Twist: E-Book Sales Slip, and Print Is Far From Dead". Read the article (I'm not going to summarize past the title), and let me try to paint a slightly different picture using the same content:

As readers migrated to new digital devices, e-book sales soared, up 1,260 percent between 2008 and 2010, alarming booksellers that watched consumers use their stores to find titles they would later buy online.
...
Then in 2011, the industry's fears were realized when Borders declared bankruptcy.
...
E-book subscription services, modeled on companies like Netflix and Pandora, have struggled to convert book lovers into digital binge readers, and some have shut down. Sales of dedicated e-reading devices have plunged as consumers migrated to tablets and smartphones.

Let's recombine those statements with a few others...

The American Booksellers Association counted 1,712 member stores in 2,227 locations in 2015, up from 1,410 in 1,660 locations five years ago.

Wonder what happened when Borders closed? Hrm... Let's add Ben Thompson's slightly ecologically misapplied Internet jungle metaphor, where you've got the apex predators getting bigger (here, publishing houses), the niche competitors growing in their specialized niches, and nothing in between. That is, guess where underserved book buyers buy books?

Higher e-book prices may also be driving readers back to paper.

As publishers renegotiated new terms with Amazon in the past year and demanded the ability to set their own e-book prices, many have started charging more. With little difference in price between a $13 e-book and a paperback, some consumers may be opting for the print version.

Let's also remember...

  • Tablet sales are taking.
  • Apple's ebook suit was settled, and the only significant downward pressure on price is also gone.
  • The bookshelf building stage of ebook ownership is over, in large part because of raised ebook prices. Your whales have reached critical mass, and are buying only just over the speed at which they're reading.

Here's an alternative take to the latent "print is making a comeback" argument in the article (and @Gruber):

The ebook's initial position as a bargain print substitute pushed large merchants, unable to pivot and compete on convenience and price, off of their perches.

Years later, however, growth has stabilized for both print and pixels because...

  1. Tablet sales have dropped, making tablet ownership flatten
  2. eBook prices have increased as competitive pricing in ebooks has disminished
  3. eBook readers have filled their virtual bookshelves, and are less impulsive about buying
Makes more sense to me.

And a quick thought on @Gruber's hipster comment:

I read both, but for any book I truly care about, I prefer to get it in print.

Combine that with this statement from the NYT article:

And according to some surveys, young readers who are digital natives still prefer reading on paper.

I used to think that too, and want to keep thinking it, but I don't any more.

What our young, hipster readers are saying is that they prefer the experience one gets from reading a book successfully offline. Think of all the things that have to happen for you to read a printed book...

  1. You have to have it with you.
  2. You need good lighting.
  3. You have to have time to read it.
  4. It has to be good enough for you to finish.

Below, I'm going to argue that we no longer read paperbacks in the grocery line, or while waiting for a friend, or over lunch, like we used to. If we stipulate that, one thing becomes clear:

Reading a paper book is now about having time to dedicate to reading. Space, light, comfort. So of course we'd rather have a book in print, because we recall a more pleasurable experience. It's not the book that's great so much as what reading a printed book "requires".

I used to carry around a book everywhere in the 80s and 90s. It was, looking back, my smartphone, so to speak. It was the small, portable device that best allowed you to use up dead time by sneaking in a few moments of escapist pleasure. I used to read a book in the Dune series every day or two until I caught up with Frank, just before he died. Nothing wrong with that, within reason.

But now the alternative is too handy. I have my phone with my all the time. I no longer carry a paperback. It's too easy to have something to read on the phone.

My suspicion is that most read (if they are reading, and not Clash of Clanning, which is also fine, within reason!) more web stories, Instapapered or otherwise, RSS, and email on their phone to help fill up that "catch as catch can" time. Personally, I tend to be reading at least one paper book and one ebook all the time in large part to be ready for down time. I love to have the space to read a printed book. I love to mark portions that are interesting to pull back out later. But when I'm waiting on friends or find myself stuck in a line, it's hard to grab a book beside my chair at home. It's really easy to yank out an iPod or smartphone.

Most importantly, I have both bookshelves full with books so I don't run out of things to read if I have time to relax or have unexpected time to kill. And that's largely why my ebook purchasing is flat. I have my reservoir. I'm less likely to bite on today's deal.

I might prefer have time to sit in a chair on the porch with a drink when there's great light and weather to read, but just like my camera, the best book to read is always the book I have with me.

Labels: , , , ,


posted by ruffin at 9/26/2015 10:30:00 AM
Tuesday, September 22, 2015

Woohoo, my first StackOverflow tag badge, just short of four years in (pretty sad, actually)! I mostly just sit on JSLint, so I doubt I'll get many others, with one hopefully notable exception. ;^)

Luckily JSLint and Javascript (obviously) overlap quite a bit, and I've answered just enough plain jane javascript questions (seems there's a surprisingly "popular" Knockout one) to get to 100 in JS a little faster than JSLint (I'm at 89 right now), which is neat. I'm hoping to be the second to get a JSLint tag badge. [James Allardice](https://stackoverflow.com/users/790695/james-allardice) is the only guy who has a JSLint badge at the moment, and though I kind of feel I'm often plowing over ground he already farmed to nothing years ago, it looks like I've got a chance to become the second, perhaps through inertia (a few of my JSLint questions keep getting votes, so even if I'm not first to answer the few new questions, I keep progressing. It's like a SO investment).

Luckily you have to answer more than 20 questions in a tag to get the badge, or lots of people would've beaten the heck out of me. So it's neat to be getting close.

I can't imagine spending so much time on the site that you get gold tag badges... I guess there are many, many tags more popular than JSLint that have tons more questions, and perhaps tons more low-hanging fruit, but you still have to do the work, you know? I'm glad folks do, but wow... that's a lot of work.

I hope more and more employers are catching on to how important and insightful a great SO user (so those much better than me!) can be. Not only are great SO users knowledgeable, they are wired to share that knowledge, and share it in a way that others appreciate and can understand. That's who you want to hire.

Labels:


posted by ruffin at 9/22/2015 09:58:00 AM
Friday, September 18, 2015

The good:
  • I love the San Francisco font. Much easier to read than before on the tiny devices.
  • News isn't all bad.

The bad:
  • iOS decided to sign my alt-Apple ID out of Game Center and sign me in with the ID I use on the rest of my phone. That's not exactly cool.
  • My iPod touch 5th gen is showing its age. 
    • A fair number of crashes.
    • A little more "chrome slow-down" now that I'm on iOS 9, I think.
  • Safari content blockers apparently require 64-bit procs.
    • I know; that really belongs in the previous set of "my touch is old".
    • Yes, I know there are lots of jokes that come with that phrase.
  • This:


A few weeks after I got my Lumia 640, which is a super phone, other than the lack of apps, I gave up my iPhone 5S to "cash in" so that I could grab an iPhone 7 in a year. I'm resisting getting a 6S, but this poor touch isn't quite up to the job.

Labels: , , ,


posted by ruffin at 9/18/2015 01:44:00 PM
Monday, September 14, 2015

Yeah, so um the Password textbox in my Internet Accounts system prefs ain't there.

Note picture of the "Matt Klein" account where the Password textbox does exist...


and mine where it don't [sic]. Thanks, Apple.
WTH?

Is this because it's using OAuth now and nobody thought to check if you could update the password? Who's writing the use cases at Apple?


Man, I hate OS X at times like this. QA is really starting to show insanely rough edges at Apple. Or I'm becoming an absolute idiot in my old age, because I can't see anything I'm doing wrong.

Labels: , ,


posted by ruffin at 9/14/2015 09:32:00 AM
Friday, September 04, 2015

Even the so called "good" software patents have a lot of the same elements as th... | Hacker News:

I have been involved with several patent suits (on both litigant side and defendant side) and as an engineer, I have to admit that there has never been a time when I haven't read the statement of the problem the patent says its going to solve, and not thought of the solution myself, way before the patent presents the same solution. In other words, every single litigated software patent I've been asked to review has been BLATANTLY obvious. And I'm no genius. I've talked to other engineers and they've all said the same thing. I just explain a problem domain, and they usually give a solution that comes under the claims of the litigated patent.

I wish this was the bar for a patent -- If it's not intuitively obviously ("BLATANTLY") new and patentable, it's not patentable at all.

Labels: , ,


posted by ruffin at 9/04/2015 11:19:00 AM
Thursday, September 03, 2015

Was considering starting a podcast, because all the kids are doing it these days. Picking an intro piece is probably the second toughest chore, right after picking a podcast hosting service. Which is just north of finding good podcast service reviews. You know, unlike this one:

"So, what would the perfect podcasting media host be? It would be free, with a business model that would ensure it wouldn't close down."

Ouch. Much reasonable. Very doable. (Quelle irony.)

So after too many hours researching, it looks like you either throw $5 a month at libsyn or blubrry, use & pay Amazon S3 while you're small (but pay through the nose if you accidentally get popular, or someone grabs your backcatalog), try to work around some somewhat sleezy actions by podbean (so mainly figuring out how not to let them post your RSS feed to iTunes), or deal with 90 days and gone at buzzsprout -- though I think it's only free for 90 days, not free hosting for 90 days and then the file is gone. So that's probably out too.

Btw, $50 is too much for an RSS editor.

Edit: I think the best postcast host recommendation I've seen is from David Smith, who says to shell out for a $10/month Linode account. Get a host to do whatever you want, backed by SSDs and 24 gigs of space to do, well, anything. I think that's the route I'm taking, as it'll stop me from using the deadbeat host I'm using now, and from wishing I had something up at MacMiniColo. $10 a month is a pretty good deal for your "own" server.

Labels: , ,


posted by ruffin at 9/03/2015 11:37:00 AM

Okay, I think this is good advice. I'm going to try and follow it myself, at the very least.

As an indie app developer, you have an itch. Well, you have many itches, but this morning, you notice another. For me, it's desktop blogging. I want to make a PC app that posts to blogger, which is what I'm using right now. So I start rabbit-holing the Blogger API, again.

A little while in, I start having an internal dialog...

Me1: "You know, I wanted to move my blog to something custom built on Node anyhow. Wouldn't that be a better use of my time?"

Me2 googles blogging engines. There are plenty.
Me2: "But you can't sell that nearly as easily as you can sell a fully featured desktop app."

Me1: "Okay, fine."

A few minutes of studying the Google Core API nuget package (doesn't install on Xamarin, as it requires Powershell in the build script, among other issues), and I'm back.
  • Me1: "This is a cluster^H^H^H^H^H non-trivial."
  • Me3: "Okay, right. So you have about, what, eighteen other projects going now?"
    Me1: "Yes."
  • 3: "Do any of those stand to produce more cash than this one?"
  • 1: "Yes."
  • "Aren't there other apps that do what you want to make?"
  • "Well, not really, not exactly the way..."
  • "Shaddup! [slap] Don't be an idiot. You know that I mean if there competent desktop editors that would allow you to do what you want to do, give or take. Are there?"
  • I guess so. Mars Edit and Desk, right? And Desk is eating up all the air in the room anyhow.
  • Then use that, and put $50 towards buying back your idiotic time wasted on Blogger APIs. If you come back to this itch after you've finished EVERYTHING with more upside, fine.
  • You're probably right.
  • Given enough time and common sense, you usually are.
 So that was fun. Who doesn't love internal dialog?

But the bottom line seems to be that if you try to scratch every itch by yourself, you won't scratch many well, or won't scratch many quickly, or will continue itching a lot. Let that be a lesson to you all.

Labels: ,


posted by ruffin at 9/03/2015 10:25:00 AM

Quick video tutorial (not mine) for using the GTK# GUI RAD:


I started messing with GTK# because I wanted to make a utility for the Mac, and didn't want to have resort to the mess that xibless hacking is for me right now
(http://catchingmono.blogspot.com/search/label/xibless), so I figured I'd look at the GUI RAD for GTK# that comes with Xamarin Studio. I flailed away for a little while, and was able to make most everything I wanted. Then I found the video, above, from 2012, which seems to hold up well. It's really that easy.

With the caveat that I haven't tried to package for anonymous end users, the GTK# GUI RAD is very good. It's occasionally quirky, and has its foibles (wait, if I fill up my layout table with rows, my vbox will pull the statusbar off of the bottom of the window?), but it's very VB6-IDE-esque, which is high praise. Actually, because of the layout managers, it's much better than the pixel-perfect (aka, "Not resizable") UIs VB6 made so easily.

And as an added bonus, if you use the download on this page: http://www.mono-project.com/download/#download-win ... you can run this just as well on Windows as on OS X. And if you grab Xamarin Studio from there, it doesn't look like it downloads all the Android cruft with it like it would from the official Xamarin download page. Here, I *think* you just get the "free" project types. Nice.

I'll attach a simplistic shot, just for fun. Very fast, and I think the worst case is that you tell your would-be utility users that they have to install Mono (or, on Windows, .NET 4.5) and GTK#. I don't think I'd purposefully target Windows-first with this (Visual Studio's GUI RAD is just as good, and is, ultimately, more robust), but I could see making a Mac app in GTK# and releasing Windows and Linux bins just for fun, since they're sitting there.

Labels: ,


posted by ruffin at 9/03/2015 09:37:00 AM
Tuesday, September 01, 2015

I recently bumped into @slicknet, a developer for Box who maintains the ESLint project. Here's a quote from ESLint's About page:

The primary reason ESLint was created was to allow developers to create their own linting rules. ESLint is designed to have all rules completely pluggable. The default rules are written just like any plugin rules would be. They can all follow the same pattern, both for the rules themselves as well as tests. While ESLint will ship with some built-in rules to make it useful from the start, you'll be able to dynamically load rules at any point in time.

Here's a good example of when open, pluggable architectures are bad news, and why benevolent dictatorships might still be the best mode of governance.

Questions to ask before deciding on your own linting rules:

  1. How many people do you know really know their JavaScript?
  2. What percentage of devs at a non-Node shop might those folks represent?
  3. How diluted will their voices become when your company decides JS best practices in a committee?
  4. Will those rules that your company comes up with really be better than rules from Douglas Crockford?
  5. How long did it take for you to come up with those inferior rules?
  6. How much time will it take to discuss making changes to those rules in the future?

Answers:

  1. Three. Maybe three and a half.
  2. Ten percent. If you're lucky.
  3. Significantly.
  4. No.
  5. Hours on hours X number of developers in the meetings.
  6. Please, stop it already. You're killing me.

Technically speaking, of course open, pluggable architectures are superior. But in this case, culturally, it's a huge mistake.

Maybe Box's tech stack includes Node, where it's much harder to hide only so-so JavaScript skills, and maybe, in that environment, the openness of ESLint allows them to create something that's no worse than JSLint. But show me one place where JSLint's rules are demonstrably worse than your own (where they can't be turned off with directives) before you argue for ESLint or JSHint.

(That's not to say I don't think ESLint is cool, or that a pluggable interface isn't technically superior to what JSLint offers. But now take your time from questions 5. and 6., and add an obviously smart dude's time maintaining this project. If he's doing it on his own clock, well, more power to you. It's fun to [re]create these sorts of projects, and there's no way to understand a problem better than to live in a "meta-project" like this. My guess is that Mr. Zakas knows his stuff (if I really knew him, I'd have to change #2 to "4-4.5" Or I'd keep it the same, and take myself out). If he's doing it "at work", however, we might have a priorities problem.)

Labels: , ,


posted by ruffin at 9/01/2015 12:34:00 PM

<< Older | Newer >>


Support freedom
All posts can be accessed here:


Just the last year o' posts:

URLs I want to remember:
* Atari 2600 programming on your Mac
* joel on software (tip pt)
* Professional links: resume, github, paltry StackOverflow * Regular Expression Introduction (copy)
* The hex editor whose name I forget
* JSONLint to pretty-ify JSON
* Using CommonDialog in VB 6 * Free zip utils
* git repo mapped drive setup * Regex Tester
* Read the bits about the zone * Find column in sql server db by name
* Giant ASCII Textifier in Stick Figures (in Ivrit) * Quick intro to Javascript
* Don't [over-]sweat "micro-optimization" * Parsing str's in VB6
* .ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture); (src) * Break on a Lenovo T430: Fn+Alt+B
email if ya gotta, RSS if ya wanna RSS, (?_?), ยข, & ? if you're keypadless


Powered by Blogger etree.org Curmudgeon Gamer badge
The postings on this site are [usually] my own and do not necessarily reflect the views of any employer, past or present, or other entity.