So one of the new features in Silverlight 4 is that you can make controls ‘dropable’ which means that you can drag files from the local machine and drop them on controls in Silverlight and access these files. This can be handy in a mapping application if for example a user wants to add data in to the application and view it on the map. I just quickly created a simple video that demonstrate this:
Links:
Tim Heuer - Silverlight 4 Beta – A guide to the new features
Jesse Liberty - Using Silverlight As Drop Targets
16950724-fe49-46e3-a7af-4358e987197a|0|.0
So Microsoft released the first beta version of Silverlight 4 at the PDC earlier this week. I am very impressed with the release frequency from the MS Silverlight team and they also seem to add the stuff that we developers are asking for! Good job! If Microsoft continues to develop Silverlight with this speed and with the same good quality then I am thinking about becoming a fulltime Silverlight mapping developer :)
There are a lot of new stuff coming in Silverlight 4 and here are some of them (my favourites):
- Comprehensive printing support – FINALLY! I expect a good client side printing solution in ESRI-s Silverlight API next year!
- The CLR now enables the same compiled code to be run on the desktop and Silverlight without change – yes!
- Enhanced databinding support – again..
- MEF supports building large composite applications - nice
- Webcam and microphone to allow sharing of video and audio for instance for chat or customer service applications
- Bring data in to your application with features such as copy and paste or drag and drop – this could be useful in mapping applications – add data!
- Support for Google’s Chrome browser – This is good! No more annoying scrolling issues..
- Performance – Starts quicker and run 200% faster than the equivalent Silverlight 3 application
- Multi-touch support – I need a new multitouch laptop!
- Provide support for ‘toast’ notification windows – eg. Outlooks popups
- Read and write files to the user’s MyDocuments, MyMusic, MyPictures and MyVideos folder (or equivalent for non-windows platforms) for example storage of media files and taking local copies of reports
- Run other desktop programs such as Office, for example requesting Outlook to send an email, send a report to Word or data to Excel
- COM automation enables access to devices and other system capabilities by calling into application components; for instance to access a USB security card reader – Major one!
Ok, so there are a lot of new good features in Silverlight 4 and a lot of them can be useful for mapping applications. The one that strike me as the most interesting is the last one. Silverlight is now starting to erase the clear border from a desktop application and a web application. With this new functionality you can call COM objects on the client computer to do specific things. There is obviously a security model in place to minimize the risk for a hacker to abuse this functionality.
I have seen a good example (see link below) on how Skype and Silverlight now can be integrated through this functionality.
So what does this mean for our mapping applications written using the ESRI Silverlight API? Well, I guess it will be possible to access client side ArcObjects from Silverlight? I guess it will be possible to write own client side libraries that we then can easily install on the client side and access from Silverlight? We can also access other libraries that are usually installed on machines – any of them that we can use to create new functionality?
So the big question now is to think about all the good stuff that we now can enable in our mapping applications using this new COM functionality!
It will be very interesting to see what ESRI will do with the Silverlight API for ArcGIS Server in Silverlight 4. I can see a number of features that now can be added in to their API that enables the new good functionality in SL4. I guess we will find out at the developer summit 2010..
Silverlight 4 will be released Q2 2010..
Links:
Microsoft Silverlight 4 – whats new and how to get started
Shawn Wildermuths blog
Tim Heuer
Silverlight 4 and Skype
18779995-3e77-4388-9d6d-b11d36767aed|0|.0
I read a lot of books (95% related to computer science and programming –> geek!) so my home office starts to look like a library with books everywhere! I am trying to keep all my other media (music, films, series etc) in a digital format so I decided last week it was time to go all digital with my books as well.
I read a few reviews about different E-readers and decided in the end to go with Amazons new version of Kindle:

I have now had my Kindle for just over a week and I have already read 2 books. I am really happy with it and I will only buy digital books from now on!
Things I like about my Kindle:
- Long battery life (haven’t charged it yet!) thanks to the E-Ink. But turn off the wireless when you don't need it!
- Can hold over 1500 books on the device
- Books stored centrally so I can access them from different devices
- Real-time dictionary
- Add a note or a bookmark in the books
- Buy new books straight from the device (and you have them within 60 seconds..)
- Search easily within the book
- Change the text size
- Cheaper books (not all books I guess but the two ones I bought was cheaper actually!)
- The Text-to-speech function (doesn’t work terrible well on programming books though)
- You can get RSS feeds, PDFs and newspaper streamed to your device (haven’t used this and probably won’t)
- Easy to carry with you – don't have to carry around a big fat book anymore!
- But the best thing is that I don’t have to store books in my house anymore! Its all digital now!
Even though there are a few things that could have been better with the new Kindle I must say that I am very happy with it so far.
e28b04bd-cca6-4345-ab20-5c26c83b8a63|3|2.3
I just downloaded and played around with the new Silverlight control for Bing Maps. It just took me a few minutes to download, install and create a simple map application:

All information on how to get started here:
http://www.bing.com/community/blogs/maps/archive/2009/11/09/bing-maps-silverlight-control-1-0-released.aspx
And check out the interactive SDK here:
http://www.microsoft.com/maps/isdk/silverlight/
56a42b2e-1cd3-4de7-96a9-77944999ce92|0|.0
Google Wave comes with a map gadget that helps you pin point objects to the map and allow your Wave friends to use them as well. So user A can draw an object on the map and user B can then view the point/edit the point etc.
This is how you use the built-in map gadget in Wave:
1. Create a new wave (or use an existing wave) and hit the “Add Map Gadget”:
2. After the map gets added you can then draw things on the map and add notes to that geometry. You can also search data on the map and choose which background map you want to use:

3. Once you hit “Done” the information is saved and the other users within that wave can access the map notes (below is the view when another user looks at the map):

4. The second user can also edit the geometry/notes and everything is captured so it is available through the playback function! So if new users gets added to that wave they can see how the geometry has changed over time by different users.
11d877f3-f6a1-4645-81c0-4d4210bdde60|0|.0

So I (finally) got my sandbox account for Google Wave a few days ago and I have now started to play around with the APIs. There are a lot of new concepts to learn when building applications for Google Wave and I have just started so I still have a lot to learn. The first example I did was very basic and that was to write a simple gadget for Wave containing a ArcGIS Server map using the ESRI JavaScript API. This gadget can be included in a wave and will display a map:

This is the simple workflow to build your own ArcGIS Server Map within a Google Wave:
1. Just create a simple XML file that looks like this:
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Hello Wave">
<Require feature="wave" />
</ModulePrefs>
<Content type="html">
<![CDATA[
<!-- ADD YOUR MAPPING LOGIC HERE -->
]]>
</Content>
</Module>
So where my comment is (“add your mapping logic here”) you can just paste in your html code that contains the mapping functionality. In my example I just used some sample code from ESRIs Resource center: http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/arcgis/help/jssamples_start.htm
3. Host this XML file somewhere on the web so you get a public URL to the file
4. Then just create a new ‘Wave’ and click Debug->Extensions->Add Gadget so this popup opens:

5. Just type in your URL to the XML file and hit “Add by XML”. The map has now been added to your wave and you can use the functionality within Wave (in this case just map navigation). This is all you have to do!
6. You can also add the gadget to your Wave using “Add Gadget by URL” (the green button below) if you don't want to run it in debug mode:
This is obviously a very basic example but the Google Wave APIs are very interesting and I have a lot of ideas on how to integrate Google Wave and GIS using ArcGIS Server. I hope I get some time soon to blog about more advanced things you can do when combining ArcGIS Server and Google Wave..
Here are some useful links regarding Google Wave:
bf6a3725-0996-4d58-a8a0-a6f0c0bfc75c|0|.0
One thing in Windows 7 that I use frequently is the BitLocker functionality to protect my USB sticks. It is so easy to use and I don’t have to worry about what would happened if I someone knicks it (well, ignore serious hacker attacks).
BitLocker has actually been around since Windows Vista but Windows 7 and Windows 2008 Server R2 supports encrypting removable drives.
This is how easy it is to protect your USB stick:
1. Insert your USB stick in to the computer
2. Right click on the USB drive in Windows Explorer and choose “Turn on BitLocker…”

3. This opens up a wizard that you have to step through.
The first step let you specify if you want to protect your USB stick with either a password or a smart card. I just type in a password (could be anything as long it is complex enough) and hit “Next”.

4. In the next step you have to specify a way of saving a recovery file to the disk. This helps you to access the data in case you forget the password you specified in step 3. So you can either save the recovery key on a file or you can print the recovery key. Then hit “Next” again.

5. That's all you have to do. Just hit “” and then you are done! Easy enough right!


Now when you insert the protected USB stick in to your computer you are required to enter the password in order to get the data on the USB stick:

You can also do more BitLocker stuff if you go in to the BitLocker section in the Control Panel:

Just remember that you need to make sure that the computer you will use your USB stick with has to support BitLocker so don’t take it with you to an important meeting and then realize you can’t access your data.
Also remember that if a serious hacker wants your data – he/she can get it anyway! But at least it keeps most people away from your important data.
You can also as an IT admin apply various Group Policies to control the protection of your data in a better way.
More information:
Bitlocker on wiki: http://en.wikipedia.org/wiki/BitLocker_Drive_Encryption
Good YouTube video: http://www.youtube.com/watch?v=yyYo4IPcykA
BitLocker on Microsoft.com: http://technet.microsoft.com/en-us/windows/aa905065.aspx
79690679-35e7-4c39-832e-12a3f95c9b39|1|5.0
By Erik Nyberg at September 22, 2009 05:06
Filed Under:
My trial period for MapIt expired like I was expecting it to do after 60 days. But when I tried to reinstall it on my Windows 7 machine it actually worked! So now it looks like I have got another 60 day trial on the same machine..
Bug or a nice friendly approach from ESRI?? Either way it would be nice if ESRI could drop the time limitation since they already have limited functionality during the evaluation:
-The Spatial Data Assistant only imports 100 records from a shapefile into SQL Server or only geocodes 100 records in a SQL Server table.
-The Spatial Data Service only returns 100 records for a single query.
I have also contacted ESRI to see if I can get a MapIt license as part of my EDN subscription. My guess is no, but waiting for a reply..

8ce29c35-59d5-46de-8ee1-eda687de01eb|0|.0
By Erik Nyberg at September 19, 2009 16:44
Filed Under:
Here is a good ESRI page if you are working with any of the ArcGIS Server APIs and want to get some ideas, inspiration or possible solutions.
Url: http://www.esri.com/software/mapping_for_everyone/api/index.html
There is first of all one getting started page that helps you get started with the APIs.
You will also find a Sample Gallery divided in 3 categories: JavaScript, Flex and Silverlight.
There are also some references to online data that you can use in your applications:
You will also find live user sites and you can submit your own site if you would like publicity:

a97b5700-7720-4632-aa3e-7eddf8333c66|1|5.0
By Erik Nyberg at September 18, 2009 14:48
Filed Under:
If you spend a lot of time in Visual Studio you really have to download and use CodeRush Xpress (if you haven't already done it). It is a free add in for Visual Studio 2008 from devexpressthat helps you as a developer to code faster and better in many ways. You can download it from here: http://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/ (the installation is very fast and simple).
To get started you probably want to watch their introductory video on their website which explains on how to use the tool. They have other videos as well and I would also suggest that you download and print off this PDF file that contains a lot of the short cuts and templates that you will use a lot.
Here are a few examples of minor ‘CodeRush Xpress for C#’ functions that I use all the time:
1. The help lines
If you have a lot of code with loops, if statements etc then the help lines are very helpful since you can track where everything starts and finish. Look at the red rectangles below and you see that it is a thin line between the brackets.
2. Camel Case Navigation and selection
This allow you to jump between the parts within a camel case name just holding in ALT and pressing left key or right key. If you also hold in shift it select the part of the name.
3. Declare variables
There are many ways of declaring things faster using CodeRush Xpress, here is one of them:
If you have a function like this:
private static string fnSayHello(string name)
return string.Format("Hello {0}", name);
and then you want to call that function by declaring a variable that will hold the result for that function call like this:
var helloPhrase = fnSayHello(name);
If you use CodeRush Xpress to declare your variable instead you can start of by typing the function name and pass in the parameters. Then you just hit the Refactor Keys and select to declare it in the menu that pops out. Then it creates the rest of the code automatically for you. It will not save you great amount of time in this case but since you probably do these type of things a lot it will save you some time in the long run.
There is a lot of great functionality within this add-on so I do recommend you to check out their videos asap and get started if you haven’t done it already.
1a25048a-843e-4f6f-9516-9660943da74a|0|.0