Presenting at VanLUG, Blog Syncing 
April 30th, 2008
I got an e-mail from some of the VanLUG people saying that they want a repeat of the OpenWebVancouver presentation. I’m constantly re-tooling it, and once I know for certain when I will be presenting it, I’ll have more information. The presentation does need some polish since I went straight to the demo halfway through the presentation before I really got a chance to talk about other things with FreeTheNet.
Also, it should be noted that I’m going to test a sync script on this blog shortly.
| Del.icio.us
Posted in FtN, openwebvan, VONIC | No Comments »
Personal Attacks over Appplication Performance are not productive 
April 23rd, 2008
I’m certain by now that we’ve heard throughout the blogosphere about what happened to Blaine at Twitter. Regardless of the cries of “Rails doesn’t scale”, it seems that this is the biggest thing to hit the Rails community since Zed’s pointless rant. Normally I don’t pay attention to most of the blogosphere, however since I know Blaine personally, and he’s someone who I can honestly say that I’ve looked up to over the past couple of years, as both a developer and as a friend, I think that the personal attacks based on a presentation where as a representative of a company, it is expected that you put a positive spin on what you are working on, this “He said scaling was easy! Twitter is DOWN!” nonsense is uncalled for.
The thing that I find with this speculation is that we don’t know what happened to Twitter. I haven’t spoken to Blaine personally in years, but I’m glad to see that other people are calling Michael Arrington out on this article, and that this is better left to Valleywag and other blogs that I don’t bother reading, which TechCrunch has joined the ranks of. Since this happened a couple of weeks ago, I’m suprised that none of our mutual friends up here has heard that he had left Twitter. However, I wish him the best, and he is definitely one of the smartest people that I have probably ever talked to about tech in this town. It makes me sad at the state of the industry, even when it’s gossip, to see this sort of story pass as a critique.
| Del.icio.us
Posted in Rails, professionalism | No Comments »
OpenWebVancouver recap 
April 17th, 2008
OpenWebVancouver was a very interesting conference. It’ll be interesting to see all the presentations, and I enjoyed the Google Gears presentation, as well as the other presentations. I also liked the RIA with Open Standards presentation, as well as the keynotes by both Zak Graent and Tim Bray. I wish I could have seen the merb presentation again, and I regret missing Microformats, but I had other obligations in the afternoon that caused me to miss those presentations.
My presentation seemed to have gone fairly well. We introduced DogOnRails and talked about OpenMesh, Meraki and FON. I think that my criticism of the lack of openness on their part is valid. However, I’m hoping that people understand that the reason we don’t use Open-Mesh’s dashboard is more to do with our users data and less to do with the people involved. If Open-Mesh.com was in Canada, we would consider using it, but since it’s in the US, and we’re dealing with people’s data, we don’t. I have no problems with Open-Mesh.com as a company per se, I have problems with data about which users are in what area of town being stored in the United States and being subject to the PATRIOT act, and other intrusive laws. The data is really the key behind our decision to keep FreeTheNet’s auth servers in Canada under our control, since while MAC addresses and geographical locations may seem pretty mundane to most people, it’s scary enough that we take privacy seriously. We’ll still buy hardware from Open-Mesh.com, but we’ll use our own version of the firmware, since we all agree on Open Hardware and Open Standards.
My presentation should be uploaded sometime in the next couple of weeks, and people can check back to the OpenWebVancouver site to check it out.
| Del.icio.us
Posted in Linux, openwebvan, VONIC, GPL | 2 Comments »
VONIC Exists! VONIC at Open Web Vancouver 
April 11th, 2008
It finally exists. After months of blood, sweat and tears of the FreeTheNet volunteers, we are now a society and we are ready to rock with our new Open-Mesh.com routers configured with our new firmware. We plan on being able to have the new Open-Mesh/DogOnRails routers ready for people to buy at the conference. This is pretty much what we’ve been waiting to get done for months, since this allows us to own things collectively, like network connections, and it allows us to pool our resources.
I’ll have info up soon for how to buy a Co-Op membership, and what the pricing scales are like for Personal, Not-For-Proft & Co-Ops and Businesses. I’m seriously thinking that we can beat the naysayers and further establish ourselves as truly doing something different. We have to iron out some bugs in DogOnRails and style the app, but we’re going to be ready to rock on Monday.
| Del.icio.us
Posted in mesh, openwebvan, VONIC | No Comments »
OpenWebVancouver is coming up fast. 
April 3rd, 2008
The last couple of weeks, I’m back spending 100% of my dev time working on Ubuntu, which is good, since I’m going to be presenting DogOnRails and WifiDog at Open Web Vancouver. I’m not sure what exactly I’ll be demoing at Open Web, but it will definitely be a refresh of the current DogOnRails interface at the very least. Hopefully, after tonight’s FreeTheNet meeting, we’ll have a good idea of what exactly we’ll be presenting. Depending on what goes down, it will definitely impact the VONIC presentation.
You can check the schedule here.
Also, the Vancouver Open Network Initiatives Cooperative has sent its paperwork into Victoria for incorporation. It’s going to be interesting to see what happens next.
| Del.icio.us
Posted in Rails, Ruby, openwebvan | No Comments »
OpenWebVancouver schedule is up 
March 19th, 2008
The OpenWebVancouver schedule is up, and I’m the first person giving a presentation in Room 2 after the Keynote by Tim Bray on Monday. That’s pretty exciting. The presentation is going to be on Embedded Devices that talk to web applictions. I’m going to talk about FreeTheNet, but I’m also wanting to talk about other devices as well. I know that there’s plants that twitter, and other home automation, but if you can give an example of a Web 2.0 Dashboard (that means DOES NOT require a refresh for updates, uses a web service, and generally looks slick, please let me know). I’d prefer OpenWRT or Arduino based stuff, but anything that is embedded linux based would be good.
In other news, the Vancouver Open Network Initiatives Cooperative, the people who brought you FreeTheNet, are coming out with SuperMesh!!!! I’ll be giving more info on that as it develops.
Update: I’m no longer the first person in Room 2. You should STILL go to OpenWebVan and check it out!
| Del.icio.us
Posted in mesh, openwebvan | No Comments »
Be less stupid and ugly - Using git with vlad 
March 11th, 2008
SVN Sucks! I’ve said it! It’s hard to count how many times that I have had to deal with subversion related headaches on a daily basis. It teaches bad habits, and when it breaks, all time stops and you have to spend eternity fixing the subversion database. That being said, it’s still better than Visual SourceSafe or CVS, but it’s still horrible.
If you don’t believe me, watch Linus talk about git!
OK, So git is awesome and svn sucks. So, we should switch to git. Unfortunately, I used all my invites to github, but it’s pretty awesome for getting your repository hosted. However, if you have any sort of local network, you could just host it on a share just as easily. I’m not going to go into a git tutorial, there are plenty at github and other places.
However, I did find a bug with git and vlad, and I had to modify a line in my vlad gem to get it to work. This is a git bug, not a vlad bug, btw. When you install git-core on Ubuntu, you may have a problem with git-archive where you have to specify an archive format, and the vlad migration fails. To fix this, you need to go into your vlad source and add this to the command:
[ “mkdir -p #{destination}”,
“#{git_cmd} archive –format=tar #{revision} | (cd #{destination} && tar xf -)”
].join(” && “)
In here, I added the –format flag. Since vlad expects this, this will get your system up and running. I don’t know if this issue is present in the Mac OS version of git, or in any of the other distro’s packaged gits. It’s not an issue in Windows, because vlad doesn’t work in Windows as of yet!
But yeah, other than this minor detail, I’m enjoying using git where I can. I haven’t tried Windows git yet, but I’m guessing that it should be almost as good as it is on Linux/Mac OS. It’s great being slightly smarter and less ugly.
| Del.icio.us
Posted in Uncategorized | No Comments »
Dog On Rails at Open Web Vancouver 
February 26th, 2008
So, my talk submission made the cut. I will be presenting a talk about FreeTheNet at Open Web Vancouver. Basically this will be a talk that compares what is out there. Hopefully I can beef up DogOnRails and clean up the code significantly before I talk about it. Currently, there’s a lot of messy hacks here and there to get the app working, and I’m going to need to do a lot of cleanup before I can get the thing presentation worthy.
Unlike the talk at RubyCampVancouver, where I talked about where things went wrong with DogOnRails, I figured that I should use this as an opportunity to show real world industrial uses of web applications and dashboard visualization, which is exactly what DogOnRails is.
Whenever we think of Dashboard Apps, we usually think of things that show visualization of data on a Web Application. How many tracks were downloaded, how many hits, how many people have visited the site, etc, etc. However, this is really just the tip of the iceberg when it comes to dashboards and visualization. There are many more apps that need good centralized mangement and visualization, and a web management application can be exactly what you need. Currently most of these apps were done in the 90s and don’t work very well. Nobody really talks about how I can connect my toaster to the web, except for hobbyists, but I think that it’s going to happen again.
| Del.icio.us
Posted in Uncategorized | No Comments »
DogOnRails, only a smaller piece of a bigger picture. 
January 9th, 2008
I noticed that I’ve been referring to DogOnRails a lot in my Ruby Examples (because I don’t like exposing our clients’ code to the outside world if I can avoid it), so I better talk about what it is other than it being an abstract example I use here!
What is Dog On Rails?
DogOnRails is a WifiDog Captive Portal Authentication Server. Unlike the WifiDog server, it is written in Ruby on Rails (hence the name). It originally started out as a small hobby project so I could use it to run on a Linksys WRT54G at my apartment and have it redirect to my Dreamhost account. Then some other people saw that I was working on the project on Google Code and started to help me out with it. Then I started doing this Meraki FreeTheNet stuff, which gave me a new platform to put WifiDog client, and this was the perfect opportunity to de-mystify the whole process.
So, why is it cool?
The original concept of WifiDog is what drew me to it. The original WifiDog project was designed so that Captive Portals, which were only being used by WISPs at the time could be used to display both user-centric and location-centric information to the user so that they would learn more about the area around them. The reason I started working with DogOnRails was because I am able to add more features faster with Rails than I would be able to with PHP, and the fact that I dislike the Smarty Templating Engine, which made adding larger features a major hassle.
There is also the fact that the project seemed to cater more and more to the WISP community than its original purpose, so I felt the server no longer was interesting.
The thing that I like about it is the fact that this allows anyone who can hack Ruby on Rails to add more features onto something that normally would require that you write in C or Shell Script. By moving the authentication off the device, you can do much more with the process than simple authentication, you could redirect the user to what you want to see before they are on their way. And since they’re using YOUR bandwidth anyway. The analogy here is showing a visitor to your house around before they sit down and watch television. It’s not always necessary, but it’s a good courtesy for those who haven’t been to your house before.
Oh yeah, did I mention that it was voted the Best of HackDay 1. I think that bars it from competing in Hack Day 2. I have a whole new killer app for that. :P
So, what features did you add during HackDay?
I added the following features:
- User-Agent detection for mobile devices
- GoogleMaps Functionality
- GoogleEarth Functionality
The User-Agent detection was much easier than I thought. I borrowed Alexei’s iPhone to test the final design, and at the end I was able to get the UserAgent detection to show the view easily, the code looks like this:
user_agent = request.user_agent.downcase
mobile = false
# Mobile Request URI
[ ‘iphone’ , ‘ipod’ ].each { |b|
mobile = true if user_agent.include? b
}
The rest is pretty self-explanitory at this point! After that was added, it was just a matter of doing some iPhone-based CSS. I used Facebook as an example of how to do this, and after cursing WebKit/Safari’s existance, I managed to get something that didn’t require a LOT of resizing to get working.
Of course, the following features were added post-hackday:
- ROBIN/Open-Mesh Update Recieving - (Can’t update settings yet, can get the Mesh status)
- Improved GoogleMaps Functionality - Looks more like the Merkai Map
- Per Node Auditing
- Graphs using gruff
- MAC Address Blocking
- Facebook Functionality
That’s right, DogOnRails is now a Facebook application as well. The idea behind this is to encourage people to grow Wifi networks like they would grow their own garden. Make it so that there’s a certain level of pride for having the nodes up and working. It’s very, very early alpha stages, but it exists and it currently looks like this:

It needs a lot more polish, but it’s going to be used by the FreeTheNet group in the coming month, and will be the replacement to the Meraki Dashboard that we have been looking it. There will probably be more changes to this, and to other things like this. But, when I refer to DogOnRails, I’m referring to a real app, and not some abstract thing like in a textbook.
And I will keep using it as an example of what to do and what NOT to do for many posts to come.
| Del.icio.us
Posted in Linux, Rails, Ruby, mesh, FtN | 1 Comment »
VLAD the DEPLOYER! 
January 7th, 2008
I like simple things, and I’m not squemish when I see an error if I know why that error is true. When I needed to learn how to deploy a Rails app, I first looked at Capistrano. Capistrano looked nice enough, until I heard other people complain about how hard it was to use and how it was a pain the ass.
Then I found Vlad! Vlad the Deployer is a great alternative to the complex Capistrano. I’ve used vlad on every Rails project that I’ve deployed in the last year, and it’s hawt! This will probably sound the same as all the other vlad tutorials, and no I did not get it to not try and run apacheconf, but I will talk about options to turn this off.
First of all, when you install vlad, you need to add the following to your rakefile:
require ‘vlad’
Vlad.load
Then you setup a deploy.rb file with the following:
set :application, “dogonrails”
set :user, “bowserj”
set :domain, “#{ user }dogonrails.net”
set :deploy_to, “/var/www/dogonrails”
set :repository, “http://dogonrails.googlecode.com/svn/trunk/dogonrails”
set :web, “nginx”
set :ssh_flags, “-p 31323″
In this case, there are two things that I did differently in my vlad file that aren’t normally done. DogOnRails is hosted on a vm which also hosts many other community sites. This means that I have to specify the port by using the ssh flags. I also changed the server to nginx. However, without an nginx.rb in the lib/vlad/ directory, this is going to run the apache command. A quick and dirty way to get around this as well is to set the web_command
set :web_command, ‘/dev/null < '
Now the message is supressed. We really don’t need to keep restarting nginx when we deploy. It’s not leaking memory or breaking the proxy like what Apache does in the scenario that I just described above. (Note: If your vlad or apache process IS doing this, you should probably get that fixed before dealing with deployment woes!) Of course, you’ll probably want to create your own tasks in the namespace, and this is exactly like rake:
namespace :vlad do
desc ‘Does turnkey stuff’
task :deploy => [’vlad:update’, ‘vlad:symlink’, ‘vlad:start’]
task :deploy_with_migrations => [’vlad:update’, ‘vlad:migrate’, ‘vlad:symlink’, ‘vlad:start’]
desc ‘Symlink custom directories’
remote_task :symlink, :roles => :app do
# Do Stuff
end
end
In this case, This task will create and destroy symlinks. I use ugly absolute paths because I don’t trust my Rails environment. In hindsight, I really should use the current_directory and shared_directory variables because they can be changed. This is probably a judgement call that you can make.
Anyway, at the end of it all, you’ll have to type in your password a bunch of times. You could put your password on the key and send it to the server, but given that most projects have multiple administrators, I think that idea is as good as trying to nail warm jello. This is the downside of vlad, but I like learning complex passwords!
The other big plus is that it can use git! I think that I am becoming stupider and more ugly by using svn! (mostly because Linus says so) not to mention the fact that Google Code has problems with hosting DogOnRails as of late, I will be switching to git soon! Once I have a functioning public git repository, I’ll post the results here! I will also try to update this blog more often as well.
| Del.icio.us
Posted in Uncategorized | No Comments »
|
 |
 |
Search Posts
Pages
Archives
Categories
 |