]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.html
Generated.
[homepage.git] / blog / index.html
index be9adf3227b0201424449c377bec05869ffc1618..026db9afcf7c6a8bfc681a611533697faca06918 100644 (file)
 
 
  
+ <div class="entry">
+  <div class="title"><a href="http://people.skolelinux.org/pere/blog/Forslag_i_stortinget_om____stoppe_elektronisk_stemmegiving_i_Norge.html">Forslag i stortinget om å stoppe elektronisk stemmegiving i Norge</a></div>
+  <div class="date">2010-08-31 21:00</div>
+  <div class="body">
+<p>Ble tipset i dag om at et forslag om å stoppe forsøkene med
+elektronisk stemmegiving utenfor valglokaler er
+<a href="http://www.stortinget.no/no/Saker-og-publikasjoner/Saker/Sak/?p=46616">til
+behandling</a> i Stortinget.
+<a href="http://www.stortinget.no/Global/pdf/Representantforslag/2009-2010/dok8-200910-128.pdf">Forslaget</a>
+er fremmet av Erna Solberg, Michael Tetzschner og Trond Helleland.</p>
+
+<p>Håper det får flertall.</p>
+</div>
+  <div class="tags">
+   
+
+   
+   Tags: <a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>. 
+  
+  </div>
+ </div>
+ <div class="padding"></div>
  <div class="entry">
   <div class="title"><a href="http://people.skolelinux.org/pere/blog/Broken_hard_link_handling_with_sshfs.html">Broken hard link handling with sshfs</a></div>
   <div class="date">2010-08-30 19:30</div>
@@ -538,244 +561,6 @@ implement it for Debian Edu. :)</p>
    
 
    
-   Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>. 
-  
-  </div>
- </div>
- <div class="padding"></div>
- <div class="entry">
-  <div class="title"><a href="http://people.skolelinux.org/pere/blog/Testing_if_a_file_system_can_be_used_for_home_directories___.html">Testing if a file system can be used for home directories...</a></div>
-  <div class="date">2010-08-08 21:20</div>
-  <div class="body">
-<p>A few years ago, I was involved in a project planning to use
-Windows file servers as home directory servers for Debian
-Edu/Skolelinux machines.  This was thought to be no problem, as the
-access would be through the SMB network file system protocol, and we
-knew other sites used SMB with unix and samba as the file server to
-mount home directories without any problems.  But, after months of
-struggling, we had to conclude that our goal was impossible.</p>
-
-<p>The reason is simply that while SMB can be used for home
-directories when the file server is Samba running on Unix, this only
-work because of Samba have some extensions and the fact that the
-underlying file system is a unix file system.  When using a Windows
-file server, the underlying file system do not have POSIX semantics,
-and several programs will fail if the users home directory where they
-want to store their configuration lack POSIX semantics.</p>
-
-<p>As part of this work, I wrote a small C program I want to share
-with you all, to replicate a few of the problematic applications (like
-OpenOffice.org and GCompris) and see if the file system was working as
-it should.  If you find yourself in spooky file system land, it might
-help you find your way out again.  This is the fs-test.c source:</p>
-
-<pre>
-/*
- * Some tests to check the file system sematics.  Used to verify that
- * CIFS from a windows server do not work properly as a linux home
- * directory.
- * License: GPL v2 or later
- * 
- * needs libsqlite3-dev and build-essential installed
- * compile with: gcc -Wall -lsqlite3 -DTEST_SQLITE fs-test.c -o fs-test
-*/
-
-#define _FILE_OFFSET_BITS 64
-#define _LARGEFILE_SOURCE 1
-#define _LARGEFILE64_SOURCE 1
-
-#define _GNU_SOURCE /* for asprintf() */
-
-#include &lt;errno.h>
-#include &lt;fcntl.h>
-#include &lt;stdio.h>
-#include &lt;string.h>
-#include &lt;stdlib.h>
-#include &lt;sys/file.h>
-#include &lt;sys/stat.h>
-#include &lt;sys/types.h>
-#include &lt;unistd.h>
-
-#ifdef TEST_SQLITE
-/*
- * Test sqlite open, as done by gcompris require the libsqlite3-dev
- * package and linking with -lsqlite3.  A more low level test is
- * below.
- * See also &lt;URL: http://www.sqlite.org./faq.html#q5 >.
- */
-#include &lt;sqlite3.h>
-#define CREATE_TABLE_USERS                                              \
-  "CREATE TABLE users (user_id INT UNIQUE, login TEXT, lastname TEXT, firstname TEXT, birthdate TEXT, class_id INT ); "
-int test_sqlite_open(void) {
-  char *zErrMsg;
-  char *name = "testsqlite.db";
-  sqlite3 *db=NULL;
-  unlink(name);
-  int rc = sqlite3_open(name, &db);
-  if( rc ){
-    printf("error: sqlite open of %s failed: %s\n", name, sqlite3_errmsg(db));
-    sqlite3_close(db);
-    return -1;
-  }
-
-  /* create tables */
-  rc = sqlite3_exec(db,CREATE_TABLE_USERS, NULL,  0, &zErrMsg);
-  if( rc != SQLITE_OK ){
-    printf("error: sqlite table create failed: %s\n", zErrMsg);
-    sqlite3_close(db);
-    return -1;
-  }
-  printf("info: sqlite worked\n");
-  sqlite3_close(db);
-  return 0;
-}
-#endif /* TEST_SQLITE */
-
-/*
- * Demonstrate locking issue found in gcompris using sqlite3.  This
- * work with ext3, but not with cifs server on Windows 2003.  This is
- * done in the sqlite3 library.
- * See also
- * &lt;URL:http://www.cygwin.com/ml/cygwin/2001-08/msg00854.html> and the
- * POSIX specification
- * &lt;URL:http://www.opengroup.org/onlinepubs/009695399/functions/fcntl.html>.
- */
-int test_gcompris_locking(void) {
-  struct flock fl;
-  char *name = "testsqlite.db";
-  unlink(name);
-  int fd = open(name, O_RDWR|O_CREAT|O_LARGEFILE, 0644);
-  printf("info: testing fcntl locking\n");
-
-  fl.l_whence = SEEK_SET;
-  fl.l_pid    = getpid();
-  printf("  Read-locking 1 byte from 1073741824");
-  fl.l_start  = 1073741824;
-  fl.l_len    = 1;
-  fl.l_type   = F_RDLCK;
-  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
-  printf("  Read-locking 510 byte from 1073741826");
-  fl.l_start  = 1073741826;
-  fl.l_len    = 510;
-  fl.l_type   = F_RDLCK;
-  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
-  printf("  Unlocking 1 byte from 1073741824");
-  fl.l_start  = 1073741824;
-  fl.l_len    = 1;
-  fl.l_type   = F_UNLCK;
-  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
-  printf("  Write-locking 1 byte from 1073741824");
-  fl.l_start  = 1073741824;
-  fl.l_len    = 1;
-  fl.l_type   = F_WRLCK;
-  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
-  printf("  Write-locking 510 byte from 1073741826");
-  fl.l_start  = 1073741826;
-  fl.l_len    = 510;
-  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
-  printf("  Unlocking 2 byte from 1073741824");
-  fl.l_start  = 1073741824;
-  fl.l_len    = 2;
-  fl.l_type   = F_UNLCK;
-  if (0 != fcntl(fd, F_SETLK, &fl) ) printf(" - error!\n"); else printf("\n");
-
-  close(fd);
-  return 0;
-}
-
-/*
- * Test if permissions of freshly created directories allow entries
- * below them.  This was a problem with OpenOffice.org and gcompris.
- * Mounting with option 'sync' seem to solve this problem while
- * slowing down file operations.
- */
-int test_subdirectory_creation(void) {
-#define LEVELS 5
-  char *path = strdup("test");
-  char *dirs[LEVELS];
-  int level;
-  printf("info: testing subdirectory creation\n");
-  for (level = 0; level &lt; LEVELS; level++) {
-    char *newpath = NULL;
-    if (-1 == mkdir(path, 0777)) {
-      printf("  error: Unable to create directory '%s': %s\n",
-            path, strerror(errno));
-      break;
-    }
-    asprintf(&newpath, "%s/%s", path, "test");
-    free(path);
-    path = newpath;
-  }
-  return 0;
-}
-
-/*
- * Test if symlinks can be created.  This was a problem detected with
- * KDE.
- */
-int test_symlinks(void) {
-  printf("info: testing symlink creation\n");
-  unlink("symlink");
-  if (-1 == symlink("file", "symlink"))
-    printf("  error: Unable to create symlink\n");
-  return 0;
-}
-
-int main(int argc, char **argv) {
-  printf("Testing POSIX/Unix sematics on file system\n");
-  test_symlinks();
-  test_subdirectory_creation();
-#ifdef TEST_SQLITE
-  test_sqlite_open();
-#endif /* TEST_SQLITE */
-  test_gcompris_locking();
-  return 0;
-}
-</pre>
-
-<p>When everything is working, it should print something like
-this:</p>
-
-<pre>
-Testing POSIX/Unix sematics on file system
-info: testing symlink creation
-info: testing subdirectory creation
-info: sqlite worked
-info: testing fcntl locking
-  Read-locking 1 byte from 1073741824
-  Read-locking 510 byte from 1073741826
-  Unlocking 1 byte from 1073741824
-  Write-locking 1 byte from 1073741824
-  Write-locking 510 byte from 1073741826
-  Unlocking 2 byte from 1073741824
-</pre>
-
-<p>I do not remember the exact details of the problems we saw, but one
-of them was with locking, where if I remember correctly, POSIX allow a
-read-only lock to be upgraded to a read-write lock without unlocking
-the read-only lock (while Windows do not).  Another was a bug in the
-CIFS/SMB client implementation in the Linux kernel where directory
-meta information would be wrong for a fraction of a second, making
-OpenOffice.org fail to create its deep directory tree because it was
-not allowed to create files in its freshly created directory.</p>
-
-<p>Anyway, here is a nice tool for your tool box, might you never need
-it. :)</p>
-
-<p>Update 2010-08-27: Michael Gebetsroither report that he found the
-script so useful that he created a GIT repository and stored it in
-<a href="http://github.com/gebi/fs-test">http://github.com/gebi/fs-test</a>.</p>
-</div>
-  <div class="tags">
-   
-
-   
    Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>. 
   
   </div>
@@ -810,7 +595,7 @@ script so useful that he created a GIT repository and stored it in
 
 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
 
-<li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (12)</a></li>
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
 
 </ul></li>
 
@@ -887,9 +672,9 @@ script so useful that he created a GIT repository and stored it in
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (5)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (76)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (77)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (99)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (100)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (14)</a></li>
 
@@ -901,7 +686,7 @@ script so useful that he created a GIT repository and stored it in
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (13)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (14)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (3)</a></li>