Showing posts with label computers. Show all posts
Showing posts with label computers. Show all posts

15 June 2016

Windows NT 4: A high point

Microsoft Windows NT 4 was a good system. It wasn’t a great system. It had plenty of flaws. But—at the time—it may have been the best in its class.

Apple was working on a system code-named Copland to replace the aging Mac OS as a transition to Gershwin, which would supposedly be a real modern, personal-computer OS. But it was a quagmire that would eventually be scrapped.

Linux wasn’t quite old enough...yet. Some people will say “Desktop Linux” is perpetually two years away, but it was good enough to serve as my primary system for the years between Windows NT and when I switched to Mac OS X.

(Apologies to the OS/2 fans, in particular. I never had much experience with it. And no doubt there are other contenders that I’m forgetting. But it was programming for Mac and Windows that was paying my bills. Linux was the only venture away from them I had time for.)

Windows NT 4 had the basic OS services—virtual memory, memory protection, and preëmptive multitasking—that personal computers were finally ready for and needed. It had a UI that borrowed some of the goodness of NeXTSTEP by way of Windows 95. It was sufficiently compatible with older DOS and 16-bit Windows software. (At least for my needs.) And, most importantly, I found myself more productive using it than I was on my Mac.

By the time Windows 2000 came out, I’d moved on to Linux. So, I can’t speak much to when things really started getting worse for Windows.

Sidebar: It seemed ironic how so many Mac people ended up on Linux during Apple’s dark years. On the face of it, at least, the two couldn’t seem to be farther apart. Completely open and customizable versus completely closed and curated. One that promises to let you do anything with it as long as you spend the time and effort; one that strives towards “it just works” provided that you want to do exactly what it wants you to do.

Microsoft today is so different. They’re no longer on top, and that means they’re doing some really great things. (And Apple is pulling Microsoft-style moves.) Yet they’re still doing a lot of silly things. And I wonder if Windows can ever again be even as good as it was with NT 4. Should I leave the Mac again, I can’t imagine it would be for a future version of Windows. Most likely it will be Linux again, if not some upstart that doesn’t exist yet.

06 February 2016

Content blocker is not a euphemism

We’re told that “content blocker” is just a euphemism for “ad blocker”, but it is not.

Consider Board Game Geek. I visited that site today with my content blocker active. I saw ads. I clicked on two of them, and there’s a chance I end up spending money on what one or both of them led me to.

The ads that my content blocker blocks? Ads I would have ignored. Ads that are so annoying they may have keep me from even bothering to read the content of the site they are supposedly supporting.

And, my content blocker blocks annoying content that isn’t ads.

28 January 2015

User friendly

A Brief History of User Interface

That is a great video, and nothing here is meant as criticism of it. After all, it is meant to be brief.

It always bothers me a bit, though, when the fact that there was user friendly software before the windows/mouse GUI gets glossed over. The GUI was undeniably a big paradigm shift. (Being graphical by default, discouraging modes, being more event-driven, being more consistent, &c.) But there were plenty of people who wanted to—and did—make computers more accessible before it.

03 January 2015

Available capacity

Over at iMore, they’d published a piece titled: “Apple sued for false advertising by plaintiffs that don't understand iPhone digital storage” It seems they’ve since removed or edited it. But I’m responding to it anyway.

Just because it is industry practice to advertise total capacity instead of available capacity doesn’t make it right. It makes zero sense to advertise any capacity other than what’s available for the user’s use. A number that is always some arbitrary size bigger than what is usable doesn’t tell the customer anything anything.

The fact that available capacity varies is no excuse. They just have to advertise a conservative value that they know will always be available for the user’s use. (Available at the time of sale. If a system update would take up all the headroom, the user can be warned about that before updating.) If things change more than expected so that new devices come with less available space than that conservative value, they need to update their specs and advertising accordingly.

Will that be expensive? I’m sure it will be, but cost is not an excuse for not being honest with your customers.

It isn’t just Apple that needs to change. It’s the industry.

27 October 2014

Thin iMacs

Dear Apple,

Please stop touting how thin the iMac is. (1) The iMac was thin enough for a desktop machine before you started curving the back. Nobody cares if it is thinner than that. (2) It makes you look stupid to tout how thin it is at the edge when we can all see the bulge in the back.

Please, instead, focus the energy you’ve spent on making the edge thin on improvements that actually matter for a desktop computer.

Thank you.

P.S. On the other hand, I’m loving how thin and light my iPad Air 2 is.

This was also submitted as iMac feedback.

12 June 2014

Swift

If you had told me before WWDC 2014 that Apple would introduce a new programming language, I would sadly shake my head. So many programming languages are created without leveraging any of the lessons of languages that have been around for decades. My general attitude is that there is little reason to create a new language instead of building off an existing one.

So far, however, Swift has impressed me. I can’t really find much to complain about.†

You could argue that in many ways Swift does build off Objective-C rather than being a new language, but that argument sells Swift short. This is a very impressive design.

†OK...here’s a...observation: It seems like having some kind of cycle-detection to augment ARC ought to be there.

10 April 2014

The simple argument against DRM

I don’t know that I’ve ever put it this way before, but it seemed so simple when I did.

Except perhaps in some very specific circumstances, I have not been convinced that anti-piracy measures ever increase sales, much less pay for themselves.

Piracy doesn’t matter; sales do. Any anti-piracy measure has to prove that it is going to generate additional sales to more than make up for its costs.

09 April 2014

Convergence

This is Android TV

Android TV may sound like a semantic difference — after all, Google TV was based on Android — but it’s something very different. Android TV is no longer a crazy attempt to turn your TV into a bigger, more powerful smartphone. "Android TV is an entertainment interface, not a computing platform," writes Google. "It’s all about finding and enjoying content with the least amount of friction." It will be "cinematic, fun, fluid, and fast."

The thing about convergence was that people wanted the technologies in the background to converge, but they never wanted the experiences to converge. Watching video is ideally done on a TV; web surfing is ideally done on a tablet, and writing a novel is ideally done on a PC. That’s not to say that we shouldn't be able to do all three tasks on all three platforms, but we don’t want, e.g., the full PC experience on our TVs.

25 March 2014

Why can’t Johnny reverse a linked list?

Colleges: You are graduating computer science/software engineering students who don’t understand pointers, floating-point, or what a closure is. (And I don’t mean that they don’t understand the terms; they don’t understand the concepts.)

It is so frustrating when I don’t get to talk to an interview candidate about higher level concerns because they don’t know the fundamentals. (It is even more frustrating when I do get a chance to talk about higher level concepts only to find they don’t have a grasp of those either.)

Even if you don’t believe that pointers and floating-point are as fundamental to the working software engineer as reading is to a secondary school student, at least tell them not to put C on their resume if they don’t understand these concepts. And tell them not to list Javascript if they don’t understand floating-point or closures.

I’m not so idealistic to think that a degree can ever be a guarantee of anything, but the current situation is that the degrees you are handing out are worthless.

Students: I don’t think the moral of the story is to not go to college. I may not have graduated, but college did expose me to things I might not have been exposed to otherwise. Understand that college will not prepare you for your career. College is an opportunity for you to prepare yourself for your career. You will get out of it what you put in.

16 February 2014

Rocksmith 2014

Rocksmith (2014...I never tried the original). Using a real guitar (or bass) means that it becomes less about playing a game and more about actually playing guitar (or bass). Of all the computerized guitar teachers or “Guitar Hero with a real guitar” things I’ve tried, this one seems to work the best. It is work to learn the songs, but it doesn’t feel like you’re fighting against the software to do so. And like a good teacher, instead of asking you what difficulty you want, as soon as you’re starting to feel comfortable, it pushes you just a little more.

I haven’t taken lessons in some twenty-odd years, but this software makes me feel like I am. In the best way.

15 February 2014

iOS ergonomics

On the Accidental Tech Podcast, John Siracusa posited that perhaps some people in the future will work at a drafting-table-like iOS-like device instead of at a personal computer. Some feedback he got was that this would be ergonomically worse than horizontal keyboard and mouse with vertical monitor.

I do already suffer from “iPad neck” on occasion, but...some thinking out loud...

Firstly, John was making an educated guess. The important point is that for some workers in the future a touch-based device may well replace a PC. We know that there are ergonomic problems with touch-screen PCs, so whatever the workstation looks like, it won’t look just like a PC.

Secondly, ergonomics is overblown. It is important, and for some people it is more important than others. But ergonomics can easily go beyond what is necessary. We don’t need a perfect workplace; we need one that is good enough.

Thirdly, office ergonomics best practices have been built up around the PC. So, it is no surprise that the recommendations favor the PC setup. When our devices no longer look like PCs, new ergonomic advice will be formed.

Fourthly, the most important lesson of ergonomics is to not sit in one posture for too long. Even with the best ergonomically design workspace, people need to not sit in one posture too long. And if you aren’t, then many ergonomic concerns become less important.

12 September 2013

iRig Pro

I ranted about the iRig HD, but I think the iRig Pro looks like a winner.

11 September 2013

Ad hoc programming

Does everyone need to learn programming?

Obviously, not all program development time is measured in man-years. One could no doubt write a program for generating anagrams in a couple of days, [...]

This is intentionally a trivial example, but it is practical tasks of this scale that are exactly why you should learn to program.

It isn’t because computers are becoming increasingly ubiquitous. Most people aren’t going to write the software for appliances that happen to have computers in them. Most people aren’t going to write application software for general-purpose computers.

It’s the small tasks that are never going to be a bullet-point feature of an appliance or application where most people can benefit from learning to program.

If you’ve ever written formulas in a spreadsheet application, you’ve already done some programming. And while spreadsheets are appropriate for some tasks, there are better ways to program that aren’t really any more difficult that are more appropriate to a much wider array of tasks.

[...] though it would take the average neophyte the same couple of days merely to type in the 75 to 100 lines of code required. Not only can a single misplaced colon or parenthesis mark foul up the works, but it often takes an enormous amount of time to discover such a seemingly minor error.

Programming is, indeed, sometimes like this. But with good tools and experience, it is the exception rather than the rule.

That said, programming is not for everyone. If you like math, you will probably enjoy programming. If you don’t like math, you probably won’t. So, the benefits may not be worth the costs for everyone.

03 September 2013

Ballmer

I think Steve Ballmer did the best job he could as Microsoft CEO. I think almost anyone else Microsoft could’ve gotten for the job would’ve done it better, though.

I couldn’t blame Ballmer for the state Microsoft is in. That blame lies with the board. It was their job to replace him when it was clear he wasn’t the person for the job. They didn’t.

Yes, I did—sort of—defend Steve Ballmer.

02 September 2013

Lambda

Playing with λ-calculus is fascinating. That everything we do with computers can be represented simply with unary functions is mind-blowing.

But when I think about it too much, I begin to doubt the applicability of λ-calculus to what we actually do in practice. We don’t use Church numerals. We use two’s compliment binary integers and IEEE floating-point and—when necessary—various arbitrary precision numbers. Our conditionals aren’t based on Church Booleans but on conditional instructions built into our microprocessors. Our lists may be built out of pairs, but our pairs aren’t functions. We don’t use the Y-combinator to express recursion; we simply give our functions names, which get turned into jumps.

Granted, closures in Scheme—much like functions in the λ-calculus—are used to build higher level features. (And, of course, the keyword for creating closures is “lambda” in reference to the λ-calculus.) But lots of the lower level stuff isn’t built from closures because it wouldn’t be efficient enough. (Could it be if the effort was made to design hardware for it?)

Edit: Here’s some example code.

23 August 2013

Customer versus user

I really appreciate Reeder and Feedbin because I know I can leave them at any time and, when I come back, they’ll still be in the same state. They’ll still know what I’ve read and what I haven’t. They’ll show me things in order instead of via some “top stories” silliness.

The thing is, I shouldn’t appreciate those things. That should be expected. These things were mastered decades ago. Yet they are beyond Facebook, Twitter, YouTube, and Google+.

Of course, the biggest difference is that I am a Reeder customer and a Feedbin customer. I pay them. While I use Facebook, Twitter, YouTube, and Google+; I don’t pay them. They won’t even let me.

13 July 2013

The future of gaming

The Omni is a very interesting device. It appears to be an elegant solution.

They should distance themselves from this kind of hyperbolé rather than quoting it, though:

Ladies and gentlemen, you're looking at the future of gaming

Video games have not had an uphill battle against their lack of VR technology. Rather, such technologies have had little success in the market. It isn’t just because “they aren’t there yet”. It is because people enjoy playing games without the VR experience. Such gaming will continue no matter how good the VR technology gets. The VR technology will be used for some games but not a majority of games.

Even among the types of games that work well for VR technology, there’s the convenience hurdle. Pulling all this gear out of where you store it and getting it set up and calibrated adds overhead that tradition controller and screens don’t have.

While prices will certainly continue to fall and the experience will continue to get better, I wonder if this stuff will ever provide an experience that really justifies the cost. But I’m hoping the Omni does have a bright future. I’d love to try that setup with Minecraft. The non-gaming applications are very interesting and may equal or exceed its gaming applications.

09 July 2013

Form the sweating-the-details habit early

A Short Quiz About Language Design:

That may be uncomfortable at first glance, but give it a moment. Sure, a vertical bar will end up in a string at some point—regular expressions with alternation come to mind—but the exceptional cases are no longer blatant and nagging, and you could get through a beginning class without even mentioning them.

Glossing over this kind of thing is a huge mistake. To write decent code, a programmer has to keep many such edge cases in mind all the time. It’s a struggle to do so, and it’s a habit that needs to be formed as early as possible.

05 June 2013

Another thing about textures

Thinking more about textures and skeuomorphism, another point occurs to me about textures in iOS.

What purpose does the “Corinthian leather” serve in a Chrysler? What purpose does green felt and wood serve in a casino? These surfaces could be covered with materials of different color and different texture. They could be covered in materials with a flat texture and painted in flat colors. These textures are just as superfluous—or purposeful—as they are in the digital world as in the real world.

You may not like the specific choices in either the real so digital world, but the aesthetic choice is just as valid in either case.

03 June 2013

Scheme implementations

One of the difficulties in getting started with the Scheme programming language is picking an implementation. There are a bunch. Many of them are very good. Each has strengths and weaknesses. But those strengths and weaknesses don’t always readily line up with uses. So, recommending an implementation can be tricky.

Here is a pretty good guide to picking an implementation: “an opinionated guide to scheme implementations

I know a lot less about Scheme than (wingo). I just play with it and use it instead of Bash/Perl/Python/Ruby whenever I can at work. Still, I was a Scheme newbie once, so here’s my suggestion:

If you’re using Linux or BSD, check to see if Guile is installed. (If you’ve got Mac ports or fink installed on your Mac, you might fall into this category as well.) There are things I love about Guile, and there are things I hate about it. But it is hard to argue with it already being installed on your machine. Grab a copy of SICP or The Little Schemer or whatever and go...

If you’re on Linux or BSD and you don’t have Guile installed, check your package manager for it.

If you don’t have Guile or if you’re ready for something more than Guile, get Racket. While the people working on Scheme standards are trying to figure out how to please academics and pragmatists, Racket has built a Scheme that is good for learning/teaching the language and has much of the “batteries included” that some other languages claim you should expect.

If you want Racket but without the GUI bits, you’ll have to dig a bit for Racket Textual.

Once you’ve had a taste of Scheme with Guile and/or Racket, then you can start to delve into what makes all those other implementations unique.