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.
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!

Wednesday, October 28, 2015

From Buzzfeed via Gruber:

Cars are giant, inefficient, planet-and-people-killing death machines. Self-driving cars — especially if they are operated as fleets and you only use one when you need it, summoning it Uber-style — would mean we could have fewer vehicles per person, less traffic congestion, less pollution, far fewer vehicles produced per year (thus lowering the environmental impact of production), and, best of all, safer streets. The blind, people with epilepsy, quadriplegics, and all manner of others who today have difficulty ferrying themselves around as they go through the mundanities of an average day will be liberated. Eliminating the automobile’s need for a human pilot will be a positive thing for society.

I can't quite figure out why the tech media thinks self-driving cars are quite as inevitable as they make out. Even if I pretend that the engineering hurdles for self-driving cars are all solved, I can still think of a fair number of reasons they wouldn't catch on.

  • You're going to have a hard time "convincing" each state legislature that they should be legal.
    • Why? Because driverless means fewer, and car companies are going to lobby like crazy against them. From the article:
    • Self-driving cars — especially if they are operated as fleets and you only use one when you need it, summoning it Uber-style — would mean we could have fewer vehicles per person...
  • At the start, they'll be new, higher-end vehicles.
    • Folks that buy used cars will be waiting... a long time.
  • Not everyone lives in an urban area, and the more rural, the longer you're waiting for Uber et al to show up.
  • How long before we're brave enough for cars to take our kids to school for us while we stay at home or work?

I can't tell how big a deal folks liking to drive will be. I mean, I love to drive, but I also love the time riding the train buys me back to get some work done. I've got to guess the first several generations will have steering wheels in most models as well, just like the one in Demolition Man -- and don't forget that Stallone exhibits ye olde machismo by driving manually later.

Doesn't the movie end with him in a '70 442 W-30? (Why yes, yes it does.)

Labels: ,


posted by ruffin at 10/28/2015 12:02:00 PM
0 comments
Friday, October 23, 2015

Here. Not just for podcasts, but that's what I was interested in...

Labels:


posted by ruffin at 10/23/2015 10:02:00 PM
0 comments
Saturday, October 17, 2015

Caught this from the Supertop (makers of Unread and Castro) blog:

Castro and Unread provide variable height rows for episodes and article summaries respectively. This approach feels true to what Apple intends for iOS. Twitter clients like Tweetbot and Twitterrific do a great job here but unfortunately it's rare to see podcast or reader apps take this approach.

This is exactly the benefit of having an older app. They're arguing stuff like...

Have you ever noticed how many apps show their content in fixed-height rows? In these apps, text and images are cut off at the exact same interval, regardless of their intrinsic sizes. [sic on the lack o' question mark]
...

For our apps, instead of imposing a single cell height, we want to defer to the content by letting it tell us what size it needs. In Castro, episode cells include up to 4 lines of text if we have them, otherwise the cell collapses down to show the number of lines we do have.

That's what having a good foundation for your app already in placebuys you. There's no way I do that on my first cut a podcast app. ;^)

Labels: , , ,


posted by ruffin at 10/17/2015 02:49:00 PM
0 comments
Friday, October 16, 2015

So my JSLint plugin of choice for Sublime Text got a bee in its bonnet and updated JSLint.js today. Apparently, Sublime Text 2 package control automatically updates plugins by default, because my code went crazy after a reboot.

And this is why I say "bee in the bonnet"; it's not like the plugin has been particularly good about updating JSLint as it's updated. Out of the blue, WHAM.

There's a setting to turn autoupdate off, even one (auto_upgrade_ignore) to just ignore nasty, GOT YA!! plugins like this one. ;^D

So my settings got blown away today (okay, fine, the edits should've been in my user pref file, but sometimes that file doesn't seem to take for some plugins), and JSLint got upgraded to Crockford's ES6 "friendly" version that hates this and for. Most folks I work with aren't ready for all that just yet, and I don't have the fortitude to argue they should go bleeding edge and use it. I mean, it's fighting just to get the old version of JSLint used on projects...

Luckily there's a good backup of the plugins sitting in a folder (for me, it's C:\Users\YourUserNameHere\AppData\Roaming\Sublime Text 2) waiting on me, so I'm a auto_upgrade_ignore setting and copy and paste away from being back at work.

UPDATE: I did a better job explaining this over on the plugin's Github Issues page, though the issue title is admittedly a little over the top. ;^) Luckily, I seem to have captured the feeling of a few other users... I'll paste that here.


A few important tips, I guess, if you want to do this without bothering with gitting...

  • See the auto_upgrade_ignore option for the Sublime Text package manager.
  • Add JSLint to auto_upgrade_ignore in Preferences >>> Settings -- User (see below, though I haven't tested it yet).
  • Quit Sublime Text 2
  • Blast (delete) your current JSLint package folder.
    • (on Windows, that's likely C:\Users\YourUserNameHere\AppData\Roaming\Sublime Text 2\Packages)
  • Head to your ST backups folder to get the old plugin
    • (on Windows, that's likely C:\Users\YourUserNameHere\AppData\Roaming\Sublime Text 2\Backup)
  • Grab the one with the JSLint folder in it that's closest to the date of the change.
  • Copy and paste the JSLint folder from your backups folder into your packages folder.

So, for instance, my Preferences.sublime-settings file currently has:

{
    "auto_upgrade_ignore":
    [
        "JSLint"
    ],
    "color_scheme": "Packages/Color Scheme - Default/Mac Classic.tmTheme",
    "draw_white_space": "all",
    "font_face": "ProFontWindows",
    "font_size": 9,
    "ignored_packages":
    [
    ],
    "translate_tabs_to_spaces": true,
    "trim_trailing_white_space_on_save": true
}

If I fall into a lot of spare time, maybe I'll fork this and let you chose a specific jslint file, though I had some trouble dropping an old jslint.js file directly into C:\Users\YourUserNameHere\AppData\Roaming\Sublime Text 2\Packages\JSLint for some reason, iirc.

Labels: ,


posted by ruffin at 10/16/2015 04:28:00 PM
0 comments

So I wasn't imagining it Tuesday night when I was on the iBooks store. The Apple Store was having trouble.:

Problems began around 12:30 p.m. Eastern time and are still ongoing as of this writing, according to the company official system status page. Affected people are unable to access the storefronts and/or prevented from downloading content, such as app updates, even though just the iTunes Store is listed as being down.

That wasn't much fun. Course I kept hitting `Get` (<<< strange; DeskMD didn't notice the `'s for code there) for Apple's book on Swift because it acted slightly differently with each press, so I thought I might just have to find the proper sequence of events to get it to pop out. Shake the machine!

Not exactly an Apple Fail, but I don't know that Amazon's done this to me, and I've hit a few downtimes with Apple (and, to be fair, Gmail).

Still getting used to what I can and can't do in DeskMD. Looks like the font scales to the window size, so though I can't see much now, at least it's not billboard-sized on my iMac screen. File a few bugs. We'll see. Very mvp-y, as I said before, but I'd already gotten to the point that I was using a Markdown editor to edit, export, hack out `body` and `head` tags, and post via blogger.com, so this cuts out lots of middlemen.

In other news, I've been listening to Jason White's appearance on the Gone Mobile podcast, and he was serious enough to make me take another look. I think I'm finally over the tipping point, thanks for a confluence of events...

  • I got a year's free subscription to Xamarin for Android and iOS for being a Windows Phone app developer that'd released an app.
    • (Talk about lucky. If I'd made my first test app in iOS or Android, even using Xamarin, I would've lost out.)
  • Visual Studio 2015's free version now allows for extensions, and developing for Xamarin is handily baked in.
  • I learned enough XAML in my Windows Phone app that I've Stockholmed myself into liking it.
  • I bumped back into the Xamarin Android Player, which is very fast, relatively speaking.

So full use of Xamarin Forms is now "free for me", I'm much more used to the technologies than the last time I checked, and it seems to be fairly mature. And Xamarin Forms does work very well for that first 70% of what you'd like to do. Great for puking out quick apps, which I supposed I should do next. I like it. Maybe I will build a crappy podcast app after all. At the very least, I could have much more complex rules for playlists than what I get now, and maybe even sync where I'm at in 'casts across different app platforms.

What I might like best is that I can stop pining away for a new MacBook. If I can use XamForms for lots of what I want to do, well, I can keep up my development on my Lenovo using the Android Player. Nice.

But man, in this episode, Greg and Jonathan aren't scared to ask the tough questions, pretty consistently asking for your worst mistakes and decisions where you'd like to take a mulligan. I don't remember them being so pointed before. But it's clear it's not personal, and makes for a much more interesting listen.

Argh. I'd already forgotten about DeskMD's p-tag around li-tags bug. Guess I'll just start doing those in raw html again.

Labels: ,


posted by ruffin at 10/16/2015 03:24:00 PM
0 comments

Why did Apple give away three months of free Apple Music? I think, sure, those that stick around and pay their subscription price will give Apple a nice bump, but the real win is finding out what's in everybody's "library".

If you thought iTunes Match gave them some info, now they have not just libraries but favorite streaming artists from nearly everyone with an iPhone. Hello, data scrape.

I don't think it's any wonder that the iTunes Music Store's recommendations for me have gotten tons better -- probably finally passing Pandora -- for discovery in the last several months. Honestly, iTuens recommendations are noticeably better.

I wonder if this increase in recommend-fu will continue after the majority of everyone who was on the 3 month trial of Apple Music opts back out.

In the meanwhile, stock up for Apple.

Labels: , ,


posted by ruffin at 10/16/2015 11:51:00 AM
0 comments
Thursday, October 15, 2015

Castro's developer on Overcast going free-as-in-beer-but-guilt-payments-as-in-German (or so I've heard):

Of course, Overcast developer Marco Arment is himself is an independent one man shop, but he's also a multi-millionaire off the back of the Tumblr deal. That personal wealth allows him to make decisions others can't. If he never made a single penny from Overcast he probably wouldn't continue development, but he certainly wouldn't starve.
...
When Marco first unveiled Overcast, he made clear that one of his prime objectives was to safeguard the third-party podcast app market from proprietary takeover by the likes of Stitcher. But this latest pricing move will surely have nothing but a deleterious effect on the viability of potential competitors, putting at risk the very kind of apps he sought to protect.

Emphasis mine.

Look, I'm envious of Marco too. And boy howdy, can he get on his high horse sometimes and give some not wholly earned, living in the ivory tower sounding comments. I even tend to agree with Anderson's claim that Marco takes risks that someone without his Most Favored Geek status might not be willing to try.

But Anderson's completely missing Marco's goal here. Marco's not trying to protect podcast apps. He's trying to protect open web platforms.

That make sense? He doesn't want Stitcher to close the doors on podcasts, putting them behind some creepy, stat-collecting paywall. He wants to use normal, open web conventions to put out podcasts. RSS feeds with podcast info, mp3 files that you download -- these mean that anyone that can parse UTF-8 and play an audio file has a chance to make the player they want.

It doesn't mean they get a guaranteed income in a crowded field.

Marco gets to do that. He has WARNING: LINKED VIDEO CONTAINS EXPLICIT LANGAUGE forget you money. That means he can say that he's going to create software that keeps the platform open. He doesn't have to make a living with Overcast to keep up his living standards. He can make political ends his primary motivation.

A predatory Overcast doesn't mean you can't make money off of a podcast app, and you're in a much better world than if podcasts were 80% behind the Stitcher wall. But look, just like Marco says happened to him with Instapaper, if you don't have the resources, you may very well "lose" the podcast market.

And finally, Anderson needs to know the only person who asked him to spend his career "working on Castro 2 for the last year, betting the company on a big launch and a sustainable income" was himself. Making an iOS app for an already crowded market is a heck of a gamble. Sometimes the market drinks your milkshake.

If that happens, that sucks, I agree. And I really wish them both luck. But before we get all crazypants, lets see what Overcast 2: The Predatory Pricer does to Castro's numbers first. It may not drink as much milkshake as Anderson thinks.

Labels: , ,


posted by ruffin at 10/15/2015 04:35:00 PM
0 comments

A couple of quick items.

First, I was just listening to Release Notes podcast episode 117 with Chris Liscio, and he made the interesting suggestion that you should consider giving away updates and new features for apps for free rather than forcing your current users to pay for in app purchases (IAP).

That's not new, but the rationale was interesting. If you haven't finished capturing a reasonable share of your market (and with millions of iOS devices, if you have a general-ish use app, you likely haven't), consider your feature gift as resources spent on word-of-mouth marketing. That is, if your features are worth the time you've spent, why not have your current users sing their praises and convert more folks who aren't in your user base now rather than mining your current users for more cash.

This is very anti "1000 followers", where you realize you can make a decent living on having 1000 folks willing to pay you $100 a year. Or Hoy's Unicorn Free's 30x500:

ME: "Welll, if you skip the VC, and figure out a way to get only 500 people across THE ENTIRE INTERNET to pay you $30 a month, that's $180,000 a year. Pre-tax, sure, but that's a pretty nice salary, no?"

So there's a certain income level you need to have (or a certain exceptionally low outgo level you need to be able to live off of) to run Liscio's "marketing" gamble, but it's interesting, and well-argued. Can you afford to play the long game?

Desk MD Fimp

In other news, and following my own advice (Scratch every itch, stay itchy for life), I just shelled out for Saddington's Desk MD instead of spending the time building an itch-scratching blogging app. So far, I'm actually not exceptionally happy. It's nice and "distractionless", if you don't count that I can still see my second monitor ;^), and the Markdown rendering/highlighting on the screen is fine, but I've got complaints, man!
  • Even the "XS" font size is GIANT.
  • I just had the cursor screw up when I added a line at the bottom of the screen, and now with each addition, the whole danged draft jumps. (It's hard to tell that jumping isn't from hand-holding the iPad taking the video, but it isn't.)
  • I also don't think I'm going to be able to upload YouTube very easily here...
  • No onboarding on initial open.
  • I'm not sure how to edit the title of my post.
  • There's a place for tags, but I think that's OS X tags, not Blogger tags.
  • I can't access existing blog posts on Blogger to edit, etc, I don't think. So Desk MD seems to be a one-way poster... ??
  • There doesn't seem to be a way to get to existing post tags either in the posting process.
  • Some of the toolbar buttons are actions, and some are drop-down menus. Possible actions don't excourage exploration. "Hrm, wonder what this button does..." (self-destruct!!)
  • I'm not sure how I add an image without uploading it somewhere myself, though part of the permissions Desk MD asked for from my Google account was for "View and manage your Google photos and videos", which already made me feel squeamish.

    Now it's got permissions, but I can't use images?
  • Did I mention no onboarding, not even a good video on the Desk PM site?
  • It also put <p> tags around every list item. That looked horrible, and, um, isn't how Markdown should be translated to html, I don't think.


    (I've fixed it manually, and also added images and YouTube manually)
  • Wow. It also translated URLs as if they were Markdown. Major fail. So my link, below, to MVP on Wikipedia went from
    https://en.wikipedia.org/wiki/Minimum_viable_product

    to
    https://en.wikipedia.org/wiki/Minimum<em>viable</em>product


    That's simply invalid html. Wow. Wait, is the underscore for em valid MD? I thought that was [only] an asterisk? Perhaps it's both...

Man, this screen-jumping stink0rz. And the featureset is exceptionally MVP-y.

Anyhow, let's see how it posts. Edit: Poorly. See above. And now that I've edited using Blogger's online tools, the p tags are all br's. I have no idea what's going on, but at least the post looks better now. No more time, will probably split the Desk MD stuff off later.

Labels: , ,


posted by ruffin at 10/15/2015 01:35:00 PM
0 comments
Saturday, October 10, 2015

Apple Mini DisplayPort adapters: Frequently asked questions (FAQ) - Apple Support:

2. What is the maximum resolution available for use with the Apple Mini DisplayPort to VGA adapter?

The resolution available with the Apple Mini DisplayPort to VGA Adapter is 1920 x 1200. VGA displays that use higher refresh rates (such as 85 Hz) at resolutions of 1600 x 1200 or greater may not generate video properly until you lower the refresh rate.

I hate you, Apple. /sigh

Okay, hate's obviously too strong, but why can I get a full 2560x1440 via my Lenovo T430's VGA port, but my fancy smancy Apple won't output beyond 1920x1200? Look, that's not being selective (I can see an Apple fanboy saying, "But VGA output isn't crisp beyond 1920x1200, so they don't allow it."), that's being cheap. The skimped on VGA-out (I'm guessing they're piggy-backing on the HDMI or something else that only hits 1920x1200), and my "high end" box can't play with my now nearly run of the mill, $270 27" Monoprice monitor.

I'm a little miffed Apple's best iMac (in 2013) can't communicate with what's certainly now a consumer model monitor, which is to say a high-end, but accessible, device in 2013, because they skimped again. VGA is a standard that really doesn't rust. It's worth supporting fully.

Labels: , ,


posted by ruffin at 10/10/2015 07:56:00 PM
0 comments
Tuesday, October 06, 2015

Is it wrong to say that you won't work on any projects that use source control other than git? Or at least say that you won't work on projects based in TFS? I mean, it's problems like these that tend to drive me absolutely batty...

StackOverflow question:
Why Why WHY doesn't TFS's get latest work consistently?

You would have thought that feature would have been tested thoroughly.

What I have to do is, get specific version, then check both overwrite writetable files + overwrite all files.

Is my local setup messed up or you do this also?
Normally, I'd bash a question that poorly and emotionally written too, but in this case, I feel the poster's pain.

And here's the answer (with a solution I'd already encountered, since this Get Latest bug isn't a rare one, apparently):

TFS redefined what "Get Latest" does. In TFS terms, Get Latest means get the latest version of the files, but ignore the ones that the server thinks is already in your workspace. Which to me and just about everyone else on the planet is wrong.

See this link: http://blogs.microsoft.co.il/blogs/srlteam/archive/2009/04/13/how-get-latest-version-really-works.aspx

The only way to get it to do what you want is to Get Specific Version, then check both of the "Overwrite ..." boxes.

Emphasis on the solution mine.

That's awful. I've lost hours on hours fixing things in both git and TFS, but it's what I'm losing that time doing that's so starkly different. In TFS, it's been stuff like forced baseless merges and incredibly complex things (he said SARCASTICALLY!!!) like "Get Latest". In git, it's pretty much always been when I've screwed something up, pushed, and need to retroactively fix it.

Say it with me (with obvious apologies to Frank)...

TFS is the mind-killer.  TFS is the little-death that brings total obliteration. I will face TFS. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the TFS has gone there will be nothing. Only git will remain.



posted by ruffin at 10/06/2015 12:47:00 PM
0 comments
Friday, October 02, 2015

Quote is from "Wish List: Multiple credit cards in iTunes" on Six Colors

My gut tells me that this is Apple’s “simplicity” ethos at work here: you never have to think about which credit card you’re using, which streamlines the checkout process of buying apps. But for those of us who do need to bounce back and forth between multiple cards, it would certainly be a boon.

The shortcoming isn't simplicity, unless you mean it's the type of simplicity that keeps their server-side code simple. There are elegant ways to keep the ability to add a second card invisible until it's needed rather than "simply" saying, "Heck, no." In a mature app, your technical challenges should not be visible in your app's UI. This is not a simple UI. It's a limited system.

Reread my post on the inability to change Google account passwords via OAuth in OS X. I really think we're getting to the point of a lack of institutional imagination for day-to-day, second-tier applications. There are too many minimally viable products that languish at Apple for it to be the largest/richest company in the world. iTunes is not a small business. There's no reason for its designers, product managers, and coders to produce systems that look like they are.

Labels: ,


posted by ruffin at 10/02/2015 09:56:00 AM
0 comments

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.