03 · 11

Prepping Ubuntu Desktop for development

On my previous post, I talked about how to install Ubuntu desktop and doing the first update of it. This post focuses on installing the right IDEs (eclipse for most development and aptana for ruby dev).

 

First off - you need music.

Go here - to get Spotify: http://www.spotify.com/us/download/previews/

Now install eclipse:

Go to Ubuntu Software Center from the pane on the left. Search for eclipse and click Install.

This will take about 20 minutes to go through and you might get a vague message about missing packages. That said, when it's done, you can open eclipse just fine.

 

Get the plugins you'll need:

I'll be working on a Roku interface and after researching, saw that I'll be learning BrightScript. An eclipse plugin helps with learning new languages and can help with debugging. Getting the Roku plugin is simple:

1. In Eclipse click on Help--> Install New Software.

Roku-brightscript-install-for-eclipse

2. Click on New to add a repository

3. Give it whatever name you'd like and point it to http://rokudev.roku.com/updates. Click on Add

4. Check BrightScipt and click on Next. It'll find any dependencies and verify that you want to install those too. Click on Next

5. It'll ask that you accept the terms & conditions - click Finish here.

6. When it's complete, you'll be able to see BrightScript as an option when creating a new project:

Brightscript_installed

 

I repeated the steps (1-6) above for:

For aptana radrails IDE:

I like the standalone as Eclipse can get messy with all the other languages. Download the standalone version here: http://www.aptana.com/products/studio3/download

Next up is git (used for source control):

  • Run sudo apt-get install git
  • Generate a ssh-rsa token and add it to your github account
    • cd ~/.ssh
    • ssh-keygen -t rsa -C "youremail.domain.com"

Next, install rails/ruby or whatever language you need.

My ubuntu install came with python but needed java and ruby/rails installed. When you install eclipse from Ubuntu Software Center, it'll pull a java version too.

To install rails (and dependencies), I followed http://www.the-tech-tutorial.com/?p=1868

Next, a db backend if you need it

Postgres: https://help.ubuntu.com/community/PostgreSQL

Mysql: https://help.ubuntu.com/11.04/serverguide/C/mysql.html

 

Finally, because you don't want to do all this again, create an iso image and backup to a cloud location for safe-keeping:

  • In a terminal, run "sudo brasero"
  • Click on "Data Project". It says CD/DVD, but you don't really need one.
  • Click on the + to add files. Navigate to / and select everything
  • It'll run quite a while and when done, the "Burn" button will be enabled. Click on it and save the iso file.
  • Upload the iso file to a cloud location. You can use the image on your cloud servers too.

Good luck!

 

03 · 03

Installing & Setting up Ubuntu Desktop

In my previous post, I build a desktop for under $400. The vision for this computer is to become a media server that will be used (with some code and a password protected private Roku channel) to share videos and pictures to the rest of our family.

My Grandparents are technilleterate. They can operate a DVD player, though. I like Roku because of it's simplicity and developer guides. I'll build the media server using Ubuntu with a Roku service running on it. I plan on backing up media (and D's business stuff) to a Rackspace cloud files endpoint probably once a week. 

Why build a machine to do this and not use a cloud server? 2 reasons:

1. I don't know anything about overclocking a CPU and would like to learn. 

2. I'd like to have a playground to test out a home-based private cloud with Xen hypervisor support. This new machine with my other ubuntu server will be the hardware for the private cloud. 

So first step in this endeavor is to get Ubuntu on the new machine. I chose the desktop version over server since I'll be using it to do any Roku interface development required. Plus, I'm interested in what the desktop experience is (can a windows/mac user convert to ubuntu easily?). It really doesn't matter if you choose desktop or server as you can apt-get install any packages you need. 

Here's how to install ubuntu desktop:

1. Go to http://www.ubuntu.com/download/ubuntu/download and get the latest version. Download it and put it on a USB stick.  The download is 697MB, so it could take a while depending on your connection. 

2. Follow step 2 on http://www.ubuntu.com/download/ubuntu/download - downloading the USB installer.

3. In the USB installer, select the ubuntu version you downloaded in #1. Then browse to the iso file.

Ubuntu-usb

4. Plug in a USB stick to a working, networked computer - and click on Create in the USB installer. The USB installer will use 7ZIP to extract contents to the USB stick and make it a bootable USB. This process will take about 5 minutes.

5. Plug in the USB stick to your new computer. On boot, hold down the F12 key and select USB-FDD to boot from.

6. Select "Install Ubuntu on Hard Disk. Soon enough you'll see the "ubuntu" logo with the 5 red loading dots.

7. At this point, Ubuntu will do a hardware inventory - understanding what peripherals you installed, where your Hard Drive is, and what USB devices you may have plugged in. If you see "read/8, error -110" during this process, that's normal. It's just trying to communicate with devices that may not be installed.

8. The UI will load and ask you basic information, setting up the time zone and your user credentials. It does a check to make sure you have enough hard drive space for the OS and also checks internect connectivity (for the latest updates). The internet connection is not required to install the OS. When it's done, it'll ask to restart.

9. When it comes back on, attempt to connect it to a network (wired or wireless). I plugged in a Cisco WUSB100 USB wireless adapter to see if I could get it working (I've hard problems on the Ubuntu 11.10 server edition). It works like a charm with the desktop edition. : )  

10. On the panel on the left is an icon called "Update Manager". Open it and click "Install Updates". It may ask for the root password you supplied in step 8. 

 

That's it! Now you have a fully functioning ubuntu machine. :) 

 

Next up:

Installing and configuring IDEs (interactive development environments) on your Ubuntu desktop.

 

 

 

 

02 · 28

How to build a computer for under $400

The title of this post may change. It could be:

  • How to build a computer for under $400
  • How to injure yourself building a computer
  • How to limit your trips to Fry's when building a computer
  • How building a computer could get you kicked out of the house

 

We'll soon see.

In any case, I hope this will be a funny and helpful guide that somewhat pertains to building a media server.

Step 1: 

Find someone helpful at Fry's that seems to know his/her shit and won't give you hell for bothering them. I think I got lucky here... after wandering around aimlessly for about 30 minutes a sales associate approached and asked if I needed help. Before I knew it, Adam hooked me up with a case, motherboard, hard drive, memory, CPU and powersupply for under $400 and reassurances that injury in assembling them would be unlikely.

Step 2: 

When you get home, clear the area. 

Doggie_and_wife

Step 3:

Take inventory.

Boxes
CPU: AMD A6-3500 2.1 GHz 3MB Cache: $74.99

Motherboad: Gigabyte GA-A75M-D2H FM1 (includes HDMI video and supports 6 SATA drives): $89.99

Case: Apevia X Cruiser (sold on the VU, temp, and fan speed readouts. The case is a bit big for a media server but will allow lots of working room): $69.99

Power Supply: LEPA N500: $39.99

Hard Drive: WD Caviar Blue SATA 500 GB: $99.99

Memory: 4GB DDR3 1600MHz (I'll upgrade if needed later): $24.99

Total cost: $399.94

 

Step 4:

Gloat about your caffeine-fueled uber-confidence on line allowing yourself to be humiliated later.

This media server, with its components that potentially won't work well together, will ROCK!

 

Step 5: 

Unpack the case. This case is more sweet than I realized at the store. It has a fan speed dial on the side to get the right amout of cooling without the noise or energy expense. The front fan and back fan is already installed and just needs to be plugged in. It also has hinged access to the drives and power button. Two things amused me so far:

  1. The instructions are inside the case. It's pretty easy to get into the case (the two thumb screws in the back. The first step in the instruction guide is how to get into the case though. ;)
  2. There was an empty zip lock baggie in the case. I have no idea what this should be used for as the screws are in a separate zip lock baggie. Maybe it's for when I get frustrated later and end up busting the screw bag when I throw it across the room. Good thinking.

 

Case

 

Step 6:

Install the power supply. This was freakin easy. I used the 4 screws that came with the power supply and just screwed it in the top-back of the case. Screw holes aligned magically. Maybe I won't need that drill. ;)

Power_supply

 

Step 7:

This step will save you about 30 minutes of frustration. You're welcome. See the picture below? Got those tools? A phillips head screw driver and some tweezers? Make sure you do. Also - can you tell the difference between the top silver screw and the bottom? The top one came in a separate baggie, has a slightly rounded top and less threads than the one on the bottom. Put all the screws that match the bottom into that extra baggie that came with the case. Tape that baggie to the ceiling. You should not use those screws in step 8.

Damned_screws

 

Step 8:

Line up the motherboard and mark the screw holes that align. Place the standoff screws (the gold ones) in the holes you've marked. Or don't mark the holes at all and just mimic what I've done in the picture below.

Standoff

Step 9:

Place the motherboard on the screw holes so that they align. Squeeze the I/O shield (the piece that came with the motherboard that looks like scrap metal) in through the case and against the I/O ports of the motherboard. You'll hear some clicks when it attaches to the case. You're allowed to curse a couple times during this process.  Screw in the mother board using the right silver screws we discussed in step 7. When done, it should look like the two pictures below.

 

Motherboard
Ioshield

 

Step 10:

CPU/APU install: If you read the motherboard guide, you'd see the instruction to "Apply an even and thin layer of thermal grease on the surface of the APU". Do NOT use bacon grease. In fact, don't worry about doing this. The AMD A6 3500 has the thermal grease already applied to the heat sink/fan. 

The CPU goes in the large white square socket on the motherboard. There is a lever on the side that needs to be raised prior to installing it.

Cpusocket

The CPU install is pretty easy - just find the triangle on the CPU and align it with pin one on the socket. No force should be needed - every pin should align without much effort. 

 

Cpuinstalled

The heat sink stradles the two blue clamps on either side of the CPU. It doesn't matter which way the heat sink goes as long as the metal clips align with the blue clamps. Turn the heat sink lever all the way. It feels like it may break here - cheap plastic lever. Mine went ok - just be careful not to use too much force. 

 

Heatsinkinstalled

 

Finally, plug the from the fan into the "CPU Fan" plug on the motherboard. 

That wasn't too hard, was it? :)

Step 11:

The hardest part about installing the memory is taking it out of it's packaging. Man-up (or woman-up) and tear through that packaging with your teeth! Or just use some scissors. 

The slot labeled DDR_1 is where we'll place the 4GB DDR. Open the white tabs by pushing down on them.

Memopen
Look at the DDR and find the smaller pin side. Line that up with the smaller slot and push down on the memory. The white tabs will close on their own when you have it positioned correctly.

Meminstalled

 

Step 12:

Get a bandaid. Time to install the hard drive. Slide the 3.5" drive into one of the smaller bays and attempt to align the screw holes. Hint: The cable ports should face the motherboard. Be careful, because those metal edges are a little sharp. Use 2 of the 4 screws provided with the harddrive and secure it to the drive bay.

Harddrive1
Pray to whatever God or flying spaghetti monster you worship and turn the case upright to get to the 2 other screw holes in the drive bay. Secure that side of the drive with the remaining 2 screws.

 

Harddrive2

 

Flip the case back down so the motherboard is facing up again. Cable time. :)

 

Step 13:

There are a lot of cables to connect. Some don't quite make sense. Evacuate any children and sensitive ears as needed as cursing is likely to occur. First - connect the power cords to the motherboard.This includes the 24 pin main power connector and the 4 pin connector. 

First the 24 pin:

24pinpower

That was easy. Now for the 4 pin.

8pinwtf

Yeah - I noticed that too. The power supply doesn't have a 4 pin connector. It does have an 8 pin connector though. I researched the hell out of this (and the system works), so trust me on this. Connect the far right 4 pins of the 8 pin connector into the 4 pin slot:

4pinsolved
Next, it's time to connect the case leads to the motherboard. The USB and Audio are pretty easy to figure out (look for F_AUDIO and F_USB1). The 1394 is not. There is no connection for 1394 Firewire on the motherboard. For my purposes, that's ok. I just left it unplugged. If this doesn't work for you, then you might want to go the route of a PCI firewire adapter card. Or rip everything out and go with another motherboard. ;)

 

Next set of cables are pretty easy to, you just might need a microscope though. These are the other front panel leads for the speaker, switches, and LED lights. Use the help on page 25 of the motherboard guide to figure out what goes where. Match the triangle on the cable to the + on the motherboard pin. It should look something like this when done:

Caseconnections
Ok - we're getting closer. Daisy chain the fans together. Connect the male end of the connector with 7 wires (2 yellow, 2 red, and 3 black) to the power supply:

Daisychainfan
Finally - connect the hard drive to power and to the motherboard (via the blue SATA cable that came with the motherboard). I used SATA 0 on the motherboard.

Sataboy

That's it for the cables!

Step 14:

Don't put the case back together yet. We need to make sure it's working first. Plug in the power. Flip the switch on the back of the power supply, then hit the power botton on the front of the case. Are the fans spinning? Even the fan on the CPU? Do you heard the hard drive?

If the answer to any of this is no, that's ok. Power off the computer, unplug it, and check the connections. It may take a couple tries before you get it right.

Once you see every fan turning, the motherboard beep on boot, and feel the hard drive vibrations - you should be good. Put the case back together, hook up your monitor, keyboard, and mouse. Then turn it on. : )

Alive

That message on the monitor? "DISK BOOT FAILURE, INSERT DISK AND PRESS ENTER". That's a good sign. The hard drive was found, but there's no operating system on the machine yet. That's another post. Hint: https://help.ubuntu.com/11.10/installation-guide/amd64/index.html

 

02 · 01

Damn you Game of Thrones

Dear George R.R. Martin,

      I will likely end up in the insane asylum because of you. I had to catch myself before calling my wife a wench. I hear "snow, snow" whenever a bird chirps. I'm very close to naming my labradobie "Ghost". I'd like to cart in tons of ice into my backyard (in Texas) and create a massive wall instead of having fences. My dinner knife isn't made of Valyrian steel, and it makes me sad. I go around calling myself Savak of Round Rock, lord protector of 3000 square feet. I mistake my son for an “Other” sometimes. I found an egg and hatched it hoping for a dragon (it was a bird that also chirped "snow, snow"). I look for secret passageways all over the place and am easily freaked out by shadows now. I'm collecting iron for a huge chain - not sure where I'll put it yet though. My wife is going through roller-derby try-outs and the suggested names are:

  • Cersei Slamister
  • DDDaenerys
  • Yara GreyJAMMER

     After the third book, I attempted to quit. I picked up a book about astronauts. It didn't work. I didn't understand why the astronauts weren't poisoning each other.

     Your Amazon ratings for book 4 are only 3 stars - so I was hoping, frankly, that you would disappoint me and I could quit easier. Not so. I'm 1/4 through the 4th book and hooked again.

     I guess I have two asks of you:

  1. Please cover any bills associated with my incarceration at the insane asylum
  2. Please keep writing, faster. This habit cannot be stopped.

 

Sincerely,

Joe

 

01 · 10

How-to successfully run for president

And now for something completely different.

Yes it is yet another blog about this year's presidential election. This one is a bit different though.

I think it would be good to opensource some code that would tell candidates if they have a fighting chance of winning a presidential election.

If all potential candidates were forced to go through this system first, this would have a lot of benefits:

1. We'd only have to listen to 3 or 4 politicians drone on about being president.

2. Our relations with other countries will improve as we aren't seen as a bunch of cheating, arrogant, money grubbing, shiny faces.

It also has a major consequence though. The elections would be less entertaining. We may have to revert to survivor for our reality TV.

One note: The weights and measures are configurable based on party or race.

So here goes - in psuedo code format:

 

 

01 · 03

Multiple roadmap disorder

When you've found 15 versions of a product roadmap circulating around in email chains and shared drives, you've got a problem. Just like there should be only one number one priority at any given time, there should be only one source of truth for the roadmap.

Often the culprit to this mayhem is no good way to prioritize enhancements. Sometimes though, the puzzle pieces don't align and some stakeholder is going to get shafted. Priorities are easily addressed through weighting of the stakeholders (future post). To work the roadmap puzzle though, you've got to break the roadmap into several sections:

  • Competitive functionality- the items that your competitors have and use often to establish themselves as differentiators 
  • Gap functionality - the items that any normal user would expect to be there but for some reason isn't
  • Hot potato - the items that establishes the product as a differentiator
  • Performance and infrastructure - items that the end user may not notice but are needed to ensure maximum uptime 

You should have a goal to release items from all sections as often as you can. Neglecting one would cause performance, competitiveness, innovation, or user base to drop.

This also makes it easier to change course swiftly if say a promising hot potato came around. Expect (and embrace) change, of course, but using this method will help prevent unnecessary change.

10 · 26

Can we standardize the standards, please?

My dreams are haunted by standards organizations (and spear-wielding iguanas in tutus but that's a different post). Trying to figure out which standard meets which business case or what set of standards together can you claim in a new product - it's like finding your way out of a never-ending maze. When you think you gotten to the end, a new standard emerges or one that you counted on before has changed. 

There's a lot of issues with the standards:

Too many standards organizations

IETF, W3C, IANA, OASIS, NIST, ISO, ANSI, CEN, ETSI - just to name a few

Can anyone really become and expert of all of these? Will the American standard that fits my business case be ok in Europe where a European standard doesn't exist? If there are two competing standard that both meet my business case, should I just strive to code against the simplest one?

Will 2 standards from IETF, 1 from OASIS, one from NIST, and 2 from W3C all play well together? 

Too slow to change

Most of the people contributing to and pushing along standards have other full-time jobs. For that reason scheduling, attendance, and accountability become an issue. This just slows the whole process down (no matter how efficient the process looks on paper). 

Too many stakeholders

It's amazing how much a small differentiator for a business can turn into a lot of code and a couple new use cases for a standards organization. W3C has 318 members. Some are startups whose life are death may depend on the acceptances of a W3C standard. Some are huge organizations that want to keep an eye on other organizations or drive the standards to meet their business needs. With so many contributors, it's amazing that agreement is reached. 

 

So - what do we do? We can't scrap standards organizations as much as we like too. Without them, I wouldn't be able to write this blog (thanks IANA for port registering, IETF for DNS and HTTP and W3C for HTML).  Here are a couple suggestions:

 

1. The Standards Consortium

This group will have representatives from each of the standards organizations. They will meet twice a year - not in California, but in a dark secret bunker in Colorado. They will talk only about merging and expiring standards. I know - that sounds like a blast (hence the bunker). Booze will be provided as needed.

2. Rinse and Repeat

Wipe the slate clean except for the standards we absolutely need. Those will get rolled of into a new standards organization (the only one). We'll call that the Association for Standardized Standards (ASS). I guess the name can change if needed. 

 

Ideas? 

 

10 · 14

Father of the Year

I think there should be a father of the year award. Not like a trophy, certificate, or coffee mug, but something that actually incentivizes deadbeat Dads to actually give a shit. 

4 editorial notes on this:

1. I'm not throwing my hat in the ring. I'm an ok Dad (mainly because Mikey and I speak the same toddler language). But I'm also incentivized already enough to be a good Dad.

2. If some parts of the award system seem a bit geared to, well, the male psyche... it's because it is. I would expect the Mother of the Year award to be geared to the female psyche.

3. To avoid gaming the system, this should be judged by Mothers Against Drunk Driving. There's no bullshitting them.

4. The awards themselves may prevent you from continuing as an awesome father. So the award must be given to fathers whose kiddos have left the nest already. This incentivizes them not to be awesome for just one year - but for 18 (or 25... or 35... or... no at some point, you're a bad father if you don't kick them out).

Ok... onto the awards. I expect 3 options each geared to different types of deadbeat Dads (I've met quite a few of them out there).

 

For the selfish dead-beat Dads (think world-of-warcraft over kiddo's soccer games): High speed T3 connections to your own private cloud with guarantees of being the most awesome at whatever game you want to play. Oh... you can also connect via the latest iPad on your own space shuttle with hot chick robots to tend to you.

For the red-neck Dads whose idea of playing with their kids is to drive them in the bed of their truck on a highway: You can go riding NASCAR sanctioned Ford F950s with Jessica Simpson-looking quadruplets while shooting 30 point bucks with an AK47 in each hand while wearing a beer hat. Yeee Haw!

For the junky dead-beat Dads: Weed (or crack, or whatever drug of choice you prefer). That's right... be a good Dad and you can have enough weed for free without penalty of law to turn a village into a hippy commune with a Taco Bell branch at every outhouse. 

 

 

What do you think? Are more options needed?

09 · 24

What happened to my live feed?

Yes - yet another blogger posting about facebook. The infatuation with facebook, both in media and in the public, is another post however. This is a sympathy for facebook post. Why?

1. It's hard to please everyone

Have you had a huge Thanksgiving dinner where everyone was happy about everything throughout the entire meal? I haven't - and I hope I never do. That's just not realistic and frankly, it's boring. Facebook has been able to abstract out the common functionality which will allow communication across millions of diverse users. While everyone may not like every piece of functionality on facebook, we still have the ability to share and communicate with our loved ones and friends at a common table. 

2. The bar is moving

Google plus, like it or not, is the new bar. For the majority of us that would like to utilize only one social media platform, we have to make a decision. Do we stay with facebook, which is only trying to compete and remain relevant in an industry that changes overnight, every night? Or do we move over to the shiny toy and experience the same change frequency with them? For those people that do not like change - USPS still delivers mail. ;)

3. Some of the new functionality is pretty freaking cool

Have you peeked at the facebook timeline functionality? It's awesome. To see what I was posting, liking, and what my friends were saying back in 2008 when Mikey was born is the modern day equivalent of reading old letters and comparing them to dated pictures. This is not on google+ yet.

The other day at work, I was listening to Tim Minchin on spotify. The spotify/facebook integration allows you to listen along with me. The same thing can be done with tv & movies. This is also not on google+ yet.

You've got to admire a company that consistently delivers new innovative features that isn't simply chasing the competition. Plus, it's free! There's something about looking a gift horse in the mouth here.

 

 

 

09 · 16

The Distinction Between Vision and Direction

I went to the doc today to discuss blood-test results that were a little abnormal in some respects. She confidently talked about changing my diet - and used a pie-chart to represent risk factors of heart disease. It is wrong to use a pie chart for that. As soon as she said "pie chart" all I could think about was the chocolate-chip pie that my wife & Mom make. Good stuff.

Anyway, she gave me some good direction. Eat fish, vegetables, fruits, exercise more, blah blah blah. After making such changes, my blood work will be checked again in 6 months. But I'm not motivated. That lack of motivation is due to a lack of vision (not my fear of needles). I've long ago accepted the absence of 6-pack abs. 

At work, I lay forth visions of what products could look like. That vision must be fresh, innovative and attainable so it can act as a magnet to accumulate enough stakeholder and developer attention. The vision is not more than a paragraph - and it's clearly stated. Rewards or benefits can be drawn from it and internalized.

The doc should've laid forth a vision of being active & healthy 30+ years from now. From that, I can see that would enable me to play with my grandchildren. 

Direction is the education given to resources (human and not) to make the vision come to light. It guarantess, with development processes and adequate communication, that motivated resources are productive and waste is low. 

Culture is also important to mention. If a team is motivated to work on an outstanding product but the culture fosters a low moral, that product may never come to fruition.

In short, Good, Internalized Vision + Directed Resources + Culture = Success.

Joe Savak

Product Manager based out of Austin, TX. LinkedIn profile

About