Marko Apfel - Afghanistan/Belgium/Germany

Management, Architecture, Programming, QA, Coach, GIS, EAI

  Home  |   Contact  |   Syndication    |   Login
  173 Posts | 2 Stories | 140 Comments | 4 Trackbacks

News



Twitter | LinkedIn | Xing

Article Categories

Archives

Post Categories

BizTalk

C#

Enterprise Library

SAP

SQL Server

Technologie

Monday, December 8, 2014 #

After a longer period of blogging abstinence I had again to search the right plugin for Windows Live Writer (WLW) to get a pretty printed source code.

I remembered ones in the past which made me really happy. That one I couldn’t find anymore. So I write this article to have a guideline in the future and maybe to collect some advices from you reader, helping me to find that one I initially searched for...

btw: I really appreciate, if somebody could advice me a good blogging software for Mac. Currently WLW is the unbeaten champ, but also with Bootcamp and Parallels it is often not that fluent as I would wish.

Syntax-Highlighter

That DLL (WindowsLiveWriter.SourceCode.dll) I found on an old hard disc. According the timestamp it is from 01. APR 2009. By copying it to the plugin folder (“C:\Program Files (x86)\Windows Live\Writer\Plugins”) it will be available with the next start of WLW as “Source code plug-in”.

Dialog

Straight forward, focusing the necessary things.

image2

Displaying in WLW

There is no hint, that this is specifically rendered content.

image8

Displaying on blog

// A Hello World! program in C#.
using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            Console.WriteLine("Hello World!");

            // Keep the console window open in debug mode.
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
}

PreCode Snippet

This plugin is available from http://precode.codeplex.com/ and the newest version is from 07. MAR 2010. It comes as an msi and after installation you can find the resources under “C:\Program Files (x86)\FiftyEightBits\PreCode”.

Dialog

The UI goes its own way.

image11[1]

Displaying in WLW

Okay – clearly, this a something special ..

image14

Displaying on blog

// A Hello World! program in C#. using System; namespace HelloWorld { class Hello { static void Main() { Console.WriteLine("Hello World!"); // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } }

Syntax Highlighter

For the moment it is the oldest plugin in my test. You can download it on http://wlwsyntaxhighlighter.codeplex.com/ as an msi. After the installation it appears as SyntaxHighlighter in the plugin list.

According the web page there should be an option dialog available – but I couldn’t find it.

Dialog

Condensed to the minimum ..

image17

Displaying in WLW

You cannot click inside that code fragment. It appears as a complete object and so you see this frame around – with the additional links on top.

image20

Additionally on the right a side bar pops up where you can modify the code and set some properties

image6

Displaying on blog

  1. // A Hello World! program in C#.  
  2. using System;  
  3. namespace HelloWorld  
  4. {  
  5.     class Hello   
  6.     {  
  7.         static void Main()   
  8.         {  
  9.             Console.WriteLine("Hello World!");  
  10.  
  11.             // Keep the console window open in debug mode.  
  12.             Console.WriteLine("Press any key to exit.");  
  13.             Console.ReadKey();  
  14.         }  
  15.     }  

Code Highlighter

This plugin is based upon the the code of “Syntax Highlighter”. But instead of forking the original VB code base the author decided to rewrite in C#. Its on you to download an installer or the plain DLL and save that in the plugin folder as described earlier. The second option was sufficient for me. After a restart of WLW a new plugin named “Syntax highlighter”. I don’t know what the official name is – “Code Highlighter” or “Syntax highlighter”. One term appears in the URL and the other one in the plugin themselves.

This file is from 06. DEC 2009.

Dialog

It is pretty much the same as its parent.

image3

Displaying in WLW

Also similar to the parent only other default values for the properties, which you can again modify in the sidebar.

image61

Displaying on blog

// A Hello World! program in C#.
using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            Console.WriteLine("Hello World!");

            // Keep the console window open in debug mode.
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
}

Code Formatter Plugin for WLW

This plugin you can find here http://code.google.com/p/codeformatterpluginforwindowslivewriter/. You can download an exe or msi, but because the exe calls the msi, you are fine with msi only.

Dialog

It comes with a confusing UI. But you can choose another rendering engine and also the type of insert (as text or png). My first try under Parallels’ coherence mode completely ruined the interface. I was not able to use it at all. This is a test which I also have to make later with the other ones.

The UI is split in two parts – on the left side some options and on the right side more or less as an extension the code window.

image31

Displaying in WLW

Again it is a plugin which freezes the code and shows a frame.

image91

And similar to the others with this behavior it displays then a sidebar for adjustments.

image12

Displaying in WLW

// A Hello World! program in C#.
using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            Console.WriteLine("Hello World!");

            // Keep the console window open in debug mode.
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
}

Syntax Highlighter from Arnold Matusz

With finishing that article I found my old favorite. It is this plugin you get here http://blog.dreamlabsolutions.com/post/2009/02/19/Syntax-Highlighter-for-Windows-Live-Writer-2009.aspx. Save the dll into the plugin folder and after a restart you can use it.

Dialog

Everything we need and like wrapped in a clear straightforward UI

image[3]

Displaying in WLW

It inserts the code with some formatting options in the back. So there is no frame or the opportunity to modify the appearance later with a sidebar. But of course you can edit the code themselves.

image[6]

Displaying on blog

// A Hello World! program in C#.
using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            Console.WriteLine("Hello World!");

            // Keep the console window open in debug mode.
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
}

 

 

.


Friday, December 5, 2014 #

Introduction

Motivation

How about a secure access from outside into the own home network? So we can maintain machines, change configurations, getting files, .. from where ever we are. For this we let a VPN tunnel be established between a local RPi in our network to a hosted server. If this hosted server that offers a web based console we only need a web browser to access our own resources at home.

The idea of the project comes from my colleague Michael and I like to thank him for the first inputs to get that running.

Starting point

Instead of mess up your official hosted server I can only recommend to start with one of the cheap offers to start. I take www.digitalocean.com for such server playgrounds, which has a real nice package for only $5 per month. But in reality you pay only cents, because only running systems count. So my account, initially charged with $5 has still more than $4 for further tests.

But beside this, they also make it so easy to get a new machine up. For the creation you only define the name, choose the “hardware” specification and select the operation system – and seconds later you receive a mail with the credential and the information, that your machine is up and running. Amazing!

In case you are interested in testing this provider, let me know. Currently I can send you an invitation with a value of $10 or use this link https://www.digitalocean.com/?refcode=5fde389ac6da (be aware, they request your credit card details, but don’t charge from it. it is only for future business with you and you can delete the details later). $10 - that’s enough for a long time play period.

Realization

Preparing the server

For this sample I choose a Debian based machine with the smallest hardware specification in New York.

btw: having a server somewhere outside your residence country, it offers you some interesting benefits. Why? Because you get an IP which let the surfed page not track where you really come from – you obfuscate the one your router gets from your provider – and location based services could offer you other things. 
So far I found the following:

  • Cheaper flight tickets
    Typical price watching portals try to offer you the prices from the area you come from, but the prices vary. www.skyscanner.com offered my a 10% better offer for the same connection by another location.
  • Avoid blocked YouTube videos
    In Germany the GEMA (and others) let YouTube block a lot videos because of licensing issues (http://en.wikipedia.org/wiki/Blocking_of_YouTube_videos_in_Germany). Notably for videos with music you end up in “Dieses Video ist in Deutschland leider nicht verfügbar” (“Unfortunately, this video is not available in your country.”).

Okay – so let’s take this configuration now:

image

And not a half minute later your machine is online with a public IP address (here 104.131.97.68) and after a few minutes you get the mail with your credentials.

image

Connect to the new server, update it and install OpenVPN

Now ssh to this machine, confirm the following question with yes and update your password. Use the IP and password you get via mail.

ssh root@104.131.97.68 

Let’s update the installation with

apt-get update

and install OpenVPN with

apt-get install openvpn

Creating the certificates and keys

The OpenVPN package contains some nice scripts (called easy-rsa) to create all the certificate stuff we need later. So let’s copy that stuff to a place with easier access and go to this folder.

cp -r /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn

cd /etc/openvpn/easy-rsa/2.0/

There is a file which contains the default properties for further certificate creations. So we adjust the content for our needs

nano vars

the last lines contain some export commands and that’s the place where we have to specify our values

export KEY_COUNTRY="DE"
export KEY_PROVINCE="BY"
export KEY_CITY="Freising"
export KEY_ORG="Private"
export KEY_EMAIL="dont@spam.me"
export KEY_EMAIL=dont@spam.me   
export KEY_CN=Private
export KEY_NAME=Private
export KEY_OU=Private

After saving the file and quitting nano we source these variables

source ./vars

and clean our environment for the new certificates and keys

./clean-all

We don’t have certificates from a Certificate Authority so we create our own ones.
Therefore we start by faking us an own Certificate Authority

./build-ca

You see during the input that the default values are taken from our exported ones.

This creates some files below the “keys” folder

 

    -rw-r--r-- 1 root root 1306 Dec  5 13:49 ca.crt
    -rw------- 1 root root  920 Dec  5 13:49 ca.key

 

Time to create the keys for our OpenVPN server. You see the same game with default values here. At the end you confirm the two questions with “y”.

./build-key-server OpenVpnServer

We get some new files under the key folder

 

    -rw-r--r-- 1 root root 4002 Dec  5 13:53 OpenVpnServer.crt
    -rw-r--r-- 1 root root  712 Dec  5 13:53 OpenVpnServer.csr
    -rw------- 1 root root  916 Dec  5 13:53 OpenVpnServer.key

 

With the next command we create the Duffie Hellman stuff. On the Digital Ocean server this is done in seconds. I did the same on a Raspberry Pi for a similar project and had to wait around half an hour. So you can image how powerful the Digital Ocean equipment is!

./build-dh

which creates the next file

 

    -rw-r--r-- 1 root root  245 Dec  5 13:57 dh1024.pem

Creating the keys for the client

Later we need the keys for our client so let create them now too. The name of our Raspberry Pi will be alarmpi, so we use this name for key too. Again you have to confirm the last two questions with “y”.

./build-key AlArmPi

The next set of files was created

 

    -rw-r--r-- 1 root root 3870 Dec  5 14:08 AlArmPi.crt
    -rw-r--r-- 1 root root  704 Dec  5 14:08 AlArmPi.csr
    -rw------- 1 root root  912 Dec  5 14:08 AlArmPi.key

 

Again we copy the necessary files to a place with easier access in further steps

cp /etc/openvpn/easy-rsa/2.0/keys/ca.* /etc/openvpn/

cp /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem /etc/openvpn/

cp /etc/openvpn/easy-rsa/2.0/keys/OpenVpnServer.* /etc/openvpn/

Later we copy the client relevant stuff via scp to our Raspberry

 

Under /usr/share/doc/openvpn/examples/sample-config-files/ you can find a zipped configuration file for the server.

You can unzip it end use it as a template or documentation for the content we paste in the next step

gunzip -d /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz

But for now to make it easy, lets start with a simplified own one starting from the scratch

nano /etc/openvpn/server.conf

Paste the following content into it

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/OpenVpnServer.crt
key /etc/openvpn/OpenVpnServer.key
dh /etc/openvpn/dh1024.pem
cipher BF-CBC
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
keepalive 10 120
comp-lzo
max-clients 10
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log /etc/openvpn/openvpn.log
verb 6

lets activate IP forwarding via

echo 1 > /proc/sys/net/ipv4/ip_forward

and modify the routes

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Now we can start our OpenVPN server

openvpn /etc/openvpn/server.conf &

check the last line of the log file

tail /etc/openvpn/openvpn.log

if everything is fine you see the last words

 

    Initialization Sequence Completed

 

additionally you can check the existence of the new /etc/net/tun device. This is our device for the tunneled traffic.

ifconfig

But be aware it can take a while to see it!

 

    tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 
              inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

 

Our OpenVPN server is now up and running and we can switch to the client configuration.

 

Preparing the client

For this tutorial the Raspberry Pi get a complete fresh Arch Linux for ARM distribution. Unfortunately the Arch Linux team provides no up to date image. So we use the latest one (http://downloads.raspberrypi.org/arch/images/arch-2014-06-22/) and let the pacman package manager make the update for us.

After burning the image an SD card and booting the RPi you can ssh that machine via

ssh root@alarmpi.local

It is important that server and client have around the same date and time. So first at all let’s set the clock of the system

timedatectl set-timezone Europe/London

timedatectl set-time "2014-12-05 20:02"

Be aware, Digital Ocean’s server run in UTC. So I try to use Europe/London to have the same time. For sure this is not the right way, but it works.

Otherwise I got errors by starting the service (SSL3_GET_SERVER_CERTIFICATE:certificate verify failed).

 

And next, let’s update the installation. This will download a lot (more than 100MB), because our image is from JUN 2014 and therefore a little bit outdated. Confirm all questions with “Y”.

pacman -Syu

and install openvpn

pacman -S openvpn

Yes, both sides – the server and the client – are using the same package. The used configuration during startup of the openvpn decides whether to act as a server or client.

Now check the availability of the client-side tun device

test ! -c /dev/net/tun && echo openvpn requires tun support || echo tun is available

You should get that output

 

    tun is available

 

Now we have to copy the key files from our server to the client. Again, use the IP of your server

scp root@104.131.97.68:/etc/openvpn/easy-rsa/2.0/keys/ca.crt /etc/openvpn/

scp root@104.131.97.68:/etc/openvpn/easy-rsa/2.0/keys/AlArmPi.crt /etc/openvpn/

scp root@104.131.97.68:/etc/openvpn/easy-rsa/2.0/keys/AlArmPi.key /etc/openvpn/

Now we have the necessary files on our Raspberry

 

    AlArmPi.crt          100% 3891     3.8KB/s   00:01   
    AlArmPi.csr          100%  708     0.7KB/s   00:00   
    AlArmPi.key          100%  920     0.9KB/s   00:00

 

On a Arch Linux system you can find the samples for client configuration files here:

/usr/share/openvpn/examples/

But again we start from the scratch.

nano /etc/openvpn/client.conf

And paste these lines

client
dev tun
proto udp
remote 104.131.97.68 1194
resolv-retry infinite
nobind
persist-key
persist-tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/AlArmPi.crt
key /etc/openvpn/AlArmPi.key
ns-cert-type server
comp-lzo
verb 3
log /etc/openvpn/openvpn.log

 

Start the client-side of OpenVPN

openvpn /etc/openvpn/client.conf &

and check again the last lines of the log file

tail /etc/openvpn/openvpn.log

if everything is fine you see again these last words

 

    Initialization Sequence Completed

 

If you see this message

 

    You must define TUN/TAP device

 

reboot your Raspberry

shutdown -r now

Verify the configuration

Traceroute

With traceroute it is easy to see the hops of our communication. To use is we have first to install the package

pacman -S traceroute

and then we can trace our traffic with

traceroute www.bmw.de

This should produce something like

 

    traceroute to www.bmw.de (23.44.193.230), 30 hops max, 60 byte packets
     1  10.8.0.1 (10.8.0.1)  261.505 ms  
     2  104.131.0.254 (104.131.0.254)  262.644 ms  
     3  162.243.188.229 (162.243.188.229)  261.967 ms 
     4  162.243.188.249 (162.243.188.249)  262.589 ms 
     5  net2ez-ewr.netarch.akamai.com (206.130.10.100)  262.931 ms

 

Outside visible IP

There are some of these “what is my IP address” services available, which shows you the IP of you entry-point to the internet. Usually that is the IP your router got. But with tunneled traffic it should be the IP of our OpenVPN server – the IP of our Digital Ocean server. Let’s check this.

Therefore we install a console based browser.

pacman -S w3m

and then we check our outside visible IP with

w3m www.whatismyip.com

In one of the first lines you see the interesting output

 

    Your IP:
    104.131.97.68

 

This is exactly what we expect – the IP of our Digital Ocean’s server and not the IP of our internet provider.


Tuesday, November 25, 2014 #

ClearCenter offers an almost ready to go VirtualBox image:

http://www.clearfoundation.com/Software/downloads.html

With the first boot it provides a web based configuration GUI via URL

https://10.0.2.15:81/

Per default it is not possible to access this URL from the host machine which runs the VirtualBox virtualization software. So it is necessary to forward the request to the virtualized guest (ClearOS).

Changing these settings doesn’t need a shutdown of the server, it could be made during a running guest system!

Select ClearOS machine > Settings > Network > Port Forwarding

I defined a forwarding of port 8181 of the host machine (here 127.0.0.1) to port 81 (as provided from ClearOS) to the guest:
(check the Guest IP, it is written in the welcome screen)

20141125.PortForwarding

Now it is possible to access the web based configuration tool via:

https://localhost:8181


During my first installation of ClearOS the (web) installer hangs during the system update step. It downloaded a lot but it didn’t applied the updates because of the error “Exception: Didn't install any keys”.

The easiest workaround to get rid of this is a manual update on a console. Therefore I switched to virtual machine and opened second console with ALT + F2 and logged in as root. With the yum package manager this is a simple task, run the command

yum update

Now the systems downloaded in my case around 100MB and applied the updates. During this the moment came where I had to confirm something with yes. After a while the system is updated and I could switch back to the browser with the installer.

It was necessary to went back to the previous step and also to reload the page once. Being back to the upgrade step the system now stated, that it is up to date and let me went to the next step..


Thursday, November 20, 2014 #

During updating/upgrading a fresh Moebius installation on a RaspberryPi with
apt-get update && apt-get upgrade
it brought this question:
Configuration file `/etc/issue'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** issue (Y/I/N/O/D/Z) [default=N] ? 
The default hint not to do that is mainly for longer running installations to avoid an overwriting of existing configuration files. In case of a fresh installation you should confirm with "Y".


Tuesday, June 4, 2013 #

Workflow

  1. Create KML file
  2. Save it to your public Dropbox folder
  3. Copy the public link
    image
  4. Paste this link in the search field of Google Maps
    image

Result

Enjoy your KML data in Google Maps

image


Monday, May 27, 2013 #

Context

Using the CTRL + image or image shortcuts to move between different heading levels works perfect. But if you use list styles it doesn’t switch the other defined types than headings. That’s because these shortcuts are the OutlinePromote and OutlineDemote shortcuts.

Solution

If you like to switch between the levels of a list style you have to use the decrease and increase indent buttons in the toolbar (image). To access this functionality via shortcut you have to add own one.

Remarks

Customize shortcuts to allow de- and increasing in list styles via shortcuts

  1. Start customizing with right mouse click on ribbon element and select “Customize the Ribbon…”
    image
  2. Press “Customize…” button by “Keyboard shortcuts:”
    image 
  3. Select “All commands” in left listbox “Categories:”
    image
  4. Select “IncreaseIndent” in the right listbox “Commands:”
    image
  5. Set cursor in “Press new shortcut key:” field and define your shortcut (e.g. Alt + Ctrl + Shift + image) and assign it via “Assign” button
    image
  6. Repeat it similar for “DecreaseIndent”

Saturday, May 4, 2013 #

IDEs, Editors, ..

Here are my favorites in descend order

Additional resources

Maybe the following packages are necessary or in minimum useful:

some (unordered) links


Wednesday, May 1, 2013 #

Situation

By installing BizTalk in a distributed environment it is essential, that the MS DTC (Microsoft Distributed Transaction Controller) have a unique CID. Notably by cloning machines in a virtual environment this is often not the case, if the customizing after cloning is too simple established. A lot of system guys don’t care about this IDs – they only change the SIDs of the systems.

To verify this, you have compare these IDs via RegEdit.

  1. Start RegEdit
  2. Goto HKCR\CID (there are around 4 GUIDs below this key)
  3. Open these GUIDs and look for the Description key with data: MSDTC.
  4. Check the GUID of the parent node from this key

The parent GUID of this Description key must be unique over all involved machines!

Solution

If this is not the case, do the following.
btw: In circumstance that there is often used the same process to clone the machines, you should go the following steps on all machines. Otherwise you need it for all without one.

  1. Open Services
    Normally you should see “Distributed Transaction Coordinator” with Status: Started and Startup Type: Automatic
  2. Open cmd prompt as administrator and run msdtc –uninstall
    After refreshing the view in Services (F5) there should no more the entry “Distributed Transaction Coordinator
    After refreshing the view in RegEdit (F5) there should be no more the CID-key
  3. run now msdtc –install
    After refreshing the view in Services (F5) there should be “Distributed Transaction Coordinator” again with Status: <empty> and Startup Type: Manual
    After refreshing the view in RegEdit (F5) there is now a new CID-key with new GUIDs below
  4. run sc config msdtc start= auto
    (yes – there is a space between equal-sign and auto!)
    After refreshing the view in Services (F5) there should be “Distributed Transaction Coordinator” with Status: <empty> and Startup Type: Automatic
  5. run sc start msdtc
    After refreshing the view in Services (F5) there should be “Distributed Transaction Coordinator” with Status: Started and Startup Type: Automatic

Remarks

Use the tools DTCPing and DTSTester.


Problem

I tried to add the Emmet (fka Zen Coding) package to Sublime Text 2. But by running this “Install Package” (CTRL + SHIFT + p) command

image

no packages were displayed.

Solution

No glue why, but I had to change the repository channels protocol (Preferences > Package Settings > Package Control > Settings – Default) from https to http:

image

And voila .. here we have the packages:

image


Situation, Problem

During playing a little bit with these WPF MVC F# projects inside SharpDevelop I stumbled over the situation, that I could not send F# snippets to the interactive window. The menu was not available.

Normally it looks like this:

Solution

If you would like to use the context menu “Send to F# Interactive” inside SharpDevelop during fsx developing, you have to ensure that this fsx file is part of an F# project!

fsx only as a solution item

no context menu “Send to F# Interactive”

image

fsx as a F# project item

context menu “Send to F# Interactive” is available

image


Situation

My private machine has Microsoft Visual Studio Express 2012 for Windows Desktop. This Visual Studio edition doesn’t allow to develop with F#. So I installed additionally SharpDevelop.

But it took longer as expected to get F# projects running in this environment.

Problem

Creating a new or opening an existing F# project ended up in this error:

“Please ensure that the F# compiler is installed on your computer.”

image

According the the installation hints from Use F# on Windows, I installed the following packages:

But no chance .. still the same.

I remembered an old blog post concerning a special entry in the config file of SharpDevelop to get F# running .. but still the same.

Reason

Indeed there is this reference inside all my *.fsproj files:

<Import Project="$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets" Condition="!Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />
<Import Project="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets" Condition=" Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />

And both folders are not on this machine.

My F# is located under C:\Program Files (x86)\Microsoft SDKs\F#\3.0\Framework\v4.0.

 

Solution

After a few more attempts to configure SharpDevelop to use F# from the location on my machine, I lost my patience. I decided to go the hard way: use a junction.
With Sysinternals tool Junction it is possible to link one of the missing references to an existing one.

Im my case this command made it:

junction "C:\Program Files (x86)\Microsoft F#\v4.0" "C:\Program Files (x86)\Microsoft SDKs\F#\3.0\Framework\v4.0"

image

After setting this junction, F# developing within SharpDevelop was possible.


Sunday, April 14, 2013 #

Installing redcar with

sudo gem install redcar

ends up in this error

Building native extensions. This could take a while...
ERROR: Error installing redcar:
     ERROR: Failed to build gem native extension.

I installed these additional packages:

sudo apt-get install open4
sudo apt-get install rubygems1.8
sudo apt-get install openjdk-6-jre´
sudo apt-get install firefox-dev
sudo apt-get install ruby-dev
and then it worked ....

Maybe the last one is the most essential one and all the others are not necessary.


Saturday, January 5, 2013 #

Problem

If you try to delete large folders with explorer it could run for several minutes. Also when you try to suppress the moving to recycle bin via SHIFT + DEL.

Solution

From all variants to do this, rmdir in command prompt is my favorite

rmdir /s/q <foldername>

btw: deleting of files with good old DOS-del is also a fast way – particularly when you redirect the output:

del /f/s/q *.* > nul

Thursday, January 3, 2013 #

Problem

If you go in Explorer to the GAC folder (%windir%\Assembly) a shell extension gives you a special view of the content there:

image

In this view you couldn’t copy the DLLs to somewhere else.

Solution

  1. With a special registry intervention you could deactivate the shell extension so that Explorer shows the content in a normal way.
    But this is like a hack.
  2. If you are practiced with command line you could go to the assembly folder
    image
  3. And the smartest with explorer is to map a network drive to \\<your machine>\c$\windows\assembly
    image
    and so you have access to your assemblies over the new drive:
    image