<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Florent Clairambault &#187; English</title>
	<atom:link href="http://florent.clairambault.fr/cat/uncategorized/feed" rel="self" type="application/rss+xml" />
	<link>http://florent.clairambault.fr</link>
	<description></description>
	<lastBuildDate>Sat, 04 Feb 2012 19:56:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19719</generator>
		<item>
		<title>cron-apt and the perfect update system</title>
		<link>http://florent.clairambault.fr/cron-apt-and-the-perfect-update-system?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cron-apt-and-the-perfect-update-system</link>
		<comments>http://florent.clairambault.fr/cron-apt-and-the-perfect-update-system#comments</comments>
		<pubDate>Wed, 18 Jan 2012 04:00:06 +0000</pubDate>
		<dc:creator>Florent Clairambault</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[cron-apt]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://florent.clairambault.fr/?p=3688</guid>
		<description><![CDATA[On my spare time, I manage a handful of servers. And even if it&#8217;s not really my job, I try to do it well and efficiently. All of them work on Debian because it&#8217;s simple to manage. I started using cron-apt a few years ago. I started by upgrading everything automatically, this was a big [...]]]></description>
			<content:encoded><![CDATA[<p>
On my spare time, I manage a handful of servers. And even if it&#8217;s not really my job, I try to do it well and efficiently. All of them work on Debian because it&#8217;s simple to manage. I started using cron-apt a few years ago. I started by upgrading everything automatically, this was a big mistake. I switched to only sending mails on available upgrades and doing the upgrade manually. But this is also quite painful because 95% of the time, it consists in typing &#8220;<code>apt-get dist-upgrade -y</code>&#8221; and waiting. And have no free time for doing stupid things.
</p>
<p>So here is my cron-apt configuration, I like it a lot:</p>
<p>
In <code>/etc/apt</code>:<br />
- I removed the <code>sources.list</code> file<br />
- I put the content of my <code>sources.list</code> into sources.list.d/main.list, it should look something like that:</p>

<div class="wp_codebox"><table><tr id="p36887"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p3688code7"><pre class="text" style="font-family:monospace;">deb http://http.us.debian.org/debian stable main contrib non-free
deb-src http://http.us.debian.org/debian stable main contrib non-free</pre></td></tr></table></div>

<p>- I created a directory sources.security.list.d<br />
- I put the following content:</p>

<div class="wp_codebox"><table><tr id="p36888"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p3688code8"><pre class="text" style="font-family:monospace;">deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free</pre></td></tr></table></div>

</p>
<p>
Then I added the repositories with packages I want to manually upgrade to <code>/etc/apt/sources.list.d/</code> and the ones that I want to automatically upgrade (which means that they can&#8217;t require any user interaction) to <code>/etc/apt/sources.security.list.d/</code>.
</p>
<p>
The interesting part is here, in <code>/etc/cron-apt/action.d</code>, this what I have:
</p>
<p><strong>0-update</strong></p>

<div class="wp_codebox"><table><tr id="p36889"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p3688code9"><pre class="bash" style="font-family:monospace;">update <span style="color: #660033;">-o</span> <span style="color: #007800;">quiet</span>=<span style="color: #000000;">2</span>
update <span style="color: #660033;">-o</span> <span style="color: #007800;">quiet</span>=<span style="color: #000000;">2</span> <span style="color: #660033;">-o</span> Dir::Etc::<span style="color: #007800;">sourceparts</span>=<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.security.list.d <span style="color: #660033;">-o</span> Dir::State::<span style="color: #007800;">lists</span>=<span style="color: #ff0000;">&quot;security-lists&quot;</span></pre></td></tr></table></div>

<p>
We launch an update of the two kinds of repositories. For the <code>sources.security.list.d</code> one, we use also a different <code>Dir::State::lists</code> parameter (which is the directory the cache file) so that we don&#8217;t to re-download the content of the index files every time.
</p>
<p><strong>2-install-security</strong></p>

<div class="wp_codebox"><table><tr id="p368810"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p3688code10"><pre class="bash" style="font-family:monospace;">dist-upgrade <span style="color: #660033;">-y</span> <span style="color: #660033;">-o</span> <span style="color: #007800;">quiet</span>=<span style="color: #000000;">1</span> <span style="color: #660033;">-o</span> Dir::Etc::<span style="color: #007800;">sourceparts</span>=<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.security.list.d <span style="color: #660033;">-o</span> Dir::State::<span style="color: #007800;">lists</span>=<span style="color: #ff0000;">&quot;security-lists&quot;</span></pre></td></tr></table></div>

<p>
We launch the upgrade (dist-upgrade actually) only on the repositories defined in <code>/etc/apt/sources.security.list.d</code>.
</p>
<p><strong>3-download</strong></p>

<div class="wp_codebox"><table><tr id="p368811"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p3688code11"><pre class="bash" style="font-family:monospace;">dist-upgrade <span style="color: #660033;">-d</span> <span style="color: #660033;">-y</span> <span style="color: #660033;">-o</span> APT::Get::Show-Upgraded=<span style="color: #c20cb9; font-weight: bold;">true</span></pre></td></tr></table></div>

<p>
Then we only download files for the upgrade of the non-security packets.
</p>
<p><strong>6-clean</strong></p>

<div class="wp_codebox"><table><tr id="p368812"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p3688code12"><pre class="bash" style="font-family:monospace;">autoclean <span style="color: #660033;">-y</span></pre></td></tr></table></div>

<p>
And we finally delete all the old packets (the ones that will never be used).
</p>
<p>
If you want to play with the <code>apt</code> settings yourself, you should use <code>apt-config</code> to see what can change to fit your needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://florent.clairambault.fr/cron-apt-and-the-perfect-update-system/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>btrfs for a simple and powerful backup system</title>
		<link>http://florent.clairambault.fr/btrfs-for-a-simple-and-powerful-backup?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=btrfs-for-a-simple-and-powerful-backup</link>
		<comments>http://florent.clairambault.fr/btrfs-for-a-simple-and-powerful-backup#comments</comments>
		<pubDate>Thu, 12 Jan 2012 23:57:47 +0000</pubDate>
		<dc:creator>Florent Clairambault</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[btrfs]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://florent.clairambault.fr/?p=3671</guid>
		<description><![CDATA[I&#8217;ve been testing btrfs for some months now. One of the most interesting features of this file-system is its snapshoting capabilities. Before that I was using rsnapshot. The issue with rsnapshot is that its lowest atomic level for snapshotting is the files themselves using hard-links. So any database table where one row is changed is [...]]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;ve been testing btrfs for some months now. One of the most interesting features of this file-system is its snapshoting capabilities. Before that I was using rsnapshot. The issue with rsnapshot is that its lowest atomic level for snapshotting is the files themselves using hard-links. So any database table where one row is changed is copied completely. Btrfs as you might guess will only copy the modified chunks (I don&#8217;t know the atomicity of them [but who cares?]).</p>
<p>Here is a simple I&#8217;ve been using during these last months to backup my laptop and (remotely hosted) servers.
</p>

<div class="wp_codebox"><table><tr id="p367115"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
</pre></td><td class="code" id="p3671code15"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># === ARGUMENTS PARSING ===</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># We don't want to define a default period</span>
<span style="color: #007800;">PERIOD</span>=
&nbsp;
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$1</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> ^- <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null; <span style="color: #000000; font-weight: bold;">do</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;$1&quot;</span> = <span style="color: #ff0000;">&quot;--daily&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #007800;">PERIOD</span>=daily
    <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;$1&quot;</span> = <span style="color: #ff0000;">&quot;--monthly&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #007800;">PERIOD</span>=monthly
    <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;$1&quot;</span> = <span style="color: #ff0000;">&quot;--period&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #007800;">PERIOD</span>=<span style="color: #007800;">$2</span>
        <span style="color: #7a0874; font-weight: bold;">shift</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
    <span style="color: #7a0874; font-weight: bold;">shift</span>
<span style="color: #000000; font-weight: bold;">done</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${PERIOD}</span>&quot;</span> = <span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;You have to define a period  with the --period arg !&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">2</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># === END OF ARGUMENTS PARSING ===</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># === PARAMETERS ===</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># * Device we will use</span>
<span style="color: #007800;">DISK</span>=<span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>externe3
&nbsp;
<span style="color: #666666; font-style: italic;"># * Subvolume used for the backup</span>
<span style="color: #007800;">SUBVOLUME</span>=<span style="color: #800000;">${DISK}</span><span style="color: #000000; font-weight: bold;">/</span>servers-backup
&nbsp;
<span style="color: #666666; font-style: italic;"># * Current date (you could limit the date to +%Y-%m-%d)</span>
<span style="color: #007800;">DATE</span>=<span style="color: #000000; font-weight: bold;">`/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #000000; font-weight: bold;">%</span>Y-<span style="color: #000000; font-weight: bold;">%</span>m-<span style="color: #000000; font-weight: bold;">%</span>d_<span style="color: #000000; font-weight: bold;">%</span>H-<span style="color: #000000; font-weight: bold;">%</span>M-<span style="color: #000000; font-weight: bold;">%</span>S<span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># * snapshot directory that will be used</span>
<span style="color: #007800;">SNAPDIR</span>=<span style="color: #800000;">${DISK}</span><span style="color: #000000; font-weight: bold;">/</span>snap<span style="color: #000000; font-weight: bold;">/</span>servers-backup
&nbsp;
<span style="color: #666666; font-style: italic;"># * snapshot volume that will be used</span>
<span style="color: #007800;">SNAPVOL</span>=<span style="color: #800000;">${SNAPDIR}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${PERIOD}</span>-<span style="color: #800000;">${DATE}</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># * max days to keep daily backups</span>
<span style="color: #007800;">MAX_DAYLY</span>=<span style="color: #000000;">60</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># * max days to keep monthly backups</span>
<span style="color: #007800;">MAX_MONTHLY</span>=<span style="color: #000000;">365</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># * Alert limit</span>
<span style="color: #007800;">LIMIT_ALERT</span>=<span style="color: #000000;">95</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># * High limit</span>
<span style="color: #007800;">LIMIT_HIGH</span>=<span style="color: #000000;">90</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># * Low limit</span>
<span style="color: #007800;">LIMIT_LOW</span>=<span style="color: #000000;">85</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># === END OF PARAMETERS ===</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># We get the space used over the total allocated space and the total percentage use.</span>
<span style="color: #666666; font-style: italic;"># This is NOT the device total size but it's a lot more reliable than &quot;df -h&quot;</span>
<span style="color: #007800;">DISK_USED</span>=<span style="color: #000000; font-weight: bold;">`/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>btrfs filesystem <span style="color: #c20cb9; font-weight: bold;">df</span> <span style="color: #800000;">${DISK}</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> Data<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-Po</span> <span style="color: #ff0000;">&quot;used=([0-9]*)&quot;</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span>= -f2<span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">DISK_TOTAL</span>=<span style="color: #000000; font-weight: bold;">`/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>btrfs filesystem <span style="color: #c20cb9; font-weight: bold;">df</span> <span style="color: #800000;">${DISK}</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> Data<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-Po</span> <span style="color: #ff0000;">&quot;total=([0-9]*)&quot;</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span>= -f2<span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">DISK_PERC</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #000000;">100</span><span style="color: #000000; font-weight: bold;">*</span><span style="color: #800000;">${DISK_USED}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${DISK_TOTAL}</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">bc</span><span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># We create the snapshot dir if it doesn't exist</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-d</span> <span style="color: #800000;">${SNAPDIR}</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #800000;">${SNAPDIR}</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #800000;">${SNAPDIR}</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># If we are over the low free space limit,</span>
<span style="color: #666666; font-style: italic;"># we delete two days of daily backup.</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$DISK_PERC</span> <span style="color: #660033;">-gt</span> <span style="color: #007800;">$LIMIT_LOW</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;LOW LIMIT reached: <span style="color: #007800;">$DISK_PERC</span> &gt; <span style="color: #007800;">$LIMIT_LOW</span> : Deleting 2 days&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">2</span>
&nbsp;
        <span style="color: #007800;">OLDEST_FILES</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">--sort</span>=<span style="color: #000000; font-weight: bold;">time</span> -r<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;daily-.*&quot;</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">head</span> -<span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">`</span>
        <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #007800;">$OLDEST_FILES</span>; <span style="color: #000000; font-weight: bold;">do</span>
                <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>btrfs subvolume delete <span style="color: #007800;">$file</span>;
        <span style="color: #000000; font-weight: bold;">done</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># If we are over the high free space limit,</span>
<span style="color: #666666; font-style: italic;"># we delete a month of monthly backup</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$DISK_PERC</span> <span style="color: #660033;">-gt</span> <span style="color: #007800;">$LIMIT_HIGH</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;HIGH LIMIT reached: <span style="color: #007800;">$DISK_PERC</span> &gt; <span style="color: #007800;">$LIMIT_HIGH</span> : Deleting 1 month&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">2</span>
&nbsp;
        <span style="color: #007800;">OLDEST_FILES</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">--sort</span>=<span style="color: #000000; font-weight: bold;">time</span> -r<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;monthly-.*&quot;</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">head</span> -<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">`</span>
        <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #007800;">$OLDEST_FILES</span>; <span style="color: #000000; font-weight: bold;">do</span>
                <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>btrfs subvolume delete <span style="color: #007800;">$file</span>;
        <span style="color: #000000; font-weight: bold;">done</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># If we are over the alert free space limit,</span>
<span style="color: #666666; font-style: italic;"># we delete the first two oldest files we can find</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$DISK_PERC</span> <span style="color: #660033;">-gt</span> <span style="color: #007800;">$LIMIT_ALERT</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;ALERT LIMIT reached: <span style="color: #007800;">$DISK_PERC</span> &gt; <span style="color: #007800;">$LIMIT_ALERT</span> : Deleting the 2 oldest&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&amp;</span><span style="color: #000000;">2</span>
&nbsp;
        <span style="color: #007800;">OLDEST_FILES</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">--sort</span>=<span style="color: #000000; font-weight: bold;">time</span> -r<span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">head</span> -<span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">`</span>
        <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #007800;">$OLDEST_FILES</span>; <span style="color: #000000; font-weight: bold;">do</span>
                <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>btrfs subvolume delete <span style="color: #007800;">$file</span>;
        <span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
&nbsp;
<span style="color: #666666; font-style: italic;"># We touch the subvolume to change the modification date</span>
<span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #800000;">${SUBVOLUME}</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># We do a snapshot of the subvolume</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${SNAPVOL}</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>btrfs subvolume snapshot <span style="color: #800000;">${SUBVOLUME}</span> <span style="color: #800000;">${SNAPVOL}</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># We delete the backups older than MAX_DAYLY</span>
<span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #800000;">${SNAPDIR}</span> <span style="color: #660033;">-mindepth</span> <span style="color: #000000;">1</span> <span style="color: #660033;">-maxdepth</span> <span style="color: #000000;">1</span> <span style="color: #660033;">-mtime</span> +<span style="color: #800000;">${MAX_DAYLY}</span> <span style="color: #660033;">-name</span> <span style="color: #ff0000;">&quot;daily-*&quot;</span> <span style="color: #660033;">-exec</span> <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>btrfs subvolume delete <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> \;
&nbsp;
<span style="color: #666666; font-style: italic;"># We delete the backups older than MAX_MONTHLY</span>
<span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #800000;">${SNAPDIR}</span> <span style="color: #660033;">-mindepth</span> <span style="color: #000000;">1</span> <span style="color: #660033;">-maxdepth</span> <span style="color: #000000;">1</span> <span style="color: #660033;">-mtime</span> +<span style="color: #800000;">${MAX_MONTHLY}</span> <span style="color: #660033;">-name</span> <span style="color: #ff0000;">&quot;monthly-*&quot;</span> <span style="color: #660033;">-exec</span> <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>btrfs subvolume delete <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> \;
&nbsp;
&nbsp;
<span style="color: #666666; font-style: italic;"># This is the actual backup code</span>
<span style="color: #666666; font-style: italic;"># You need to save your data into the ${SUBVOLUME} directory</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># We will only do the actual backup for the daily task</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${PERIOD}</span>&quot;</span> = <span style="color: #ff0000;">&quot;daily&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
&nbsp;
rsync <span style="color: #660033;">-auv</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin <span style="color: #800000;">${SUBVOLUME}</span><span style="color: #000000; font-weight: bold;">/</span>localhost<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">fi</span></pre></td></tr></table></div>

<p>Then this is how you can use it by adding these cron-tasks :</p>

<div class="wp_codebox"><table><tr id="p367116"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p3671code16"><pre class="bash" style="font-family:monospace;"><span style="color: #000000;">0</span> <span style="color: #000000;">12</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span>  user <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>backup-servers <span style="color: #660033;">--period</span> daily   <span style="color: #000000; font-weight: bold;">&gt;/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>backup-servers-daily.log
<span style="color: #000000;">55</span> <span style="color: #000000;">10</span> <span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> user <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>backup-servers <span style="color: #660033;">--period</span> monthly <span style="color: #000000; font-weight: bold;">&gt;/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>backup-servers-monthly.log</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://florent.clairambault.fr/btrfs-for-a-simple-and-powerful-backup/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kindle: Sync is magic</title>
		<link>http://florent.clairambault.fr/kindle-sync-is-magic?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=kindle-sync-is-magic</link>
		<comments>http://florent.clairambault.fr/kindle-sync-is-magic#comments</comments>
		<pubDate>Tue, 01 Nov 2011 21:54:01 +0000</pubDate>
		<dc:creator>Florent Clairambault</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[eBooks]]></category>
		<category><![CDATA[Kindle]]></category>
		<category><![CDATA[reading]]></category>
		<category><![CDATA[Whispersync]]></category>

		<guid isPermaLink="false">http://florent.clairambault.fr/?p=3581</guid>
		<description><![CDATA[I bought the Kindle. It might sound strange considering I already have an iPad, but I couldn&#8217;t help myself to buy a &#8220;e-ink&#8221; enabled device. The user experience around the Kindle is OK but not great, because it&#8217;s not a touch screen. The real amazing thing is the sync between amazon, the kindle and all [...]]]></description>
			<content:encoded><![CDATA[<div style="position: relative; float: right; margin-left: 10px"><img src="http://i.mivi.fr/26842c7bde27da37132086e2984cfbb061871d9e.x.200.jpg"></div>
<p>I bought the Kindle. It might sound strange considering I already have an iPad, but I couldn&#8217;t help myself to buy a &#8220;e-ink&#8221; enabled device.</p>
<p>The user experience around the Kindle is OK but not great, because it&#8217;s not a touch screen. The real amazing thing is the sync between amazon, the kindle and all the other possible devices.</p>
<ul>
<li>There&#8217;s the sync when you buy a book. It appears instantly on the device. This feeling is so great. You do the &#8220;one click buy&#8221; and plop, you can read it. I know you can download most of the ebooks for free. But it takes at least 10 times more time. And I think we should prefer to download things legally when it&#8217;s at a fair price and faster to download than illegally. </li>
<li>And there&#8217;s the sync between your devices: I can read the same book on my iPad (better at night), my iPhone (I always have it) or the kindle. And every time I open any of these devices, it tells me &#8220;You were last reading on page X on this device, do you want to go there ?&#8221;.</li>
</ul>
<p>So thank you amazon for making a better world.</p>
<p>
On a side node, you should know that you can&#8217;t cancel ebooks you bought on amazon, even with the &#8220;one click buy&#8221;. You have to send them a mail to ask for the cancellation of your order. But every time I contacted them they replied within 20 minutes, even at 2 AM.</p>
]]></content:encoded>
			<wfw:commentRss>http://florent.clairambault.fr/kindle-sync-is-magic/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TC65 Development document updated</title>
		<link>http://florent.clairambault.fr/tc65-development-document-updated-2?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tc65-development-document-updated-2</link>
		<comments>http://florent.clairambault.fr/tc65-development-document-updated-2#comments</comments>
		<pubDate>Tue, 06 Sep 2011 06:00:53 +0000</pubDate>
		<dc:creator>Florent Clairambault</dc:creator>
				<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://florent.clairambault.fr/?p=3572</guid>
		<description><![CDATA[Same title. I wish I was more original. I&#8217;ve been missing writing on this blog. It&#8217;s very fulfilling to write stuff around subjects we love. What&#8217;s new in this document ? Netbeans 7.0 with the TC65i The use of pre-processor Small thougths around the EGS5. Personnal advices on project/product management This can be considered as [...]]]></description>
			<content:encoded><![CDATA[<p>
Same title. I wish I was more original.
</p>
<p>
I&#8217;ve been missing writing on this blog. It&#8217;s very fulfilling to write stuff around subjects we love.
</p>
<p><strong>What&#8217;s new in this document ?</strong></p>
<ul>
<li>Netbeans 7.0 with the TC65i</li>
<li>The use of pre-processor</li>
<li>Small thougths around the EGS5.</li>
<li>Personnal advices on project/product management</li>
</ul>
<p>
This can be considered as a draft.<br />
I&#8217;m waiting for your comments, even (or especially) negative ones, to help me improve this document.
</p>
<div style="text-align: center">
same place to<br />
<strong><a href="http://www.webingenia.com/static/doc/TC65Dev.pdf">[ DOWNLOAD IT ]</a></strong>
</div>
]]></content:encoded>
			<wfw:commentRss>http://florent.clairambault.fr/tc65-development-document-updated-2/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>TC65 Development document updated</title>
		<link>http://florent.clairambault.fr/tc65-development-document-updated?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tc65-development-document-updated</link>
		<comments>http://florent.clairambault.fr/tc65-development-document-updated#comments</comments>
		<pubDate>Wed, 30 Mar 2011 22:40:49 +0000</pubDate>
		<dc:creator>Florent Clairambault</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[TC65]]></category>

		<guid isPermaLink="false">http://florent.clairambault.fr/?p=3348</guid>
		<description><![CDATA[Hi everyone, I updated the TC65Dev document. Mostly because there&#8217;s a good chance I will only have less free time. I modified few parts and added some new content. It is now 50 pages long, this is a lot more than I originally intended to do. Click here to get it]]></description>
			<content:encoded><![CDATA[<p>Hi everyone,</p>
<p>I updated the TC65Dev document. Mostly because there&#8217;s a good chance I will only have less free time. I modified few parts and added some new content. It is now 50 pages long, this is a lot more than I originally intended to do.</p>
<p><a href="http://www.webingenia.com/static/doc/TC65Dev.pdf">Click here to get it</a></p>
]]></content:encoded>
			<wfw:commentRss>http://florent.clairambault.fr/tc65-development-document-updated/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>iOS 4.3 &#8211; iPhone 3G internet WiFi Sharing</title>
		<link>http://florent.clairambault.fr/ios-4-3-iphone-3g-internet-wifi-sharing?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ios-4-3-iphone-3g-internet-wifi-sharing</link>
		<comments>http://florent.clairambault.fr/ios-4-3-iphone-3g-internet-wifi-sharing#comments</comments>
		<pubDate>Thu, 10 Mar 2011 00:33:31 +0000</pubDate>
		<dc:creator>Florent Clairambault</dc:creator>
				<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://florent.clairambault.fr/?p=3319</guid>
		<description><![CDATA[I just tested the sharing of the iPhone 3G internet connection that comes with iOS 4.3. And it works great. I think Apple figured out that sharing 3G over WiFi was the main reason for jailbreaking iPhones. Until now I was wondering if I would take the 3G or Wifi iPad 2. Now I&#8217;m pretty [...]]]></description>
			<content:encoded><![CDATA[<div style="position: relative; float: right; margin-left: 10px"><img src="http://i.mivi.fr/d7e1e72ba2cc0e166230abaecc1cefe4096ceddf.x.150.jpg" /></div>
<p>I just tested the sharing of the iPhone 3G internet connection that comes with iOS 4.3. And it works great. I think Apple figured out that sharing 3G over WiFi was the main reason for jailbreaking iPhones.</p>
<p>Until now I was wondering if I would take the 3G or Wifi iPad 2. Now I&#8217;m pretty sure I will take the WiFi version. The good news here is also that Bouygues doesn&#8217;t seem to lock it (I accepted the mobile provider settings from the iTunes just after I updated the iPhone).</p>
<p>Sorry for the blog inactivity, I&#8217;m quite busy. And thank you for being so many (4000 /month in <a href="http://analytics.google.com">Analytics</a>) to come here for reasons I can&#8217;t really explain (except I&#8217;m a very interesting person).</p>
]]></content:encoded>
			<wfw:commentRss>http://florent.clairambault.fr/ios-4-3-iphone-3g-internet-wifi-sharing/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Debian 6.0</title>
		<link>http://florent.clairambault.fr/debian-6-0?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=debian-6-0</link>
		<comments>http://florent.clairambault.fr/debian-6-0#comments</comments>
		<pubDate>Mon, 07 Feb 2011 00:24:00 +0000</pubDate>
		<dc:creator>Florent Clairambault</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://florent.clairambault.fr/?p=3300</guid>
		<description><![CDATA[Debian released a new version of their system. I updated it on the server that powers this blog, it took me something like one hour to do the whole system upgrade. There was only a little glitch with mysql&#8217;s my.cnf file that had an unsupported &#8220;skip-bdb&#8221; line. Everything else went fine&#8230; The very good thing [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://i.mivi.fr/462bf9c7d4a9634c75284cea240db79f268260a1.x.150.png" style="position: relative; float: right; margin-left: 10px" /><a href="http://www.debian.org">Debian</a> <a href="http://www.debian.org/News/2011/20110205a.en.html">released a new version</a> of their system. I updated it on the server that powers this blog, it took me something like one hour to do the whole system upgrade. There was only a little glitch with mysql&#8217;s my.cnf file that had an unsupported &#8220;skip-bdb&#8221; line. Everything else went fine&#8230;</p>
<p>The very good thing in this new release is the new <a href="http://www.debian.org/ports/kfreebsd-gnu/">kfreebsd version</a> (available in i386 and x86_64). It brings the power of the FreeBSD kernel to the great Debian OS. If you don&#8217;t see the point, <a href="http://wiki.debian.org/Debian_GNU/kFreeBSD_why">read this</a>. To put in a nutshell: a more stable kernel with less legal issues, better vendors support and the same softwares.</p>
]]></content:encoded>
			<wfw:commentRss>http://florent.clairambault.fr/debian-6-0/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google, the cloud and WebKit</title>
		<link>http://florent.clairambault.fr/google-the-cloud-and-webkit?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-the-cloud-and-webkit</link>
		<comments>http://florent.clairambault.fr/google-the-cloud-and-webkit#comments</comments>
		<pubDate>Sat, 15 Jan 2011 18:17:41 +0000</pubDate>
		<dc:creator>Florent Clairambault</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[Google Chrome OS]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://florent.clairambault.fr/?p=3180</guid>
		<description><![CDATA[The cloud Just in case, you still haven&#8217;t understood, the future is in the clouds. The more I use online product, the more I feel it. I&#8217;m now typing all my documents into google docs. Ok, I copy/paste them to Word for my retarded friends that live bellow the clouds, but soon I won&#8217;t. Even [...]]]></description>
			<content:encoded><![CDATA[<div style="margin-left: 10px; position: relative; float: right"><img src="http://i.mivi.fr/6f4fab4e1a36726982101bf23e9e9e37da2c6836.x.150.jpg" /></div>
<h3>The cloud</h3>
<p style="text-align: justify">Just in case, you still haven&#8217;t understood, the future is in the clouds. The more I use online product, the more I feel it. I&#8217;m now typing all my documents into <a href="https://docs.google.com/">google docs</a>. Ok, I copy/paste them to Word for my retarded friends that live bellow the clouds, but soon I won&#8217;t. Even the important things that I have to do on actual files are synced by <a href="https://www.getdropbox.com/referrals/NTEwMzI1NDk">Dropbox</a> (still on the cloud).</p>
<div style="margin-left: 10px; position: relative; float: right"><img src="http://i.mivi.fr/47461a3015782d09061bcf9480ff7d43606cb55c.x.150.png" /></div>
<h3>Webkit</h3>
<p style="text-align: justify">Have you noticed that WebKit, the engine behind the Google Chrome browser also powers the Apple&#8217;s iOS (iPod Touch, iPhone, iPad), Google&#8217;s Android phones, RIM&#8217;s BlackBerry, Nokia&#8217;s phones and <a href="http://www.extremepc.fr/actualite-3969-test-complet-de-la-freebox-v6-revolution.html">our french Freebox v6</a>. So basically all the current phones and tablets. You can build web apps and make sure they will work with all the current desktop browsers and phones.<br />
But wait, wasn&#8217;t it the idea behind the J2ME. And wasn&#8217;t it a total failure? Not really, because J2ME is about phone, WebKit web apps are about every connected things (there&#8217;s no reason to stop at computers, tablets and phones, advertising space would be much easier to handle with browsers). Porting J2ME to one environment to an other was painful, with a web browser it&#8217;s much more simple.
</p>
<h3>Google Chrome OS</h3>
<p>I just saw a facebook friend wall page:<br />
<img src="http://i.mivi.fr/c82177b70e774e0109b8af1da1e99cc8d9433435.png" /><br />
<em>BTW, I applied too.</em></p>
<p>So Google actually started his Google Chrome computer test program.</p>
<p>There&#8217;s just one thing I don&#8217;t understand here. The iPad (I&#8217;ll buy the next version) is centered on the usage: Your read your mails, play and stay informed on your couch. Android is about making better phones to reduce the gaps between the iPhone and the stupid phone constructors OS. Desktop computers are here, well because we sometimes do have to work.<br />
<img src="http://i.mivi.fr/347a462cfcdfa516d31e1080e2b7e21e6aa3ffdb.x.300.png" style="position: relative; float: right" /><br />
But what is Google Chrome OS about? Will we be able to use it on our couch? will we be able to work with it? Because it&#8217;s clearly centered on the new <a href="https://chrome.google.com/webstore">Chrome Web Apps Store</a>. Is it about consuming or producing content?</p>
<p>If you are wondering how do perform the Chrome apps in the real world: VERY WELL. Take a look the Chrome Web store with the Chrome 9 browser (currently bêta), you can take the last fm music player or test a graphically amazing 3D app., cooliris:<br />
<img src="http://i.mivi.fr/25f4a837dc1d56f80a5f4d3504c69fca39286d61.x.750.png" /></p>
<p><u>Note:</u><br />
<a href="http://en.wikipedia.org/wiki/WebKit#History">History of WebKit</a></p>
]]></content:encoded>
			<wfw:commentRss>http://florent.clairambault.fr/google-the-cloud-and-webkit/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cinterion development materials removed</title>
		<link>http://florent.clairambault.fr/cinterion-development-material-removed?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cinterion-development-material-removed</link>
		<comments>http://florent.clairambault.fr/cinterion-development-material-removed#comments</comments>
		<pubDate>Thu, 13 Jan 2011 21:18:32 +0000</pubDate>
		<dc:creator>Florent Clairambault</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Cinterion]]></category>
		<category><![CDATA[TC65]]></category>
		<category><![CDATA[TC65 tools]]></category>

		<guid isPermaLink="false">http://florent.clairambault.fr/?p=3248</guid>
		<description><![CDATA[Hi the Cinterion community, Cinterion France asked me to remove all the Cinterion TC65 / TC65i development materials I published on my blog. The good news is you can contact the Cinterion office of your country and sign a NDA to get the latest version of their manuals and SDK.]]></description>
			<content:encoded><![CDATA[<p>Hi the Cinterion community,</p>
<p>Cinterion France asked me to remove all the Cinterion TC65 / TC65i development materials I published on my blog. The good news is you can contact the Cinterion office of your country and sign a <a href="http://en.wikipedia.org/wiki/Non-disclosure_agreement">NDA</a> to get the latest version of their manuals and SDK.</p>
]]></content:encoded>
			<wfw:commentRss>http://florent.clairambault.fr/cinterion-development-material-removed/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>TC65SH for Cinterion TC65/TC65i development</title>
		<link>http://florent.clairambault.fr/tc65sh-for-cinterion-tc65-tc65i-development?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tc65sh-for-cinterion-tc65-tc65i-development</link>
		<comments>http://florent.clairambault.fr/tc65sh-for-cinterion-tc65-tc65i-development#comments</comments>
		<pubDate>Mon, 10 Jan 2011 19:57:10 +0000</pubDate>
		<dc:creator>Florent Clairambault</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Cinterion]]></category>
		<category><![CDATA[TC65]]></category>

		<guid isPermaLink="false">http://florent.clairambault.fr/?p=3219</guid>
		<description><![CDATA[Hi the TC65 community, There&#8217;s a new software in town, after JOBexFTP from Ricardo Schmidt, Christoph Vilsmeier decided to create the TC65SH tool which apparently does the same thing but faster. Best regards, Here is the mail that brouht the good news: Hello Florent, I&#8217;ve done some TC65 development recently and found your site very [...]]]></description>
			<content:encoded><![CDATA[<p>Hi the TC65 community,</p>
<p>There&#8217;s a new software in town, after <a href="http://florent.clairambault.fr/jobexftp-from-ricardo-schmidt">JOBexFTP from Ricardo Schmidt</a>, <a href="http://www.vilsmeier-consulting.de/">Christoph Vilsmeier</a> decided to create the <a href="http://www.vilsmeier-consulting.de/tc65sh.html">TC65SH</a> tool which apparently does the same thing but faster.</p>
<p>Best regards,</p>
<hr />
Here is the mail that brouht the good news:</p>
<div style="border: 1px solid gray; background-color: #eef; padding: 5px; text-align: justify">
Hello Florent,</p>
<p>I&#8217;ve done some TC65 development recently and found your site very helpful, especially your articles about TC65 development. Thank you for that!</p>
<p>I ran into some problems with the Cinterion SDK, especially the Module Exchange Suite (MES). Basically, it didn&#8217;t work for me. Cinterion support told us that MES doesn&#8217;t work on Windows 7 and they are working on a solution, well&#8230; (I tried it on WindowsXP too. There, it worked better but was still very unreliable.)</p>
<p>In the meantime, I checked out JObexFTP from Ricardo Schmidt, which I found via your blog. That tool did help me quite a lot, as it let me (after fixing it a little bit) upload files to the device via a USB-serial port adapter. But i missed an interactive mode. And I wasn&#8217;t too happy about the fact that for each file upload or download, JObexFTP does a complete connect-upload-disconnect cycle, which I found was pretty time-consuming.</p>
<p>Inspired by JObexFTP, I started to write my own Java tool for communicating with a Siemens/Cinterion TC65 device: TC65SH lets you upload, download and delete files, navigate the directory structure of the device, create and remove directories and completely erase the device&#8217;s flash memory.<br />
The program provides both an interactive command line (like a unix shell or a Windows command prompt) and a batch-processing function, which makes for easy integration into development build scripts.</p>
<p>I wanted to let you know that TC65SH is available free and Open Source from my web page at:</p>
<p>http://www.vilsmeier-consulting.de/tc65sh.html</p>
<p>Thank you for your attention and thank you for your great site.</p>
<p>Christoph Vilsmeier
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://florent.clairambault.fr/tc65sh-for-cinterion-tc65-tc65i-development/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/52 queries in 0.019 seconds using disk: basic
Object Caching 1034/1138 objects using disk: basic

Served from: florent.clairambault.fr @ 2012-02-04 23:21:10 -->
