Tuesday, October 06, 2015

New Interwebs Postings

Haven't posted to this in some time. Perhaps I make it a annual tradition? Ramble on every year in some corner of the Internet. Speaking of, painted a new corner with projects and such. You should check it out. I mean you read this far right? justinmerz.net

Wednesday, July 10, 2013

Through the Glass

It's been awhile since I posted to this thing, need to get back on track. And what better way to get on track than post about MY thoughts on glass. I mean every other Glass Explorer has, why not join in the fun. It is after all why the program exists, right? I received my device during I/O this year ('13) after placing the order last year at I/O '12. I'm one of the lucky few IONs who gets to attend every year. So obviously becoming an explorer was the natural choice.

Where to start, where to start. The good? The Bad? The Ugly? Yes, let's start there, the ugly. I, am not a model. Shocking, I know. I am also not viewed from cool camera angles when walking around in public. So while there are many flattering (and some not so flattering) PR pics of Glass out there, these do not fit me. Glass has to work on it's aesthetic. Now I could divulge into my personal thoughts on fixes, thicker frames, thinner glass (note, not Glass, but glass. Make sense?), but I think it's more important to say, they stand out. Some faces seem to wear them and wear them well. Others... it's like the Glass is wearing the face. Luckily this is nothing a little variety can't fix (hopefully).

The Bad. I mean, I'm already bashing, let's just go with it. See if you keep readying to the good parts. Battery. Battery. Battery. It sucks. I mean bad. Unfortunately there are not a lot of options out there (at the moment). You want more battery life? Buy a bigger battery. Problem is, this thing is clamped to your head. You may notice. Next up, connectivity. If you loose it, you basically have a camera strapped to your head. Which is actually a nice segue into my next point, functionality. Look, I'm testing the device, as is, right now. I understand this testing is so we can find out what Glass could be later on, but for now, it's limited. Basically video, photo w/ sharing via G+. Plus phone, text, nav and some app alerts. And here is where I run into issue being an all day, every day Glass user. Currently I can walk around every second of my life with this device strapped to my head (being reminded of the time whenever I look up) but I use it so infrequently. For me, to 'use' Glass, means I need to use the device in a manor where it is truly better (in terms of user experience) or more efficient than pulling out / looking at my phone. So many interactions with my phone from a notification (I picked up my phone cause it beeped or buzzed) have a follow up action that Glass can't handle. Again, as the device is, now.

Ok, you probably thought here comes the good. Nope, sidetrack. The Poster. This is my other personal issue at the moment. As prior stated, the device stands out on my face. And I am starting to realize there are 5 kinds of people when it comes to Glass. 1) Those who have them. 2) Those who have heard about them and are super excited to see Glass, try them on, hear your thoughts. These people are great! It's really fun to share the new tech and like this post, my less than 2 cents. 3) Those who have heard about them and don't like them. At all. I feel like I'm almost getting into a political debate sometimes where I end up hearing a lot of personal feelings from people who have never once used the device. This will never make their points invalid (never using the device and already having such strong feelings), but the strength of their feelings is hard to deal with sometimes. 4) Those who have never heard of Glass and think they are fantastic. Again, awesome, let's grab a beer and chat. 5) Those who have never heard of Glass and think you are filming them. Like (3) it's tough. But there are enough articles about this point, I won't add to the mess. So. The Poster. While I sound excited to share, this is not always the case. Sometimes, many times, I just want to go about my day. And having this badge of nerd proudly attached to may face is not the best way to do that. And perhaps if I was constantly, or even semi-constantly using the device, it would be different. But I'm not. So no, I feel like I'm just trying to show off, desperately wanting to be the poster for Google's new product. And like a poster, I'm probably using the device about as much.

The Good. When Glass fits, it's one of the greatest tech joys I have ever experienced. I'm talking Mario 64 good. You want to share an experience? "Ok glass, take a picture". Tap once to share, tap again to speak a message. Beautiful. I just recently moved to LA and took a road trip from Sacramento looking for places to live. Glass was a kick ass co-pilot, every new place I needed to go "Ok glass, get directions to...". While feeding me directions (Nav is amazing, FYI) I can also answer phone calls. All with less distraction than working a CD player. Yes, those who have never used Glass will think this sounds dangerous. Those who have can tell you how wrong you are. It is truly technology out of the way. I tap once to answer the call, I never do anything else but talk and drive (both hands on the wheel). Now I don't want to become the developer advocate for everything Glass while driving but I think this is a good example of it's use. You are taking part in an activity (preferably non-social) and you need some help. You need that Star Trek computer to give you that quick response from above, take that quick action so you can move one. In this, Glass will excel.

We just need the apps. We just need the community. It will all come. Different sizes, different applications. I side loaded the Google Star map the other day. It's amazing. I am truly happy to be part of this great PR experiment, because like most Google products, the product does give back (though I'm still trying to decide if it's giving $1500 back...). I will be watching with the rest of the Explorers (and others) to see where this product ends up. Hopefully not like the Segway, I think this product has more to offer than ease of use for mall cops. Ok, now, who has an idea ;)

Monday, January 09, 2012

Combining Libraries

I was asked if a could start showing examples of the gwt-esri library combined with other 3rd party libraries. I have started off with a simple example using SmartGwt and the esri library. You can see the online example here. See the google code site for src.

The basic setup is as follows:
- The esri code loads the esri basemap and CPAD feature layer
- On pan/zoom the feature layer is queried
- On query response the features are rendered on the map and attributes are placed into a SmartGwt List Grid

The map and grid are setup so selecting a feature on the map will select the grid's row, or vice versa.

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