Cycling! A whole new hobby

So I’ve recently got into cycling. It’s been an awesome way to exercise and super fun.

I picked up a bunch of awesome gear from Amazon:
Giros Savant Road Bike Helmet
Shimano 105 PD-5700 SPD SL Pedal
Shimano SH-R087 Road Bike Shoes – Men’s
Pearl Izumi Attack Short
Pearl Izumi Men’s Quest Jersey

Pretty much everything is working out great! I’m normally a size 9.5US in Nike shoes and went with the 44 Shimano road shoes, I think maybe a 43.5 would have been better, but I’ve used them a lot so it’s too late to return them. Clipping in to the 105 pedals is pretty easy, although I did fall off at a stop light on the first ride! Shorts are great and highly recommended!

LeatherCraft 1539 18 Multi-Compartment Tool Carrier

I’m constantly struggling with keeping my network tool bag organized. It’s great after I organize it, but one job needs to be done and it’s completely disorganized again.

I have a ton of tools, carry everything I need to install network cabling, turn up T1 lines, troubleshoot analog lines, I can even do basic electrical work with what’s in my bag. It’s exploding with stuff, since I carry everything I could possibly need.

So I’ve been looking into a new bag.

The one I’m probably going to settle on is: Custom LeatherCraft 1539 18 Multi-Compartment Tool Carrier. It looks like it’ll do the trick. My current bag is a “bucketmouth” type bag, so there’s not really much organization, it’s so full of stuff I can’t zip it, so maybe this one will be great!

Kamailio – Changing the From URI for Level3

So Level3 uses the E.164 recommendation for sending caller information. The problem with this is that they send a + prefix to the phone number. The problem with sending the + in the caller number, is that a common desk phone (Polycom/Cisco/Yealink/Aastra) will try to make an IP call to the number, or just fail. It seems like only cell phones handle the + character in a number.

So to keep that plus out of the network, I added the following code to my kamailio.cfg to “filter” out the + before sending to the caller.

<br />
$avp(s:from)=$fu;<br />
$avp(s:from) = $(fu{re.subst,/\+1//g});<br />
  if ($(avp(s:from){s.len}) == 0) { $avp(s:from)  = $fu; }<br />
uac_replace_from("$avp(s:from)");<br />

Maybe there is a better way, but this is working in production. Let me know if anyone has a better method!

Cisco OIP – Registering deals can suck

Sometimes the Cisco OIP program can be a pain in the ass!

Another partner registers the deal. You are awarded the business, taking less margin than the behemoth vendor in town, to get the deal. Now you’d like to increase your margins and you aren’t able to get the best pricing because behemoth vendor has protected pricing.

Kinda makes for an unfair advantage, and prohibits Cisco’s other partners from growing their business. Keeping the big guy in town big and the small guys small.

My suggestion, OIP Rebate program. When the deal is registered by someone else, but I am awarded the business. I should get that OIP discount as a rebate check.

Come on Cisco! Help your partners grow!

The Microsoft/Android war: Which patents are at stake?

Good article over at Network World about Patents Microsoft has claimed to hold. I’ve blogged about the silliness of patents like this in the past. People at the patent offices must be not tech savvy. I would NEVER have let such vague patents be allowed through.

Check some of them out: The Microsoft/Android war: Which patents are at stake?

Get an array of months in perl

I had a need to build an array of months between a set month and the current month. My purpose was to let the user choose a month to build a report for.

I’m using HTML::Mason, but you get the idea.

You’ll need Date::Manip::Recur

<br />
<select name="months" id="months"><br />
% # Loop through the date objects<br />
% for (@dates) {<br />
%   # Assign the current month value to a scalar.<br />
%   my $curMonth = $_->value();<br />
%   # I only cared to see YYYYMM so I regex'd it.<br />
%   $curMonth =~ s/^(\d{4})(\d{2}).*$/$1$2/;<option value="<% $curMonth %>"><% parseMonth($curMonth) %></option>% }<br />
</select></p>
<p><%init><br />
# Returns a date like "2011-01-01"<br />
my $monStart = getOldestEntry($account);</p>
<p>use Date::Manip::Recur;<br />
  my $recur = new Date::Manip::Recur;<br />
  # Parse out the first of the month for every month since start until today.<br />
  my $err = $recur->parse('0:0*0:0:0:0:0',$monStart,$monStart,"Today");<br />
  # Return an array object of dates<br />
  my @dates = $recur->dates();</p>
<p>sub parseMonth {<br />
use Time::Local;<br />
use Date::Format;<br />
  my $md = shift;</p>
<p>  # Match on YYYYMM<br />
  $date =~ m/^(\d{4})(\d{2})/;<br />
  my $year = $1; my $mon = $2;</p>
<p>  # Convert to epoch<br />
  my $time = timelocal(0,0,0,1,$mon-1,$year);</p>
<p># Return back (%B %Y) as "August 2010"<br />
return(time2str("%B %Y", $time));<br />
}<br />
</%init><br />

Ryobi s430 4-Stroke leaky gas cap.

My 4-Stroke Ryobi S430 Weed Trimmer has been great, I’ve not had problems like others have had with their, except it leaks gas on my right arm my from the fuel cap breather while I’m weed eating.

I haven’t hung it up in my garage because when I do, it constantly drips fuel out. I’m about to see if I can find a non-vented cap for storage, so I can hang it up without leaking. I know it needs the breather to run. I kinda wish I spent more money for a better built unit.

Any ideas?

Introducing Amazon Silk

Amazon just released a video with their new idea on web browsing. They’re going to implement it with the new Kindle Fire edition. It sounds pretty cool, but what about privacy? Amazon filtering your internets??