Homepage of Roland Smith

Introduction

This used to be a very static page. I’ve decided to change that, and put updates on top. Think weblog-style, but without the overhead. :-)

The most active part of this site is probably my UNIX miscellanea page, where I post tips and tricks for UNIX-like operating systems in general and sometimes FreeBSD in particular.

Fast links

Log

2012–01–08: Best wishes for the new year!

To all my family and friends; may you have a good 2012!

2011–11–13: Autumn commute pictures

A couple of weeks ago the weather was so fine that I took some pictures during my commute to work. Not all the pictures have comments with them yet, but I decided to put the page up already. You can find the pictures on a separate page.

2011–11–13: Software updates

There are updates for lamprop and stl2pov and dxftools. See the software page.

2011–10–02: Holiday pictures

It has been awhile, but I got around to putting the photos from the summer holidays up. See my photos.

2011–10–02: Software updates

Both lamprop and stl2pov and friends have been updated. See the software page.

2011–09–25: Blocking facebook

Recently I’ve been reading too much about how the javascript code tied to every facebook “Like” and “Recommend” button tells facebook your IP address and which website you visited to facebook, even if you don’t click on them and even if you’re not a facebook user.

From a privacy point of view I don’t particularly like that. And since I don’t use facebook anyway, I decided to do something about it. The most complete solution I could come up with was blocked outgoing traffic to all address ranges that I could find as belonging to facebook in my pf firewall. To do that, the following has been added to it’s configuration file, /etc/pf.conf;

table <blacklist> const { 66.220.144/20, 69.63.176/20, 69.171/16, 204.15.20/21, 204.74/16 }

block out quick on $ext_if from any to <blacklist>

Basically, all outgoing traffic going to the abovementioned range of addresses is blocked. Up to now I haven’t found a website that I wanted to use blocked, and the “Like” buttons have magically disappeared from the web so the IP ranges seem to work well enough.

To calculate the netmasks in CIDR notation from the IP ranges that I found online and by using dig program (part of the ISC BIND suite), I used an online IP calculator.

2011–09–25: Busy

I’ve still got some more pictures to post (holidays etc.) but busy times at work and unexpectedly good weather in the last weekend have kept me from it. :-)

2011–08–18: Business trip pictures

It took some time to get them done, but I finally put up the pictures of the business trip I made in and around Shanghai (上海) in May.

On the right is an overview of the skyline of Shanghai from my hotel room. The cloudy weather was more or less par for the course during the time we were there.

One of the most weird things I experienced was in the hotel in Suzhou (苏州) though. I was informed that most hotels have a swimming pool, and I find swimming a relaxing way to start or end the day, so I brought my swimming trunks. Definitely not something I would have thought up by myself. So thanks to my sister Rose for the tip! Anyway, the pool in that particular hotel was on the 27th floor, almost at the top of the hotel as far as I could tell. And the windows went right down to the pool level. So while I was swimming I was overlooking the skyline of Suzhou! Now that is something you don’t see everyday! My camera is not waterproof, so I didn’t take pictures. But it sure was memorable.

2011–08–15: Buckling spring keyboard

Back in the day, IBM computers came with keyboards with buckling spring keyswitches. Since they were based on a metal plate, they were quite heavy but had a nice positive typing feel and a very sturdy design. At work we have a 5250 terminal keyboard built with the same technology that is old and grimey but still works perfectly. I’ve also used the model M PC keyboard in the past and was pleased to find that a modern variety (104 and 105 keys) is still being made by a company called Unicomp.

I just got the SpaceSaver keyboard that I ordered and am quite pleased with it. The action is just as precise as I remember (compared to the mushy feeling you get from “modern” dome switch keyboards), and you can even take off the keycaps to clean them.

If you ever really take apart one of those modern keyboards to clean them you’ll find that it can be extremely hard to re-assemble them with all the keys in working order. Been there, done that. This is very much an improvement.

When the keyboard arrived the tab key didn’t work correctly, but after an clear and concise e-mail from the support people at Unicomp removing the key and re-seating it solved the problem. Most probably the spring had shifted during transport.

If you are looking for a good keyboard, I will recommend the Unicomp SpaceSaver!

2011–04–22: stl2pov 2.5.0 released

This version fixes a couple of long-standing bugs. The first is that there is a difference between the coordinate systems of the STL file and POV-ray. The x- and y-ccordinate should be swapped when writing a POV file. Second, there was a bug in reading binary files where the facet’s normal vector was used as the facet’s first vertex.

The python version already has the fix for the first bug and doesn’t have the second one.

2011–04–13: stl2ps updated

There was a bug in the handling of zero-length normals in the python version of my stl tools. This has now been fixed and the distfile has been updated. Please update if you are using this!

2011–04–13: A new STL convertor added

In addition to stl2pov, I’ve now written a program that writes a shaded projection of the STL file (along the z-axis) as a PostScript file. It supports arbitrary rotations of the STL file around x-, y- or z-axis and automatically centers the object in the view, so you can easily create views of the object from all sides. Unsurprisingly this is called stl2ps. PostScript can be easily converted to a PDF file with e.g. ghostscript (or its pdfcreator front-end for Windoze). Creating a PostScript file and then viewing it with an appropriate viewer is generally much faster than running it through POV-ray!

On the right is a picture of the metatron STL file, which has been rendered as a PostScript file by stl2ps. (The PostScript file has been converted to a PNG file by ImageMagick for inclusion on this webpage.)

Creating this extra program was not that hard, because I implemented the STL file reader as a stand-alone Python module. Basically it reads the STL file and then creates an STL object that contains a list of facets (triangles). This object is also an iterator, so it it easy to step through all the facets. Since this code is BSD-licensed, you can easily re-use it in your projects.

2011–04–10: stl2pov rewrite, part 2

The stl2pov port to Python has been finished. You can find it on the software page, as the py-stl package. It works about as well as the current C version, except that the switch for smooth triangles has been dropped. Generating smooth triangles requires the program to know the neighbours of every facet. I decided that the time spent in mapping the connections between all facets was not worth it, since the time required to process all n facets grows with O(n!). Also. an STL file doesn’t really contain enough topology information to reliably decide when smoothing wether two facets really share an edge, leading to arbitrary choices as to when or when not to connect them. And consider two facets that doshare an edge; in which range should the angle between the facets lie to do smoothing?

2011–04–04: stl2pov rewrite, part 1

Today I re-wrote my parser for STL files in Python. The original C parser was 411 lines (excluding comments and blank lines). The new parser in Python is 134 lines. This is also without comments. It took me about two hours to write from scratch. But that includes debugging and writing a __str__ method and iterator for the STL file object, and a built-in test.

It is my hope that porting programs like this to Python will make portability to other systems easier. And now that I’ve separated the parser into a module, it will also become easier to write front-ends for translation into other formats that just POV. I’m thinking of a front-end to produce PostScript or even PDF. Possibly including a simple viewer.

2011–03–28: Learning Python

Over the years I’ve heard a lot about the Python programming language. Now I have decided to start and learn it. I’m already reasonably fluent in languages like Perl, Lua, C and Bourne shell. But each of those feels like it’s lacking somewhat. Building and maintaining versions of my C programs for windoze has been painful and due to oddities and outright bugs of that platform. For some programs having a GUI is handy, and programming them in the aforementioned languages in a portable way is also hard. I thought it was time to give Python a try.

My programming history

I started programming with Turbo Pascal when studying for my B.Sc. Later I switched to Turbo C++, which felt like getting out of a straitjacket, although I mostly stuck to C. I even wrote a simple GUI toolkit for VGA inspired by Al Stevens’ D-flat toolkit that I read about in Dr. Dobb’s Journal. The segmented memory of the DOS era were a bit of a restriction, though. On OS/2 I discovered gcc and the freedom of unsegmented memory, which later led me on my path to Linux and FreeBSD. For big programs that take a lot of calculation and need to run fast, I still used C. But developing applications in it is not very fast; there is a lot of scaffolding you need to write for every program.

For quick and dirty programs utilizing and combining the myriad of tools available on a UNIX-like system, the Bourne shell is hard to beat. The syntax does have its odd ends though, and the grammar is non-existant. Writing substantial programs in it is a challenge. For one thing, it lacks built-in data storage types.

Perl was the first scripting language that I learned after installing Linux, and I used it for most of my scripting needs for years. But for more complicated programs I still used C. Personally I’ve not had much trouble maintaining my Perl programs, but I never did build very big ones in it. And I generally try not to be too clever, because I’ve had trouble reading some of my earlier programs when revisiting them several months after writing them.

The Lua language I discovered because it is being integrated as an embedded language in newer LuaTeX typesetting engine. There it excels in things that are very hard to do in TeX macros. I’ve done some small (calculation) programs with it, but it doesn’t feel like that is Lua’s strong point. You can make it’s tables into all kinds of data structures, but it feels kind of forced. It could well be used to generate e.g. a spreadsheet-like table in TeX without external dependencies.

Diving into Python

So I finally bit the bullit and started learning Python. So far I like it a lot. It’s not very wordy, and the required indentation make for good readability. It is rich in data storage types, has an extensive standard library and it just feels right. It is also quite fast to develop programs in.

Python vs. C; a case study

To get a good feel for Python, I decided to port my lamprop program (not insignificant by my standards) to Python.

The original C program is 2673 lines of C code and headers, including comments. Of these 753 are a n×n matrix library generated by a Perl script. Ignoring the comment lines and this library leaves 1496 lines.

The Python port is only 811 lines in total, including comments and a setup.py file that is not really part of the program. Ignoring those we are left with 625 lines. Which is only about 2/5 of the equivalent C code! This took me about a weekend, which included reading a significant portion of the on-line documentation, and about a third of Mark Lutz’ “Learning Python”. Wow.

Sure, on a big input file the python version takes 0.1 second while the C version runs in under 0.01 second. But I could hardly care less.

Next, I’m going to do a re-write of stl2pov. This is potentially a much slower program, so I’m going to start from scratch.

2011–03–20: No facebook

Not
f'd — you won't find me on Facebook

Why? Go read the stories that you’ll find on FSF page that you can reach by clicking on the picture. Especially “With friends like these…” by Tom Hodgkinson.

2011–03–06: Trike update

Work has been keeping me busy of late, which is why there haven’t been many updates here.

After the long snow spell this winter there was a lot of debris on the road because of frost damage. I has several puntures in the front tires of my trike in quick succession. So I decided to fit anti puncture bandages to my front wheels. These anti-platt bandages seem to be made from a kind of tough alastomer of an unknown kind. For my Schwalbe 50–406 Big Apple tires I got the orange variant.

After hoisting the front of the trike on a cardboard box, it was easy to deflate and remove the inner tires. I removed one outer tire to cut both bandages to length. After cutting them, I used a Dremel tool with a little sanding wheel on it to thin down the edges of the rubber so it would create a smooth overlap without biting into the inner tube. After putting the bandages into the tire, it was relatively easy to put the inner tubes back in.

Since fitting these I’ve had zero punctures. :-) I find it difficult to judge if these have increased the rolling resistance. In the absence of real measurements; it doesn’t seem to have influenced the time that my regular commute takes.

2010–12–18: Scorpion trike modifications

The trike has been working extremely well as my commuter bike. Especially on slippery roads. Of course plowing through snow will slow you down.

The luggage carrier is fairly small for my Radical Design large rack bag as can be seen in the photo below. If the bag is heavy, it tends to tip over. So I took a piece of a rejected carbon-fiber product and fabricated that into a support platform, which I fastened to the rack with four zip ties.

Alternatively, I could have fitted standard Dutch cycling bags (“fietstassen”), but I decided against that. My top bag gives me sufficient storage for grocery runs and commuting. The cycling bags while spacious are a bit of a wind-catcher.

After inflating the Schwalbe Big Apple tires from 3 to 5 bar, the trike is noticably faster. This confirms what I’ve read on ligfiets.net that the rolling resistance of these tires increases sharply below 4 bar. The inflated tire did rub against the front right fender. A set screw on the fender falls in the gap in the clamp preventing the fender from rotating (see the picture on the right). To fix the fender position, I removed the fender, loosened the clamp in the picture and rotated it slightly to the back of the bike and re-tightened it and re-attached the fender.

2010–12–04: Scorpion recumbent trike

The last couple of winters were quite cold overhere. We also had much more snow than we’re used to. This trend seems to be due to global warming. This year we already had our first serious snow in November, which is quite early.

Since cycling is my primary mode of transport, all that snow and ice was not fun. I fell off/crashed my Challenge Hurricane recumbent several times during those winters, especially on icy spots hidden under fresh snow. Luckily on this recumbent the seating position is quite low, so I didn’t injure myself much except for some bruises, but I did get some damage to the bike. It is also not a very relaxing ride. The cyclepaths outside of city limits aren’t always cleaned, so after a couple of days it consists of a sheet of ice with ruts from cycle tires. And there were several days when the roads were just too slippery to bike.

So I started thinking about recumbent trikes. At de liggende hollander I was able to test the HP Velotechnik Scorpion. That test drive was só much fun I was immediately sold on trikes! It’s a bit like driving a go-kart. And of course it is very stable and not fazed by snow and ice. I decided to get a trike as my commuter bike. After comparing different models I settled on the scorpion.

At the right you can see me taking it out for the first ride. Very appropriately it was snowing at the time. :-)

2010–11–13: Updates for lamprop and stl2pov

New releases for both programs can be found on my software page.

2010–10–31: About personality traits

The following I posted as a comment on a walden effect blog about personalities. I thought is was worth repeating here.

As for some personality being a blessing and a curse; personalities are complex. I dislike A/B and other personality labels; they’re too symplistic IMO. There is no black/white and A/B. It’s more of a gray area. Contemporary psychology uses the big five personality traits model, where for each trait people lean to one or another end of the scale. If you read about these traits you’ll probably recognize where you stand pretty easily. But I think that these traits are not constant over our lifetime. We live and learn. I for myself know that I’m not the same person I was ten, twenty years ago. So you shouldn’t accept these traits as unchangeable.

It is however much wiser IMO to make use of your strengths than to keep trying to fix your weaknesses like some improvement programs suggest. The former is much more rewarding.

2010–10–27: NTG meeting

As usual, the NTG meeting was interesting. You can find some pictures here.

When I first came into contact with TeX, about a decade ago, I started with plain TeX but soon switched to LaTeX macro system since it has packages (enhancements) for many different things from pictures to bibliographies. Of course TeX already excells in typesetting mathematical equations.

The ConTeXt macro system is under heavy development, however and is looking more and more interesting. Also because it now uses a version of TeX with the Lua programming language embedded, which makes calculations and programming much easier. When I’ve upgraded my TeXLive installation to the 2010 release I’m going to write some documents in ConTeXt; see how in works.

2010–10–17: GHS labels

At the end of this year the globally harmonized system for labelling chemicals will come into use in Europe for pure substances. So it is time for me to update my TeX labels template for this. An example of one of those new labels is shown on the right.

You can download a TeX template for these labels. You will also need to download the pictures of the symbols in EPS format. If you are using pdflatex, do not forget to convert the EPS pictures to PDF format.

The previous risks- and safety sentences have been replaced by hazard and precaution sentences. You can find those in EG regulation 1272/2008, which you can download in your appropriate language from EUR-Lex. It is publication number L 353 from 2008–21–31.

2010–10–16: Unicode characters

Unicode and specifically UTF–8 is becoming more widely used. In my favorite editor, emacs, I use an input method according to RFC1345. This covers a lot of symbols, but also leaves a lot out. In emacs you can input any unicode character that you know the code-point of with ‘CTRL-x 8 ENTER’ followed by the hexadecimal code-point. But if you’re writing e.g. a comment on a blog, you usually don’t have access to those input methods.

So I put together a file of unicode characters encoded in UTF–8 for easy copy and paste. On top is a line of character that I use the most;

⌀ § ° ± µ · × √ ≈ ß ÷ ℃ ℉ ¶ © « » ‰ ‘ ’ “ ” ff fi fl ffi ffl st ☺

(Note that the fist symbol is the diameter sign [0x2300] and not the empty set [∅, 0x2205])

Whether you see all character correctly depends on the fonts your browser has access to. I’m using the freely available and excellent DejaVu, which covers a significant part of the character set, see the samples.

What follows are the accented roman letters and the rest.

accent: àáâãäåæç èéêë ìíîï ðñòóôõö øùúûüýþÿ ÀÁÂÃÄÅ Ç ÈÉÊË ÌÍÎÏ ÐÑ ÒÓÔÕÖ ØÙÚÛÜÝÞß

punctuation: ‘ ’ “ ” ‚ ‘ „ “ ¿ ¡ « » ‹ › ¶ § ‐ ‑ ‒ – — ― …

units: Ω ℃ ℉ Å ‰

currencies: € ¢ £ ¤ ¥ ₠

ligatures: ff fi fl ffi ffl st

greek: αβγδ εζηθ ικλμ νξοπ ρςτυ φχψω ΑΒΓΔ ΕΖΗΘ ΙΚΛΜ ΝΞΟΠ ΡΣΤΥ ΦΧΨΩ

dingbats: ◆ ◇ ◊ ○ ◎ ● ◐ ◑ ◘ ◙ ◢ ◣ ★ ☆ ☎ ☏ ☜ ☞ ☺ ☻ ☼ ♀ ♂ ✓ ✗ ✠ † ‡

fractions: ¼ ½ ¾ ⅓ ⅔ ⅕ ⅖ ⅗ ⅘ ⅙ ⅚ ⅛ ⅜ ⅝ ⅞ ⅐ ⅑ ⅒

superscripts: ⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾ ⁿ ª º

subscripts: ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎

marks: © ® ™ ℗ ℠ ℞ ㏂ ㏘

roman: Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ Ⅼ Ⅽ Ⅾ Ⅿ

maths: ∂ ∀ ∃ ∆ ∇ ∈ ∋ ∏ ∑ ∓ √ ∛ ∜ ∝ ∞ ∥ ∧ ∨ ∩ ∪ ∫ ∬ ∮ ∴ ∵ ≃ ≈ ≠ ≤ ≥ ≪ ≫ ′ ″ ‴ ∼

sets: ℕ ℤ ℚ ℝ ℂ

comp: ⌘ ⌥ ‸ ⇧ ⌤ ↑ ↓ → ← ⇞ ⇟ ↖ ↘ ⌫ ⌦ ⎋ ⏏ ↶ ↷ ◀ ▶ ▲ ▼ ◁ ▷ △ ▽ ⇄ ⇤ ⇥ ↹ ↵ ↩ ⏎ ⌧ ⌨

comp2: ␣ ⌶ ⎗ ⎘ ⎙ ⎚ ⌚ ⌛ ✂ ✄ ✉ ✍

arrows: ← → ↑ ↓ ↔ ↖ ↗ ↙ ↘ ⇐ ⇒ ⇑ ⇓ ⇔ ⇗ ⇦ ⇨ ⇧ ⇩ ↞ ↠ ↟ ↡ ↺ ↻ ☞ ☜ ☝ ☟

ocr: ␣ ⑀ ⑁ ⑂ ⑃ ⑆ ⑇ ⑈ ⑉

signs: ☠ ☢ ☣ ☤ ♲ ♳ ⌬ ♨ ♿ ⚠ ⚡ ☡

technical: ⌒ ⌓ ⌔ ⌕ ⌭ ⌮ ⌯ ⌰ ⌱ ⌲ ⌳ ⚒ ⚓ ⚔ ⚖ ⚗

recycling: ♲ ♳ ♴ ♵ ♶ ♷ ♸ ♹ ♺ ♻ ♼ ♽ ♾

There are lots of other characters that could have been added to this list. If you read Coptic or Georgian or cyrillic, or if you can use the IPA alphabet you could add those to the list.

2010–10–12: Additional close-up photos

The picture below on the left shows a close-up of the surface of a carbon fiber and epoxy resin laminate. On the right is the same surface after sanding. Sanding exposes the fibers in the laminate, creating lots of places where glue can seep between the fibers creating mechanical adhesion.

In the original picture of the sanded laminate you can almost distinguish the individual carbon fibers, which are about 5 μm in diameter.

2010–10–10: Surface energy

When investigating a bonding problem at work, I made this picture of a water droplet resting on a carbon fiber and epoxy resin laminate, to measure the contact angle, which is an indicator of surface energy.

This particular laminate turns out to have a low surface energy; it does not attract the water droplet very much. This is what causes trouble when you try to bond materials like this. There will be little adhesion between the glue and the substrate.

The picture was made using the “digital macro” mode of my Canon Digital IXUS 970 IS, which works surprisingly well.

2010–08–29: Website update

The scripts referenced on the scripts page have been updated. The wording of the public domain dedication has been changed to follow the Creative Commons template. Most of the scripts were altered to check and abort if any non-standard programs they need aren’t available.

The cascading style sheets have been updated as well.

2010–08–12: Me @ work

It occurred to me that I only rarely have a picture taken with me in it. Usually I’m the one holding the camera. So here are a couple of “action shots”. :-)

The leftmost picture is me doing an informal test to see if a material that we made is self-extinguishing according to UL 94 V–0.

The picture at the far right is me watching the vacuum infusion of a new glass fiber part for which I did the initial design and calculations. A stack of layers of glass fibers and filler materials is laid in an aluminum mold, and covered with a translucent foil that is sealed at the mold edges after which a vacuum is applied. Catalysed polyester resin is then fed through a hose into the glass package and fills the voids between the fibers. When after some time the resin has reacted and hardened, the product is taken out of the mold and processed further.

2010–08–10: Filename extensions and CSS

Firefox doesn’t render MathML properly unless the page it is in has a .xhtml extension. Unfortunately, Internet Exploder doesn’t know what to do with .xhtml files (nor does it know what to do with mathml). So I replaced the few mathml expressions that I used with unicode characters (in UTF–8 encoding, to be precise), and reverted the extension of all pages back to .html. For Firefox users this shouldn’t make a difference. Hopefully it will make Internet Exploder render these pages properly.

Additionally, I’ve made some small changes to the cascading style sheets.

2010–07–30: Website update

At the end of last year, I started converting this website to use MultiMarkdown. This has worked very well. The amount of typing I have to to to create a page has been drastically recuded. Tables are also generally easier to build, and with the new styling they look better.

I’ve been learning cascading style sheets (here’s a tutorial) to style the look of the page. Personally I don’t like the extremely wide margins one sees on weblogs. I prefer a style that looks more like a printed page.

I also like the way how multimarkdown made it possible to automatically generate a table of contents using XSLT. Very handy for long pages. Unfortunately, this didn’t work with the table I inserted as a page header. After taking a hard look, I decided I really didn’t want to dive into xslt! So I wrote a small program to insert the header after multimarkdown has processed the file.

For solving this kind of problem (text manipulation), I still prefer Perl.

2010–07–28: Making Ex Libris booklabels

It has been my custom to mark books that I buy with my name and date of purchase. Initially I wrote these, but that became tedious. Since I’m not much of a graphic artist, I decided on creating a simple booklabel in LaTeX, as shown on the right. I’m using TeX’s Latin Modern fonts. These may look a bit gaunt in pictures since they are optimized for print. The Dunhill font (the Latern Modern version) is used to create the monogram. The LaTeX code to create this label is shown below. Creating labels is also covered elsewhere.

% -*- latex -*-
%
% LaTeX sourcecode file for printing 89x36 mm stickers (four on a page) for
% marking books.
%
% Written by R.F. Smith <rsmith@xs4all.nl> in 2003 and placed in the 
% public domain
%
\documentclass[a4paper,12pt]{article}
\usepackage{lmodern}
\usepackage[dutch]{babel}
\usepackage{rotating}
\usepackage[newdimens]{labels}
%\LabelGridtrue
%\LabelInfotrue
% Settings for the label package; 4 89x36 stickers.
\LabelCols=1
\LabelRows=4
\LeftPageMargin=60.5mm
\RightPageMargin=60.5mm
\TopPageMargin=1mm
\BottomPageMargin=150mm
\InterLabelRow=4mm
\TopLabelBorder=4mm
\BottomLabelBorder=3mm
\numberoflabels=4
% Fonts for the logo
\newfont{\duf}{rm-lmdunh10 at 15pt}
\newfont{\xlf}{rm-lmdunh10 at 60pt}

\def\monthyear{\ifcase\month\or
  januari\or februari\or maart\or april\or mei\or juni\or
  juli\or augustus\or september\or oktober\or november\or
  december\fi
  \space \number\year}

%%%%%%%%%%%%%%%%%%%%%% Start of the document %%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\genericlabel{%
  \parbox{8mm}{
    \begin{sideways}
      \Large Ex Libris
    \end{sideways}
  }
  \parbox{15mm}{% Logo
    \setlength{\unitlength}{1mm}
    \begin{picture}(15,24)
      \put(0,2){\xlf S}
      \put(4,15.5){\duf R}
      \put(4,4.5){\duf F}
    \end{picture}
  }  
  \parbox{40mm}{
    {\large Roland Smith}\\
    \rule{0mm}{3mm}\\
    \monthyear
  }
}
%%%%%%%%%%%%%% End of the document contents %%%%%%%%%%%%%%%%%%%
\end{document}

2010–07–25: Find me on other sites

It has been quiet here lately. This is due to work and to the fact that I’ve spent significant time commenting on the walden effect and cosmic cookout blogs, where you can find my comments under the name “Roland_Smith”.

2010–04–14: Visit to the JEC in Paris

With a couple of colleagues, I visited the JEC show again this year. Most of the suppliers of the composites industry have a stand at this exhibition. So it is a good opportunity to visit those whom you know, and to spot new ideas.

The picture below was taken from my room on the 33rd floor of the Hotel Concorde la Fayette. Nice room, but expensive even at the reduced rate we got! The worst part is that it is on the other side of Paris from the Porte de Versailles exhibition centre.

JECpicture
JECpicture

2010–03–14: Music from Magnatune

Recently I’ve been enjoying the album JS Bach on 8 string guitar, vol 2 by Daniel Estrem, which I bought from Magnatune.

The best thing about Magnatune is that you can listen to the music online before buying it, and 50% of the proceeds go directly to the artist, which seems to be a much better deal than any other record labels offer.

Unfortunately, they have switched to a subscription-only model since. :-( Since I only seldomly download music, I’m not happy about that.

Other music I’ve bought from Magnatune because I very much enjoyed it:

2010–02–28: Typesetting

Since the end of 2009 I’ve been using MultiMarkdown to format these pages, as an alternative to typing in HTML codes by hand, since the latter is becoming tedious. :-) So far, I find it rather comfortable. The advantage of multimarkdown over the original markdown systax is the support of mathematics using MathML without having to type in its horrible XML-based syntax.

But this weekend as I was updating my logbook that I typeset using LaTeX’s memoir class, it struck me that TeX is still king of the hill when it comes to excellent quality affordable typesetting. Wouldn’t it be great if webpages could be displayed by browsers using the superb TeX engine? With proper accents, ligatures, kerning and hyphenation? And a paragraph-filling line-breaking algorithm that is actually pleasing to the eye?

To the right is a table from the original PDF file of my logbook, which is typeset with LaTeX using the TeX Gyre Schola font family. I think it looks pretty fine. This table is autogenerated by my lamprop software. It depicts the layer build-up and engineering properties of a fiberglass reinforced polyester laminate. The page in question was imported into the GIMP at 300 dpi, and the table was cropped and scaled to 35% of its original size. Click on the picture to see the original. If you print this original picture at the original resolution, you’ll get an impression of how fine it looks.

2010–02–04: Improving the rocket stove

Thinking about a discussion about efficient stoves at the walden effect blog, I designed this rocket stove, with better pre-heating and simplified construction.

rocket-stove-rfs
rocket-stove-rfs

Why make firebricks when u can use two concentric pipes with insulation inbetween? I think this design could be made from off-the-shelf parts. One could use perlite as an alternative for rockwool, since that will probably hold the inner pipe in place better. If you forego the extra pre-heating sleeve, the design becomes even simpler.

2010–01–27: Tensegrity bridge design

Over at the walden effect blog, they were looking for cheap creek crossing options that didn’t require much infrastructure. My solution is a tensegrity arch bridge (or tied-arch bridge) that doesn’t require elaborate abutments.

tensegrity_bridge
tensegrity_bridge

The glulam beams are loaded lostly in compression, because of their shape. According to NEN 6760 (see “Sterktegegevens van hout”, in Dutch), woods in the lower strength classes C14 to C18 are twice as strong in compression as in tension, and are stronger in compression than in bending. The wires on the underside prevent the need for abutments becaue they can carry tensile forces. Since they also prevent the ends of the arch from spreading, they also help eliminate bending in the arches.

2010–01–11: Cycling versus driving a car in 2009

A poll on the Ecovelo website made me ponder the distances I covered by bike and by car last year. I realized that the distance I covered by bicycle last year was at least double the distance I covered by car. I’m genuinely pleased with that!

The only snag I had this winter that the bowden cables operating my hub gear froze when it was below –5°C. :-( I might have to take them apart and dry them.

(Even with the recent snow, the cyclepaths in and around Eindhoven are being kept nicely snow-free. Three cheers for the people keeping them clear! It’s very much appreciated!)

2010–01–10: Updating TeXLive

As an avid user of TeX, I was pleased when my new TeXLive DVD arrived. The update process has been documented on my UNIX miscellanea page.

The binaries that I have compiled for FreeBSD 8.0 for the amd64 architecture are available as texlive2009-freebsd8-amd64.tar.bz2.

2010–01–07: Update to FreeBSD 8.0-RELEASE-p2

Some security notifications and an errata were release on 2010–01–06. Since I tend to use the affected components, I’ve updated my system as documented on my UNIX miscellanea page.

2010–01–05: Alternative power

I’ve been reading the waldeneffect blog, and a comment thread there led me down some interesting avenues that I’d like to share.

When they blogged that a power outage stopped the fan in their furnace from working, I immediately thought that it would be neat if there were fans driven by the heat of the furnace, e.g. by a stirling engine. Some googling later, and we have a stirling-driven fan.

By the by, the thread turned to solar power, and I did some calculations based on numbers I could find. Basis for the discussion was a Northern Industrial solar panel, with a rated power of 15W, costing about US$100.

On the fast facts page of the solarbuzz website, I found the following info. A solar system of 1 kW peak power will annually deliver;

(As an aside, 1 kWh is 1000 J·s⁻¹ · 3600 s = 3.6 MJ)

So a small appartment (definitely cloudy climate, say 2100 kWh annually) would need an installation with 3 kW peak power to be self-sufficient in electricity. Extrapolated from the same website such a system would cost around €19000. The total cost for an installation with the cheap solar panels I estimate at €23000. Assuming an electricity cost of €0.25/kWh, this installation would save €525 in electricity bills per year. Clearly this is not a cost-effective investment at this time.

2010–01–03: Against software patents in Europe

Studies have shown a negative effect of patents on software development. So I’ve signed the petition. If you, dear reader, are a citizen of a country in the European Union, please sign as well!

2010–01–02: Open source video encoding with Ogg Theora and Vorbis

The free software Theora video codec, can together with the Vorbis audio codec and the Ogg container format produce very small files with good quality. Read all about it on my UNIX miscellanea page.

2010–01–01: Happy New Year!

To all my family and friends everywhere!

This is the start of my new homepage format. I decided that my homepage was overdue for a makeover, which will be done in phases due to the amount of work involded.

—– Copyright © 2010,2011 Roland Smith rsmith@xs4all.nl

Hacker emblem GIMP Emacs FreeBSD Powered by Apache Creative Commons License
The original parts of this <span xmlns:dc=“http://purl.org/dc/elements/1.1/” href=“http://purl.org/dc/dcmitype/Text” rel=“dc:type”>work are licensed under the Creative Commons Attribution 3.0 Unported License