Archive for the 'Programming' Category

Yahoo! FireEagle [or is it Fire Eagle]

Last night I went to the WCA LBS SIG to hear about Yahoo! Fire Eagle - here is my transcript from the session. Overall the take home is that Yahoo is building a public store of your location that gives you the ability to grant permission to applications to update and query your location. In other words creating a REST API to push your location to their service - they they standardize the location as best they can - then provide a REST api to query for GeoJSON or GeoRSS for your location.

Very exciting possibilities -Yahoo has taken on the task of trying to store location information in a public way. OpenSocial is trying to build the Social Graph but not on a single server - Fire Eagle is trying to do this on a central server for people’s location. So instead of being distributed data sits on their servers.

How are they going to make money with this? Either Mor was being coy or Yahoo is being coy or they really haven’t figured it out. I can see 3 ways

  1. Since you need a YahooID to use it you may then start using other Yahoo services
  2. They eventually start charging people to store their location (unlikely)
  3. They start accessing people’s location data in an anonymous way to aggregate location information to provide unique services - such as feedback to advertisers about how many Fire Eagle users actually ended up at the event.

Should be interesting all the way around

and now the transcript…


FireEagle
Excellent presenter with great presentation zen
Lots o cool things you can do when you know where people are

Problems
1. Hard to capture where people are - lots o methods and even same method are different on different platforms
35 ways to find your location talk is recommended

2. Locations are hard to interpret. How to get from cell tower to lat,long and then from that to human place names is also hard [not for us]

3. It’s hard to abstract - which hierarchical level do you aggregate to, city state…

4. Location is hard to handle - have to securely store it, have to query it,

5. Hard to manage - mostly legal issues especially when you deal with different countries and states

6. Hard to share - disses symbian C++ and cross Nokia development

Implications
first casuallity is the location based web
Second - location-enhanced social networks. Claims loopt suffers from platform issues but he doesn’t understand loopt - commiunication is neighborhood dependent
FireEagle should increase the number of ppl in the network

The Big Idea  - share your location online
Store and make sense of your location
Share the location with apps and services
While  maintaining control over data and privacy

Available soon but no time table

Fire Eagle sets up a service that acts to create a many to many between location capture and location services. Fire eagle is about managing permissions and also does a cross walk between input location to a standardized hierarchy

??So how does yahoo make money

3 step into the API
Authentication
Update
Query - there are different levels of accuracy that users can allow from exact to country

Uses OAuth for authentication
The application never knows the YahooID of the user
To update you send the REST request with the key and the location and get an ok response
To query you send the key and you get the user location at the proper level authorized for your app by the user

??How do I identify which user I want info for if I don’t know the ID

Using either GeoRSS or GeoJSON as the response to the query

??But an app is either allowed or not allowed but not on a user by user basis

They made a big deal about your own data and privacy

??Does Hide Me throw away the data coming in or just not show it in a query

Has the pendulum begun to swing away from frameworks?

This post is going to talk about using Frameworks (JSF, ASP.NET, Django, Ruby on Rails…) to build web applications and perhaps they have outlived their usefulness in many situations.
I have started to put together a demo server here at deCarta and as part of that I am going to need to write some demos. I know that when I write some MS based demos I will be using ASP.NET since that is was one of the benefits/drawback of MS development - one “blessed” web framework.

It has been a while since I have written some Java web applications and so I thought I would peruse the landscape. I have worked in JSF before but the XML hell that is the configuration files really harshes my mellow. That being said Seam seems to be an interesting framework but there is certainly a steep learning curve and I am still unclear if it runs on Tomcat. I then find Wicket which has no XML config files and everything is done through Java code - which appeals to me. I use an IDE so it can help me avoid doing the mundane and repetitive tasks which are prone to error. Most IDEs have no way to confirm that you don’t have typos in your XML or your XML declares a non-existent class. So Wicket, using nothing but Java code, feels like a step forward… until I look at the amount of code and classes needed just to do a simple form. Feeling undeterred I try to get going and then realize that Wicket documents relies heavily on Maven, and while I have nothing inherently against Maven it is yet another thing I have to learn that I am not in the mood to do now.

Now feeling a bit frustrated I go speak to Geoff and Brent, our web services and JavaScript gurus respectively, to seek words of advice. Turns out they have used Wicket and a bunch of other frameworks and they say, as somewhat devil’s advocates, that frameworks are a waste of time. They now believe that most web apps should be written as Servlets or web services which feed appropriate data to your JavaScript library of choice. I push back a bit and they do concede that for large team projects or repeatable projects a framework makes sense but they also point out that that you spend an inordinate amount of time wrestling with the framework rather than writing code.

And this is the question for the day - has the evolution of web development moved us away from frameworks as the one true way for web developers. All the web languages out there now have their own frameworks, from perl to Ruby to .NET to Java, are they overkill for most projects. Is there where REST and Ajax (and Comet soon enough) have brought us?

When I discovered Struts it was like a ray of light cutting through all the one-off web code I had written. But are we now at a point where the frameworks and the support infrastructure are just too much hassle without enough payoff. I understand sessions are another tricky thing that frameworks help handle but perhaps that is all the frameworks should do. Programming servlets to accept GETs or PUTs and having them spit out XML or JSON is really an order magnitude (WAG ) easier than taking on a framework. It seems some in the Java community are also discussing this issue (look in the middle of the Seam discussion for the grey box which is Matt’s commentary ).

So lazy web what do you think - has the time come to give up on these heavy frameworks and move to something more lightweight - REST services with an AJAX library fronting it? Or is this just a lazy person trying to get out of doing the hard work climbing a learning curve.

For those in the geo community this would like moving from an ESRI ADF or MapGuide to something like OpenLayers + GeoServer’s KML API.

I would really love to get some more data points from the community…

Blogging is live on the devZone

Well we went live with blogging this afternoon - not exactly everything is where I would like it (such as comments not working) so consider it a work in progress. Have fun and look to me posting more over there than here for now.

An opportunity to pick on me

Way back way in the dark ages (fall last year) I gave a short talk at AjaxWorld as part of the TeleAtlas sponsored session. In doing a search today I came across the video link. Lecole Cole (formerly of TA) gives the introduction and then is my bit. Stay tuned after my talk to see MapQuest give a nice demo of their tech and terrabitz show off their extremely cool spatial application. Thanks goes to Brent and Peter for technical discussions, to Matt, John, Lecole, and Penny Duan (TA) for helping with the content, and to TA for inviting us on stage and giving us some pretty darn cool data to play with!

As always words of jest and derision are kindly appreciated.

http://www2.sys-con.com/webinararchive.cfm?pid=wc_aw7w_d2_s10_t1_teleatlas&registered=on

Android apps are Java

In case you might have missed it - Android (gPhone) apps are being written in Java. I am not sure if this is the only way but all their demos are in Java and all the util libraries they have created are in Java as well.

Their LBS/GPS API has hooks in it for KML as the Mock GPS. It also has hooks for pulling in Google maps directly. Bet they make it easy cheezy to get a map up and running with a built in GPS.

Better spark up Eclipse (how long until …

Back to moving stuff to the Hayes Mansion for the big show.

Nothing up my sleeve

While I can not make a rabbit appear out of a hat - I can help to get Adobe, Sun, and OpenWave on the same stage to talk about Mobile Spatial App development (Day 2, last session). They get to give short presentations on why their tech is the greatest thing since the Ginsu. From there we are going into QA mode. I have some that I know I want to ask but here is where the internet tubes gets to participate. Send me your questions in advance and I will pick some of the best to be asked of our esteemed panelists. I want this panel to be spicy so let’er rip.

It wasn’t really an earthquake

Just wanted to clarify what happened last night – you might have thought that was an earthquake but no it was

THE HAPPY AWESOME POWER OF OUR NEW DEVZONE GOING LIVE!!

That’s right, we went live with the new devZone last night.

I had a great team that made it all happen. Be sure to look for new features and content over the coming weeks.

Here is a list of some of the “features” in the upgrade…

-    You now have the ability to control which mailings you get from deCarta (a.k.a. no more spam). Under your account preference (top right of the page has the line to preferences) you can select only those mailings you wish to receive.
-    RSS and email notification for forum postings
-    We have condensed the number of forums and we have started a read-only forum for administrative postings
-    Forums support sticky posts which will contain some of the most common information pertaining to that forum
-    A renewed focus by deCarta on forum participation
-    A new “getting started” section
-    The FAQ is now a wiki allowing registered developers to add and edit content
-    There are deCarta Casts; screencasts demonstrating different aspects of working deCarta technology. Right now we have deCarta Casts on our deCarta Web Services with more to follow in the future.
-    The Web Services XML testing application has been upgraded and is now live on the devZone, The applications store use your Web Services username and password so you no longer have to type them in to use these services
-    The JavaScript examples and documentation are also live on the devZone, no need to download and configure locally. You can view the samples and the JavaScript doc all live from the devZone.
-    We have placed the product manuals on the devZone so you no longer need the CD or FTP site to get to documentation with the shipping product. Right now it is only for Web Services but we will be shortly adding more content.

Go ahead and poke around the site and try out the new features. We have setup a forum just for devZone issues so go ahead and place any comments, suggestions, or bugs you find.  As always feel free to write me directly with your questions and concerns.

We now return to our regularly scheduled devCon work (after a short break for TRICK OR TREATING - yeah baby!!)

Hotel rates for the DevCon end tomorrow

If you were thinking about attending our devCon and wanted to stay at the Hayes Mansion, the lock-in rates end tomorrow. The digs are sweet but there are also a ton-o-fun things to do in the area and Santa Cruz is only 25 minutes away by car. Come on Sunday and make it a vaca.

If you have been following my tweets you will notice I have been spending a lot of time on the devCon lately. We have started going through dry runs of the talks and they are really kicking ass! If you had any questions about using deCarta tech this would be your chance to check it out. The sessions cover everything from our data model to our javscript api to our embedded navigation software to our server products. Some compatriots and I have also started to put our workshop together on using deCarta tech with JavaScript and then with Java and .NET.

If you have any questions or concerns about the conference be sure to contact me scitronpousty At decarta com.

And for all you faithful blog readers I am going to run a little social media special - if you are going to send 2 or more people to the devCon send me a shoutout and I will hook you up with a discount code.

METAL!!!

Updating Projections and PostGIS

I imported some data from the MAGIC server at UCONN into PostGIS. Unfortunately it did not recognize the projection in the prj file or shp2pgsql does use the projection information associated with the shapefile. [UPDATE: bitner just helped me see what was right in front of my eyes the whole time - shp2pgsql has a -s flag to specify the SRID. Live and learn] When I imported the data it has a SRID (projection identifier) of -1. I hopped on the IRC channel and the good folks helped me figure out all the places I need to update the information and now for my own benefit I am going to write it out here. My table name is leach (from the leachate data) and the geometry column is titled: the_geom.

There are 3 places that store the SRID for the dataset.
1. In the geometry column:
First place

2. As a constraint on the table for the geometry column:
Second place

3. In the geometry_columns system table:
third place

So we need to update all of these to the correct projection SRID (in this case CT State Plane NAD 83 Feet) which for PostGIS is SRID 2234. I will defer to another day how you figure out which SRID you need.
Here are the statements to carry it out:

1. Drop the constraint otherwise you can’t do any changes on the leach table:
ALTER TABLE leach DROP CONSTRAINT “enforce_srid_the_geom” RESTRICT;

2. Alter the geometry column to incorporate the new SRID:
UPDATE leach SET the_geom = ST_SetSRID(the_geom, 2234);

3. Reapply the contstraint on the geometry:
ALTER TABLE leach ADD CONSTRAINT “enforce_srid_the_geom” CHECK (SRID(the_geom)=2234);

4. Update the geometry column table to have the right SRID:
UPDATE geometry_columns SET SRID=2234 WHERE f_table_name=’leach’;

And now you should be good to go. Thanks again to bitner and hobu in the IRC channel and this discussion post from the PostGIS-user forum.

As a feature request - perhaps someone could write the pgsql to do all these steps at once and bundle it in the product. [UPDATE 2 - of course after writing this post I come across this method: UpdateGeometrySRID([<schema_name>], <table_name>, <column_name>, <srid&gt ;) - which Updates the SRID of all features in a geometry column updating constraints and reference in geometry_columns. /me tries to remove egg from face]  Or perhaps the shp2pgsql needs to do a better job importing the projection info if there is a .prj file present - though I suspect this would be a much trickier problem.

Someone enjoyed my talk at TechEd

While the talk was small I think we had a good time. It was really interesting talking to the SAP faithful. Thanks to James for the invite - like I told him - it was all about the journey for me

« Previous PageNext Page »