Design your own Entry-Level Developer – Which CS Electives Should I Choose?

Imagine that you knew someone who was going to graduate with their Computer Science Bachelor’s Degree in the spring of 2018 (*waves*). Now imagine you could help choose which Computer Science elective courses they chose (*waves and jumps*). What courses would you choose?

This fall I need to choose 2 Computer Science elective courses to complete my degree. I looked through the Regis University course catalog and found 18 electives that I could choose from. I was pretty excited at my choices. Since I only need 2 courses, I decided to narrow my choices down to 4 courses. I new there were likely going to be unavailable courses as well as changes to the Regis University course catalog. I chose:

Object-Oriented Programming using C++

Mobile and Enterprise Programming

Web and Database Programming

Enterprise Software Development

Then I emailed my advisor to see what was available. Reality and availability are cruel things. None of the courses I chose are available this fall. My options this fall are…

Computer Systems Security OR Database Management

THEN

UNIX Operating Systems OR Artificial Intelligence

Let’s take a look at how I feel about these courses to see if I can make up my mind…

Computer Systems Security

Everyone would like a security-minded entry-level developer, right? Having a background in the military and law enforcement I’m all for making sure the applications I create are secure. However that’s where my interest ends. I want to be a software developer, not an IT technician.

Database Management

I feel like I still remember much of what I learned about databases when I went to Westwood College. I like looking at the design of databases. This course would honestly be easier for me than the Computer Security course and I feel like I would get more out of it. OK, I convinced me. I’m signing up for this course.

UNIX Operating Systems

I have taught myself how to use UNIX at least 4 times in the past 15 years. I even used Ubuntu as my primary operating system for a while before my appetite for games and college courses convinced me to move back into the Windows universe so this would be a fairly easy course for me. This course is taught by the same instructor who taught one of my first CS courses at Regis so it would be nice to have my last CS course with her. However I think the best way to learn UNIX is the same way to learn any OS and that is by just using it consistently.

Artificial Intelligence

If you’ve paid attention at all to technology news in the past 5 years, artificial intelligence (AI) is one of the premier buzzwords being used. AI and machine learning are credited for systems like Alexa and Siri and chatbots and, of course, the imminent takeover of the world by robots. Do I want to be one of the people who is ultimately responsible for the rise of our robot overlords? Well when I put it like that, how can i say “no”? Seriously though, it sounds more challenging, and fun, than a UNIX course and the applications for AI are fun and constantly growing.

So after talking to myself, I’ve decided I’d like to take the Database Management and Artificial Intelligence courses. What do you think of my choices?

Go Code Colorado 2017 Kick-Off showcases the tech startup community

Wednesday, February 1st was the Kick-Off for the 2017 Go Code Colorado Challenge at Galvanize in Denver. I went because I might like the idea of participating again, but I mainly went because I like what the Go Code Colorado Challenge says about the Colorado technology community.

Before the kick-off event, Scott Yates hosted a panel of technology and entrepreneur advocates from around Colorado to talk about the Colorado technology community. The panel included Andrea Young, CEO of the Colorado Technology Association, Josh Hudnall, co-founder and co-director of LAUNCH West CO in Grand Junction, Jim Mackay, Cofounder of Scape in Durango, Jon Wilker, founder of Ignite Denver and 360Conferences in Denver, Aari Loftipour, CEO of Jalapeno Inventive in Fort Collins and Michelle Parvinrough, Executive Director of Peak Startup in Colorado Springs.

I will tell anyone repeatedly that if you are involved in Colorado tech startups you are part of a community more than you are part of an industry. It was great to hear this sentiment from the panel. Our supportive community is what makes people want to stay involved. The mountains and the craft beers and the “Colorado lifestyle” are great, but it’s the fact that those involved in the Colorado tech community enjoy working and working together that keeps us here. We’re still competitive, but we’re supportive.

The Go Code Colorado Challenge reflects this ideal. It’s definitely a competition. Each of the 3 finalist team gets $25,000 to keep their app idea going but, like the Colorado tech community, it’s not a cutthroat competition. It is a fun, challenging way to stretch your tech and entrepreneurial muscles and you get the chance to win $25,000 and all you have to do is show up.

About the 2017 Go Code Colorado Challenge

(Re)learning Linux with Lynda and VirtualBox

Last week I had my first phone interview for a job in software development. It was for a DevOps position that required comfort with git, continuous integration, CentOS and the yum package manager. I was 2 for 4. I can use git. I am familiar with continuous integration but my Linux knowledge was admittedly rusty. In 2003 I ordered my laptop with Ubuntu as the OS so I had used Linux before but it has been a long time. I eventually had to switch the OS to Windows so I could complete my college schoolwork.

This meant I could not be considered for the job because the job requires the candidate to be able to navigate CentOS easily. So what does a motivated, internet-enabled self-learner do? I go learn about CentOS!

Resource List

My main computer is my Windows 10 laptop so I needed a few things in order to re-learn Linux…

  • Oracle VM VirtualBox – “I hear you like computers, so I put a computer in your computer.” This allowed me to have a Linux computer to work in without needing a separate physical computer.
  • CentOS operating system – I was able to easily download an ISO of CentOS and install it on my virtual machine.
  • Git Bash – This allowed me to treat my CentOS VM as if it was another computer on a network and connect to it via SSH.
  • Up and Running with CentOS – Lynda.com – I found a great tutorial on Lynda.com, so I signed up for their free 10 day trial. This tutorial was easy to follow even with rusty Linux knowledge. It helped me get familiar with the basics of CentOS, Linux, SSH, yum and vi.
  • (Optional Resource) Amazon Web Services – Pretending that my VM was actually on a network made things even more unnecessarily complicated sometimes so I learned how to set up an AWS instance with CentOS to complete the CentOS tutorial.

After I completed the CentOS tutorial, I felt OK with my CentOS knowledge but not comfortable enough so I needed more practice. Since I still have time in my free 10 day Lynda.com trial I decided to check out the Become a Programmer learning path to get more familiar with CentOS, Linux in general and vi specifically. The learning path explores simple programming concepts and gave me an opportunity to use vi. I found this great vi cheat sheet (PDF) and got to work.

Unnecessarily Complicated JavaScripting

The Becoming a Programmer learning path only requires an HTML file and a JavaScript file but I’m not doing this to learn JavaScript or basic programming, I’m doing this to learn how to use Linux and vi so here’s my setup:

learningLinux

I have Lynda.com up in my browser on my laptop (left side of screen). I have a VM running CentOS after I used the yum package manager to install the GNOME desktop (lower right corner of my screen). Then to make it more complicated I am using GIt Bash to connect to my VM using SSH so I can use vi as my editor for the tutorial (upper right corner or screen). All this just to type some simple JavaScript. Crazy!

My plan is to use vi in my CentOS virtual machine as my code editor for a while to get comfortable with it, then in about a month I will check to see if that DevOps position, or a similar position, is available. Wish me luck!

If you have any issues or ideas with the resources I shared, let me know. I would love to talk about them. Sometimes being an online-learner can be lonely.

Sphero Android App Reviews

My dream job is to be a Software Engineer at Sphero, so after getting some advice on where to start I have decided to make my own Sphero app. First comes the fun part though. It’s time to play and see what this little round thing can do.  There are 56 Sphero apps in the Android App store. Let’s see what most of them can do.

If you see a Sphero app in the Google Play Store that is not listed here it’s one of the more in depth apps like SPRK Lightning Lab, orbBasic for Sphero or Tynker which will be covered in a later post.

Overall, the biggest thing missing in most Sphero apps is a Sleep Sphero option. Most Sphero apps created by publishers other than Sphero  feel like “Hey let’s try this out” kind of apps.

Reviews

 

Apps I did not review and reasons why

  • Ollie for Sphero – I don’t have an Ollie….yet.
  • Sphero Horse – I don’t know anyone else with a Sphero
  • Astro Ball – App could not find the Sphero
  • Sphero (Device Web API Plug-in) – The app text is in Japanese
  • Spheromon – I don’t know anyone else with a Sphero
  • Sphero SmartWatch Control – I do not have a Sony SmartWatch
  • Dark Nebula HD – Episode Two – App could not find the Sphero
  • Sphero Remote for SmartWatch 2 – I do not have a SOny SmartWatch
  • FreeFlight 3 – I do not have a drone
  • Driving – I have no idea how this app is included in my search. It has nothing to do with Sphero
  • Snow Globe Sphero – App didn’t open.
  • MobBob – The app description only mentions Sphero because publisher also made a Sphero app.
  • Sphero Meter – App could not find the Sphero
  • Doodle Grub – Twisted Snake – It says it was updated to allow Sphero control, but I don’t see it.
  • Sphero Turf Research – I’m not paying $200 for a Sphero app even if I can get a refund.
  • Myo Sphero Control – I do not own a Myo motion control armband
  • GYRO – I don’t know why this is in my search results. It does not have Sphero support… but if it did it would be cool.
  • PopPet the Robot – Only mentions Sphero cuz of the publishers previous Sphero app.
  • Ball Travel Zero Gravity – There is a ball in the game, but no Sphero support.
  • H-O-R-S-E for Sphero – App could not find the Sphero
  • Sphormos – Not compatible with Sphero 2
  • ClaptrAPP – Has nothing to do with Sphero
  • BB8-RA – I don’t have a Google Cardboard
  • SpheroLabyrinth – App could not find the Sphero
  • Contact Lense Calculator – Included in my search because description includes the word “sphero-cylinder”.
  • Robot Run Madness – This game has a spheroid robot in it, no Sphero support.

Sphero (By Sphero)

The main Sphero app is solid. Brent Spiner (Data from ST: TNG) is the voice for the app. When you first run the app, you get a little cartoon explaining the world that Sphero is from to describe the games. The “Connect to Sphero” screen gives up on finding a Sphero quickly even when a Sphero is connected to the phone.

The main menu shows content behind the options with a “Learn more” button that takes users to an internet browser. You can’t scroll through the content though. There’s an info button and a little Sphero button in the corner which sets the ball off on a little demo. There is also a “Play” button to play the game, another Sphero button that sends the user to the app store to get more apps published by Sphero which is very cool. And a bar graph button that shows you stats about your Sphero.

I like the placement of the back buttons in the upper left of the screen.

There’s a ton of information on the main control screen but Sphero does a good job with tool tips to explain all the things. One thing about the tool tips though, if users could tap anywhere on the screen to remove the tool tips instead of having to tap “OK”, it would be better.

Let’s break down the main control screen into 2 sides, left and right. The left side has the large circular control pad. Place your finger on the direction icon and move that around to move the Sphero around. Then we have all the things around the control pad.

Starting at the left side of the circle is a painting palette. Tapping the palette allows the user to change the colors of the LEDs on the Sphero.

Moving clockwise around the control pad, we then come to the Level/XP display that shows users the Sphero’s level and experience needed to reach the next level.

Then there’s a phone icon with 2 arrows. This allows users to control the Sphero by tilting their phones. I’ve found I have much more control over the Sphero with this control.

To the right of that icon is a gear surrounding the Sphero. This sends users to the Settings menu. The settings menu allows users to see the Sphero’s MAC address and software and firmware versions. They can also turn sound on and off, see the navigation tutorial again, see the cartoon again and put the Sphero to sleep. Users can also change the colors of the buttons in the app between green and blue and switch the location of the control pad from left to right. There is also a “Redeem” button to allow users to redeem codes for… something.

Outside of the gear icon is the Core info button. In the story of Sphero, it needs to collect Cores to trade in for new tricks. Tapping this sends the user to the Core Exchange to spend Cores on new tricks.

Directly below that is the Mission panel which shows users how many available missions they can accomplish. Tapping the panel ends the user to the Select Mission screen to choose a mission to earn more cores and experience.

Below the Missions panel and just outside the circle is the Supply Drop button. Supply drops are special missions to collect cores.

Then at the bottom of the control pad is a panel with a turtle and hare to set the Sphero’s top speed. Users must tap the turtle to lower the speed and tap the hare to increase the top speed.

Then the last button around the control pad is the Aim button. Pressing and holding the button allows users to aim the Sphero to make it easier to control.

Away from the control pad are 2 buttons. The Boost button gives Sphero a jolt of speed. Then there’s the Trick Panel. The large button shows the current selected trick to perform when pressed and underneath is an arrow that allows users to rotate through available tricks. I would like an easier way to select tricks though.

The app is fun and cute, just what you’d expect from the Sphero. I really like the round theme of the controls. It makes it intuitive.

Back to top…

Sphero Multi Drive (by Sphero)

This app allows users to drive the Sphero. That’s it. The main control pad is in the middle of the screen with 2 boost buttons. There is a rectangle at the top that allows users to change the LED color on the Sphero. It allows users to select 2 colors, but I’m not sure why. The control pad works like the control pad in the main app. There are also 2 “boost” buttons to allow users to give Sphero a speed boost.

In the upper left of the screen is a menu button that lets users view settings, a guide and the aim tutorial again. There is also an Aim button which unfortunately looks like a power button. Aiming is done by placing 2 fingers in the screen and twisting which is a bit awkward. I like the aiming in the Sphero app better.

In the upper right of the screen is a button with a circle in it. It allows users to select the top speed with 3 different presets: Cautious, Comfy and Crazy. Good alliteration! There is also the Control Type button. This button allows users to select how to control the Sphero. The default setting is Joystick which is just like the control app in the Sphero App. There’s also Tilt where users can control the Sphero by tilting their phones and RC that has a throttle and a steering icon to treat the Sphero like a remote controlled car.

It’s a simple app to simply drive the Sphero. The color selector could use a label, the Aim button looks too much like a power button and the control type button crashed my app a few times. There are also times the user must use the physical back button on the phone to go back in menus. There should be back buttons on each screen. This app has a lot less character than the Sphero app but that works with its simple use.

Back to top…

Sphero Draw N’Drive (by Sphero)

I was excited to try this app because drawing a path for the Sphero to follow sounds like fun. The app was a little bit of a disappointment though. Where the Sphero app had a good tutorial and tool tips, this app has none of those things. There is also no sense of scale from the app to real life. I don’t have a ton of room in my home so I have to draw tiny lines in the app for it to work in my home. It will probably be a lot more fun in a larger space.

The control screen looks like grid paper with a color wheel surrounded by a Play button, an Aim button, a speed panel and an odd looking roundish button. The color wheel lets users select the color of the line they draw on the grid which corresponds to the color of the LEDs on the Sphero. Aim works just like in the Sphero app. The speed panel looks like the Sphero App speed panel but users must touch where they want their speed which is a little tough. The play button sets the Sphero on the path the user draws. The weird roundish button is a tab that allows the user to hide the panel to make it easier to draw.

Things that would make this app really cool:

  • A sense of scale and ability to zoom on the app.
  • Instructions. Any instructions. You shake the phone to erase your drawing. I learned that from the app store. That should be in the app.

I’ll have to try out this app in a bigger space before I decide not to use it.

Back to top…

Sphero Golf (by Sphero)

I was excited to try this app too. It could probably use a little more instruction but it’s golf so it’s fairly straightforward. There is a tutorial but all it says is to place a physical object on the ground to act as the hole (cups, corners of the room, frisbees, cats). Although the User Guide in the Menu is great for more instruction!

There are 3 clubs, the Driver which goes up to 12 feet, the Iron which goes up to 7 feet and the putter that goes up to 5 feet. This fits into that sense of scale that bothered me in the Draw N’Drive app.

There are 2 ways to “swing” your club. You can flick the Sphero on the screen to hit the ball or use a slider at the bottom right of the screen to switch to Swing Mode. Swing Mode allows the user to hold their phone upside down as if it was a golf club and swing. The instructions for swinging are great although it would be nice to be able to turn them off once you have the hang of it.

Users can keep score of their hole in the upper right corner of the screen and use the slider at the top of the screen to complete the hole and reset the score to zero for the next hole.

Overall this was one of the more intuitive apps. The only thing that wasn’t very obvious was the power meter on the right side of the flick mode which is great once you figure out how to use it. Some cool additions to this app could be course ideas to help users set up their own golf course and score keeping for multiple players and multiple holes.

Back to top…

Sphero Cam (by Sphero)

This app is basically the Sphero Multi Driver app on top of a camera app. Users can drive the Sphero while recording a video or taking a picture. There is also a settings icon to allow users to change the Sphero’s color, change speed and sound and the position of the joystick on the screen. When I tried it, it seemed the only way to view a video after recording was to exit the app and go to my gallery. Some great additions to this app would be the ability to do tricks from the Sphero app as well as an in-app gallery of videos and photos to share. It’s a good basic app to give users ideas.

Back to top…

Sphero ColorGrab (by Sphero)

This is the first non-rolling game I found for Sphero and it’s pretty fun. It’s a multiplayer game where players have to pick up the Sphero when it turns the correct color. Players score more points for picking it up quickly and score no points for picking it up during the wrong color.

The intro screen does a good job explaining the game but it took me a few times of playing it to realize that I was able to change the number of players, the point goal and the difficulty. The playing screen is pretty easy. It shows player scores and a countdown to the next round.

The game is themed around a weird bunny character who mumbles and really likes cookies. It’s like the Trix rabbit on cookie crack. The character rides the line between silly and annoying. it’s a fun, simple game.

Back to top…

Sphero Nyan Cat Space Party (by Sphero)

What the hell is a Nyan Cat? It’s a cute weird cat made by a comic artist and made popular by a Japanese pop culture song. So, you know, it’s something that could only come from the internet.

This app is the only game that doesn’t require a Sphero, but using the Sphero makes it awesomer. The game is a weird internet baby that comes from combining the old Asteroid game with Nyan Cat. Like the Color Grab game, it is not a rolling game. The Sphero is the player’s controller they use to control the Nyan Cat on the phone’s screen. Tilting and rotation the Sphero affects the Nyan Cat. It’s a lot like the old Centipede arcade games with the ball set in the arcade machine.

So Sphero Nyan Cat Space Party = Asteroid + Nyan Cat + Centipede + Sphero.

Back to top…

Sphero Alive (by Dynamic Upgrade)

This is the first Sphero app I tested that is not made by Sphero. It is also the first non-interactive Sphero app. Once it connects, the user presses “Start.” The Sphero moves in random directions and shows the directions on the screen. It stops once the user presses “Stop.” That’s all this app does. The user can also select “Remove Ads” to buy the app for $1.56 but I don’t know why anyone would want to. This app is lame.

Back to top…

Exile (by Sphero)

This is the Nyan Cat Space Party without the Nyan Cat. The controls are the same. The tutorials are the same. The game is the same. The only difference is the sprites and the sounds. It was a more enjoyable game than the Nyan Cat Space Party because Nyan Cat gets REALLY old after about 20 seconds.

Back to top…

Sphero Joystick (by zng)

This app overlays a Sphero joystick on top of whatever you’re using on you’re phone. You can change the color of the sphero, aim it and move the joystick on your screen. At first I wasn’t sure why you would want such a thing but as I played with it, I got some ideas. By using this app and the camera on your phone you can do the same thing as the Sphero Cam app. However this app allows you to use the Sphero with other apps. For example, I was able to post a Periscope video while controlling Sphero and even tried out the Facebook live streaming functionality. Cool stuff!

Back to top…

The Rolling Dead (by Sphero)

This is an alternate reality game in that the game is played while looking through the phone’s camera. The app detects where the Sphero is on the screen and zombies show up trying to attack the Sphero. The user then drives the Sphero around using a control pad in the lower right corner of the screen. It’s a cute game but it seems to be very resource intensive. The game often crashed on me using my Samsung S5. I’m curious to try it out on a newer phone to see if it works better there. It is fun to see zombies walking around my house in the game though.

Back to top…

Sphero Companion (by cevinius)

This feels like a first attempt to use voice commands to interact with the Sphero. The app has a control pad, an aim button, a help button and a listen button. The control pad and aim button work as expected. The help button gives the user some example phrases to use and those work well. I found I had to double tap the Listen button to get the app to listen to me. The app promises that more phrases work than the ones listen but trying to figure those out are frustrating. Also frustrating is when the user ignores the app, it says “I’m bored. Do you want to play a game?” but when I reply “Yes” it doesn’t seem to understand. This app feels almost like a “Hello World” app for voice commands. It shows promise, but that’s it.

Back to top…

Sphero Sleep (by LifeFree)

Sometimes when you close your Sphero app, the Sphero sits and blinks at you waiting to be connected again. The only way it make it sleep is to put it in the charging station, ignore it til it stops or open a Sphero app and find the sleep button which is usually hidden 3-deep in a settings menu. This app makes it quick and easy to put your Sphero in sleep mode. Just open the app and, after connecting and changing colors, the Sphero goes to sleep and the app closes. Easy, simple and useful.

Back to top…

Sphero Alarm (by pacosal)

The basic premise is to use your Sphero as an alarm clock. Sounds kinda neat but I don’t like the idea of needing to have the Sphero constantly connected to the phone via bluetooth for it to work. I set the alarm and when it was activated the Sphero slowly glowed white, brighter and brighter. After a while it changes colors in an attempt to get your attention. It stops being bright when the user presses the “Stop Alarm” pulsing button on the phone. This app could be ok if it made noise or moved the Sphero slightly to make it make noise. A snooze button would also be nice. This app makes me think of possibilities for Sphero to do things about accessibility. It makes me wonder if I would like this as an alarm clock if I were deaf.

Back to top…

CrazyCats (by LifeFree)

This would be lots of fun if my cat cared at all about the Sphero. I really like the set up of this app. All the functionality is on one screen which is nice although I didn’t realize I could scroll down until I looked at the screenshots in the app store. I’m a fan of the “Go if Sphero is touched” section of moves. I could see that being entertaining to watch with pets… and people. I also like that the Sphero Sleep button is at the top of the screen which easily allows me to put the Sphero to sleep before exiting the app. my only concern is the warning users get when first opening the app. It mentions that the moves are not good for the Sphero if done for more than 30 minutes. I wonder what that is about. I can’t contact the developer though because their site isn’t working. Maybe I’ll ask Sphero.

Back to top…

Disc Groove for Sphero (by Alex Swan)

This is a very cool and unique take on using the Sphero as a controller. In the app there is a disc with 3 gems on it and meteors that fly at the disc. The object is to rotate the disc using the Sphero to keep the gems from being hit by the meteors. It’s a really cool game play mechanic! I’d like to see more game around it though. It doesn’t have a menu or levels or anything else besides the game play which makes sense since Alex said it’s their first published game.

Back to top…

Sphero Music (by TheMDP LLC)

This is the first paid Sphero app I’ve tried so my expectations were higher. It’s a sound visualizer app that changes colors and flickers with different sounds. It listens to sounds using the phone’s microphone. I would like it a lot better if it just went off of sounds made from apps on the phone. I would also like it better if I could drive the Sphero while it visualized the music. There is also an option to have the Sphero “dance” to pre-programmed routines for 2 songs. It’s nothing special. The app promises more dancing songs but since the last update was in 2014, I’m not holding my breath.

Back to top…

Sphero Robot Controller (by John Li)

This is another paid app. It allows the user to control the Sphero from a very rudimentary control on the phone OR control it using a Pebble Watch or Android Watch. It just so happens that I have a Pebble Watch so I decided to give it a try. The watch gives the user a menu of commands: Forward, Backward (which is really “turn around”), Left, Right, Change colors, Connect, Disconnect and Sleep. It’s one of those apps that makes a user think “Neat. I can control this from my watch. What else can it do?” Not worth $1.99.

Back to top…

Sphero Lights (by Moobile Lab, Inc.)

I like this app. At first I didn’t think I would be impressed but it does exactly what it advertises and it does it well, except for the Disco Light. The Disco Light doesn’t work that well. I like the Color Light option that changes the color of the Sphero at a certain interval. I could see me setting the Sphero on my desk with the Color Light option going. The Night Light is just a light. The Strobe Light is more fun that the strobe function in the main Sphero app and the Morse Code function is a great novelty.

Back to top…

Drive & Draw (by Irtaza)

This app is the exact opposite of the Sphero Draw N’Drive. Instead of making a drawing to drive the Sphero, the user drives the Sphero to make a drawing. It’s a decent First Sphero App but it could use some more features like allowing the user to drive the sphero in an arc or change colors in the drawing would be really nice and make this app feel more complete.

Back to top…

Last Fish (by Pyrosphere)

This is probably the most recent Sphero-related app I have reviewed so far. it was last updated in January. It’s another Sphero-as-a-controller game. you use the Sphero to control the fish in the game. White orbs are good. Black orbs are bad. It’s a simple game concept with a cool theme and atmosphere.

Back to top…

BB-8 Lamp (by lamandu)

Granted this is an app for a BB-8, not a Sphero specifically but I’ll include it anyway since we have a BB-8. It allows you to make your BB-8 blink or show different colored lights. That’s it. It’s a well done app that doesn’t do much.

Back to top…

Sphero Says (by JonCo)

This is another non-rolling game. It plays like Simon. The Sphero blinks pattern of colors and the player repeats the pattern on the phone’s screen. It’s a neat simple idea. The app could be better done. It’s a little too simple of a UI. Looks like something I would make.

Back to top…

BioLighter (by VS Mobile Solutions)

It’s the Last Fish game, but different and it doesn’t connect to the Sphero and ads interrupt things and don’t do this.

My Hackathon Flame-Out And How To Avoid One

Definition of a hackathon flame-out: A hackathon flame-out occurs when a participant gets so frustrated and discouraged that they leave the hackathon before it ends.

This weekend I took time off of work to participate in the Pebble Rocks Boulder Hackathon. The hackathon is described as

on-whiteseventy-five bold designers, developers, and makers will use Pebble Time smartwatches, Lulzbot 3D printers, and their own wits to create something physical, something new, something kickass.

I was invited to cover the hackathon for my blog by Viget but decided to be bold and participate in the hackathon. This was my first mistake. I signed up solo and planned on joining a team when I got there. This was my second mistake. I ended up on a very disorganized team with very high expectations led by a guy that I didn’t trust. Here’s how I ended up experiencing the hackathon:

Seventy-five bold designers, developers, and makers will create a device (hardware hacking) that connects to the Pebble’s Smartstrap port (low-level programming) to interact with a Pebble app (C programming) that can be configured with a mobile app (Java programming) and receive info from an API (JavaScript, HTTP, JSON).

7fd2d5300f521969b4bc52cecb23eb9dA computer science student with social anxiety from being introverted will combine impostor syndrome with strangers and spend 2.5 days working on something completely new with technology he’s never used with people he has never met.

Instead of a a fun hackathon, I felt like I was participating in a torturous Computer Science capstone project. No wonder I had a flame-out!

Now, let me make this clear. I in no way place any blame on the organizers of the hackathon. They were all very approachable, friendly and knowledgeable. They used the resources of Galvanize Boulder very well and were very supportive. I would have had a blast if I had done this right.

Here are a few tips to make sure you do not experience a hackathon-flameout at a weekend hackathon:

  • DO NOT go alone. There will be some point during the hackathon that you will feel like a failure. By going with a friend, you’ll have someone there to support you and when they do you’ll believe them.
  • DO NOT go to a hackathon to learn brand new things. Go to confirm what you do know. 2.5 days to learn something brand new then make something you want to show to strangers is way too much pressure.
  • DO make sure you are comfortable with creating an answer to the basic question of the hackathon. Does the hackathon ask you to create a mobile app? Make sure you can create a mobile app. Does the hackathon ask you to create hardware? Make sure you can create hardware.
  • DO make sure you’re comfortable with your team. At some point you will need help. Make sure you are comfortable asking for help from your teammates.
  • DO rest. Just because you are allowed to work all night for two nights does not mean you need to work all night. Getting sleep will allow you to work through issues much easier.

If you have any tips on avoiding a hackathon flame-out I would love to hear them and pass them along. I think I’ll be done with hackathons for a while though.

What I’ve learned about the Colorado tech community after Year 2 of CTW

funny-learning-experience-cat-stalking-hedgehog-pics

2 years ago, on June 16, I posted my first Colorado Tech Weekly. A year ago I reflected on what I learned so I figured since I’m still going and the last reflection was fun I’d do it again.

5 things I’ve learned in no particular order

  • You need style AND substance to succeed – Colorado is a tech startup hub and opportunities for growth and new businesses are everywhere. To succeed, you need style. You need marketing, PR and a supportive and fervent community of fans. However this is not enough. The successful companies are the ones that also have solid products and services. Without both, your startup will not succeed here.
  • A good idea does not guarantee success – This follows up on my first point. Last year I lamented how Twitter may not have been the best way to keep track of Colorado technology companies since I can only follow 2,001. I found a way to cull my following list to accounts that are only active and while doing that I have found plenty of Twitter accounts for tech companies that no longer exist. They were good ideas, but they just didn’t work out.
  • There’s a huge difference between writing code and making apps – Taking the college education route I’ve learned a lot about programming theory, data structures and how to write code. Making an app, whether that means a web app, mobile app or any other software, is a whole other animal. It requires more than just writing code.
  • Colorado Tech journalism is getting better – When I first started Colorado Tech Weekly I posted 5 national news stories and 5 Colorado news stories because I was concerned that I wouldn’t be able to find enough Colorado news stories. Now every week I sort through 70-100 articles to get it down to the 10 articles I post. It can be very overwhelming, and that is awesome.
  • Building is fun. Maintaining is harder. – Startups are fun because they’re new and exciting! It’s hard work, but you get to experiment with new ways of doing things and try new ideas. It’s when you get something set up that the maintenance starts. Whether it’s starting a company, owning a home or writing a weekly newsletter, it’s the maintenance that makes the difference.

Numbers:

  • My site receives around 1,000 visits per month. About 125 of those come from Colorado.
  • 2,435 Twitter accounts listed in my Colorado Tech list with 34 people subscribed to it. That’s almost 1,000 more on the list than last year.
  • I am subscribed to 221 Colorado tech news sources including news sites and company websites as well as blogs written by local developers and organizations.

Top 5 Colorado Tech Weekly posts in the past year:

  1. Colorado Tech Weekly #71: Aggregating the Aggregations
  2. Colorado Tech Weekly #95: GoCodeColorado and More Security News
  3. Colorado Tech Weekly #63: A meme, some money and my school
  4. Colorado Tech Weekly #99: Is Colorado the best place for women in tech?
  5. Colorado Tech Weekly #94: All About Denver, Security and Maybe Even Google Fiber?

Top 5 most mentioned companies:

  1. Zayo Group
  2. LogRhythm
  3. QuickLeft
  4. Level 3
  5. Wayin

Where do I go from here?

  • I said it last year and I’ll say it again now, I will be better at posting project updates and general blog posts. Half the reason I started my CTW posts was to drive smart people like you to my site so you can see what cool things I am up to.
  • Let’s revamp the site! As much as I enjoy back-end web development I need to know some front-end web development to show off my projects. Like I said when I tried to teach myself UX, if I want people to use the apps I make, I need to make them easy to use. So why not practice where it counts?
  • Site Maintenance: I need to kick the tires, check the oil and replace the gaskets on this site. I need to make sure my content matches who I am and that it’s easy to read.

Thanks a ton for reading! I keep trying to tell myself that I write these blog posts for my benefit and it’s just an extra bonus that other people might read them but it’s really nice to know people do read them. Let’s do this again in a year!

Playing with the Twitter API for the first time

twitter-api-developers-featured

With Christmas break in between my classes at Regis, I decided to do a little more playing on my own. I’ve decided to poke at the Twitter REST API since I use Twitter a ton and have some issues with how it works. Creating my own app that references the Twitter API can solve my problems If I can figure out how to use it.

My Twitter issues have to do with the “Twitter ceiling”, a magical ratio that gets to decide how many people we get to follow. I’ve had my Twitter account since 2008, so I’ve followed a ton of people for various reasons. Lately I have been using Twitter to follow people involved in the Colorado tech community and there’s a LOT of people involved in the Colorado tech community. Since I’m at the ceiling of following 2001 accounts I need a way to manage the accounts that I’m following. I’ve started using lists for different types of accounts. I have an Avalanche list for Avalanche fans, a News list for local breaking news reporters and a Colorado Tech list to keep up with the people I want to follow on Twitter when I can’t just follow them. It’s a messy way to organize since Twitter doesn’t seem to place a lot of importance on lists. So here are my 2 solutions to my problem:

  • Stop following dormant accounts – I bet there’s an account I followed 3 years ago who hasn’t said anything in 2 years but the account hasn’t closed. There’s no point in following someone who doesn’t say anything. I will make an app to show me the dormant accounts that I’m following.
  • Better manage my lists – I like using lists in Twitter. Sometimes it’s the only thing that tells me why I’m following an account. If I’m following an account and I don’t have that account in a list it either means I’m not interested in that account anymore or it hasn’t said anything. By finding out which accounts are in which lists I can better manage them. I will make an app to show me which accounts are in which lists and whether or not I am following those accounts.

The entire reason I started learning Ruby was because of the Twitter API tutorial on Codecademy which is a pretty damn awesome tutorial. It tells you all about RESTful APIs, http requests and responses before even touching Twitter. These are some super important things to know when using APIs. I’ll be writing a post about those things shortly just for reference.

Anyway I went back to that tutorial, copied some of the code from one of the examples and started squishing code around to find out which accounts I’m following have gone dormant. Version 1 will just be a Ruby command-line app that shows the username and date of last tweet for accounts that haven’t tweeted in over a month. I’m better at making things work than making things easy to use. Here’s where I’m at so far…

  • Rate limits are unforgiving. I made a loop that made requests of the Twitter API on each iteration, but forgot to exit the loop. I had to wait 15 minutes to try again.
  • Authentication is confusing. Tokens baffle me. I need to get more comfortable with this.
  • I’ve hit a wall (which is why I’m blogging right now and not coding).  I’m using the GET friends/list functionality of the API. It tells me it returns “pages” of results that can have up to 200 users per page. I’ve learned how to use cursors to retrieve the next “page” but for some reason no matter how many users I request per “page” I only get 45 total users before Ruby gets mad at me for attempting to call a method on a nil object which confuses me.
    • I wonder if my weird 45 user limit has to do with my misunderstanding of OAuth.
    • Maybe I should try using the GET friends/ids part of the API, but I’m not sold on this idea. I’d rather get the whole friend object instead of just ids.

Now that I’ve typed through my wall, I’m gonna go back to squishing code. If you know what I’m doing wrong, please let me know.

Let’s teach people how to make apps, not just write code

comics-software-development-485346

Monday starts the 2014 Denver Startup Week, a week to celebrate and encourage tech startups in and around Denver. This makes now a perfect time for me to rant about how software development is taught. We need to shift our focus from “How to write code” to “How to make an app”.

I have an Associate’s Degree in Programming and I’m currently pursuing a BS in Computer Science from Regis University. I’ve learned how to use control structures, data structures, variables, recursion, classes, functions, methods, inheritance and all that fun coding stuff. When I received my degree I was ready to show off my knowledge with my own projects, but I quickly realized that while I knew how to program, I didn’t know how to create a programming project.

New programmers, whether we are self-taught through online resources or we go to a college or school, should know about the software development life cycle (SDLC). The 6 basic stages of the life cycle are:

  • Requirements Analysis: Finding out what users want
  • System Design: Figuring out how to make the system do what the users want.
  • Implementation: Actually writing code.
  • Testing: Making sure the code actually works.
  • Deployment: Letting users use your system.
  • Maintenance: Fixing bugs and adding features.

How you work through these stages and what order you go in depends on what kind of project management model you use which is a whole other ball of wax, but it’s important for us newbies to know that coding is just a part of the software development process.

Programmers who know how to write code, but don’t know about the SDLC are like authors who know how to create sentences and paragraphs, but don’t know how to create a book. They’re like amateur woodworkers who know how to use a hammer, a square and a ruler but don’t know how to draw up plans for a simple birdhouse. The only reason I know about the SDLC was because I went out and found it by reading through the textbook for the Software Requirements course at Regis University, which is a MASTERS LEVEL course! It should be taught where before then!

An entry-level programmer who is familiar with how the SDLC works will have some awesome advantages:

  • We will know how we fit into our company’s development process quicker.
  • We will be better able to create our own projects to show off our knowledge.
  • It will be easier for us to take an idea and create a business around it.
  • We will be able to switch platforms and languages easier.

Tech startups need to get everything they can out of their developers. Whether your shop is agile, lean, devops or some combination thereof you need developers who can grasp the bigger picture. If you’re a school, you need to make sure your students are familiar with the SDLC so when we graduate we aren’t hit with that wall that seems to separate academic and commercial programming. And if you’re a code newbie like me, you need to make sure you take control of your learning and learn how to make a program instead of just learning how to program.

I’ve always been of the idea that if you know the basics, it makes it easier to grow and adapt. If you know of any programming learning resources that follow this train of thinking I would love to hear about them.

What I’ve learned about the Colorado tech community after 1 year

il_fullxfull.315315465

My goal is to have a software/web/app development job by 2016, so one year ago yesterday I started Colorado Tech Weekly to keep myself up-to-date on what was happening in the technology community in Colorado. I turned it into a blog because I knew that if I wanted to know what was going on, so did a lot of other people. This happens to be a theme within the Colorado tech community. Don’t just help yourself, help everyone else!

5 things I’ve learned in no particular order

  • Startups are noisy – I mean this in the nicest way possible. They’re launching, acquiring more funding, announcing exciting partnerships, filing for IPOs, getting acquired by larger companies and generally creating a ton of buzz. A lot of our startups are tech startups and it’s fun and easy to get caught up in the excitement!
  • There is no shortage of helpful people – The people and companies that make up the Colorado tech community are a helpful bunch. If you can think of a programming language, a framework or a discipline, there is probably a Meetup group here to help you learn about it. Speaking of Meetup groups…
  • There is no shortage of fun, helpful events – If I went to every tech related event just in the Denver area, I would be constantly busy. Between monthly group meetups, startup weeks, hackathons and conferences I wouldn’t have any time to do anything else!
  • Twitter may not be the best way to keep track of all the tech people in Colorado – I thought I would be clever and follow every person and company related to the Colorado tech industry. I didn’t anticipate that my Colorado Tech list would end up topping 1500 accounts. I also didn’t anticipate that Twitter would only allow me to follow 2001 accounts. Argh!
  • I can’t get over the “community” part of the Colorado tech community – Startups are growing and multiplying like rabbits. Large companies are celebrating big projects. There is such a great atmosphere of cooperation and encouragement! Companies, groups and experienced designers and developers are more than willing to help each other, their neighborhoods and newbies to the profession. It’s amazing!

Numbers:

  • My site receives around 200 visits per month. About 100 of those come from Colorado
  • 1,636 Twitter accounts listed in my Colorado Tech list
  • 25 different local news sources found

Top 5 Colorado Tech Weekly posts:

  1. Colorado Tech Weekly #33: Volunteering, court battles and new things
  2. Colorado Tech Weekly #22: Thank you from a veteran
  3. Colorado Tech Weekly #51: Adtech thrives, a #boulderwin and Colorado gets a new CIO
  4. Colorado Tech Weekly #38: C-Level at Mile High and Promising Futures
  5. Colorado Tech Weekly #47: So Much News, There’s News About News

Top 5 News Sources:

  1. BuiltinColorado.com
  2. InnovatioNews.com
  3. Denver Business Journal
  4. TechKnowBytes Blog
  5. Xconomy.com

Top 5 most mentioned companies:

  1. Convercent
  2. Level 3
  3. Quick Left
  4. SendGrid
  5. Dish Network

Where do I go from here?

  • I’m going to keep doing the same thing, just more of it.
  • Next week I am going to start a 2nd news series: Dev News Weekly. It will focus on national news for developers. It will probably focus on web development as that’s where my focus has been.
  • I will start posting at least 1 opinion post per month.
  • I will be better at posting project updates. Half the reason I started my CTW posts was to drive smart people like you to my site so you can see what cool things I am up to.

Thanks a ton for reading! I keep trying to tell myself that I write these blog posts for my benefit and it’s just an extra bonus that other people might read them but it’s really nice to know people do read them.