/james-random

Random Musings.

Workshop April 26th & 27th: Introduction to Startup Prototyping for the Web

From Idea To WebApp

Have you ever had an idea for an app or website, but lack the skills to make a prototype?

Do you sometimes feel out of touch, disconnected or confused as to what your technical cofounder just tried to explain to you?

Has this ever caused problems later on, such as scope creep, missed deadlines, or creating the wrong feature?

This is a frequent and reoccurring problem in many companies, and one of the key factors why many startups fail to launch.

That is why I am proud to be offering a 1-day workshop aimed at bridging that gap.



You will be exposed to such topics, skills and tools as: – A application lifecycle, from idea, to testing, to the final, finished product. – The fundamentals of the Ruby programming language. – Test Driven Development – a method of producing well written, easy-to-maintain code. – User Stories and similar Agile methodologies. – Git and Source Control – How to manage your projects code and assets, and collaborate. – Ruby on Rails, a primer web development framework used by companies such as Shopify, 37 Signals, Groupon, and many others.

It’s an opportunity to learn how to think like a developer, and know how to take the next steps towards being able to build your own product.

Creation is the language that is spoken in most startup ecosystems, and so it makes sense that everyone should be able to lend a hand, build a quick little demo for an idea, etc.

As said by Noah of 37 Signals:

Before I could actually make things, I felt like an outsider – who was I to provide advice to these people who actually made things?

and also:

Rather than waiting for a developer to have time to help me, I could just do it myself … being part of a small company places a constraint on how much can be devoted to things that aren’t directly customer facing.

So, learning to create things is a arguably important skill for anyone in a startup.

Sign up on EventBrite today!

Location:

At the Shaker LaunchHouse, located at 3558 Lee Road, Shaker Heights, OH.


View Larger Map

Pricing:

As we’re sure you noticed, the prices are a bit steep. However, if you get in before the Early Bird tickets sell out, then you get $25.00 off the ticket price!

You are probably wondering, why are the prices so high? Well, lets do a bit of comparision.

Among the various companies out there that are teaching this type of material, the price for an event like this would be around $300-500, instead of the $200 we are asking.

It’s a steal, and we hope that you decide to attend and learn!

Who Is James Gifford?

James is the founder of Snowy Penguin Solutions LLC, a technology startup in the IT and technology education arena. He is a frequent open source software contributor, and is currently writing a book on a configuration tool called Puppet, as well as writing a book on Ruby on Rails.

Ask Ubuntu 2013 Moderator Election Results: Welcome New Moderators!

Every once in a while (which has been every year so far), Ask Ubuntu has a community moderator election, where you, the community, elect new moderators to help keep the site clean.

Yesterday, the Ask Ubuntu 2013 Moderator elections wrapped up – our 3 additional moderators are:

Luis Alvarado,

jokerdino,

And RolandiXor!

They join the existing team of moderators, who are very excited about the new group!

Congratulations to all, and keep up the good work!

Tricks of the Rails Development Trade Learned While Updating Applications

As I’m sure most of us are aware, Rails recently had some security holes brought to light and fixed.

These are my notes after upgrading about a dozen applications, many of them twice in the past month or two.

If you don’t have a solid batch of unit tests, then the odds of my spending any time on patching your open source project are nil. Well, not quite: I’ve done a few.

But seriously, with tests, my workflow looks something like this:

  • read README. Make note of any special dependencies, like elasticsearch or postgres in development.

  • git clone.

  • create new rvm gemset.

  • bundle install.

  • read through config/database.yml, change if needed to work with my setup. Changes are normally limited to things like the database name, the database user, password, etc.

  • rake db:create

  • rake db:migrate && rake db:seed && rake db:test:prepare

  • and then I run the tests – either rake test, rspec spec or rake spec. I’ve seen all three of them, and I’m sure I’ll see more variations as time goes on. Side note: For Rails applications, we should always alias rake test to the testing framework that is being used.

  • if the tests all pass before I upgrade, I upgrade with bundle update rails && rake test, if they don’t, then I try to make them pass (I normally can), but if I can’t, I and then update Rails, re-run the tests, and make sure they are either all green, or that there are no new failures. (No more than 5% of the tests can fail).

  • commit, submit a pull request, ping the maintainer on twitter after 24 hours if it isn’t merged.

Without tests:

  • git clone
  • bundle install
  • rake db:migrate
  • rails server
  • poke around in the browser.
  • update rails
  • spend my time going through weird stacktaces and weird errors, or worse, not knowing if I broke something.

Ew.

So, the take aways are:

  • Documentation on how to get a fully functional dev environment, having tests, and having the code on github.

  • Test suites rule.

  • Readable code is also important – there were a few situations where the tests were failing, and I had to go through and read the code to understand why, and it was surprisingly easy to debug these applications – I’m sure that the test-driven design was also a big part of it, but there was also a certain element of “this is readable code, I can understand this”.

Oh, and if you’re looking for someone to update your Rails applications with critical security fixes in the future, lets talk.

Nexus 7: A Worthy Tool for the System Administrator

The last day of August, 2012, I got a box in the mail. The contents? A 16GB Nexus 7. My first android device.

Since then, its been a fun ride, and I’ve learned the various cool tools out there for a IT person.

I do contract work with a nameless startup incubator in the area, and as part of that, I’m partially responsible for printers, user-facing documentation, etc.

As such, I was constantly plugging and unplugging my laptop to show people this, that or the other. however, the tablet has replaced my laptop for a lot of those duties. Let me explain more.

Documentation.

Like it or not, we all have to document things. And we have to do it well, for our intended audience. Now, we have two main pieces of user-facing documentation – the WiFi setup, and the printer setup. Two documents,one of which changes as we fix things (printers).

The Nexus 7 is just the right for me to pull of the document and refer to it as I’m working on someone’s machine. The apps I use for that are:

  • Dropbox. We use a shared dropbox folder to share the documents.

Now, to view them, I need a office type tool. While I could (and have) use Google drive, it doesn’t lend itself to the situation well.

I’ve looked at the softmaker line of products, but I haven’t been impressed with their linux offerings, so I’m not sure if I should risk the price for the full amount.

However, I am very happy with Kingston Office Writer.

It’s free, and available for Android here.

SSH.

The ConnectBot family is well-known and very well featured for being able to do SSH.

However, I’ve discovered that stock ConnectBot doesn’t play nice with function keys on bluetooth keyboards, so I am using a fork of ConnectBot called VX ConnectBot that properly supports external keyboards.

ConnectBot supports SSH keys, although I don’t make use of them – I don’t do enough SSH on my tablet to worry about that.

Notes.

Evernote. While I used to be a fan of Tomboy/Tomdroid/Ubuntu One, recent events have pushed me into the Evernote fold. And I must say, it’s nice. I’m using it to write this blog post right now.

I shell out the cash each month for Evernote Premium, and while I’m enjoying it so far, there are a few “problems” I have with it, but I also had them with Tomboy.

  • No Markdown support. Really, everything should support markdown.
  • Search sucks. Always has, always will. Someday someone will make search that doesn’t suck, but that day has not yet come.
  • inline image embedding. For this, that’d be really nice. But oh well.

PDF Viewer.

Amazon Kindle or the built-in PDF reader are my go-to PDF readers. They aren’t terrific, but they are ok.

Email.

Ahg. Email, the bane of every IT persons existence. Email is something I detest. People need to understand that when they email me, I will see it, and then prioritize it. I’m sad that people think that emailing me = instant response and I go and fix their problem. If you email someone, you should expect up to a 72 hour wait period before you get a response. If it’s that important, call me. The important people have my number, and the smart ones who might need to call me know where and how to find it.

Anyway, I use the excellent gmail app for my email. I have gmail filters setup server side that filter out mailing lists and similar things into gmail tags, so they never hit my inbox. I then have gmail setup to only send me a push notification if it’s in the priority inbox.

So, lets bits and pieces that don’t really fall into any category are:

More communication tools: Skype , Google Talk (no link that I could find in the Play Store) and for IRC, I’m a fan of AndChat. Google Voice is another good one, if you’re a Google Voice user, I highly recommend installing the application – while I still haven’t figured out how to make calls from my Nexus 7, for text messages, it works fine. Lastly, for those times that Skype is just being a pain in the rear, there is Google + Hangouts, which are pretty useful.

Web Browser

For choice of Browser, I have two installed. I have Chrome Beta, and I have Firefox. My main browser is Chrome, and I have Firefox for accessing all the internal sites that require self-signed SSL certificates. I much prefer Chromes tab setup, but Firefox is pretty fast.

Password management:

I’m cheap, remember? So I am a fan of keepass and Dropbox.

So I store my passwords in a Keepass2 (or KeepassX) database, synced to my Dropbox folder. On my Tablet, I use keepassdroid to access it, and it’s all hunky dory.

Other tools I’ve tried are:

  • Universal Password Manager. I can’t explain why, but something about it not being in the archive for Ubuntu just made me not want to deal with it.

  • LastPass. Only way to get the mobile apps is the give them money, and I’m not a fan of proprietary applications storing something like my passwords. At least in dropbox, everything is a file.

Todo list:

I use a combination of todo.txt and Wunderlist, but I’m not entirely sure how well it’s working. Ask me in a few months.

So, that’s my list of tools. What is in your toolbox?