Yann's Blog - Software and hardware

July 11, 2011

Git Repository Cleanup

Filed under: Software — Yann @ 8:43 pm

Just a quick update for those browsing our source code – we are slowly decommissioning the local git code hosting (at git.stackfoundry.org) and moving either to Github or Gitorious.

Currently moved:

  1. qsgen the static site generator
  2. TropicSSL the BSD licensed fork of PolarSSL.

June 22, 2011

Semantic End-User Documentation: Docbook or Sphinx?

Filed under: Software — Yann @ 11:11 pm

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.

Many editors, even our friend who can’t typeset Microsoft Word (thats another topic), have semantic capability integrated. You define headers, sub-sections, footnotes, and more. Systems such as FrameMaker and LyX are heavily geared for this workflow – they in fact make it a relative pain to not follow their conventions. Systems such as RoboHelp attempt to be semantic, but are so steeped in legacy that they become unusable: RoboHelp still depends on VBA macros and Word to generate PDFs – this is an Adobe product by the way.

What about semantic file formats which are designed for direct editing – preferably human readable or approachable? There are really two main contenders in my eye, and one of them you may not be considering: DocBook and Sphinx wih reStructuredText.

First there is DocBook. Its a standard. It was formally SGML and now XML. There are tools, XSLT transforms, and the like to output a variety of formats, include LaTeX typeset documents, webpages, and Windows Help files. However, its incredibly unfriendly for human editing. No one likes hand-writing XML – its simply not natural, even as much as HTML has established its self. DocBook is also an ecosystem – there are tools, but they all have different ideas of what they should do, and interoperability is not guaranteed.

What if you could fix the human problem and provide a better semantic system, one with a kick-ass implementation (and not an ecosystem)? Thats what Sphinx does. It is DocBook for humans. You may know Sphinx as a Python API documentation system. It is, and it excels at that job like none other. However, Sphinx is both extendable, and composable – if you never ask for API documentation, it will never give you any. It also typesets using LaTeX, spits out theme-able and gorgeous webpages, and even makes Windows Help files. And if your document has special needs, its very easy to extend to produce end user documentation.

The real question is how well suited Sphinx actually is for writing non-developer user manuals. How easily can you get a technical writer versed in reStructuredText? How easy is it to actually change the look and feel of a document? From my initial investigation, I see few issues. However, the only way to actually know is to drink the Kool-Aid. My test will be to create an end-user manual, involve non-coder friends, and identify strengths and weaknesses.

I feel that Sphinx is everything DocBook promised, delivered.

iOS – Set a pattern background image for a UIView

Filed under: Apple,Software — Yann @ 10:32 pm

In iOS, there is no way to slug a background image into a UIView – making it slightly trickier to “linenfy” 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:

1
self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"bgs/fileinbundle.png"]];

(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.

Contribtastic for Incarna is now available

Filed under: EVE-Central — Yann @ 10:07 pm

I’ve just published a new version of Contribtastic with a patched version of libevecache for Incarna compatibility. Thanks to several helpers, including some standouts from the EVE Tribune, we can at the very least upload all data types from before Incarna. New types from Incarna are not yet available due to a lack of a database dump.

Contribtastic has also dropped the “alpha” moniker – its not a sudden refresh of code, but at this point it was just silly.

In addition, the client version checks are now activated – any clients earlier than Contribtastic 2.0.0 should complain loudly and demand you download an upgrade.

May 26, 2011

Technology progress: EFM32 Microcontrollers

Filed under: Hardware — Yann @ 9:54 pm

In the microcontroller world, there are three classes of power consumption: the “whatever power”, the “low power”, and the “ultra-low power”. For all intents and purposes, “whatever” and “low” power have converged – you can get a 100MHz 32bit microcontroller (including 12 bit A/D units, 128KiB of flash, a bunch of peripherals, and more) for a mere $5, and it only consumes south of 60mA at full speed (@3.3V). The amount of work done per MHz is amazing, even compared to an 8-bit AVR.

However, there are very few players in the ultra-low power space. Ultra-low power is characterized by very low operational currents coupled with ultra low sleep currents, often with clocks running. Texas Instruments is the former champion here, with their MSP430 line. Its a clean 16-bit architecture (now bizarrely extended to 20-bit for more memory space – flash and RAM is all in one space as most modern processors), where the new parts have run currents of < 200 microamps (uA) per MHz, and sleep currents with 32kHz clocks running at 2.5uA. This is what you need to run for years on AA batteries.

What if you could exceed that, with an ARM Cortex-M3 core, with hardware divide and MAC, running at 32MHz, and a host of nice peripherals?

Then check out the EFM32 processors from Energy Micro. I know I am…

December 9, 2010

EVE-Central after EVE-Metrics

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

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?

  1. Augmenting the SMTP push service with a bare-bones, JSON over socket system. Rejoice in the lack of client library requirements, such as AMQP and its unused complexity.
  2. Fixing some glaring bugs (like the CSV export, and a few input validation glitches)
  3. Making sure we’re up to the latest item ID database (there are some holes)

However, these are simple creaky wheel fixes. This is the part of the post where I mention that both Contribtastic/libevecache and EVE-Central are Open Source, under the GPL and AGPL licenses respectively. Have an idea for a new statistic? Please implement it! Want Contribtastic logins to work? Time to work on that too :) .

If you actually want to help, I have established a mailing list/Google Group to discuss changes and contribute ideas. You can of course fine the relevant EVE-Central code on Gitorious.

Happy hacking!

August 23, 2010

OpenCoral Wiki Updates

Filed under: Hardware — Yann @ 3:51 pm

A long time ago there used to be OpenCoral.com, which chronicled the development of an open source aquarium controller. Sadly, the project never panned out in functionality.

I just re-launched OpenCoral in an open Wiki format, giving a common resource for those projects still under development by other teams and groups. A section for links, other controllers, and technical/electronics resources is available.

July 7, 2010

DigiChrome 0.2 Now Available – Shareable links, single-page search results

Filed under: DigiChrome — Yann @ 12:04 pm

DigiChrome – DigiKey Enhancements now has version 0.2 available through the Chrome Extensions Gallery. The extension will auto-update, but you must re-enable it when prompted for it to function. The permissions have changed in order to allow some new features to work.

New in this version:

  1. Multi-page loading of search results – loads up to 20 pages in one search results page (configurable). Loading progress indicator is also displayed, and the Next and Previous links are updated to skip 20 pages at a time.
  2. Get shareable links to search results and filter pages, shorten links with Bit.ly!
  3. New options link on search pages.

Git repository

DigiChrome is Open Source, and available as source from http://gitorious.org/digichrome.

July 6, 2010

DigiKey Enhancements Chrome Extension

Filed under: DigiChrome,Hardware,Software — Yann @ 4:58 pm

Ever got frustrated with DigiKey.com‘s interface, specifically the “In Stock” checkbox and the limited size of the search selector boxes? Are you using Google Chrome?

Then get my Chrome DigiKey Enhancements extension now!

The current version:

  1. Adjusts the height of the search selector boxes to a user configurable value
  2. Auto-checks all “In Stock” checkboxes (when configured)

The extension has an options pages (under the Tools->Extension page, click “Options” under DigiKey Enhancements) which allows you to pick which modifications the extension performs.

Untested: International DigiKey pages, full ordering workflow.

More features coming soon!

June 8, 2010

Minor site updates

Filed under: EVE-Central — Yann @ 7:38 pm

EVE-Central has received a minor site update today. Two new features were introduced:

  • The usesystem parameter is now supported on the marketstat API call.
  • Statistics are now recalculated on upload, flushing any cached data. The point-in-time statistics are now stored as well, which will lead to a future site feature.

Feel free to submit futher patches and features. I have a few patches to merge into Contribtastic and the website once they are tested.

Newer Posts »« Older Posts

Powered by WordPress