Search Results: "ed"

24 April 2011

Joey Hess: abc

Alphabetical order's not nice
But use it if no others suffice.
Can you think of a way to
Do better?
Each manual page option sorted, not by its
First letter, but
Grouped in a sequence, by sense.
Highly structured, to be scanned at a glance!
I think that is better, and "So Say We All".
Just think of the savings, in time for us all.
Kaleidoscopic knowledge, swirled around, then
Left to sit, on the page alone,
Makes me wish that in kindergarten,
No ABCs graced the top of the classroom.
Only... it's true, in printed
Pages of text,
Queries are satisfied best by
Running ones finger along, in order,
Stopping at the word one desires.
Truth. But...
Until these days of glittering screens and even e-ink pass,
Vacently staring at text all in order, or smudging the screen, is not best.
Wikipedia alphabetical? Surely you jest!
Xenophobia is best hyperlinked; not followed by xylophonists.
Years from now, will we care about
Zany alphabets? (Unicode could take this to a higher plane, but I'll stop here.)
Inspired by: Debian bug #499487 Debian bug #551741 Debian bug #561017 Debian bug #623890 and many more.

Dirk Eddelbuettel: RcppArmadillo 0.2.19

Last Monday, Conrad Sanderson released version 1.2.10 of his most excellent Armadillo templated C++ library for linear algebra; I followed up the same day with version 0.2.19 of our RcppArmadillo wrapper for R based on our Rcpp library. However, the chief gatekeeper at CRAN took a well-deserved vacation last week, and with that it arrived only today on CRAN. The short NEWS file extract follows below containing just Conrad's entry for 1.2.0. No further changes from our side (and the benchmark comparison between R, compiled R and Rcpp for computing a VAR(1) dataset which I blogged about yesterday is only in SVN and will be in the next release.)
0.2.19	2011-04-18
    o	Upgraded to Armadillo version 1.2.0 "Unscrupulous Carbon Emitter"
	  * Added ability to use Blas & Lapack libraries with capitalised
	    function names 
	  * Reduction of pedantic compiler warnings
And courtesy of CRANberries, here are the diffs to the previous release.
 RcppArmadillo-0.2.18/RcppArmadillo/inst/doc/RcppArmadillo-unitTests.tex                     only
 RcppArmadillo-0.2.19/RcppArmadillo/ChangeLog                                                   10 
 RcppArmadillo-0.2.19/RcppArmadillo/DESCRIPTION                                                 10 
 RcppArmadillo-0.2.19/RcppArmadillo/R/fastLm.R                                                   2 
 RcppArmadillo-0.2.19/RcppArmadillo/inst/NEWS                                                   22 
 RcppArmadillo-0.2.19/RcppArmadillo/inst/doc/Makefile                                            5 
 RcppArmadillo-0.2.19/RcppArmadillo/inst/doc/RcppArmadillo-unitTests.pdf                     binary
 RcppArmadillo-0.2.19/RcppArmadillo/inst/doc/unitTests-results/RcppArmadillo-unitTests.html     16 
 RcppArmadillo-0.2.19/RcppArmadillo/inst/doc/unitTests-results/RcppArmadillo-unitTests.txt      40 -
 RcppArmadillo-0.2.19/RcppArmadillo/inst/include/armadillo_bits/arma_ostream_meat.hpp           14 
 RcppArmadillo-0.2.19/RcppArmadillo/inst/include/armadillo_bits/arma_ostream_proto.hpp           4 
 RcppArmadillo-0.2.19/RcppArmadillo/inst/include/armadillo_bits/arma_version.hpp                 6 
 RcppArmadillo-0.2.19/RcppArmadillo/inst/include/armadillo_bits/auxlib_meat.hpp                128 +--
 RcppArmadillo-0.2.19/RcppArmadillo/inst/include/armadillo_bits/blas_proto.hpp                  92 +-
 RcppArmadillo-0.2.19/RcppArmadillo/inst/include/armadillo_bits/compiler_setup.hpp              12 
 RcppArmadillo-0.2.19/RcppArmadillo/inst/include/armadillo_bits/config.hpp                       3 
 RcppArmadillo-0.2.19/RcppArmadillo/inst/include/armadillo_bits/constants.hpp                   20 
 RcppArmadillo-0.2.19/RcppArmadillo/inst/include/armadillo_bits/diskio_meat.hpp                  2 
 RcppArmadillo-0.2.19/RcppArmadillo/inst/include/armadillo_bits/lapack_proto.hpp               344 ++++++----
 19 files changed, 460 insertions(+), 270 deletions(-)
More information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.

Kai Wasserb ch: S3TC-compressed textures with Wine

Yesterday I received another report for a game, which wasn't working with the wine-unstable packages built by me. The reason why the reporter wrote to me and suspected a bug in my builds was, that the same game worked on the system of a friend (using a different distribution). After some exchanged e-mails it became apparent that this was yet another installment of S3TC-compressed textures. And as this wasn't the first time I got such reports, I thought I blog about the solution today. As S3TC is one of those patent-encumbered texture compression formats (don't ask me why one can get a patent for such things, it's, IMHO, a very bad thing and we'd be better off, with a lot less patents), Mesa doesn't support it out of the box. You need to install an additional library or the proprietary driver for your graphics card. Before installing the library, make sure, that it is legal in your jurisdiction (i.e. check whether the patent is valid in your jurisdiction). If that is the case, you can install libtxc-dxtn0 from the Debian Multimedia repository or compile it yourself from source. If the patent is valid in your jurisdiction, you're most likely required to get a license from the rights holder for using the library, but I'm no lawyer so you might want to consult one prior to making your decision. For amd64 users, there is an additional caveat: Wine needs the 32 bit variant installed. At the moment, this means downloading the i386 package from debian-multimedia.org and extracting the library to /usr/lib32. For users with the r600c/g driver it gets (currently) really tricky, as there is no fully working support for loading libtxc_dxtn.so (current status is WIP). Here the only solution I know, would be to use the proprietary driver or writing patches for r600g (last option preferred *g*).

Craig Small: Flash sometimes doesn t like SSL

I found a strange problem recently. Using Gallery I could always upload new pictures but someone else using Vista could not upload any pictures. It didn t matter if she used IE or Firefox, every single upload made Gallery come up with error #2038 (IO). I could say that anyone that uses Vista deserves everything they get, but that would be a little churlish (if true). A few searches showed that this basically gallery saying something bad happened with your upload . No, really? You mean it s not supposed to be a big red box and no uploaded file? It s not the world s most useful error message. What got me onto the right path was a message on the gallery forums though it was the other way around. Gallery uses a flash uploader which and this is the same flash if you use Firefox or IE. It seems it doesn t like strange SSL certificates, such as chained certificates like that site uses (and my site too). No doubt there is probably some work-around or setting to fix it, but being Vista its probably buried in 20 menu items under some obscure reference. Setting up the gallery under a non-ssl site fixed it. Perhaps more correctly it was a work-around.

Jonathan McDowell: onak 0.4.0 released

I don't normally mention the PGP keyserver I've been working on for the past 9 years, but there are a few keyserver related comments I've been meaning to make that prompt me to do so this time. onak is the keyserver powering the.earth.li (AKA wwwkeys.uk.pgp.net). Back in February I finally enabled hkps (HKP over SSL) access to it as I promised dkg I would do back at DebConf10. I also turned on IPv6. Most of the active keyservers out there are running SKS. I think there might be a few OpenPKSD instances as well. If you're running SKS please ensure that you have at least one address in your mailsync file, so that you send key updates to the non SKS keyservers out there - it seems that SKS requires the receiving keyserver to send out updates via email, rather than each server sending out any updates it processes to its mailsync peers. Feel free to add pgp-public-keys at earth.li - no need to contact me to do so (but you can drop me a line if you want me to send you mail updates back). Also in the past there was a pgp-keyserver-folk mailing list, originally on flame.org, then on alt.org. Both of these have been dead for a while. I created a local pgp-keyserver-folk some time ago, but never publicised it. I believe the SKS lists are fairly active, but limited to that community, so it would be nice to have somewhere that was keyserver agnostic that admins could talk to each other. Anyway. onak 0.4.0. Largely fixes to keyd, which is a backend daemon that handles talking to the key database. This is particularly useful for large/busy keyservers. Also a couple of fixes that make the db4 backend a lot more reliable (especially with queries that return lots of results). And various other minor cleanups. If you're one of the 3 people running it you probably want to upgrade; updated packages have already been uploaded to Debian unstable.

John Goerzen: Adventure: 1 dad, 2 boys, and lots of trains

Terah and I recently decided that each of us could use a day off of not having to do work or supervise boys. Yesterday I had the day off work so that was mine. I took my Kindle, along with its Gutenberg copy of War and Peace, which yes, I m reading for fun. I slept in a bit, then got breakfast and sat down at Botanica, the Wichita Gardens with the Kindle for awhile. That was a nice way to spend the morning. Today was Terah s day off. Initially I thought of taking the boys to The Cosmosphere, one of the world s premier space museums, or to the Kansas Aviation Museum. But then I realized that the Midland Railway, a historic excursion line in Baldwin City, KS, was having their first train trip of the year. And it s the Easter special: you take the train a few miles out of town, get off, the kids do an Easter egg hunt, then also get to get their picture taken with the Easter bunny. Kid paradise, right? What could be better? So this is how my alarm came to be set for 5:15 on a Saturday morning. Oliver woke up early, but I had to get Jacob up. He was groggy, trying to cover his face and ears, and annoyed at me for trying to wake him up. Until I said, Jacob, it s time to get ready for the car trip to the train ride. Can you go get dressed for the day? Silence. Then about 5 seconds later, he jumped up, said, OK dad, I will do it, and he did. We drove our 2.5 hours. I had set out a non-dirty breakfast in the car for them the night before, so they munched while we drove. Then had to wait in a huge line for our tickets. An hour later we had them got the last 3 tickets for the first departure of the day, 10AM and ran to get on the train before it left. Jacob and Oliver both got very quiet. Sometimes Jacob especially does that when he s very excited about things. He doesn t always look it right then, but I knew I d be hearing about it later. He had his face almost pressed to the window the whole way. IMG_5685.JPG Oh, and yes, he dressed himself and I didn t check to make sure he had the correct shirt, or that it wasn t on inside-out, until it was too late. Oops. We rode in an ex-CP car built in 1936. One of the cars on the train was built in the 1890s quite some neat equipment. Anyhow, next came the hunt. There were two large lawns covered in eggs, separated by age group. Jacob and Oliver were in the younger group, but still only got a few eggs (there were lots of other parents, uhm, helping their kids by picking up eggs the kids were too slow to get and putting them in baskets ) But they were thrilled with the experience so that s what counts. They moved the locomotive to the other end of the train for the trip back using an adjacent track. Lots of the kids watched them couple it back on. Jacob and Oliver were particularly interested nothing could have distracted them from watching that train though they didn t particularly like the noise of the horn. IMG_5655.JPG On the way back, someone in an Easter bunny suit was on the train for pictures. I took the boys there. They usually refuse to sit on laps of Santa and such, so I didn t figure much success. They actually agreed to do it. And despite their expressions in this photo, Jacob later told me over and over how much fun it was to be with the Easter bunny. IMG_5671.JPG After we got back, we headed for the car. Jacob insisted on carrying his own Easter bag, and predictably wound up carrying it upside down for awhile. So his bag had some grass in it from picking the candy back up. Oliver discovered some rocks by a ditch and had fun throwing them in to make a splash, so we paused for that for awhile. By this point it was about noon. So at this point, what does a dad who has managed to keep two active boys in line for an hour, help them with an egg hunt and giant rabbit, and keep them from falling into the ditch they re throwing rocks into, do? Say that it s time to eat lunch and then head for home so we can be there in time for supper? Or go for MORE ADVENTURE? I said, Jacob, how would you like to eat lunch inside a big train station in Kansas City? Pause for a couple of seconds to think. YEAH! I have never had lunch in a train station before! Let s go! Shall we go NOW? So I gave them the leftover breakfast to eat during the hour drive on towards the beautiful Kansas City Union Station. It s one of the few grand American train stations that survives intact, and is just stunning. Jacob and Oliver both fell asleep on the way there. We parked, walked inside, and Jacob just froze. Dad WOW! That ceiling is SO HIGH! I can t even reach it! He then raised his hand as high as it would go and said, See dad, it is so high I can t touch it! (Most ceilings are, but this one is indeed much, much taller than most.) We ate lunch in the second level of a restaurant right in the Grand Hall, which Jacob really enjoyed. Here s Jacob, annoyed that I pulled out the camera again: IMG_5693.JPG Then we went exploring for an hour. Jacob talked about his adventure . We went up the elevators and checked out the balconies. Then we found the Model Railroad Experience. And oh my. The boys were visibly the most excited they had been all day. Oliver just froze at the spot he walked through the door, not caring to move and see the rest of the exhibit because he was so fascinated by what he already saw. There was a huge layout in the middle of the room, and smaller ones in adjacent rooms. We finally made our way there, and Oliver just ran round and round one of them, following a train, excitedly yelling There it is! There it is! There it is! Here s a photo from the big layout: IMG_5706.JPG Jacob cried when it was time to go, but I had promised them some dessert before we left, so after a bite of ice cream we were on our way. On the way home, every 15 minutes or so, Jacob would make a remark like this: Dad, the train ride was SO fun! or Dad, I really liked Kansas City Union Station! and so forth, naming every highlight of the day for him several times over: the Easter bunny, the egg hunt, train ride, and everything about Union Station. On the way home, we stopped at our favorite restaurant in Emporia: BobbyD s Merchant St. BBQ. This is always a hit for everyone in the family. A down-home place that has excellent food, is not far off our path, and never seems to have a wait. Yum.

Ben Hutchings: Upcoming changes in Debian Linux packages for i386

The major upcoming configuration change in Linux 2.6.39 is to get rid of the '686' flavour. This may be surprising, because it's the most widely used flavour of the 4 we have a present:
Name Minimum CPU features Maximum total CPU threads Physical address space
486 486-class 1 4 GiB
686 686-class; CMOV instruction 32 4 GiB
686-bigmem 686-class; PAE 32 64 GiB
amd64 x86-64 512 64 TiB
However, the physical address limitation means that an increasing proportion of new PCs and the majority of PC servers need the '686-bigmem' flavour. Even those that have less than 4 GiB RAM do support PAE and can run the '686-bigmem' flavour. There is a small cost (up to about 0.1% of RAM) in the use of larger hardware page tables. There is also an important benefit on recent processors: the larger page table entries include an NX bit (also known as XD) which provides protection against some buffer overflow attacks, both in the kernel and in user-space.. Q: What about 686 processors without PAE? There are only a few 686-class processors that support CMOV but not PAE: most Intel Pentium M models, the VIA C3 'Nehemiah' and the AMD Geode LX. These also all lack SMP support, which means the '486' flavour is suitable for them. Some benchmarking on two of those - a Pentium M model 745 and a C3 'Nehemiah' - indicated that they run the '486' flavour slightly faster than the '686' flavour. It appears that the performance gain from using plain uniprocessor code (rather than SMP-alternatives, which are patched with NOPs on uniprocessor systems) outweighs the performance loss from avoiding use of some newer instructions. Q: Why get rid of '686' but keep the 'amd64' flavour? We intend to get rid of 'amd64' too, but we need to ensure that upgrades from linux-image-2.6-amd64:i386 to linux-image-2.6-amd64:amd64 work properly. Q: If '686-bigmem' will be the default, isn't 'bigmem' redundant? Yes, it is. Therefore '686-bigmem' will be renamed to '686-pae'.

23 April 2011

Iustin Pop: Second system effect

A recent email from a user of one of my small software tools prompted me to write this entry If you read Wikipedia's page on Second system effect, it doesn't say much and it's hard to internalise what it means. Some other resources describe it better, but actually learning it first-hand is, shall we say, enlightening. Fortunately, I learned this in my spare time, and not at work. Back in 2002, I started working on a small tool (bakonf) to basically backup /etc and generate a tar archive out of it. It had some other features of course that made it a bit more useful than tar c /etc, but not many. It worked well and I was using it to make incremental dumps of server configuration ready to write to a CD on a few servers. A while later (around a year or so), I came to the conclusion that just having a tar archive is not enough, and rather one would want to be able to check differences between the filesystem and the archive, and ideally between multiple servers configurations (note, this was before DVCSs) online. I started working on cfvers in my free time and initially made reasonable progress. However, I didn't know to hold back from changing the scope and features, so actual progress in the form of a beta release was always postponed. Then came changes to the transport protocol, to the structure of the app, etc., all the fun. Note that this was in my free time, done in bursts of work in a month, then a few months with no work at all, so not too much work overall. Still, I slowly realised that this will go nowhere, so at the end of 2006 I finally gave up on developing it and marked the project as obsolete. However, bakonf is still doing its job, and I've done a few small commits to it in order to add compatibility with Python 3.x as recent as last year. I got an email about it from a user at the start of this year, so it definitely outlived its supposed replacement. Hah! Overall, it was a great lesson. Maybe it wasn't just second system effect, but also not enough effort invested by me, or bad planning, so on. But for me it drove the point home that writing the second version of something is filled with dangerous decisions

Lars Wirzenius: python-tracing 0.3

I've just made my first upload to PyPI, the Python Package Index, which is the closest thing to CPAN that Python has. I chose tracing as my first package, since it is small and simple and has no dependencies outside the standard library. tracing provides a couple of functions for logging debug messages, and allows the user to enable or disable logging for particular code modules. It is sometimes practical to add a lot of debugging log messages to a program, but having them enabled all the time results in very large log files. Also, logging that much takes quite a bit of time. This module provides a way to turn such debugging or tracing messages on and off, based on the filename they occur in. The logging can that be left in the code, and only enabled when it is needed, for example with a command line option. The actual logging happens via logging.debug.

Ben Hutchings: Recent changes in Debian Linux packages

Linux 2.6.38 and 2.6.39 As you've probably seen, the testing suite finally got a new upstream kernel version (Linux 2.6.38) and is currently synchronised with unstable. I'm just about to upload a new version of linux-2.6 based on upstream stable update 2.6.38.4. Linux 2.6.39 is well on its way to release, so 2.6.39-rc4 should soon be in experimental. The Debian source package will add support for the new armhf (ARM with hardware floating-point) architecture. Splitting linux-2.6 The linux-base package, introduced to handle transitions and other support functions for 'image' packages, is now built from a separate source package. It won't be changed very often, so you will no longer need to upgrade linux-base every time you upgrade an 'image' package. (This doesn't apply within 'squeeze', but I may have a way to work around that.) The firmware-linux-free package, containing a few firmware and configuration blobs from Linux that are DFSG-compliant, is also now built from a separate source package. These blobs have not changed for a very long time, so again you will no longer be recommended to upgrade this package every time you upgrade an 'image' package. Secondly, this allows us to remove the entire 'firmware' directory from the upstream source rather than carefully removing and patching to leave just the DFSG-compliant bits. Wireless regulations The '2.4 GHz' and '5 GHz' ISM bands used for wifi are not defined identically around the world. The exact frequency ranges and maximum permitted power levels vary between countries. Radio equipment manufacturers have a legal responsibility to ensure their equipment operates within these regulations. Since it is expensive to implement such regulations in hardware (including many different variants for different regions), these restrictions are usually implemented in the driver using a country code retrieved from the hardware's EEPROM or flash. So this is now our responsibility. We need to be able to look up regulations by country codes, and we also need to support the case where a device sold in one country is used in another country with tighter regulations. For some time, the wifi configuration library (cfg80211) included regulatory information for a small number of countries and regions. However, the default since Linux 2.6.34 has been to build-in only the 'world' domain (intersection of all the restrictions) and to request information from user-space. In Debian, we didn't have anything to provide this information, so for example channels 12-13 became unavailable for users in Europe. The regulatory information should be provided by the Central Regulatory Domain Agent (CRDA) from a current database. These are now packaged as crda and wireless-regdb respectively. Drivers that do not use cfg80211 (mostly those from the 'staging' area) will not be affected, and may or may not implement correct regulations. When you travel to another country or use an imported wifi device with an incorrect country code (I hear 'CN' is common), you can use iw reg set to ensure that your wifi devices operate within the regulations of the country you are in. Set the REGDOMAIN variable in /etc/default/crda to make this persistent. These will be intersected with the regulations specified by the hardware.

Dirk Eddelbuettel: Another nice Rcpp example

While preparing my slides for the Rcpp workshop this Thursday, I had wondered about more nice examples motivating Rcpp. So I posed a quick question on the rcpp-devel list. And I received a few friendly answers. My favourite, so far, was a suggestion by Lance Bachmeier who sent me a short script which used both R and C++ (via Rcpp) to simulate a first-order vector autoregressive process (and he ensured me that it worked well enough on his graduate students). It is indeed a great example as it involves (simple) matrix multiplication in an iterative fashion. Which makes it a great example not only for Rcpp but also for our RcppArmadillo package (which wraps Conrad Sanderson's wonderful Armadillo C++ templated library for linear algebra and more). And at the same time, we can also add another look at the new and shiny R compiler I also blogged about recently. So Lance and I iterated over this a little more over email, and I now added this as a new (and initial) example file in the RcppArmadillo SVN repo. (As an aside: The newest version 0.2.19 of RcppArmadillo has been sitting in incoming at CRAN since earlier in the week while the archive maintainer takes a well-deserved vacation. It should hit the public archive within a few days, and is otherwise available too from my site.) So let's walk through the example:
R> ## parameter and error terms used throughout
R> a <- matrix(c(0.5,0.1,0.1,0.5),nrow=2)
R> e <- matrix(rnorm(10000),ncol=2)
R> ## Let's start with the R version
R> rSim <- function(coeff, errors)  
+   simdata <- matrix(0, nrow(errors), ncol(errors))
+   for (row in 2:nrow(errors))  
+     simdata[row,] = coeff %*% simdata[(row-1),] + errors[row,]
+    
+   return(simdata)
+  
R> rData <- rSim(a, e)                     # generated by R
This starts with a simple enough loop. After skipping the first row, each iteration multiplies the previous row with the parameters and adds error terms. We can then turn to the R compiler:
R> ## Now let's load the R compiler (requires R 2.13 or later)
R> suppressMessages(require(compiler))
R> compRsim <- cmpfun(rSim)
R> compRData <- compRsim(a,e)              # generated by R 'compiled'
R> stopifnot(all.equal(rData, compRData))  # checking results
Nice and easy: We load the compiler package, create a compiled function and use it. We check the results and surely enough find them to be identical. With that, time to turn to C++ using Armadillo via RcppArmadillo:
R> ## Now load 'inline' to compile C++ code on the fly
R> suppressMessages(require(inline))
R> code <- '
+   arma::mat coeff = Rcpp::as<arma::mat>(a);
+   arma::mat errors = Rcpp::as<arma::mat>(e);
+   int m = errors.n_rows; int n = errors.n_cols;
+   arma::mat simdata(m,n);
+   simdata.row(0) = arma::zeros<arma::mat>(1,n);
+   for (int row=1; row<m; row++)  
+     simdata.row(row) = simdata.row(row-1)*trans(coeff)+errors.row(row);
+    
+   return Rcpp::wrap(simdata);
+ '
R> ## create the compiled function
R> rcppSim <- cxxfunction(signature(a="numeric",e="numeric"),
+                        code,plugin="RcppArmadillo")
R> rcppData <- rcppSim(a,e)                # generated by C++ code
R> stopifnot(all.equal(rData, rcppData))   # checking results
Here we load the inline package to compile, link and load C++ snippets. We define a short C++ function in the code variable, declare a signature taking a and e as before and ask cxxfunction() to deploy the plugin for RcppArmadillo so that it and Rcpp are found during build. With that, we have a compiled function to generate data, and we once again check the result. The C++ code is pretty straightforward as well. We can instatiate Armadillo matrices directly from the R objects we pass down; we then run a similar loop building the result row by row. Now, with all the build-up, here is the final timing comparison, using the rbenchmark package:
R> ## now load the rbenchmark package and compare all three
R> suppressMessages(library(rbenchmark))
R> res <- benchmark(rcppSim(a,e),
+                  rSim(a,e),
+                  compRsim(a,e),
+                  columns=c("test", "replications", "elapsed",
+                            "relative", "user.self", "sys.self"),
+                  order="relative")
R> print(res)
            test replications elapsed relative user.self sys.self
1  rcppSim(a, e)          100   0.038   1.0000      0.04        0
3 compRsim(a, e)          100   2.011  52.9211      2.01        0
2     rSim(a, e)          100   4.148 109.1579      4.14        0
So in a real-world example involving looping and some algebra (which is of course already done by BLAS and LAPACK libraries), the new R compiler improves by more than a factor of two, cutting time from 4.14 seconds down to about 2 seconds. Yet, this still leaves the C++ solution, clocking in at a mere 38 milliseconds, ahead by a factor of over fifty relative to the new R compiler And compared to just R itself, the simple solution involving Rcpp and RcppArmadillo is almost 110 times faster. As I mentioned, I quite like this example ;-).

Russell Coker: Links April 2011

Sebastian Thrun gave an interesting TED talk about the Google driverless car project and explains how his main aim is to avoid all the needless road deaths that are due to human error [1]. Finally a good use for the Google street-view type data! AnnMarie Thomas gave an interesting short TED talk about using play-dough to make circuits [2]. There are two recipies for play-dough, the one made with salt conducts well and the one made with sugar conducts poorly. That allows making wires with salty dough and insulators with the sugar dough. John Robb has published an interesting article about a Chinese fake revolutionary group that is triggering a backlash from Chinese security forces [3]. Even if this isn t accurate it seems like a good way to make people hate their local security forces and thus demand political change. Chris Rock made an interesting observation, we aren t making progress on racial issues, white people are getting less crazy [4]. Red Hill has an interesting article about 486 motherboards with fake cache chips that were sold in the 90 s [5]. One thing I disagree with is that they blame the customers for seeking low prices. When a white-box PC cost $2000 (which is $3000 in today s money) it made sense to try and get the cheapest option possible. Now that major department stores sell name-brand laptops for $400 it really makes sense to buy name-brand quality rather than white-box rubbish. IHollaBack.org is an interesting project to combat street harassment of women [6]. Psychology Today has an interesting article by Joe Navarro (former FBI counter-intelligence agent and author) about the serious implications of attempting to detect lies [7]. His main point is that most people over-estimate their ability to detect lies and because the legal system believes such claims from law enforcement officers many innocent people get found guilty and criminals get away free! Cory Doctorow wrote an informative article about the ways of persuading people to pay for content that can be obtained for free [8]. The main message seems to be that the big media companies are doing things the wrong way in everything that they do. The news satire site CBS Breaking News has an interesting about page explaining their mission [9]. They stopped their automated disaster generator after the Japanese Tsunami, while I can understand them wanting to keep some good taste and be sympathetic to the plight of the Japanese people it seems that they have forgotten that there is always a disaster somewhere. The typical bus plunge is just as bad as the Tsunami to the people on the bus and their relatives! Psychology Today has an interesting blog post by Satoshi Kanazawa explaining how criminals don t specialise, the psychological factors that make someone likely to commit one crime will make them likely to commit others, this makes it logical to collect DNA samples from all criminals [10]. Psychology Today has an interesting blog post by Dave Niose about a landmark US legal case in 1948 where Vashti McCollum had to escalate to the Supreme Court to allow her children to receive secular education [11]. We need something like this in Australia now as the religious extremists are going too far in indoctrinating children. Sam Richards gave a TED talk titled A Radical Experiment in Empathy which aims to teach Americans how to understand the way that people in the middle-east feel [12]. The comments suggest that his talk wasn t successful. Of course the fact that empathy doesn t have a clear definition in the English language doesn t help, and the fact that most people don t seem to interpret it in any way that corresponds to any dictionary and that most people seem unable to define what they mean by it makes things worse. At the moment I can t think of any examples of successfully teaching empathy to unwilling people. The people who want to learn will do so eventually, you can have some good success in helping them to learn faster. Kathryn Schulz gave an interesting TED talk about Being Wrong [13]. One interesting point that she makes concerns the way that people assume that people who disagree are ignorant, stupid, or evil instead of just having a different set of data or a different understanding of the same data. Of course it is possible for someone to be ignorant/stupid/evil AND have a different understanding. Marcin Jakubowski gave an inspiring TED talk about his project to develop free blueprints that allow anyone to create all machines needed to sustain civilisation with minimal cost [14]. His Open Source Ecology project has a blog and a wiki with blueprints and files for CAD/CAM [15]. Dave Meslin gave an insightful TED talk about apathy in the political process [16]. Among other things he compares council notices that supposedly request citizen input with adverts for running shoes which encourage people to buy them. One thing he didn t mention is the difference that technology can make, a short council advert with a QR code is probably a lot more useful than the current dense text-based adverts for today s audience.

22 April 2011

Steve McIntyre: Bias in the news

Apologies for yet more politics; normal-ish service will be resumed shortly, I hope. I've just put the following into the "BBC News website feedback" form, but I doubt it will have any impact. Quoting it here for the record... The BBC news website appears to be showing a systemic bias over the AV referendum. For the last few weeks, there has been regular coverage of the referendum and it seems that there has been the usual blind adherence to "balance" - every story about AV has included some of the (incorrect, unscientific, even hate-filled) propaganda from the "no to AV" campaign without critique or analysis. It's difficult to see any justification for this except deliberate editorial bias, but I don't imagine that there's much that can be done about that. However, right now on the BBC News front page at http://www.bbc.co.uk/news/ I can see that there is a link "Referendum views" that points to yet another opinion piece from a "No" campaigner (Frederick Forsyth). I only see a single view here, not the plural "views" suggested. I don't see any positive view for AV promoted from the front page at all, nor any link from this puff piece to the other articles that have been written in the recent past. Looking further, I can see that there *has*, in fact, been a positive piece on the News Front Page today (from Billy Bragg) but there are no visible links to it any more. Both articles were posted/updated at the same time this morning (22nd April, 08:34 BST) yet now only the negative one remains. Very shoddy, and not at all what I would expect from the BBC.

Joerg Jaspert: Talk "How to contribute"

I just had a talk on How to contribute here in Taipei. The slides are available here in case you are interested.

Michal &#268;iha&#345;: Photo of a week 15

As you can see in week number, I failed to take photo every week. Nevertheless I will try to continue, maybe I won't skip that much. To compensate it a little, I've decided to publish two photos taken in Prague Botanical Garden on annual butterfly event. Butterfly Butterfly

Filed under: English Photography 3 comments Flattr this!

21 April 2011

Joey Hess: USB powered Sheevaplug

I was given this Sheevaplug. The idea with plug computers is they look like just a wall wart, but are a whole computer. Ideally, a FreedomBox. The wall wart computer concept doesn't entirely work for me because first, I don't like socket blocking wall warts, and secondly, I'm living in the island of Offgridistan with its weird 12 volt wall sockets. Solution was to convert it to be USB powered. This is easy because the Sheevaplug's built-in power supply runs it at 5 volts.
my Sheevaplug, powered by my laptop, with serial console also hooked up to show boot.
The USB power cable was conveniently routed in through a clip that holds the power socket in place. Bonus: The clip lets the cable be pushed in, but not pulled out, which avoids strain on the connection.
Then it's just a matter of connecting the obvious wires. (I couldn't find a 4 pin connector on short notice so I reluctantly cut the short cord from the AC power supply.) I'd probably not want to fly with the result (want to install a proper USB socket for power to avoid the dangling exposed wire effect), but it's otherwise pretty perfect. I've replaced my nslu2 wifi/dialup/cache/mpd box with the Sheevaplug, and the massively increased memory and speed, at nearly the same power, is a nice improvement.
I did run into two weird issues. I have to use a USB stick for storage, since both SDHC cards I tried, a 16 gb Transcend and a 1 gb no-name had lots of IO errors (error -110). I don't seem to be the first to encounter that, but there is not a sure workaround, although recompiling the kernel wirth high speed SD disabled might fix it. Also, u-boot refused to boot from my USB stick when I used one USB hub; with a different hub it worked ok.

Evgeni Golov: Debian/Ubuntu Games Team Meeting #2

The readers of debian-devel-games@l.d.o and games@l.fd.o do already know, but the fact pkg-games has it s next (second) meeting on April 30th at 12:00 UTC in #debian-games needs the attention of the whole planet (pun intended)!For the agenda we have a whole bunch of leftovers from the first meeting, thus I did not plan any new items (besides of kicking Tolimar to be admin again instead of having the dream to drift away from his position ;)).
As most of us are lazy and wont klick the wiki link to read the agenda, it s served here too:
  1. games and cross-distro collaboration
  2. pending, removed, orphaned, wnpp & suggested games
  3. freedesktop.org/games group
  4. sponsoring policy
  5. cleaning old, adding new admins (and users)
Do you still remember where you will be on April 30th at 12:00 UTC? No? #debian-games on irc.debian.org. And don t you dare to be quiet! ;)

Christian Perrier: New language in Debian Installer: Uyghur

I just activated a new language in Debian Installer: Uyghur. Uyghur is the language of Xinjiang or Eastern Turkmenistan. This part of the People's Republic of China is the homeland of the Uyghur people and the language is spoken by nearly 9 million people. The translation effort is driven by the Uyghur Computer Science Association (Uyghur Kompyut r Ilimi Jem'iyiti. The next D-I daily builds will offer Uyghur as a choice of language to install Debian. Given the way D-I packages are built, it will however take some time before the entire installation process can be performed by only displaying Uyghur and no more English. Indeed, the new language will appear for each D-I component when the relevant udeb package is built from GIT, which happens most of the time when a D-I developers wants a new feature or bug fix to be available. During the upcoming days, I'll try to rebuild a few packages, though, so that Uyghur users can still have a preview of what will be available when the first alpha or beta release of D-I is out. Moreover, that will help testing the translation and the possible glitches with rendering, fonts or any other display issue.

Joachim Breitner: A talk on Church s result about the Entscheidungsproblem

A newly founded Logic Group in Mumbai, which seems to be a private thing but some professors from the IIT Bombay are taking part, has approached me and asked if I can give a talk about Church s lambda calculus and how he used it to show that Hilbert s Entscheidungsproblem is not solvable. They are starting a series of talk on logic on the occasion of Turing s 100th birth year and because I am finally leaving the IIT campus in two days, my talk turned out to be the opening talk for the series. Roughly guessed about fifty people attended, some professors but most of them students from fields other than mathematics and computer science I hope that they were not too confused by distinguishing truth and provability, expressability and computability, of which I did not give a proper explanation.
I started with a historical exposition of the state of logic in the beginning 20th century, then gave an introduction to lambda calculus, encoding of natural numbers in then, G del encoding. Finally I sketched the proof of the unsolvability of the question whether a lambda term has a normal form and then concluded by showing how this implies that the Entscheidungsproblem is not solvable.
I have before hand written out the talk in full, and again I ended up saying completely different things or at least said things completely different. Nevertheless, I am sharing the (planned) text of my talk, including the timeline that I draw on the whiteboard.

Michael Prokop: Report from FAI developer meeting 04/2011

Last week a developer meeting of the FAI project took place in Cologne/Germany. Four core developers (project lead Thomas Lange and 3x Michael :) ) met for two days to discuss and work on the FAI project. The first day (2011-04-14) started at 11:45 and lasted until around 21:15, the second day (2011-04-15) started at 11:00 and lasted until 22:00. We made 134 svn commits in those two days. The developer meeting was great, we got tons of stuff done:

Next.

Previous.