Wix: Installing a shortcut to a URL with an icon

For months now an installer that I created using the InternetShortcut tag has been without a nice icon.

I decided to trawl the web and work out how to create a shortcut that could contain an icon.

It turns out you can actually use a standard Wix Shortcut IF you perform a few steps. First you need to define an icon like so:

<Icon Id="Shortcut_Icon.ico" SourceFile="<path to icon>" />

Note: The Id of the icon has a .ico extension. This is important as Wix does not generate a correct shortcut if this is not present.

Then, you need to setup a property which contains the URL you wish to have the shortcut launch:

<Property Id="Shortcut_Url" Value="http://the.url.you.would.like.launched" />

Finally, you need to create a shortcut that uses both the icon and the URL property:

<Shortcut Id="SampleShortcut" Directory="DesktopFolder" Name="Sample" WorkingDirectory="SampleDir"
Description="Launches Website." Target="[Shortcut_Url]" Icon="Shortcut_Icon.ico" />

The result is a shortcut that will launch the users default browser to the specified URL.

ArcGIS Runtime for .NET

For the past 10 months my working life has been consumed by implementing functionality in and around ArcGIS Runtime for .NET. Our product does much more than just be a front end for a map but having that map nod working against the API has been a big part of what we have been doing.

I have had to remain fairly tight lipped on what we have been doing as we signed a NDA bit know that runtime for .net has been released I can start to talk about things more.

For the past year or so know it is plainly evident that Esri has upped their game. I always liked what the Silverlight/WPF/.NET team have been doing but the work that has been put into the core c++ runtime is impressive.

Over the course of the next few months I will blog on all things runtime so watch this space.

ORA-01034: ORACLE not available

I have seen this error so many times that I thought I would note down the resolution (for me anyway)

When logging into the database you get:

ORA-01034: ORACLE not available.
ORA-27101: shared memory realm does not exist

To solve you connect to sqlplus as follows:

sqlplus /nolog

Login in as a sys dba:

connect sys/sys as sysdba

When connected, startup the database using:

startup

The database will startup and can be connected to as normal.

15 years in Mobile GIS

Well there you have it. 15 years have gone by and I hardly even noticed it. I have been developing, consulting and a whole host of other tasks in the Mobile GIS world now for 15 years!

Back on January 5th 1998 when I joined Conic Systems Ltd. little did I know that I would be still in this industry.

Times have changed in the GIS industry over the past 15 years. I started developing in VB3 and C++ (can’t even remember what rev number!) using an in-house graphics/GIS engine which still to this day has some great ideas in it. It was the precursor to MapObjects and still has users.

Smallworld was dominant in the utility market at that time and the link between Smallworld and Conic took up the most of my time.

That was working life until, in very quick succession, Tadpole bought Conic and we moved from a proprietary engine to using ArcObjects. I never delved into Avenue programming and have only seen ArcView 3.x about 3 times in my whole life!

Now we are in an age of server based GIS with mobile devices syncing when they can.

Users have moved from laptops to iOS and android devices and expect fit fit purpose applications.

I happened upon the GIS industry and am glad that I did.

Switching between static and dynamic Dns

I was fed up typing in the IP address of test machines that are on a different domain and dns within my network so decided to work out how to quickly switch to using that DNS when at work and back to dynamic when not.

It turns out to be really simple. The DNS being used is adapter specific which makes sense when you think of VPN and multiple other uses so you will need to know the name of the adpater you are using.

In my case it is “Wireless Network Connection”

netsh interface ip set dns "Wireless Network Connection" static ;

to set it back:

netsh interface ip set dns "Wireless Network Connection" dhcp

netsh should be in your path so this can be run from any directory in the command line.