Implementing GCal4Ruby with Google AuthSub
How to Bundler 0.9.5, Rails 2.3.5, and running on Heroku
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# put this directly above the Rails.boot! line
class Rails::Boot
def run
load_initializer
extend_environment
Rails::Initializer.run(:set_load_path)
end
def extend_environment
Rails::Initializer.class_eval do
old_load = instance_method(:load_environment)
define_method(:load_environment) do
Bundler.require :default, RAILS_ENV
old_load.bind(self).call
end
end
end
end
|
Xcode: A signed resource has been added, modified, or deleted.
I recently had been getting the error "A signed resource has been added, modified, or deleted." everytime I wanted to install an application from source on my iPhone. I ran into this blog (http://blog.tapmode.com/post/127796473/how-to-move-code-signing-certificates-to-a-different) that recommended:
1. Xcode > Build > 'Clean' and then 'Clean All Targets'
2. Xcode > Build > 'Build and Go'
After that everything worked out and the app properly installed on my iPhone.
Hostname resolution errors on CruiseControl.rb on Ubuntu 9.04
I finally resolved an error I’ve been having with CruiseControl.rb with our Ruby on Rails project in Subversion (SVN). Currently we use RoR with Cucumber for our BDD and CruiseControl.rb as the CI environment. Below are the steps I’ve taken and the final resolution to fix the problem:
1. Setup Ubuntu Server 9.04 (grab all the necessary gems, subversion, db, etc.)
2. After downloading the source from http://cruisecontrolrb.thoughtworks.com/
3. cd ~/cruisecontrol-1.4.0
4. ./cruise add ProjectName –repository ‘https://projectpath.com/trunk‘ -s subversion –username cruisecontrol –password secretpassword
At this point, the code properly checked out of subversion and I didn’t receive any errors.
5. cd ~/.cruise/projects/ProjectName/
6. edit cruise _config.rb and uncomment project.rake_task = ‘features’
This will build using the ‘cucumber features’ tests
7. cd ~/cruisecontrol-1.4.0 and run ./cruise start
At this point the CruiseControl.rb server is supposed to startup, svn update your projects, and run a build if necessary. I notice that I received errors:
svn –non-interactive log –limit 1 –revision HEAD:1 –verbose –xml
Host not found
I went into the ~/.cruise/projects/ProjectName/work/ directory and ran a svn update and it would intermittently work and other times return “host not found”.
8. Since this appeared to be a DNS issue I modified the DNS entries via:
sudo vi /etc/resolv.conf
modified and added a line for 4.2.2.2 (Verizon’s public DNS server).
9. I reran step 7 and magically my CruiseControl.rb build ran successfully
Our office space part 2
Decided to take some more shots of the office in use. As you can see,
we are running low on computers.
Entrepreneur Dinner Meetup 1 at UIUC
Today a bunch of UIUC entrepreneurs met up at Za’s on Green St. to
grab dinner and talk about the stuff we’re working on. I can’t wait
until the next meetup.
First Few Weeks at OrangeQC
So 2 weeks have passed since we first started working on OrangeQC. I
wanted to post some random ideas and opinions about stuff at OrangeQC
and starting up in no particular order.
Early Mornings:
I love getting into work first thing in the morning (5 a.m.-). I can
knock out all my email for the day, catch up on some last minute
tasks, plan out my day accordingly, etc. It is a lot easier to get
things done when you don’t have distractions to divert you from work.
Also the sunrise out of our windows is pretty nice in the morning too.
Test Driven Development:
Should have started with this. Writing tests afterward is a pain and
defeats the purpose of agile development. I think I’m going to find
myself writing more tests and fixing more code than if we just started
by writing tests.
Food:
Eating healthy. Enough said.
Afternoon workout:
This is a must for me. Getting in early and working till ~noon is
pretty exhausting and I need a break in the day. Hitting the gym and
doing a solid workout has been great in clearing my mine and helping
me solve problems that I couldn’t get before. After the gym, I grab a
healthy lunch and head back to work.
Deadlines:
You work fast when you have a deadline to meet. You work even faster
when the deadline is set by the customer.
Dual monitors:
This is a productivity must. I’ve found myself programming and
working much more efficiently than with just a single monitor. The
SongAlive team has a pretty nice 24 inch monitor. I might look into
one after we get a few sales. Right now, we’ll use the free 17 inch
monitors.
Fire at Five (Event):
Fox Development Corp. has a once a month event for all the tenants at
Research Park and EnterpriseWorks. Fire at Five is a time to relax,
enjoy a bonfire, grab some food, and socialize with employees at other
companies. This being my first Fire at Five, I was pretty impressed.
There were a ton of people, great food, and a very social atmosphere
(not to mention the weather was great).
Fitness and Measuring Everything
After spending a good portion of my life not caring about keeping track of my exercises, calories, weight lifted, miles ran, etc. I've come to the conclusion that that just doesn't suffice anymore. Without a doubt in my mind, I'm pretty healthy: I eat good, excercise frequently, and enjoy rock climbing. When trying to enact change like gain weight, losing weight, run a 6 minute mile, and climb harder routes one must properly measure the progress being vs the goals.
Generally speaking, one can't efficiently change something they can't measure. The same holds true for workouts, health, lifting, you name it. Students gain a clear understanding of their performance by receiving grades on homework and tests. Although debatable, this is an objective way for students to tell if they are meeting their goals. I'm going to test the methodology and apply it to my physical activity.
I read an article by Tim Ferris that described his "arguably exaggerated" journey in gaining 34-lbs of muscle in 28 days. Despite this incredible feat, he brings up some very interesting points; namely, he says "6. Record every workout in detail, including date, time of day, order of exercises, reps, and weight. Remember that this is an experiment, and you need to control the variables to accurately assess progress and make adjustments." I'm also keeping track of food (carb, protein, fat) intake as they are useful measure to gauge progress of change as well.
I'm attempting to keep track of the variables by using a service called Gyminee (www.gyminee.com). It does a pretty decent job of keeping track of food, workouts, and personal goals. I'll be experimenting with the service for the summer and see how it works out for me. Initially, I can tell that it doesn't have some basic excercises in its database and it has been ridiculously slow for some reason, but I'm going to stick with it and see how it works for my lifestyle.
Why meetings fail and how to change that
I recently attended several meeting which, in hindsight, turned out to be completely pointless. Oddly enough, we have meetings to fulfill a particular goal (e.g. inform others, brainstorm, follow-up on pending tasks) but when meetings occur just because their is nothing else to do, everything gets lost in translation.
I see one huge reason that meetings fail: lack of strict agenda. From this there are two things that could occur:
1. There is absolutely no agenda at all, or
2. There is an agenda but it is not strictly adhered to
The first bad, but the second is worse. May people lack agendas in their meetings because they don’t think ahead or they do not think that it will drastically improve the quality of their meeting. Unfortunately, it is even worse when people think that their agenda is solid and perfect. This gives people the false sense of hope that their meeting will in turn be successful and productive even though the opposite is usually true.
So how do you fix dysfunctional meetings? There have been books written on this topic and a laundry list of remedies that people prescribe, but their are two fundamental laws that should be followed:
1. Create an agenda. This includes:
- creating a document that outlines the date/time/duration this meeting will occur
- key bullet points that need to be addressed (limit to ~2 or 3 per hour)
- sub-bullet points that are more specific and granular
- try to separate the document so notes can be taken on the paper (if necessary)
2. Follow that agenda. This includes:
- Having the person in charge (usually the one who created the agenda in the first place) keep the group from digressing. This is critical! Many meetings start with a goal to inform the team of everyone’s progress only to find that one person spoke and then started a debate about new features, previous meetings/engagements, and highly granular topics.
- Sometimes the agenda creator is shy or timid and thus feels bad if they need to cut a topic off or move onto other items. I would recommend trying a timer or something to the effect of, “We’re going to go around the table and give about 5 minutes per person to fill everyone in on what action items they’ve completed. Go!” This gives each person a clear understanding that they need to fit possibly months of work into a 5 minute summary so they need to be concise and cogent. Once you allow for unlimited time to be spent talking and digressing, the meeting will in fact fail.
This summer, I’ll be following my own advise when setting up meetings with OrangeQC. We’ll be following a mix of Agile and Extreme Programming methodologies in order to get things done. I’ll keep you in the loop as to the successes and failures of my future meetings.













