Benjamin Mako Hill: Center For Future Irony
My sister just got a lower back tattoo that says "No Regrets." She
does not seem to appreciate the potential for irony. That's too bad. In
my book, that potential is the best reason to get such a tattoo.
My sister just got a lower back tattoo that says "No Regrets." She
does not seem to appreciate the potential for irony. That's too bad. In
my book, that potential is the best reason to get such a tattoo.
The WebKit hackfest is now over, and I think it was a very productive week. Thank you very much to all who attended, to Igalia for organizing the hackfest, and hosting us so well, to Collabora for having sponsored the event, and allowed me to spend the week working on it, and to the GNOME foundation for having payed all of my costs!
The passwords are saved in the GNOME Keyring. It s interesting to point out that GNOME Keyring seems to be unhappy with the number of passwords a browser stores - Xan s daemon was hanging, crashing, and spawning a large number of threads. My daemon decided to take up some 300MB of RAM at one point. It s somewhat funny to see how much a browser pushes the limits of our platform. We are hoping this will improve with the new keyring APIs, and the rewrite that is ongoing. It s nice to see my browser form passwords in seahorse, though, and be able to manage them like any other.
One more thing worth of notice, although this post is already a bit too big: one of the main concerns people had during the Hackfest was on making build time smaller. Touching a single file in WebCore causes a debug build of 10 minutes on my laptop. Evan Martin and Benjamin Otte made a push at removing unnecessary includes from WebCore, and WebKitGTK+ files, which brough the build time down a bit. They end up inspiring Aroben, from Apple, to go even further into this, and remove many includes from files all over WebKit.
Evan was also able to bring linking time down by making it possible to link libwebkit without having to build all the intermediate libraries, which brought build time down to 1 minute, when touching a single file in WebCore. Behdad and I also started looking into breaking WebCore up into lots of shared libraries for Debug builds, since we don t care too much about speed penalties in those. None of these experiments got committed yet, but I am hoping we will be having a better time hacking on WebKitGTK+ in the near future.
It was awesome meeting everyone, by the way! See you around =).
Q. What testing is required? Prior to mass producing or distributing any Licensed Product or component that claims compliance with the HDMI Specification (or allowing someone else to do such activities), each Adopter must test a representative sample for HDMI compliance. First, the Adopter must self test as specified in the then-current HDMI Compliance Test Specification. The HDMI Compliance Test Specification provides a suite of testing procedures, and establishes certain minimum requirements specifying how each HDMI Adopter should test Licensed Products for conformance to the HDMI Specification.Now, I can understand that if you buy any old HDMI cable off Ebay for $1, it may be a knock-off that uses the HDMI logo illegally. But there is no way that the certified $50 Philips cable (still very over-priced, but at least not insane, and discounted to $35) performs any differently to some overpriced Monster model certified to exactly the same standard. The thing that annoyed me most was his analogy to buying a tyre. He stated that "if you walked up to a tyre salesman and I said don't want the Pirelli's, just put the cheap-o tires on my Ferrari" I'd be insane, and thus by extension of that logic I was insane for not buying a Monster cable for my great new Tivo. This analogy is completely flawed and really just dishonest. A Ferrari is much more powerful and goes much faster than a standard car. It is plausible it needs a better engineered tyre to perform adequately given the additional stresses it undergoes. A Tivo doesn't put out any more or any less bits than any other HDMI certified equipment, no matter what you do. If the cable is certified as getting all the bits to the other end under whatever environmental conditions specified by the HDMI people, then it's going to work for the 99% of people with normal requirements. Nobody wants to make a significant investment in a piece of audio-visual equipment and feel they are getting something that isn't optimal. Harvey Norman's use of this understandable consumer sentiment to sell ridiculously over-priced cables that do nothing is extremely disappointing. I'm sure the commissions on these things encourage this behaviour, so it is useless expecting the retailer or individual sales assistant to change their policy to reccommend reasonably priced cables. However, it is really Tivo and other manufactuers who get the raw end of this deal; a $130 cable is over 20% of the price the actual Tivo! That is surely affecting people's purchasing decisions. If Tivo and others included a certified HDMI cable with their device, as they do with component cables, and had "Certified HDMI 1.3 cable included" plastered on the box, it would be a harder sell to explain why the manufactuer would bother shipping a certified cable that is supposedly insufficient, and consumers would hopefully avoid the very distasteful high-pressure theatrics I was subjected to today.

Ten years ago, on December 21st, 1999, Thomas Lange announced the release of version 1.0 of FAI (Fully Automatic Installation).
FAI is a non-interactive system to install, customize and manage Linux systems and software configurations on computers as well as virtual machines and chroot environments, from small networks to large infrastructures and clusters.
It is a tool for mass unattended Linux installation. You can take one or more virgin systems, turn on the power, and after a few minutes, the systems are installed, and completely configured to your exact needs, without any interaction necessary.
The tool was developed at the University of Cologne, because the author was too lazy to install Debian on 16 hosts manually.FAI now also supports the installation of Ubuntu and RPM-based Linux distributions. It is used worldwide in very different environments; even installations on two zSeries z10 mainframes are reported.
A detailed report in German about the 10 years of the FAI project can be found at http://www.informatik.uni-koeln.de/fai/otherdocs/10jahre.html.
Thomas Lange
In more than 11 years in Finland, I've been politically involved in a couple of political parties on the Right side of the spectrum - mainly because those parties tend to favor a free market economy and a work-oriented immigration. In one case, I was invited by fellow immigrants to attend the meetings of their favorite party's English section, because of my expertise on Immigration legislation and common practices. In an other case, a member of the Finnish parliament invited me to participate in his party's immigrant workgroup, which resulted in my getting involved in a number of proactive initiatives and eventually joining that party as a card-carrying member.
Simultaneously, I was approached by no less than 4 Finnish political parties to become a candidate in the municipal elections (in Finland, foreigners who have lived at least 2 years on an A-status residence permit can vote and stand as a candidate in municipal elections).
Despite this, I've come to the conclusion that none of these Finnish political parties is genuine:
On one hand, there's politicians who claim to know everything about the Immigration question and yet their speeches tell an entirely different story than what immigrants experience. On the other hand, there's politicians who complain about the immigrants' lack of participation in political life, but who quickly add that their personal group of supporters is all they're interested in hearing from.
Correlating these facts, it's been found by many politically-involved immigrants that Finnish political parties don't genuinely want to involve immigrants; all they are interested in is acquiring a few extra votes from the immigrant population and in transferring those votes to their party's star Finnish candidate, who often is someone favored by the party's old-timers but disavowed by the majority of grassroot members. In a few more extreme cases, party brasses will sheepishly admit that all they want is a couple of niggers in the candidate list to show a vague sense of adhesion to the multicultural agenda - despite the assurances they have given to often naive immigrant candidates that they "genuinely" hope that they'll be elected.
As it turns out, many immigrants are actively involved at the grassroot level and receiving the praises of their Finnish colleagues for their innovative and proactive initiatives. As a result, genuinely interested Finns have joined forces with active immigrants to launch various initiatives for improving Finland's competitive position in the global economy through a thriving cosmopolitanism and a stronger culture of entrepreneurship. For instance, I am personally involved at several public and private sector initiatives.
Nonetheless, grassroot initiatives can only ever accomplish so much; without the unflinching support of Finland's significant political players, several key elements of these innovative solutions cannot be implemented. However, given the grassroot's frustrating experiences of the political scene, one cannot help but wonder:
Is there any Finnish political party whose actions are coherent with its stated political agenda and in sync with the grassroot initiatives being put forward by the immigrants and their Finnish associates?
I received a number of comments on my "Grrr" post, all of
which missed the point:
Yes, I am aware that there are many more ways to fix this issue
beyond a memcpy. However, the example code is legal and would
not crash the application, if not for the fact that libc
thinks I am doing something wrong. On top of that, this kind of
overflow "protection" only kicks in when the code is compiled with
-O2 rather than with -g -O0. While I am not sure
whether the difference is due to the absense of debugger symbols, or
rather due to the different optimization levels, fact is that software
which runs fine in debugging should also run fine in production.
There are good arguments for compiling all C code with -Wall
-Werror, and I do that as a matter of course for all C software
that I write. However, sometimes automated tools are just wrong
in their compile- or run-time bug detection, in which case such it
should be possible to disable that detection. This is one such case, and
my blog post was more about ranting about the inability to do so, rather
than about the fact that I had to memcpy when in fact there
were other options available.
But yeah, perhaps I should have been clearer about that. Forgive me
for not being clear after having fought with compilers for far too
long.
There is a bit of a fluff online currently about the following clause
in the "jsmin" code (whatever that is):
The software shall be used for good, not evilThis seems to have started when Google rejected a project based on that code due to its license being not free or open source according to their standards, and therefore not welcome anymore. The arguments then quickly degenerated into things like 'when did google stop being against evil'. But those are all besides the point. One of the most important properties of free and open source software is that anyone can use it for any purpose; there are no restrictions to using them. The DFSG (and hence, the OSD which was derived from the DFSG) encode this as follows:
No Discrimination Against Fields of EndeavorYou may think "how is 'evil' a field of endeavor", but that is the wrong question. To "use software for evil" can mean any of a number of things, including "nuclear research", "weapons development", "abortion", or, heck "the cash register in a butchery shop", depending on the ethical and moral framework through which the person writing the license sees the world. The ability to give someone a CD or DVD with a bunch of software on there, being able to tell them that they can just use this in any which way they see fit, is a very strong and important feature of the free and open source community. Every time someone comes up with a clause like the above, however, this ability is diluted somewhat; and if it is readily accepted within the greater free and open source movement, then eventually everyone interested in using a piece of software must first check whether they're not trying to use software that forbids someone's pet evil, and we lose one of the greatest strenghts that does exist for free software, but not for proprietary software. The sad thing is, the jsmin author seems to agree. From a video/transcript on which he talks about his absurd license clause is the following quote:
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
Also about once a year, I get a letter from a lawyer, every year a different lawyer, at a company I don't want to embarrass the company by saying their name, so I'll just say their initials IBMOr, in other words, all you have to do if you want to use this software for evil is set up a second company, tell Douglas that this second company wants to sell software that uses his software to people who might use it for "evil", even though the first company won't, and you're in business. Because Douglas doesn't really oppose evildoers. So the question is, why is that clause in there in the first place? There are only two possibilities; either Douglas didn't really think about those issues, in which case I hope he will one day see the light and remove the clause; or he did, and decided to go ahead and put that clause there anyway. And that would be evil.
[laughter]
saying that they want to use something I wrote. Because I put this on everything I write, now. They want to use something that I wrote in something that they wrote, and they were pretty sure they weren't going to use it for evil, but they couldn't say for sure about their customers. So could I give them a special license for that? Of course. So I wrote back this happened literally two weeks ago "I give permission for IBM, its customers, partners, and minions, to use JSLint for evil."
def setUp(self):
super(TestCase, self).setUp()
self.addDetail("log", content.Content(content.ContentType("text", "plain",
"charset": "utf8" ), lambda:[self._get_log(keep_log_file=True)]))
I ve made a couple of point releases to python-junitxml recently, fixing some minor bugs. I need to figure out how to add the extra data that addDetails permits to the xml output. I suspect its a strict superset and so I ll have to filter stuff down. If anyone knows about similar extensions done to junit s XML format before, please leave a comment 
Several LXDE components have been updated recently in sid. They bring some new features and improve flexibility of customization. Below you have a summary of the most important changes:
'lxsession -s LXDE -e LXDE' rather than 'lxsession -s LXDE' to reflect the changes in lxsession.
$XDG_CURRENT_DESKTOP. The DE name can be used to match desktop files which contain compatible OnlyShowIn and NotShowIn key values.lxsession -s Lubuntu -e LXDE This should load config files from Lubuntu directory, but the DE is still recognized as LXDE by applications.
$XDG_CURRENT_DESKTOP. This means, you can have lxpanel show Gnome menu by the following export XDG_CURRENT_DESKTOP=3DGNOME . Then lxpanel will show gnome applications instead of LXDE ones.
Andrew Lee
logcheck is a neat little log file monitoring tool I use on all of my machines.Which I would expect to produce this logcheck notice:logger -p kern.error This is a test
Unfortunately, that didn't happen on the next scheduled run.Dec 20 15:34:08 hostname username: This is a test
Looking at the output file however, my test message still wasn't there. Either logcheck was broken or one of my rule files was swallowing everything.sudo -u logcheck /usr/sbin/logcheck -o -d >& logcheck.out
This worked, so I then ran logcheck in server mode:logger -p kern.error This is a test
sudo -u logcheck /usr/sbin/logcheck -o -d -p >& logcheck.out
Given that this also worked, it meant that the offending rule file was in /etc/logcheck/ignore.d.workstation/. So I moved all of my custom local-* rule files out of the way and ran logcheck in workstation mode:logger -p kern.error This is a test
sudo -u logcheck /usr/sbin/logcheck -o -d -s >& logcheck.out
Once I verified that this worked, I started to put my local files back one by one until it broke again. Then slowly removed lines from the offending file until it worked.logger -p kern.error This is a test
sudo -u logcheck /usr/sbin/logcheck -o -d -w >& logcheck.out
Escaping the pipe symbols with backslashes solved the problem:path != NULL column != NULL
path != NULL \ \ column != NULL
A new release of Rcpp
awaits inclusion on CRAN and has also
been sent as a .deb to Debian. It will
hit mirrors over the next few days, in the meantime you can get it
here as well.
This release has a couple new features :
cfunction from Oleg Sklyar's excellent
inline package
has been imported and adapted. This means simple C++ programs can be defined in an R character
vector and passed to cfunction which will create a complete file that it then
compiles, links and loads --- giving you access to compiled C++ code right from the R prompt
without having to worry about compiler flags, linker options, ... Better still, we extended
this to not only support Rcpp but
any external library via addtional header / linker arguments that will be passed to R via
the PKG_CPPFLAGS, PKG_CXXFLAGS and PKG_LIBS environment
variables.
RcppSexp for simple int, double or std::string scalars as well as vectors; this is particularly
useful for the inline support.
As someone born in India, I sometimes look around and wonder, Where are the
Indians (and other South Asians) in Free Software?
(I don't mean to exclude South Asians from other countries, so I will lump
us together. I believe that we are more similar than we are different,
although I know more about India than about the rest of South Asia.)
There is no shortage of Indians performing information technology jobs
in the United States. The same is true in academia; the Computing
Research Association uses National Science Foundation data to show
about 15% of computer science bacholor's degrees
are awarded to "Asians or Pacific
Islanders." These are not precise numbers targeted at South Asians in
particular, but they confirm a general feeling that plenty of
technologists in the United States are from that part of the world.
South Asia is quite a populous region, coming in at over one billion people.
It, too, has plenty of technology workers. So much FLOSS conversation happens
in English, and India is well-suited to handle this; English is an
"official language".
Indian academia reports
that there are 350 million English users and about 90 million English speakers.
So let's visually compare
the Debian developers map
for South Asia (over one billion people) and that of New Zealand, a country of four million.
India:
New Zealand:
Rachel was inspired and motivated by BOTH of her little sisters, each completing six GHOP tasks (if memory serves).
GHOP and GSOC has been a game-changer for these girls. Rachel's younger sister is applying to schools such as MIT with an interest in a science major. The youngest daughter now has a Caltech poster on her wall with the intent to eventually attend.
Their proud DadSoon, these stories will be commonplace. Until then, we have work to do. (I'm still researching these topics. If you can help me find any sort of data to help me learn more about diversity in FLOSS, even if it seems like I wouldn't like it, leave a comment.)
struct char str[4]; char sc1; char str2[3]; char sc2; foo __attribute__((packed)); snprintf(foo.str, 5, "%04X", data); foo.sc1 = ';'; snprintf(foo.str2, 4, "%03X", otherdata); foo.sc2 = ';';Yes, I know that both snprintf() calls in the above snippet will overflow their immediate buffer. Yet this code is safe; the network protocol for which this code is written does not actually need nor expect NUL bytes; instead, it wants semicolons. I could of course use a "char foo[9]" rather than a struct as above, but I find this to be slightly more convenient than to count offsets. However, this code does not work with glibc, because the buffer overflow detection kicks in. Solution:
char buf[5]; snprintf(buf, 5, "%04X", data); memcpy(foo.str, buf, 4);In other words: add a stupid and useless memcpy, because someone thinks they're smarter than me. Stupid morons.
jak@hp:~/Desktop/APT2:temp$ capt apt$ help APT2 0.0.20091213 command-line frontend Commands: config dump Dump the configuration config get OPTION Get the given option config set OPTION VALUE Set the given option search EXPRESSION Search for the given expression show PACKAGE Show all versions of the given package sources list Print a list of all sources version Print the version of APT2 apt$ search python-apt build-depends-python-apt - Dummy package to fulfill package dependencies python-apt - Python interface to libapt-pkg python-apt-dbg - Python interface to libapt-pkg (debug extension) python-apt-dev - Python interface to libapt-pkg (development files) python-aptdaemon - Python module for the server and client of aptdaemon python-aptdaemon-gtk - Python GTK+ widgets to run an aptdaemon client apt$Posted in APT2

The IANA port allocated for ManageSieve is 4190/tcp, and the old port used by timsieved and other managesieve software in many distros (2000/tcp) is allocated for Cisco SCCP usage, according to the IANA registry.
Starting with the version 4.38 of the Debian netbase package, the sieve service will be moved from port 2000 to port 4190 in the /etc/services file. This affects to those using Debian Squeeze, and Debian Sid. Debian Etch and Debian Lenny users are NOT affected.
Any installs which used the sieve service name instead of a numeric port number will switch to the new port number as soon as the services are restarted/reloaded, and in some cases, immediately after /etc/services is updated.
This will affect Cyrus IMAP. This may also affect other sieve-enabled software such as DoveCot.
In order to avoid downtime problems, mail cluster administrators using Debian are urged to verify their Cyrus (and probably also DoveCot) installs, and take measures to avoid services moving from port 2000/tcp to port 4190/tcp by surprise in either servers or clients.
It is worth noting that:
/etc/services will only be automatically updated if you never made any modifications to it. Otherwise, you will be presented with a prompt by ucf or dpkg asking you about the changes. Henrique de Moraes Holschuh
Next.