Thursday, December 22, 2011

Fauna Cartoon

I have recently helped my friend Greg Bishop get his comic site up and running Fauna Cartoon. Other than taking over hosting duties and creating a quick gwt app to display them; all of the creative design, thought and obviously comic credit goes to Greg. I highly recommend for any animal lover/ general enjoyer of comics. To be honest, I saw a couple and my only thought was, these need to be on the web/cloud/internet/whatever we are calling it these days. I hope you enjoy.

Saturday, October 15, 2011

Hello gwt-gis

As my gwt wrapper for esri's js api gwt-esri becomes more and more stable (a relative term), I have added a lot of functionality to what was 'the example project'. This project has itself grown in complexity and functionality. I have thus dubbed it gwt-gis and created it's own google code project (my second!) for the src to live. Please check it out. Feedback is always welcome. I'll try and release a jar soon, though as w/ gwt-esri, living off the trunk is recommended.

Also, always looking for gwt/jsni folks to help out with the gwt-esri library as many of it's components are wrapped but only have (sometimes very) limited testing.



PS. RIP Mr. Jobs.

Thursday, March 24, 2011

Last Call For I/O - Games

I just finished a challenge for Last Call for Google I/O after making it to the second round (not sure how, looks like I did very poorly on the test). Anyway, went ahead and made the next 'killer' webapp.... or a quick game that fit the 'order from chaos' description using HTML5. We only had 22 hours, I was sick and I still had to work. But put something together using the canvas tag and an svg of the chrome logo from wikipedia (~6 hours). So without further .... something... I give you Chrome Shuffle. Enjoy.

Saturday, March 05, 2011

Sprint 4g

I'm getting 5Mb/s down and 1Mb/s up almost everywhere in downtown Sacramento. Holy. Crap.

Sunday, February 06, 2011

First Release of the gwt-esri library

I have pushed the first release of the gwt-esri library. I have chosen to start at 0.5 because 0.4 just sounded depressing and I have actually pushed 4 other jars before this one. I have all the major classes to the Js Api's 2.1 spec and have documented all of the classes. TODO's still include the ServiceArea task, Virtual Earth support (guess I can't be ALL google), as well as better dojo support. Several of the dojo classes are just placeholders at the moment. Finally, I am sure the library full of bugs which I am hoping anyone who actually uses this library helps me find and kick out.

Thursday, January 13, 2011

NetCDF to Web 2.0 via THREDDS

Lately I have been working on an extension to THREDDS so you can do OpenDap style queries on NetCDF files but return a JSON format instead. Specifically so you can have a Google Visualization Source JSON format returned. Currently THREDDS allows easy access to OpenDap forms like this, I have created a dataset access form for creating the visualization source query here. This form can be used to create and test queries. I will be working to integrate this form into the THREDDS catalog page as an access type.

We (my lab) are hoping this will be useful for pushing scientific datasets, among other things, to the web as well as adding the ability to quickly create online visualizations for these datasets. The google visualization source json protocol is a simple protocol with an extensive library of widgets behind it. Creating new visualizations in JavaScript or tools such as GWT is relatively easy as well.

Wednesday, September 08, 2010

Google Code Project - Esri Gwt Library

Started my first google code project. http://code.google.com/p/gwt-esri/ . Its a gwt library built on the esri js api see here. Looking for help if anyone is interested. It's built from this start with the map loading and event handling reworked. I have also added the basics of a controls layer that works much like google maps controls layer. Still a lot to do. But it's a start.

Tuesday, January 26, 2010

More GWT Gadgets

CIMIS Senor App
Cal-Atlas - Imagery Search
Cal-Atlas - Search Light

And for anyone not using GWT 2.0, you really need to upgrade. In browser 'hosted mode' is the greatest thing to come to web app development since, well GWT.

Tuesday, September 22, 2009

Client Side Google Protocol Buffers & GWT

I have implemented a, crude, but working 'complier' to turn Google Protocol Buffers into GWT ready
java. It uses the base from the google code project here ... http://code.google.com/p/protobuf-js/, which I translated to Java so it could be included and complied by GWT (I added the ability to parse floats as well).

To test I accessed ~3500 protocol buffers and parsed them on different browsers (each containing a String and ~7-10 floating point numbers). I found varying results...

Chrome: ~2500ms
Safari: ~2800ms
FF: ~18,000ms
IE: ~72,000ms (stellar)

... this result had to use event chaining as to not choke the browser (FF & IE).

With such variation in parse time, this was not a reasonable solution. Parsing the protobuffers server side and sending them in JSON turned out to be MUCH faster. With all browsers having a reasonable JSON parsing time (under a second).

For the optimal solution I just modified my 'compiler' to spit out GWT overlay classes for the JSON instead of the proto classes. I then send the JSON wrapped up in a GWT-RPC. All works great now, very snappy performance.

Wednesday, March 25, 2009

GWT Products

Here is my first round of GWT Products.....

http://www.atlas.ca.gov/view/gallery.html
http://www.atlas.ca.gov/download.html
http://justinmerz.homeip.net/swim/gwt/RemoteCeic.html
http://projects.atlas.ca.gov/ (the embedded project search)

... with a couple more in the works ...

Couple notes, inserting as an embedded 'widget' can be interesting. Moreover, when you have a template w/ xhtml doctype or want your gwt code to exist in a different directory than the sites code. I have a simple solution using a $wnd variable for imgs. Looks something like this....

<script type="text/javascript">
var gwtRoot="themes/atlas/gwt/";
</script>
<script type="text/javascript" language="javascript" src="themes/atlas/gwt/gov.ca.ceres.gforge.ProjectSearch.nocache.js"></script>

<div id="ProjectSearch"></div>

.... now I can move my code wherever I want.

Sunday, September 14, 2008

GWT and more

Back in spring I attended the Google IO event. After being impressed with several of their new apps and services (eg.. app engine, gears, etc), I must say as a developer I find myself using the Google Web Toolkit or GWT the most.

The idea is genius and for a smaller group of web developers with a lot on their plates the GWT has stepped in to become a huge time saver. With our (CERES) first project completed using GWT, here is short list of what it has added to our developers.

1) IDE developement w/ eclipse... its Java... its eclipse... enough said.
2) CROSS-BROWSER SUPPORT!!! ... can't say it enough
3) Easy sharing of packages w/in the gwt community.

And these are just three of the major additions the gwt has brought. This is not even touching on good OO development best practices that can be easily implemented in Java and not-so-easily implemented w/ JavaScript.

On to the new stuff.... Google has released a package for creating gwt gadgets that can be easily dropped into opensocial containers. Now you can use the gwt to create embeddable apps for the web.

We are currently setting up an Oauth server (for getting rid of the tiring ... please create an account ... for every new app we launch) and are going to look at integrating all three (GWT, OpenSocial and Oauth) to create easily deployable web apps.

Monday, June 30, 2008

Wednesday, January 30, 2008

image zoom and table row expansion

Working on merging CaSIL with the new California State Template, I have put together an "eye candy" selection method to show which row your mouse is currently over. The idea is derived from application docks on your desktop. And if you hate it, there is checkbox to turn it off.

http://archive.casil.ucdavis.edu/casil/etc/website/stateTemplate/

Monday, January 14, 2008

OpenLayers and getCapabilities

here is a OpenLayers plug-in I am working on ... type in a URL of an OGC standard service. It parses the getCapabilities response for (currently WMS/WFS) services, then shows available layers. These layers can then be dragged (via YUI widgets) to the add layer pane and added to the map. Color and opacity of WFS services can then be modified along with image type and opacity of WMS services. Layer order is determined by the order of the list (drag to reorder).

California...
http://olgcs.casil.ucdavis.edu/captureTool/test.php

World...
http://olgcs.casil.ucdavis.edu/captureTool/test4310.html

I hope to wrap this tool up and have the source available via svn at gforge.casil.ucdavis.edu at some point.

**Note: This thing only works in FireFox at the moment.

Tuesday, September 18, 2007

Firebug

So with all the online AJAX/web 2.0/(cool net catch phrase here) I have been doing lately, I must say Firebug, an extension for firefox is one of the most useful debugging tools I used in a long time. Its very intuitive and allows for quick diagnosis of errors in asynchronous calls which can be tricky to catch. I highly recommend it for anyone doing online development.

Putting JS API's together

Here is an online app that shows off the merging of OpenLayers, CERES, CaSIL, and Google Maps API's and online services. The actual service that generates the land use report should be up soon.

cmluca.casil.ucdavis.edu

Thursday, August 02, 2007

OpenLayers

alright haven't been on this thing forever. I have been doing lots of work with OpenLayers an all javascript mapping tool. I have been running OL w/ google maps base layers and CaSIL WFS overlays. More on this to come.

Monday, May 15, 2006

Java Threading

This weekend I decided to clean up some of my threading skills in java. I bought the O'Reilly book, Java Threads, which has been a good read. I always find the O'Reilly books very insightful. Anyway I went ahead a wrote a small Reader/Writer program using threads. It follows a simple algorithm using a basic FIFO policy with the exception of reads, if a read has 10 "time units" left and a second read comes that only needs 5, that read is allowed to take place at the same time. Here is the applet, with the code in the base dir.

http://wwwcsif.cs.ucdavis.edu/~merz/RW.html

Tuesday, March 28, 2006

Finished ...

I finished. Well not completely, still one more quarter of school. But with the end of this last quarter I have finished my final Computer Science/Engineering class. My final project was for ECS 152b (computer networks B) for which I wrote a Bulletin Board and Chat Client/Server. It was written in C. We had to create the client and the server from the socket level up. This became interesting when I implemented the second connection for file transfer. See you need to be able to chat and send/receive files at the same time (Which makes since). I used pthreads on the server side and fork client side. Disconnect was my favorite part since the file client and the chat client are two different processes at that point and time did not permit for a nice pipe implementation to be used. Instead the user chat client sent a kill command to the chat server for that clients connection, which sent a kill to the clients file server, who then intern sent a kill to his file server connection. Once the 2 processes and two threads were all ready, they all shut down.

Anyway now that I am done I am putting the final touches on my resume before I send it out. I am excited to finally get to use some of the stuff I have been learning over the last five years. I am going to be a little sad to move out of Davis, but as Steve Zissou says in The Life Aquatic “This is an adventure.”