Friday, January 23, 2009

Last nail in ArcIMS's coffin.



Well ESRI just released some news about ArcGIS 9.3.1.
What's Coming in ArcGIS 9.3.1?

Here is an item that caught my eye.
High-Performance Dynamic Map Publishing
New faster rendering engine
Outperforms equivalent ArcIMS services.
Produces significantly better-looking maps.
Shortens map caching time.
Quicker, smoother zoom and pan.


If this is true then ArcIMS is truly dead.
There are no more excuses left to not move to server.

Wednesday, January 7, 2009

Asp.net MVC & jQuery the new standard

Wow its been a while since I'v posted something. Been busy at work and settling into the new house, holidays and every other crazy thing that happens around this time of the year.

But what I really want to talk about is the new ASP.NET MVC & jQuery and how this will be the standard way of building sites on the ASP.NET framework. I know its a bold disclaimer, but I fully believe it after using both on a couple of projects and coming away thinking.... why wasn't it always this fun to build sites in Dot Net!

To begin with the MVC part stands for Model-View-Controller. This is a very old concept dating back to 1979 which was described by Trygve Reenskaug, then working on Smalltalk at Xerox PARC(..I'm always surprised at the amount of ground breaking technology that went on at Xerox back than.).
In MVC, the model represents the information (the data) of the application; the view corresponds to elements of the user interface such as text, checkbox items, and so forth; and the controller manages the communication of data and the business rules used to manipulate the data to and from the model.




You gain a lot by separating your website out like this. It makes it super easy to run Unit Tests against all 3 levels. You also lose the ViewState dead weight. No more limitation on just 1 form and the post back model goes right out the door. Now the down side is most server controls that use ViewState will not work. But MVC makes up for this with HtmlHelpers. Plus you get really nice looking REST like urls. Like so http://stackoverflow.com/questions/tagged/asp.net-mvc. Notice you don't see the ".aspx" ext or any extensions. You may think "who cares, so your url looks pretty". Yeah I thought the same thing also, but what makes this important is the url is self describing. It now has meaning and that meaning can be parsed and indexed by the all mighty GOOGLE search engine. You know what that means. Better search indexes, higher ranking and more eye balls finding your site!!

These nice urls are pointers to actions in your controller.
An action is basically a function waiting to be called by a url. And just like any function you can pass parameters to it and it can output data from it. This is huge because now not just your front end .aspx page have access to your logic, but so does anything that can communicate through http. This is what makes MVC such an easy fit for AJAX. You can call that action url right in Javascript and have it return some string information or better yet JSON objects.

This is where jQuery comes in handy.
jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.




jQuery makes javascript fun again. Like when you first discovered all the cool little floating boxs and color changing scripts you can do with it. You can even make it snow on your web site with Javascript. But than all the different browsers decided, they knew the best way to implement javascript. You had to add all that browser checking code mixed in with your logic and boiler plate code....ahhhhhhhhhhhh!!!. No wonder most people ran screaming and called javascript a toy language. jQuery takes care of all that and comes up with a genuis way of traversing the DOM using selectors.

jQuery selectors are a combination of CSS 1-3 & XPath. Essentially, the best parts from both of these query languages were taken, combined, and used to create the final jQuery expression language.


What really makes jQuery shine is the fact that its very extensible. There are 100s of plug-ins on the site. From form valadation plugin-ins, auto-complete controls with ajax to a full Grid control with built in search using local or remote data, column resizing and ording.

jQuery was so powerful that Microsoft decided to include it with its ASP.NET MVC Beta release.

Just imagine the possibilities. I know its a different way of thinking and building a site from a .NET view. But this is the way all major web platforms are built. Ruby on Rails, PHP, Java..etc. It makes sense for the web and makes development life a lot easier.

If you want some tutorials on some of the topics I talked about ScottGu's Blog has some really nice posts that get into the details of ASP.NET MVC.

jQuery's site has a lot of nice documentation on what jQuery is and how it works.

Tuesday, September 2, 2008

Google Chrome

Well Google Chrome beta is OUT!!!

Check out some the screen shots of the different features.

Javascript Console


View Source


Options Dialog box's






Find
The cool thing you don't get from this screen shot, is that while you are typing the highlight jumps through the page looking for the key word.


Element Inspector
You can right-click any element and see the html behind it.
In the Element Inspector box it has a handy tree path of elements at the bottom where the right-clicked element lives. This function is in a lot of HTML editors, like Microsoft Expression.


Search Highlighted text
If you highlight a piece of text and right click it the pop-up menu will give you an option to search for the text. Right now my search provider is Google but it will use what ever you set your search provider too.


Incognito Window


Task Manager
If you don't think Google is using this browser as its interface into the Google OS.
Just look under the developer menu for "Task Manager". It breaks out how much resources each page is taking up and if its causing the tab to lock up. Its even got a "Stats for nerds" link that shows you even more info about each web page. Like what process ID its running on and breaks down the the memory into how much private,shared and virtual memory your using. It even shows the memory foot print of Chrome and every other major browser.....NICE!!



The weird thing I noticed is that it installs its self not under the "C:\Program Files" folder but under "C:\Documents and Settings\[USER NAME]\Local Settings\Application Data\Google\Chrome\Application\chrome.exe"

Not surprisingly GMail and iGoogle load really fast!!

When you go to Google's Toolbar page. It recognizes the browser as a pre-Firefox 2.0 browser. I guess its not supported yet or maybe they are planning on baking in the toolbar functions.

Final thoughts
I'd say for a first beta, this browser is very stable and FAST!!
The one thing I have a complaint about, and this complaint I actually have with every browser. Is that the fonts, links & other html elements don't render as nicely as in IE. IE always seems a little softer on the viewers eyes.
I'm looking forward to see what kind of Google services they start hooking into it.

Update


Happy Easter
For you non-programmers, there's an Easter egg, too: type "about:internets" into the Omnibox.

Other "about:" features
• about:memory shows how much memory the browser--and any other Web browser--is using. Conveniently for Web developers, it also shows how much each Web site in a browser tab is using.

• about:stats shows a wide range of internal measurements such as the time taken to initialize Chrome, load Gears, or perform various operations while running JavaScript programs with Chrome's V8 engine. The page also carries the amusing note, "Shhh! This page is secret!"

• about:histogram into Chrome's address bar shows many performance details.

• about:network tracks the detailed network activity of using a Web site.

• about:version shows details of what version of Chrome is running, along with the user-agent text that the browser reports when identifying itself to Web sites. Why "Mozilla" is in this string is a mystery to me, though perhaps it has to do with the way Chrome can use Firefox plug-ins; why "Mozilla" is apparently in the iPhone's user-agent text is even more a mystery.

• about:histograms graphs various performance measurements such as the time taken to autocomplete text users type into the browser.

• about:crash crashes the active browser tab.

Monday, July 28, 2008

2008 San Diego Comic Con

This is the first year I went to the International Comic Con and it was amazing and claustrophobic. They had some really cool sessions about the new season of HEROES & LOST. I also got to see the pilot for a new show called FRINGE by J.J. Abrams. Its kinda like a X-Files meets CSI. The pilot was very good...can't wait to see more. Plus they had some kick ass movie previews of X-Men Origins: Wolverine, Terminator: Salvation (which by the way is shaping up to be a really good movie on how John Conner becomes the leader of the resistance) & The Watchmen.

The Comic-Con offered a little bit for everyone. They had ANIMA, Movie & Show previews, Video Games. How To Sessions on the entertainment industry like, breaking into game development, becoming a custom designer for shows and movies & portfolio reviews by the big guys at Marvel, DC and many others. In the booth section you had the WB, Marvel, DC, XBOX, Playstaion, artists and of course comic book sellers. They also had great panels with Matthew Fox and the writers from LOST, Kevin Smith, Frank Miller, director and stars from Terminator Salvation and ton of other guests.

Not everything was great. The amount of people that were their was astonishing...125,000 people attended! That's like the amount of people in an average city squeezed into one building. You felt like cattle...Mooooo!! Also if you really wanted to see a certain session, be prepared to get there early and get used to waiting in lines.

Overall though it was a great experience and something any scfi or comic book nerd should experience at least once.

Here are some pictures from the Con...




























Monday, July 14, 2008

ArcGIS 9.3 License Manager...Where are my licenses!


Don't know if anyone has had this problem. I just updated our license manager to 9.3 and now it doesn't want to dish out licenses. This drove me a little batty for a while because I would run through these trouble shooting steps and it would work and than later in the day it would stop working again. Well I finally noticed that when I would log out of the machine, the ARCGIS.EXE would stop running. That's when it hit me, the windows service isn't running. So I took a peek at windows services and what do I find? No ArcGIS License Manager Service! For some reason the install didn't create it. Well luckly I have this sweet little tool that I've been using since my VB6 days that can create a windows service from any .exe. Once I ran the tool and created the service everything was at one with the universe.

Update 08-29-08:
Use this exe "C:\Program Files\ESRI\License\arcgis9x\lmgrd.exe" to create the service and name the service "ArcGIS License Manager".

Monday, March 24, 2008

2008 ESRI Developer Summit

Some news for all you GIS nerds out there...

ArcIMS
- ArcIMS is dead; there will be no new features or enhancements for it. They are really pushing ArcGIS Server and did not mention ArcIMS once. Support is there but I don't think for to long.

ArcReader
- It looks like ArcReader will be going by the way side and ArcGIS Explorer will take its place. I spoke with one of the developers from the ArcGIS Explorer team and they say they are moving in that direction. They are the same people that work on the ArcReader team so new development will go towards ArcGIS Explorer.

ArcGIS Explorer 9.3
- Explorer will be able to open shapefiles and FileGeodatabases locally but not Personal Geodatabase.

- The interface has changed and it looks like the ribbon in Office 2007.

ArcGIS Server 9.3
- The new REST API is very impressive and I think will be the default way of interacting with ArcGIS Server. They say in 9.4 you will be able to edit data through the REST API also for geometry and attribute data.

- You can use the new REST API to run geoprocessing tasks and return their output to a custom viewer, Google Earth, Google Maps or Virtual Earth. You can even send queries to minimize your return output all using a url sent to ArcGIS Server.

- ArcGIS Server has the ability to serve out data in multiple formats one of them being kml/ kmz format. No need to convert data into kmz anymore.

- New JavaScript API will make things a lot easier on the web front end. There touting it as the new Avenue for ArcGIS Server. The JavaScript API is based on the REST API. Plus the JavaScript and REST API are license free unlike the Web ADF.

- Web ADF has been rearchitected to use Microsoft's AJAX Framework and is also a hybrid system. Some things will happen on the client side and some on the server side, performance has also been increased.

- 9.2 Web ADF applications will need to be converted for 9.3 Web ADF. They do offer a tool to make that conversion. (Of course during the session it bombed and errored out. So let's hope they fix that before release.)

- The architecture needed to support the WebADF hasn't changed though. Still uses com ports to connect to ArcGIS Server. Plus I didn't hear of any license changes either.

ArcSDE
- Full support for the open source & free database server PostgreSQL has been added.

- You will be able to query and edit geometry data using TSQL on all database platforms. This will be limited to simple features only. Topology, networks or any advanced features will not be supported.

- They will be retiring the sdebinary format and standardizing on the st_geometry format. There shipping a ArcTool box tool that will make it easy to convert to the new format.

- There will be no further development on SDE command line functions but it will not go away. It will be supported like Workstation.

ArcMap 9.3 & beyond
- Looks like a lot of bugs and performance problems will be fixed in 9.3. They used Coverity specifically for this task and found bugs that have been in there since 8.3…..cross your fingers folks ;-)

- VB6 will not be supported in 9.4. VB6 applications will need to be converted to .NET.

Wednesday, March 5, 2008

Singularity source code

A while back I wrote a post about Microsofts expermental OS built using an extension of C# . Now they have suprised us with the release of a RDK which includes source code, build tools, test suites, design notes, and other background materials. Cool ;-)