I've just released sysrqd 10. I've rewritten big chunks of code, mostly because my C skills have quite improved between now and 4 years ago, and because I've blindly merged contributors patches which were crap.
Tag - software
jeudi, mars 27 2008
PHP applications code quality
Par jd le jeudi, mars 27 2008, 07:57 - Internet
Ah, Erich, that IS so true. I never found a well written PHP application anyway, or it was only 10 lines long.
I guess that's primarily the language fault. It permits to do a lot of stuff and does not simplify, help nor force the simplest implementation methods like MVC which should be the base in Web developement.
Well, take as example what we would do with Python and GTK+ if they were like PHP and HTML (I do not have the API reference so it will be somewhat improvised):
#finally we do not need this module I wrote everything myself
#import somemodule
def main():
# Well we want to do some printing
window = GtkWindow()
# Connect to the database without any abstraction, that sucks
db = mysql.connect()
data = db.query("select RANDOMLYTYPEDDATA from MYONLYTABLE");
while data:
# Ah, we do not have include() so we cannot reuse code
# I'm a PHP developer, I do not know functions
import somestuff
window.print(somestuff.result)
# Obviously, forgot to close db connection, etc.
if form.data.field == "hello":
# The user asked for hello, print hello
window.print("hello")
# debug
print data[0]
if form.data.anotherfield[0] == "morning":
data = db.query("select anotherdata from MYONLYDATA")
else:
sys.exit(42)
label = GtkLabel()
# Yes know we construct the view!
window.add(label)
label.print(data)
That is typical PHP code: we just take randomly typed data from our DB eng... no wait, from MySQL (remember that's LAMP!!! Not LAPP or anything else, bitches!), then we print some HTML code with data, and we do tests on environment, forms, etc, and we get back data, reprint them, do not use functions but include() multiple times thousand of files and then do not close/free anything.
It's so easy to do bad code that lot of people coming from nowhere and who did not learn anything from other languages are doing it.
Another hypothesis coming from my experiment: PHP is a language which can be developed under any OS since it's server-side executed. A link between mostly brain dead "developers" from the Microsoft world and whose from the Free Software world. A clash.
I apologize to some of my coworkers doing better PHP all the day. 
samedi, janvier 26 2008
Moving old projects to git
Par jd le samedi, janvier 26 2008, 10:02 - Free Software
I finally did it.
Most of my small and personal projects (telak, sysrqd and mod_defensible) were maintained in my home-svn-repository. This had the side effect that I did not have a good overview of the current status of the project, and that I never though about tagging releases.
I used git-svnimport to move this stuff to git, with great success. Now, I see that only one release on three is tagged correctly, bad me. They are now on my git server.
But with a better tool like git I'm sure I will be more precise when I will work on that source code, so it was time to switch. And now my source code is public, which is far better than before.
jeudi, novembre 15 2007
Time < work
Par jd le jeudi, novembre 15 2007, 20:45 - Life
It's official: I'm beginning to be a bit overloaded.
Luk gently asked me about my status in the (stable) release management team. That just made a bit more guilty not doing that I'd like to do.
Current TODO list involves:
- release awesome 2.0-rc1 and update website and documentation for it;
- work on rebuildd, finish and polish 0.3 version;
- run a full rebuild of the Debian archive to test rebuldd 0.3, do some QA work;
- update mod_defensible to fix problem with udns timeout;
- work on Debian release management, at least rewrite lost script for (old-)proposed-updates which were on ries'
- work on Debian Xen;
- handle a lot of waiting task on my network/servers.
Now, the thing that will help: I'm house moving this week-end with no (real) Internet connection yet. I only managed to establish a VPN over port 53/udp on a hotspot from a pub near my new apartment with 25-30 KB/s bandwidth, which is better than nothing actually.
- awesome* is asking me a lot of time right now, and since it's my last launched project, I am motivated and have a lot of idea, so I like to hack on him right now. I think I will have to postpone future release to not forget other things.
I'm going to see what happens by the end of the year and if I'm able to catch up with everything. Otherwise I might need to drop some things… 
Life is too short.
lundi, octobre 29 2007
awesome developement
Par jd le lundi, octobre 29 2007, 11:04 - awesome
awesome developement is in a very good shape.
We're now more than half way on the 2.0 road. The contributors base is increasing, since there's now 2-3 people regularly sending patches, so this is very good, and the (still small) users base is increasing smoothly.
The awesome core code is step by step rewritten in a better and more generic way. The next big work is tabs implementation, that I am still postponing right now because of the core which is not ready to handle. It needs to become even more generic to not break everything by adding such a feature.
I still hope to release awesome 2.0-rc1 by the end of november.
mardi, octobre 2 2007
git statistics?
Par jd le mardi, octobre 2 2007, 15:43 - Free Software
I wonder if there are tools to do pretty git statistics, something like that:
(done on linux-2.6 git repository).
I just wrote a quick'n dirty Python script to do that, but I'm too lazy to write a full program for now…
jeudi, septembre 20 2007
awesome
Par jd le jeudi, septembre 20 2007, 17:58 - awesome
Then, I did it finally, I wrote my own window manager. \o/
samedi, septembre 15 2007
Sorry dwm
Par jd le samedi, septembre 15 2007, 23:37 - Free Software
This time I L O L.
vendredi, septembre 14 2007
Waiting so long
Par jd le vendredi, septembre 14 2007, 19:16 - Life
Oh my god, I'd be happy the day La Poste (french post offices) will call a kernel hacker to...
Wait for it...
Explain them what is a queue scheduler.
vendredi, août 17 2007
Window manager sucks
Par jd le vendredi, août 17 2007, 00:06 - Free Software
Now my fvwm is segfaulting almost at each startup.
Seriously, there's great software everywhere, but still no good window manager (I know, I tested almost them all).
Life sucks.
vendredi, août 10 2007
On media players, xmms and audacious
Par jd le vendredi, août 10 2007, 11:59 - Free Software
Last month the new thread I was afraid about has started. Called Considerations for 'xmms' removal from Debian, the maintainers of the xmms package proposed the removal of it.
I used xmms (and, before, x11amp) for something like 9 or 10 years. I know, I love it. I can't bear other players. Amarok is heavy, rhythmbox seems like a joke to me. I like to load my 6500 files playlist in one shot, press 'j' and jump to the song I want. I don't see how it could be easier to use a music player.
Following the thread, I must admit that, yes, xmms is old, gtk1.2, unmaintained, etc. I had to switch, sooner is better.
So I use now Audacious. At least I try to. Last time I tested it, the search (jump, 'j' key) function was… not working. No it is, it works like xmms, and I'm happy. I know that upstream author of audacious dislikes being compared to xmms, but, screw you, you're like xmms, and I like it, so I like audacious for this. The plugins and the interface is like xmms, so it's great also.
However it's buggyyyyyyy. Third day of use, serious bug reported as #436557. It segfaults sometimes, or simply blocks reading a file.
The information loading 'on demand' is so crapy compared to xmms. I mean, it's fucking slow! When I put shuffle on and I lick 'next song please', then it hangs reading informations. xmms was doing what in a better way.
However, dear audacious-author-that-already-hates-me-for-comparing-xmms-and-audacious, I really think it'll be a real alternative for old xmms users like me and a lot I know (yes, I know a lot of people, damn it!). Developement seems to be very active, so I'll continue to report bug and use it.
Yes, I believe in audacious.
mardi, août 7 2007
Evolution, you can't pass through
Par jd le mardi, août 7 2007, 08:34 - Free Software
lundi, juillet 9 2007
Big update for rebuildd
Par jd le lundi, juillet 9 2007, 11:45
During the last five days, I made a bunch of updates to rebuildd:
35 files changed, 709 insertions(+), 190 deletions(-)
That's mainly small enhancements, and a brand new Debian packaging. It's now very usable from my point of view. Moreover, the repository is now on Alioth.
There's still some code improvement to do and some features to add, but I'm quite happy with it.
Consequently, I just released the first version, numbered 0.1.0.
mercredi, juillet 4 2007
rebuildd online preview
mardi, juillet 3 2007
Five days of coding: rebuildd
Par jd le mardi, juillet 3 2007, 19:14 - Debian
Last week I decided to begin a new project, whose name is now rebuildd.
If the name is not explicit to you, let me explain: it's like buildd, but its first purpose is to rebuild packages.
If you want to know more, you can take a look on the Web page I just set up.
dimanche, juin 17 2007
Why you won't use MySQL/ndb
Par jd le dimanche, juin 17 2007, 11:25 - Free Software
I just failed to migrate a big project at work because of that, the D day:
Jun 15 10:46:39 hostname mysqld[20095]: Version:'5.0.32-Debian_7etch1-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Debian etch distribution Jun 15 10:46:43 hostname mysqld[20095]: mysqld got signal 11
So no, you won't use NDB, at least with MySQL 5.0.31 (included in etch). It's _so_ buggy that we get a segfault on the first DELETE statement with a 30 MB database.
Backporting version 5.0.41 from sid gives better results (at least for now).
I knew we should have used PostgreSQL from the beginning...
jeudi, février 1 2007
mod_defensible 1.2
Par jd le jeudi, février 1 2007, 16:51 - Free Software
I just released mod_defensible 1.2 and uploaded it to Debian. Just have to wait that the NEW queue is processed.
In the meantime packages are available here.
vendredi, janvier 19 2007
mod_defensible 1.1
Par jd le vendredi, janvier 19 2007, 16:43 - Free Software
Hopla, a new version of mod_defensible. I added a custom page in order to explain to the client why it is forbidden to access to the page.
In the mean time, my webserver load dropped to somewhat 20% less than without this module.
sysrqd 9
Par jd le vendredi, janvier 19 2007, 15:37 - Free Software
I just released sysrqd 9th version. This version include a little page for Neil McGovern: never go in swap and allow to bind to a specific IP address.
mardi, janvier 16 2007
Creating a FLAN
Par jd le mardi, janvier 16 2007, 12:48 - Naquadah Network
I have several servers around the Internet, and one of my need is to have VPN between them to access various data and services, like SNMP or NFS. I used to build VPN with OpenVPN between some of them.
My main problem was that I had to set up IP interfaces at each end, build multiple tunnels or make some routing, and... that was not what I wanted, too complicated.
I took a deeper look in OpenVPN and found a solution: I created a FLAN… No, not a cake, a Faked LAN! This is so easy and powerful that I beat myself to not have though about that before.
I did it with 3 servers for now, this is how it works: on each server I create an interface named if-remote hostname which is a tap (Ethernet) interfaces connected to the remote host. On server1, I have two interfaces, if-server2 and if-server3 which are like direct wired connection to the remote host, and I can do Ethernet on them.
When each server has its link up, I create an Ethernet bridge. In this bridge, I put the two interfaces connected to the remote servers. This finally build something like that for each server:
server1 -- eth0
\
if-bridge 192.168.4.88
\ \_ if-server2 -- VPN -- if-server1 -- if-bridge 192.168.4.89 -- server2
\_ if-server3 -- VPN -- if-server-1 -- if-bridge 192.168.4.90 -- server3
Obviously, you will have a loop in your faked Ethernet LAN, so you'll have to active STP in order to have a working LAN. And it works.
The main advantage with this solution is that each server has only one IP on this virtual network, and there's no connection problem if one of your host is down: STP will rebuild the network in a transparent way. The main problem is that you may have to set up a lot of link if you want a full redundancy. I think I'll setup only two links between each server, because it maybe too painfull otherwise.
You can also do some optimization if you need, because the current bridge implementation in Linux is so powerful that you can put cost on interfaces for your bridge, or define which bridge should be the root of your tree. Have fun!
« billets précédents - page 1 de 4
