Category Archives: technology

Some things will make you remember that beneath my ridiculous good looks, there’s the brain of a computer engineer. Laptops, servers, routers… I like them all.

Putting out Fires…

Well, it has been a little while since the last time I blogged. I’d like to like to say it’s because I’ve been busy exercising or developing something cool. But it’s not that. It’s Borderlands. I’m not ashamed (in fact, I’m quite happy with this), I’m just informing.

Work has been crazy. Boring for blogging, but crazy. Plus, I can’t say stuff that’s going to get me in trouble.

In slightly less boring news, we ended up returning the Fire tablets that Sav and I got for Christmas. When they don’t do what you really want, there’s no reason to keep them around. Sav would like an iPad. I would like a Nexus 9 tablet, but it’s not something that I need. It would probably be faster than this netbook, but no keyboard and twice the price. You can’t argue with math, especially when it comes to $$.

I’m holding out for this Ghost blogging platform. Sometime soon they are going to update the editor. At that point, I’m going to decide whether I keep it or ditch it. I have to say that I like where it’s going and how the interface behaves, for the most part.

Ok, that’s enough boring for a single post. I’m thinking about making a major shift and start posting a bit more family/personal stuff. I shy away from it for privacy reasons, but I realize it’s a little paranoid. Not like you’ll be seeing selfies with me and my new credit card (gotta make sure I get two — one of the front and one of my signature, right?), but you might start seeing some cute pics of my kids. I’m really not sure if anyone but Sav reads this, but on the chance that you’re not Sav, and you don’t think that my posts are entertaining just because they’re from me, I’ll try and make them more work reading. Maybe you’ll even want to comment one of these days. Wouldn’t that be fun?

Currently listening to “Moon” by Sia

Fighting Fire…

I learned something very disappointing today. I learned that the Amazon AppStore is nowhere near the Google Play app store. And that it isn’t easy, maybe not even possible, to put the Google Play store on a Kindle Fire. And there aren’t Google Apps on Amazon’s AppStore.

And the worst part of all, my favorite app, JuiceSSH isn’t available on the Amazon AppStore. I was really hoping that I could use the tablet for more than just movies and games. Not that I have any lack of devices. It’s just nice to be able to do as much as possible with the smaller devices.

But if you want to watch movies and play Candy Crush, then the Fire can do it.

Frustration just being secure…

Working at a company that makes a third of the world’s computer memory, you would think that I would be working with the latest technologies every day. Well, that’s not really the case. I deal mainly with software, developing and maintaining the stuff. And while the hardware under my desk might be top notch (i7 quad-core with 24 GB of RAM), the software running on it is probably 10 years old.

In order to get Python 2.7, I had to compile it myself. I also compiled Git. We have a NFS mounted home directory, so it’s available on all Linux boxes on the network. But that meant that I had to compile for both i686 and x64_86. Oh, and I can’t get root access on my box or get something better like Ubuntu 14.04.

Well, in this latest round, I’m trying to install some Ruby, Rails, and Node.js, along with the related packages. Well, everything was going great until I started the main install, and I got a weird error trying to download from Github over HTTPS. It wasn’t the proxy (I already had that setup correctly). I dug in and found two problems:

  1. The certificates on my machine were out of date, so I couldn’t download from some sites.
  2. The OpenSSL on my machine was so old, it didn’t support SHA-256 (which, funny enough, all new certificates will probably have, as most certificate authorities are phasing out SHA-1).
    So I tried to go down the road of compiling OpenSSL, Curl, and Git with support for the newer digest, as well as update the CA certificates. Oh, the nightmare this has been. Everything seems to go fine, but then Git just doesn’t work over HTTP/HTTPS. No error message — it just stops.

And all of this is to get OpenProject running on Linux because our sys admin gave me a old Windows box with a Core Duo processor to install OpenProject on, and now OpenProject doesn’t support Windows at all, and a Virtual Box Ubuntu server won’t run fast enough.

Anyway, that’s a long boring story. My point is: how can a technology company be so bad with software? Oh, the horror stories I could tell…

Welcome to Ghost…

Well, I did it. I successfully migrated my blog to Ghost. It was a bit of a wild ride. I’m going to jot down a few of the nerdier lessons learned, on the off-chance someone else runs into the same problems and happens upon this post.

Exporting from WordPress

Exporting the WordPress data was easy. I just used the Ghost export plugin for WordPress. I first exported all comments to Disqus, and I didn’t worry about images, since I don’t have that many and I didn’t really care if they were lost. I guess there are ways to save the images as well, but I didn’t bother. One caveat that you might also run into: tag descriptions cannot be more that 200 characters, so trim these first or you’ll be editing JSON by hand.

Installing Ghost

I chose to download from GitHub, in case I wanted to make any changes. I made my own fork as well. Anyway, that was the easy part. Just make sure you follow the right instructions (there are extra steps if you download from GitHub, in a “contributing” section). Once I did that it was a piece of cake.

The only tricky thing was that all off the post dates were way off, so I had to adjust the dates by +7 hours. Otherwise, all of my permalinks were broken. But now BYU students can still find the MRH.

Apache Reverse Proxy

I run Apache, including a few other blogs and other tools in PHP, so I needed to figure out a way to forward all https traffic to Ghost. I tried using a socket. That was a mistake. Apache’s Unix domain socket support is questionable, and documentation is nonexistant. Save yourself the pain and just use TCP/HTTP forwarding. I set Apache to redirect any HTTP traffic to mchasej.com, so I just had to worry about the SSL/HTTPS forwarding. But be sure to add the following line to your Apache conf file, or you’ll end up with endless redirect loops:

RequestHeader add X-Forwarded-Proto https

I’m sure that there’s a variable for the “https” but since this is a *:433 virtual host, it didn’t matter.

Ok, I guess that wasn’t as hard as it needed to be. Honestly, I probably spent a good 1-2 hours trying to get the socket thing to work. And before that, I spent 5-6 hours setting up SSL between my webhost and home server’s MySQL servers, as well as resyncing the slave. That was trickier than it needed to be, mostly because it left out the important detail that the CN for the requests had to be different between the CA, server, and client certificates. But now that’s finally secure. That wasn’t even something I thought of, then I stumbled upon the settings and realized that everything between my master and slave was plaintext. Oh, and tip: setup the slave certs through the CHANGE MASTER TO MASTER_SSL_CA=… command and not through the my.cnf file.

Well, I’m done with the nerdy stuff for now. I’m really excited to start using Ghost. The only thing I’m not happy with is the lack of browser spell-check support. Other than that, I’m tickled pink with this new blogging platform. My new little laptop handles it better as well.

Why can’t it be more simple…

So I looked into using Discourse for comments. Another project using Ruby (on Rails). So that’s not my favorite idea.

I’ve started to think what I would most want from a blogging platform.  One thing I don’t really care about WordPress right now (any maybe it’s just this theme) is that my content seems to take a back seat to the sidebars and widgets. But this is the WordPress default theme of 2014. So…

So here’s my wishlist (in no particular order):

  1. Simple — I don’t need a lot of fluff.  I don’t need Facebook integration or anything like that.
  2. Lightweight — I need something that runs a little better on my new laptop. WordPress is feeling bloated.
  3. Comments — While I don’t get a lot of comments, I think blogs need comments. Comments with moderation.
  4. Minimal — I want a minimal theme, nice crisp font. Nothing flashy.
  5. Easy — Something that I can drop on a server and not have to run 5 different languages to get it going. Apache and PHP are easy, so WordPress does have an up here.

So Ghost is most of these things. I’m not sure how easy it is. I’m working a lot with JavaScript lately, so I could probably add anything I really wanted. Plus, it might prove to become an open source project that I could actually contribute to. There are no comments, but this might just have to be the way it is for a while. I’m not even sure anyone reads my blog anymore.

So that’s what I might be doing tomorrow: taking care of a sick wife and installing Ghost.

I just want to watch Clue…

Come on Netflix!  I know that when you say you’re stuck at 25% that it really means that you’re lying to me and that you’re at 0%.

Anyways, that’s not important.  But it does mean that I can focus on blogging.  I was hoping to do both, but this will have to do.  I’m testing my new 11.6″ laptop out on WordPress.  It’s not a very powerful machine, so I’ve already abandoned the visual editor. But it’s doing fine with the text editor. And I like Markdown anyway (actually, I prefer CommonMark–I’m not a fan of Gruber).

I’ve been using more and more open source tools at work. And it has peaked my interest in becoming involved in some open source communities and projects. I’ve thought about getting involved with WordPress, but it’s such a huge project. Plus, it feels like it’s getting bloated. And it’s probably overkill for my readership of one and the seldom that I write.

I started looking at Jekyll. It’s perfect, except it’s written in Ruby–I don’t like Ruby. Then I started looking at Octopress. Same problem, plus it doesn’t seem to be actively developed.

Then (just a few minutes ago), I stumbled upon Ghost…

And with just 5 minutes with their trial, I’m sold. I’ll be switching to Ghost in the near future. Ghost with Discourse for comments.

Atwood’s Law at work…

Literally.

Any application that can be written in JavaScript, will eventually be written in JavaScript.
Jeff Atwood

Before working at the company, I had programmed mainly in C, C++, and PHP (and therefore MySQL).  During my interview, I said that my favorite programming language was C (and it was).  I had been working as both a web programmer and research assistant.  As a web programmer, I had done a few tricks with JavaScript, but the websites were driven by PHP and CSS.  I hadn’t yet discovered jQuery.  When I had to develop a network traffic blaster and receiver, I wrote them in C++.

Today, I write all webpages in pure JavaScript.  There is a single HTML page: index.html.  It only serves to load the necessary CSS and JavaScript libraries and application  The <body> is empty, except for a single onload="init();".  I use jQuery to build the DOM.  And I’ve recently started using D3.js to build data-driven documents.  Yesterday I stumbled upon Bootstrap, which I plan on integrating when I don’t need jQuery UI widgets.

And if I had to build that network traffic generator again, I would do it in Python, which is now my preferred non-web language.  If it’s not on the browser, I write it in Python.

This is a really boring post, but I’m going to post it anyway.

More exciting: I am playing Dead Space 3 (not as good as the first two–the first was the best), and Borderlands in now on my Steam Wishlist.

Going mechanical…

I’m geeking out over my most-recent nerd upgrade.  A mechanical keyboard.  And not just any mechanical keyboard, but a mechanical keyboard designed specifically for programmers.

http://codekeyboards.com/

The funny thing is that this will probably end up being at work 90+% of the time, since I don’t actually do a lot of programming at home.  (But maybe that would change if I had a keyboard like this.)  Anyway, my work keyboard is just a cheap generic HP keyboard that came with my PC.  I swapped it out for a Microsoft Natural Keyboard for about a week before switching back.  But the cheap keyboard isn’t pleasant to type on.  Indeed, I would prefer my laptop keyboard to the one I have at work.

So I’m joining the keyboard cult (a term used by Jeff Atwood, co-creator of the CODE keyboard).  I’m pretty excited about it.  I spend 90% of my working day in from on my computer, and probably 90% of that with both hands on the keyboard.  If this makes that time more enjoyable, then I’m all in.  I just hope the keyboard isn’t too loud.  I mean, a little bit would be great, but not too much.

Currently listening to “Open Your Eyes” by Snow Patrol

Websites, servers, and blogs, oh my!…

A funny thing happened over the past few months.  When we moved, we had the pleasure of becoming members of an HOA.  I’m not a fan of HOAs in general, but it seems to be how things are done here.  Personally, I think it’s a way for the local city government to get out of installing and maintaining things like street lights.  Nonetheless, it wasn’t like we had a choice.

Well, after we’d been here almost a year, the HOA got turned over from the developer to the members.  At the first meeting we had as a new HOA with the board to discuss things like higher dues, I asked if they had thought of having a website for the HOA.  I thought they would jump at the opportunity to have someone take on this project (for free!).  What’s more, I had already registered the perfect domain name (a .org domain, because I do things right), and I offered to host it free of charge.  So I had offered the HOA free site development, maintenance, and hosting.  But they didn’t take me up on the offer.

So when it came time to renew the domain, I let it expire.  Around that time, we got a new HOA board (and thus, new HOA president).  Well, the secretary sends out and email asking if anyone would be willing to assist them in the creation of a new HOA website (and if anyone had the knowledge and ability).  After banging my head against the table a couple times, I quickly emailed them back saying, “Funny you ask…”

I got in touch with the HOA president, which wasn’t easy for me because I’m very bad at remembering non-work stuff while at work (I guess I enter “work mode” or something.)  The best part is by that time, the domain had passed the grace period and was now in “redemption status”.  Meaning that I either had to pay $200+, or wait a month or so until it again became available to anyone.  That has the risk of jerks like GoDaddy or NetSolutions buying your domain as soon as it’s available and asking a “premium” price.  I was very careful not to visit the site, so that it wouldn’t look attractive, and only checked its availability at my original registrar (which is the best: NameCheap.com).

But fortunately it became available this week, and I snagged it again.  Auto-renew this time (for all my domains–you know that’s right).  Now begins the adventure of training a bunch of retired people and middle-aged housewives how to use WordPress.  I figure WordPress is perfect — they want a couple of static pages with CC&Rs, forms, and stuff like irrigation information, plus the ability to post news or announce upcoming events.  The design, look, and feel is going to fall on me, and that might be a pain, but I think I can make it work.

That’s one of most exciting things happening to me this week, outside of my confidential work stuff.  It’s very hush-hush.  Well, it’s way too late for this idiot to be blogging.  Good night.

Currently listening to “Piano Sonata No. 2 in E-Flat Major, Op. 45: Andante sostenuto” by Artur Pizarro (performed by the London Philharmonic Orchestra)

I need to create my own theme…

I have the PHP/HTML/CSS know-how already.  I’d probably start from an existing theme, or be more adventurous and start from scratch.  There are a few themes that are a couple years old that I like, but they either need to be updated to support widgets or have valid CSS/HTML to be a WordPress theme.  It would probably be a better free time activity than video games.  So if you visit the site one day and it’s unbelievably ugly, don’t worry, it’s just me having fun.

I might take a vote one which theme I should base use as a starting point, if that’s the route I take.  Also, if my current theme looks weird, do a full refresh of the page.  I updated it yesterday, and it changed a bunch of stuff, mostly for the worse.  Thus the need to manage my own theme.

Currently listening to: “Love Me Dead” by Ludo