Johnathan.org

Showing only:

My Year in Review

What better time to take a look back at what’s happened the last year than with a glass of scotch on Christmas night? All the festivities are over and tomorrow the lights come down to be stored away until next year.

I haven’t written anything substantial in quite a long time. My last journalistic blog post was longer ago than I’m willing to admit and my last post of any kind of substance was in July. I’m not sure lists count for much in the substance category, either.

I wish there was a good reason for it. I could run off a few excuses, but in reality I don’t have much that’s both good and not something I could have worked around.

With my scotch, I sit. When I blogged daily, I killed it. I’m pretty sure I used it as an outlet and a sweet mental release. I don’t really know what I mean by that or where I’m going with that. I tried keeping the train running on schedule when I moved to California, but that wasn’t a huge success.

Let’s give this a try: looking back on all that’s happened over the last calendar year, in hopes of finding solace in all I’ve seen, done, felt, and fought through. Those are some pretty choice words I just used… it’s almost like some stuff actually happened. Stuff… worth writing about.

California

San Francisco, California

Plot twist: I don’t live there, anymore. I’m back in my native Washington and while it feels great to be home, it’s bittersweet on several counts. I left Washington to start a new chapter of my life with someone I felt was special. Washington was my home state and I had a lot of years and memories already in place… 25 3/4 years worth, to be exact. It’s never too late to create new memories somewhere else so I welcomed the change with open arms.

I became attached to the state, even though a lot of its quirks could be seen by many as being subpar or less than ideal. Though I made friends–and some of the coolest people I’ve ever met–I’d say the majority of the folks I encountered were not that great. My experiences and measurements are highly annecdotal so please don’t quote me on that. There’s a good handful of people I know that have lived in California much longer than I and enjoy it way more. I suppose the crowd you hang out with has a lot of influence on those experiences.

I will never get over how expensive California is for what you receive. I think most people call that the value. In this case, it’s almost exclusively perceived value, but value nonetheless. Rent was high, traffic was bad, and at least where I was, there was no character.

Out of those three things, though, only the latter didn’t bother me, that much. See, I grew up in the suburbs. I’m used to less-than-large brush strokes of character in a city. I called the East Bay and Silicon Valley my homes for 6 months and a year, respectively. In that 18 months, I feel I formed a good enough opinion about California, and here it is.

Everyone in The Bay Area is looking for something, trying to get somewhere, or accomplish some goal. It’s a miniature Los Angeles, in that regard. Everyone that I encountered that grew up there landed somewhere on the bitter scale between hateful rage and moderately displeased. California changed and what they knew was essentially pulled out from under them by tech.

Tech companies were holding the area together by the time I got there. If just a handful of these big names went up in smoke one day, the market would come crashing down around every single individual that lived there. So many folks moved to the area for those companies, and their livelihoods would be demolished. Chances are, this would be but temporary as another tech company would move in to take its place, but on a larger scale, I think this area could only survive substituions like that for a little while.

Silicon Valley was and is the only place I’ve found one million dollar townhomes running for 6-7x what they cost to build. The market is inflated only because people know there’s someone out there that’ll pay that much… because they have to. It’s a vicious cycle that was created by greedy people looking to capitalize on recent establishements in the area… capitalism is great, isn’t it?

These artifical increases spread to apartments and even those who already owned their houses. These valuations were raising property taxes… as if California needed more money (spoiler alert: it always does… California and money managment are the classic oil and water illustration).

Of everything I saw and experienced while in California, artificially high cost of living was really the only thing that bothered me. I would have stayed past the event I’m about to describe next, had it not been for the fact that I didn’t feel I was getting a good value for what I recieved.

Marriage is Forever… Until it Isn’t.

Wedding Couple

I pondered whether I wanted to include this in my year in review because going through something like divorce is a highly personal topic and one I haven’t shared with many folks. It’s definitely something I never thought I’d experience. If me from this time last year or hell, me from this time, 2014 knew I would move to California married and move back divorced, I never would have believed it.

This is a highly complex topic, one that I could spend an entire series of posts on–or even a book–and just scratch the surface. I’m not sure if I’ll ever do the latter but at least sitting down and talking about my experiences in detail I’m sure would benefit at least one other man out there. Losing your partner with a stroke of the pen is painful, numbing, overwhelming, depressing, angering, and hysteria-inducing experience. Now try experiencing all those feelings and emotions at once. I did. And that’s why I want to talk to the world about it.

I read a couple books, and they helped, but they helped with a different thing–why I was in that situation, not how to get out of it. I’d argue one book technically fell into the get-out-of category, but for my scenario, it didn’t really apply. A lot of great ideas came out of those books, though, and when that time comes, I’ll be sure to bring them up.

The one huge takeaway I have, above all else, is that the saying time heals all wounds is s–t. Time doesn’t do anything but amplify what’s already taking place as it ticks by on the clock. What time does is take what you’re doing right now, what you’re doing next week, and what you’re doing six months later and making those actions, feelings, thoughts, and words and makes them bigger, more powerful, and longer lasting.

If you’re not picking up what I’m putting down, just yet, let me spell it out for you in plain english: give yourself time to grieve, be sad, and experience all those feelings and emotions I mentioned earlier. Once that’s up, get off your @$$ and start walking foward, again. The only way you’re going to be able to have time on your side is if you’re doing something about your situation.

I could sit here for hours and talk about everything that I felt, said, did, and didn’t do, and I will, but now isn’t the time. We have other things to review.

Whatever You’re Happiest Doing is What you Will Do the Best

It’s an odd sentence and I’m sure some will disagree with me, but I stand by it. Yes, you could show me a hundred examples of people who are absolutely incredible at their jobs but are miserable. If I took that person and made them happy, say with my magic wand, and all of a sudden now they’re that much better at what they were already amazing at, what would you say?

Imagine that person is you, now. What are you doing with your life? Do you enjoy it? When you get up in the morning and think about starting this thing that you do every day, do negative thoughts start entering your mind? Do you start feeling dreadful, bummed out, sad, and don’t really look forward to doing it?

Ten bucks says that if you liked what you did, you’d 1) do it better and 2) do it more effeciently. Not just on a time scale of doing more things in less time with the same quality. Not even that, at all. The scale I’m looking at is the one which reflects your mental state. I have no science to back this up, but I’d bet a task you dislike takes more mental energy. Now compound several tasks you dislike and turn it into a job that you dislike. See where I’m going with this?

You might be able to leave work at work, home at home, but if you don’t like home or work, it’ll bleed over into the other, for sure. I know. I speak from experience.

With everything happening with the divorce, it took a toll on my performance. I was doing a pretty dang good job, but something started feeling a bit off on both my side (internally) and on the other side (externally, observed by others). In my job prior, it had an even larger effect because not only was I not a fan of my job, but there was a lot in limbo and in a chaotic state at home.

Let’s not get too sidetracked, though. Before all the personal chaos occured, I made the realization that I just described and it opened my eyes very quickly to what I wanted to do with my life. I suppose I could do the same thing forever, and be alright with it, but I’d never be all that happy with it. I think it’s worth saying I’m not talking about happiness at work but rather happiness with where I’m at in my career.

Like seeing your child smile for the first time makes you happy, doing what you love should make you happy, too. Yes, there will be times when it sucks, but you’ll still be happy you did it, or were there to experience it. The happiness will never be taken away.


Drawing to a Close

As the year wraps up, just five-ish days left, I think about everything I’ve been through, experienced, done, said, slept on, cried over, threw, threw out, threw up, laughed at, and drank to that I can say, without a shadow of a doubt, that I wouldn’t trade these experiences, memories, and new sets of knowledge for anything.

Sure, getting to this point was incredibly painful, caused a lot of sleepless nights, caused a lot of wasted money and time, but I had a lot of great experiences as well. Like I said earlier, I made a lot of great friends, people I look forward to seeing, again, when I’m in the area (just to visit, California isn’t on my list of places to live, any time soon).

I’d never give any of that up. Doing so would essentially rob me of the man I’ve now become and the man I will continue to evolve into with these peices of life as fuel.

This year was a crazy one but it’s one I won’t forget any time soon. I look forward to sharing it all with you in 2017. If what I have to say helps even just a single person in the slightest bit, I know I’ve done my job in telling my stories to the world…

And that is what I hope will motivate me in the days, weeks, and months to come as I rejuvinate this blog.

For those who have followed me in various forms over the years (I started this blog at the end of 2014… holy cow!), thank you. For those new to the party, welcome. We’ll have a great time together, I can feel it.

How Long Has it Been?

Way too long. I haven’t posted anything to the site since July. I feel like I’ve neglected a child.

Many things have happened in the last year, some good, some not so much, and I want to talk about all of them over the next month.

Get ready for some deep dives, some reflections, and some life stories.

My Learn Ruby on Rails List

I’ve been meaning to write this post for a while and kept getting distracted. This evening I sat down and finally hammered it out. The goal is to share some of my favorite Ruby on Rails learning resources with the community. Let’s get started!

Ruby, is an incredibly versatile programming language and is the 6th most popular programming lanuage on GitHub. By extension, Ruby on Rails is a powerful web application framework that powers some cool sites: GitHub, AirBnB, Funny or Die, Groupon, Hulu, Square, and Urban Dictionary are a few of a pretty cool list. Neat.

If you’re interested in getting started in learning Ruby on Rails, I’ve put together a list of some of my favorite online tutorials, books, screencasts, and courses to get you closer to becoming the Ruby and Rails expert you always dreamed of being.

Books

The Ruby on Rails Tutorial

cover-web.png

Michael Hartl’s course is probably my goto resource for learning Ruby on Rails. You can read an online copy of his book for free, but buying it means you get acess to the answers guide and optionally screencats.

I’ve worked through this book when it was written for Rails 4 and I learned a lot about the basics of Rails. It covers just about everything including MVC, testing, databases, and deployment.

Coming November 2016 is a print version of the book. If you’re a fan of print material, this one should definitely be on your list.

Learn Ruby On Rails For Web Development

John Elder is a veteran programer at Codemy and his book is a killer resource for the absolute Rails beginner. Learn Ruby on Rails For Web Development covers a lot of the same material as Michael Hartl’s book, but if you can’t wait for a print version, I’d grab this one. Plus, if you’re a Kindle Unlimited subscriber, the book is zero dollars!

Learning Rails 5: Rails from the Outside In

Screen Shot 2016-07-29 at 4.31.03 PM

If you’ve ever read an O’Reilly book in your life, you’ll feel right at home with the familiar single-color cover theme and interesting animal choice. In this case, Learning Rails 5 rocks a horse-looking animal but don’t let that deter you. Mark Locklear and Eric Gruber guide you starting with the simpler components of Rails and gradually introduce you to complex topics.

Online

Code Academy

Screen Shot 2016-07-29 at 4.34.31 PM

If you’re like me, you enjoy a good online course. Code Academy provides just that with a five hour introduction to Ruby on Rails. If you learn well by doing, this might be just your thing. Code Academy teaches you the basics using various projects to highlight components of the Rails framework.

Code School

Screen Shot 2016-07-29 at 4.40.17 PM

If you’re looking for more in-depth online course learning, Code School is your answer. Each of the courses here are more in depth and cover more complex topics. Don’t worry, though. Code School covers the basics, too. You’ll find yourself spending a lot more time here, vs Code Academy.

Rails Casts

Screen Shot 2016-07-29 at 4.50.28 PM

While new videos haven’t appeared in a few years, the information is still relevant and new videos are coming soon, according Ryan, the site’s creator. To date, there’s roughly 400 videos to watch, though most require a subscription ($9/month).

Coder Manual

Screen Shot 2016-07-29 at 4.48.49 PM

While it bills itself as a coding bootcamp, I’d say Coder Manual closer to a regular online course. Coder Manual is incredibly in-depth and the videos are cut up into small chunks to make them easy to consume. You can follow along with your own project as well as get the materials used in each section.

On the flip side, beyond rails knowledge, you’ll touch on HTML, JavaScript, and even job hunting. It’s a bit on the pricey side but for the material and education you receive, I’d say it’s worth it.

Bootcamps

Coding Dojo

Screen Shot 2016-07-29 at 5.00.32 PM

If you’re looking for a more serious, structured course, a bootcamp will likely meet those needs. Coding Dojo’s 20 week program teaches you not just Ruby on Rails, but Python and Web development fundamentals. If you’re up for it, you can learn on site, too.

Bloc

Screen Shot 2016-07-29 at 5.13.18 PM

I’ve always been a huge fan of Bloc. It’s pricey, but they have financing options and the courses are some of the most in-depth I’ve found. You’ll meet with someone at least once a week as you work through the program and get the opportunity to build real applications that do what you want them to do.

Launch School

Screen Shot 2016-07-29 at 5.07.47 PM

If the idea of paying a ton of money up front doesn’t sound appealing to you, you’re not alone. Launch School offers crazy in-depth courses including front-end, back-end, APIss, and career assistance for $199 a month. If you’re like me, you spend half of that on complicated coffee drinks every month, anyway.

Did I miss anything? Let me know in the comments, below, if you have any great resources you think I should add here.

Polymail

I’m super excited to write this blog post. I’m always interested in new mail clients (I miss Mailbox). When I found out Polymail dropped for both iOS and Mac, I jumped on it. Apparently so did everyone else, which lead to some problems.

If you’ve never heard of Polymail before, don’t feel bad. I didn’t hear about it until super recently, myself. Polymail has a super slick UI that doesn’t waste space with stuff you don’t need. It features killer email delegation and reminders (remember when Mailbox let you put off an email until a date in the future?), get information about the person you’re talking to, and keep all this organized and synced between all your devices.

Triage

Let’s talk about the follow-ups, first. I’m a huge fan of triaging tasks. If it’s not time-sensitive, it doesn’t need doing right now. Granted, if there’s nothing else that needs doing, that logic doesn’t apply. This is super helpful for those with noisy business inboxes where everyone and their grandmother is clamoring for your eyeballs to absorb their textual essences. Sorry grandma, I’ll take a look at that chain letter tomorrow at 4:30 PM.

You can choose to follow up on a conversation using one of the preset dates, be super noncommittal and say “read later”, or pick an arbitrary date in the future, because you’re a master of your schedule and you know you have sixteen time slots open right now between today and Christmas 2018. Those voids of sadness need filling!

On the flip side, you can remind yourself to follow up with someone else if they don’t read your email. This is a neat feature, but be careful. You can very easily become “that person” that everyone in your office hates. You know which person I’m talking about: “hey did you get my email?”

With great power comes great responsibility. Can I trust you to not abuse it?

Following Up

When you’re writing your digital prose to the person on the other end your email exchange, knowing who the heck they are is important. It’s even more important in cases like candidate screening or figuring out if the person is real, or not. Next time you get resumes for a job application, use their information Polymail will glean about them on your behalf.

The Downside of Cloud Sync

While writing this quick review and even attempting to use Polymail, I ran into two problems that I think are worth noting.

First, cloud sync is a very dangerous territory to enter if you’re not prepared. In the case of Polymail, I don’t think they were. The sign up process requires you give them access to your email accounts, which is fine. The problem here is, they do everything through their servers. The emails don’t go straight from gmail.com or outlook.com or your O365 account to the client. Nope. That’s too easy (or hard). I found this to be true when after about six hours, Polymail claimed I didn’t have new email. If only that was *really *the case.

Hi all! 👋 Initial mail syncing may take a little longer due to high traffic right now, but we’re working on it. Thanks for your patience! 💌

— Polymail (@PolymailApp) July 21, 2016

That’s the tweet Polymail posted about the delays. Given I haven’t received more than one round of emails, I’d say it’s more than a delay.

My second problem is moving email accounts from one Polymail account to another. I wanted to use Polymail for work, too, so I created a work Polymail account. I also wanted to get my work email on my personal devices using Polymail. My routes were to use my work Polymail account everywhere else or move my work email to a personal Polymail account. I opted for the latter but ran into an issue.

My work email address is stuck in some sort of “account will be deleted” state that won’t progress. I didn’t think it’d take hours to delete an account, but I guess so. In the mean time, no work email via Polymail.

End of the Day

Originally I was pretty hesitant to jump in because of cloud syncing issues. This morning, I checked on it and everything seems to work well now and I was no longer getting the error in adding my work email account. So with all that being said, I’d definitely recommend Polymail.

You can pick up Polymail from polymail.io for the Mac and the App Store for iOS.

Live Streaming with Hardware Acceleration using a Raspberry Pi and RTMP/HLS

If you’ve been following my blog post series on the development of my ever so useful cat cam, powered by a Raspberry Pi, you’ll know I’ve made several attempts at a more stable and scalable streaming solution for my Cat Cam. As it stands today, I’ve been using Motion. While it’s a decent tool, Bandwidth has been my primary concern and I’d like to be able to stream real-time without sucking up what measly bits my ISP gives me if more than a few folks decide to show interest.

So far we’ve tried ffmpeg => ffserver and that turned out exactly how you probably thought it would. Next, I tried swapping ffserver with an Nginx-powered RTMP server. While not an entirely fruitless endeavor, there were some blockages that I just couldn’t get past.

I received a suggestion from a colleague to fire up the Raspberry Pi’s hardware encoder/decoder. Up until yesterday, I didn’t know this was a thing. Shame on me for not looking into it. So that’s what we’re going to cover in tonight’s post: taking some of what we learned from our first RTMP attempt and make the hardware do all the work. With any luck, we should see some real perf gains, possibly enough for live streams to start instantly (which would make web players happy).

Since I felt like including it here would deviate from the purpose of this post too much, I wrote up how to Add RTMP Support to Nginx if you installed it via apt-get like me. If you’re in that boat, take a moment to read over that post then come back to this one.

Setting up ffmpeg to use hardware H.264 encoding used to be a fat challenge, but they’ve since added support to the official codebase. If you followed my original ffmpeg post, you’ll have a recent enough version that includes this code, but we’ll still need to compile it.

What we’re looking for this time is the OpenMAX IL (Integration Layer) acceleration module.

[email protected]:/usr/src/ffmpeg $ sudo ./configure --enable-omx --enable-omx-rpisudo makesudo make install

That’ll take some time, as I’ve said before. You’ll have enough free time on your hands to get make something to eat. Come back in an hour or so and it should be done.

NOTE: If you run into ERROR: OpenMAX IL headers not found, then you’ll need to run

apt-get install libomxil-bellagio-dev

Thanks, lordofduct in the comments for that one!

From this point forward, we’ll be starting ffmpeg similarly to how we did it before but with a slightly different codec.

ffmpeg -i /dev/video0 -framerate 30 -video_size 720x404 -vcodec h264_omx -maxrate 768k -bufsize 8080k -vf "format=yuv420p" -g 60 -f flv rtmp://example.com:8081/hls/live

I confirmed VLC is able to play the stream, which is excellent, and there are no lag or jitter issues. It’s about 10-15 seconds behind live, which is totally fine.

I was able to set up an HTML5 player using tools from Bitmovin. I’m not entirely happy with this setup, though, as the player isn’t free and only HLS is supported, right now1. In my next post I’ll cover a new idea that came to mind when looking into the coolness of Ruby on Rails 5: WebSockets.

Update July 11, 2017: @HPGMiskin pointed out libomxil-bellagio-bin is not a thing. I’ve pulled that from the optional step for missing OpenMAX headers.

Johnathan Lyman
Kenmore, WA,
United States
 
blogging, design, technology, software, development, gaming, photography