New York – Now and 400 years before
Another great TED talk… In this one, Eric Sanderson (one of the most famous WCS ecologist) talks about an awesome work he is doing at least during the last ten years – The Mannahatta Project.
“The goal of the Mannahatta Project has never been to return Manhattan to its primeval state. The goal of the project is discover something new about a place we all know so well, whether we live in New York or see it on television, and, through that discovery, to alter our way of life. New York does not lack for dystopian visions of the future…. But what is the vision of the future that works? Might it lie in Mannahatta, the green heart of New York, and with a new start to history, a few hours before Hudson arrived that sunny afternoon four hundred years ago?”
Mannahatta: A Natural History of New York City
You can watch the full talk here: Eric Sanderson pictures New York — before the City
Great Maps: Islands Seen from the Space
Awesome photos of some Islands as they are seen from the sky!
Source: Out of the Blue: Islands Seen From Space
Original Source: Nasa
Greenprint Priority for Microsoft Surface
A new demo using Microsoft Surface and ArcGIS Server from the ESRI’s Application Prototype Lab.
“The following demonstration uses the Surface to display a map of an area and instructs a remote mapping server to perform intensive suitability analysis. The parameters for the analysis are on the right hand side of the screen and the results are displayed on the left. This demonstrates how the Surface can be used to perform “what if” environmental analysis.”
European Free Satellite-Based Augmentation System

Yes, since October 1st it’s out there and is free! Read the full story!
EGNOS, is the first Satellite-Based Augmentation System for Europe. Basically it can be used to improve the accuracy of the satellite navigation systems, for instance, if you can get a precision of 20 meters using a common GPS receiver, with EGNOS, you can improve it about 10 times.. getting an accuracy of 2 meters. Most of the common GPS devices are already EGNOS aware, so probably, You don’t need to buy a new device.
EGNOS supports all the Europe and the eastern part of the Atlantic Ocean.
Portugal is one of the countries involved in the project. For more details on this topic go to here.

Inside IDEO
Probably most of You already know these videos.. I believe that these videos shows and explains how can You innovate based on certain rules and defined processes.. or not!
In these videos You can see how IDEO, one of the most important Innovation company all over the world, is from the inside and can watch how they produce a new prototype form the scracht.
The idea is to create a new shopping car in only five days!
Digitally Sign your code
In one of our R&D Department’s project (IDI), one feature needed was to let people select an extent and send the output data by mail, including an embedded picture of the map extent, its coordinates and other related info. All this has to be sent using the Outlook 2003/2007 mail client, installed on each of the client’s machines. This was a “must be/must have” requisits! Of course, installing the Outlook client on the server and make use of some webservices to call the Outlook stuffs was not a reliable solution, for several reasons, including server security.
The solution i found to let a webapplication, based on FLEX, to open on the client’s computer the Outlook mail editor was to deploy an ActiveX, preferably coded using the .NET Framework.
After some googling and coaching, one of my fellow colleagues made up his code and released a fully funcitional version of the ActiveX. One problem, though, was to let every client’s browsers to install and run the ActiveX control without the need to change the Security Features of each client’s browser.
The only way is to digitally sign the code! This is done by aquiring a certificate, sign your code with that certificate and deploy it on your webserver!
I found very little and confusing information about this subject on the web, and to help anyone with the same problems, i decided to publish this small how-to (also, this might help me too in the future… ).
After receiving your certificates from a certified CA (Certifacte Authority), install by clicking on each one.
Normally you should have received 3 certificates:
– a root certificate
– a private certificate
– a public certificate
Open your VS2008 IDE, open your solution, and build *EACH PROJECT SEPARATELY*.
– build your ActiveX Control first
– go to the Bin folder of your project (might be bin/Debug or bin/Release, depending of your compiling setup)
– check if the DLL or EXE (or other) exists
– go to Start Button -> Microsoft Visual Studio 2008 (or any other version) -> Visual Studio Tools
– open the Visual Sudio Command Prompt (note: NOT the Windows Command Prompt – aka cmd.exe)
– enter: signtool signwizard
– when asking for a file to sign, click on Browse, and go to your ActiveX Control Bin directory (might be bin/Debug or bin/Release, depending of your compiling setup)
– select the DLL or EXE (or other)
– NEXT
– select Typical
– NEXT
– click on Select From Store
– select the public certificate you wish to use to sign your code and then click Ok
– NEXT
– optionally, enter Description and Web Locator
– Next and Finish
All these steps are not obligatory, as they only sign your DLL or EXE file. Personally, i like to make sure that all my builds are signed, so that there won’t be any browser security issues upon installing or running.
Create a Setup project (if not existing yet…), set it to View-> File System, and Add a File. Browse to your newly signed DLL or EXE and select it as your primary output.
Also, on your Setup project properties (right-click on the project and select properties), go to Pre-Requisits and select according to your needs.
Close the Properties window. Left click (once only) on the Setup project once again, and on the properties tab, change the ESRI Outlook ActiveX Control
to whatever you wish. Remember that this value will appear on the Control Panel’s "Add & Remove Software" applet, so chose the most userfriendly name possible.
You can now build the Setup project. This will deploy in the /bin/debug/ folder an .EXE and .MSI file.
Add a .INF file in that folder (preferably, name it as your .EXE or .MSI file).
Add these lines in the .INF file :
[version] signature="$CHICAGO$" AdvancedINF=2.0 [Setup Hooks] hook1=hook1 [hook1] run=msiexec.exe /i "%EXTRACT_DIR%\Setup.msi" /qn
Change the Setup.msi name to whatever .MSI filename you’ve set on your Setup project properties, and save.
Now for the Cab file…
Any ActiveX should be installed using a CAB file. Of course, you can use other methods on your own risks, but as this is a Best Practice, the less risk you use, the best results you get!
To deploy .CAB files, you can use the CAB Setup Project from your Visual Studio, but personally, i prefer to use the CAB SDK.
Download the CabArc SDK available at http://support.microsoft.com/kb/310618 .
Still in the Visual Studio Command Prompt, go to the bin/debug folder of your setup project, and type the following line:
cabarc n Setup.cab *
This will zip all the files (the .EXE, .MSI and .INF files) into a unique file, named Setup.cab.
Type once again: signtool signwizard, and do all these step again, but now selecting your .CAB file
- when asking for a file to sign, click on Browse, and go to your ActiveX Control Bin directory (might be bin/Debug or bin/Release, depending of your compiling setup)
– select the .CAB file
– NEXT
– select Typical
– NEXT
– click on Select From Store
– select the public certificate you wish to use to sign your code and then click Ok
– NEXT
– optionally, enter Description and Web Locator
– Next and Finish
Et voilá! You now have a Digitally Signed .CAB file ready for install and a Digitally Signed your code.
You may now deploy it to your website.
You might want to check these websites for some more tips and tricks:
http://www.codeproject.com/KB/cs/C__Deployment.aspx
Other tips:
you may need (almost certainly) to let your ActiveX install as a Safe Plugin/Script or Executable. For that, add the following lines
[ComImport()]
[Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IObjectSafety
{
[PreserveSig()]
int GetInterfaceSafetyOptions(ref Guid riid, out int pdwSupportedOptions, out int pdwEnabledOptions);
[PreserveSig()]
int SetInterfaceSafetyOptions(ref Guid riid, int dwOptionSetMask, int dwEnabledOptions);
}
On your main ActiveX Control class, implement the IObjectSafety interface and add these lines:
private const int INTERFACESAFE_FOR_UNTRUSTED_CALLER = 0x00000001; private const int INTERFACESAFE_FOR_UNTRUSTED_DATA = 0x00000002; private const int S_OK = 0; #region IObjectSafety Members public int GetInterfaceSafetyOptions(ref Guid riid, out int pdwSupportedOptions, out int pdwEnabledOptions) { pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA; pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA; return S_OK; } public int SetInterfaceSafetyOptions(ref Guid riid, int dwOptionSetMask, int dwEnabledOptions) { return S_OK; } #endregion
Also, to automatically register/unregister the DLL or ActiveX control add:
/// <summary> /// Register the class as a control and set it's CodeBase entry /// </summary> /// <param name="key">The registry key of the control</param> [ComRegisterFunction()] public static void RegisterClass(string key) { // Strip off HKEY_CLASSES_ROOT\ from the passed key as I don't need it StringBuilder sb = new StringBuilder(key); sb.Replace(@"HKEY_CLASSES_ROOT\", ""); // Open the CLSID\{guid} key for write access RegistryKey k = Registry.ClassesRoot.OpenSubKey(sb.ToString(), true); // And create the 'Control' key - this allows it to show up in // the ActiveX control container RegistryKey ctrl = k.CreateSubKey("Control"); ctrl.Close(); // Next create the CodeBase entry - needed if not string named and GACced. RegistryKey inprocServer32 = k.OpenSubKey("InprocServer32", true); inprocServer32.SetValue("CodeBase", Assembly.GetExecutingAssembly().CodeBase); inprocServer32.Close(); // Finally close the main key k.Close(); MessageBox.Show("Registered"); } /// <summary> /// Called to unregister the control /// </summary> /// <param name="key">Tke registry key</param> [ComUnregisterFunction()] public static void UnregisterClass(string key) { StringBuilder sb = new StringBuilder(key); sb.Replace(@"HKEY_CLASSES_ROOT\", ""); // Open HKCR\CLSID\{guid} for write access RegistryKey k = Registry.ClassesRoot.OpenSubKey(sb.ToString(), true); // Delete the 'Control' key, but don't throw an exception if it does not exist k.DeleteSubKey("Control", false); // Next open up InprocServer32 //RegistryKey inprocServer32 = k.OpenSubKey("InprocServer32", true); // And delete the CodeBase key, again not throwing if missing k.DeleteSubKey("CodeBase", false); // Finally close the main key k.Close(); MessageBox.Show("UnRegistered"); }
That should do the trick!
Moving from Design to Design Thinking
Tim Brown, CEO of the "innovation and design" firm IDEO, says the design profession is preoccupied with creating nifty, fashionable objects — even as pressing questions like clean water access show it has a bigger role to play. He calls for a shift to local, collaborative, participatory "design thinking."
Watch the full talk here.
A Periodic Table of Visualization Methods
How you can visualize something?
Here you can find a lot of different methods to use depending on what you pretend.
There is a sample on which method, just move your mouse over the boxes.
O’Reilly Where 2.0 Conference 2010 Now Accepting Speaking Proposals
Check out these great themes to be discussed in the conference!
source: GIS and Science
Mobile: The iPhone, Android, and Symbian mobile OS’s are continually advancing the state of the art. By creating a wide-spread platform that allows for third-party development and geolocation they are bringing along the whole industry. The phone is going to become the primary I/O device for geodata in the near future. What new applications are you building for it? How are the social aapps effecting society and our notions of privacy?
Realtime Mapping: Mobile phones are being used to generate maps and other geodata. Sensors across the world are capturing more data every second. Reality mining systems are being used to release this data to users in realtime. Who is making the most of this deluge? How can they handle these new data sets?
Temporal Information: Realtime data requires the element of time to be added. This is uncharted design territory. How should time come to the Web?
Rich Analysis: Web mapping is moving past just allowing the display of data (aka red-dot fever). There are now many tools online that help people analyze data and could, in time, challenge traditional GIS systems. How is the Web different? Will end-users take up richer tools?
Geolocated Web: Every updated browser can now geolocate it’s user. Websites are now going to start using this information. What should they do with the information? What new services can be created?
Mobile Advertising vs. Services: Will people pay for their mobile apps directly or through ads? Which makes for a better product, a better user experience and a more stable revenue stream?
Augmented Reality: The combination of a camera, a GPS and a compass on a mobile phone is going to let us layer information on top of the world. What do you want to see? How will you edit the layers?
3D: Photosynth-like apps are becoming more commonplace. Google’s 3D Warehouse is filled with models. It’s safe to say that 3D is here. But do we need it? What are its limits?
Open Data: Governments are treasure troves of data. Increasingly they are releasing it online for free. How does open data effect the web? How can this data be widely available and yet maintain its creators? How is this critical information being put to use?
Crisis Mapping: The tools of neogeography are being used to spread the word of humanitarian and natural disasters. What are some of the best (and worst) examples?
Open-Source: The backbone of any independant mapping site is open source software. What are the newest tools that can be used to handle the location-enabled web?


