We named our company after the most hated HTML tag of all time. I just found a desciption of the origin of the BlinkTag by the person who came up with it, Lou Montulli. Its an interesting read, apparently it was meant as an easter egg and was initially undocumented:
“I remember thinking that this would be a pretty harmless easter egg, that no one would really use it, but I was very wrong. When we released Netscape Navigator 1.0 we did not document the blink functionality in any way, and for a while all was quiet.”
I like Lou’s reaction to the first time he saw the BlinkTag in the wild:
“It was a lot like Las Vegas, except it was on my screen, with no way of turning it off.”
I had my first opportunity yesterday to play around with the GeoAPI geo-referencing service. Although not quite as intuitive as Google Map’s forward and reverse geocoding services, GoeAPI gives you immediate access to geo-located feeds from Twitter, Flickr, and YouTube, plus the ability to create custom neighborhoods (what they called “guids”) for you to query.
Sounds nerdy – so here’s the English translation:
You now can, with a few lines of code, get Tweets happening real-time in your neighborhood.
Fun? I guess it depends on where you live. Mostly what I’ve been finding is that my neighbors are kind of pervs.
Also, you’ll need to know the latitude and longitude of a point in the neighborhood you’re interested in. Try (37.766 -122.417) for the Mission. Also, because sometimes you get garbage for location data (like Where: !!!!Frisco U noe!!!!), I’ve add a quick parser to find correctly formatted latitude and longitude pairs. Plenty more you can do with this with a few minutes of time.
– Nerdy Part –
import sys, os, json, urllib, re
#usage: python get_tweets.py [lat] [lng]
lat = sys.argv[1]
lng = sys.argv[2]
# Regex to find properly formatted lat-long pairs in the where response.
lat_lng_re = re.compile('^[\D]*[^-^\d](?P[\d\.-]+)\s*\,\s*(?P[\d\.-]+).*')
api = '[YOUR API KEY]'
parent_request = 'http://api.geoapi.com/v1/parents?lat=%s&lon=%s&apikey=%s' % (lat,lng,api)
response = urllib.urlopen(parent_request).read()
json1 = json.loads(response)
# Find your neighborhood
guid = json1['result']['parents'][0]['guid']
print "\n\nYour neighborhood: %s\n\n" % json1['result']['parents'][0]['meta']['name']
print "--TWEETS--\n\n"
# Get Tweets in your neighborhood
tweets_request = 'http://api.geoapi.com/v1/e/%s/view/twitter?apikey=%s' % (guid,api)
response = urllib.urlopen(tweets_request).read()
json2 = json.loads(response)
for tweet in json2['result']:
print "Tweet: %s" % tweet['text']
print "When: %s" % tweet['created_at']
loc = lat_lng_re.match(tweet['location'])
if loc:
print "Lat: %s Lng: %s" % (loc.group('lat'),loc.group('lng'))
else:
print "Unusable location: %s" % tweet['location']
print "User: %s" % tweet['from_user']
print "Profile image url: %s\n" % tweet['profile_image_url']
We recently used bit.ly pro to implement custom short urls for 511contracosta.org – with 511cc.org. Its currently a free service and works the same as bit.ly shortened URLs, only with a custom domain name of your choosing. Amazon just announced yesterday that they are using bit.ly pro for custom URLs using amzn.to.
Things worked great, and it was easy to set up the custom url with bit.ly pro by changing the A record for the domain name, however this meant that anyone going to 511cc.org directly with no hash on the end would be redirected to bit.ly’s main page. We needed this to redirect to a URL of our choosing, in this case 511contracosta.org. This isn’t an option in bit.ly pro, according to their FAQ its only available for bitly.Pro Enterprise users which costs $995/month. This was way beyond our price range.
Fortunately, its pretty easy to use .htaccess to carry out this.
First, you need to set up the short domain name to use namesevers that point to a hosting account you control. For us, this was Media Temple so we set nameservers to ns1.mediatemple.net and ns2.mediatemple.net.
Next, add a file called .htaccess
The contents of the .htaccess file should be:
RewriteEngine on
RewriteRule ^/?$ http://511contracosta.org [L]
RewriteRule ^(.*)$ http://bit.ly/$1 [R=301,NC]
You should replace “http://511contracosta.org” with the domain name you’d like to redirect the root to
Enjoy bit.ly pro, with at least one feature of bitly.pro enterprise
Using Google Maps API you can choose between a few different background layers: Standard, Satellite, Hybrid and Physical. This is done using the setMapType() method.
However, there currently isn’t a way to get display the transit or bike map layer. However, Google Maps allows you to create your own tile layer and load in into the map. It’s not too difficult to create your own custom tile layer and actually refer to the actual bike map or transit map tiles and load them directly from Google.
The URL template you need for getting bike maps is:
To create your own tile layer, use one of the URL templates above:
function initialize() {
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(37.880002, -122.189941), 11);
//Create new Tile Layer
var gTileUrlTemplate = 'http://mt1.google.com/vt/lyrs=m@121,bike&hl=en&x={X}&y={Y}&z={Z}';
var tileLayerOverlay = new GTileLayerOverlay(
new GTileLayer(null, null, null, {
tileUrlTemplate: gTileUrlTemplate,
isPng:true,
opacity:0.8
})
);
map.addOverlay(tileLayerOverlay);
}
These URLs could change at any time, so there is no guarantee that this won’t break. You can see this in action at whereisbart.com
However, this will only work for sites that have PubSubHubbub enabled. Fortunately, this is very easy on WordPress:
Install the PubSubHubbub plugin – you can do this by going to Plugins -> Add New and searching for PubSubHubbub. Two plugins exist, the one called “PubSubHubbub” seems to be the more popular and actively maintained plugin, so go with that one.
Once its installed, activate it:
Thats it. Your posts should now show up in Google Reader nearly instantly.
Its been a day since Google Buzz launched publicly, but given that it works inside of gmail, there is already a huge user base. You might have a “Digg This” or “Tweet This” button on your blog or site, but now you need a “Buzz This” button.
TechCrunch created their own “Buzz it” button and posted a link to the code in the comments. Its easy to add to any wordpress site (or really any other content management system. The following steps will show you how to add a “Buzz This” link to your site, like the one above on the BlinkTag Blog.
Open the single.php file of your sites template. You can do this via FTP or in WordPress by going to “Appearance” -> “Editor” and selecting single.php.
Paste the following code where you would like the Buzz It button to appear. If you are not sure where, the line right before or after <?php the_content(); ?> is a good place.
Replace http://IMAGE HERE with the URL of your image, or remove the image code entirely to have a text only link. If you want, take this 16×16 Buzz Logo image: but please copy it to your site, don’t link directly the image hosted on BlinkTag.
Save the single.php file. Test it out on an individual posts page on your site.
This same process can be in used in page.php or any other template file to add a Buzz link to your WordPress pages.
Respond in the comments if you come up with a better way to accomplish this. If you liked this post, please Buzz it!
Our pals at Freshbooks asked us if they could use our office to host an upcoming workshop on “How to Build a Web App Business”. We were pumped to open our office to people interested in web apps and to get a visit from our favorite Canadian tech company.
On Feb 26th at 9 AM right at BlinkTag HQ Mike McDerment, Freshbook CEO will explain the secrets behind building a business around a web app. Read more about it on the Freshbooks Blog. Tickets will probably go fast, so register now.
I found this picture of when the Freshbooks crew on our swinging couch.
As long as we stay under 100 employees and keep our average annual gross receipts of $12 million we get a 5% bid preference on applicable state solicitations, waived fees and a streamlined bidding process for state contracts. Also, non-small businesses who use us as a sub contractor are eligible for some bid preferences. Let us know if you are interested in working with us.
Warning: sort of technical here, so this may not be of interest to everyone. But I still feel like people should know how to do this.
I was about the re-install Snow Leopard the other day because I did something real dumb and couldn’t figure out how to fix it. I was trying to install a postgreSQL client on my computer and was having trouble with permissions on certain folders in my root directory during installation.
So, stupidly, I recursively set all permissions in the /usr folder to read/write/execute, thinking I could set them back afterwards. Bad idea.
DON’T MESS WITH THESE.
The real kicker here is that if you screw up these settings, you also mess with your ability to use sudo to reset them from the terminal. I found a number of blog posts like this one or this one that basically said: you’re screwed. Wipe your hard drive.
Okay, assuming now that everyone knows what not to do, here’s how to fix it. Run Disk Utility and click “Repair Disk Permissions”:
Notice anything different in our URL? We just completed purchasing and transitioning to http://blinktag.com from http://blnktag.com. Note the lack of the letter “i” in our old domain name.
This new domain name is easier to communicate and matches our company name. All links to the old site redirect properly and all @blnktag.com email addresses forward to their @blinktag.com counterparts.
One of our clients, James Perry got written up in an article by Salon “The Best Campaign Ad Ever”. Hes running for mayor in New Orleans in 2010.
When a narrator, describing other candidates, says, “Political insiders and career politicians,” a woman’s face appears onscreen and she says, “What? Are you shitting me?” (The word “shitting” is bleeped out, as are all the other curse words in the add.) Then, a man comes on and asks, “Are you fucking kidding me?” He’s followed by another man who simply says, “What the fuck?”
We’re excited that James is getting good publicity and that he is getting recognized for his innovative campaign. Take a look at his website: http://jamesperry2010.com.
Jed and I are at Datacamp SF #cadata today. MUNI announced at the event that their real time arrival information is now open and free for developers to access. Its the same data that powers nextmuni. A while back we wrote a post complaining that this data wasn’t available. We’re excited about open transit data in general and its great that our local transit agency is leading the way to opening up its real time data.
The Bay Bridge just had a cable snapped and BlinkTag is on the wrong side. The Bay Bridge is closed, sounds like it could be 24 hours or more before it reopens.
I’m curious how long it will take google maps to automatcally reroute around the bridge closure and what systems they have in place for verifying and updating info on emergency closures to key transportation links. As more people start to rely on online maps for traffic info it becomes increasingly important for emergency info to make it’s way online quickly.
In honor of Geocities shutting down today, XKCD redesigned their site in Geocities style. This redesign included a prominent use of the blink tag (including some HTML mistakes to show the markup).
What’s even sweeter is that we figured every hipster with $10,000 bucks would have bid on this guy, thanks to SFist. But I guess the down economy has come to our rescue once again.
Burning Man, here we come. (We’ll probably pull this to South By Southwest too, depending on its roadworthyness)
The stats:
1984 articulated MAN
Make: MAN Company Website
Model: SG310-18-3A
Serial:EC720800
Fleet #: 6090 SF. Muni
Engine: MAN pancake
Fuel: diesel
Transmission: 3 sp. Allison auto.
Registration: non op.
Top speed: 55 mph.
Starter: pneumatic
Tires: 50% or better
Length: 60 ft.
Width: 102 in.
Seating: 55
Factual errors: When Charlie is confronted by Steve in the helicopter under the freeway, the buses in the background are MUNI buses. The movie takes place in Los Angeles; MUNI is the public transportation in San Francisco.
So this might be kind of a gray area terms-of-service-wise, so do what you want with it. But if you’ve ever wondered how to mashup the Google Transit layer with your custom map, here’s how.
While we aren’t advocating anybody actually do this, we’ve heard from a *confidential* source that Google implements new feature requests in rough proportion to the number of people who hack together stuff like this. Just saying . . . .
Firefox 3.6 beta was released today. It added support for “Orientation” events in web content. This javascript event can use a devices built in accelerometers to detect the orientation and update accordingly.
Since our company name is based on a non-standard HTML tag that makes text I thought it would be fitting to apply the orientation event to our entire site. To view, you need a laptop with an accelerometer (a newer macbook pro or Thinkpad) and to install and run Firefox 3.6.
It turns out that if you actually have orientation events enabled, this embedded youtube video will disappear as it doesn’t play nice with embedded youtube videos. However, if you are seeing this effect live, then you don’t need to see the video.
We haven’t posted pics of our office, which features Super Mario Bros wall decorations, a 7ft tall scale model of the Metropolitan Life Insurance Company Tower, a tiki bar and even some computers.
In partnership with 511ContraCosta.org, Blinktag is proud to announce the release of its very first iPhone application, iSmog. This is something we hope to be doing more of in the future, so be sure to contact us if you’d like one of your own.
From 511CC:
“511 Contra Costa is proud to announce the release of its very first iPhone app – iSmog!
iSmog displays air quality information for the San Francisco Bay Area. With just a tap of the screen, users will see an easy-to-understand map of environmental quality in the Bay Area’s five air basins, built using data provided by the Bay Area Air Quality Management District (BAAQMD). With this information, commuters can make more informed choices about environmentally friendly transportation options, and members of sensitive groups will be better able to stay abreast of information that can be, literally, life-or-death.
Push notification alerts users with allergies or other environmental sensitivities when the air contains unhealthy levels of contaminants including ozone, carbon monoxide, nitrogen dioxide, sulfur dioxide, and two sizes of particulate matter, all precursors of ozone. Notifications can be customized by level of sensitivity and by geographic area.”