Search Results: "pm"

11 October 2009

David Pashley: mod_proxy or mod_jk

This entry was originally posted in slightly different form to Server Fault There are several ways to run Tomcat applications. You can either run tomcat direcly on port 80, or you can put a webserver in front of tomcat and proxy connections to it. I would highly recommend using Apache as a front end. The main reason for this suggestion is that Apache is more flexible than tomcat. Apache has many modules that would require you to code support yourself in Tomcat. For example, while Tomcat can do gzip compression, it's a single switch; enabled or disabled. Sadly you can not compress CSS or javascript for Internet Explorer 6. This is easy to support in Apache, but impossible to do in Tomcat. Things like caching are also easier to do in Apache. Having decided to use Apache to front Tomcat, you need to decide how to connect them. There are several choices: mod_proxy ( more accurately, mod_proxy_http in Apache 2.2, but I'll refer to this as mod_proxy), mod_jk and mod_jk2. Mod_jk2 is not under active development and should not be used. This leaves us with mod_proxy or mod_jk. Both methods forward requests from apache to tomcat. mod_proxy uses the HTTP that we all know an love. mod_jk uses a binary protocol AJP. The main advantages of mod_jk are: A slight disadvantage is that AJP is based on fixed sized chunks, and can break with long headers, particularly request URLs with long list of parameters, but you should rarely be in a position of having 8K of URL parameters. (It would suggest you were doing it wrong. :) ) It used to be the case that mod_jk provided basic load balancing between two tomcats, which mod_proxy couldn't do, but with the new mod_proxy_balancer in Apache 2.2, this is no longer a reason to choose between them. The position is slightly complicated by the existence of mod_proxy_ajp. Between them, mod_jk is the more mature of the two, but mod_proxy_ajp works in the same framework as the other mod_proxy modules. I have not yet used mod_proxy_ajp, but would consider doing so in the future, as mod_proxy_ajp is part of Apche and mod_jk involves additional configuration outside of Apache. Given a choice, I would prefer a AJP based connector, mostly due to my second stated advantage, more than the performance aspect. Of course, if your application vendor doesn't support anything other than mod_proxy_http, that does tie your hands somewhat. You could use an alternative webserver like lighttpd, which does have an AJP module. Sadly, my prefered lightweight HTTP server, nginx, does not support AJP and is unlike ever to do so, due to the design of its proxying system.
Read Comments (3)

10 October 2009

Martin Michlmayr: Debian installer for QNAP TS-119, TS-219 and TS-219P available

The Debian installer for QNAP TS-119, TS-219 and TS-219P devices (based on Marvell's 1.2 GHz Kirkwood chip) is now available, together with installation instructions. The installer is still under development and it will install Debian testing, which is also under development. However, I think it's working pretty well. If you try the installer, please send me feedback.

Bastian Venthur: python-debianbts 1.0 uploaded to unstable

Today I was working all day on python-debianbts 1.0 and uploaded it to unstable a few minutes ago. This version breaks backwards compatibility with previous versions. I removed lots of unneeded old cruft like the HTMLStripper class needed ages ago when I was still using HTML instead of debbugs SOAP interface. A new method get_usertag(email, *tags) was introduced. It returns a dict containing usertag-buglist mappings. If tags are given the dict is limited to matching tags, otherwise all available tags of the given user are returned:
In [1]: import debianbts as bts
In [2]: bts.get_usertag( debian-python@lists.debian.org )
Out[2]:
 dist-packages : [547838, 547832, ..., 547858],
  dpmt-todo : [332913],
  policy : [373301, 373302, ..., 377089],
  python-oldnum : [478467, 478442, ..., 478441],
  python2.1 : [351108, 351110, ..., 351131],
  python2.2 : [351108, 351109, ..., 351161],
  python2.6 : [547838, 547832, ... 547858] 
In [3]: bts.get_usertag( debian-python@lists.debian.org ,  python2.1 ,  python2.2 )
Out[3]:
 python2.1 : [351108, 351110, ..., 351131],
  python2.2 : [351108, 351109, ..., 351161] 
get_bug_log(nr) now returns a list of dicts with the keys: header (string), body (string), msg_num (int) and attachments (list). Before 1.0 it returned a list of Buglog objects. The Bugreport class now supports every information provided by the SOAP interface. I tried to stay as close as possible to the data SOAP provides, so I renamed existing attributes (like Bugreport.nr which is not supported by SOAP but is now Bugreport.bug_num) and also added the quirky ones like: id and bug_nr, found and found_versions, keywords and tags, fixed and fixed_date which always seem to provide the same data. Instead of the Bugreport.value() method which provided a number representing the openness (in terms of: open, closed and archived) and urgency (like: grave, important, ) to make bugreports sortable by their status, the Bugreport class now has a __cmp__ method which makes bugreports comparable. The more open and urgent a bug is, the greater it is. Openness always beats urgency (eg: an open whishlist bug is greater than a closed grave one). While pre 1.0 versions of python-debianbts more or less served the needs of reportbug-ng, it now tries to stay as close as possible to the data provided by SOAP. As a result many parts of reportbug-ng had to be fixed for the new version. I hope this makes python-debianbts more attractive for other projects dealing with Debian s bug tracker. As always: python-debianbts is on github and forks, patches or other kinds of collaboration are very welcome. For the curious here a litte quickstart. it shows how to get all important bugs from reportbug-ng and prints out the bugnumber and summary:
# Get all important bugs of reportbug-ng (returns a list of integers)
bugnrlist = bts.get_bugs("package", "reportbug-ng", "severity", "important")
bugnrlist
[548871, 439203, 542759]
# Get the actual bugreports (returns a list of Bugreport-objects)
bugs = bts.get_status(bugnrlist)
for bug in bugs: print bug.bug_num, bug.subject
    .:
542759 [reportbug-ng] Erroneously reports nothing or repeats previous package s report
439203 Doesn t give any explanations of the severities and what they mean
548871 reportbug-ng: does not check for newer versions before reporting a bug

David Paleino: Bash-completion 1.1 released

Here we go, another release has been cooked for your enjoyment: bash-completion 1.1 is here! This release's development cycle has seen the release of bash4: this introduced a number of bugs, which have been hopefully fixed. Blame us if you find any other Smile Many completions were split out of bash_completion: this prepares the road to dynamic loading of needed completions (in a future major release), resulting in a smaller and faster completion! Furthermore, like each release, many new completions have been added, many old ones were improved, and some bugs have been fixed (more than 20). For more info, look at the changelog file. Still there? Go download bash-completion-1.1! For any bug you might find, please contact us at our mailing list, or directly file it at the Alioth tracker. For the Debian users out there: package coming soon! Happy installation!

8 October 2009

Barry Hawkins: More Expensive and Complicated Equals Better: Carseats and Software

So I finally got around to checking out the TED site; I ve quickly become a fan. One of the first talks I watched was Steven Levitt s child carseats talk. Both the talk and the feedback comments on the TED site reminded me of things I see in software development. Here s the video if you haven t seen it.
<object height="326" width="334"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"><param name="allowFullScreen" value="true"><param name="wmode" value="transparent"><param name="bgColor" value="#ffffff"><param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/StevenLevitt_2005G-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/StevenLevitt-2005G.embed_thumbnail.jpg&amp;vw=320&amp;vh=240&amp;ap=0&amp;ti=30&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=steven_levitt_on_child_carseats;year=2005;theme=unconventional_explanations;theme=presentation_innovation;theme=how_the_mind_works;theme=not_business_as_usual;event=TEDGlobal+2005;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"><embed allowfullscreen="true" bgcolor="#ffffff" flashvars="vu=http://video.ted.com/talks/dynamic/StevenLevitt_2005G-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/StevenLevitt-2005G.embed_thumbnail.jpg&amp;vw=320&amp;vh=240&amp;ap=0&amp;ti=30&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=steven_levitt_on_child_carseats;year=2005;theme=unconventional_explanations;theme=presentation_innovation;theme=how_the_mind_works;theme=not_business_as_usual;event=TEDGlobal+2005;" height="326" pluginspace="http://www.macromedia.com/go/getflashplayer" src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" type="application/x-shockwave-flash" width="334" wmode="transparent"></embed></object>
Steven Levitt shows in his talk how 30 years of data on car crash fatalities imply that carseats do not outperform regular seatbelts for children ages 2 and up. Anyone who has a child or grandchildren will probably bristle at hearing that; as the father of a pre-schooler, it certainly gave me pause. We spent no small amount of time and decent chunk of money in selecting carseats for our child, thinking we had done our best to ensure our child s safety. For that matter, it would be illegal for us not to have done so. To see a decent-sized data sample suggesting my child would be better off in a seatbelt at her age is rather unsettling. By the end of the talk, I took away these observations: So, software professionals, does any of that sound familiar? It reminds me of numerous initiatives over the years that have led us inexorably to the software productivity morass we have slogged through for years now. I suppose the most heinous case study in my own experience would be J2EE and the insistence that it was the solution that any reasonable business application would choose for a platform. (Before you .Net folks jump on that one, DCOM and later the .Net enterprise stack was much the same.) And who hasn t read a benchmark or white paper with seemingly incontrovertible data depicted in highly-polished graphics insisting that Product Y is the one solution to address them all? I noticed that there were comments below the video on its page at the TED site, largely because the negative verbiage of the topmost comment jumped out at me. I took the time to read through them all (there were 36 at the time of this writing), and to my amusement, I saw parallels between them and how people react to questioning and examining our existing practices and means of developing software. See if any of these strike a chord: In recent years I ve been greatly encouraged by the willingness of companies to question whether or not the heavyweight frameworks and technology stacks are what they should be using. Helping companies slough off high-ceremony processes in favor of right-sized process that focuses on delivering the right software in a timely manner has been some of the more rewarding work I ve done the past several years. I think we have an encouraging number of people in the industry who are challenging the more expensive and complicated always equals better mantra. For the brave individuals willing to put these questions to the community at large, I hope you find some comfort in knowing that the resistance and rejection you will encounter is a thing to be expected; you are not alone in that respect. Here s hoping we continue to be open to self-examination, no matter what emotional responses it might provoke or what fear of the future it may stir up within us.

7 October 2009

MJ Ray: Koha.org Desires Poll Results

Here are the results of the Koha Foundation Desires poll. More than 75% of respondants support the Koha foundation/association doing these things:- 1. ensure the ongoing shared governance of the project = 32 out of 35 = 91.43%
2. owning koha.org = 16 out of 18 = 88.89%
3. secure the Koha name = 31 out of 35 = 88.57%
4. Kaitiaki (guardianship) role = 29 out of 35 = 82.86%
5. be owner of the copyright = 27 out of 35 = 77.14% More than half want to see it do something about each of these six:- 6. user/developer conferences/user group meetings = 24 out of 35 = 68.57%
7. funding non sexy but highly necessary jobs such as revamping and optimising old code = 24 out of 35 = 68.57%
8. networking local associations (such as KUDOS, KohaLA) = 12 out of 18 = 66.67%
9. managed democratically by its member (Association more than Foundation) = 11 out of 18 = 61.11%
10. promote OSS solutions in libraries = 21 out of 35 = 60%
11. further development of features = 19 out of 35 = 54.29% Less than half want these five tasks:- 12. usability/ accessibilty studies = 16 out of 35 = 45.71%
13. opensearchportal for all koha installs = 12 out of 35 = 34.29%
14. translations/localisation = 10 out of 35 = 28.57%
15. provide open source solutions for all tasks a library does daily = 10 out of 35 = 28.57%
16. back up your library technically. Local company/volunteers would do the rest = 9 out of 35 = 25.71% Minority activities:- 17. selling an idea to libraries = 6 out of 35 = 17.14%
18. deployment/adoption in developing countries = 5 out of 35 = 14.29%
19. foster new businesses = 4 out of 35 = 11.43%
20. sure up old ones that might be in dire straits = 3 out of 35 = 8.57% You can see the names given by the voters and who voted for what in the Koha Foundation Desires poll online. I hope we ll see the other, wider survey response before the general meeting in a couple of hours. The agenda for it is on wiki.koha.org. If you re involved with koha, I hope to see you there!

5 October 2009

Joerg Jaspert: Back from Taiwan

I m back from Taiwan since Thursday already. It was a nice trip, the whole week and I do like Taiwan. We had a transit stop in Bangkok, pretty annoying useless stop (I m sure the smokers disagree, seeing how fast they got into the smokers lounge :) ). One nice detail at Bangkok airport are the ramps down to the Gates. If you use a wheelchair, you might end up having some fun in case you ever lose control of it. Better don t. The ramp down directly ends in a set of stairs, with nothing between which would stop you. Makes too great a jump down, hehe. We arrived in Taipei Thursday (the 24th) evening and so got rid of our luggage and went out for Dinner. Which was the only time in Taiwan I wasn t happy about the food, only one of the dishes was ok, the rest not for me. But the rest of the group did like em, so maybe it was just me after a long flight. On Friday we had nothing planned, except for Dinner, so took a very relaxed day. Somewhere around noon we went out for food, after that a bit sightseeing around the hostel . There are two attributes that are always true for Taipei:
  1. It s a busy place, lots of people. No matter where.
  2. It has more scooters than you ever saw before. (True, there are two times more scooters than cars).
Oh, and of course there are the same rules of the road than in Mexico: Something might be written on paper, but better don t count on that. Red traffic lights are followed (mostly), and then its whoever is stronger. But if everyone is following this, it does seem to work out. :) Friday evening we had Dinner in a place run by Taiwan aborigines where we met the other people attending the mini-DebConf. Oh, and as it was the third time I had to use them, I was slowly growing accustomed to chopsticks, a thing I was never able to get done before. (Ok, fine, if its the only way to get food and all the others are stealing your food if you can t handle them, now thats a good reason to learn to eat with chopsticks fast :) ). Saturday and Sunday we had the mini-DebConf as part of the ICOS. I took no pictures there, but a number of other people have, you can find them on gallery.debconf.org. It was a pretty nice event where I held one talk about the Debian archive and lead one discussion round about SPI and non-profit organizations behind OpenSource Projects. The slides for the archive talk are available (beware of the kittens!), the SPI stuff only had a small introduction, no slides here. Oh, before I forget it: Taiwan does feel very hot. And we found a nice notice in our hostel Monday til Wednesday was planned for just play the Tourist game and see stuff . There was a plan made to visit the Taipei 101. It turned out that Canonical has an office within that building, as well as Google. So people planned to visit their offices too. Just - what the hell would I want to visit a Canonical office? Or a Google one? Besides that it was much too early in the day and promised to be boring, so h01ger and myself skipped it. Luck did mean it good with us, we managed to get Sabrina as a local guide for the day and so went to the Taipei 101 later. The 101 is a pretty nice building, though I would have loved to be able to get up to the real top. And not just in the upper part. Anyways, we had been lucky and had a pretty nice view from it. Getting up from the 4th floor to the 89th is also an experience one has to take: The elevators go up with 1010m/min, which makes it a 37second trip only. Down is much slower, only 600m/min, pretty boring (though you do feel it more than enough in your stomach. I wouldn t want to do lift-boy job there). After the 101 we went and visited the Lungshan temple and in the evening a night market. As it was Monday the market was empty. (Where empty translates to enough people around that you never ever feel alone. Nor think its dead). Good that, I don t think I want to experience it during weekends when its busy We had a pretty good time there, with all the various little shops. Fun how many old-style game places there are. Like, playing basketball, throwing things at other things to win stuff, all those non-computer-using games. In a country where lots of the high tech comes from this is not exactly what you would expect. On Tuesday our trip continued as good as it started on Monday, as we had the pleasure to keep Sabrina as guide for Tuesday and Wednesday. So our Tuesday started out with a visit to the National Palace Museum. Which has a large enough collection that you can spend multiple days exploring it. We didn t have the time nor memory for all of that, so left it after half a day. Lunch we took in a Japanese restaurant and here it was the first and only time during my Taiwan visit that I used a fork. Well, none of the dishes would have worked otherwise. The afternoon we spent in the Yangming Park, so we actually saw a bit of nature near Taipei. Tuesday did end early for us, as we planned to attend the TOSSUG meeting, where I met some more people from debian.org.tw and had an interesting chat about non-profit organizations in Taiwan, their way of operation and what to think of when trying to create a new one. I ve also got a nice debian.org.tw shirt, but I won t ever be able to wear it. They didn t expect someone that large when producing them, oh well. (Hrr, people, if you make Debian shirts of any kind, always do some XXL too. There might be fat, large guys like me visiting. :) ) Anyway, they have another thing, one which I like very much. They created a map of usergroups of other open source projects in Taiwan. It s a foldable map style, titled FLOSS Community Manual , and a lot of different Projects/Usergroups/ are listed there. While its all written in Chinese and I can t read it, it does list them, then describes what they are/do (I think), gives contact information and further links. The backside of it also seem to list events happening there. You can find more information (so you can read it :) ) at their website. Does seem a very nice idea to take. Sometime during the evening I also managed to pick up a Chinese name. Or better, Andrew did so for me. I don t even know how to type it, so copy&paste it has to be. :) There: . And that is: Wednesday was our last day in Taiwan, unfortunately. We went out of Taipei, visting the Golden Mountain City. Another nice place, with a market and a history, but as our Taxi was leaving at 1630 we didn t have much time for sightseeing. You could spend a lot there. Especially not as we still needed to buy postcards, something people left home always request from one. Tssk. I really enjoyed the time I had there. Not only was the organization of the conference we attended good (especially the mini-DebConf is what I saw. The event around it, while named International, was so much chinese spoken, that I couldn t make much of it), but the details around the whole stay had been nicely taken care off. And then people in general did appear very friendly. Now, it might have to do a bit with me not being exactly their height, but I dont think that is all of it. Even without such a conference as an opportunity I think I will visit the country again, but that time I will have much more time available. Like two or three weeks. And I certainly will see more than Taipei City then. Like the whole country. :) (And hope I am lucky again with local guides :) ). So thank you SLAT, Andrew, Arne, (Sabrina), Rita, (Candy) and all the people who worked for the event which names I forgot. Oh, if you didn t find it yet with all the links, a set of my pictures is available from here.

MJ Ray: Betting on British Broadband Bugfixing

High-speed internet links are something that makes FOSS development much easier, but I m still having reliability problems with my ADSL. A fringe benefit of moving to a more open Linux-based router is that I can see what s going wrong in more detail. But now I have to gamble nearly two hundred pounds in order to get the service providers to continue trying to find the bug! Sorry for the length, but let me explain how bad broadband in rural England is just now Outside the big cities with their cable networks, Company A owns the lines, Company B provides the services and we buy those services from reseller Company C. Sometimes the same company is A and B or B and C, but never all three. Most of the companies who are B won t be C themselves - in other words, they don t sell retail, but they nearly always seem to have a main or preferred retail partner. Company A is nearly always OpenReach, part of BT Group, the telephone monopoly privatised back in the 1980s but still somehow keeping its landline monopoly. Why is that allowed? Company C has been The Phone Co-op for me for the last few years. Back in February, I changed how I bought my services, combining phone and broadband into one purchase. They d been two purchases mainly because I switched my ADSL from Pipex to the co-op at a different time to switching my line to them. As I understand it, this change had the side effect of changing Company B from OpenReach to Opal Telecom. Opal are the provider business behind TalkTalk, hardest to use Broadband ISP 2009. Since the change, I ve been suffering unexplained disconnections, especially in the early evenings and at weekends. I m pretty sure it s Opal s equipment to blame for two reasons:- Firstly, this wasn t happening until Opal became Company B, while Companies A and C are the same as before (when I had a stable but unspectacular 4Mbps connection). Secondly, since changing my router, I can see LCP TermReq being sent by Opal s PPP peers. Opal insist their equipment isn t sending TermReq messages. My Netgear router disagrees, but I can t seem to get anyone to take its pppd debug logs seriously. So, I ve complained to my supplier (Company C), they ve pretty straightforwardly passed it to Company B and I ve jumped through all the bloody silly hoops like using only wired connections to the router (yay, wires across the house), plugging the router into different phone sockets (yay, more wires across the house) and disconnecting everything from the phone sockets so Company A can run some voltage test (yay, uncontactability - just as well other software.coop workers can cover for me). Now the next step is for some phone engineer to call. For this to happen, I have to agree that I will pay GBP 164 if a fault is found on my phone network instead of theirs. If I don t, they will give up trying to find the fault. I don t really see why this is necessary: surely if there was a line fault, it would have shown itself on the old service? Also, the router says the line has no fault and the SNR and Attenuation are both fine but not great. Unlike most people, I ve already had my house phone network tested with professional equipment (yay for network engineers in the co-op trying to avoid the painful state of British broadband bugfixing), but I m still left betting hundreds of pounds on the phone engineers not pointing the finger at my network. What choice do I have? I ve read elsewhere about people giving up on ADSL and switching to mobile internet because then they have only one company to deal with. I can see some attraction in that, but I live in a village with poor mobile service and I suspect the forthcoming T-Mobile/Orange and T-Mobile/Three link-ups will soon make that less straightforward too. A confusopoly is probably more profitable to telephone companies. Do most people bet a couple of hundred pounds to get their broadband fixed? How many broadband faults get ignored at that point? Why don t the retail company Cs have access to enough Company B systems to lead the fault-finding instead of only being able to pass it on to people who seem to give replies that contradict the logs and won t talk directly to customers? Is fixing this A-B-C three-companies-pass-the-buck system a necessity for Digital Britain? Why isn t the government intervening to end the OpenReach monopoly outside the big cities?

2 October 2009

Barry Hawkins: Just When a Wizard Would Have Been Most Useful: Coaching versus Contracting

Then they stopped, and Thorin muttered something about supper, and where shall we get a dry patch to sleep on? Not until then did they notice Gandalf was missing. So far he had come all the way with them, never saying if he was in the adventure or merely keeping them company for a while. He had eaten most, talked most, and laughed most. But now he simply was not there at all! Just when a wizard would have been most useful, too, groaned Dori and Nori (who shared the hobbit s views about regular meals, plenty and often).

- J.R.R. Tokien, The Hobbit

I am very fond of the works of J.R.R. Tolkien; it would not surprise me to find that many of you recognize these words from the second chapter of The Hobbit titled Roast Mutton . It occurred to me recently that there are parallels between Gandalf s role in The Hobbit and that of an Agile coach. Now, before my fellow Tolkien enthusiasts leap on their keyboards, bear with me on this. Know that I am not saying an Agile coach is on par with a wizard (OK, with one of the Istari sent by the Valar, but let s table that so as not to scare off the normal folk, alright?); that should be enough to calm you down. In the excerpt from The Hobbit at the top of the page, Bilbo and the dwarves have run into their first predicament. Note that it s not a particularly difficult situation; they just need to find shelter and partake of some food. Fire would be nice, too, if it could be managed. (Mind you, it s the first day of their journey; they set off mere hours ago fully provisioned and riding on ponies.) It isn t very long before the fledgling group finds itself not only without shelter and food, but in the hands of three rather nasty trolls who are deciding how best to eat the entire group. Gandalf returns once things have gotten out of control, and with some subtle adjustments to the situation, the crisis is averted. Could Gandalf have come back sooner and spared them this entire experience? Perhaps, but in their struggle a few key things happened. First, the group had to work out how to assess tasks at hand and appropriately delegate. To their credit, that effort was partially successful. The most skilled firestarters were assigned to that task, one of the keen-eyed dwarves was assigned to be the lookout. Second, they gathered some field experience that led to the establishment of improved practices, i.e. don t leave the ponies laden with packs when you make camp, particularly if it s all your food. (They lost most of their food that night when the pony carrying it bolted and ran straight into a nearby river later that night.) Third, Bilbo Baggins was called upon to perform his first task as burglar, albeit a fool s errand that landed them in the troll predicament. While Bilbo was wildly under-equipped for his job, he managed to work through it. That experience began a developmental journey that would prepare him for the great things that would be expected of him later on. This was not Gandalf s first adventure, nor was it the first group of people he needed to equip and challenge in order to develop them to a point that they could accomplish their goal. At this point, he s been in Middle-Earth just shy of 2,000 years. He would have been more than capable of walking them through their entire journey, but to what end? Agile coaching is a discipline that aims to help teams develop their own use of methodologies like Scrum and cross-methodology practices like testing, user stories, etc. This means equipping teams with just enough information to strike out on their own for a bit, then letting them run with it rather than dazzle them with one s own mastery so as to appear like the indispensable demigod. Until people struggle with the terse maxims of Agile Software Development, they cannot internalize them. And when the wizard is always around, why bother struggling? One of my greatest frustrations as an Agile coach is how few companies are willing to take a coaching approach with their Agile adoption. They want you to come in and be the demigod as a full-time contractor. Sure, there are fiscal, political, and seemingly practical reasons that they will cite; I chalk most of them up to being excuses for a lack of willingness to embrace what it would take to face the hard task of nurturing what you have. It s seemingly easier to just throw more money at more bodies and hope that somehow things will all work out, and surely if you can stumble upon some superstar to wrangle the mess, you ll eventually be able to browbeat them into becoming a full-time employee. Don t get me wrong; in some ways, I benefit from this dysfunction. From a selfish business standpoint, having a single full-time client is certainly easier than juggling multiple concurrent clients and their schedules. As far as actually accomplishing the aim of my business, however, I think it hinders the mission. One of my aims in working with companies is to be a coach despite being brought in as a contractor. It s certainly possible, though it is more challenging. There s not that natural separation of the coach from the team that forces them to take up the mantle on their own. Few things in my work are more rewarding than having a developer come to me and say, I wasn t really sure this Agile stuff could work, but now, after going through all this, I wouldn t want to go back to the old way of doing things. Much later in the journey of the hobbit and his dwarf companions, Bilbo is again called upon for a challenging task. His response makes me think Gandalf s approach has worked:
Perhaps I have begun to trust my luck more than I used to in the old days he meant last spring before he left his own house, but it seemed centuries ago but anyway I think I will go and have a peep at once and get it over. Now who is coming with me?

- J.R.R. Tokien, The Hobbit

Here s hoping more people will be willing to embrace the challenging, messy, and altogether beneficial task of equipping teams and allowing them to struggle when necessary, even if it means the occasional scuffle with trolls.

Neil Williams: Cold calls and LinuxExpo

Normally I, like most people, ignore cold calls but someone asking about opinions on software caught my interest - doesn't happen often. Turned out to be a study using contact data gleaned from a now dead Linux magazine which, in turn, had been gleaned from the attendance information submitted to a now all-but dead conference: LinuxExpo (the data itself was hidden in the data stream behind those fancy barcodes on the admission badges).

Simple questions about which languages I used, which development environments I used (questioner hadn't heard of either anjuta or geany but then as she also asked me to spell Debian that was probably to be expected) as well as questions about magazines and other sources of technical information. (She had heard of LinuxFormat and El Reg so that wasn't too bad.) More complex questions about why I chose a particular tool which I couldn't really answer in just a few words seeing as Martin has done an entire thesis on the answers to that question!

Got a more interesting response when asked for my opinion on various vendors - 1 to 5 where 1 is rubbish and 5 is superb. Adobe: 1 - got an oooh, why's that? (umm, no source code and better free software alternatives). RedHat: 4 got a slightly surprised tone but Microsoft: 1 got a "Really? why?" - to which the only answer had to be "release all the source code". :-)

Interesting that RedHat was mentioned, along with Google and Sun/Oracle but neither Ubuntu nor Debian.

Gradually found that the inspiration for the (expensive) methodology came from companies trying to get me to use proprietary demos which then turned into subscription-model tools. No go area for me, all my tools will need to remain free software or I'll just find something else. (Got another "why?" to that - with the inevitable "I need the source code to fix the tools" answer.) Also asked "what are your hobbies?" - to which I could only say "You've spent the last 5 minutes asking about my hobby, my paid work is not in IT".

Despite the call ending not 5 minutes ago, I've no memory of who was doing the survey. Still, she seemed impressed that I've been subscribed to LinuxFormat since about issue 3. :-)

1 October 2009

Gunnar Wolf: Strange scanning on my server?

Humm... Has anybody else seen a pattern like this? I am getting a flurry of root login attempts at my main server at the University since yesterday 7:30AM (GMT-5). Now, from the machines I run in the 132.248.0.0/16 network (UNAM), only two listen to the world with ssh at port 22 And yes, it is a very large network, but I am only getting this pattern on one of them (they are on different subnets, quite far apart). They are all attempting to log in as root, with a frequency that varies wildly, but is consistently over three times a minute right now. This is a sample of what I get in my logs: [update] Logs omitted from blog post, as it is too wide and breaks displays for most users. You can download the log file instead. Anyway This comes from all over the world, and all the attempts are made as root (no attempts from unprivileged users). Of course, I have PermitRootLogin to no in /etc/ssh/sshd_config, but I want to understand this as much as possible. Initially it struck me that most of the attempts appeared to come from Europe (quite atypical for the usual botnet distribution), so I passed my logs through:
  1. #!/usr/bin/perl
  2. use Geo::IP;
  3. use IO::File;
  4. use strict;
  5. my ($geoip, $fh, %by_ip, %by_ctry);
  6. $fh = IO::File->new('/tmp/sshd_log');
  7. $geoip=Geo::IP->new(GEOIP_STANDARD);
  8. while (my $lin = <$fh>) next unless $lin =~ /rhost=(\S+)/; $by_ip $1 ++ ;
  9. print " Incidence by IP:\n", "Num Ctry IP\n", ('='x60),"\n";
  10. for my $ip ( sort $by_ip $a <=> $by_ip $b keys %by_ip)
  11. my $ctry = ($ip =~ /^[\d\.]+$/) ?
  12. $geoip->country_code_by_addr($ip) :
  13. $geoip->country_code_by_name($ip);
  14. $by_ctry $ctry ++;
  15. printf "%3d %3s %s\n", $by_ip $ip , $ctry, $ip;
  16. print " Incidence by country:\n", "Num Country\n", "============\n";
  17. map printf "%3d %s\n", $by_ctry $_ , $_
  18. sort $by_ctry $b <=> $by_ctry $a
  19. keys(%by_ctry);
The top countries (where the number of attempts 5) are:
  1. 104 CN
  2. 78 US
  3. 58 BR
  4. 49 DE
  5. 43 PL
  6. 20 ES
  7. 20 IN
  8. 19 RU
  9. 17 CO
  10. 17 UA
  11. 16 IT
  12. 13 AR
  13. 12 ZA
  14. 10 CA
  15. 10 CH
  16. 8 GB
  17. 8 AT
  18. 8 JP
  19. 8 FR
  20. 7 KR
  21. 7 HK
  22. 7 PE
  23. 7 ID
  24. 6 PT
  25. 5 CZ
  26. 5 AU
  27. 5 BE
  28. 5 SE
  29. 5 RO
  30. 5 MX
I am attaching to this post the relevant log (filtering out all the information I could regarding legitimate users) as well as the full output. In case somebody has seen this kind of wormish botnetish behaviour lately please comment. [Update] I have tried getting some data regarding the attacking machines, running a simple nmap -O -vv against a random sample (five machines, I hope I am not being too agressive in anybody's eyes). They all seem to be running some flavor of Linux (according to the OS fingerprinting), but the list of open ports varies wildly I have seen the following:
  1. Not shown: 979 closed ports
  2. PORT STATE SERVICE
  3. 21/tcp open ftp
  4. 22/tcp open ssh
  5. 23/tcp open telnet
  6. 111/tcp open rpcbind
  7. 135/tcp filtered msrpc
  8. 139/tcp filtered netbios-ssn
  9. 445/tcp filtered microsoft-ds
  10. 593/tcp filtered http-rpc-epmap
  11. 992/tcp open telnets
  12. 1025/tcp filtered NFS-or-IIS
  13. 1080/tcp filtered socks
  14. 1433/tcp filtered ms-sql-s
  15. 1434/tcp filtered ms-sql-m
  16. 2049/tcp open nfs
  17. 4242/tcp filtered unknown
  18. 4444/tcp filtered krb524
  19. 6346/tcp filtered gnutella
  20. 6881/tcp filtered bittorrent-tracker
  21. 8888/tcp filtered sun-answerbook
  22. 10000/tcp open snet-sensor-mgmt
  23. 45100/tcp filtered unknown
  24. Device type: general purpose WAP PBX
  25. Running (JUST GUESSING) : Linux 2.6.X 2.4.X (96%), ( )
  26. Not shown: 993 filtered ports
  27. PORT STATE SERVICE
  28. 22/tcp open ssh
  29. 25/tcp open smtp
  30. 80/tcp open http
  31. 443/tcp open https
  32. 444/tcp open snpp
  33. 3389/tcp open ms-term-serv
  34. 4125/tcp closed rww
  35. Device type: general purpose phone WAP router
  36. Running (JUST GUESSING) : Linux 2.6.X (91%), ( )
  37. Not shown: 994 filtered ports
  38. PORT STATE SERVICE
  39. 22/tcp open ssh
  40. 25/tcp closed smtp
  41. 53/tcp closed domain
  42. 80/tcp open http
  43. 113/tcp closed auth
  44. 443/tcp closed https
  45. Device type: general purpose
  46. Running (JUST GUESSING) : Linux 2.6.X (90%)
  47. OS fingerprint not ideal because: Didn't receive UDP response. Please try again with -sSU
  48. Aggressive OS guesses: Linux 2.6.15 - 2.6.26 (90%), Linux 2.6.23 (89%), ( )
  49. Not shown: 982 closed ports
  50. PORT STATE SERVICE
  51. 21/tcp open ftp
  52. 22/tcp open ssh
  53. 37/tcp open time
  54. 80/tcp open http
  55. 113/tcp open auth
  56. 135/tcp filtered msrpc
  57. 139/tcp filtered netbios-ssn
  58. 445/tcp filtered microsoft-ds
  59. 1025/tcp filtered NFS-or-IIS
  60. 1080/tcp filtered socks
  61. 1433/tcp filtered ms-sql-s
  62. 1434/tcp filtered ms-sql-m
  63. 4242/tcp filtered unknown
  64. 4444/tcp filtered krb524
  65. 6346/tcp filtered gnutella
  66. 6881/tcp filtered bittorrent-tracker
  67. 8888/tcp filtered sun-answerbook
  68. 45100/tcp filtered unknown
  69. Device type: general purpose WAP broadband router
  70. Running (JUST GUESSING) : Linux 2.6.X 2.4.X (95%), ( )
  71. Not shown: 994 filtered ports
  72. PORT STATE SERVICE
  73. 22/tcp open ssh
  74. 25/tcp open smtp
  75. 53/tcp open domain
  76. 80/tcp open http
  77. 110/tcp open pop3
  78. 3389/tcp open ms-term-serv
  79. Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
  80. Device type: firewall general purpose
  81. Running: Linux 2.6.X
  82. OS details: Smoothwall firewall (Linux 2.6.16.53), Linux 2.6.13 - 2.6.24, Linux 2.6.16
Of course, it strikes me that several among said machines seem to be Linuxes, but (appear to) run Microsoft services. Oh, and they also have P2P clients.
AttachmentSize
Results of parsing the logs21.58 KB
Relevant portion of the logs1.05 MB

30 September 2009

Zak B. Elep: Off We Go...

Arrived at Manila yesterday. At least in the parts we passed through (Pasay, Makati, and Malate,) everything seems back to normal, with almost no sign of the previous storm's havoc. And nary a raindrop in sight. I'm staying at my cousin Deng's place, as usual with my Manila trips. We found it in a bit of chaos, as ondoy's flooding reached here, recalling the water being almost knee-deep. The water's gone now though, but a lot of things that were not brought up to the apartment's second floor are still wet. Hopefully they will be dry before the next storm comes in... A little history: the last time I lived in Manila was in September 2006, when Orange & Bronze got me for a 3-month contract work on a project. At the time, I was fresh off my GSoC work, and I was raring to whet my skills as a software developer. That job gave me that opportunity, as well as opportunities to meet new friends, participate in a bit of commercial software development, and get used to Manila life again. Then awhile later I got into the Morph Labs bandwagon to become its first Systems Administrator, working from Daet via telecommuting. It was here that I began the long road to unrecovery^H^H^H^H^H learning the ropes of being a sysadmin, building some cool stuff in the process as well as maintaining it. Now, I'm back here in Manila, to work for Orange & Bronze again, but this time in a more permanent position, as Systems Administrator Lead. I look forward to reconnecting with my old pals as well as meet new ones, use the valuable experience I've had over the years in my new job, and get back to the long road of unrecovery^H^H^H^H^H building more cool stuff. And I start doing that tomorrow. Good times ahead.

Dirk Eddelbuettel: RInside release 0.1.1, and a fresh example

Last week's 0.1.0 release of RInside, and the first to have been published on CRAN, still had some issues with builds and use on OS X. Thanks to testing and fixes by Jan de Leeuw, Jeff Horner and particularly Simon Urbanked, things are said to be better now with the new release 0.1.1 which went onto CRAN yesterday. So no new features, but fixes to the main Makefile as well as the Makefile for the examples directory, some minor fixes and editing for the examples. I also added a file THANKS to show some appreciation for the various patches and fixes I have been receiving -- they are appreciated! However, today I committed a new example to SVN archive at R-Forge. It is based on this thread on r-devel. Abhijit Bera tries to do this in C, but to me his questions provide rather clear motivation for showing how much simpler things can be via C++ and the Rcpp classes along with RInside. Using a small example, the task was to pass a weight vector to a portfolio solver from the Rmetrics package fPortfolio and to then access the computed solution. The original poster struggled with access from C to the S4 classes used by fPortfolio and could not set the weights. But when using RInside, we simply pass a C++ vector of weights down to R, solve the problem and pass a solution vector back using the handy evaluation of R expressions:
// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4;  tab-width: 8; -*-
//
// Another simple example inspired by an r-devel mail by Abhijit Bera
//
// Copyright (C) 2009 Dirk Eddelbuettel and GPL'ed
#include "RInside.h"                    // for the embedded R via RInside
#include "Rcpp.h"                       // for the R / Cpp interface used for transfer
#include <iomanip>
int main(int argc, char *argv[])  
    try  
        RInside R(argc, argv);          // create an embedded R instance
        SEXP ans;
        std::string txt = "suppressMessages(library(fPortfolio))";
        if (R.parseEvalQ(txt))          // load library, no return value
            throw std::runtime_error("R cannot evaluate '" + txt + "'");
        txt = "lppData <- 100 * LPP2005.RET[, 1:6]; "
	  "ewSpec <- portfolioSpec(); "
	  "nAssets <- ncol(lppData); ";
        if (R.parseEval(txt, ans))      // prepare problem
            throw std::runtime_error("R cannot evaluate '" + txt + "'");
	const double dvec[6] =   0.1, 0.1, 0.1, 0.1, 0.3, 0.3  ; // choose any weights you want
	const std::vector<double> w(dvec, &dvec[6]);
	R.assign( w, "weightsvec");	// assign STL vector to R's 'weightsvec' variable
	txt = "setWeights(ewSpec) <- weightsvec";
        if (R.parseEvalQ(txt))		// evaluate assignment
            throw std::runtime_error("R cannot evaluate '" + txt + "'");
	txt = "ewPortfolio <- feasiblePortfolio(data = lppData, spec = ewSpec, constraints = \"LongOnly\"); "
	  "print(ewPortfolio); "
	  "vec <- getCovRiskBudgets(ewPortfolio@portfolio)";
        if (R.parseEval(txt, ans))      // assign covRiskBudget weights to ans
            throw std::runtime_error("R cannot evaluate '" + txt + "'");
	RcppVector<double> V(ans);      // convert SEXP variable to an RcppMatrix
	R.parseEval("names(vec)", ans);	// assign columns names to ans
	RcppStringVector names(ans);
	for (int i=0; i<names.size(); i++)  
	  std::cout << std::setw(16) << names(i) << "\t"
		    << std::setw(11) << V(i) << "\n";
         
      catch(std::exception& ex)  
        std::cerr << "Exception caught: " << ex.what() << std::endl;
      catch(...)  
        std::cerr << "Unknown exception caught" << std::endl;
     
    exit(0);
 

29 September 2009

Julian Andres Klode: upgrade failures


Today I wanted to upgrade my sid system again (like I do 1-3 times per day, especially when I have nothing else to do). First of all, I was hit by a bug in APT Could not perform immediate configuration (2) on perl . I worked around it by running the latest git commit of cupt, which then started to upgrade my system. At some stage however, after upgrading parts of perl it seems, the progress stopped and perl complained that it could not find English.pm anymore. I tried to manually install the perl packages using dpkg -i, but this did not work. Then I just thought I should just try to unpack it and run dpkg -x <package> / on the perl packages. Now dpkg -i was working again and I could run dpkg -i on the packages again and continue my upgrade using apt-get. Posted in Debian

26 September 2009

Ana Beatriz Guerrero Lopez: How to get your bugs solved in Debian+KDE

Imagine you have found a bug in your Debian running KDE, a nasty one, and you want to get it resolved. What you should do? This is centered on KDE and Debian but most of it is useful in general. First Case: You have a problem and you have no idea whether it is a bug or not. Even worse, you don t know which package to report it to. This happens more often than you might believe; it even happens to experienced people. Your first step should be to checking user forums and mailing lists [0] to see if someone else has encountered the same issue. You might find that your problem is already known (and maybe easy to solve). In the case that you do not find your problem there, then you can ask for help and post a mail or message explaining your problem. Pick one mailing list or forum board, the one you think is more appropriate, then post your issue there. The most detailed you are about your problem, the bigger is the likelihood of you obtaining help. It could happen that: If you do not get any answer it might be that nobody got into the same problem and they do not how to help you. But it is also possible you were not clear about your problem. Also, you need to be patient; it is unlikely someone will answer your question 2 minutes after you posted it.
If you find out more about your problem, it is a good idea to send another email or post updating your first message. If after 5-7 days you do not get any answer, you can try asking for help in another forum or mailing list. If you are given pointers to what software is causing the problem you can go to the second case. [0]
Mailing lists: Forums: Second case: You know where the problem is. Where you should report your bug? First, you should check in both the Debian and the KDE bug tracking systems [1] to see if the bug is already reported. If that is the case, and you are able to give more information about it, update the bug report. If the bug is not reported, then report it in the KDE bug tracking system if you think it is a problem in the application or in the Debian BTS if it is a packaging problem. If you re not sure what kind of bug it is, you can go to the first case (in the beginning of this post) and ask in the users forums and mailing lists [0]. However, you won t always get it right, and in some cases you will be pointed to the other bug tracking system. Do not take it personally; KDE developers can not help you with packaging problems and Debian packagers can t always help you with the application bugs. It might be that your problem is solved in the development version, so if possible check what is going on in the development version before report. When reporting the problem, give all the details you can about your problem. If you can detail the steps to reproduce the bug, even better. Also, if you are asked for more information, reply the best you can. Somebody is trying to help you. Be nice !:) Also, remember to be patient when reporting bugs or being asked for more information: both KDE and Debian are big projects with a lot of traffic on their respective bug reporting systems (esp. KDE), so sometimes there is not a quick reply from the developers. [1] In Debian, a lot of people report upstream issues in the bug tracking system and they think it is good and what they have to do. The truth is that in a very few cases, such as security bugs or data loss bugs, this is a good idea. But most of the time it is not useful to report problems to the people who can not solve them. Do not expect Debian/KDE maintainers to forward your problem upstream (a problem which they may well not be able to reproduce), then back to you when upstream ask for more information, then back with the information to upstream it is time consuming and we have big (wo)manpower problems. In any case, if you think the bug is very important and should be in the Debian BTS, you can report it in Debian as well as reporting it to KDE. Make sure you mention the KDE bug in the Debian bug. Third case: your problem is not a bug, just a feature request. Until now, I have talked about bugs, when you find something that is clearly not working right in your system. But what about when you want to ask for a new feature in a piece of software? In very few cases this belongs in a Debian wish list. Most feature requests apply upstream and you should tell the about your idea. If you do not tell them, it is unlikely they will implement it. Still, after reporting, you should accept it if upstream thinks it is not a good idea or it is not interested enough to implement it. Post updated on the 30th September, thanks to Rupert Swarbrick for grammar fixes.

25 September 2009

Julian Andres Klode: cupt and how to write package managers


cupt is a new package manager written in Perl by Eugene V. Lyubimkin, who previously contributed to APT. And more than all, the project makes no sense at all. First of all, there is a language issue. Implementing a package manager in Perl has some major drawbacks. One of the features of APT was it being written in a lower-level language (i.e. C++ which really is below Perl), making it possible to write applications like synaptic and python bindings which in turn lead to applications like gnome-app-install or Ubuntu s new Software Store. Furthermore, writing a package manager in Perl means that Distributions such as Emdebian might not be able to use it since they have excluded Perl due to its space requirements. This becomes even more important considering that cupt depends on even more perl libraries. This means that cupt will never be able to replace APT. Secondly, a package manager should not be designed specifically for one distribution. This is another major drawback of cupt and other package managers such as yum or zypper. The smart package manager, written in Python and funded by Canonical Ltd. is an example for a distribution-neutral package manager. Now let s take a look at package management in modern distributions. Usually we have two levels of package managers, the first being tools like dpkg and rpm which take care of installing and removing the packages and level-2 package managers implementing dependency resolvers and package retrieval from remote locations. Recently, distributions started to add a third layer named PackageKit, which shall provide distribution-independent package management user interfaces. The project was well-received by RPM-based distributions, but failed in Debian-based distributions due to not supporting debconf. Furthermore, adding a third layer just increases the possibility of problems. The right way to do package management is a distribution-independent level-2 package manager written in C. The smart project shows us that this is possible although itself fails to meet the lower-level language (C) requirement. That s why I decided to write a package manager in Vala, a GObject-based language which gets converted to C and then compiled. If successful, this project will be able to replace most of the current level-2 package managers and will also provide the same distribution-independence as provided by a level-3 package manager such as PackageKit. It is also easy to create binding for other programming language such as Python or Perl thus enabling application developers to choose the language they like most. The core of this project is a vendor-neutral library, temporarily called libapt (as the project is called APT2 for now). This library contains all the code which is not specific to a vendor i.e. file retrieval, dependency resolver, caches, etc and is then enhanced by several vendor-specific plugins, each implementing a PackageManager (interface to the distribution s level-1 package manager) and a Repository (well, repositories from which you can download packages) interface. We could even enhance the vendor-independent interface to include more details of a repository. Most repositories nowadays consist of 4 components: A meta index (Release files for Debian, repomd.xml for Fedora/openSUSE/etc.), a package index (e.g. Packages files for Debian, *primary.xml.gz on Fedora, etc. ), a source index (e.g Sources files in Debian) and a files index (e.g. Contents-*.gz for Debian). I took a look at the repository formats of Slackware, openSUSE and Fedora and it seems that this concept can be applied to all of them. So maybe all we need are distribution dependent parsers for those files. One of the most important issues with APT is its use of mmap() for the cache. Using mmap() makes it hard to grow the cache, which is sometimes needed. We see a lot of bug reports from people with too small cache sizes. We can circumvent this problem by utilizing an embedded database like SQLite for this, but we would probably loose some speed and it may be harder to maintain a flexible API. We should see what the best option is here, both ways are possible since Vala 0.7.6 includes my patches for adding mmap(), ftruncate(), mremap() and some other functions. An idea to circumvent the mmap() issue is gathering statistics about the relation between the number of repositories and the size of the cache and then using a value which is slightly above the average statistical value. The project is not very mature yet, it only includes basic library functions for downloading files and parsing configuration files, etc. You can find the (MIT licensed) code at http://git.debian.org/?p=users/jak/apt2.git. I also have some local code for repository management and multi-threaded file fetching, but it s just not ready to be merged yet. Posted in APT2, Debian

Gunnar Wolf: Honduras: .hn NIC attacked/intervened by the de-facto government authorities

I was requested to forward this information to as wide an audience as possible. Possibly two months ago the legality/legitimacy of the actions carried out by the Hondurean armed forces, which captured a democratically elected president and without a judicial order or trial process forced him out of the country, starting a de-facto government, was something questionable. Each day, however, it becomes clearer and clearer the Hondureans are suffering a represive military-backed system which cannot be expected to fulfill as a trustable entity to conduct fair, credible elections. I got this message from a Hondurean friend (of course, whose identity I am not divulging) denouncing the government's invasion of the .hn domain name registry, which is handled by the Sustainable Development Network (Red de Desarrollo Sustentable RDS-HN). The National Telecomunications Comission (Comisi n Nacional de Telecomunicaciones, CONATEL) demands all domain name registration under the .hn top-level domain (TLD) to be suspende, and all the lists and databases regarding said TLDs to be handed over, detailing the IP ranges and the responsibles. They did this under the argument that RDS-HN is an Internet Service Provider (which it is not Being a registrar means they are responsible for the well-keeping of public information and of handling a public good, the .hn TLD, not that they provide any kind of regulated service to individuals or organizations), with military personnel disguised as civilians (and who refused to identify themselves). If you are interested, please read further on the text I received straight from my Hondurean contacts (Spanish) (or its unaccurate but often helpful automated translation to English, done through Google Translate) Even though this information is normally accessible via WHOIS and similar services (this only states clearly nobody in CONATEL was able to do what I just did legally and anonymously from my personal workstation), they did it in such a fashion in order to scare the operators and the society. Honduras is going through a very hard process. Whatever happens there will likely impact on the future reactions to the most retrograd and powerful sectors of society in the rest of Latin America. We do our best (even if as non-Hondureans living outside Honduras it only means raising our voices) to avoid the risk of our region going back to the sad, cruel and bloody 1970s history. [update] My friend Mave, who works at NIC Chile, sent as a comment to this post LACTLD's official stand on this regard (Spanish. English version also available). LACTLD (Latin American and the Caribbean ccTLD's Organization) clearly backs RDS-HN and condemns the illegal government's actions.
AttachmentSize
Detailing the intervention attempt of RDS-HN by the de-facto government agents (Spanish)8.61 KB

24 September 2009

Wouter Verhelst: RedHat is so medieval

So there's three systems. One of them runs CentOS 4, the other two run RedHat EL 4. One of the RedHats has been in use for quite a while, but the other two are freshly installed, and would need to have the same functionality as the first, but don't yet, mainly because they miss a number of packages. So we do this.
[wouter@working-host ~]$ rpm -qa --qf "% NAME "   sort -u > working-host
[wouter@CentOS ~]$ rpm -qa --qf "% NAME "   sort -u > CentOS
Next, we compare the two:
diff -u working-host CentOS   grep '^-'   tail -n +2   sed -e 's/^-//' > CentOS-missing
At this point, the file CentOS-missing contains some 403 lines. So how does one install packages on CentOS4?
[root@CentOS ~]# yum install $(cat CentOS-missing)
It starts thinking about it, then after several minutes comes back to me with "foo is already installed in an older version. I can't do what you're asking me"
[root@CentOS ~]# grep foo CentOS-missing
[root@CentOS ~]#
In other words, it decided that, to satisfy one of the dependencies of one of the packages I'm asking it to install, it needs to have some other package installed, too, so adds it to the set. Then figures out that it's already installed, at an older version than what it was trying to install. Then bombs. Okay Wouter, what were you thinking? Surely you can't expect a package manager to suddenly update packages when you ask it to install something else? That would mean upgrading and installing in the same command execution! Oh, the horror. So, okay, we run yum update first. Do you think that fixes it? Of course not! It now comes back with... a message saying that a newer version of what we're trying to install is already installed. Sigh. So I'm now running 'for i in $(cat CentOS-missing); yum -y install $i; done' on this host. Since it takes yum several minutes to resolve dependencies, that means it's going to take a while to have it install 403 packages. The not-yet-working RedHat 4 installation seems to have the exact same problem, except that up2date takes even longer to resolve dependencies, so we're not beyond the 'upgrade' step there yet. I'm sure it will come up with all kinds of other interesting failure modes. Luckily the RedHat-missing file is much smaller (83 packages). How do RedHat users not eat their keyboard in frustration? Note: yes, I'm aware of apt-rpm. Unfortunately, that is not supported on 64bit installations, because apt (in neither its dpkg nor its rpm variant) understands the notion of multiarch. At this time.

22 September 2009

Julien Danjou: Various news: what happend durring summer

It's been a while since I blogged about something. So here's a bunch of things I've done the last month. Holidays Well, I've been in holidays one week. :-P awesome There have been a huge number of changes between 3.3 (released in June) and 3.4 (almost relesed). I wrote a small but very useful object layer on top of Lua, which adds a class/object system a bit like gobject. I've also replaced all the hooks by per-class/object signals. Finally, the awesome Lua basement are cleaner than they were before, and the extendability is improved. How nice. We're trying to release 3.4 (rc2 should be out soon), but the development pace is a bit slower than a year before. We're basically almost 2 months late on what was our previous release rate. Not a big deal however. I've started working on 3.5 slowly. It gonna get amazing new features too. :-) Google Summer Of Code 2009 I've mentored Mariusz Ceier on XCB GSoC. He worked on adding Xinput2 and XKB extensions. And he managed to do this. His work should be imported ASAP, the discussion has started on XCB maling list last week. In exchange, Google offered me (and to every mentor) an awful blue t-shirt! Thanks Google! :-P

19 September 2009

Paul Wise: Delving into personal software freedom

Over on Planet Ubuntu there is a VRMS meme winding down. Usually I tend to think web log aggregator memes are an abomination, however, this one is a little more interesting, especially if Debian folk pick it up. It seems like many Planet Ubuntu posters require some non-free stuff, examples include; graphics and other drivers/firmware, Flash (Gnash/Swfdec aren't there yet), Sun Java (despite OpenJDK), RAR 3.0 archives, LHZ archives (despite jlha), Microsoft fonts (despite ttf-liberation), icon themes, ICC profiles, mind mapping, support for codec DLLs from Windows, VirtualBox drivers for Windows, the Opera web browser, games and other things. For Debian users, the popcon information pretty much confirms the above issues. Some other stuff Debian users use that isn't in Debian include; patented codecs, skype, acroread, the non-free version of VirtualBox and more. Next, lets get in on the getting your meme on part. On my Dell Inspiron 6400 laptop I have following Debian non-free/contrib stuff installed; firmware-iwlwifi, gcc-doc, gcc-doc-base, gcc-4.3-doc, autoconf-doc, gdb-doc, make-doc. On my OpenMoko FreeRunner phone I have nothing installed from Debian non-free/contrib. My wireless router and ADSL modem don't run Debian. The wireless router is a MIPS-based Netgear WGR614L (that is marketed as supporting DD-WRT, OpenWRT and Tomato) so I could conceivably install OpenWRT etc or Debian on it, but I haven't gotten around to that yet. The ADSL modem is a MIPS-based Siemens SpeedStream 4200, but it looks like that would require a significant amount of effort to get running FLOSS. Lets ponder my laptop freeness a bit more. The docs are all FSF-free, but not DFSG-free. It appears they are not DFSG-free because the FSF will not allow 28 words of FSF/GNU advertising to be removed (I'm not sure if Debian or the FSF is more pedantic). I'm not aware of any DFSG-free alternatives to them and I don't particularly care about the restrictions. My wireless card is an Intel 3945ABG mini PCI card that requires the kernel to upload the iwlwifi firmware before it works. Intel refuse to release firmware source code under a free license, citing FCC requirements. I'm not aware of any free firmware (or firmware reverse engineering efforts) for this device so the only alternative is to use wired Ethernet or buy another wireless card. Ethernet wires everywhere would be very inconvenient, so I've been thinking about trying to replace the card or laptop as soon as I am able. Since Atheros has released GPLv2 firmware for its AR9170 802.11n USB chipset I'll probably get something released by Atheros. I wonder why the FCC didn't prevent Atheros from releasing modifiable firmware, perhaps Intel will change their position too. So, what other software is on my laptop apart from Debian? Lets see, nothing on the HD apart from GRUB 2, /boot containing a Linux image/initrd from Debian and the LUKS partition containing swap and the Debian ext3 rootfs. Coreboot laptop support seems to be in the very early stages so I have no alternative to the supplied Dell BIOS at the moment. There is also the CPU microcode and other firmware installed in the various devices on the system, at least the HD, Ethernet, Bluetooth, GPU, DVD drive etc. have some kind of firmware in them. Some of this firmware is updatable using software from the Dell Linux repositories. Lets ponder my phone freeness a bit more. On it I have two copies of the u-boot bootloader (one in the protected NOR flash), u-boot is free. The NAND flash has an old Qt Extended Improved (QTEI) install that I need to copy stuff off and wipe. I also have a 4GB microSD card containing QTEI, Debian, FDOM and SHR. Now that QtMoko has brought QTEI to Debian packages I can probably ditch the QTEI install. I read that OM2009 is being merged into SHR so I can get rid of FDOM. That leaves SHR and Debian/QtMoko (nothing non-free). IIRC SHR does contain some firmware for devices that the OpenMoko FreeRunner doesn't contain, but that will get removed as Linux upstream moves more and more of that into linux-firmware.git. Nothing more on the main flash or microSD storage, so what else? The OpenMoko contains lots of hardware, but the main problematic devices here are the AR6000 Wi-Fi chip and the TI Calypso GSM device. The AR6000 is an issue because the firmware embedded in the chip is non-free and FullMAC so it is hard to add new features like AP mode or improve the connection quality/etc. In addition the firmware currently on the device is a development version of a 2.0 version (1.x was apparently broken) and further development does not seem to be happening yet. Since Atheros GPLed the AR9170 firmware I idly wonder if they could be convinced to release the source and GPL the AR6000 firmware. Perhaps a life-size gold statue of RMS would help there. The GSM device is problematic because of various bugs in the firmware. It apparently is an ARM chip with Nucleos, so perhaps uCLinux or something could be ported to it or written for it. There has been at least one discussion about hacking the GSM firmware (thar be dragons). Searching for some keywords extracted from the end of the first mail in that thread lead to some interesting results indeed. Lets ponder my network freeness a bit more. I should allocate some time to investigate putting Debian on my wireless router and ADSL modem. These generally just work except the ADSL modem reboots itself a lot during the summer. The just-works status of these devices means that messing with them is problematic in case I brick them (luckily I have a spare for the ADSL modem though). I presume OpenWRT and similar have replacements for all the software on my wireless router, drivers may be an issue though. I use gmail for reading email lists, mainly because of intertia, cheapness and because the interface has no GUI FLOSS peers yet (sup-mail exists for console use). TangoGPS, OpenStreetMap and other tools are slowly replacing my use of Google Maps, although I imagine routing will remain an issue for many years yet. One of the tech groups I'm involved in uses Plesk as a hosting control panel, mainly out of intertia, I'm not familiar with any FLOSS replacement though. Some of the upstream FLOSS projects I'm involved with use sourceforge as a hosting platform. There is a certain level of lock-in with SF.net, most of the data is easily exportable though. Lets ponder my software freeness in comparison to Planet Ubuntu posters. I have no freeness issues with drivers at the moment, however firmware seems likely to have freeness issues for a long time to come. I've avoided the need for the Adobe Flash Player by using swfdec and clive for downloading videos for some sites. swfdec works OK for some sites, some that I care about where it doesn't work and clive cannot download video include Vimeo, abc.net.au and sbs.com.au. For Vimeo you can download raw video if you have a login, but I do not, bugmenot is unreliable and Vimeo doesn't seem to be accepting new registrations. SBS I watch on television and ABC I get no reception so I just don't watch it. Java isn't an issue now that OpenJDK exists. I sometimes need to extract RAR 3.0 archives, which I do by copying the files to a friend's Windows machine or using a RAR extractor website. There is no free implementation of a RAR 3.0 extractor yet. I seem to remember that there is source code for a non-free extractor so presumably a clean-room documentation and reimplementation effort could fix this. I don't encounter LHZ files, but jlha-utils is available for if I do. I feel no need to install Microsoft fonts since the Liberation fonts and DejaVu meet my general font needs and Debian contains fonts covering all the scripts of Unicode (except for about half the huge amount of Han characters). In my music collection, only the Voxware audio codec and DigiTrakker MDL files are not supported by Rhythmbox, but I don't really miss those few tracks. I rarely have audio/video codec issues with video from the Internet. I don't have a use for Opera. Thanks in part to the efforts of the Debian games team, games from Debian main (such as warzone2100) satisfy my gaming needs. I just don't use Skype. Overall, I'm generally happy with my level of software freedom. My main strategy for preventing regressions in my software freedom is to just avoid doing things that require non-free software. The most problematic FLOSS issues for me are Flash support (adoption of the HTML5 video tag will resolve this for me), RAR 3.0 support and firmware. Please feel free to contact me with any comments or questions. Happy Software Freedom Day everyone!

Next.

Previous.