Just one geek's opinions and epiphanies

Salting Random Crons


So you want to create a random cron, with Salt... here's how:

random-cron:
  cron.present:
    - name: /usr/bin/someCronScript
    - minute: {{ range(0,59,1)|random }}
    - hour: {{ range(0,23,1)|random }}

That lovely snippet will create a cron that runs daily at a random hour and random minute. They are statically added to the crontab, but they are assigned randomly.

What we have here is a declaration that runs cron.present and sets the parameters name, minute, and hour.

name is the line that is executed when the cron fires

minute is passed some jinja {{ range(0,59,1)|random }}

Let's break that down further. Inside the mustaches ({{) we use the range function range() which takes 3 parameters. The first is the starting number, here we have 0. The second is the ending number, we have 59. The third parameter is optional and takes the step of the range. We have selected 1, which is the default. This gives us a range of numbers from 0 to 59. Finally we pass that through the filter random, which picks one of the numbers are random.

We repeat this process for hour but with 0 through 23 for the hours of the day.

Finally cron.present will give us a * for the other cron times.

We are provided with (something similiar to) the following in our cron tab:

17 13 * * * /usr/bin/someCronScript

And that is how you assign a random cron time with Salt.

Moving On Up


The the northwest side...

Well things are changing around here. I have put in notice at Progrexion Marketing and I am heading to Seatlle to work for Zulily. The last year and a half have opened my eyes to the possibility of changing from a software developer to an infrastructure engineer, or DevOps guy.

Senior Infrastructure Engineer

I shall be known as a Senior Infrastructure Engineer at Zulily, which is fancy talk for Automation Engineer. Well, it entails a lot more than that... so it is kind of a great title.

Change in Venue

Zulily is based in downtown Seattle, WA. So the family is moving right on up to Washington. Monday the packers and movers come, Wednesday the cleaners, and then Thursday we clean carpet and head out. I am very excited.

Being in the heart of downtown Seattle is exciting. Pike's Market, the first ever Starbucks, EMC2, as well as plenty of other neighboring companies.

On to Better

I am not saying Washington is better than Utah, but I am saying we are changing more than just where we live. We plan to eat better, and be more active, in hopes of changing (for good) the habits and lifestyle we have grown accustomed to.

I can't wait to get this journey started... it is driving me nuts sitting around waiting.

My Geeky ToDo List


Every geek should keep a ToDo list, things they need to learn. My list is currently as follows:

  • Docker
  • Docker + Salt
  • Vagrant + Salt
  • Go (The Language)
  • Dart (The Language)
  • Linux Internals
  • More Python

Let me know what you are learning, and maybe we can work out some time to hack on these things together!

Google Interview #1


Today I had my first interview with Google. HOLY COW! I was more nervous than I needed to be, I think. I had to work through the problems given with the engineer on the phone, using a Google Doc. So they could literally see EVERYTHING I was typing, and hear everything I was thinking. Intense! I eventually made it through the process I think. I was asked to not share the questions I was asked, but trust me when I say that EVERY SysAdmin out there should know these things. There was nothing especially difficult, just the nerves throwing me off.

All in all, I can now officially say I have interview with Google, and that is a lot more than a lot of my peers can say. (take the wins you can, right?).

We'll see how Google felt about me in the coming days, because if I passed this round I will have one more phone/browser interview and then face-to-face interviews. Here's hoping I get to round two!

The Webventure!


So, unless you have been living under a rock, you have probably seen and heard about Chromebooks. They are these really cheap laptops... no netbooks, that basically house nothing more than a really light OS called ChromeOS, which is simply a Linux environment running Chromium. All the "Apps" are web apps, and everything you do (with a few caveats) is done online. Since their inception I have thought they would be very cool machines to use, except...

What about the developers?

I mean, seriously, Ballmer was right, things need to be developed for the "Developers, Developers, Developers!"

Making Chromebooks cheap, and making them available is one thing, but making them useful to the people like me who write the code the people who would use a Chromebook need, well that is another story.

Or is it?

The Plan

So my neighbor just got himself (and all his kids) Chromebooks. They have Samsung and Acer Chromebooks. No Pixel, or anything crazy.

The Chromebook Pixel is a Chromebook... but it costs $1300! Who do they think they are, Apple?!

Just simple everyday machines for doing everyday tasks. They all are currently using them for school. The kids for elementary homework, and him for college.

I played with his today, and it really got me going about the state of things.

I have played with Koding, and Codenvy, and I have seen some other great Web-base IDEs in the last few weeks. So the question comes down to, can you do it all without saving anything locally?

Can you develop a full blown service on a Chromebook.

Now, I don't have a Chromebook handy, but I can decide to use ONLY the web browser to complete the task at hand.

So I am setting out, I am going to only use services that are only available online to create a project.

The IDE

I have used Koding in the past, when they launched, and really enjoyed the experience. I will also use Codenvy, and maybe find a few newer ones to try out along the way. Of course, I will report my findings as I use each one.

I also plan to open source this project. Hopefully I will find some folks with a like mind who can help down the road.

Off I go!