Search Results: "ron"

13 April 2007

Jaldhar Vyas: That LILUG Talk

As mentioned previously I was invited to talk about Debian at the Long Island Linux User Group. Much to my embarrassment I had forgotten I had actually spoken at this venue before way back in 2003. But the audience (which of course included many members who had joined since then) were receptive, and asked lots of questions which I like. I did my "Three Pillars of Debian" talk updated for Etch with snazzy new slides — feel free to use them in your own presentations if you like. I was supposed to speak for two hours and ended up speaking for three. So hopefully I managed to impart some useful information and maybe make some new recruits. I would like to publically thank John Teddy and all the people at LILUG for inviting me. Also, note for the future: I really ought to learn how to correctly pronounce Hocevar. Sam, you should put up an audio clip somewhere.

Sam Hocevar: shlib-with-non-pic-code: have inline assembly and PIC mix well

Perhaps the most accessible documentation on what PIC code is and how an ELF dynamic linker works is John Levine s Linkers and Loaders (and it has amazing sketches, too!). The Gentoo documentation also has an Introduction to Position Independent Code. I d like to give a few hints on how to fix the shlib-with-non-pic-code lintian error caused by inline assembly on the i386 and amd64 platforms, as well as build errors that may occur due to inline assembly being used. I m not going to cover the trivial all objects were not built using gcc s -fPIC flag problem. It usually requires a fix to the build system, not to the code. gcc can t find a register (i386) PIC on i386 uses a register to store the GOT (global offset table) address. This register is usually %ebx, making it unavailable for use by inline assembly (and also restricting the compiler's register usage when compiling C or C++ code). So the following perfectly valid code will not build with the -fPIC flag:
 void cpuid(uint32_t op, uint32_t reg[4])
  
    asm volatile("cpuid"
                 : "=a"(reg[0]), "=b"(reg[1]), "=c"(reg[2]), "=d"(reg[3])
                 : "a"(op)
                 : "cc");
  
Using -fPIC, gcc will say something around the lines of error: can't find a register in class BREG while reloading asm . Several things need to be done to fix this: And here is the PIC-compliant version:
 void cpuid(uint32_t op, uint32_t reg[4])
  
    asm volatile("pushl %%ebx      \n\t" /* save %ebx */
                 "cpuid            \n\t"
                 "movl %%ebx, %1   \n\t" /* save what cpuid just put in %ebx */
                 "popl %%ebx       \n\t" /* restore the old %ebx */
                 : "=a"(reg[0]), "=r"(reg[1]), "=c"(reg[2]), "=d"(reg[3])
                 : "a"(op)
                 : "cc");
  
using variables from assembly code (i386) Directly using variables from inline assembly always creates non-PIC code even if -fPIC is being used. There are at least three strategies to consider when trying to fix this. Here is an example of PIC-incompatible code:
 extern uint32_t sym1, sym2, sym3;
 
 void store_in_symbols(uint32_t x)
  
     asm volatile("movl %0, sym1   \n\t"
                  /* ... */
                  "movl %0, sym2   \n\t"
                  /* ... */
                  "movl %0, sym3   \n\t"
                  : : "r"(x));
  
The first strategy is to pass the variable through the usual gcc inline assembly syntax. This is not always possible because there might be a shortage of registers, but here is what it looks like:
 extern uint32_t sym1, sym2, sym3;
 
 void store_in_symbols(uint32_t x)
  
     asm volatile("movl %3, %0   \n\t"
                  /* ... */
                  "movl %3, %1   \n\t"
                  /* ... */
                  "movl %3, %2   \n\t"
                  : "=r"(sym1), "=r"(sym2), "=r"(sym3) : "r"(x));
  
If there are too many variables and not enough registers, one can use the second strategy: put all required variables (or addresses) in a table, thus requiring only one extra register:
 extern uint32_t sym1, sym2, sym3;
 
 void store_in_symbols(uint32_t x)
  
     uint32_t tab[3];
     asm volatile("movl %1, (%0)   \n\t"
                  /* ... */
                  "movl %1, 4(%0)  \n\t"
                  /* ... */
                  "movl %1, 8(%0)  \n\t"
                  : : "r"(tab), "r"(x));
     sym1 = tab[0];
     sym2 = tab[1];
     sym3 = tab[2];
  
If the second method happens to be unsuitable because variable types differ too much, there is a third, more complicated strategy: retrieve the GOT address using some linker-specific magic, then use @GOT addressing to access variables:
 extern uint32_t sym1, sym2, sym3;
 
 void store_in_symbols(uint32_t x)
  
     uint32_t got;
     asm volatile("call get_got                               \n\t"
                  "get_got:                                   \n\t"
                  "popl %0                                    \n\t"
                  "addl $_GLOBAL_OFFSET_TABLE_ - get_got, %0  \n\t"
                  : "=r"(got));
     /* ... */
     asm volatile("pushl %%ebx                \n\t" /* save ebx */
                  "movl sym1@GOT(%0), %%ebx   \n\t" /* retrieve sym1 address */
                  "movl %1,( %%ebx)           \n\t"
                  /* ... */
                  "movl sym2@GOT(%0), %%ebx   \n\t" /* retrieve sym2 address */
                  "movl %1, (%%ebx)           \n\t"
                  /* ... */
                  "movl sym3@GOT(%0), %%ebx   \n\t" /* retrieve sym3 address */
                  "movl %1, (%%ebx)           \n\t"
                  "popl %%ebx                 \n\t" /* restore ebx */
                  : : "r"(got), "r"(x));
  
It is of course possible to merge the two above asm statements into one. However the performance implications of the GOT address retrieval should not be overlooked, especially if the assembly code takes place inside a critical loop, which means the loop might have to be unrolled and the GOT address retrieval done outside the loop. Note also that _GLOBAL_OFFSET_TABLE_ is ELF-specific. On BSD and a.out systems you should use __GLOBAL_OFFSET_TABLE_. I am not aware of a way to do the same on Darwin / Mac OS X, which is a shame because it is the only widespread i386 platform where shared objects cannot be non-PIC. gcc silently generates non-PIC code (amd64) The amd64 architecture has the same problem as i386 when trying to access variables from assembly code. However, the solution is a lot easier: the GOT address can always be retrieved from the special %rip register. This is called rip-relative addressing:
 extern uint32_t sym1, sym2, sym3;
 
 void store_in_symbols(uint32_t x)
  
     asm volatile("pushl %%rax                       \n\t" /* save rax */
                  "movq sym1@GOTPCREL(%rip), %%rax   \n\t" /* retrieve sym1 address */
                  "movl %0,(%%rax)                   \n\t"
                  /* ... */
                  "movq sym2@GOTPCREL(%rip), %%rax   \n\t" /* retrieve sym2 address */
                  "movl %0,(%%rax)                   \n\t"
                  /* ... */
                  "movq sym3@GOTPCREL(%rip), %%rax   \n\t" /* retrieve sym3 address */
                  "movl %0,(%%rax)                   \n\t"
                  "popl %%rax                        \n\t" /* restore rax */
                  : : "r"(x));
  
amd64 also has more registers than i386, which makes the first discussed technique less prone to register shortage. Why bother? Good question. Currently many shared libraries simply disable entire chunks of inline assembly on the amd64 architecture. Whether these routines bring any performance benefit compared to the C alternative is uncertain, but without being able to build the code there is no way to tell. Even fewer developers care about i386, because this architecture can handle non-PIC shared objects quite fine (but then they are no longer really shared). I am in favour of making all shared objects PIC-friendly (ie. not necessarily build them as PIC if there is a valid reason not to, but at least don t make it too difficult to build PIC versions) because that makes it easier to port the code to Darwin. I also believe the memory gain and especially the cache gain when using real shared libraries is underestimated.

Erich Schubert: Init followup

Gunnar Wolf commented on my recent series of init script posts. Thanks for the feedback.The thing is that I've been doing a lot of Debian stuff these days (such as our GSoC coordination, and lots of stuff you saw in this blog). But I shouldn't... instead I should be trying to finally get my diploma thesis done.I had my exams last july. If I had been focused, I could have been finished with my degree last christmas. Now it will likely by this fall. :-( All that is remaining is my final thesis. It should be written in 6 months, but I still havn't submitted my topic yet. So if you are wondering what took me 8 months already: I investigated two topics, but they didn't work out. Then I started researching for my 'current' topic, and I have a vision for it, but I still havn't managed to convince my professor (which of course is largely due to me not being able to convey this idea, and that the topic is in information management and representation, where it's probaly often hard to find a solid theoretical part. I have examples I'd like to do, and I hope they are actually convincing, but I have no idea how to 'prove' something here; it's too much about social aspects and human perception I guess, and I'm not really qualified or capable to do solid research in that field.)(And as you can probably imagine, I'm pretty fed up with studying now. A year ago, I'd have considered to go for a PhD afterwards, but now I just want to get out, and work on my projects.)Anyway, I got distracted. Back to the init topic.I already posted this link: Init Hackfest, as well as a pointer to the initscripts-ng mailing list. I'd really like to get this topic on it's way for lenny. So please, join this effort. While I'd like to push it, I shouldn't; on contrary, I should suspend my Debian efforts.As for your (Gunnar) suggestion on how to handle multiple inits: what's wrong with just including multiple init scripts in one package? They are not particularly large and compress well. A single init script package might already be bigger than all the init scripts.The problem is more on how to write these init scripts; by the time we're done with this project, we might actually have hit 1000 init scripts. Yes; I didn't just make up this number: packages.debian.org has 890 hits for /etc/init.d; the init-like scripts in /etc/dbus-1/event.d not included. So if just want to add support to 5 alternate init systems, this means we would need to write 5000 new init scripts. Ouch. So we maybe should convert them to 1000 meta-init-scripts instead, and generate the 6000 real init scripts from them.Please join the discussion, and lets get this project going, despite having to face such scaringly high numbers...

Evan Prodromou: 22 Germinal CCXV

A lot of people have asked me about the Tim Wu piece in Slate about Wikitravel. I've commented already about the article in Wikitravel's Logbook: 8 April 2007. The upshot: Wu got a lot of things really wrong about Wikitravel (like saying we didn't have any hotel listings for Bangkok). But if our readers get things wrong, that means Wikitravellers need to do some more work to help them get things right. User errors are developer errors writ large; we can do better. But I think Tim Wu missed the main reason Wikitravel guides will always be better than proprietary guides: they are Free Cultural Works. Where I come from, that means a lot. I wrote to Tim about his article, and he responded really kindly. The thing I liked most is that when he got home, he updated Wikitravel with the information he picked up on his trip to Thailand. That is pretty cool. I'm not taking others' responses to the article too seriously. Wikitravel got a Webby Award nomination for Best Travel Site the same week. As Tom Wolfe said, "The lead dog is the one they always try to bite in the ass." And Oscar Wilde: "The only thing worse than being talked about is not being talked about." (Thanks to Hugh!) tags:

Off to San Juan We're getting prepared this morning to head out to Puerto Rico for the first annual World-wide Wikitravel Get-together. Our flight leaves at 2:20PM, so we've got kind of a leisurely morning to get ready. As usual, we're pretty tense: what are we forgetting? And I usually get hung up on unnecessary stuff to deal with. I should probably print out the Spanish phrasebook from Wikitravel, because my Spanish is pretty rusty. And I should download all the WT pages about Puerto Rico destinations to my laptop, just to know where we should fill in. And we can't find the charger for our camera's battery. And I want to bring a certain pair of cargo pants, but there's a button missing. Do I have time to sew on another? Of course, all these anxieties melt once we get out of the house and into a taxi to the airport. Once you can't do things, you stop worrying about what you should do. I think. The more I learn about Puerto Rico, the more fascinated I am. San Juan (Puerto Rico)'s Old Town is a UNESCO World Heritage site. The giant telescope at Arecibo is world-renowned as the SETI site. The islands of Vieques and Culebra are isolated and fun, and Fajardo and Rincon has world-class surfing. My friend Biella Coleman gave me a great list of travel tips for San Juan and Culebra, which have been a big help in our planning. OK, enough blogging: gotta get to work sewing on that button. (I've been stalling long enough for Maj to have found the camera charger under a baseball hat. Yay!) tags:

12 April 2007

Simon Richter: How can I change the world, if I can't even change myself?

Faithless were playing yesterday, and although it wasn't their best concert ever, it still rocked. People with a megaphone in front of a microphone still trigger my "this is somewhat surreal" smile. Title is from the song "Salva Mea", so no reason to worry about me emoing today. :-)

MJ Ray: Environment: Low Carbon Lifestyle Tour

Carpenter Mukti Mitchell has set off on a tour of the coastline of Britain in a zero-emission microyacht promoting low carbon lifestyles. During the course of his voyage, he will be stopping at 40 ports and towns around the country with events organised to promote low carbon products and services. He doesn't call at Clevedon or King's Lynn (I guess they're too far inland) but he's currently in South Wales and should be calling at Wells-next-the-Sea on 21 July and Sheringham on 23. More dates The Phone Co-op (agent 471) is a co-sponsor of this event with, among others, Ecotricity, Resurgence and Co-operative membership so at least two of my co-operatives are supporting it.

11 April 2007

Eddy Petrișor: finally, I can get rid of filelight!

The desktop enviroment is not a religious thing for me. IMHO, they all (3 of them) have missing parts which are present in the others. I never really used Xfce.

OTOH, I have been switching back and forth between GNOME and KDE during my time as a GNU/Linux user. Since I always found that one of the environments was missing things which were present in the other, I think I have switched at least 3 times both ways by now.

Now, with the release of GNOME 2.18, I will have one less reason to think to move away from GNOME, which is the current desktop environment. One of the apps I was missing in GNOME was a filelight-like application that would show usage in a very intuitive graphical way. Now it seems that baobab (commonly known as Disk Usage Utility) has a ring chart similar to filelight's. Yay!

Now, if somebody would take the task of rewriting granslator, I would be more than glad to drop kbabel...

Note: I was disapointed that GNOME Space Chart never made it to public... that disappointment lasted until now.

Luk Claes: No Mail

Something went wrong with my mailserver (configuration?) today. So if you got a bounce or are wondering why I didn't answer a mail you sent today, feel free to resend the message as I changed the forwarding to another email address for the time being.

Kai Hendry: Webconverger 2.4

Korean Webconverger split 2.4 I’ve just released Webconverger (Web kiosk) USB&ISO versions built with stable Debian etch. Webconverger has received some good feedback and press. I would like to thank Daniel Bauman for his rather excellent Debian Live work on which Webconverger is based. I was hoping that Webconverger could support every locale, now it looks like I need to produce a separate ISO/IMG (or at least apt-get hooks) for every locale. One reason is that Iceweasel/Firefox extensions don’t scale very well. Try install every locale and dictionary extension. I dare you. :) Sidenote: I wonder why no one has packaged the dictionaries for Iceweasel. In other news, I’ve been playing around with scim (keyboard switcher) and Korean locales. It seems to work though the title bar didn’t render hangul characters right in dwm. After some investigation I discovered there isn’t such a thing as a single “generic” Unicode font. This came as a shock to me. :) Typical ttf only have 65536 glyphs, so no one font will do. Jeff Zhang also informed me about free Unicode fonts. Though I think especially in CJK environments proprietary fonts are unfortunately more common. Or I don’t know why microsoft-gulim isn’t in msttcorefonts. Anyway the Korean version of Webconverger turned out OK, though I doubt any Koreans will be using it. It’s all sadly ActiveX out there. My package wordpress 2.0.10 didn’t quite make it to etch in time as I was waiting for CVEs! 2.0.10 will be coming soon though… It always amazes me how much work can get done in breaks like Easter. It’s great that etch is out. And whoa, the weather is great.

Clint Adams: And everyone was pervy, oh yeah, and the message was spread

The New York Post is such a fine periodical.

Erich Schubert: System init - part #2

Yesterday, I wrote about our init actually being /bin/sh, since all sysvinit does it start a single shell script. Today, I'm going a bit into how services are brought up with sysv-style init. I won't be writing much about runlevels, since most users will not make use of multiple runlevels anyway. So what does a typical init script in /etc/init.d do? If you want to find out yourself, consider looking at /etc/init.d/skeleton, which is a template for init scripts. A modern init script should (as required by the LSB) start with a formatted comment with metadata such as dependencies and description. This is already trying to address some shortcomings of sysv-style init, but no actual code. The first thing most init scripts do is to check if their application is actually still installed. Init scripts are sometimes created by users, or are not automatically uninstalled since being treated as 'configuration files'; so it occurs often that the init script is still around even when the service was uninstalled. So they test if they're installed and executable. Next they probably read a configuration file, usually named /etc/default/packagename, with user settings (people used to do such changes in the init script itself, but for upgrading it proved to be a lot better to put all settings the user might want to modify there). The third step is to do the requested user action, which usually is one of 'start', 'stop', 'reload' and 'restart'. Some init scripts also have extra actions such as 'status'; not all init scripts support 'reload'. Doing such an action usually means to print out a status message and launching the service in the background (usually using the 'start-stop-daemon' daemon helper, which offers functionality to e.g. record the process PID in a file or forcing applications into the background that don't do so on their own), or locating the service (usually via a PID file, again this is commonly done using start-stop-daemon) and reloading or stopping it. Upon success, they again print a status message. An init script could be as simple as:
#!/bin/sh
if [ "$1" = "start" ]; then
  /usr/local/sbin/mycheapdaemon &
fi
There are many good reasons not to do it that way, but it will work. Some characteristics of sysv-style init scripts: Keep your eyes open for the next part of this series, where I'll show how some init systems improve on these issues.

Erich Schubert: System init - part #2

Yesterday, I wrote about our init actually being /bin/sh, since all sysvinit does it start a single shell script.Today, I'm going a bit into how services are brought up with sysv-style init. I won't be writing much about runlevels, since most users will not make use of multiple runlevels anyway.So what does a typical init script in /etc/init.d do?If you want to find out yourself, consider looking at /etc/init.d/skeleton, which is a template for init scripts.A modern init script should (as required by the LSB) start with a formatted comment with metadata such as dependencies and description. This is already trying to address some shortcomings of sysv-style init, but no actual code.The first thing most init scripts do is to check if their application is actually still installed. Init scripts are sometimes created by users, or are not automatically uninstalled since being treated as 'configuration files'; so it occurs often that the init script is still around even when the service was uninstalled. So they test if they're installed and executable.Next they probably read a configuration file, usually named /etc/default/packagename, with user settings (people used to do such changes in the init script itself, but for upgrading it proved to be a lot better to put all settings the user might want to modify there).The third step is to do the requested user action, which usually is one of 'start', 'stop', 'reload' and 'restart'. Some init scripts also have extra actions such as 'status'; not all init scripts support 'reload'. Doing such an action usually means to print out a status message and launching the service in the background (usually using the 'start-stop-daemon' daemon helper, which offers functionality to e.g. record the process PID in a file or forcing applications into the background that don't do so on their own), or locating the service (usually via a PID file, again this is commonly done using start-stop-daemon) and reloading or stopping it. Upon success, they again print a status message.An init script could be as simple as:
#!/bin/sh
if [ "$1" = "start" ]; then
  /usr/local/sbin/mycheapdaemon &
fi
There are many good reasons not to do it that way, but it will work.Some characteristics of sysv-style init scripts: Keep your eyes open for the next part of this series, where I'll show how some init systems improve on these issues.[Update: next part]

MJ Ray: Friends of the Walks: meeting Wednesday 11 April

Until September 2006, I lived in King's Lynn, so I still have friends there and look out for some topics to do with it. I'm also still helping to update some community websites for that area. On Wednesday 11 April, Friends of the Walks will meet in St John's Church at 6pm. Topics for discussion include the group's future role after the heavy work has finished. There will be more updates to the website in the next few weeks. (Apologies for late notice - I only got the letter second-class cross-country.)

John Goerzen: I'm dreaming of a white... Easter?

Last Monday, the high was 78. By Thursday, the high was 35 and we got 7 inches of snow. And some of it was still on the ground by Sunday, Easter. All this after several weeks of unusually warm temperatures.

Terah and I spent all day Saturday cleaning, unpacking, and generally finishing moving in as much as possible. That's because we invited my dad's family over to our place for Easter dinner; our first real event we've hosted since moving in at the farm.

I remember going to grandpa's place many times for Easter dinner. It was a nice tradition. Last year, the family wasn't sure what to do; grandpa's house was vacant, but not really in a condition suitable for having a meal either. So we had an easter picnic. Terah and I were making plans about buying the place then already, and we hoped that we'd be able to invite everyone over to celebrate Easter in a newly-renovated house by this year. I'm glad we could!

My great aunts and uncles came over a little later in the afternoon. One of them remembered sitting on the swing on the front porch when my grandma told them she had cancer. They remembered how much my grandma had wanted a larger kitchen, and how she'd be excited about what we had in the house now. It's was nice to hear those memories and stories.

This Saturday, I plan to get out the camera and finally post the "done!" pictures of the house. It's been quite the busy year, but we're very happy with how it turned out.

Michael Koch: Yesterday I was happy about SUN

Yesterday I was happy about SUN, because I saw an announcement that WTK 2.5.1 was released. And it includes a Linux version. The versions 2.3 and 2.5 were Windows only. The only available Linux version was 2.2. It worked nice but missed some features and had an annoying bug that signing of midlets were not possible. This bug was introduced in WTK 1.1 and fixed in WTK 2.5. Today I download WTK 2.5.1 for Linux and installed it. I tried to run a first midlet and got this error message:
java.lang.UnsatisfiedLinkError: /home/mkoch/local/WTK2.5.1/bin/sublime.so: /lib/tls/i686/cmov/libc.so.6: version  GLIBC_2.4' not found (required by /home/mkoch/local/WTK2.5.1/bin/sublime.so)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1647)
        at java.lang.Runtime.load0(Runtime.java:770)
        at java.lang.System.load(System.java:1005)
        at com.sun.kvem.Sublime.(Unknown Source)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at java.lang.Class.newInstance0(Class.java:355)
        at java.lang.Class.newInstance(Class.java:308)
        at com.sun.kvem.Lime.createLime(Unknown Source)
        at com.sun.kvem.KVMBridge.(Unknown Source)
        at com.sun.kvem.KVMBridge.getBridge(Unknown Source)
        at com.sun.kvem.midp.MIDP.run(Unknown Source)
        at com.sun.kvem.environment.EmulatorInvoker.runEmulatorImpl(Unknown Source)
        at com.sun.kvem.environment.EmulatorInvoker.main(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.kvem.environment.JVM.main(Unknown Source)
I run a pure Debian Etch system as my desktop. So its not too old. I know there are releasons for etch not to include Glibc 2.4. Thats really okay. But I really wonder why builds against Glibc 2.4? What feature introduced in Glibc 2.4 is needed? I guess none.
They are just stupid and built against a new, shiny Glibc without caring about their users. SUN: Please care about your users and release a new build against Glibc 2.3 soon. Not everyone will update his/her development machine just to be able to run WTK. When you release proprietary software, do it right. If you are not able to, make it open source, so the community can fix it.

10 April 2007

Peter Makholm: The iBook story

I took some days off-line so the iBook story hasn’t progressed very much. On the other hand I’ve spent some time with my family and finaly finished Neil Stephenson’s Quicksilver. Sound Had some problems with the internal soundcard. I’m not quite sure what the porblem was, but the right module is snd_powermac and not anything like snd_aoa. Probaly did something else wrong along the way too. The fun part would be playing music throug AirTunes. raop-play claims to solve this problem. They got debian packages for i386 and a nice debian/ in the source tar-ball. The build-deps is missing fluid and libglib2.0-dev but other than that it builds nicely — but no sound… Nearly giving up I looked at the alsapcm module not part of the debian package, just to see how it worked in theory. And suddenly I could play music with mplayer -ao alsa:device=hw=1.0 music.ogg. Problem is that raop-play isn’t endian safe, but the alsapcm module forces use of little endian somewhere before the real raop-play. Afterward I’ve tested raop-play on amd64 where it works nicely. Java Java seems to be a problem. None of the packages of ibm-jre packages I’m seem to be able to find is supported by java-package. My Bank uses java, so that is kind of a show stopper, but I havn’t really looked into it yet. Flash, Youtube and the like Flash isn’t really a showstopper, but it would be nice to be able to see all the funny video clips people are refering to. None of the free flash plugins seems to work (swfdec, libfalsh-mozplugin), but youtube-dl and mplayer do the job. Futher work… Java is a major show stopper. I can’t switch for real without java support in my browser. The other problems is something I can live with. I migth even prefer to use AirTunes from my amd64 server instead of my laptop so I will probally ITP raop-play soon. Some people have asked why I want to switch away from wonderfull OS X. I’ll try to wirte something up one of the days - and no it’s is not anything personal against mac fans.

Erich Schubert: On System Init part 1

I thought I could write a multi part blog series about init systems (with the obvious goal of convincing some more people we should properly support other init systems as well). In the first step, I'll have short look at our current init. First of all, our init isn't really /sbin/init from the sysvinit. The real work is done by /bin/sh, so usuall bash or dash. Using the latter can already cut down boot time for you by a few seconds, according to some people. The init process is indeed used to kickoff the system, but it's in fact not doing much. Pretty much all it does is described by /etc/inittab. If you havn't ever had a look at this file, maybe you should now. During a typical system boot, init is doing three things:
  1. Start /etc/init.d/rcS
  2. Start /etc/init.d/rc 2
  3. Start the gettys (console logins)
other tasks it handles is pretty much waiting for Ctrl+Alt+Del and if someone triggers a shutdown. The actual shutdown work is again done by a shell script - /etc/init.d/rc 6 So my claim that our init system actually is /bin/sh isn't really far off, is it? Some random notes: Maybe tomorrow I'll write a bit about features of other init systems, and what benefits they offer. Maybe also on why the SELinux strict policy doesn't really like this way of starting and stopping services because of isolation issues. Or on that there are two types of things happening at init. [Update: next post in this series.]

Erich Schubert: On System Init part 1

I thought I could write a multi part blog series about init systems (with the obvious goal of convincing some more people we should properly support other init systems as well).In the first step, I'll have short look at our current init.First of all, our init isn't really /sbin/init from the sysvinit. The real work is done by /bin/sh, so usuall bash or dash. Using the latter can already cut down boot time for you by a few seconds, according to some people.The init process is indeed used to kickoff the system, but it's in fact not doing much. Pretty much all it does is described by /etc/inittab. If you havn't ever had a look at this file, maybe you should now.During a typical system boot, init is doing three things:
  1. Start /etc/init.d/rcS
  2. Start /etc/init.d/rc 2
  3. Start the gettys (console logins)
other tasks it handles is pretty much waiting for Ctrl+Alt+Del and if someone triggers a shutdown. The actual shutdown work is again done by a shell script - /etc/init.d/rc 6So my claim that our init system actually is /bin/sh isn't really far off, is it?Some random notes: Maybe tomorrow I'll write a bit about features of other init systems, and what benefits they offer. Maybe also on why the SELinux strict policy doesn't really like this way of starting and stopping services because of isolation issues. Or on that there are two types of things happening at init.[Update: next post in this series.]

9 April 2007

Wouter Verhelst: My DPL ballot

So, now that the results of the DPL vote are in, I feel I can reasonably show my DPL ballot without doing something which I would consider "campaigning". And since I've done this a few times in the past now, I feel I ought to do it again. So, here goes:
[ 1 ] Choice 1: Wouter Verhelst
[ 6 ] Choice 6: Aigars Mahinovs
[ 4 ] Choice 3: Gustavo Franco
[ 2 ] Choice 4: Sam Hocevar
[ 1 ] Choice 5: Steve McIntyre
[ 5 ] Choice 6: Rapha l Hertzog
[ 5 ] Choice 7: Anthony Towns
[ 3 ] Choice 8: Simon Richter
[   ] Choice 9: None Of The Above
I guess it's no surprise I put myself up first. Running for DPL is a serious business, so it makes no sense running if you don't believe in it yourself. However, as I expressed during campaigning, I believe Steve was a very strong candidate, too; so I wouldn't have mind if it was him who won instead of me. Next, I put Sam Hocevar, since he also had a rather strong platform; he has some experience in leading a project (albeit on a much smaller scale); and yes, humour is good, too. I didn't put him first too, because there are some things in his platform that I have second thoughts on (mainly some of the technical matters that I believe have nothing to do with the DPL), but that didn't cause me to rank him down. Simon Richter had a rather weak platform, and failed to convince me during campaigning, too. That I still put him rather high has everything to do with having met him in person a few times. What follows are people I would have preferred not to see elected. I didn't feel that strong about it that I would vote them below NOTA, but still. Gustavo is very enthousiastic and had many projects he would have liked to accomplish, but I sensed some naivete coming from him. Therefore, I wasn't sure he'd make a good DPL. If I look at this past year, I look at a lot of unneeded bitterness. Some of that bitterness is a direct result of actions the DPL took; others are a result of things the DPL failed to act upon properly. Therefore, I feel the current DPL hasn't done much of what I want a DPL to do. Ranked along with him is Rapha l; after thinking about it, I think a DPL election is not the right place to promote a replacement structure in place of the DPL. Hence. Last, I've put Aigars. I'm sorry to say that I feel his platform has lost all touch with reality. Finally, I'd like to congratulate Sam Hocevar for winning, and Steve for making a very close second—again. I don't know about him, but I'd be rather frustrated with such a result.

Martin-Éric Racine: Reboot

I guess one could summarize Easter as a certain prophet's big reboot? Now, make it funky! Yup, this Easter, I completely rebooted as well: after briefly visiting my relatives in some distant country that some morons insist I should call "homeland", I got back to my real homeland in the HELish land of singing demons for a full reboot: new job, new home, new girlfriend. Then, my computing resources rebooted too. Shake it to the Left! Shake it to the Right! Reboot your life.

Next.

Previous.