]> pere.pagekite.me Git - homepage.git/blob - blog/index.rss
Improve text.
[homepage.git] / blog / index.rss
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom="http://www.w3.org/2005/Atom">
3 <channel>
4 <title>Petter Reinholdtsen</title>
5 <description></description>
6 <link>http://people.skolelinux.org/pere/blog/</link>
7 <atom:link href="http://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
8
9 <item>
10 <title>Sitesummary tip: Listing MAC address of all clients</title>
11 <link>http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Sitesummary_tip__Listing_MAC_address_of_all_clients.html</guid>
13 <pubDate>Fri, 14 May 2010 21:10:00 +0200</pubDate>
14 <description>
15 &lt;p&gt;In the recent Debian Edu versions, the
16 &lt;a href=&quot;http://wiki.debian.org/DebianEdu/HowTo/SiteSummary&quot;&gt;sitesummary
17 system&lt;/a&gt; is used to keep track of the machines in the school
18 network. Each machine will automatically report its status to the
19 central server after boot and once per night. The network setup is
20 also reported, and using this information it is possible to get the
21 MAC address of all network interfaces in the machines. This is useful
22 to update the DHCP configuration.&lt;/p&gt;
23
24 &lt;p&gt;To give some idea how to use sitesummary, here is a one-liner to
25 ist all MAC addresses of all machines reporting to sitesummary. Run
26 this on the collector host:&lt;/p&gt;
27
28 &lt;blockquote&gt;&lt;pre&gt;
29 perl -MSiteSummary -e &#39;for_all_hosts(sub { print join(&quot; &quot;, get_macaddresses(shift)), &quot;\n&quot;; });&#39;
30 &lt;/pre&gt;&lt;/blockquote&gt;
31
32 &lt;p&gt;This will list all MAC addresses assosiated with all machine, one
33 line per machine and with space between the MAC addresses.&lt;/p&gt;
34
35 &lt;p&gt;To allow system administrators easier job at adding static DHCP
36 addresses for hosts, it would be possible to extend this to fetch
37 machine information from sitesummary and update the DHCP and DNS
38 tables in LDAP using this information. Such tool is unfortunately not
39 written yet.&lt;/p&gt;
40 </description>
41 </item>
42
43 <item>
44 <title>systemd, an interesting alternative to upstart</title>
45 <link>http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html</link>
46 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html</guid>
47 <pubDate>Thu, 13 May 2010 22:20:00 +0200</pubDate>
48 <description>
49 &lt;p&gt;The last few days a new boot system called
50 &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/systemd&quot;&gt;systemd&lt;/a&gt;
51 has been
52 &lt;a href=&quot;http://0pointer.de/blog/projects/systemd.html&quot;&gt;introduced&lt;/a&gt;
53
54 to the free software world. I have not yet had time to play around
55 with it, but it seem to be a very interesting alternative to
56 &lt;a href=&quot;http://upstart.ubuntu.com/&quot;&gt;upstart&lt;/a&gt;, and might prove to be
57 a good alternative for Debian when we are able to switch to an event
58 based boot system. Tollef is
59 &lt;a href=&quot;http://bugs.debian.org/580814&quot;&gt;in the process&lt;/a&gt; of getting
60 systemd into Debian, and I look forward to seeing how well it work. I
61 like the fact that systemd handles init.d scripts with dependency
62 information natively, allowing them to run in parallel where upstart
63 at the moment do not.&lt;/p&gt;
64
65 &lt;p&gt;Unfortunately do systemd have the same problem as upstart regarding
66 platform support. It only work on recent Linux kernels, and also need
67 some new kernel features enabled to function properly. This means
68 kFreeBSD and Hurd ports of Debian will need a port or a different boot
69 system. Not sure how that will be handled if systemd proves to be the
70 way forward.&lt;/p&gt;
71
72 &lt;p&gt;In the mean time, based on the
73 &lt;a href=&quot;http://lists.debian.org/debian-devel/2010/05/msg00122.html&quot;&gt;input
74 on debian-devel@&lt;/a&gt; regarding parallel booting in Debian, I have
75 decided to enable full parallel booting as the default in Debian as
76 soon as possible (probably this weekend or early next week), to see if
77 there are any remaining serious bugs in the init.d dependencies. A
78 new version of the sysvinit package implementing this change is
79 already in experimental. If all go well, Squeeze will be released
80 with parallel booting enabled by default.&lt;/p&gt;
81 </description>
82 </item>
83
84 <item>
85 <title>Parallellizing the boot in Debian Squeeze - ready for wider testing</title>
86 <link>http://people.skolelinux.org/pere/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html</link>
87 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html</guid>
88 <pubDate>Thu, 6 May 2010 23:25:00 +0200</pubDate>
89 <description>
90 &lt;p&gt;These days, the init.d script dependencies in Squeeze are quite
91 complete, so complete that it is actually possible to run all the
92 init.d scripts in parallell based on these dependencies. If you want
93 to test your Squeeze system, make sure
94 &lt;a href=&quot;http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot&quot;&gt;dependency
95 based boot sequencing&lt;/a&gt; is enabled, and add this line to
96 /etc/default/rcS:&lt;/p&gt;
97
98 &lt;blockquote&gt;&lt;pre&gt;
99 CONCURRENCY=makefile
100 &lt;/pre&gt;&lt;/blockquote&gt;
101
102 &lt;p&gt;That is it. It will cause sysv-rc to use the startpar tool to run
103 scripts in parallel using the dependency information stored in
104 /etc/init.d/.depend.boot, /etc/init.d/.depend.start and
105 /etc/init.d/.depend.stop to order the scripts. Startpar is configured
106 to try to start the kdm and gdm scripts as early as possible, and will
107 start the facilities required by kdm or gdm as early as possible to
108 make this happen.&lt;/p&gt;
109
110 &lt;p&gt;Give it a try, and see if you like the result. If some services
111 fail to start properly, it is most likely because they have incomplete
112 init.d script dependencies in their startup script (or some of their
113 dependent scripts have incomplete dependencies). Report bugs and get
114 the package maintainers to fix it. :)&lt;/p&gt;
115
116 &lt;p&gt;Running scripts in parallel could be the default in Debian when we
117 manage to get the init.d script dependencies complete and correct. I
118 expect we will get there in Squeeze+1, if we get manage to test and
119 fix the remaining issues.&lt;/p&gt;
120
121 &lt;p&gt;If you report any problems with dependencies in init.d scripts to
122 the BTS, please usertag the report to get it to show up at
123 &lt;a href=&quot;http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org&quot;&gt;the
124 list of usertagged bugs related to this&lt;/a&gt;.&lt;/p&gt;
125 </description>
126 </item>
127
128 <item>
129 <title>Forcing new users to change their password on first login</title>
130 <link>http://people.skolelinux.org/pere/blog/Forcing_new_users_to_change_their_password_on_first_login.html</link>
131 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Forcing_new_users_to_change_their_password_on_first_login.html</guid>
132 <pubDate>Sun, 2 May 2010 13:47:00 +0200</pubDate>
133 <description>
134 &lt;p&gt;One interesting feature in Active Directory, is the ability to
135 create a new user with an expired password, and thus force the user to
136 change the password on the first login attempt.&lt;/p&gt;
137
138 &lt;p&gt;I&#39;m not quite sure how to do that with the LDAP setup in Debian
139 Edu, but did some initial testing with a local account. The account
140 and password aging information is available in /etc/shadow, but
141 unfortunately, it is not possible to specify an expiration time for
142 passwords, only a maximum age for passwords.&lt;/p&gt;
143
144 &lt;p&gt;A freshly created account (using adduser test) will have these
145 settings in /etc/shadow:&lt;/p&gt;
146
147 &lt;blockquote&gt;&lt;pre&gt;
148 root@tjener:~# chage -l test
149 Last password change : May 02, 2010
150 Password expires : never
151 Password inactive : never
152 Account expires : never
153 Minimum number of days between password change : 0
154 Maximum number of days between password change : 99999
155 Number of days of warning before password expires : 7
156 root@tjener:~#
157 &lt;/pre&gt;&lt;/blockquote&gt;
158
159 &lt;p&gt;The only way I could come up with to create a user with an expired
160 account, is to change the date of the last password change to the
161 lowest value possible (January 1th 1970), and the maximum password age
162 to the difference in days between that date and today. To make it
163 simple, I went for 30 years (30 * 365 = 10950) and January 2th (to
164 avoid testing if 0 is a valid value).&lt;/p&gt;
165
166 &lt;p&gt;After using these commands to set it up, it seem to work as
167 intended:&lt;/p&gt;
168
169 &lt;blockquote&gt;&lt;pre&gt;
170 root@tjener:~# chage -d 1 test; chage -M 10950 test
171 root@tjener:~# chage -l test
172 Last password change : Jan 02, 1970
173 Password expires : never
174 Password inactive : never
175 Account expires : never
176 Minimum number of days between password change : 0
177 Maximum number of days between password change : 10950
178 Number of days of warning before password expires : 7
179 root@tjener:~#
180 &lt;/pre&gt;&lt;/blockquote&gt;
181
182 &lt;p&gt;So far I have tested this with ssh and console, and kdm (in
183 Squeeze) login, and all ask for a new password before login in the
184 user (with ssh, I was thrown out and had to log in again).&lt;/p&gt;
185
186 &lt;p&gt;Perhaps we should set up something similar for Debian Edu, to make
187 sure only the user itself have the account password?&lt;/p&gt;
188
189 &lt;p&gt;If you want to comment on or help out with implementing this for
190 Debian Edu, please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
191
192 &lt;p&gt;Update 2010-05-02 17:20: Paul Tötterman tells me on IRC that the
193 shadow(8) page in Debian/testing now state that setting the date of
194 last password change to zero (0) will force the password to be changed
195 on the first login. This was not mentioned in the manual in Lenny, so
196 I did not notice this in my initial testing. I have tested it on
197 Squeeze, and &#39;&lt;tt&gt;chage -d 0 username&lt;/tt&gt;&#39; do work there. I have not
198 tested it on Lenny yet.&lt;/p&gt;
199
200 &lt;p&gt;Update 2010-05-02-19:05: Jim Paris tells me via email that an
201 equivalent command to expire a password is &#39;&lt;tt&gt;passwd -e
202 username&lt;/tt&gt;&#39;, which insert zero into the date of the last password
203 change.&lt;/p&gt;
204 </description>
205 </item>
206
207 <item>
208 <title>Thoughts on roaming laptop setup for Debian Edu</title>
209 <link>http://people.skolelinux.org/pere/blog/Thoughts_on_roaming_laptop_setup_for_Debian_Edu.html</link>
210 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Thoughts_on_roaming_laptop_setup_for_Debian_Edu.html</guid>
211 <pubDate>Wed, 28 Apr 2010 20:40:00 +0200</pubDate>
212 <description>
213 &lt;p&gt;For some years now, I have wondered how we should handle laptops in
214 Debian Edu. The Debian Edu infrastructure is mostly designed to
215 handle stationary computers, and less suited for computers that come
216 and go.&lt;/p&gt;
217
218 &lt;p&gt;Now I finally believe I have an sensible idea on how to adjust
219 Debian Edu for laptops, by introducing a new profile for them, for
220 example called Roaming Workstations. Here are my thought on this.
221 The setup would consist of the following:&lt;/p&gt;
222
223 &lt;ul&gt;
224
225 &lt;li&gt;During installation, the user name of the owner / primary user of
226 the laptop is requested and a local home directory is set up for
227 the user, with uid and gid information fetched from the LDAP
228 server. This allow the user to work also when offline. The
229 central home directory can be available in a subdirectory on
230 request, for example mounted via CIFS. It could be mounted
231 automatically when a user log in while on the Debian Edu network,
232 and unmounted when the machine is taken away (network down,
233 hibernate, etc), it can be set up to do automatic mounting on
234 request (using autofs), or perhaps some GUI button on the desktop
235 can be used to access it when needed. Perhaps it is enough to use
236 the fish protocol in KDE?&lt;/li&gt;
237
238 &lt;li&gt;Password checking is set up to use LDAP or Kerberos
239 authentication when the machine is on the Debian Edu network, and
240 to cache the password for offline checking when the machine unable
241 to reach the LDAP or Kerberos server. This can be done using
242 &lt;a href=&quot;http://www.padl.com/OSS/pam_ccreds.html&quot;&gt;libpam-ccreds&lt;/a&gt;
243 or the Fedora developed
244 &lt;a href=&quot;https://fedoraproject.org/wiki/Features/SSSD&quot;&gt;System
245 Security Services Daemon&lt;/a&gt; packages.&lt;/li&gt;
246
247 &lt;li&gt;File synchronisation with the central home directory is set up
248 using a shared directory in both the local and the central home
249 directory, using unison.&lt;/li&gt;
250
251 &lt;li&gt;Printing should be set up to print to all printers broadcasting
252 their existence on the local network, and should then work out of
253 the box with CUPS. For sites needing accurate printer quotas, some
254 system with Kerberos authentication or printing via ssh could be
255 implemented.&lt;/li&gt;
256
257 &lt;li&gt;For users that should have local root access to their laptop,
258 sudo should be used to allow this to the local user.&lt;/li&gt;
259
260 &lt;li&gt;It would be nice if user and group information from LDAP is
261 cached on the client, but given that there are entries for the
262 local user and primary group in /etc/, it should not be needed.&lt;/li&gt;
263
264 &lt;/ul&gt;
265
266 &lt;p&gt;I believe all the pieces to implement this are in Debian/testing at
267 the moment. If we work quickly, we should be able to get this ready
268 in time for the Squeeze release to freeze. Some of the pieces need
269 tweaking, like libpam-ccreds should get support for pam-auth-update
270 (&lt;a href=&quot;http://bugs.debian.org/566718&quot;&gt;#566718&lt;/a&gt;) and nslcd (or
271 perhaps debian-edu-config) should get some integration code to stop
272 its daemon when the LDAP server is unavailable to avoid long timeouts
273 when disconnected from the net. If we get Kerberos enabled, we need
274 to make sure we avoid long timeouts there too.&lt;/p&gt;
275
276 &lt;p&gt;If you want to help out with implementing this for Debian Edu,
277 please contact us on debian-edu@lists.debian.org.&lt;/p&gt;
278 </description>
279 </item>
280
281 <item>
282 <title>Great book: &quot;Content: Selected Essays on Technology, Creativity, Copyright, and the Future of the Future&quot;</title>
283 <link>http://people.skolelinux.org/pere/blog/Great_book___Content__Selected_Essays_on_Technology__Creativity__Copyright__and_the_Future_of_the_Future_.html</link>
284 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Great_book___Content__Selected_Essays_on_Technology__Creativity__Copyright__and_the_Future_of_the_Future_.html</guid>
285 <pubDate>Mon, 19 Apr 2010 17:10:00 +0200</pubDate>
286 <description>
287 &lt;p&gt;The last few weeks i have had the pleasure of reading a
288 thought-provoking collection of essays by Cory Doctorow, on topics
289 touching copyright, virtual worlds, the future of man when the
290 conscience mind can be duplicated into a computer and many more. The
291 book titled &quot;Content: Selected Essays on Technology, Creativity,
292 Copyright, and the Future of the Future&quot; is available with few
293 restrictions on the web, for example from
294 &lt;a href=&quot;http://craphound.com/content/&quot;&gt;his own site&lt;/a&gt;. I read the
295 epub-version from
296 &lt;a href=&quot;http://www.feedbooks.com/book/2883&quot;&gt;feedbooks&lt;/a&gt; using
297 &lt;a href=&quot;http://www.fbreader.org/&quot;&gt;fbreader&lt;/a&gt; and my N810. I
298 strongly recommend this book.&lt;/p&gt;
299 </description>
300 </item>
301
302 <item>
303 <title>Kerberos for Debian Edu/Squeeze?</title>
304 <link>http://people.skolelinux.org/pere/blog/Kerberos_for_Debian_Edu_Squeeze_.html</link>
305 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Kerberos_for_Debian_Edu_Squeeze_.html</guid>
306 <pubDate>Wed, 14 Apr 2010 17:20:00 +0200</pubDate>
307 <description>
308 &lt;p&gt;&lt;a href=&quot;http://www.nuug.no/aktiviteter/20100413-kerberos/&quot;&gt;Yesterdays
309 NUUG presentation&lt;/a&gt; about Kerberos was inspiring, and reminded me
310 about the need to start using Kerberos in Skolelinux. Setting up a
311 Kerberos server seem to be straight forward, and if we get this in
312 place a long time before the Squeeze version of Debian freezes, we
313 have a chance to migrate Skolelinux away from NFSv3 for the home
314 directories, and over to an architecture where the infrastructure do
315 not have to trust IP addresses and machines, and instead can trust
316 users and cryptographic keys instead.&lt;/p&gt;
317
318 &lt;p&gt;A challenge will be integration and administration. Is there a
319 Kerberos implementation for Debian where one can control the
320 administration access in Kerberos using LDAP groups? With it, the
321 school administration will have to maintain access control using flat
322 files on the main server, which give a huge potential for errors.&lt;/p&gt;
323
324 &lt;p&gt;A related question I would like to know is how well Kerberos and
325 pam-ccreds (offline password check) work together. Anyone know?&lt;/p&gt;
326
327 &lt;p&gt;Next step will be to use Kerberos for access control in Lwat and
328 Nagios. I have no idea how much work that will be to implement. We
329 would also need to document how to integrate with Windows AD, as such
330 shared network will require two Kerberos realms that need to cooperate
331 to work properly.&lt;/p&gt;
332
333 &lt;p&gt;I believe a good start would be to start using Kerberos on the
334 skolelinux.no machines, and this way get ourselves experience with
335 configuration and integration. A natural starting point would be
336 setting up ldap.skolelinux.no as the Kerberos server, and migrate the
337 rest of the machines from PAM via LDAP to PAM via Kerberos one at the
338 time.&lt;/p&gt;
339
340 &lt;p&gt;If you would like to contribute to get this working in Skolelinux,
341 I recommend you to see the video recording from yesterdays NUUG
342 presentation, and start using Kerberos at home. The video show show
343 up in a few days.&lt;/p&gt;
344 </description>
345 </item>
346
347 <item>
348 <title>På vegne av vanvitting mange, Aftenposten!</title>
349 <link>http://people.skolelinux.org/pere/blog/P___vegne_av_vanvitting_mange__Aftenposten_.html</link>
350 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/P___vegne_av_vanvitting_mange__Aftenposten_.html</guid>
351 <pubDate>Sat, 6 Mar 2010 21:15:00 +0100</pubDate>
352 <description>
353 &lt;p&gt;&lt;a href=&quot;http://fotball.aftenposten.no/incoming/article163000.ece&quot;&gt;Aftenposten
354 melder&lt;/a&gt; på forsiden av webavisen sin at de tror Erling Fossen
355 provoserer nordlendinger med sine uttalelser på
356 fotballtinget. Jeg er utflyttet nordlending, og må innrømme at jeg
357 ikke kjennet så mye som et snev av provokasjon fra denne litt morsomme
358 uttalelsen til Hr. Fossen. Lurer på om Aftenposten har noen kilder
359 utenom redaksjonen for sin påstand om at nordledinger er provosert av
360 Hr. Fossen. Må innrømme at jeg tviler på det.&lt;/p&gt;
361
362 &lt;p&gt;Det hele bringer tankene tilbake til Sture Hansen i Hallo i Uken.&lt;/p&gt;
363 </description>
364 </item>
365
366 <item>
367 <title>After 6 years of waiting, the Xreset.d feature is implemented</title>
368 <link>http://people.skolelinux.org/pere/blog/After_6_years_of_waiting__the_Xreset_d_feature_is_implemented.html</link>
369 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/After_6_years_of_waiting__the_Xreset_d_feature_is_implemented.html</guid>
370 <pubDate>Sat, 6 Mar 2010 18:15:00 +0100</pubDate>
371 <description>
372 &lt;p&gt;6 years ago, as part of the Debian Edu development I am involved
373 in, I asked for a hook in the kdm and gdm setup to run scripts as root
374 when the user log out. A bug was submitted against the xfree86-common
375 package in 2004 (&lt;a href=&quot;http://bugs.debian.org/230422&quot;&gt;#230422&lt;/a&gt;),
376 and revisited every time Debian Edu was working on a new release.
377 Today, this finally paid off.&lt;/p&gt;
378
379 &lt;p&gt;The framework for this feature was today commited to the git
380 repositry for the xorg package, and the git repository for xdm has
381 been updated to use this framework. Next on my agenda is to make sure
382 kdm and gdm also add code to use this framework.&lt;/p&gt;
383
384 &lt;p&gt;In Debian Edu, we want to ability to run commands as root when the
385 user log out, to get rid of runaway processes and do general cleanup
386 after a user. With this framework in place, we finally can do that in
387 a generic way that work with all display managers using this
388 framework. My goal is to get all display managers in Debian use it,
389 similar to how they use the Xsession.d framework today.&lt;p&gt;
390 </description>
391 </item>
392
393 <item>
394 <title>Digitale bøker uten digitale restriksjonsmekanismer (DRM) bør få mva-fritak</title>
395 <link>http://people.skolelinux.org/pere/blog/Digitale_b__ker_uten_digitale_restriksjonsmekanismer__DRM__b__r_f___mva_fritak.html</link>
396 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Digitale_b__ker_uten_digitale_restriksjonsmekanismer__DRM__b__r_f___mva_fritak.html</guid>
397 <pubDate>Wed, 3 Mar 2010 19:00:00 +0100</pubDate>
398 <description>
399 &lt;p&gt;Den norske bokbransjen har
400 &lt;a href=&quot;http://www.digi.no/823912/nei-til-moms-paa-e-boker&quot;&gt;bedt om at
401 digitale bøker må få mva-fritak&lt;/a&gt; slik papirbøker har det, og
402 &lt;a href=&quot;http://www.digi.no/836875/moms-paa-alt-digitalt-innhold&quot;&gt;finansdepartementet
403 har sagt nei&lt;/a&gt;. Det er et interessant spørsmål om digitale bøker
404 bør ha mva-fritak eller ikke, og svaret er ikke så enkelt som et ja
405 eller nei.
406 &lt;a href=&quot;http://www.digi.no/836925/norske-e-boker-truet-av-moms&quot;&gt;Enkelte
407 medlemmer&lt;/a&gt; av bokbransjen truer med å droppe den planlagte
408 lanseringen av norske digitale bøker med digitale restriksjonsmekanismer
409 (DRM) som de har snakket om å gjennomføre nå i vår, og det må de
410 gjerne gjøre for min del.&lt;/p&gt;
411
412 &lt;p&gt;Papirbøker har mva-fritak pga. at de fremmer kultur- og
413 kunnskapsspredning. Digitale bøker uten digitale
414 restriksjonsmekanismer (DRM) fremmer kultur- og kunnskapsspredning,
415 mens digitale bøker med DRM hindrer kultur og kunnskapsspredning.
416 Digitale bøker uten DRM bør få mva-fritak da det er salg av bøker på
417 lik linje med salg av papirbøker, mens digitale bøker med DRM ikke bør
418 få det da det er utleie av bøker og ikke salg.&lt;/p&gt;
419
420 &lt;p&gt;Jeg foretrekker å kjøpe bøker, og velger dermed å la være å bruke
421 DRM-belastede digitale bøker. Vet ikke helt hva jeg ville være villig
422 til å betale for å leie en bok, men tror ikke det er mange kronene.
423 Heldigvis er det mye bøker tilgjengelig uten slike restriksjoner, og
424 de som vil ha tak i engelske bøker kan laste ned bøker som er
425 tilgjengelig uten bruksbegresninger fra &lt;a href=&quot;http://www.archive.org/&quot;&gt;The
426 Internet Archive&lt;/a&gt;. Der er det pr. i dag 1 889 313 bøker
427 tilgjengelig. De er tilgjengelig i flere formater. Besøk
428 &lt;a href=&quot;http://www.archive.org/details/texts&quot;&gt;oversikten over tekster
429 der&lt;/a&gt; for å se hva de har.
430 </description>
431 </item>
432
433 </channel>
434 </rss>