Author Archives: sburton

Gephi on Mac OS X El Capitan

Background

Short version: Upgrade to El Capitan broke Gephi

Long version:

For some of my research I use Gephi for graph visualizations. It’s not great, but every time I go looking for something better I’m unimpressed with the competition as well.

Unfortunately, the current version of Gephi requires Java 6 and is not compatible with the latest versions of Java.

In order to get it to work, I had perviously installed the 1.6 JDK on my Mac, and then updated the Gephi configuration file to point to that runtime.

This last week when I upgraded to the Mac OS El Capitan, it broke this (among other things…).

How I fixed it

I am mostly posting this for myself for future reference, in case I need to address this again in the future, but here is what I did to get it to work.

  1. I tried installing this hotfix: http://support.apple.com/kb/DL1572  This installs the legacy java runtime.
  2. I restarted my machine and still no luck. I’m not sure if the above did anything new, as I had previously installed this when I got it working originally.
  3. I found and updated the Gephi configuration file found at:

    /Applications/Gephi.app/Contents/Resources/gephi/etc/gephi.conf

  4. From my last battled, I had previously edited this to point to the correct (1.6) runtime. I had added this line:

    jdkhome="/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home"

  5. Apparently, with the upgrade this directory has now moved outside the /System directory to make /Library directly under the root. So I had to change it to:
    jdkhome="/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home"
  6. After that, Gephi started up just fine.

GAE – Git Push to deploy – “Failed to load application, threadsafe is a required field., none”

I have been looking at different PAAS options that can work with the firewall restrictions my students have (i.e., no SSH). Recently I have been looking into Google Application Engine (GAE). After following their basic tutorial, I then went through the tutorial for using Git, Push to Deploy.

On my first deploy I got the following error message:

remote: Deployment failed, details: { Failed to load application, threadsafe is a required field., none}

The solution was to add:

threadsafe: false

to my app.yaml file.

In hindsight this seems fairly straightforward, but it took a little bit of Googling around to track it down because I wasn’t sure what part of the deployment chain might be throwing this error (it didn’t come up when I used the standard deployment method), so I thought I would post it here as well.

TeXnicCenter Adobe Reader X not working

Apparently TeXnicCenter doesn’t like the newer version of Adobe reader. Its default configuration would open adobe for the preview but would not load the file. I finally found this post on another site that did the trick:

Please change your application to use following servername for Acrobat/Reader instead of “acroview” try the following:

For Reader X Use DDE_SERVERNAME = acroviewR10

For Acrobat X Use DDE_SERVERNAME = acroviewA10

Using Microsoft Remote Desktop over an SSH Tunnel

This assumes you are on a Windows machine trying to remotely login to a Windows machine, but you need to use an SSH tunnel to get through the firewall.

The overall idea is that you set up a port on the local computer to forward all traffic to a port on the remote computer. Then you use remote desktop to “remote” into the _local computer_, but because the traffic gets forwarded, you actually connect to the remote one. The one little catch is that Windows doesn’t think you should remote desktop to your own computer, so you can’t just use “localhost”, instead you can use 127.254.254.254, which will still route to the localhost, but won’t register to remote desktop as a circular reference.

1. Download and run putty.exe.

2. On the “Session” tab (the default one)
Under the Host Name, put:
your-account@hostname.com
Leave the Port at 22, and the connection type at SSH

3. Click the “Connection” tab on the side, and drill down to SSH and “Tunnels”

4. Under “Source Port”:
Enter 127.254.254.254:3389
(yes it is a little box, but put in this whole IP address).
This is an IP address that will map to the “local host” ip address, but because it’s not just “localhost” Windows will not “detect” the circular reference and let it through when you try to do the remote desktop. The port 3389 is the default port for remote desktop.

5. Under “Destination”, put the IP address you want to connect to (ie, the static internal IP address of the computer as if you were inside the network.)
So this will be something like 192.168.29.18:3389.

6. Go back to the session tab.
In the Saved Sessions box, type: “rd port forward” or something like that, and click “Save.”
Then for future use, you can simply select this session and have everything set up.

7. Click “open” and supply your account password. This will log you into a standard SSH session, but in addition, it will be forwarding traffic on port 3389 to the supplied one.
Leave this SSH window open in the background while you remote desktop in.

8. Run Remote Desktop.
(I click Start -> Run, and then type “mstsc” (Microsoft terminial services client) to run it.)
Under the computer name type: “127.254.254.254”
Again this will refer to “localhost” but then putty will redirect this port to the one on the remote computer.

9. Login to the remote computer and enjoy!

gnuplot box and whiskers plot

Every time I use gnuplot, I am amazed at how difficult it is to conjure up the simplest graphs, so when I finally get to the bottom of one, I’ll try to post the solution here as a reference for myself, and anyone else who might come looking.

If you’re new to gnuplot, you might want to get out now while you still can 😉

The box and whiskers plot

There are a few different styles of box and whiskers plots and this link gives a pretty good description.

The two gotchas for were what values you need and in what order. These scripts are set up to use the following columns, in order:

  • X value (for ordering left-right across the graph)
  • Min
  • 1st Quartile
  • Median
  • 3rd Quartile
  • Max

The other gotcha I had was wanting to have labels across the x-axis rather than numbers. To accomplish this, I added a 7th column with the label, then I used the following:

set xrange[0:3]
set yrange[0:10]

# Data columns: X Min 1stQuartile Median 3rdQuartile Max Titles
set bars 4.0
set style fill empty
plot 'data.csv' using 1:3:2:6:5:xticlabels(7) with candlesticks title 'Quartiles' whiskerbars, 
  ''         using 1:4:4:4:4 with candlesticks lt -1 notitle

The xticlabels(7) is the key to the x-axis labels, saying to use the values from column 7 for the labels.

Invoke or BeginInvoke cannot be called on a control until the window handle has been created.

Today I tried installing MS SQL Server Management Studio Express and received the following error:
TITLE: SQL Server Setup failure.
——————————
SQL Server Setup has encountered the following error:
Invoke or BeginInvoke cannot be called on a control until the window handle has been created..
——————————
BUTTONS:
OK
——————————
I searched around the internet and found some suggestions to close everything and re-run.  I had quite a few doubts that this would make any difference, but sure enough it worked for me.  I closed all windows, made sure the installer window had focus, and it worked.
Still not really sure what the exact problem was, but at least this “workaround” took care of the problem for me.
Environment:
Windows Vista (32-bit)
Microsoft SQL Server Management Studio Express 2008

Tortoise SVN on Windows over SSH (svn+ssh): Cache password to avoid the repeated dialog

My environment: Linux server, Windows Client

You can use Tortoise SVN to access a repository over ssh by simply changing your url to be something along the lines of:

svn+ssh://myuser@mysite.com/users/myuser/svnroot

but then you are repeatedly given the password dialog, with no option to save or cache your password.

The way to get around this is to use ssh and keep the store the key in your pageant list.  So essentially the steps are:

  1. Create a .ssh dir under your home directory on the server
  2. Generate a public and private key on the server, and put the public key in your ssh dir
  3. Convert the private key to the format Putty likes (using puttygen.exe)
  4. Create a saved session in Putty for logging into your server with your private key
  5. Have pageant.exe running and add the private key to the list stored in pageant, so you don’t have to continue to enter the passphrase
  6. Change your repository URL to have your putty saved session as the “server” rather than “myuser@mysite.com”

The following two sites do a great job of walking through the details of how to do each step above:

However, when trying to import my private key into puttygen, I received the error:

“Couldn’t load private key (ciphers other than DES-EDE3-CBC not supported)”

Which I solved by getting a different snapshot of putty gen from: http://tartarus.org/~simon/putty-snapshots/x86/puttygen.exe (as described on : http://winscp.net/forum/viewtopic.php?t=8324).

SQLManagementStudio_x64_ENU.exe is not a valid Win32 Application

Today I installed SQL Server Management Studio Express (standalone) on a brand new Windows Server 2008 R2 x64 machine.

After downloading the install from Microsoft and running it, I received the following error:

“SQLManagementStudio_x64_ENU.exe is not a valid Win32 Application”

I assumed I had some weird versioning issue, and read all kinds of blogs about internal db’s included with Windows Server, etc.  Come to find out, the download was corrupted, and re-downloading the file, solved my problem.

So in the end it was trivial, but I figured I would post about it, because the error message wasn’t very telling of what was actually happening.

Web Deployment Configurations in Visual Studio 2010

Some quick notes on the basics. I’ll try to follow this up with another post soon on some of the particulars.

Creating a new configuration:

  1. Build -> Configuration Manager
  2. In the drop down of current configurations, go all the way to the bottom and select “Add new…”
  3. You can choose to copy settings from an existing configuration (such as debug or release)
  4. If you are on the solution configuration drop down, there is a box to create a matching configuration for ALL of your projects
  5. If you are on a project configuration drop down, there is a box to create a matching configuration for the solution

Creating a new web.config transform file for the new configuration

Once you have created a new configuration you can set up specific web config rules for it.

  1. Right click the web config file in the project
  2. Select “Add Config Transforms”
  3. This will add a new config transform named web.[my-configuration-name-here].config that is grouped underneath web.config in the solution explorer.
  4. You can now use this to add some “transforms” to the web config for that specific build configuration, such as turning off debug params or changing the db connection string

Setting package/publish options

  1. Right click the web application project
  2. Select “Package/Publish Settings”
  3. Alternatively, you can get to it by selecting project properties and then the “Package/Publish Web” tab
  4. Change settings as appropriate
  5. Note: there is also a tab for package/publish SQL options if you want it to handle DB stuff as well

Building a deployment package

  1. Right click the project
  2. Select Build Deployment package
  3. The default location for this to build to is /[my-project-name]/obj/[my-configuration-name/Package

Microsoft JScript runtime error: AjaxControlToolkit requires ASP.NET Ajax 4.0 scripts.

After including a control from the ASP.Net AjaxControlToolkit I got this error:

Microsoft JScript runtime error: AjaxControlToolkit requires ASP.NET Ajax 4.0 scripts. Ensure the correct version of the scripts are referenced. If you are using an ASP.NET ScriptManager, switch to the ToolkitScriptManager in AjaxControlToolkit.dll.

I believe there are many other problems which can cause this symptom, but in my case, as the error message says, the solution is that you need to include the “ToolkitScriptManager” rather than the standard “ScriptManager”

To add the ToolkitScriptManager, you first need to include the assembly namespace on your aspx page.

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit"
TagPrefix="asp" %>

If you control is right on your main page, chances are you have already done this.  But in my case the Ajax control was embedded in a user control, so I didn’t have it on the main page yet.

Then you can simply include the manager by changing the standard script manager

<asp:ScriptManager ID="scriptMaster" runat="server"></asp:ScriptManager>

to this:

<asp:ToolkitScriptManager ID="toolkitScriptMaster" runat="server">
</asp:ToolkitScriptManager>

Environment: Visual Studio 2008, ASP.Net 3.5