The Noows

Today, I’m happy to announce the “official” launch of my second side project, The Noows. What is “The Noows” you ask? Quite simply it’s a site that lets you, the user, determine exactly what is news. The site works similar to Digg or Reddit in that you click the little button next to the article links and they’re “upvoted” and moved to the top of the homepage. The site (currently) differs from Digg and Reddit in that there is no algorithm that determines a certain item is “front page material” clicking any link will move it to the top of the homepage. Continue reading

Posted in Noows, Projects | Comments Off on The Noows

Why Robert Scoble is Wrong (And a Little Right) About Apps

Robert Scoble is no stranger to opinions. He has several of them, and he posts them on Twitter daily. Sometimes his opinions are valid, other times they can come across as blatant fanboy. That’s okay though, that’s what the internet is for. But he has recently taken the stance that the success of the platform is based solely on the number of native applications it has available.

While this view isn’t completely incorrect, it’s the only truth. What Scoble will constantly say whenever he comes across a new device (say Android tablet, or Nokia’s newest MeeGo device), he’ll say something like “cool device, but no apps so I won’t use it”, which again is his prerogative. But he often ignores one glaring fact. The iPhone became a successful platform without any native apps. When the iPhone first launched you could only do web applications, there was no native development kit to write native apps (outside of Apple). However, even without the native apps, the iPhone became an incredibly popular device. When native iOS applications arrived over a year later, it only further cemented the iPhone’s popularity.

So the iPhone, Scoble’s goto argument, was itself without native applications for the first year of its existence, but it was a good platform (the first of it’s kind actually) and this is why it gained the attention of developers (it’s popularity didn’t hurt either). Yes, now the iPhone has a large number of iOS applications in it’s app store, so do Android phones (yes, I realize Android tablet apps are lacking, but that doesn’t mean they aren’t being worked on), and MeeGo will probably do okay as well. While MeeGo probably won’t be as large in market share as iOS or Android, Nokia sells most of its stuff outside the United States where there are a good amount of people who actually buy Nokia products.

Consider another argument of Nokia and the Symbian platform. Nokia and Symbian owned a nice chunk of the mobile phone market, especially outside the United States (this is something people forget about Nokia when they try to discuss its “irrelevance”). In fact up until recently, Nokia had more market share worldwide than Apple or Google’s Android. However the platform became meaningless in a market with iOS and Android. This happened mainly because Nokia was slow to catch Symbian up to what people were loving about iOS and Android and as a result people stopped developing for Symbian devices.

So Robert, apps are important, but what matters is a solid platform to develop those applications on. Android, Windows Phone 7, and MeeGo (iOS too) offer such platforms. Without a platform that is attractive to developers, there will never be any applications for it. MeeGo has the attention of developers. It might not be the ones in Silicon Valley, but they’re not the only developers on the planet. The platform is important, because the platform brings developers who then write the apps.

Posted in Commentary, Internet, Technology | Tagged , , , , | Comments Off on Why Robert Scoble is Wrong (And a Little Right) About Apps

Quick Thoughts on WWDC 2011 Announcements

Earlier today Apple kicked off it’s annual developer conference with it’s usual keynote address from Apple’s commander in chief Steve Jobs.  Lots of announcements this time around as they talked OSX, iOS, and their new cloud venture known as iCloud.  I wanted to touch on a few of the announcements and give my two cents.

Please note, that I was pretty happy with the round of announcements for OSX and so I won’t be covering those too much here.

Twitter iOS Integration

This was a popular one that was rumored in the days leading up to the keynote and picked up some heavy steam over the weekend.  While much of this is nice, I think that it greatly demonstrates the key differences between iOS and Google’s mobile offering, Android. With iOS, Twitter had to work directly with Apple to bring in such deep integration into their mobile OS.  The contact sync, tweet photos from the photos app, etc, all have been in the Android version of the Twitter app for some time now. Why? Twitter didn’t have to wait to work with Google. Twitter could do it all themselves with the APIs provided by Google for the Android operating system. Apple however had to bake it in for their users to see such deep integration.

iOS Notifications

The notification system on iOS today sucks, badly. Anyone that has used Android devices, knows that its notification system has long been superior to iOS.  It was non-intrusive, and easy to manage. With iOS 5, Apple is introducing a notification system that looks very similar to Android’s. But really, it’s about time for this change. They’ve needed for so long, and from the looks of what I saw, it seems like a good system even if you can tell it’s largely based on Android’s way of doing things, with some Apple flair thrown in.

iOS Goes PC Free (Cutting the Cord)

Apple was the one’s that said they were ushering in the “post PC era” when they announced the iPad2. However, if you bought an iPhone or an iPad, the first thing you had to do was connect it to a PC or Mac computer. That’s not very “post-pc” is it? But with iOS 5, new devices are ready to go without the need for connecting it to another device. This is good stuff, considering that even pro-iPhone himself, Robert Scoble, has said this was one of the things where Android was winning.

Apple also announced wireless iTunes syncing, and cloud based connectivity to get content on all their devices, so getting a new i-device will be similar to getting a new Android device. Activate, login, and your stuff downloads to the device.

iTunes Match

With iCloud, Apple also announced iTunes Match, which scans your iTunes library, matches any tracks you haven’t purchased with those in the iTunes, and uploads anything it can’t match. Giving you access to your entire music collection.  However, it costs $24.99/year. The price isn’t horrific, but if I can upload my collection to Google Music for free, there’s not exactly a value add for that $24.99. Especially since I’m okay with having that initial upload period (yes it sucks, but after it’s all there it’s just uploading new stuff which goes much faster). However, I’m willing to bet bucks to dollars that the yearly fee is mostly going to paying the labels for licensing.

What I do like is the matching technology and I really thought Google would come out with something like this for their service, but since they didn’t reach an agreement with the labels, I’m sure that’s why they haven’t done something similar.  So there’s some good, some bad here.  But I would expect Google, Amazon, and even Microsoft to start offering a similar service soon.

Posted in Technology | Comments Off on Quick Thoughts on WWDC 2011 Announcements

Completely Removing RVM

Today I had to change an single user installation of Ruby Version Manager (RVM), to a system wide installation.  But after removing the .rvm folder and .rvmrc file from the user directory, running the RVM installation script would still install to the user directory instead of the system wide /usr/local/rvm directory.  What I found is that RVM will embed itself deeply in your system and there are a few more things you have to do, below are the steps to completely remove RVM from your computer.

First you’ll need to remove the stuff in your /home directory:

[bash]
rm -rf .rvm*
[/bash]

Next you’ll want to remove the following line from your .bash_profile

[text]
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
[/text]

You’ll then want to remove the /etc/rvmrc file as this has some information about the RVM install in your /home folder

[bash]
sudo rm -rf /etc/rvm*
[/bash]

Finally you’ll want to remove the group it created (this will be there if you attempted a system wide install, but hadn’t cleared out everything, running this command will have no effect if the group isn’t there)

[bash]
sudo groupdel rvm
[/bash]

This should remove RVM from your system completely, and allow you to do a system wide install that will install to /usr/local/rvm as expected.

Posted in programming | Tagged , , | 3 Comments

My Thoughts on LastPass

If you’ve known me for any length of time, you probably know that I highly encourage everyone to use a password vault of some kind. There are several good ones available some of them are free, other’s cost money. Over the years I’ve tried several and the ones I’ve used the most are KeePass and more recently LastPass.

Yesterday, the internet was on fire over the possible intrusion to LastPass’s servers (please read this as I feel it’s the proper way to handle such a situation).  But I want to point out 2 things, which are mentioned in the article:

  1. LastPass is very clear in that they are not 100% sure something was breached
  2. They did notice a traffic anomaly that they couldn’t explain

These are very important points that need to be considered when it comes to using LastPass.  But I want to give my thoughts since I actually use the service.

Your Passwords Are Probably Safe

One of the main arguments people give against LastPass is that it puts all your passwords in the cloud on their servers.  While true, that’s not the full story. You can read their website where they explain how it all works, but I’ll give you the gist. Basically when you sign up for last pass, the vault for your passwords is created locally, encrypted, and then uploaded to their servers.  They don’t have a way to unlock it on their end. You have to have your master password to be able to unlock anything around your LastPass vault.

On top of that, LastPass is giving everyone a set of options. A user can do any of the following:

  1. Change their master password
  2. Not change their master password now, and be reminded to do so later
  3. Take the risk and not change their master password

By making people change their passwords, they’re attempting to negate any issue a possible intrusion might cause.  If you have a really strong master password, then you’re probably okay (if your master password is “password” you’re doing it wrong).

Also, I think that LastPass handled this situation really well. They informed their users, and are requiring them to take action, even though all they found was a traffic anomaly, and not an actual breach. They are standing on the side of caution, and since they’re a password vault, that’s exactly what you should want them to do.

What I’m Going to Do (and What You Should Do Too)

I’m going to move to using two factor authentication with my LastPass account.  What this means is that not only will I need my LastPass credentials (email address and password), but also some other way of authenticating myself to access my LastPass password vault.  LastPass offers multiple options for this, and they should be researched to find one that works best for you.

However, other password vaults offer similar functionality.  I know that KeePass offers this, but I’m not sure about 1Password.

If you’re using a password vault, I would recommend moving to using two factor authentication.  I would also recommend doing so for any site that offers the ability to use two factor authentication (Gmail and several banks offer this).  Doing so helps lower the risk of you being compromised.

Password Vaults

Below is a list of password vaults. Please consider using one of these and start using secure passwords (and different passwords on different sites).  Please note that outside of LastPass and KeePass I don’t know too much about the others.

Posted in Commentary, Internet | Tagged , , | 1 Comment

Using Git Submodules

I recently spent some time setting up my *nix configuration files for Bash and VIM in a repository on Github. Since I used several git repositories for handling my various VIM plugins and color schemes, I utilized git’s submodule functionality to link to the original repositories, allowing me to keep the plugins up to date. Today I want to look a little closer at Git submodules and how I’m using them.

Setting Up a Submodule

Setting up a submodule in git, is actually fairly easy, you just pass in the repository address and the folder you want it to go to. So for example, on my VIM plugins, I use the vim-rails plugin by Tim Pope. So to create a git submodule off of this repository for the plugin I use the following:

[bash]
[~/git/dotmatrix]$ git submodule add \
https://github.com/tpope/vim-rails.git \
vim/bundle/vim-rails
[/bash]

This will create a “vim-rails” folder in vim/bundle/ and then download the files from the repository. Meaning that when I commit and then push my dotmatrix repository, it will upload the information for the submodules into my repository on Github. When I set up a new computer, I simply install Git, and then run the following:

[bash]
[~/git]$ git clone \
git@github.com:mkoby/dotmatrix.git –recursive
[/bash]

You’ll note the “–recursive” argument, this is what tells git to first download the files for the repository and then recursively create the folders and download the files for the submodules. I then run my setup script that sets up the various configuration files to their appropriate locations so that I’m ready to code with just a few commands.

Updating the Submodules

Once you have the submodules, you have to update them from time to time. Maybe there’s a bug fix, or maybe a new feature in your submodules. To update them is actually quite simple, you simply run the following command:

[bash]
[~/git/dotmatrix]$ git submodule foreach \
git pull origin master
[/bash]

This goes through each submodule’s folder and runs a regular “git pull” on the folder bringing in the latest changes. The “foreach” argument is actually built into git’s submodule functionality, so there is no hidden magic here.

Conclusion

This is the primary place I’m using Git’s Submodule functionality, but this could be used to separate out various project files into separate repositories for better project organization. If anyone sees that I’m doing something wrong, just let me know as I’m always looking to improve my workflows.

Posted in programming | Tagged | Comments Off on Using Git Submodules