Mobile social networking technology – FourSquare

I noted this a couple of weeks ago, that I was starting to play around with foursquare, the mobile social networking tool. It’s primary advantage is as a Smart Phone app. I, of course, prefer the iPhone 3GS (aka The Oracle) platform for my mobile networking, blogging and just plain monkeying around.

One of it’s features, is the ‘Stats’ page. It gives you a rundown of how often you’ve used the app, what cities you spend the majority of your time in, how many check-ins you average on each day of the week. Anyhow, here are my stats (as of this morning). It’s just and example.

My foursquare stats - Easter Sunday 2010

But, it turns out that it’s much more than a neat tool for big-brother to keep an eye on your travels (frankly, they already know where you phone is 24×7, heck, they can even turn on the microphone and listen to you without you’re knowledge, so you tin-foil that types can just simmer on down), I’ve found that it’s one of the most useful, real world source for finding places and things to do, while traveling, or just putting around your local area!

The way it works is very simple. Using the geoLocation capabilities of your smart phone (now I’m assuming your phone is actually smart.. and can do this) it will show you venues nearby that people have entered into the system. But the real benefit comes for the following three neat features!

iPhone foursquare app - Nearby Venues

1) – Displays nearby locations

Based on your location, it will display all sorts of businesses, parks, eateries, medical facilities, you name it.

Now in my sample image here, you see an number of medical facilities, primarily because I was near the hospital when I snapped this screengrab (another thing that the iPhone is amazingly adept at doing). The list can be fairly long, or pretty short. It all depends on how densely populated the area you are in is, and how many locations people have added to the system. Even out here in the sticks, I’ve found a lot of places entered into the system, presumably by developers, since almost all of them had no previous visitors when I checked in.


2) – Tips and things to do

Now, this is the one I find the most useful! Using this, in places that I’ve been frequenting for years, I discovered some NEW businesses and interesting things to do (or eat/drink) at them. I see this as a great way to explore a new town, or even the one you live in.

Traveling, not familiar with the area? Why not try foursquare to see if you can get some good tips from the locals on things to do (or things NOT to do), places with deals, specials, whatever. This is my favorite and most used part of the app.

Now a nice bonus feature is the ability for businesses to add ‘Specials’ that will pop up on the screen that you can unlock. For instance (sorry, no screen shot here, maybe when I get into the office tomorrow I’ll add that one) the hotel next to my work offers a free coffee in the morning and a $20 off certificate on a future stay, simply by checking in there using foursquare and showing it to the barrista in the lobby! See, you really can get something for (nearly) nothing!


iPhone foursquare app - ToDo List

3) – ToDo lists

This is sort of an extension of Feature 2, but I think it’s useful enough on it’s own to be mentioned.

It’s another neat feature that comes in handy for a traveler. Did you hear about something cool to do on foursquare (a tip) and want to recall it next time you are in the area? Mark it as a ‘To Do’ and it will show up on your list. Simple as that.

“Big Deal!”. you might say,“I can do that with a notepad!”. True enough. BUT, you use the foursquare website to poke around in another city location, look at the tips and remember the ones you think sound interesting, by simply clicking and adding to your ToDo list. And guess what, when you are in the local area, the relevant list items are right there at your fingertip. Seems easy enough!

Final thoughts for today – monitization

Being the semi-paranoid data geek I am, what I don’t get about this application, is how the developers and the operator of the website make their money. I can see where a business might pay a little to offer a deal, but how much $$$ is there, for foursquare, in that? I don’t know. Now I also wonder if they are using this neat pile of data they are collecting on your, and re-selling that to potential marketeers! That would be my biggest concern. And one that I’ll be looking into soon.

For now, it’s fun little app. And honestly, it sort of encourages me to get out of the house more and explore places, looking for things people suggest in the tips.

Unless you are one of those tin-foil hat types, you might check it out.

Easter Eggs – a study in light and egg art

Happy Easter!

It is that time again. When we (well, some people) celebrate the Rising of the Christ. And along with that, goes what I guess is the pagan tradition of the Easter Egg. No matter. It’s a time for the family to goof around and explore some artistic expression.

These are the results. Each of the thumbnails will bring up a larger image.

Some eggs are ‘interesting’, some are messy, some are pretty standard fare. All photos taken in my home studio, using a Canon 50D + Canon 70-200 f/2.8L lens and 600 watts of color-corrected 5600k light, bounced off two Profoto reflectors. Subjects are placed 8′ in front of a black drop.

Magenta Moon
Rocky Shores
Spring Explosion
unnamed 3
unnamed 4
unnamed 5
Humpty Dumpty
unnamed 7
Tranquility Base
unnamed 8
unnamed 9
Europa
Martian Glow
unnamed 10
unnamed 11
unnamed 12
unnamed 13
Easter Morning
unnamed 14
unnamed 15
unnamed 16
unnamed 17
unnamed 18
Cheetah Spots
Hippy Clown Basket
unnamed 20
unnamed 21
Passion Fruit
Deep Venetian Marble

Now, I hope the Easter Bunny can find a place to hide them all!

Installing Gearman APIs for JAVA and PERL


Following yesterday’s marathon package installation ‘experiment’, today I started to acquire and install the Client/Worker API modules.

JAVA – installing gearman-java-0.03.jar

Java modules can be located on the downloads page for Gearman. It is also available at the Launchpad page for Gearman. I selected the code from the gearman.org site to try first, which ended up directing me to: https://launchpad.net/gearman-java.

I downloaded all three available files:

  • gearman-java-0.03.jar
  • geareman-java-0.03-javadocs.jar
  • gearman-java-0.03-src.tar.gz

Once downloaded, I moved all three files, and the original gearmand-C source to my Development directory.

PERL – installing Gearman::XS

For the PERL implementation, I’m going with the PERL wrapper, around the core gearman C libraries. I’d rather leverage as much C as possible. The focus for me is on speed.
It is available via CPAN under Gearman::XS.

Installing PERL packages is generally pretty painless.


#root:  cpan Gearman::XS
[...]
Running install for module 'Gearman::XS'
Running make for D/DS/DSCHOEN/Gearman-XS-0.8.tar.gz
Fetching with LWP:
http://www.perl.org/CPAN/authors/id/D/DS/DSCHOEN/Gearman-XS-0.8.tar.gz
[...]
Writing /Library/Perl/5.10.0/darwin-thread-multi-2level/auto/Gearman/XS/.packlist
Appending installation info to /Library/Perl/Updates/5.10.0/darwin-thread-multi-2level/perllocal.pod
DSCHOEN/Gearman-XS-0.8.tar.gz
/usr/bin/make install  -- OK

With the installation completed, I wrote and executed a very simple script, to test PERL’s ability to locate the new module.


#!/usr/bin/perl -w
use strict;
use Gearman::XS qw(:constants);
use Gearman::XS::Client;

print “\nLoaded and ran fine\n”;
exit 0;

This was the result:

david$ ./gtest0.pl

Loaded and ran fine

Installation of the PERL module Gearman::XS was successful.


NOTE: This is part of a series of posts, centered around installation and evaluation of Gearman as a distributed scheduling product. Here are the other articles in this group:

Installing GEARMAN on MAC OSX 10.6


So, today I set about installing gearmand on my laptop, to test out some massively distributed computing ideas I’m working on. Turns out, it’s not just a matter of downloading the .dmg file and hitting ‘RUN’. Nope.. you better have 1/2 a pot of coffee and your copy of XCode installed on the machine or you are dead in the water.

Actually, you’re going to need more than that, if you are working with a vanilla Snow Leopard install.

Step 1 – install XCode:

But first things first. You can download XCode from the Apple website, or you can install it from your ‘Extras’ folder on the OS disk. I did the later, since the distro is pretty big, something like 600MB. Get that done first.

Step 2 – install MacPorts:

Now this is where the fun begins. Now, if you followed my other blog page on installing MacPorts, you can move onto Step 3. If you have not, then, proceed at hast to installing it (follow this link too).

Step 3 – install libevent

If you enjoyed installing MacPorts, you are going to LOVE this! 🙂 Now, the step of building libevent from source, probably not *required* but, after three installs that were not picked up by the gearmand, I though I’d just, do this the old fashioned way too. I have a writeup for installing libevent here (link to my page).

Step 3 – install wget

wget. How I love you, let me count the ways… MANY. wget is great. It’s a non-interactive text web client. Some of the cool things that wget can do, is recursively traverse a page, grabbing all the content, images, links pages (and their images, objects etc.). It’s also almost impossible to compromise with conventional XSS or other tricky DOM / JavaScript methods. No drive-by downloads here folks!

So, go ahead and get wget installed, because it’s going to be used to reach the final objective, retrieving gearman.

#root: port install wget

For me, on my lousy ComCrap connection, it took me a fairly long time. I think it’s safe to say, run the install command, and walk away. Check back in 10-15 minutes, see if it’s done. How will you konw if it worked? Simple, if you download the file in Step 5, it worked.

Step 5 – Finally, download and extract the Gearman bundle

This is where wget comes into play. Make sure you are in the directly you want. I suggest /opt. And execute the wget command to grab the distro. NOTE: The current distribution might be later than this (higher number). A check of the Gearman main site will probably give you the number you need, if this is not the latest and greatest:

#root: wget http://launchpad.net/gearmand/trunk/0.12/+download/gearmand-0.12.tar.gz
#root: gunzip gearmand-0.12.tar.gz,
#root: tar xvf gearmand-0.12.tar

Step 6 – BUILD!

Build the package. This part is the simplest of all the steps.

#root: ./configure
#root: make
#root: make install

YOU ARE DONE (installing that is)

Next article, will be a writeup on how to use Gearman, some time in the next week.


NOTE: This is part of a series of posts, centered around installation and evaluation of Gearman as a distributed scheduling product. Here are the other articles in this group:

Installing libevent on MAC OSX 10.6

So, today I set about installing libevent on my laptop. It’s a required library for system event handling applications. An example of that would be Gearman.

First off, you are going to need to have install MacPorts installed.

Step 1 – install MacPorts:

Now this is where the fun begins. Now, if you followed my other blog page on installing MacPorts, you can move onto Step 3. If you have not, then, proceed at hast to installing it (follow this link too).

Step 2 – install libevent

If you enjoyed installing MacPorts, you are going to LOVE this! 🙂 Now, the step of building libevent from source, probably not *required* but, after three installs that were not picked up by the gearmand, I though I’d just, do this the old fashioned way too.

First off, run the standard install. This did not toss errors for me on the normal install. You can stop with this Step after it installs and move of if you like. I’m going to show the extra couple of steps I took.

#root: port install libevent

Step 3 – locate tarball, extract and build from source

UPDATE: 6-JUN-2013. Get the latest tarball from [HERE].

Now, move the distribution for libevent, and untar the tarball. The path here is from my current build. The one you eventually get will possibly have a higher number (more recent build). Don’t freak out if this exact path is not on your system. If you are building from source, I’m going to assume you also know how to find things on your computer. The reason I built this from source, was to provide the option –prefix=/usr/local to configure. It establishes where it will deploy it’s libraries.

#root: cd local/var/macports/distfiles/libevent
#root: gunzip libevent-1.4.13-stable.tar.gz
#root: cd /opt
#root: tar xvf libevent-1.4.13-stable.tar
#root: cd libevent-1.4.13-stable
#root: make
#root: make install

Now, you should have a nice clean build of libevent on your computer. Having accomplished this, you can install an array of scheduling and system event driven applications.

Enjoy.

Installing MacPorts on MAC OSX 10.6

Good times, installing MacPorts that is. This is the basis for unleashing the power of LINUX/UNIX/BSD in full, on your MAC OSX system. One of the utilities I’ve used most is wget. I makes short work of taking apart websites you think might be malicious, basically defanging them. Fun times! 🙂

Now, to get MacPorts installed was not small effort, compared to how MANY blogs and posts on the net make it sound. Well, I’m here to tell you that, you got here because those didn’t work, right? Well, maybe you came here first. If that’s the case, I’m going to save some some frustration.

Now, first things first, I’m going to tell you to unlock the root user on your computer. Look, before you become totally indignant, let me beat you to the punch. I’ve been there, done that. I’ve been a professional UNIX (real UNIX HP-UX and SGI’s IRIX, IBM’s AIX just to name a couple) for over 20 years. I don’t want to hear about how ‘bad’ or ‘dangerous’ it is running as root. Tough beans, I don’t care. I’m not a paranoid ninny, I’m a code cowboy. Deal with it. If you prefer, you can prefix all your commands with the less ‘scary’ sudo, but don’t whine to me if something in this post does not work. Not that I’d care anyway.

So, now that we understand each other, let’s move on.

Step 1 — check out the MacPorts source code

I stumbled across this suggestion here: [ Snow Leopard and MacPorts ]. Worked like a charm to get a hold of the latest MacPorts build.

Using svn (aka Subversion, a most detestable tool IMHO), get the source code and plop it down in /opt. This is how I did that.

reguser#: su -
root#: cd /opt
root#: svn co http://svn.macports.org/repository/macports/trunk/base/ macports-svn

Step 2 – build the package from source

OK, I might have lost a couple of your ‘click-to-install’ types with that, but really, as long as it does not nuke itself (you’ll see that happen in other blog articles I have) it’s very straight forward. Run the three commands to build the package, and viola… update your environment and.. bingo.. you’re onto installing your new packages! 🙂

Here is how it’s done. First, move yourself into the package you just checked out:

root#: cd macports-svn

Next, you’ll want to run the configure script to test your system’s capability to compile, and to generate the primary make file:

root#: ./configure

Compile and make the install package:

root#: make

Finally, execute the install:

root#: make install

Step 3 – set your LIBDIR path

That’s about all there is to it! Now, you’ll probably want to edit your ~/.bash_source file, adding the future path of all these cool libs. Believe me when I tell you, it can save you a lot of pain and bewilderment later one, when you’ve compiled those critical libraries and the application you really want to install insists that it cannot find them.

So, here is how I do it, open the file:

root#: vi ~/.bash_profile

Now add the line for LIBDIR to the file and save it. The other line there is helpful too, might as well toss it in, because it makes running port just that much easier.

export LIBDIR=$LIBDIR:/usr/local/lib
export PATH=$PATH:/opt/local/bin:/opt/local/sbin

Now, just editing the file does not do much, unless you reload your user environment (this happens on login, but only at login, so.. you’ll need to do it manually here, using the source operation. Really, it’s much easier than it all might sound.

root#: source ~/.bash_profile

Step 4 – update with the latest Portfiles

So, that’s all I had to do, to get the base MacPorts installed. Now, there are two more commands that you should run now, to make sure that your MacPorts install is all up to date, and registered. Do you need to run both, probably not. But I did, and it worked for me. Now, documentation says this will happen automatically. Didn’t seem to for me, so I ran them myself, just to be certain.

root#: port -v selfupdate
root#: port -r selfupdate

That should just about do it. Now you are ready to install fun extras like webget, libevent and eventually, Gearman.

Now, if you are really picky about your OS’d filesystem, you might go and remove the macports source you checked out. I, personally, hate having to track source code down again, so unless I’m out of disk space, I leave it for future reference.

Saturday trip around Puget Sound with kids and cameras.

One of the things I did today, was sign up for ‘foursquare‘, an app that lets you ‘check-in’ to places, and those with participating incentives will send coupons to your phone. It’s and interesting experiment. I’ll see how that works out today.

M.V. Kitsap mid-sound, enroute Bremerton
Passengers on stern pickle-forks of ferry M.V. Kitsap
M.V. Kitsap about to make starboard turn into Rich Passage.
M.V. Kitsap foreground, Olympic National Park, background.

Sea Lions at the Santa Cruz Beach Boardwalk Pier

Sea Lions! Tons of sea lions!. I’m sure that’s and underestimate.

Normally on the boardwalk you would see a few seals up under the main wharf, but it appears that they have invated the Stagnaro’s boat launch, and, well, see for yourself. It looks like the aftermath of some sort of frat party or Roman toga orgy.

What you used to find, a few stragglers under the wharf.
Now, it's a seal pile!
Marine mamals, everywhere!
It sort of makes you wonder, if they heeded the warning.
I was treated to some mamal aeorbatics.
Some made better choices than others, regarding their LZ.
This provides a little more perspective on the mass of blubber and fins.
This has nothing to do with sea lions, it's the street side of The Boardwalk

A nice (nearly) Spring ride in Kitsap County

No time like Sunday, for a ride.

The Ducati had not been out yet this year. I’d just made sure the battery was charged, tires filled, chain oiled and my riding gear still fit. All systems GO!

WX data indicated I had until 6:00PM to get the thing done, so I headed West, towards the Hood Canal. Reaching the Ridgetop crest on 303, those plans were unceremoniously, canceled. Many fine (and little traveled) roads exist just a couple of miles from home, so a run through the South County became the plan de jour.

There are some really neat little places that you pass along the way. The first of which is Seabeck. A sleepy little town along the Hood Canal. Decent salmon fishing during the season, but the real score is the Dungenus Crab, and shrip fishing. It’s almost impossible not to limit out. 🙂

Seabeck Washington

From there, the road winds southwest, high and inland from the canal, eventually terminating in the little town of Holly.

Holly Wa

This is where things start to get interesting. Just prior to the road’s terminus, starts the an even smaller lane + 1/2 road to the little burg of Dewatto. Winding up the hill and across the ridge, views of the Olympic mountains are impressive and picturesque.

Road to Dewatto.

Dropping out of the hills, just before the town of Dewatto, you are treated to great vists such as this:

Bay at Dewatto. Olympic reflecting off the Hood Canal.

Riding a little further along the water, and the mountains really begin to loom, despite being miles away, across the Hood Canal.

Storm approaching over the Olympic Mountains.

Not far from the bay, is one of the sweet little treats on this run, a steep up-hill right-hand curve followed by an increasing radius turn to the left, finally topping out on the ridge.

DeWatto Curves

It does not really matter which direction you approach Dewatto, it always delivers.

Looking West, towards DeWatto, Olympics and beyond them, the Pacific Ocean.

The road continues to wind it’s way back towards the larger towns, providing both technical corners and broad open-sight-lined sweepers where… “you can really breath.”

Taking a diversion up Elfandahl Pass, through the ORV parks is key.

75 miles and some time later, it seemed fitting to finish off the day at The Boat Shed for a burger and beer. Ah, life in the Pacific Northwest. It’s full of sweet surprises.

A find way to wrap up a weekend.

Landshark!

Lego… much to my amusement has a new series of LEGO’s called ‘Atlantis’. One of the kits (a relatively inexpensive one luckily.. at under $12.00) named “Wreck Raider” has this cool little character in it! I’m not sure what the official name is, but to me it reminds me of the ‘Land Shark‘ of SNL fame.

I just had to buy it! And so, a new journey begins, with a new FaceBook page, Pacific Landshark!

Spurred on by and idea from my friend Kelly, ‘Land Shark’ will be traveling with me. Together, we’ll create a photo travelogue, filled with adventure, science and barely passable photography.

Here are a few photos from our first outing, this afternoon:

Landshark looks for food in an abondoned submarine.

Went to the local marina, but didn't find anything there.
Tried to order food for delivery, but they wouldn't take sand dollars as payment.
Checked the radar scope, and I saw a fishing boat!
Manned the fire control center, and prepared to fire!
Direct hit! Time for lunch!!!

Racing, Photography, Software and Politics.