Unauthoritative Pronouncements

Subscribe About

Adventures in Server Administration

While I was on vacation last week, I saw Marco Arment publish very thoughtful posts on the importance of relying on yourself for hosting services and content. That using many of the services, and platforms, out there can quickly wind up with large fees the developers are paying for relatively simple needs. There was also a side to it concerning proprietary services offered by these companies requiring custom code that basically locks you in to their service since you don’t want to have to rewrite all that custom code.

Newsflash: I am not a developer.

Breaking: I am interested in hosting my own “content”.

Exclusive: I decided to give it a whirl, as Marco suggested.

Besides, since the goal is to basically host this (gesticulates around the screen) stuff on a server, then the risk is super low. I mean, what does something like this really need any way? I would be satisfied serving static files.

My previous adventures in webhosting didn’t go well because I either pick a service where I have no options (I host my resume and demo reel site on Dynadot’s super-thrifty-guy plan), or I pick something where I have tons of options and no help (Nearly Free Speech). NFS had a huge learning curve because it comes set up in a very specific way, and uses BSD. Which doesn’t sound like a big deal, until you realize you (I) can’t even figure out how to install shit on the server.

I went with the inexpensive $5/mo. plan on DigitalOcean (referral link) that Marco had mentioned. It was easy to set up the VPS droplet. Populating it with exactly the data I want and securing it isn’t super seamless. (What do you mean I can’t just do everything in root?!)

I also tried their preconfigured LAMP stack (Linux, Apache, MySQL, PHP). Then I realized that was stupid because I don’t know anything about three of the things in the list. What I needed was Python, because I have a pretty decent understanding of Python through the work I’ve done[1].

So, using my new friend, SSH, I made a directory for the files, dumped the files over SFTP with Transmit, and then said, “I’m sure there’s a web server in the Python standard library.”

Spoiler Alert: There is a web server in the python standard library!

Spoiler Alert: The one in the standard library is not so great!

My first project, was to roll out (troll out?) prompt.photos, as a joke site. That would be simple, right? I’m serving 1 4KB html document I wrote by hand, with 4 PNG files. What could go wrong?

Things Went Wrong!

The server crashed the second Stephen Hackett linked to it on 512pixels.net. I got simultaneous DMs on Twitter from Myke and Stephen. ARGGH! File a bug report guys, sheesh! I’m a pro web admin!

I simply restarted SimpleHTTPServer through ssh and it kept churning without an error (I kept checking on it). I went to sleep, and woke up at 3 AM. Sure enough, SimpleHTTPServer had SimpleSHITtheBed at 1 AM. I put it back up and then started looking on StackOverflow for a more permanent solution. SimpleHTTPServer module obviously wasn’t going to work. It wasn’t even a matter of configuring it differently.

Turns out, that looking in to Apache and Nginx serving static files at 1 AM is a headache inducing thing. Obviously, those two are the most vetted. Node.js fans LOVE their little node servers. Unfortunately, I must have done something wrong with my Node installation (both on my Mac with Homebrew and on the droplet). I nixed (get it?) that idea and went back to Python. I knew the interpreter was there, and that I had installed pip, so I theoretically had a wealth of well-tested packages I could download.

I went with Twisted. Now, if you know what I know (low barrier to entry), then you know that Twisted is a super-powerful, asynchronous, Python server (and other things). I had dismissed it precisely because I thought it would be like setting up Apache. (I basically didn’t want to edit any text files by hand last night).

Turns out, Twisted is insanely easy to deploy. You point it at a path to use as root, you run it as a daemon, and it does its thing. Compare this to Apache. Not only was it as simple to use as SimpleHTTPServer, but it was also faster, and (most importantly) it has not shit the bed. I will want to investigate another solution for serving multiple named domains from this host (since I’m not paying $5 for eternity to host a joke).

This is a tremendously helpful learning experience for me because I want to migrate (vogues your browser window) this whole thing off of Tumblr.

I had picked something easy, Tumblr, just to start writing and stop fretting over fiddly-bits. Just like SimpleHTTPServer, I wanted something that wasn’t fully featured so I wouldn’t go crazy. I sabotaged myself because Tumblr is borking my RSS feed now.

I contacted Tumblr support, and after the person told me all my posts were in my RSS feed, I convinced him they were not. He’s going to pass on my desire for a working RSS feed, but they have no plans to help me.

That’s cute! TOTES ADORBS, BRO!

Before someone helpfully points out that Tumblr is free, so I shouldn’t complain, I’d like to point out that it is advertising supported, I pay for it in eyeballs. I’ll also point out that it will be trivial to get off of their service now. I’ve said it before, but when they started getting all Yahoo(!) up in my biz, I was going to move. Hell, I’ll fucking scrape pages out of here with BeautifulSoup if I have to (I don’t have to). Pelican even has Tumblr export now.

I find this process enriching. Empowering, even.

I’m going to go all web-me-point-oh on this place. You hear me, Sid?


  1. Most graphics software used to have proprietary scripting languages. That was impractical for the software vendors to maintain, and for the users to learn new scripting languages for each package. In the 2000’s, vendors all switched over to embedding Python, Lua, or TCL (pronounced TiCkLe). This is why I have a decent understanding of Python 2.7.  ↩

2014-04-03 11:37:39

Category: text


OKCupid asks users to boycott Firefox because of CEO’s gay rights stance

via

Uh. This wasn't exactly what I had in mind in my previous post. This increases the conversation, but it can really antagonize people by getting in the way of what they are doing. That doesn't really put someone in the mood to be receptive.

A for intent, D for execution.

2014-03-31 14:55:00

Category: link


Conversations and Consequences

peroty:

New Post: Conversations and Consequences

This all started, as many things do, with a tweet.

Oh no! Someone has a different opinion than me! He ought not have a job for that! http://t.co/JU9DQR7EvZ— J.D. Bentley (@jdbentley) March 31, 2014

It’s something I’ve thought a lot about but neglected to dip my toe into the pond on, partly because my own thoughts were still half-baked. I wanted to avoid a knee-jerk reaction.

Commentary tracks to…

View On WordPress

Thoughtful post from Carl about why people get so riled-up about CEO's, and their opinions. (I'm treating his reply to J.D.'s post separately from J.D.'s post.) People do reflect on the company, but a company needs to be very careful about selectively enforcing what does and does not reflect well on the company. This is why most companies don't want employees to have personal blogs, or use social networking sites. You may, or may not, offend someone, and that offended person may speak against the company. Also, they could get in to a sweet flame war on Reddit, or whatever, and that would go well for EVERYONE.

I most certainly do not agree with Brendan Eich's views. (That goes for gay marriage, and for JavaScript.) I honestly did not know who he was until his Prop 8 donation was first made public. (For historical reference, B.E. never said anything about same-sex marriage until his donation was outed in the published donations that followed Prop 8's passage.)

Brendan's views are damaging in a way that is different from from a very vocal opponent. He's quiet about them, he doesn't bring them up in public, and he's very unapologetic about them. He, like many with anti-same-sex marriage views, doesn't want to debate the issue, instead he wants to defend himself by saying he is allowed to have this opinion. He is one of the people that divorces (heh) marriage from acceptance. That is hardly extreme, profanity-laiden rhetoric. That gets it a pass by most people because, Some might say, "Hey, he's just against the marriage part. He can think that." That's what makes it insidious. It's very subtle, on the surface, but its consequences are extensive.

Unfortunately, Mozilla defended him, and kept him on, and he stayed CTO. Most people forgot about him, and his views, until his promotion to CEO. Then people were resigning, petitioning for the CEO to resign, etc. Where was this hubbub when he was CTO? Oh right, it died down about a month after everyone saw his donation. He was CTO at a technology company, that's hardly a first tier employee, and promotion was always a possibility. Bren-bren's promotion to CEO is unacceptable, but leaving him as CEO was totes acceptable?

Obviously, like Carl said, there are shades of gray here. Very uncomfortable shades of gray. What earns someone ire? We're definitely not all in agreement so we do need to discuss it.

Unfortunately, just as before, this conversation will soon fizzle and he'll keep being exactly how he is, and probably maintain his position as CEO for a decent chunk of time.

That might sound incredibly cynical (Cynicism, from little ol' me? No!) but I consider it to be optimistic. These seismic spikes in conversation slowly move public perception of these issues. Much like tectonic plates creep along, and then shudder, violently. Something changes, people react with big, bombastic conversations about it, and then it dies back down. Sure, Eich will be CEO for however long he will be CEO, but think of the impact something like this can have on people that generally don't put much thought in to same-sex marriage. It's not a sustained reaction, but very recent history has shown that things are changing.

2014-03-31 14:20:33

Category: text


CMD Space #89: Opportunity Knocks

via

caseyliss:

My good friend Myke asked me to join him on his astoundingly good interview show, CMD+Space1. Since I had been on the show once before, Myke took a different approach this time, and we had more of a conversation than an interview.

As with my forthcoming talk at CocoaConf DC, this episode may come across as one humongous humblebrag. Hopefully, it will be seen as what it’s intended–two guys opening up about where they are in their careers, and how they got there.


  1. Which should be properly spelled as “⌘+Space”. 

Casey and Myke are so refreshingly earnest, in general, but especially in this episode. Their talk isn't a brag of any sort. This is a genuine, and thoughtful, discussion about how the little interactions they made got the ball rolling for – dare I say it? – their internet faaaaaame. Nice guys doing nice things, and having it work out, is something any one can listen to.

Also: Casey trolling Myke 👍

2014-03-27 06:35:49

Category: link


You Get Nothing

I have never backed a single campaign on Kickstarter. Not a one. I have considered the campaigns that produce a book, digital download, or other package of art, writing, or music. I will never consider backing software, or hardware.

Someone can buy the company. People forget this. They forget why Kickstarter tries to stay away from funding companies. A corporate entity will make that Rift, or that Pebble. By participating in that Kickstarter, you are giving them money to make a thing for you to buy. You are founding that company without any equity in it, other than a handy set of monogrammed emotional-baggage.

Oculus can sell to Facebook for money, and there isn’t a thing Kickstarter backers get in return. Nor should those backers feel like they are owed anything. They did not buy a share of the company. They have no say in the company’s independence.

This is very loosely analogous with a writer, a musician, or an artist fulfilling their campaign and then becoming a corporate stooge. Backers have no say in that. Even the Veronica Mars campaign got crap because of the format of the movie. Was that part of the deal? Did they deceive people? No. Ask. Get it in writing. Don’t just assume you are all part of a hippy-dippy love fest and things will unfold along the romantic lines you have sketched in your head.

If backers don’t like this sort of thing, then backers need to change campaigns. It is not credible for them to bemoan these things after the fact. They do not own them.

This kind of thinking is preposterous:

Facebook could buy an awful lot of goodwill for the cost of 3 engineers by refunding the 9500 Oculus Kickstarter backers their $2.5 million.

Anil Dash

I snarked today that Mark Zuckerberg bought Oculus because people loved it and he was hoping that would make people love him. That’s not how it works, of course. I kid. Marky Z. is very serious about growing his company and I don’t think he is remotely concerned about people loving him. Mark is only concerned with legacy.

2014-03-25 22:44:29

Category: text


What Part of This Mess is ‘Creative’?

Preamble of Loathing

I want to be fair to Adobe. I want to, but I’m not. When I think of using their products, viscous, boiling rage fills my being. To narrow, and focus my rage in a single stream of piercing detestation: The stuff they do that is NOT the application is the problem.

Updating Updates for Updaters

I’d like to think that the farce perpetuated by these application updating applications is intentional comedy, but I doubt humor was the intent. Every application Adobe makes has another application that updates it. Flash has an updater. Creative Cloud is the updater for all the Adobe creative applications. Creative Cloud has its own updater. The best are those cascading updates that start with one updater needing to run before the next. They’re so much fun, why wouldn’t you want to click things and enter your system password over and over? It’s SO easy!

In an era where applications can be seamlessly updated in the background, this is incredibly backwards. This reeks of the kind of corproate fiefdom where someone is charged with writing the updater, and then it just gets protected, that role enshrined. You can’t have an app without an updating app!

They check for updates whenever they want. They don’t tell you any order in which they need to be installed. They are written with Adobe’s proprietary codebase so you can’t copy and paste error messages from dialog boxes. Remember Adobe AIR? The write-once, run-anywhere mess that they gave up on? In undeath, it still manages to exhibit all of the drawbacks that made people avoid it. Seriously, load the Console and look at all the font errors! Why are there font errors?!

A cardinal sin of these updating applications is stealing focus. It is not the most important application running on your system. You start the updater, and you go do some other work, and BLAM0! Here’s a window over everything! You wanted that, right?! This is the most important thing in your life, isn’t it?! Not an error dialog, not a failure code, just “HEY, LOOK AT ME! KEEP TYPING WHATEVER YOU WERE TYPING SO I CAN BEEP AT YOU!”

Installation failed. Error U44M1P7.

What does that even mean? Adobe’s application doesn’t say. You can search the internet and you’ll get a help page from them that says: “The U44M1P7 error means that the update didn’t install.”

If I was writing an app, and I gave it an error code, it would be human-readable. Sure, it’s great to have a code in case there is ambiguity, but the explanation of the code needs to be there. If I were writing an application where help docs have been written about what this error code means, I would include that text, or at the very least link to it. I would not want someone to go search the internet for the error code they can’t copy and paste out of the dialog window.

Especially not when the error message means:

The U44M1P7 error indicates nothing more than that the update wasn’t applied.

Step 1: Identify a problem exists. Step 2: Grant remote access.

Theoretically part of my monthly bill goes towards providing me with support and service. Unfortunately, I received no satisfaction at all from this service. You get in to the chat, and they check that everything’s in order with your account. They ask if you’re having the problem you said you’re having, and then you get put in touch with a specialist. The specialist asks if you’re having the problem you said you’re having, and he doesn’t mention anything about what the error code means. He asks you to download and install the patch manually with a URL that doesn’t format to a link in their chat system, because why make any of this easy? Download, install, and same error. He says he wants to gain remote access to my computer so we can look at this together.

I have an aversion to remote access. I am sure that Adobe support staff have fantastic training (confidence instilled by the repeated question about what my problem was) but I don’t generally consider remote access to my system to be Step 2 in a debugging process.

Instead, I found the help docs for the error that suggest uninstalling and reinstalling the application completely. I’d rather do that myself since I’m 99% sure that was going to be his next suggestion.

Sprawl

You may not realize this, but Adobe puts crap EVERYWHERE when they install things. So much crap is there that you get to run an uninstaller application included in the application’s folder. Let me break that down for you: On a Mac, in OS X 10.9, in 2014, Adobe has shipped a product with files all over the place, application-specific folders, and application-specific uninstalling applications. There is no drag-to-the-trash. I know that there are files all over the computer that those drag-to-the-trash apps leave behind as well, and it’s theoretically helpful that Adobe removes all the other stuff, but there’s so much stuff, and the uninstaller is written so poorly, that it takes 10 minutes to completely run the uninstall for 1 application. Drag to trash > 10 minute progress bar.

I’ve successfully installed it again (which involves downloading the application from scratch, gigabytes of it.) It runs, Creative Cloud is happy. Everything is right with the world! It’s just hours of my “creative” time.

Until next time. Until my menubar is invaded by a numeric badge for updating updating applications.

2014-03-19 14:02:51

Category: text


UGH, CGI!

Yes, I know, everything would be so much better if it was all hand-drawn and there were puppets, and miniatures, and all that jazz. Except it wouldn’t be. Those things existed before, they still exist in some capacity now. They are fantastic tools, and mediums, for telling stories or for making spectacles come to life — except when they don’t work. Go pick your favorite movie, or television show, that used “real” artistry, not that “fake” CGI stuff. Watch it with a critical eye. Not a “Special Edition” or some remastered, augmented version. Go dig up the imperfect experience you would have witnessed before.

Watch the ghost train in Ghostbusters II float (“doesn’t track”) with the train tracks. It’s an optical effect. Watch it slide through Winston with no real reaction. Watch the guys get sucked in to the slime river and bob around. These were the best effects you could witness at the time, and though they are imperfect, we remember them as being perfect because our mind likes to edit and improve what we see on screen.

Watch a 2D animated movie from before computers contributed to them (you’re really looking at things before Disney’s Beauty and the Beast). You’ll see things that pop, edges that sizzle, and feet that slide on the “floor” — but it’s all charmingly handmade and adorable.

Now go watch a modern CGI movie, one of the ones that has won an Oscar, for example. You’ll see imperfections, but instead of being charmed by the flaws you’ll feel cheated. You’ll wish they had drawn it, or used puppets. This isn’t adorable.

I argue that it has nothing to do with the medium. If you’re willing to overlook flaws in one, why not the other? Are you just making an assumption that the act of using a computer has made what you’re seeing in to some soulless monstrosity? Why? Humans made all those things in the computer. They animated those things by clicking, and tweaking, very similar to what they would do when posing a stop-motion armature. Some studios even have tools that allow 2D shapes to be drawn for the 3D data to conform to. Why do you think the act of using a computer makes it inhuman?

This stigma is silly and dumb. CGI, computers, 3D, none of this is why you don’t like the movie. None of this is why you should feel cheated. You’re just as cheated with rubber-moulded prosthetics, and thick-black optical matte edges.

Watching all the knee-jerk reactions come out about The Peanuts movie made me sad for this very reason. They went through an enormous amount of effort to produce something unique. If you don’t believe me, watch that trailer again. (Oh? What’s that? You didn’t watch it? You saw a promo still and said something about it? You’re totes adorbs, go watch the trailer.) Compare it to the trailers for recent CGI movies from Dreamworks, Disney, Sony, other BlueSky projects… Write down the specific thing you’re critical of and it will be the goofy, 1960’s pop culture reference to Kubrik’s 2001: A Space Odyssey. That has nothing to do with computers. I can assure you that someone could do precisely what is in that trailer on hand-painted cels, and you’d still think it was a bad trailer.

Stop using “computers” as an easy-out for critical thought.

Oh, but it’s a cash grab? That’s why you object? Well, I have some rather unfortunate news for you, The Peanuts have been licensed for all sorts of things in the past. Life insurance, toys (the toys were even in dreaded three-dimensions!), cars, theme parks — even the animated specials had product placement inside of them. No, really. Don’t give me this “it’s sacred” nonsense. You are ascribing some kind of purity to it that never existed.

Does any of this mean the movie will be bad? No, stop whinging about your ruined childhood. Your youthful memories have been leveraged for money since before you knew what the word “licensing” meant.

Go deeper. Think harder. I could write a Python webapp that sent out a tweet condemning a movie every time a trailer for a movie was released because it used CGI and it would be just as incisive as the human commentary I’ve been reading on that trailer. Wouldn’t you like to sound smarter than a programmed response?

2014-03-18 17:46:16

Category: text


OS X Release With New Lemony-Fresh Scent

Stephen Hackett, of 512 Pixels fame, wrote up some of Apple’s infamous hardware lemons the other day. For those unfamiliar with the concept of a ‘lemon’ it is a defective, or unsatisfactory product or person; most typically ascribed to cars. It’s mostly funny because it’s a fruit, and apples are fruit.

Today, Apple (company, not fruit) released a very important software update for OS X 10.9.2 Mavericks. This was a big deal because Mavericks had a number of shortcomings in it since its release last summer. Most notably, a recently-discovered SSL bug that was sort of dire. The iOS update came days in advance of this. They didn’t mix it in with other updates, it was a critical security flaw. The OS X update, meanwhile, was held up for days and it was released with a slew of changes that seem to be causing stability problems for people. Irony.

I suggested to Stephen that he do a followup story on 512 Pixels about Apple’s OS software. LOL, critical failures.

The yearly release cycle for OS X was an exciting change when it was announced. I am less excited about this now. The perceived quality of the software seems to have fallen off a cliff since this announcement. Mac OS X Snow Leopard has long been lauded as one of Apple’s most stable releases. Lion, was a buggy, inconsistent mess in comparison. Mountain Lion was supposed to be the “Snow Leopard” to Lion’s “Leopard”, but that didn’t quite pan out. Then Mavericks was supposed to be the new wave in incremental updates to the platform. Unfortunately, it didn’t fix a number of misbehaving components (Messages! You P.O.S.! I hate your guts!).

I would argue that instead of incremental refinement, we are still seeing larger-scale adjustments. They’ve been toned down, sure; Apple’s not shuffling the Finder to brushed metal and back again or anything, but they are fiddling with all the bundled apps of the OS. Sure, they focus on the power-user features that people complain about every now and then, like Multi-Monitor support getting slightly saner from where it has been, but that was over the course of several OS releases, not one.

Mail is terrible, but at least I can add tags to things in the Finder. Huzzah? I can access my Safari tabs on all of my devices, but I still get weird Safari rendering bugs (and until yesterday morning, that cute SSL bug was still on one device).

I would advocate they move off of this yearly release cycle, for no other reason than we’re almost to this summer, and I am absolutely terrified they’re going to announce OS X Bakersfield while Mavericks is still all wet.

Of course, people could argue, what’s in a name? They could take whatever the improved version of Mavericks is and name it Bakersfield and it would be just as stable as what I had proposed, but Apple wouldn’t do that. They save these flashy PR changes for things that have a feature set difference they can tout.

Part of the reason for the change to a yearly cycle was to sync up progress between iOS and OS X. It isn’t really in sync though. AirDrop doesn’t work between OS X and iOS, but who cares about that? It’s there! Corporate synergy! Branding!

They’ve also tried to align their other software platforms across OS X and iOS, but they weren’t fully-cooked when they shipped. Again, what’s the point? Sure, nothing is ever going to be done, but it should be stable and it shouldn’t have giant bugs in key features. No one expects things to be worse. When they get worse, it really leaves a sour taste.

Maybe if everything they were shipping as working was working, I wouldn’t be so apprehensive about the next lemon.

2014-02-26 08:26:57

Category: text


Dropbox: Now With Convenient Arbitration

Hi {FriendlyFirstName},

I so seldom receive email from Dropbox that I was surprised to see an item in my inbox from them. I was even more surprised by the first bullet point on the list. Let me recount it for you:

We’re adding an arbitration section to our updated Terms of Service. Arbitration is a quick and efficient way to resolve disputes, and it provides an alternative to things like state or federal courts where the process could take months or even years. If you don’t want to agree to arbitration, you can easily opt out via an online form, within 30-days of these Terms of Service becoming effective. This form, and other details, are available on our blog.

If you want to keep someone from opting out, make sure you tell them about all kinds of vague, nasty things that might happen to them. Like being locked up in court for “years”.

Dropbox, as a service, exists mainly to host your content for yourself, and to facilitate sharing the content with a select group of people. Exactly how would I enter in to a situation with Dropbox, as a company, where I would be sued by them? Any person paying for Dropbox service won’t even go to collections, or anything, their service just gets cut off. How could one be sued by Dropbox? I suppose if you are the sort that does nefarious things, then I guess this is the arbitration you’re looking for.

If you are a law-abiding Average Joe (ahem) then arbitration only exists to protect Dropbox, the company, from its users pursuing legal action against them.

I worry that:

  1. Dropbox would like to be acquired, and would like to avoid any legal entanglements.
  2. Dropbox is worried about being held liable for a hypothetical breach of security. Either through an external agent, or negligence.
  3. Dropbox is considering doing things with the data being stored on its service other than storing said data, in oh, I don’t know, a box, and want to protect themselves from suit during this pivot.
  4. Dropbox TOS also includes Mailbox, which handles very critical components of your email. Which, as we know, never gets handed out, or monitored, or anything. Totally unrelated to any government data requests.

Sure, I’m not a lawyer, and as such, this is not legal advice, but I see no upside to arbitration. Here’s an oldie, but a goodie, from John Timmer at ArsTechnica.

If you happen to have this email, I recommend you read it, because you’ll also notice that there are direct links everywhere else in the email to specific things Dropbox discusses in the email except for arbitration. That can be “found” on their blog. Emphasis is obviously not on users opting out. It is one of the curious differences between the mass-emailing and the blog post. Here’s the opt out form.

Thanks for reading!

— The Unauthoritative Pronouncements Team

2014-02-26 00:26:21

Category: text


Harold Ramis, Chicago actor, writer and director, dead at 69

via

So sad. He did some amazing work. Groundhog Day is simply a masterpiece.

2014-02-24 10:04:46

Category: link