<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="must-revalidate" />
<title>tech</title>

<link rel="icon" href="../../../favicon.ico" type="image/x-icon" />

<link rel="stylesheet" href="../../../style.css" type="text/css" />

<link rel="stylesheet" href="../../../local.css" type="text/css" />


<link rel="alternate" type="application/x-wiki" title="Edit this page" href="http://ressukka.net/wiki-cgi/ikiwiki.cgi?page=blog%2Ftags%2Ftech&amp;do=edit" />

<link rel="alternate" type="application/rss+xml" title="Ressukka.Net (RSS)" href="index.rss" /><link rel="alternate" type="application/atom+xml" title="Ressukka.Net (Atom)" href="index.atom" />


</head>
<body>

<div class="page">

<div class="pageheader">
<div class="header">
<span>
<span class="parentlinks">

<a href="../../../">Ressukka.Net</a>/ 

<a href="../../">blog</a>/ 

<a href="../">tags</a>/ 

</span>
<span class="title">
tech

</span>
</span>

<form method="get" action="http://www.google.com/search" id="searchform">
 <div>
  <input name="sitesearch" value="http://ressukka.net" type="hidden" />
  <input name="q" value="" id="searchbox" size="16" maxlength="255" type="text"
   />
 </div>
</form>


</div>


<div class="actions">
<ul>

<li><a href="http://ressukka.net/wiki-cgi/ikiwiki.cgi?page=blog%2Ftags%2Ftech&amp;do=edit" rel="nofollow">Edit</a></li>


<li><a href="../../../recentchanges/">RecentChanges</a></li>




<li><a href="http://ressukka.net/wiki-cgi/ikiwiki.cgi?do=prefs">Preferences</a></li>





</ul>
</div>




</div>


<div class="sidebar">
<ul>
<li><a href="../../">Blog</a></li>
<li><a href="../../../projects/">Projects</a></li>
<li><a href="../../../docs/">Misc docs</a></li>
</ul>


</div>


<div id="content">
<p>This feed contains pages in the "tech" category.</p>
<div id="feedlink">

<a class="feedbutton" type="application/rss+xml" href="index.rss">RSS</a>


<a class="feedbutton" type="application/atom+xml" href="index.atom">Atom</a>

</div>
<div class="inlinepage">

<div class="inlineheader">

<span class="header">

<a href="../../posts/20090211_Spam_Epiphany/">Epiphany on the state of spam</a>

</span>
</div>

<div class="inlinecontent">
<p>Today while watching a Cisco talk about their Spam product, I
realized that the current state of spam is never going to change.
It's not because there isn't an effort to block spam, but because
there is an effort to block spam.</p>
<p>At first thought it sounds odd, but it's the same problem as
with pretty much everything. There is no money in fixing the
current e-mail system, while there is a lot of money to be made in
providing new solutions to block spam. Someone with a tendency to
go with conspiracies would most likely claim that it would be in
the best interest of some companies to fund sending spam.</p>
<p>Of course I'm not claiming this, but it would actually make
sense.</p>
<p>But it's the same as with spam, spammers will be in the business
just as long as there is money to be made from spamming. The
companies working against spam are in the business just as long as
there is spam going on. If spamming stops or someone develops a
real solution to end all spam, the companies will go out of
business or at least will have to look for other venues for income.
And most companies don't like to invent new things, but rather sell
the old product over and over.</p>
<p>I just hope that in the future the same companies will figure
out that it's in everyones best interest to create a new end-all
solution, even if it means that their current products will become
obsolete. Instead they should focus on transition solutions as well
as capitalizing on the fact that it's a lot of work to rework the
current e-mail system.</p>
<p>It doesn't hurt to dream.</p>


</div>

<div class="inlinefooter">

<span class="pagedate">
Posted <span class="date">Wed Feb 11 15:21:55 2009</span>
</span>


<span class="tags">
Tags:

<a href="../bogus/" rel="tag">bogus</a>

<span class="selflink">tech</span>

</span>








</div>

</div>
<div class="inlinepage">

<div class="inlineheader">

<span class="header">

<a href="../../posts/20090125_Dreambox_Tweaks/">Dreambox Remote Control Tweaking</a>

</span>
</div>

<div class="inlinecontent">
<p>When Finland switched to Digital Television, I opted for a
Dreambox. The box has been well worth the money. Almost a year ago
(yes, I've been meaning to make a post about this <img src="../../../smileys/smile4.png" alt=";)" /> ) I bought a
<a href=
"http://www.logitech.com/index.cfm/remotes/universal_remotes/devices/3898&amp;cl=US,EN">
Logitech Harmony One</a> universal remote. Since the beginning it
had some issues with the box.</p>
<p>The problem is that by default most of the commands repeated
twice on the Dreambox. The remote itself can be modified to fit
other devices, but it's not fine grained enough. You can basically
alter the default setting of "2" to "1", what ever those mean.
Keeping the setting at 2 gives duplicate presses and 1 gives me a
poorly working remote (not all presses are registered).</p>
<p>Luckily the Dreambox is open and it's easy to dive in and dig
around. After some digging around, I found /proc/stb/ir/rc/repeat
which allowed me to alter the repeat time of the remote. After
trial and error, I managed to find a working setting. Looks like
1150 ms is just a tad bit below the required repeat time for the
remote, but for some reason increasing the setting to 1200 made
things worse. So this appears to be as good as it gets for me.</p>
<p>I also created a script to set the repeat time at boot (since I
shutdown the box for the night) which can be found <a href=
"../../../2009/01/fix-repeat/fix-repeat.sh">here</a>. <a href=
"../../../2009/01/fix-repeat/fix-repeat.sh">Fix-repeat</a> script
takes install or uninstall as argument so it should be relatively
easy to install it. The only real trick used in the script is the
conversion from a decimal number to a HEX number.</p>


</div>

<div class="inlinefooter">

<span class="pagedate">
Posted <span class="date">Sun Jan 25 09:37:17 2009</span>
</span>


<span class="tags">
Tags:

<a href="../devel/" rel="tag">devel</a>

<span class="selflink">tech</span>

</span>








</div>

</div>
<div class="inlinepage">

<div class="inlineheader">

<span class="header">

<a href="../../posts/20081118_Beating_a_dead_horse_p2/">Beating a dead horse, Part2</a>

</span>
</div>

<div class="inlinecontent">
<p>After <a href=
"../../posts/20081117_Beating_a_dead_horse_p1/">beating a dead
horse</a> once, you have to do it again.</p>
<p>Quite some time ago now, I ran in to an article where <a href=
"http://www.securityfocus.com/columnists/479/1">Wietse Venema was
interviewed</a> about security focused programming. He is the guy
who initially started writing <a href=
"http://www.postfix.org/">postfix</a>. While he does have some good
insights in to why the internet is getting more insecure, there are
some things that I think he is missing.</p>
<p>While I understand that reinventing the internet is pointless,
there are some things that need to be reinvented. The SMTP protocol
is one of those things. The protocol itself was designed for a
completely different type of a network. It doesn't do any
authentication or verification for the sender. It basically trusts
everything that is fed to it. Now, Wietse offers nice ideas on
counteracting spam, but the inner problem still persists. The
reason why we have so much spam in our mailboxes is because of
SMTP.</p>
<p>I was about to write some code and put my money where my mouth
is, but today I ran in to yet another scheme to stop spam and
realized that I would eventually forget to write this all down
before I get the time to write some code. The scheme I ran in to is
<a href="http://www.emailreg.org/">EmailReg.org</a> which allows
you to register the mail servers that are allowed to send mail for
your hosts for a nominal(?) fee of $20. While this nominal fee will
keep some of the spammers off the lists, it's still reinventing the
wheel and trying to fix a symptom of the problem.</p>
<p>There are similar projects, that work with different types of
protections. There is <a href="http://www.openspf.org/" title=
"Sender Policy Framework">SPF</a>, <a href=
"http://www.dkim.org/">DomainKeys</a>, <a href=
"http://www.microsoft.com/mscorp/safety/technologies/senderid/default.mspx">
Sender ID</a> and many more that aim for similar solutions.</p>
<p>I'm not saying that we don't need those kinds of solutions, but
rather the solutions are solving the symptom and not fixing the
problem. The only real solution is to replace SMTP with something
more suitable for the task. The thing that comes in to mind is
<a href="http://xmpp.org/">XMPP</a>. <a href=
"http://xmpp.org/">XMPP</a> is a protocol designed for XML packet
routing. It's mostly used as an instant messaging platform, but
it's not a huge leap to transfer mail through the protocol.</p>
<p><a href="http://xmpp.org/">XMPP</a> as a protocol is designed on
an age when spoofing and spamming was already a problem and it has
safeguards in place to prevent malicious activity. The protocol is
suitable for transferring e-mails already so no real modifications
are needed for the protocol. Only thing that needs to be done is to
document the common practice.</p>
<p>Changing an internet protocol is a large task and one can't take
it lightly. The beauty in it all is that most mail servers are
already capable of supporting multiple transport protocols. Initial
versions of <a href="http://www.sendmail.org/">Sendmail</a>
delivered the mail through FTP (with some obscure extensions), so
switching protocols isn't really that far fetched. Today, <a href=
"http://www.sendmail.org/">Sendmail</a> supports various protocols
while the most commonly used one is SMTP. Same goes for <a href=
"http://www.postfix.org/">postfix</a> and other mail servers. So
implementing a new protocol isn't really out of the question.</p>
<p>I'm sorry that I wasn't able to write the code to back this all
up, but at least the idea is out there in written form. It
shouldn't be too complicated to implement this and get things
started. The change won't happen over night, but it has to start
somewhere.</p>


</div>

<div class="inlinefooter">

<span class="pagedate">
Posted <span class="date">Tue Nov 18 00:34:41 2008</span>
</span>


<span class="tags">
Tags:

<a href="../bogus/" rel="tag">bogus</a>

<span class="selflink">tech</span>

<a href="../xmpp/" rel="tag">xmpp</a>

</span>








</div>

</div>
<div class="inlinepage">

<div class="inlineheader">

<span class="header">

<a href="../../posts/20081029_openssl/">OpenSSL is way too complicated</a>

</span>
</div>

<div class="inlinecontent">
<p>It's no wonder people hate dealing with certificates. I'm one of
those people who really hate handling certificates. For some reason
Linux lacks simple tools to manage certificates. Debian has one set
of tools and I bet quite a few other distributions have their own
set of tools. So nothing generic.</p>
<p>In my opinion the problem lies in <a href=
"http://www.openssl.org/" title="The OpenSSL Project">OpenSSL</a>,
which is an overly complicated piece of software. Sure it's able to
encrypt your fries at the local fast food place, but most people
never use anything more than the x509 module. And even that is
complicated.</p>
<p>I'm not saying that it should be point and click operation, but
what I want is a tool that allows me to create, renew and verify
SSL certificates. Which is pretty much the most common thing you do
with <a href="http://www.openssl.org/" title=
"The OpenSSL Project">OpenSSL</a>.</p>
<p>Now, lets assume you have a certificate and a key that you want
to check if they match. Can you say from the top of your head how
to do that? If so, you are either dealing with this stuff daily or
you looked it up from a manual. The correct "magical mumbo jumbo"
is:</p>
<pre>
<code>server:/tmp# openssl rsa -noout -modulus -in /etc/ssl/private/some.key | openssl md5
94c5fa8b0fe1baa6e8dfcdec75444620
server:/tmp# openssl x509 -noout -modulus -in signed.crt | openssl md5
94c5fa8b0fe1baa6e8dfcdec75444620
</code>
</pre>
<p>Now, how easy was that. It only took me 10 minutes to construct
that line. Most of the time went to searching <a href=
"http://www.zimbra.com/">Zimbra</a> scripts for the correct magical
line. The reason why I went through the scripts instead of the
manual is that I had already seen the scripts do a appropriate
check. And there is no way I could have constructed that in that
kind of a time frame just by using the manual.</p>
<p>Usually I think that people complain too much when they can't
figure out how to make <code>ls</code> or something work like they
want. A certain degree of manual reading is good for you, but in
this case it's too much. In any case, I'm posting this rant as a
reminder for myself so that the next time I can just look it up
from here.</p>


</div>

<div class="inlinefooter">

<span class="pagedate">
Posted <span class="date">Wed Oct 29 15:57:26 2008</span>
</span>


<span class="tags">
Tags:

<a href="../bogus/" rel="tag">bogus</a>

<a href="../debian/" rel="tag">debian</a>

<span class="selflink">tech</span>

</span>








</div>

</div>
<div class="inlinepage">

<div class="inlineheader">

<span class="header">

<a href="../../posts/20080901_millionaire/">Why i&#x27;m not a millionaire?</a>

</span>
</div>

<div class="inlinecontent">
<p>Sometimes I wonder why I'm not a millionaire... I keep having
these odd strokes of luck.</p>
<p>Today the HD on my laptop broke. And I had such a good plan for
backups. It should have been foolproof. I meant to run incremental
backups every so often and put the data in to external drives,
which are mirrored. It turns out there was a flaw in my backup
plan: I forgot to implement it. Yes, my HD broke down and I had
absolutely no backups of my HD contents. Since it's not the first
time I've seen a HD failure, I immediately started making a clone
of the disk. I didn't want to waste time looking for individual
files, since a clone of the disk contains all the data that is
accessible on the broken disk anyway.</p>
<p>I decided to try with <a href=
"http://www.clonezilla.org/">clonezilla</a>, because it's
intelligent enough to backup the data I need but still has a decent
GUI to work through the command line options. After all, I don't
clone disks daily.</p>
<p>After starting the clone, it tried to access the data and after
a while I saw a message from kernel saying that the disk froze. I
almost gave up hope when the partitions showed up on screen. I
gasped for air when I finally realized what happened. Apparently
the swap partition was the only thing that was lost! Feeling
hopeful I left <a href="http://www.clonezilla.org/">clonezilla</a>
to do it's job and headed out the door. Once I got back all of the
data had been backed up.</p>
<p>At this point I already had a new drive so it was time to do the
reverse and restore the backup, which was an uneventful 2 hours of
waiting. Before rebooting I ran mkswap on the swap partition and
rebooted.</p>
<p>The system is now back up and running.</p>
<p>It's not the first time I had problems with HDs, recently I've
lost 3-4 HDs due to various failures. Only once I've lost data, but
the lost data wasn't anything that couldn't be regenerated. Maybe
it's not luck, maybe I'm a cat in a human form. Maybe I just always
land on my feet... Time will tell.</p>


</div>

<div class="inlinefooter">

<span class="pagedate">
Posted <span class="date">Mon Sep  1 23:18:57 2008</span>
</span>


<span class="tags">
Tags:

<a href="../life/" rel="tag">life</a>

<a href="../musing/" rel="tag">musing</a>

<span class="selflink">tech</span>

</span>








</div>

</div>
<div class="inlinepage">

<div class="inlineheader">

<span class="header">

<a href="../../posts/20080821_openvpn_tunnel/">Setting up an OpenVPN tunnel</a>

</span>
</div>

<div class="inlinecontent">
<p>Recently I fixed my <a href="http://openvpn.net/">OpenVPN</a>
tunnel and figured out what was wrong with my <a href=
"../../posts/20080820_dynamic_networking/">bridge setup</a>. Here
is the complete setup that I have.</p>
<h2>Server</h2>
<p>I wanted to have as much of the configuration on the server as
possible so that I could easily add more clients and wouldn't have
a need to update client configuration when ever the server
preferences change.</p>
<p>Here is my <a href="http://openvpn.net/">OpenVPN</a> server
configuration:</p>
<pre>
<code>mode server
tls-server
dev tap0
server-bridge 10.5.6.1 255.255.255.0 10.5.6.200 10.5.6.209
ifconfig-pool-persist /var/run/openvpn-ip.txt
keepalive 10 60
ping-timer-rem
persist-tun
push "route 10.5.6.0 255.255.255.0"
push "dhcp-option DNS 10.5.6.1"
ca /root/easy-rsa-2.0/keys/ca.crt
key /root/easy-rsa-2.0/keys/ressukka.net.key
cert /root/easy-rsa-2.0/keys/ressukka.net.crt
dh /root/easy-rsa-2.0/keys/dh1024.pem
client-to-client
up /etc/openvpn/ovpn-ressukka.sh
</code>
</pre>
<p>and the up script:</p>
<pre>
<code>#!/bin/sh
# Bind the tunnel interface to the bridge

BRIDGE=br0

ifup $1
brctl addif $BRIDGE $1
</code>
</pre>
<p>There is nothing really special about that configuration. The
server is in TLS mode configures a bridge. The keys are generated
with easy-rsa by following a <a href=
"http://openvpn.net/howto.html#pki">openvpn howto entry</a>. The up
script just binds the <code>tap0</code> device to the network
bridge after bringing up the device.</p>
<p>Next I created the interface configuration by adding the
following to <code>/etc/network/interfaces</code>:</p>
<pre>
<code>iface br0 inet static  
 address 10.5.6.17  
 gateway 10.5.6.1  
 netmask 255.255.255.0  
 bridge-ports eth0
</code>
</pre>
<p>The trick here is to create a single bridge with just the
<code>eth0</code> device. We use the up script for openvpn to add
the tunnel device to the bridge. Otherwise the bridge would never
contain the proper devices.</p>
<h2>Client</h2>
<p>As for the client, you simply set the client to use the
CA-certificate and Host key created with easy-rsa, set the hostname
and tunnel type. Tunnel type is assumed to be a tun-device instead
of tap, so in my case I needed to change it too.</p>
<p>There is no need to tell the client anything else. Everything
else will be negotiated through the tunnel. And since I use
NetworkManager to set up my tunnels I didn't have a need to drop in
to a shell even once at the client.</p>


</div>

<div class="inlinefooter">

<span class="pagedate">
Posted <span class="date">Thu Aug 21 01:45:59 2008</span>
</span>


<span class="tags">
Tags:

<a href="../debian/" rel="tag">debian</a>

<span class="selflink">tech</span>

<a href="../ubuntu/" rel="tag">ubuntu</a>

</span>








</div>

</div>
<div class="inlinepage">

<div class="inlineheader">

<span class="header">

<a href="../../posts/20080820_dynamic_networking/">Dynamic network configuration</a>

</span>
</div>

<div class="inlinecontent">
<p>I've been meaning to write up on this for quite some time now,
but always have something seemingly more important things to
do.</p>
<p>Most modern Linux distributions offer ways to manage network
interfaces via some kind of abstraction. Usually this abstraction
allows one to dynamically rename and add network interfaces. For
<a href="http://www.debian.org/">Debian</a> family management is
done with <a href=
"http://packages.debian.org/etch/ifupdown">ifupdown</a>, while with
<a href="http://www.redhat.com/">RedHat</a> family it's <a href=
"http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap9sec90.html">
sysconfig</a>. In addition there is <a href=
"http://www.gnome.org/projects/NetworkManager/">NetworkManager</a>
which is a cross platform solution for dynamic network
configuration (which eliminates the need to rename interfaces).</p>
<h2>Case Xenserver</h2>
<p>Usually this comes in rather handy, but on other occasions it
can be a pain. A while I was helping out with an installation of a
<a href=
"http://citrix.com/English/ps2/products/product.asp?contentID=683148">
XenServer</a> instance. This server had, for some reason, ethernet
interfaces reversed in comparison to the other <a href=
"http://citrix.com/English/ps2/products/product.asp?contentID=683148">
XenServers</a> on the site. Luckily the service console has the
network configuration in ifcfg scripts. We were easily able to
reverse the interfaces by binding the interfaces to certain
hardware addresses.</p>
<p>The only problem is that the interface is renamed only when the
interface is brought up. What's worse the interfaces were
enumerated before the server would bring up all of the interfaces.
Only eth0 was brought up for management purposes before
enumerating. This means that the original eth0 was renamed to
<code>_tmp_xxxxxx</code>. The (oh so elegant) solution was to
create a script that does <code>ifup eth1; ifdown eth1</code>.
Problem solved.</p>
<h2>Case tap0</h2>
<p>I also experienced similar problems when I was setting up my
<a href="http://openvpn.net/">OpenVPN</a> tunnel. I wanted to use a
bridged connection to my network, but for that I needed to create a
<code>br0</code> interface with <code>tap0</code> as a member.</p>
<p>It's easy enough to create <a href=
"http://packages.debian.org/etch/ifupdown">ifupdown</a>
configuration to set up <code>tap0</code>. Hook that up to
<code>br0</code> and you are all set. The same problem will bite
you here. The interface <code>tap0</code> is actually created only
when the <code>tap0</code> is brought up and <code>br0</code>
members are added only if they are present.</p>
<p>The solution? In my case, create a custom script that adds the
device manually after it's been created properly. I was unable to
find anything that works without using a custom script =(</p>
<h2>In retrospect</h2>
<p>Looking back at these cases, I should have known better. The
problem was obvious and it took me way too long to figure out the
cause for my problems. Then again, the utilities should be able to
create a reasonable abstraction for themselves that they use to
determine the actual status of the whole system. This way the
trickery needed for setting up simple interface would be
obsolete.</p>
<p>You can't have it all, but you can always hope.</p>


</div>

<div class="inlinefooter">

<span class="pagedate">
Posted <span class="date">Thu Aug 21 01:24:34 2008</span>
</span>


<span class="tags">
Tags:

<a href="../debian/" rel="tag">debian</a>

<span class="selflink">tech</span>

</span>








</div>

</div>
<div class="inlinepage">

<div class="inlineheader">

<span class="header">

<a href="../../posts/20080805_locales_recap/">Locales, recap</a>

</span>
</div>

<div class="inlinecontent">
<p>After my post yesterday about locales and my problems, I got
some comments.</p>
<p>Bryan, <a href="http://smcv.pseudorandom.co.uk/" title=
"Simon mailed me">Simon</a> and <a href=
"http://www.grep.be/blog/en/computer/cluebat/locales" title=
"Wouter's blog, nice category btw ;)">Wouter</a> all pointed out
what eventually figured out too but didn't mention in the post (I
actually had to re-read the post to see what I wrote) that
<code>LC_ALL</code> overrides all of the settings. Even though I
figured it out eventually, with these comments it finally me that
the purpose is actually to temporarily override the locale.</p>
<p>Another thing that didn't occur to me while figuring out the
correct locale for my system was that I'm thinking about it all
wrong. Since I've already gotten used to broken locales I kept
thinking that I want <code>en_US</code> locale with some Finnish
settings, but in reality I wanted <code>fi_FI</code> locale with
English language. I have to admit that I was pretty sceptical about
the solution but decided to try it out. And to my surprise, it
actually worked!</p>
<p>So the final solution is this: <code>LANG="fi_FI.UTF-8"<br />
LANGUAGE="en"<br />
LC_MESSAGES="en_US.UTF-8"<br />
LC_TIME="en_US.UTF-8"</code></p>
<p>It is a pretty clean solution and I'm happy to live with it. And
as Simon pointed out, administrator changes should be preserved
through upgrades. If not, one should file a bug for it.</p>
<p>There we go, another problem solved. Thanks for the comments and
suggestions.</p>


</div>

<div class="inlinefooter">

<span class="pagedate">
Posted <span class="date">Wed Aug  6 00:01:27 2008</span>
</span>


<span class="tags">
Tags:

<a href="../debian/" rel="tag">debian</a>

<a href="../replies/" rel="tag">replies</a>

<span class="selflink">tech</span>

<a href="../ubuntu/" rel="tag">ubuntu</a>

</span>








</div>

</div>
<div class="inlinepage">

<div class="inlineheader">

<span class="header">

<a href="../../posts/20080804_locales/">The pain of locales</a>

</span>
</div>

<div class="inlinecontent">
<p>Linux has this great thing called locales. You can basically
control everything through a few system variables. The system is so
flexible that you could in fact have English language with Swedish
dates and Chinese error messages.</p>
<p>The problem with the current system is that it's controlled
mostly with one variable. Just about everyone I know (including me)
set the system locale to <code>en_US</code> because they don't want
to use their local language as the system language. This in turn
causes new problems, mostly due to the metric system used in the
sane countries.</p>
<p>I finally got around to debug how to get the system to speak my
language. The key here is the file <code>/etc/default/locale</code>
which on Debian based systems contain the locale settings. Usually
there is just one line in that file.</p>
<p><code>LANG=en_US.UTF-8</code></p>
<p>Since I live in Finland and want my computer to speak English I
can add the following lines:</p>
<p><code>LC_NUMERIC="fi_FI.UTF-8"<br />
LC_PAPER="fi_FI.UTF-8"<br />
LC_NAME="fi_FI.UTF-8"<br />
LC_ADDRESS="fi_FI.UTF-8"<br />
LC_TELEPHONE="fi_FI.UTF-8"<br />
LC_MEASUREMENT="fi_FI.UTF-8"</code></p>
<p>This replaces the settings for numerals (decimal separator and
such), paper (yes, the rest of the world uses A4), name, address,
telephone and measurement (YAY, metric system!). This way I have a
nice English speaking system with Finnish settings.</p>
<p>I tried setting <code>LC_ALL</code> to <code>fi_FI.UTF-8</code>
but that causes gnome to speak Finnish to me, even though the
<code>LANGUAGE</code> and <code>LANG</code> settings are set the
English. <code>LC_TIME</code> is something I'd like to use, but I
find the Finnish abbreviations for weekdays and months to be
confusing. <code>LC_MESSAGES</code> causes gnome to talk partially
Finnish, the general locale is English as it's supposed to be, but
for example gnome-panel changes the menu entries to Finnish.</p>
<p>I wish that it was easier to set these settings. I also doubt
that various tools know how to respect these settings and will
overwrite that file with the default setting. That is why I'm
writing this entry so that I remember how to fix it when that
happens.</p>
<p>In the end the system is flexible but it's built in a funny way.
The actual variable built by combining 2 or 3 values: language,
country and possibly encoding. So to make thing easy for me I would
have to declare <code>en_FI.UTF-8</code> locale and start
translating applications to that locale. I don't want to, so I'm
sticking to this "temporary" solution.</p>


</div>

<div class="inlinefooter">

<span class="pagedate">
Posted <span class="date">Mon Aug  4 18:54:49 2008</span>
</span>


<span class="tags">
Tags:

<a href="../debian/" rel="tag">debian</a>

<span class="selflink">tech</span>

<a href="../ubuntu/" rel="tag">ubuntu</a>

</span>








</div>

</div>
<div class="inlinepage">

<div class="inlineheader">

<span class="header">

<a href="../../posts/20080803_lazyweb_roundup/">Lazyweb, I asked about dreambox</a>

</span>
</div>

<div class="inlinecontent">
<p>A while back wanted to know about a replacement for my <a href=
"http://en.wikipedia.org/wiki/Dreambox" title=
"Dreambox on Wikipedia">Dreambox</a>. I was also asked to write up
a summary of the replies.</p>
<p>Initially I assumed that my <a href=
"http://en.wikipedia.org/wiki/Dreambox" title=
"Dreambox on Wikipedia">Dreambox</a> 7025C was failing, it showed a
classic symptom, progressively increasing error rate which wasn't
showing up on my neighbors. Since we share the cable they should
see the problems too, so I ordered new tuners for the box and the
problem persisted. In the end it turns out that the problems were
initially showing on such channels that my neighbors weren't
watching or in such amount that they didn't pay attention to
it.</p>
<p>In the end it was a problem in the feed and my box is just fine.
I now have 2 brand new DVB-C tuners for the 7025 (anyone want to
buy them?) and a perfectly working setup. (YAY!).</p>
<p>In a way I feel lucky that the box wasn't failing on me. Nobody
suggested any complete solutions, but I was able to spot <a href=
"http://www.reel-multimedia.com/en/reelbox_avantgarde_uebersicht.html">
ReelBox Avantgarde</a> as a possible alternative. It runs Linux
like I want it to, but it's way too expensive. Another alternative
could have been <a href=
"http://www.maximum.fi/maximum_8000.html">Maximum 8000</a>, which
appears to be a re-branded <a href=
"http://www.marusys.com/c8000.html">Marusys C-8000</a>. It has
Linux as the OS but the community side appears to be rather
lacking. Then again, it's a pretty new device...</p>
<p>I was suggested <a href="http://www.cadsoft.de/vdr/">VDR</a> and
<a href="http://www.mythtv.org/">MythTV</a> as the DIY solution. I
dismissed <a href="http://www.mythtv.org/">MythTV</a> without even
looking in to it. Although I must admit that it's been quite a few
years since I tried <a href="http://www.mythtv.org/">MythTV</a>,
but it was way too unstable for my taste. Also I wasn't too happy
about the architecture of it.</p>
<p><a href="http://www.cadsoft.de/vdr/">VDR</a> is something I
could have tried. The downside appears to be that it lacks in
hardware support. The last time I was building my own PVR I ran in
to the common problem of getting a decent output to the TV.
<a href="http://www.cadsoft.de/vdr/">VDR</a> folks have
traditionally solved this by using a HW decoder card to output the
stream directly to the TV. Using <a href=
"http://www.cadsoft.de/vdr/">VDR</a> with a budget DVB card is
possible but not recommended because of the CPU power needed to
decode the stream. I've always considered <a href=
"http://www.cadsoft.de/vdr/">VDR</a> to be the more sophisticated
solution of the two, but it is starting to sound a lot more hassle
than it's supposed to.</p>
<p>Also, the DIY solutions are hard to get in to a decent form.
Usually the cases are bulky and custom modifications are required.
I'm not one of those guys that install neon lights to their
computers to make it look cool, but if I'm having it in my living
room I expect it to look decent. Take a look at the <a href=
"http://www.cadsoft.de/vdr/people.htm">VDR boxes</a> section on the
website for examples. While I admit that it's up to me to build a
decent box, I'm not willing to spend too much time hand picking
every single component so that it fits a casing and works with the
given application.</p>
<p>Finally, I'd like to thank all the people that sent me comments.
Even though I ended up sticking with the current setup, it was a
valuable look in to what is out there. The <a href=
"http://en.wikipedia.org/wiki/Dreambox" title=
"Dreambox on Wikipedia">Dreambox</a> I have, doesn't have a HDMI
output and lacks in few areas. Keeping that in mind I'm eventually
going to take this same look in to the alternatives while picking a
replacement for the current box. Lets hope <a href=
"http://www.cadsoft.de/vdr/">VDR</a>, <a href=
"http://www.mythtv.org/">MythTV</a> and <a href=
"http://elisa.fluendo.com/">Elisa</a> (to name a few) continue to
evolve and the video output properties of Linux become better and
eventually I'll have the possibility of replacing my current setup
with something that is even more flexible.</p>


</div>

<div class="inlinefooter">

<span class="pagedate">
Posted <span class="date">Sun Aug  3 23:20:20 2008</span>
</span>


<span class="tags">
Tags:

<a href="../debian/" rel="tag">debian</a>

<a href="../lazyweb/" rel="tag">lazyweb</a>

<span class="selflink">tech</span>

</span>








</div>

</div>



</div>



<div id="footer" class="pagefooter">
<div id="pageinfo">




<div id="backlinks">
Links:

<a href="../../posts/20070121_why/">posts/20070121 why</a>

<a href="../../posts/20070201_openid/">posts/20070201 openid</a>

<a href="../../posts/20070217_spamfighting/">posts/20070217 spamfighting</a>

<a href="../../posts/20070224_websites_in_vcs/">posts/20070224 websites in vcs</a>

<a href="../../posts/20070322_time_flies/">posts/20070322 time flies</a>

<a href="../../posts/20070325_Intarweb_gone_wrong/">posts/20070325 Intarweb gone wrong</a>

<a href="../../posts/20070422_servers_vs_desktops/">posts/20070422 servers vs desktops</a>

<a href="../../posts/20070517_debian_on_nslu2/">posts/20070517 debian on nslu2</a>

<a href="../../posts/20070611_backup/">posts/20070611 backup</a>

<a href="../../posts/20070613_backup_continued/">posts/20070613 backup continued</a>


<span class="popup">...
<span class="balloon">

<a href="../../posts/20070614_backupninja/">posts/20070614 backupninja</a>

<a href="../../posts/20070617_donations/">posts/20070617 donations</a>

<a href="../../posts/20070716_removing_tracker/">posts/20070716 removing tracker</a>

<a href="../../posts/20070815_openid_cookies/">posts/20070815 openid cookies</a>

<a href="../../posts/20070824_zeroinbox/">posts/20070824 zeroinbox</a>

<a href="../../posts/20070909_postfix_defaults/">posts/20070909 postfix defaults</a>

<a href="../../posts/20070909_printing/">posts/20070909 printing</a>

<a href="../../posts/20070912_gstreamer/">posts/20070912 gstreamer</a>

<a href="../../posts/20080130_personal_firewalls/">posts/20080130 personal firewalls</a>

<a href="../../posts/20080305_openssl_subjaltname/">posts/20080305 openssl subjaltname</a>

<a href="../../posts/20080529_Fixing_LVM/">posts/20080529 Fixing LVM</a>

<a href="../../posts/20080623_Migrating_Sticks/">posts/20080623 Migrating Sticks</a>

<a href="../../posts/20080703_overcommit/">posts/20080703 overcommit</a>

<a href="../../posts/20080728_lazyweb_dreambox/">posts/20080728 lazyweb dreambox</a>

<a href="../../posts/20080803_lazyweb_roundup/">posts/20080803 lazyweb roundup</a>

<a href="../../posts/20080804_locales/">posts/20080804 locales</a>

<a href="../../posts/20080805_locales_recap/">posts/20080805 locales recap</a>

<a href="../../posts/20080820_dynamic_networking/">posts/20080820 dynamic networking</a>

<a href="../../posts/20080821_openvpn_tunnel/">posts/20080821 openvpn tunnel</a>

<a href="../../posts/20080901_millionaire/">posts/20080901 millionaire</a>

<a href="../../posts/20081029_openssl/">posts/20081029 openssl</a>

<a href="../../posts/20081118_Beating_a_dead_horse_p2/">posts/20081118 Beating a dead horse p2</a>

<a href="../../posts/20090125_Dreambox_Tweaks/">posts/20090125 Dreambox Tweaks</a>

<a href="../../posts/20090211_Spam_Epiphany/">posts/20090211 Spam Epiphany</a>

</span>
</span>

</div>






<div class="pagedate">
Last edited <span class="date">Sat Jan 24 21:49:39 2009</span>
<!-- Created <span class="date">Sun Jan 21 00:45:30 2007</span> -->
</div>

</div>

<!-- from Ressukka.Net -->
</div>

</div>

</body>
</html>
