|
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! |
|
| Friday, September 23, 2016 | |
|
"At Least 500 Million Yahoo Accounts Hacked in Late 2014" via Macrumors.
Does this surprise anyone at this point? You know, I think if I had a huge cloud company with hundreds of millions of users, I'd consider having at least three sets of teams writing at least the fascade of the software -- the server-side controller methods -- so I could rotate from one to another every sprint or so to throw off would-be hackers. As soon as they made progress hacking one, it'd be replaced by Team 2. By the time we got back around to Team 1, they'd have iterated once or twice, and the hackers would have to, if not start over, pivot. Or maybe any user would have an X% chance of bringing up Team 1, Y% 2, Z% 3 each time they started a session. I'd likely do the same for the users' data, splitting them into into several different databases, and maybe rotating users back and forth. Several different architectures using several different databases, all pitching to a consistent UI and user experience. If you interface well, it's no problem. I realize there are obvious downsides. Maybe Team 2 has a horrible design, and it's easily cracked. That is, I'm in some sense three times as likely to get hacked as before, even if it's a much smaller set of users that's compromised. But even more importantly would seem to be to sniff your network traffic like heck to see when 500 million sets of birthdays had left the network. Bizarre. Ultimately, though, RMS (hrm, apparently not Stallman) is on point: If it's on a computer, in a network, given enough time, it'll eventually be free to anyone else on that network. Networked zeroes and ones want to be free. Labels: encryption, free, rms, security, yahoo posted by ruffin at 9/23/2016 12:19:00 PM |
|
| Wednesday, September 21, 2016 | |
|
From DaringFireball:
I mean, I get the point that each is iconically designed, generally, but, um... Put another way, Andy Warhol would've only included one of those in his pop-art series (mais quelle ironie, non?) posted by ruffin at 9/21/2016 08:38:00 AM |
|
| Monday, September 19, 2016 | |
They had me up until that poorly translated line. (Okay, no, no they didn't. But it was a hilarious/horrible ending. If you're going to pay to robocall tons of people, you might as well translate your threat properly first.) posted by ruffin at 9/19/2016 01:06:00 PM |
|
| Friday, September 16, 2016 | |
|
I posted to Medium, so now I get a daily "newsletter". It's not super, but this morning I checked out Why Silicon Valley is all wrong about Appleโs AirPods by Chris Messina. He starts, give or take, with this:
He then goes on to recap my Medium post on AirPods (not actually my post, I don't think, but exactly the same ideas, all the way to deriding businessmen who wore Jawbones), but wasted words, less direction, and better pictures. posted by ruffin at 9/16/2016 08:33:00 AM |
|
| Wednesday, September 14, 2016 | |
|
Note to self: Never create images for documentation until you're done with your release. No, no no. ALL the way done with your release. I thought I could "get started" on my docs a little early, so I did. Not the worst idea ever, but I recently added a new toolbar button or two. I got lucky, I think, and can use my old images, like this one:
... since it's so tiny you can barely see what's in the toolbars. But if it'd shown one extra in the bottom or all of the top, I'd be remaking them now. See that header button way over on the right? That's new. And then for some strange reason I put the "Find" button on the bottom. Argh. That was close. I won't say anything about that tab close "X" in the first image next to the "New 0" file tab. Except that if you'd been reading, you'd know I just added that. That may or may have been retroactively added to the original image. Ms. Paint, indeed. Labels: fail, images, indie, markupdown, paint posted by ruffin at 9/14/2016 10:03:00 AM |
|
| Tuesday, September 13, 2016 | |
|
Ouch. "When not to buy a Macintosh." Seriously, it's well past time, folks. Labels: apple fail, business, mac posted by ruffin at 9/13/2016 02:15:00 PM |
|
| Friday, September 09, 2016 | |
|
Oh, Pivots in UWP, you so crazy. You may have heard that I'm writing a Markdown editor, MarkUpDown. It can have several files open at once, of course, and I'm using a UWP Pivot control to handle navigation. As I got closer to releasing, it hit me that Ctrl-W, though common, isn't the most discoverable way to close those PivotItems. And now that I'm maintaining state between starts, so that whatever tabs you have open when you close the app are back on restart, closing each file "on purpose" is a lot more important than when they all closed on each restart. That is, it looks like I need a UI for closeable tabs. Not as easily said as done. You can customize the In that UserControl, I put a I replaced the
That's fun, isn't it?
That looks okay, but there are still two problems.
Okay, three problems -- I really should change the icon to a greyed-out version when the Accessing a property in custom XAML from CI found the answer to the first pretty easily: You have to use a Dependency Property, of course!
But wait! There's more!
I feel like the Knights of the Round Table after they've considered whether to go to Camelot. Okay, nevermind. 'Tis a silly place. I won't make these new headers XAML-friendly for "version mvp". We're going to set the Label somewhere outside of XAML. Moving on to #2... Removing a
|
|
| Thursday, September 08, 2016 | |
|
There's only one word for Apple's strategy after watching yesterday's keynote: Untethered. We've seen the start of this with Handoff, but we saw the carry-through yesterday with the watch, with its built-in GPS and the disconnected hiking app demo, and particularly in the AirPods -- but also sneakily in the Lightning port. More on that last one in a second. The AirPods obviously constitute the cleanest vision of untethering. First, Apple's embraced and extended Bluetooth. Forget nasty pairing, but also say hello to pair once, access anywhere, as long as youโre in your personal niche of the Apple ecosystem. And the AirPods do access. Theyโre not secondary to hearing sound, not limited like even your fanciest 3.5mm headphones. AirPods are more than just a set of controls to pause & skip, maybe answer and end a call (and what a hack it is getting just that much interaction to work over the 3.5mm). No, the AirPods are much more than earphones. AirPods are an interface. They are your Star Trek communicators. You tap, you get Siri, you ask whatever [Apple] device is near you to do what you need. They're commoditizing device access. The AirPod isn't just a decent earphone, though it is that. It isn't just a silly salesman's Bluetooth earpiece, though it is that too (you can use one at a time, if you want, and it's Jawbone city all over again). It's not just a way to listen to music on your computer, though it is that too. The AirPod is Apple's interface to audio-augmented realty. This is the HoloEar to Microsoft's HoloLens. What really clued me in was my own absolute embrace of Lightning-only input. Now look, I love the legacy audio port. When I called the Beats acquisition as the end of the 3.5mm in 2014, I said the following:
I still appreciate that, but it's simply not the way Apple's does design. The 3.5mm port is a distraction. Why would you have two audio-out ports? Lightning works fine for audio, and, much more importantly, the Lightning port allows [digital] data to go both ways. Note when the keynote talked about the way the JBL headphones could adjust the amount of noise cancellation based on communication with the phone over Lightning. That's not a great example, but it gets across Apple's point: For Apple, headphones should no longer be passive. They should be full players in your digital life. They should be interfaces. Whether that's Apple's Bluetooth++ or Lightning headphones or an Apple watch or macOS Handoff, what's important is that every device works both ways with every other, that every device is literally an I/O port. The new digital hub is completely distributed. This increasingly distributed digital world is exactly what we should expect to get more of from Apple. You, untethered from any one specific device, with a wealth of ways to access any of them. And as that interface gets less and less substantial, less and less cumbersome, the interface will gradually fade until it converges with what we now conceptualize of as augmented reality. But when it actually hits, weโll just call the augmentation our phone. Or watch. Or PC. Or nothing at all. This freedom is what device & software integrationโโโthat is, having Apple provide all of your devicesโโโbuys us, and itโs impressive seeing how what, on their face, appear to be such minor advances (โOh wows. Appleโs made Bluetooth headphones. Yays.โ), really are small pieces moving on a much, much larger chess board. How I put it at Michael Tsai's blog:
Labels: apple, augmented reality, business, interface, iphone, music, W1 chip posted by ruffin at 9/08/2016 10:41:00 AM |
|
| Wednesday, September 07, 2016 | |
|
Watching the latest iPhone announcement made me think back to when my SE was released. The SE really is impressive, if you ask me. It's the cheapest iPhone by $150, but, at least until the 7 comes out, it also has the fastest processor and best camera available in an iPhone. That's a heck of a deal. If the iPhone SE has one leg in the future, it's also got one firmly stuck in the past. The "FaceTime"/selfie camera is exactly the same as the iPhone 5S from two and a half years prior to the SE's released. So is the Touch ID. Hey, wait, so is the 4" display. I didn't see a single Apple rag mention the reason this happened... it has to be so that Apple doesn't have to change a thing about that assembly line. You sluff the 5S out of production, but you keep the entire front face and likely most of the case exactly the same. I never saw that confirmed, and finally dug back around on the iFixit SE teardown today. Sure enough...
That's pretty danged smart. You take parts from a line that's underperforming, the 6S, and do the minimum amount of reengineering to use them in your previous phone, even keeping the previous assembly lines unchanged, and poof -- it's not a Frankenphone so much as an efficiently sourced entry device. No, what the iPhone SE really is is an exceptional refactoring. Take the part that needs to change, find a good interface between it and legacy code that hasn't rusted, and only change that part. Plug it back in, and you're off and running, efficiently. (Though the iPod touch having iPhone 6 innards should've warned us this was coming.) And now that the silly Wizard of Oz gaming demo is over, back to watching Phil... In other news, what a heck of a lot of engineering to go from 1x to 2x in the iPhone 7's camera. You're still a heck of a long ways away from the power of an SLR. Doubt me? Check this review (via DaringFireball): However, I do not recommend the digital zoom beyond 2x. The quality of digital zoom degrades quickly and I find it unusable for photography (although itโs actually kind of nice as an animal spotting tool). I have a Nikon D3100 with a nice 300mm lens, which is a 450mm equivalent in FX. That's give or take 7.7x optical zoom. The lens is, at its most compact, about six inches. You can't [easily? ever?] put that on a phone. I get tired of the idiotic stories that say the iPhone is going to be as good as a DSLR. It's not. As Phil says, it won't be. It can be a great point and short with a short focal length, and it's neat that it can sorta do zoom now, as a clever hack. Same with changing aperture. I guess there's some reason these things can't do a real iris, and you have to approximate depth of field in software. Still, ain't no DSLR. Apple knows it. It's time the Apple press learned it too. Airpods for "just" $150?!?!!/1! Labels: business, creative, iphone, refactoring, style posted by ruffin at 9/07/2016 04:58:00 PM |
|
| Monday, September 05, 2016 | |
|
I think I was reading about CommonMark when I saw this mentioned.
Sad because true? Honestly, I think CommonMark is probably a pretty good idea, all things considered. There are people that are going to get concerned with a "spec" that's, as CommonMark puts it, "ambiguous". You don't want strange edge cases that seem to conflict with reasonably hard and fast rules. I think the best complaint I've seen (and I can't dig the source back up in 10 mins of googling) is the "underline for headers" issue. What do you do here?
Apparently the original spec didn't address many edge cases like this, and you'd have to go to the code. I can't recall why that code wasn't good enough, other than folks occasionally disagreeing with it. And different users do have different needs, so I think that's a fair complaint. And most importantly for coders, CommonMark gives you a test suite. We like to have explicit pass/fail conditions. You're only as good as your metrics and QA. But yeah, any time somebody's providing something called Babelmark to help you see what's going on in different flavors of a markup format with unresolved edge cases, you've got a fragmentation problem. Also worth mentioning: Is HTML a Humane Markup Language? from Atwood. Probably as good a visualization of why we might prefer Markdown to some other markup language that's got some traction right now as I've seen, though Atwood here (contra Atwood now, afaict) strangely decides that HTML is easier to eyeball than Markdown. In other news, I had this choice definition of POJO open from Martin Fowler's site. I was pretty confident when I read "Anemic Domain Model" that he'd meant Plain Old Java Object, but the backstory is both hilarious and tragic.
(ใผ_ใผ๏นก) posted by ruffin at 9/05/2016 04:56:00 PM |
|
| Saturday, September 03, 2016 | |
|
Tried to update an app from the Windows App store.
So that was useful. posted by ruffin at 9/03/2016 09:29:00 PM |
|
| Friday, September 02, 2016 | |
|
Finally. Thargoids. Am I right? (Haven't played in months, but I miss my Mk III.) Labels: elite dangerous, gaming, Other Stuff posted by ruffin at 9/02/2016 12:35:00 PM |
|
| Thursday, September 01, 2016 | |
|
Ah, the power of MSPaint.exe. (Just realized there's a Ms. Paint pun in there somewhere. How many years have I been using this?) I'm writing a Markdown editor. Its super-original name is MarkUpDown. (I'd originally thought I'd name it MarkUpMarkDown, but emailed John Gruber to see if that was kosher, since that really is too close to Markdown, and he objected to CommonMark's original name, "Standard Markdown". No response, though I could see how "Standard" seems presumptuous in a way I trust a bad pun like MarkUpDown is not.) I used Fiverr to get some icon artwork made, and it was pretty good. Just one problem that didn't occur to me until a few weeks later.
It's not MarkDownUp, it's MarkUpDown. /sigh I have the psd, so I, in theory, could make my own lossless changes (I spent a little more than Fiverr's $5 to get that, but not much more), but when I tried, the export from the Gimp was super pixelated. I really like the Gimp, I do. I used it to create the animated gifs on my MarkUpDown home page. But sometimes it takes a lot longer to figure out than it's worth to get something simple done. (I'm suspicious I should pay $1500 for a good Gimp training course and watch that pay back insane dividends over the rest of my career, but I also don't want to get to be known as "the image hack guy" either.) Anyhow, I put together a request for my Fiverr guy, and included an image I'd hacked in Ms. Paint (and then Skitch) to show what I needed changed. Took me a little longer than I would've thought, but showed what needed to get done.
And then it hit me: That image on the right didn't look half bad. If I didn't hear back (and I didn't. He at least temporarily closed shop shortly after I left the request), I figured I had another option. If I took a little more care to line the arrows up where they were initially, I'd have something. Not too shabby for a few hours' work (I actually did this and three other images, two of which were wider than tall and required some more serious editing), right?
Looking at it again, it looks like the down arrow needs to go a little further towards the edge to match the original, but I think I'm okay with it. I'll blog about figuring out badges and icons and naming conventions for Visual Studio later, perhaps. Right now, I'm going to relax in my reasonable success with crazy mspaint.exe. (You might wonder if the Fiverr design copied the "Markdown icon" too closely. I don't think that's a problem -- it was designed, and copylefted (actually put into the public domain), by Dustin Curtis.) posted by ruffin at 9/01/2016 05:32:00 PM |
|
|
| |
|
|
All posts can be accessed here: Just the last year o' posts: |
|||||||||||||||||||||
|
||||||||||||||||||||||
|
|
|
|