Yann's Blog - Technology at large

December 21, 2012

Supermicro IPMI Remote KVM Annoyances

Filed under: Hardware — Yann @ 8:10 pm

So, you have a Supermicro server somewhere remote. Thats cool, they have a nifty IPMI module (either bridged to the primary interface or on a separate port). One of the features is a remote IP-KVM over what is mostly VNC. Of course, you have a complete distrust of anything embedded, so your IPMI is on a separate LAN/VLAN. You also don’t have a VPN to this IPMI LAN, because thats a lot of work for something that you’ll never use, and everyone just uses ad-hoc SSH tunnels anyway, right?

Except, you are Supermicro’s IPMI KVM thing (which is really made by a company called ATEN, who I now think very very negatively of). That means:

  1. The VNC connection is not standard, and standard clients won’t work.
  2. You need to use a Java Webstart application in order to actually connect (which has native code too, ugh, its Java guys, no need to go native)
  3. The Java Webstart VNC application needs UDP access to the IPMI port 623 (WTF, I really don’t know why)

The last point is the kicker – you need to tunnel UDP in addition to TCP, which SSH does not do natively.

Enter socat, netcat on steroids. It can forward UDP over TCP and back to UDP with little fuss. You’ll need socat on both ends of the connection.

So, without further delay, the recipe:

On the local system

sudo socat -T15 udp4-recvfrom:623,reuseaddr,fork tcp:localhost:8000

Now the SSH tunnel

sudo ssh -L80:IPMIMACHINE:80 -L8000:localhost:8000 -L443:IPMIMACHINE:443 -L5900:IPMIMACHINE:5900 you@host-to-tunnel-through socat tcp4-listen:8000,reuseaddr,fork UDP:IPMIMACHINE:623

Replace IPMIMACHINE with the host you need to connect to, and host-to-tunnel-through with the host which can access the IPMI network.

Navigate to http://localhost, enter your password (hint: ADMIN/ADMIN), hit cancel on the “You need to install Java!” dialog (which shows even if you have applet support), navigate to the remote redirection tab, hit cancel on the same popup, and hit the Launch button. Run the JNLP Webstart file, and SUCCESS!

Next up: How to do this with an ASUS machine (much simpler).

July 30, 2012

Sunsetting the mail-push service in favor of EMDR

Filed under: EVE-Central — Yann @ 2:37 pm

Effective August 15th, we will be closing the EVE-Central SMTP market push service (http://dev.eve-central.com/evec-api/start#mail_smtp_push).

While the SMTP service has reliably been trucking since 2006, better things have come and made the SMTP service seem like a rusty wheel. Specifically the EVE Market Data Relay: http://eve-market-data-relay.readthedocs.org/en/latest/index.html. I advise everyone currently using the SMTP service to migrate to EMDR as soon as possible.

Currently, the SMTP push service is consuming over 1TB of transfer per month. EMDR is more modern and more efficient.

As part of the migration to EMDR, we will consolidate all of our classic client traffic to relay to EMDR.

May 14, 2012

EVE-Central, a picture

Filed under: EVE-Central — Yann @ 8:48 pm

The new API and upload processing backend, anyway.

May 4, 2012

New EVE-Central APIs

Filed under: EVE-Central — Tags: — Yann @ 1:58 pm

To start, I moved all of the existing API documentation to the EVE-Central Wiki. You can find documentation (with less typos, etc) here:


Next up, I’d like to highlight two new APIs:

quicklook on path

For a single market type, get all of the orders which lie on a path between two systems.

More documentation


Get the route between two systems as the auto-pilot flies (mostly, kinda)

More documentation


You’ll notice that the route API is returning JSON. I will be upgrading the other APIs to emit both XML and JSON for convenience.

May 2, 2012

EVE-Central API is now running on Spray, Akka, built with Scala

Filed under: EVE-Central — Tags: , , , , — Yann @ 2:56 pm

The EVE-Central API service was refactored on top of a new framework, both as an aid to scale (for performance reasons), and an exercise in using new tools for web development. Except for a few growing pains, the stack has been reliable and performant.

The bits and pieces that made this possible:

  • Scala – A static typed JVM-targeted language with a very good mix of functional programming. Often compared to OCaml and F#, where it shares a lot of similarity. The JVM platform gives a lot of run time performance and a huge software library, but the Java language is hobbled by years of mismanagement (see C# for something not hobbled by Sun). Enter Scala – fast, type safe, expressive, and generally fun to work in. (I still love Python too, for those of you keeping score).
  • Akka – an Actor system framework, with lots of inspiration taken from Erlang (great ideas, mediocre execution). Its a message-passing system built for the JVM. While we are still using Akka 1.3, the new clustering capabilities of Akka 2+ are on my radar.
  • Spray-server and Spray-can – Spray server is a Scala and Akka library for building web services, in a clean and no-nonsense fashion. Spray-can is the HTTP server component, avoiding the use of a traditional Java servlet container for managing connections. If you’re looking for a way to make RESTful (and non-RESTful) webservices in a high performance environment, give Spray a look. The community support is great.

Note that this is just the old API. No new (published) API calls are available yet, but with the speed gained by building a proper framework around some of the core technology of EVE marketing aggregating, and the inherent testability of the environment, new features should be significantly easier to bring to light.

Also, the EVE-Central user front end remains on the old Python+CherryPy stack for the time being, as the window dressing is being worked on.

April 23, 2012

Updated EVE-Central API Pipeline

Filed under: EVE-Central — Yann @ 2:20 pm

I have just updated the servers used for the EVE-Central API calls. As DNS updates propagate, you will be running on a new stack which funnels requests between the old and new servers.

If you have any serious API issues, please let me know as soon as possible.

If you are NOT using the api.eve-central.com domain name for API calls, API calls may start to fail in the near future. Consider this your “its been two years since this change was made” deprecation warning.

February 16, 2012

New API Service Beta Soon

Filed under: EVE-Central — Yann @ 9:17 pm

I would like to reach out and find a few users of the existing EVE-Central API in order to perform regression tests against the new API service. If your website or application uses the API and you would be willing to test under a new URL, please let me know (comments, e-mail, eve mail). I will provide you with the URL to use.

The API should be identical from a usage and formatting standpoint – it simply contains a brand new backend, statistics engine and cache layer, implemented in Scala. This is not the “v3″ API, simply a reimplementation of the old one.

I had intended to launch this about a month ago, and make a nice post about the technical design, but well thats what happens when you run out of time :)

January 20, 2012

Contribtastic 2.1.1

Filed under: EVE-Central — Yann @ 9:23 pm

After a test period by the EVE-Central Google Group members, I am pleased to announce Contribtastic 2.1.1 for EVE-Central. Contribtastic is our cache-scanning no-nonsense upload client.

New in this version:

  • Automatic cache folder detection! Everything happens under the hood, including when the EVE client updates
  • Multiple client support! Multiple EVE clients are now detected and managed automatically.
  • New icons
  • Application remembers its tray status – it will relaunch to tray only if it was last hidden in the tray
  • Little bug fixes

Get it from the software download page.

December 11, 2011

EVE-Central Header Redesign

Filed under: EVE-Central — Yann @ 11:23 pm

Here is a prototype “home page” for EVE-Central, the top-portion only. Opinions?

Obviously there are placeholders – the 3ISK tritanium would be prettied up (and contain actual data!).

(And yes, this is based on Twitter Bootstrap. I am not a web designer, but I can adapt as needed)

November 30, 2011

Contribtastic 2.0.3 Now Available (and way less unreliable)

Filed under: EVE-Central — Yann @ 3:31 pm

Contribtastic 2.0.3 (the EVE-Central.com upload client) is now available, and far less crashy than before.

Highlights include:

  • (Should) no longer reset its configuration at random
  • The autodetect logic for cache folders is now fixed and actually works now
  • EVE-Metrics uploading was removed (I know, kinda late)
  • Locating a cache folder manually will no longer thrash your disk and take minutes/hours to complete
  • Visual C++ Redistributables are now automatically bundled and installed for your convenience.

You can grab it from the download page at EVE-Central.com

« Older Posts

Powered by WordPress