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.
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, June 16, 2011
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
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.
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.
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.
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.
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.
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/
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.
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
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
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.”
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.”
Subscribe to:
Posts (Atom)