|
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, April 30, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
With my DVR+, Apple TV, and Amazon Fire Stick taking up all of my TV's HDMI ports, I thought I'd take off the increasingly annoying Monoprice 3 mini HDMI switch and put the PS3 into the component video in. Voila! No more jumping up to swap from Apple TV to PS3. One problem: Blu-Rays are windowboxed. That is, there are black bars on every side of the picture, and the picture is squished so that everyone is tall and skinny. Major fail. If we go back in our time machines about five years, we can find out why: "The new CECH-3000 series PS3 requires HDMI only for BD movie output in HD, in compliance with AACS standards," Sony told Ars Technica. "PS3 continues to support component output for HD gaming and streaming content." The restriction is just on high-definition video from Blu-Ray discs. Nice. Thank heavens I can't record the Blu-Ray with... well, with what I don't know... in full HD glory. For that, I'd need the net and a fast connection. So difficult to find those two things. I hate DRM. I mean, I get it. Protect what you've got, and put a lock on to keep the honest folk honest. But the implementation is so shoddy. I mean, even Sony doesn't want to mind their own content protection rules. I wouldn't've even minded too much if the BluRay output was downsampled when it came out over component if they could do it cleanly, without screwing up the dimensions of the output (it looks like it's shooting for qHD, but I'm not sure why my TV would windowbox it skewed). I just want the blamed thing to display properly on my television. Also managed to corrupt the hard drive somehow while I was doing all this testing. It's been a great couple of days. Labels: blu-ray, DRM, Other Stuff, PS3 posted by ruffin at 4/30/2016 04:18:00 PM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Friday, April 29, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I've done these enough now that I'd would've thought I'd have accidentally memorized it already, but thanks to the ease with which you can learn the exact syntax of any concept stuck if your head with a half-second of googling, I hadn't yet. Anyhow, SQL Server object checks are pretty easy. All you need to know is...
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Thursday, April 28, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I think I have a winner for the April 2016 MyFreakinName Programmer Laptop. I was looking for something that was relatively small -- the 14" class, so to speak -- and that had a reasonably powerful processor, as you may have guessed from my Programmer Laptop Shootout: Processors post. Also keep in mind that I've never spent a "lot"^ on a laptop. My ThinkPad T430 was about $1000-$1100, and I purchased it because it was sooooo much less expensive than a MacBook with similar specs. For the last three years, that's been a great choice. Which is just to set up the decision criteria...
I'm afraid my desktop's i7-4790K (11206/2529) has made me greedy. Wow, it's fast. Top CandidatesOld laptop (T430) CpuBenchmark: 3998 multi, 1626 single
The ThinkPad was my first choice for a long time (see below for when that changed). The MacBook Pro was too expensive and didn't have two of my criteria -- more than 8 gigs of RAM & a quad-core processor. You could fix the first, but then you're at $1270+. The Alienware was simply too expensive. The Razer Stealth was affordable ($1k), but had the same issues as the MacBook Pro: anemic processor and soldered RAM. Other manufacturers generally had their most attractive hardware in a 15 or 17" case. 15" would be okay, but then you're paying at least $100 over the ThinkPad and losing the thumbprint sensor and TrackPoint. I'd rather save the money and keep the ThinkPad keyboard. The Asus ROG GL552 (review here) is pretty tempting at about the same price. For $1000, it has USB-C, an i7 6700HQ, 16 gigs of RAM, GeForce GTX 960M, and even a num pad, maintenance hatch, & an optical drive. Reviews on Newegg aren't great, however. Doesn't seem to have the best build quality, but great specs for the price. So I'm back to the ThinkPad. Yet the ThinkPad is hampered a little in that, first, the i7 model still isn't for sale in the US and threatens to be several hundred bucks more expensive if you convert the Australian version's processor markup to $US. Second, the T460p throttles its processor's power from 45W to 35W to, as far as most reviewers and forum posters can figure, help with cooling. NotebookCheck claims that doesn't affect performance, but I don't see how it couldn't at times. Otherwise, the processor would be 35W. The bottom line is that the quad-core Skylake doesn't really like being pushed into a T460 chassis. It's also disappointing overall how little single thread performance seems to have increased since 2013. These are less than 10% gains in the CPU benchmark I'm tracking. Can that be accurate? Seems insane. If I wasn't getting a better screen too, I'd consider not upgrading. If money wasn't an object, I think a 15" MacBook Pro wins easily. Runs OS X and Windows, and has great processor options. The build quality is excellent, including the trackpad and keyboard, and I bet it gets a USB-C port in the next revision. I just can't justify $2000 on a laptop, I don't think. If it was going to last me six years, maybe, but that's a lot of coin. Still, I think it's the smart choice, even moreso after they're refreshed in a month or two, for, let's say, a company looking to treat their developers The Right Way. Enter the Darkhorse: $700 IdeaPad Y700-14ISKBut then, clicking around the Lenovo site and NotebookCheck.net, I bumped into Lenovo's 14" "gaming" laptop, the IdeaPad Y700. Great processor, the same that's in the second tier, $1250 Alienware 15 R2, and it only runs $700. I read through a few reviews of the Y700, but it was hard to find many for the 14" version. The most informative I could find was this one from laptopmag.com. There's also a pretty reasonable YouTube review here: Best quote? "For fake carbon fiber, I think they did a good job." There does appear to be a consensus on the laptop's cons.
Yet it has...
Again, that processor is the same as the $1250 tier of the Alienware 15 R2! Seems like a pretty good fit. I don't care about the graphics card; this is for work, and there even the M375 is much more than enough. Replace the hard drive and/or add an m.2 SSD, and you're off and running for around $800. The low battery life worries me a little, I'm worried build quality will be significantly under the ThinkPad, I wish it had an option for a better screen (the ThinkPad I spec'd includes $70 to step up to 2560x1440 /swoon), I'm going to need to find my USB-to-HDMI adapter for another screen, and, even though I'm usually pretty comfortable with unconventional looks, I don't know that I'd bring it to an interview. Might keep the T430 around just for that... ;^) Also wondering how bad the keyboard will be, as that's been one of the best parts of the ThinkPad. I actually got the ThinkPad USB keyboard in preparation for getting a MacBook so I could still have the TrackPoint handy, at least in the office. I wonder if the ThinkPad USB keyboard will fit over the Y700 keyboard with a right-angle micro type b cord, or if I'll end up trying the Bluetooth keyboard. This guy might be crazy, but I'm not convinced he's not crazy like a fox. A final con: No Windows 10 Pro option. Right now, that'd run $140-$200 to "correct". Not cool. The only thing I really need pro for is Hyper-V, however, and I'm doing a lot less of that recently. You know, I'm having my usual immediate buyer's remorse wondering if I shouldn't've shelled out another $200 for the USB-C on the Asus GL552, but I think I'm going to appreciate the Y700-14's portability. I mean, that's what you're really buying a laptop for anyhow, right? Anyhow, that's too cheap to pass up. I'm biting. Far and away the cheapest phat Skylake quad-core I can find in a portable laptop. Man, I hope that keyboard doesn't bite me back. ^ A "lot" of money for a laptop is pretty subjective. I bagged a Lenovo IdeaPad Y100 (?) for $150 a few weeks back, and though it doesn't have enough hard drive space for Visual Studio and the Win10 SDK, it's plenty to do web programming or console/Powershell work. You could actually make a living with it, and I keep it in the car for "emergencies" when I'm caught laptopless. But $1200 seems to be my comfortable max for a "personal" business laptop. * Again, as I said on my "Processor Shootout", that single-thread score for the i5-6440HQ doesn't jibe with expectations or its scores at Geekbench. I think it's wrong and/or not based on enough samples. Labels: alienware, hardware, indie, lenovo, macbook, razer, thinkpad posted by ruffin at 4/28/2016 10:06:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Wednesday, April 27, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
A few quick additions to yesterday's Thoughts on Dependency Injection...
From the second:
That would have been good to know a few months ago. ;^) That post's real take-home is this, however:
I believe it also rightly argues against overusing lazy-loading. I tend to invoke queries fairly quickly, often forcing EF queries to call the database, with a Know that an overuse of lazy-loading can get you into insanely inefficient queries. That is, just because you're "lazy loading" doesn't mean that you're using your rbdms correctly. You should have what amounts to a query builder inside of your business logic. Understand your use cases, write a view or sproc, and let your rdbms optimize. Don't get lazy with the justification that you're going to lazy load and that it's the same as writing SQL [in that it's work pushed to the dbms]. It's not the same. Also keep in mind that Dependency Injection isn't nearly as fancy as it sounds. I think DI is usually couched in a very specific context that also involves an injection system, making the actual injection a somewhat obfuscated process, as I complained earlier. Getting familiar with all of that system's dependencies can be overwhelming at first glance, but, trust me, the concept itself is simple. AndN .et MVC already has DI installed! Though I can never approve of sleeveless shirts for men in tutorial videos, this one is otherwise quite useful showing how quickly and easily DI can be in a .Net MVC project. And even then, keep in mind how simple Inversion of Control really is. You probably do it a lot already to keep your code defensive and maintainable. You don't want your objects to depend on anything extraneous, so you'll often find yourself sending along something major to help your business objects get their work done. For instance, when you send along event handlers to widgets, that's a sort of IoC already! Told you you were familiar with it. posted by ruffin at 4/27/2016 08:00:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Tuesday, April 26, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Edit (27 Apr 16): I should've probably led by saying that I am a big fan of Inversion of Control. That also means I'm a decent fan of DI. But I'm also a fan of not over-engineering, and somehow the "culture" around DI is one where over-engineering seems to be fairly commonplace (see the Joel on Software post I talk about, below -- he's not talking about DI specifically, but I think you can inject it (hahahahaha) into his generic critique in this case). I love separation of concerns. What I don't love is hipster programming. If you're never going to reuse something, and it's significant to insane work to abstract it, don't. If abstraction was a bit more, knock yourself out, but, for instance, QueryOver in NHibernate when you're so deeply invested in SQL Server there's no great business case to leave, stop it. If your devs know SQL, stop it already. A better solution to a potential change in stack is to become familiar with microservices, and use them appropriately. The only place I can think of where this sort of gross abstraction might make some sense is when your stack is just getting off of the ground. But then it's no big deal to rip it all up if your old, crufty C# guy leaves and is replaced by Node Grrrl. Was doing some quick reading before talking about Dependency Injection tomorrow, and ran into a link from an SO question to a Joel on Software post I don't think I've run across before, Don't Let Architecture Astronauts Scare You:
Man, that's good. Honestly, Wikipedia currently does an excellent job explaining the pros and cons of Dependency Injection. Here are a few from each...
Okay, I admit it. I kept all of the disadvantages up there. I have worked with a system that overused DI before, and we had it so far upstream of our entities and controllers that you could work for months without ever coming into contact with the construction of a repository. That's not necessarily good. The "explosion of types" was definitely a problem, which means that over-abstraction was as well. "DI! DI! We can run the whole world with DI! DI venture capital funds!" /sigh I like interfaces. And my C# rdbms finally talked its way to using DI. I'm (slowly; I haven't had much time to work with it right now, as I don't have a product for which it's an absolute requirement) factoring it into a portable library, and that means I have to inject a class in that writes to files. Not a big deal, and certainly The Right Way to do it. What I dislike is when the DI is so abstracted that you're essentially cargo culting your way through repo instantiation, where you can create a repo from scratch and the inheritance hides that some base class is doing all the DI for you. That is, it's way too easy to end up in that last "con" from above: "Ironically, dependency injection can encourage dependence on a dependency injection framework." Wikipedia has an interesting link to some Uncle Bob Consulting jive. I haven't closely read it all, but some of this rings true on first skim...
That sounds about right, though it also seems to create a situation where you've got at least one of the "secret module" situations he was trying to avoid. The takehome message when considering Dependency Injection? Never outsmart yourself. Or, as Zakas put it a while back, "don't be too clever". posted by ruffin at 4/26/2016 01:33:00 PM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
AppleInsider has a post on Apple & recruiting, and it doesn't sound good for tech workers.
If this was good news, it wouldn't get leaked the day of the earnings report. This means Apple isn't "surge" hiring. That'd mean Apple growth is likely a long-term bad bet. That means my stock is going to take another hit. It's already started. Argh. I've lost thousands in the last year or so. Why I didn't sell at $120 when I was thinking about it, I don't know. I mean, long term, I guess I'd still pitch in with Apple, which is why I talked myself into leaving my money were it is, but there's something to be said for "profit taking". To be clear, the "profit taking" proposition is this: Sell when you think they've peaked ($120, even though they eventually hit $130), then wait for the drop (say in a week, when it's $95), buy the same number of shares back, and you get the difference to put into your pocket (here, $25 a share over six months. Sheesh. I'm making myself crazy thinking about it). It's not a vote of no confidence. It's a guess for a temporary downturn, where you can get more stock for your money shortly, if you want, or keep your position with a lot of extra cash in your pocket. This is slightly different than selling short, but the mathes & idea are essentially the same. But what's worse...... is if you're a tech worker. If Apple's not recruiting, that's already a significant blow to your demand-side. I'm not sure if I'd label Apple as a canary just yet, but can't talk myself out of it either. If Apple doesn't see room for mad growth, and their software isn't the best of class, well, why should anyone look for mad growth? If I had to guess, I think the tech "lump", if it's not a bubble, is coming down for a while. Shoulda tried to bite on that iCloud opening when I saw it. That could've been interesting. ;^) posted by ruffin at 4/26/2016 10:16:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Thursday, April 21, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I've had my ThinkPad T440 for over three years now, and though I've been exceptionally happy with it, I'm looking to upgrade. Biggest want? A fast processor. Everything else seems pretty fungible from one computer to the next, including screen resolution (the other place my T440 lacks), with the possible exception of ports. But as long as I have a USB in and video out, I'm fine, honestly. I like the "always on" charging port on my T440, which lets me charge my phone anywhere, but that's about the only "want". Of course this means I'm wasting hours price comparing and processor spec studying. I'm also doing a really poor job putting all the info somewhere I can find it easily. So let's sum, just for me. Pro tip: Don't get hung up on the huge red number. Also compare the "Single Thread Rating! Processors (all scores from cpubenchmark.net)Current Desktop (to make me feel badly):
Current laptop (ThinkPad T440)
ThinkPad T460p (quad-core)Entry price is $935. i7 not available yet.
ThinkPad T460 (dual cores, 3 options)Entry prices by proc: $875, $922, and $1050.
Current MacBook Pro 13"Entry prices by processor are $1300, $1400, and $1600.
Current MacBook Pro 15"Worth remembering that these are, entry-price for each proc, $2000, $2100, and $2300
Alienware 15 r2Though prices change on a dime, right now it's $1200, $1250, and $2550
Razer Blade Stealth & QHD+$1000, $1800 (Pro is the same proc as QHD+, so not including it in "entry price" list)
MacBook 2016Just for fun. Looks like this is $1300-1600 entry. Wikipedia shows three proc options; I only see two on Apple's Buy site. This is the fastest proc listed on Wikipedia right now...
My quick take home (again, for my specific use case; it is my blog, after all! ;^D) is that the MacBook Pros are impressively spec'd, and that the T460p, my initial choice b/c of price and quad-core proc, has an excellent single thread on the i5, tempered by there only being 12 samples taken. I think the take-home is to wait on the new MacBook Pros this summer, to either get a deal on the old or to see if the new procs make sense. The real crux is whether I think I need mobile Mac hardware to write up some Xamarin apps for iOS. I have good but dated desktop Mac hardware, and can't figure out if $300-$500 is worth it to take a Mac on the road. I want to say yes, but with Xamarin Forms, it's not quite the deal breaker it used to be. And man, that T460p is cheap, relatively speaking. EDIT: One more quick addition -- my Mac mini 2012, bottom of the line, as I try to convince myself to get a Windows laptop and use the mini as a Xamarin iOS build server...
Labels: alienware, hardware, hats of money, lenovo, razer, thinkpad posted by ruffin at 4/21/2016 11:54:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Wednesday, April 20, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
From the Ray Wenderlich (I hate liches) interview of Marco Arment:
This is part of what I tried to say in, "Your app's not Marco's" last year.
Jared Sinclair went all-in with Unread. Look, I'd argue $42,000 over six months of sales is a success. But he went all in for eight months before that sales period started. That's the crux of Marco's warning. Don't do that. Your app's ceiling is only as high as the need it can potentially serve. See how high the ceiling is sooner than later (he says as he continues to test his markdown editor that he hasn't released...) posted by ruffin at 4/20/2016 08:41:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Tuesday, April 19, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
My new favorite quote of Marc Gravell's from StackOverflow:
I understand having entities for editing and manipulation, but don't know why every read that's done a system that employs a conventional rdbms isn't done with native SQL. Labels: entity framework, orm, SQL, stackoverflow posted by ruffin at 4/19/2016 01:45:00 PM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Just got an email asking me how likely I was to recommend Ting on a ten point scale. I've been a customer for years, and it's exceptionally inexpensive if you don't use too much data. But though I used to say 8 or 9, today it's a 6. Then they asked, "Why a 6?" Here we go...
Honestly, if you've got a CDMA phone, it's a no-brainer. I'm on an unlimited plan right now. For $40 buy-in, I'm getting 500 megs LTE, unlimited texts, unlimited minutes, and unlimited 2G data after the 500 megs are out. For free. They've had 1.5 gig plans (again, for free, just without 2G fallback. Instead, they'd charge for overages) as well. Some day the other shoe's going to drop, but until then... I even bought a new Sprint iPhone SE so I could burn through my 500 megs in record time. posted by ruffin at 4/19/2016 12:53:00 PM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sometimes, code smell comes from your documentation:
Giving invalid data until "the browser will give up" is a best practice, is it? Whew, that smells. I love the, "The trick is to really force" line. "Really force"? "Hey, Firefox, remember when I told you to turn off autocomplete? It's just an informal request. If I want you to really honor it, I'll really force you to." /sigh Protip for Mozilla: Firefox form autocomplete is broken. I don't really care if it follows standards; most users and nearly every web developer will tell you its behavior is broken. I hate to see [sic] it, but it looks like Firefox usage may be down over 12% over 2015. It was my favorite browser to use for dev and home. I think the trend is pretty clear: There are now only three browsers. Edge/IE on Windows, Safari on iOS (and OS X, if you count it), and Chrome. posted by ruffin at 4/19/2016 10:56:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Thursday, April 14, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
I got a Lenovo ThinkPad compact USB keyboard last month, as I noticed that I really haven't gotten too much hand pain using my ThinkPad T430 the last three years, and I really do like the TrackPoint. The TrackPoint is much handier and the keyboard much more comfortable than I expected. Two serious issues with the ThinkPad Compact Keyboard, but it's my daily keyboard in the office now:
The first was reasonably easy to fix, especially when you're in your office. Voila. Instant ThinkLight. The second is more difficult, and a little surprising. Why wouldn't they give you this option, when it's important enough that they have it as an option in every ThinkPad's BIOS? Regardless, the point of this post is that when I was looking for folks brave enough to mod their MacBooks with TrackPoints (didn't find any), I did find this, simpler, smart solution that also seems to be a big benefit of keeping the compact keyboard, well, so small. posted by ruffin at 4/14/2016 11:49:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sling just added another base package to its stable. There are now two, which I'll call...
That last one is the game changer. Forget being able to stream three places at a time, having your regional sports for $20 is a huge deal. It used to be that you'd pay $120-$300 a season to watch out-of-area teams, but you had to pay full price for bundled cable to get your local games. Regional sports are insanely expensive.
The important take home is that cable and dish bundles with regional sports teams ran $60 and up a month. So for your typical season of four months or so, you're paying $240 to get in the local sports door, which is more than you paid to watch every other team. Now, who cares about local blackouts? Just pay $20 a month and watch. I can finally watch Hornets and Braves (so Nats against Braves) for a fair price.
But if you want ESPN, you're back to shelling out another $20. And if you want ESPN U and ESPN News, that's 20+5 = $25 a month more. Unless you can really eat just one from the a la carte line, you're right back in cable's lap. And if you don't have a Fox regional network, well, I'm sorry. That continues to stink. posted by ruffin at 4/14/2016 09:57:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Wednesday, April 13, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Yay? I guess I could do something like add ESLint to the list of alternatives to JSLint on the JSLint tag wiki, but that's not that horribly exciting. The next priv on SO is "Access to Moderator Tools", which actually is awfully powerful. I would've never thought I'd make it there, but with the way points from old answers keep coming in like dividends from old investments, I guess it could happen. And I can't help myself. 5000 came from another JSLint answer -- one I posted yesterday. I'm always surprised at the amount of venom JSLint gets on SO. There's almost always Within a few minutes of the question's posting, there's that second comment...
... and it's got four votes. So five people have complained about the topic of the question within a few minutes of its posting, and rewarded pretty inflammatory, off-topic speech. So I finally did it; I replied too harshly.
The implicit VBScript comparison might have been too much. ;^) I'm sure JSHint & ESLint are good tools. I've followed both a bit and used JSHint for a while, and they're fine, if you want lots of room for customization... and intra-office debate. Painfully, I replied twice, ending with, "Show me where JSLint "actively harms Javacript" & I'll show you someone who doesn't understand the lang," which I'd still stand behind, I think. You can disagree with JSLint, and it will, famously, hurt your feelings, but it's almost never wrong in any definitive way. Okay, actually I ended with...
Always makes a quick exchange more fun when you can drag in Thumb Wars. Still, I just don't get it. Is there another tool that gets this much flame? Honestly, I really do believe one of JSLint's strengths is, as I've mentioned, that you precisely don't have to get together as a committee every time someone wants to change some minor piece of JavaScript coding style. Crockford's not dumb, and, again, his prescriptions (well, proscriptions) are very rarely, if ever, wrong. And if it's wrong, he'll fix the code quickly, as I've seen a number of times (and even been a part of once or twice). Why is more opinion always better? I hate JSLint's whitespace rules, particularly with hanging lines and end parens, but say what you want, at least it's an ethos. WARNING: Some NSFW language here: Often, it's lazy to decide for yourself instead of figuring out why a convention suggested by an expert might be smart. I'm also much happier looking at JSLint's code. Have you looked at ESLint's repo? I mean, nothing wrong with it, but it sure isn't a single file. Looks like it's a node-directed solution too. Why must tools become so complicated so quickly? (I know Nicholas wanted "a JavaScript tool with pluggable linting rules", but I'm not sure all the overhead is necessary.) Anyhow, there's nothing wrong with JSLint. If it doesn't work for you, I'm sorry. But when a JSLint user has a JSLint question, give them a JSLint answer. If you've got to throw in a, "But I usually use ESLint or JSHint," that's fine, but answer the question first. /rant Labels: coding, gamification, JSLint, stackoverflow, style posted by ruffin at 4/13/2016 10:49:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Monday, April 11, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Was listening to The Talk Show with Jason Snell talking about the latest Apple event, and heard them talking a good deal about why, say, the SE had top of the line hardware and why the iPad Pro 9.7" had some new stuff but not everything the larger Pro has (it has True Tone, but not USB 3). I think the Apple strategy when designing new consumer products is pretty simple: Use whatever's best today. We first saw this with the new iPod touch. The iPod touch surprisingly had the same stuff inside, give or take, as an iPhone 6, then the Apple flagship, but without a price increase over the previous generation. Wait, what? For a while, it the iPod touch was the best iOS deal going. (Where was Ben Thompson's "cannibalizing" argument then? Apple's cards were already down.) Same thing happened with the iPhone SE. They're redesigning an iOS device, and they grab the state of the art off that's already on the shelf -- and if some dates and chip serial numbers (?) are to be believed, many of the SE's chips were made well before the SE was. And this makes good sense if you want to maximize your users' experience. I'm going to bet that the marginal cost of making a million more A9's is essentially the same as making a million A8's. And if that's true, what do you use on your SE? For your users' sake, you use A9's. Apple had the A9 in hand, was making a new motherboard, and poof, it's an easy design to use your design dollars to make that mobo hook up to the A9.* The only reason to use an A8 would be so you're not competing with yourself. It's not a cost thing. It's not a supply-side concern. The only reason to make more A8s instead of more A9s would be so that the SE doesn't undermine your iPhone 6s. Apple's telling us, I think, that's it's not doing that any more. This is sorta what Ben Thompson's been saying, though he doesn't (surprisingly for him) do a good job explaining it yet -- Apple is giving maximum customer experience even though it'll cannibalize its own flagship sales. No SE? I know I would've jumped once the 7 came out. But once you put aside the temptation to undercut your own product, you release better ones. And ones that you can sell longer. But this is not the same as a Celeron. This is not crippled hardware going downmarket. This is the best existing hardware without compromise.
The iPad Pro is interesting in that it does get bleeding edge state of the art with True Tone. But it's a "Pro" device. It should be chasing and integrating the state of the art. But it's the Tiny Pro... which means we can sacrifice features to get the right size inside. Though I would be curious to know how much it was developed in parallel with vs. orthogonal to the Giant Pro. Did the Pro have extra space that allowed USB 3? Did Apple decide that USB 3 wasn't important? Guess when the next iPod touch refresh is going to happen? We're probably still a couple of years out. Would you be surprised if it got top of the line stuff when it is refreshed, though? I wonder how closely the iPod touch refresh will mirror the SE's. * It makes a lot of sense that they didn't use an A10 in the SE, btw. When you have the mobo chasing the processor, you've got a much more difficult game. And if you're not ramping up production lines on the A10 yet, well... The SE needed to use the best parts on hand, the best known knowns, I guess. So you see all recycled parts. You don't create a new 4" case; you use the assembly line that you've already got running. You don't add a new processor; you grab the best you're already producing in bulk. Your only new part is the motherboard. posted by ruffin at 4/11/2016 11:51:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sunday, April 10, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Let's take a quick aside from yesterday's post where Adamson says Overcast "is only barely viable". Really?
Wow. 855 * $2 (after Apple) = $1710 a quarter = $6,840 a year. That's iff those were the only patrons Overcast got all quarter. That seems a higher number than I usually see (On Aug 22, it was 481, and around 480-500 the next week), but let's start playing with 200 a week, and oversimplify to 800 a month. If we say that they only pay the lowest amount once -- $2.99 for three months -- that's 800 x $2 after Apple's cut = $1600 a month. That's $19,200 a year. Not much, but if you can sustain that without huge programming costs, not bad. But let's pretend that the patrons pick 12 months instead of three, and pay $11.99. That's essentially $8 after Apple's cut per patron, or four times as much as our first number. $76,800 a year. Again, well below market rate for an 8-to-5, but nobody's working 8-to-5 today on Overcast. (All that previous work is a sunk cost at this point.) For 400 patrons a week, we double those revenue numbers. Now we're talking. Here's what it looks like:
At today's rate of 855 (though remember, there's no way that's what it's averaging), assuming no attrition/full years from each, it's $328,320, if my quick calc is right. Not bad for a single app that's not without its bugs. Let's ballpark a middle ground at $80,000 (maybe close to 400 a week averaging a little over $5.75 each before Apple's cut) for this year. Plus 2014's $164k. Plus whatever happened last year. For a single app plus updates. That's a good investment. Labels: app, app store econ, business, indie posted by ruffin at 4/10/2016 08:00:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Saturday, April 09, 2016 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Chris Adamson on the App economy [via Dan Counsell's weekly email]:
Much wrong. Many fix. First, if you read earlier this week, I think Pieter Omvlee was right. The Apple App Store is a dollar store.. Many indie developers don't want to sell there. Stop saying it's broken. If you don't have a dollar app, forget the App Store storefront.What I added to Omvlee's talk is that even those who don't want to sell in App Store storefront still want to be in the warehouse. You have to be if you want to sell inventory. That is, here are the things the Apple App Warehouse does not do for you, if you don't have a dollar store app:
Here's what the Apple App Warehouse does do for you:
etc etc. You're really asking for Apple to open another app store
That's really all anyone's asking for when they say, "The App Store's broken." What they mean is that, "The current store is broken for me," which is to say, "The current store isn't where I want to sell." For now, that means you have to make your own store on the web. That stinks, but would you really pay 7% of your gross to Apple to create a better store? Maybe. Maybe. If you knew you'd be featured, sure, but just because they make "Apple App Store Pro" or "Apple App Store Curated" doesn't mean you'll be in the window. Take that extra 7%, put it aside for marketing, and sell like mad. That said, Adamson has some interesting points. First, on why the Store is sufficient for Apple now:
I'd stopped listening to the Accidental Tech Podcast (ATP) after they took on Cards Against Humanity as a sponsor -- that game really is evil. It's, as I've said elsewhere, the I Ching (which is not evil) of hate speech (which is) -- but this was interesting too:
I've been realistically bearish on indies in the App Store for a while:
(That last is a little clickbaity, sure, but only in its simplisticness. It could be a lot less.) At the same time, I'd want to reframe the conversation a little, like I did when talking about attacks Jared Sinclair got for his Unread numbers. Stop thinking about working as an independent app developer as something that should pay you something comporable to a 9-to-5er cubicle coder. You could make a lot more as a banker than as tax return dude with a shingle, but you chose the latter. It's a different field. Stop seeing $20k for one app over a year (really $25k, apparently) as failure. See it as Curtis Herbert does...
Apps are investments. You sell these investments from the Apple Dollar Store or from your own storefront, your choice. They're delivered from Apple's App Warehouse. You create and maintain enough investments, and you might rival a consultant for salary. That's the profession you choose. Enjoy your time. That's its best perk of all. Labels: app dev, app store, app store econ, apple, business, indie posted by ruffin at 4/09/2016 11:00:00 AM |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
All posts can be accessed here: Just the last year o' posts: |
|||||||||||||||||||||
|
||||||||||||||||||||||
|
|
|
|