November 14, 2016

EVE-Central.com in the age of EVE Ascension


After a week delay while the United States elected an authoritarian misogynist xenophobe (more on that in another post), CCP games will be releasing one of the most fundamental player-focused changes in EVE Online; free-to-play in the form of Alpha Clones. This is a critical inflection point in the history of the game I first picked up in 2003, as an alternative to Earth and Beyond MMO which was on its downward spiral. Either the F2P option will be ignored and EVE will not grow, or EVE will grow faster than ever before. Read more

December 21, 2012

Supermicro IPMI Remote KVM Annoyances


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). That means: Read more

May 12, 2012

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


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). Read more

June 22, 2011

iOS - Set a pattern background image for a UIView


In iOS, there is no way to slug a background image into a UIView - making it slightly trickier to style your new iOS application background (and who doesn’t like the new iOS 5 linen?). However, you can apply a UIColor. Did you know UIColor can be a pattern? And the pattern can be defined by a UIImage? Well, it can, and here is a one-liner to do so: (This code depends on ARC in XCode 4.2+ - apply reference counting as appropriate for other versions) Please note that you have to set all the items which are in front of the background view to clearColor such that they will not cover the background image. Read more

June 22, 2011

Semantic End-User Documentation: Docbook or Sphinx?


When you think of user documentation authoring systems, a couple of traditional tools often come to mind: FrameMaker, Microsoft Word, InDesign, RoboHelp, LyX, TeX files, MadCap Flare. Some are fully proprietary, while others embrace some standards. Some are semantic, while others are design driven. With the evolving output formats that are present today (and tomorrow, for the future predictors), there is honestly no excuse to have your primary authoring environment be non-semantic. For the uninformed, semantic implies meaning - instead of making text large, you mark it as a section, or instead of indenting and changing the color of text, you denote that the text is a call-out or note. Read more

December 9, 2010

EVE-Central after EVE-Metrics


As you may have heard, EVE-Metrics is planning on moving to bigger and better things. This leaves (the older, more battle scared, and way less slick) EVE-Central as the only remaining EVE-Online market data aggregator. Despite not being an active EVE-Online player either, I am leaving EVE-Central up and running, but I need your help to keep the cobwebs from piling on too thick! First off, EVE-Central needs enhancements. Currently, even simple things like determining the buy and sell price in Jita are horribly flawed (due to gaming of the statistics). Uploads are accepted with very minimal validation work, leading to very obvious fakes and outdated data purging new good data. We’re still using a creaky old CSV exporter which has been known broken for the past 6 months or so (a phantom non-column is being exported). Our Contribtastic client has GUI elements which are basically unimplemented and confuse just about everyone (yes, I know, you can’t login). We’re still using the SMTP push service (it made sense when data volumes were lower, now it just breaks other people’s SMTP servers). What am I planning on doing? Read more

December 28, 2009

About rle_unpack in libevecache


I have had several questions regarding the “rle_unpack” function in libevecache. In order to not repeat myself in e-mails, I decided to make a quick post describing the logic: The market rows are compressed with an odd variant of run-length-encoding. In this case, the extra “0” bytes are suppressed and encoded into one byte. The row starts with a opcode byte, which is split as follows (high bit to low bit). You can find this broken out in the struct packer_opcap. Read more

July 31, 2009

Reverse Engineering the EVE-Online Cache Files


So, I’m doing it after all. Reverse engineering the cache files. The format is actually surprisingly simple once you determine the identifiers of all the data fields (and their lengths). No reverse compiling or digging into the EVE runtime was performed, simply educated guesses and a knowledge of CPython internals. Progress is good. Relevant data identified. More results to be posted, and then an open source code release. Update 1 Read more

January 14, 2009

ptee


Have you ever wanted to use the UNIX shell utility tee, but instead of simply dumping to a file, invoke a series of subcommands that would run inside the pipeline? If so, I give you ptee, now available in version 1.0. ptee extends the idea of tee by allowing not just filenames, but a whole shell expression (or command). For instance: ... | ptee "grep foo | zcat > outfile" | ... The expression in quotes is passed to a new instance of the active shell (expressed by $SHELL), and the standard input to ptee is duplicated, both to normal standard output and to this new sub-shell (and any number of commands given to ptee). In effect, the sub-shell is running in parallel with the normal shell pipeline. The simplest case of running ptee is with no arguments, where it acts as an expensive version of the “|” operator. Read more

August 7, 2008

Big Monitors, Window Management Frustration, and finding StumpWM


You may be like me, and have a large (20"+, or especially 30" in this case) monitor attached to your computer. You’re also a avid computer user and have more than one program open at a time which you want to view simultaneously. You also use the keyboard much more than the mouse (except when lazily surfing the web). How often have you noticed spending large amounts of time moving your windows around, resizing, moving, rearranging, and all the normal window management jazz? How often do you find yourself switching among windows with alt-tab, just to refer to some information which is currently obscured by the window you’re currently in? Read more

© 2025 Yann Ramin