Put the knife down and take a green herb, dude.
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
|FOR ENTERTAINMENT PURPOSES ONLY!!! Back-up your data and always wear white.|
|Thursday, August 25, 2016|
One thing that's bugged me a little is the penchant for tire places to have great buy three, get one free tire deals, but recently Tire Kingdom blew them all out of the water with its BOGO replacement: Buy two, get two free deal.
I don't get it. Either we're getting robbed when we buy a single tire -- which, I'm afraid to admit, I've been trained to do over long decades of watching a particular role model do the same -- or there's something fishy about these BTGO and now BTGT offers.
There isn't a ton of red tape on the Tire Kingdom deal. Here it is:
Okay, so we've got a shop fee for 10% of the tire, which is a little high. It's fair to say that we're only getting a 90-95% break in the freebees.
But the only super serious issue here is "when you purchase our Value Installation Package on all four tires". At its worst, we might something like this post suggests they found:
But let's pretend installation fees aren't the scam for a second. What's going on? I think I figured it out.
Tire places : Zombies :: Used Tires : Brains
I recently had a nail in the wall/edge of the tread of a tire, and dropped it off loose to my usual tire place to get a replacement. Got a call later that they only had one new tire in stock at that size... and one used tire.
I kinda wanted a nicer tire with a longer warranty than they were offering, but didn't want to wait carless for the two or three days it'd take to come in. I also had, pre-nail, four fairly old tires, with one bald enough that it really did need replacing soon. Naturally, this one with the nail was one of the tires with a decent amount of tread left. But it couldn't be repaired because of the nail's placement, so off it went.
(Did I rotate the tires? No, I'm afraid I didn't, so one was much worse than the others, I'm afraid.)
Against my better judgement, I went with the used tire, pretending that I'd only use it until I got all four tires in to one of those crazy buy 3 get 1 deals. That is, I was, in my mind, replacing trash with trash until I could get all the trash out.
Used price: $55 + installation New price: $110 + installation
Apparently margins on new tires at retail aren't great, but the margins on these used tires are. Why? Because when they replace all four tires, the shop gets a ton of good, free used tires from you. I started getting suspicious that the tires on my car that I thought looked okay really were okay, and later decided to replace the bald tire with a brand new one.
When I went in recently to repair a busted radiator, my local shop gave me this as part of their generic vehicle checklist:
So tell me which was...
So if I'd gone ahead and gotten four tires just to replace the bald right front, pre-nail, I would've given that tire company at least two great used tires, and probably a third they could've used too. That's $110-$165 at retail I would've handed right back, plus installation fees, to the tire company. That is, I've already given them back more than the free tire they'd "give" me. Plus that fourth tire cost them less than the $110 retail price. Plus I'd pay them installation on that "free" tire that.
Your car is a veritable gold mine of resalable used tires to tire companies. That's one reason why they want to entice you to install all at once, which also means likely replacing a few early. If you rotate tires and drive them all equally down to the nubs, congratulations. You win with this deal.
I'm betting that's the minority position. ;^)
posted by ruffin at 8/25/2016 12:13:00 PM
|Wednesday, August 24, 2016|
Perhaps the most important Visual Studio trick to know about the Immediate Window: To print something with all the newlines and carriage returns "invoked", so to speak, you suffix the string in question with
Say you're debugging some SQL. This isn't horribly useful...
It's all on one line with
Let's try it again with
For some reason, I've got the SQL indented like mad (okay, okay, it's so it lines up in Visual Studio. This is a quick and dirty utility service that has embedded SQL), but you get the point. It's actually legible with the
I could've sworn I'd posted this before, but couldn't google it up in my own blog in a minute or less, so here we go again, proper keywords attached.
posted by ruffin at 8/24/2016 10:46:00 AM
|Tuesday, August 23, 2016|
Hello, kudos to Windows. Groove Player is playing FLAC format out of the box, as advertised, apparently.
I'm not an audio snob, but I sure do enjoy downloading free and legal shows from etree. They're usually in FLAC format now (no more shn, I don't think), and not having to convert them is wonderful. And it's nice not having to load a new codec to get things to play like I did on macOS for so long (thank you for years of use, Perian).
I've gotten to the point that I enjoy using the Windows Groove player okay. It's so much more straightforward than iTunes now, and its Metro style/UWP GUI is a huge improvement over Windows Media Player. Lighter-weight, less resource hogging software is good, though I'm afraid it's going to keep creeping up as they try to sell more and more stuff (lots of streaming stuff in "Your Groove" now). FLAC support just adds to the enjoyment.
posted by ruffin at 8/23/2016 06:01:00 PM
From Brent Simmon's blog here:
... and here...
... and from the same post as above, describing what comes next for Simmons...
These quotes aren't helpful.
This might be useful. Sounds like the app wasn't making much money.
If it's a client-side only app, that's no big deal. It costs you very little (your Apple developer account cost) to keep something on the app store.
There are two problems with Vesper, however.
The first means it's costing them money today (EDIT: Gruber adds that they were also paying licensing fees for the font. He's removed that portion from his post, but it was originally there). The second means it's going to cost them a disproportionate amount of time to improve the app tomorrow.
If today and tomorrow are overly expensive, it might be foldin' time.
Post Mortem Results?
Here's my guess at what happened.
It's amazing to think that folks with the name recognition, at least in Apple circles, of Wiskus, Simmons, and Gruber could fail, but they did. To Gruber's credit, he didn't pimp Vesper much at all on The Talk Show or, iirc, Daring Fireball a few months after release. But he didn't do the app any favors with that restraint either. Wear your own shirt.
I heard that Gruber was using Vesper on his Mac in the iOS emulator. I think that tells you something pretty important right there.
I think you can also piece together from Simmons' final statements that he wasn't interested in writing a notes app for the Mac, and I'd guess that this provides the three a good escape narrative. "If we'd only made a Mac app..." I'd counter with, "If that's a good market, why not do it now?" And if the syncing code works well, it's done, man. You're 50% of the way to a notes app already (sync and much of your design is done)!
Again, I don't think Simmons is interested in writing a notes app for the Mac. But I think the real answer is that a great Mac notes app wouldn't have saved them, even if the coding time was zero.
Good, but not great
Vesper was good, but not great. It was, unfortunately, buggy. There were a number of times that I couldn't see and/or add images in one screen orientation. Sometimes cursors would jump around. Sometimes I couldn't enter text. It's a notes app. That's bad.
The idea -- the design -- of Vesper was great. It wasn't a great app. Mediocre apps, regardless of design, tend to fail if they're not maintained and improved. Vesper's had how many updates since 2013?
Revisiting The Marco Effect
I think the most important take home here is that The Marco Effect is greatly overestimated.
That is, if Marco's apps were no good, he probably wouldn't stay in business. Heck, if Marco's stuff was decent, even solid, it might not be worth making.
If Marco had the same reach as The Talk Show and Daring Fireball, picked the wrong app, and that app was only "okay", they wouldn't be worth his time.
Vesper shows me we don't give Marco enough credit. It also tells me app dev is a very tough gig.
A cynic might say that Wiskus-Gruber-Simmons simply didn't want to "stick it out" (certainly they could cover even server-side losses for a while), or that 33% of the cash from decent is much less than 100%, or that Overcast is a labor of love & doesn't make tons of cash either (actually, Overcast does quite well), but I still see Marco being undervalued here. His apps do better because of both (business speak alert!) product-market fit and quality.
Nice of them to let us dump our stuff before it disappears, natch. ;^)
Edit: Tell me what you really think
Ouch. The reviews have turned pretty nasty.
Edit #2: Gruber weighs in, a little
Must've missed it yesterday, or it came in later than I catch up on RSS, but Gruber says he's going to do his own postmortem in a bit:
Will be interesting to see how candid he is. I'd like Jared Sinclair, Marco Arment-level candidness, but I'll guess we'll take what we get.
posted by ruffin at 8/23/2016 11:18:00 AM
|Monday, August 22, 2016|
Tell you what, being an independent shop has its drawbacks. One is that it's hard to be good at design and zeroes and ones. There are certainly people great at both, but it's much fewer than those who are really good at just one or the other. That's nearly a truism.
That means it's taken me days to get my website looking presentable over and above my cheaping out and using a template for the site.
One of the biggest issues for me was trying to get a grid of application features to look good in both desktop and mobile modes. I've got a pretty common set of three features and an image for each. On the desktop, the bootstrap grid arrangement is simple enough:
But when I go to mobile, I want the order to change fairly drastically.
Probably makes more sense with numbers...
That's kind of an extreme change.
First attempted solution
I wasted a lot of time trying bootstrap push and pull. Look at this answer, for instance.
Look at the first
Wrong. After fiddling around a while, pushes seem to simply push off to the right of the viewable row. And this question pretty much confirms it.
Since that question suggests that we can't push and pull, I figured I'd take one of these more complicated options. They boil down to...
The first makes more sense I think, though you end up having to duplicate code.
I ended up with code like what's below. What's important to note is that the first row is
It does get the effect I want, even if it's not DRY.
I don't like it, though I don't even know that it isn't what a bootstrap master would do to get the same effect. I do know that any idealistic setup seems to go completely out of the window once your use case gets complicated enough, whether with conventional code or with CSS.
Here's a chart of the different "down" and "up" classes to hide your stuff, though it's from the version 4 alpha...
posted by ruffin at 8/22/2016 11:37:00 AM
|Thursday, August 18, 2016|
So here's a fun RapidWeaver 7 bug...
If you have a meta refresh tag and take a look at the preview of the page (say you want to check if your link works, or just want to check the "Hold on! Redirecting in a few!" text), the refresh is going to happen, even if you swap back to view the page's code.
That is, I can change the refresh time to ten or fifteen seconds so I can view the page, preview what I've got, go back into html edit mode, and then the code I'm looking at will go to the new page 10-15 seconds after I previewed the page.
Hint: If I'm on an html edit page, you can kill the refresh.
I've used RapidWeaver before. Skipped 6, but used 5 a lot, especially for class syllabi (when I TA'd), conference sites (see a, ahem, common theme? har har), even my own business site, which is what I'm "redesigning" now.
I like the app a lot, but it's still so danged rough around the edges. The html editor is not where I'd want to spend my time editing. There's no autocomplete of tags, no real html-friendly actions at all. The Markdown editor isn't good at all -- mostly just a text area for typing Markdown. What's worse, the Markdown parser isn't complete. I've had it miss links when translating into html, and that's just plain inexcusable.
I've often said these what amount to RAD tools will get you 80% to done in no time flat, but the remaining 20% will take you five times as long as it should've, ultimately netting you a loss in productivity. That's not the case with RapidWeaver. It essentially lets you passively partner with website designers, and gives you complete control over your html, which some hosts that support themes ultimately don't. So I get to skip most of the design overhead in developing a good looking website, which would take me weeks to months. But I'm still fighting with this app for days on days to do that last 20% easily.
posted by ruffin at 8/18/2016 09:08:00 AM
|Wednesday, August 17, 2016|
Man. I tried to create responsive images today, and it was more trouble than I would've expected.
I think the biggest problem for me was a long detour through
Here's an example:
Excellent, though not quite great, tutorial on creating responsive images here at MDN.
Biggest win? Now my screenshot changes when I tip my phone from portrait to landscape and back. Observe!
Landscape on iOS (iPhone 5 size)
Portrait on iOS (iPhone 5 size)
RapidWeaver Theme Removes ALL br Tags. Rly.
Now to figure out how to get that content centered for mobile portrait in the RapidWeaver theme I'm using (called Offroad). Hit a really nasty snag today where whoever made the theme -- a pack-in for the RapidWeaver application, no less -- decided they'd erase all
Can you spot it? Of course you can. It's the
I changed it a bit to make it less invasive, but still, REMOVING EVERY
Everything seems happier now.
posted by ruffin at 8/17/2016 08:08:00 PM
|Friday, August 12, 2016|
I don't think it's [just] age.
Tell me this: Do you get drug tested when you're suspended? How long before the benefits of juicing disappear after you've stopped taking them? The math seems pretty simple here.
That said, I would've loved to see him grab four HRs in four ABs tonight and walk off with the most insane 700 HRs in history. Guess he'll settle for a double and a third of an inning at third, which was a classy move by the Yankees (though them letting him play shortstop for that third would've impressed me more).
posted by ruffin at 8/12/2016 11:47:00 PM
When you write pretty much any code dealing with text, you get used to viewing raw bytes. Probably the most annoying part of it all, once you get your head around Unicode, is dealing with newlines in a tolerant, cross-platform fashion.
From today's Wikipedia:
The most annoying part is probably that you can't easily treat newline characters as any fixed number of bytes when you're dealing with crossplatform text. And you should probably always assume you're dealing with crossplatform text.
So when I'm breaking things down into informal test cases, I often shove the parsing code I'm writing into a testing console app project to see what's going on. Why I never did the below before when dealing with newlines, I have no idea.
If I ignore Acorn BBC and RISC OS (...and done), every
So much nicer to have...
... rather than trying to figure out if a cut caught the
posted by ruffin at 8/12/2016 01:05:00 PM
All posts can be accessed here:
Just the last year o' posts: