Art, AI and Google I/O 2016
Deeper ventures into Ericsson (Packet) Abis
Some topics keep coming back, even a number of years after first having worked on them. And then you start to search online using your favorite search engine - and find your old posts on that subject are the most comprehensive publicly available information on the subject ;)
Back in 2011, I was working on some very basic support for Ericsson RBS2xxx GSM BTSs in OpenBSC. The major part of this was to find out the weird dynamic detection of the signalling timeslot, as well as the fully non-standard OM2000 protocol for OML. Once it reached the state of a 'proof-of-concept', work at this ceased and remained in a state where still lots of manual steps were involved in BTS bring-up.
I've recently picked this topic up again, resulting in some work-in-progress code in http://git.osmocom.org/openbsc/log/?h=laforge/om2000-fsm
Beyond classic E1 based A-bis support, I've also been looking (again) at Ericsson Packet Abis. Packet Abis is their understanding of Abis over IP. However, it is - again - much further from the 3GPP specifications than what we're used to in the Osmocom universe. Abis/IP as we know consists of:
In the Ericsson world, they decided to taka a much lower-layer approach and decided to
I'm not yet sure if we want to fully support that protocol stack from OpenBSC and related projects, but in any case I've extende wireshark to decode such protocol traces properly by
The resulting work can be found at http://git.osmocom.org/wireshark/log/?h=laforge/ericsson-packet-abis in case anyone is interested. I've mostly been working with protocol traces from RBS2409 so far, and they are decoded quite nicely for RSL, OML, Voice and Packet data. As far as I know, the format of the STN / SIU of other BTS models is identical.
Is anyone out there in possession of Ericsson RBS2xxx RBSs interested in collboration on either a Packet Abis implementation, or an inteface of the E1 or packet based CCU-PCU interface to OsmoPCU?
what's with the Coup in Turkey? Do ya think Obama/Clinton know about it as it unfolding under their nose?
Novedades en la equivalencia internacional de títulos superiores españoles
Para empezar reconoceré que no tengo bien estudiada la regulación de las titulaciones universitarias en España. El caso es que he recibido el aviso de que se han publicado por fin las equivalencias internacionales de los títulos españoles. Por algún motivo tradicional, la estructura de las titulaciones superiores en España ha tenido poco que ver con las del resto del mundo. Se supone que ya todos sabemos cuáles han sido las transformaciones obligadas por «el plan Bolonia», que entre otras cosas pretende la movilidad de estudiantes y trabajadores y la interoperabilidad automática de los títulos superiores entre los paises comunitarios (creo que estrictamente va más allá de la UE pero hoy no es mi objetivo ser exhaustivo). Al parecer esa transformación de los títulos no era suficiente para saber cómo equivalen en el extranjero nuestros títulos. Y peor aún, cuáles son las equivalencias de los títulos superiores pre-Bolonia, que con frecuencia siguen siendo un lío al cambiar de universidad sin salir del país. La novedad es que parece que esa información ya ha quedado resuelta.
Siendo muy esquemático: el sistema de interoperabilidad de las titulaciones superiores en España se establece en el Marco Español de Cualificaciones para la Educación Superior (MECES), que, si yo no lo entiendo mal, sirve para establecer las equivalencias con el Marco Europeo de Cualificaciones para el Aprendizaje Permanente (EQF en inglés), que es la piedra de Rosetta para todo este sistema.
Pues bien, desde el 1 de junio de 2016 ya están publicadas oficialmente las equivalencias, como indican en el original: «correspondence between the Spanish Qualifications Framework for Higher Education and the European Qualifications Framework».
¿Cuáles son las consecuencias? Probablemente algunas más, pero entiendo que al menos a partir de ahora, por ejemplo, puedes matricularte en cualquier universidad que implemente el EQF sin tener que pasar por el desesperante proceso de convalidación de tus títulos.
Dejo esta entrada a modo de recordatorio personal y con la esperanza de que sea de utilidad. Si alguien detecta algún error que por favor lo indique en los comentarios.
My dental appointment is on Friday, but I went in for an emergency appointment today because of the pain. The dentist said I did the right thing, and the whole of that tooth had to come out. He took an x-ray and I had to hold the plastic bit in place with my tongue-- he said I have a strong tongue. I'm so glad I can suppress my gag reflex! [Edit: my goodness that sounds suggestive] Anyway, he said it was the most complicated extraction he'd had to do since he started working there.
This entry was originally posted at http://marnanel.dreamwidth.org/374012.html. Please comment there using OpenID.
"I recieved a free or discounted product in return for an honest review"
My experiences with Amazon reviewing have been somewhat unusual. A review of a smart switch I wrote received enough attention that the vendor pulled the product from Amazon. At the time of writing, I'm ranked as around the 2750th best reviewer on Amazon despite having a total of 18 reviews. But the world of Amazon reviews is even stranger than that, and the past couple of weeks have given me some insight into it.
Amazon's success is fairly phenomenal. It's estimated that there's over 50 million people in the US paying $100 a year to get free shipping on Amazon purchases, and combined with Amazon's surprisingly customer friendly service there's a lot of people with a very strong preference for choosing Amazon rather than any other retailer. If you're not on Amazon, you're hurting your sales.
And if you're an established brand, this works pretty well. Some people will search for your product directly and buy it, leaving reviews. Well reviewed products appear higher up in search results, so people searching for an item type rather than a brand will still see your product appear early in the search results, in turn driving sales. Some proportion of those customers will leave reviews, which helps keep your product high up in the results. As long as your products aren't utterly dreadful, you'll probably maintain that position.
But if you're a brand nobody's ever heard of, things are more difficult. People are unlikely to search for your product directly, so you're relying on turning up in the results for more generic terms. But if you're selling a more generic kind of item (say, a Bluetooth smart bulb) then there's probably a number of other brands nobody's ever heard of selling almost identical objects. If there's no reason for anybody to choose your product then you're probably not going to get any reviews and you're not going to move up the search rankings. Even if your product is better than the competition, a small number of sales means a tiny number of reviews. By the time that number's large enough to matter, you're probably onto a new product cycle.
In summary: if nobody's ever heard of you, you need reviews but you're probably not getting any.
The old way of doing this was to send review samples to journalists, but nobody's going to run a comprehensive review of 3000 different USB cables and even if they did almost nobody would read it before making a decision on Amazon. You need Amazon reviews, but you're not getting any. The obvious solution is to send review samples to people who will leave Amazon reviews. This is where things start getting more dubious.
Amazon run a program called Vine which is intended to solve this problem. Send samples to Amazon and they'll distribute them to a subset of trusted reviewers. These reviewers write a review as normal, and Amazon tag the review with a "Vine Voice" badge which indicates to readers that the reviewer received the product for free. But participation in Vine is apparently expensive, and so there's a proliferation of sites like Snagshout or AMZ Review Trader that use a different model. There's no requirement that you be an existing trusted reviewer and the product probably isn't free. You sign up, choose a product, receive a discount code and buy it from Amazon. You then have a couple of weeks to leave a review, and if you fail to do so you'll lose access to the service. This is completely acceptable under Amazon's rules, which state "If you receive a free or discounted product in exchange for your review, you must clearly and conspicuously disclose that fact". So far, so reasonable.
In reality it's worse than that, with several opportunities to game the system. AMZ Review Trader makes it clear to sellers that they can choose reviewers based on past reviews, giving customers an incentive to leave good reviews in order to keep receiving discounted products. Some customers take full advantage of this, leaving a giant number of 5 star reviews for products they clearly haven't tested and then (presumably) reselling them. What's surprising is that this kind of cynicism works both ways. Some sellers provide two listings for the same product, the second being significantly more expensive than the first. They then offer an attractive discount for the more expensive listing in return for a review, taking it down to approximately the same price as the original item. Once the reviews are in, they can remove the first listing and drop the price of the second to the original price point.
The end result is a bunch of reviews that are nominally honest but are tied to perverse incentives. In effect, the overall star rating tells you almost nothing - you still need to actually read the reviews to gain any insight into whether the customer actually used the product. And when you do write an honest review that the seller doesn't like, they may engage in heavy handed tactics in an attempt to make the review go away.
It's hard to avoid the conclusion that Amazon's review model is broken, but it's not obvious how to fix it. When search ranking is tied to reviews, companies have a strong incentive to do whatever it takes to obtain positive reviews. What we're left with for now is having to laboriously click through a number of products to see whether their rankings come from thoughtful and detailed reviews or are just a mass of 5 star one liners.
Morning After Dallas Sniper Attack
Wow, how to summarize the last 12 hours. Last night there was a peaceful protest march in downtown Dallas in response to the recent killings by police in other states. Towards the end of the march, snipers began shooting at police officers. The shooting was audible a half mile away at my office in Deep Ellum where I was working late. I thought at first it was fireworks, then I starting seeing events unfold on social media with posts from friends who were at the march. At least 14 people were shot, 12 of them officers. 5 officers died, 4 DPD and 1 DART officer. There appear to have been four suspects, 3 male and 1 female. One of the suspects holed up in a parking garage and was involved in a standoff with police that lasted for hours. When neogtiations with police broke down and the suspect started shooting again, the police killed the suspect using a bomb delivered by a DPD robot.
A lot of downtown was on lockdown most of the night, including the parking lot where most of the protesters parked. My friends in the march were unable to get back to their cars and had to spend most of the night in Union Station. Uber was providing complimentary rides to get some of them home. I stayed over night at my office in Deep Ellum. Everyone I know at the march and in downtown is safe. From early reports of what the deceased sniper said to police, the shooting was racially motivated but does not appear to be associated with the protest march aside from taking advantage of the police protection that DPD always offers to marches and protests downtown. The route of the march had been announced beforehand, so the shooters could easily have planned the best location for their attack.
It’s morning now and already the political spin is running full bore, try to turn this terrorist attack into rating points for one side or the other. Either we have to support all police, who are universally good and we must believe everyone they shoot to be evil thugs; or we have to assume that all cops are bad and corrupt and that everyone they shoot is innocent. This political effort to force all issues to be black and white is intentionally divisive and needs to be rejected. Reality is never that black and white. We need to support good cops while still calling out bad ones and peacefully protesting against injustices. There’s nothing inconsistent about marching in a protest against unjust police killings while still supporting our local police who are risking their lives to protect our right to free speech.
Good Enough Wireless Audio
For over six months there have been strong rumours that Apple will drop the 3.5mm headphone jack in the next iPhone, something that may have a large impact on the market of portable headphones. Either they will have to adopt the proprietary Lightning connector, or use the more standard Bluetooth wireless protocol.
This isn’t too surprising. I’ve noticed that with the latest Apple TV, the entirety of the Apple product line supports Bluetooth headphones, as if to prepare the market for a more “wireless” headphone future.
Still, if that were to happen, it would suck. And I’m not the only one to preemptively complain. I’ve avoided wireless headphones since they used to greatly reduce the sound quality, on top of the inconveniences of limited range and batteries that need recharge.
Unrelated to this Apple rumour, I did try out wireless headphones (of many kinds). So, are wireless headphones in 2016 good enough?
My first pair of wireless headphones is the Sennheiser RS 175. It is made for home use, as it requires a wireless base that also acts as a charging station for the headphones. It is using some kind of digital connection (up to 96 kHz PCM at source, and using 8-FSK digital lossless), so you either get the full quality or none at all, unlike analogue signals that would degrade the source quality depending on the interference. For me, the primary use for those headphones was to use them at home with some freedom of movement that wired headphones wouldn’t permit, and also to not have wires on the middle of the living room anymore. I was pleasantly surprised at the sound quality and how long the battery charge lasts.
Yet, those avoided my main concerns about Bluetooth headphones: Is the sound quality allowed by the Bluetooth protocol good enough? Some background about Bluetooth audio protocols first.
The first kind of audio supported by Bluetooth was for phone calls, so the audio quality targets what is typically needed for phone lines and not much more. This was done through the Headset Profile (HSP) for headsets, and the Hands-Free Profile (HFP) for cars. Both support 64 kbit/s signals, be it uncompressed, µ-law or a-law, commonly used in telephony, or CVSDM. For music, this is pretty bad, and I suspect my early experiences with music over Bluetooth was through those profiles.
Later, Bluetooth supported “proper” music streaming though the Advanced Audio Distribution Profile (A2DP). While it can support modern MPEG audio codecs (MP3, AAC, etc.), the only required codec is SBC, the only one that was available for free for use in Bluetooth applications. There’s also the newer and better aptX, but most devices don’t support it, notably all iPhones, maybe due to licensing costs and patent protections. And since MPEG codecs are even more expensive to license, it means the only codec commonly supported is SBC. And how good is SBC? Well, good enough compared to other codecs at that bit rate. In plain English, you can hear some quality loss if you listen hard enough. The quality loss is comparable to 256 kbit/s MP3s, which is fine but not great.
So, before jumping into Bluetooth headphones, I tested out Bluetooth audio with two different portable Bluetooth receivers. The first is the OT-ADAPT, made for outdoor sporting, where you would place your phone in your backpack and use a standard set of headphones connected to the receiver outside. The second is the MPOW, this time made for car stereos, but portable enough to be used outdoors. What I noticed with both is that the audio quality is far more impacted by the quality of the DAC than the SBC codec in the first place. The MPOW is generally louder than the OT-ADAPT (since it typically targets “audio line in” at full volume), but even at comparable volume it has far fewer background noise in the output signal. Still, with either receivers, the sound quality loss cannot be noticed with any sub-$100 headphones at average volume.
And then I finally made the jump to Bluetooth-enabled headphones, with the Sennheiser Momentum M2 AEBT. Testing with the provided cables with wired “airplane mode” use, I noticed no quality difference between wired and Bluetooth wireless audio, even while using SBC with my iPhone (the M2 does support aptX). The price difference for the premium of having Bluetooth is difficult to justify compared to sub-$30 Bluetooth receivers, but then those headphones have amazing sound quality and reasonable active noise cancellation.
So, what’s my recommendation? If you simply want some freedom of movement or Bluetooth-enable your car’s audio system, the MPOW Bluetooth receiver should be good enough. Otherwise, you may want to wait for a few months, as the release of the next headphone jack-free iPhone may spur a new wave of Bluetooth headphones, driving down the price of older models. And don’t worry too much about sound quality: It’s good enough.
Bluetooth LED bulbs
The best known smart bulb setups (such as the Philips Hue and the Belkin Wemo) are based on Zigbee, a low-energy, low-bandwidth protocol that operates on various unlicensed radio bands. The problem with Zigbee is that basically no home routers or mobile devices have a Zigbee radio, so to communicate with them you need an additional device (usually called a hub or bridge) that can speak Zigbee and also hook up to your existing home network. Requests are sent to the hub (either directly if you're on the same network, or via some external control server if you're on a different network) and it sends appropriate Zigbee commands to the bulbs.
But requiring an additional device adds some expense. People have attempted to solve this in a couple of ways. The first is building direct network connectivity into the bulbs, in the form of adding an 802.11 controller. Go through some sort of setup process, the bulb joins your network and you can communicate with it happily. Unfortunately adding wifi costs more than adding Zigbee, both in terms of money and power - wifi bulbs consume noticeably more power when "off" than Zigbee ones.
There's a middle ground. There's a large number of bulbs available from Amazon advertising themselves as Bluetooth, which is true but slightly misleading. They're actually implementing Bluetooth Low Energy, which is part of the Bluetooth 4.0 spec. Implementing this requires both OS and hardware support, so older systems are unable to communicate. Android 4.3 devices tend to have all the necessary features, and modern desktop Linux is also fine as long as you have a Bluetooth 4.0 controller.
Bluetooth is intended as a low power communications protocol. Bluetooth Low Energy (or BLE) is even lower than that, running in a similar power range to Zigbee. Most semi-modern phones can speak it, so it seems like a pretty good choice. Obviously you lose the ability to access the device remotely, but given the track record on this sort of thing that's arguably a benefit. There's a couple of other downsides - the range is worse than Zigbee (but probably still acceptable for any reasonably sized house or apartment), and only one device can be connected to a given BLE server at any one time. That means that if you have the control app open while you're near a bulb, nobody else can control that bulb until you disconnect.
The quality of the bulbs varies a great deal. Some of them are pure RGB bulbs and incapable of producing a convincing white at a reasonable intensity. Some have additional white LEDs but don't support running them at the same time as the colour LEDs, so you have the choice between colour or a fixed (and usually more intense) white. Some allow running the white LEDs at the same time as the RGB ones, which means you can vary the colour temperature of the "white" output.
But while the quality of the bulbs varies, the quality of the apps doesn't really. They're typically all dreadful, competing on features like changing bulb colour in time to music rather than on providing a pleasant user experience. And the whole "Only one person can control the lights at a time" thing doesn't really work so well if you actually live with anyone else. I was dissatisfied.
I'd met Mike Ryan at Kiwicon a couple of years back after watching him demonstrate hacking a BLE skateboard. He offered a couple of good hints for reverse engineering these devices, the first being that Android already does almost everything you need. Hidden in the developer settings is an option marked "Enable Bluetooth HCI snoop log". Turn that on and all Bluetooth traffic (including BLE) is dumped into /sdcard/btsnoop_hci.log. Turn that on, start the app, make some changes, retrieve the file and check it out using Wireshark. Easy.
Conveniently, BLE is very straightforward when it comes to network protocol. The only thing you have is GATT, the Generic Attribute Protocol. Using this you can read and write multiple characteristics. Each packet is limited to a maximum of 20 bytes. Most implementations use a single characteristic for light control, so it's then just a matter of staring at the dumped packets until something jumps out at you. A pretty typical implementation is something like:
where r, g and b are each just a single byte representing the corresponding red, green or blue intensity. 0x56 presumably indicates a "Set the light to these values" command, 0xaa indicates end of command and 0xf0 indicates that it's a request to set the colour LEDs. Sending 0x0f instead results in the previous byte (0x00 in this example) being interpreted as the intensity of the white LEDs. Unfortunately the bulb I tested that speaks this protocol didn't allow you to drive the white LEDs at the same time as anything else - setting the selection byte to 0xff didn't result in both sets of intensities being interpreted at once. Boo.
You can test this out fairly easily using the gatttool app. Run hcitool lescan to look for the device (remember that it won't show up if anything else is connected to it at the time), then do gatttool -b deviceid -I to get an interactive shell. Type connect to initiate a connection, and once connected send commands by doing char-write-cmd handle value using the handle obtained from your hci dump.
I did this successfully for various bulbs, but annoyingly hit a problem with one from Tikteck. The leading byte of each packet was clearly a counter, but the rest of the packet appeared to be garbage. For reasons best known to themselves, they've implemented application-level encryption on top of BLE. This was a shame, because they were easily the best of the bulbs I'd used - the white LEDs work in conjunction with the colour ones once you're sufficiently close to white, giving you good intensity and letting you modify the colour temperature. That gave me incentive, but figuring out the protocol took quite some time. Earlier this week, I finally cracked it. I've put a Python implementation on Github. The idea is to tie it into Ulfire running on a central machine with a Bluetooth controller, making it possible for me to control the lights from multiple different apps simultaneously and also integrating with my Echo.
I'd write something about the encryption, but I honestly don't know. Large parts of this make no sense to me whatsoever. I haven't even had any gin in the past two weeks. If anybody can explain how anything that's being done there makes any sense at all that would be appreciated.
 typically via the bulb pretending to be an access point, but also these days through a terrifying hack involving spewing UDP multicast packets of varying lengths in order to broadcast the password to associated but unauthenticated devices and good god the future is terrifying
 For a given power input, blue LEDs produce more light than other colours. To get white with RGB LEDs you either need to have more red and green LEDs than blue ones (which costs more), or you need to reduce the intensity of the blue ones (which means your headline intensity is lower). Neither is appealing, so most of these bulbs will just give you a blue "white" if you ask for full red, green and blue
 Especially the bit where we calculate something from the username and password and then encrypt that using some random numbers as the key, then send 50% of the random numbers and 50% of the encrypted output to the device, because I can't even
crashtesting: now 92000 documents
Recently we have developed the ability to visualize the MindGrid as Theater of Neuronal Activations. At the most recent, advancing front of the MindGrid, we see an inhibited trough of negative activations. We see an input sentence from a human user activating concept-fibers stretching back to the earliest edge of the MindGrid. We see an old idea becoming fresh output and then being inhibited into negative activation at its origin. We see outputs of the AGI passing through ReEntry() to re-enter the Mind as inhibited engrams while re-activating old engrams. We see the front-most trough of inhibition preventing the most recent ideas from preoccupying and monopolizing the artificial consciousness.
In ghost 174.pl, we have now commented out some code in the InStantiate() mind-module that was letting only nouns or pronouns of human input be re-activated along the length of the MindGrid. The plan now is to let all parts of an incoming sentence re-activate the engrams of its component
Now, how do we make sure that the front-most engrams of the sentence of human input will be inhibited with negative activation in the trough of recent mental activity on the MindGrid? It appears that InStantiate() makes a sweep of old engrams to set a positive activation, and then
at the $tult penultimate-time it sets an activation for the current, front-most input. In order to keep a trough of recent inhibition, let us try setting a negative activation at the $tult time-point.
After input of "I see kids" and a response by the AI of "KIDS MAKE ROBOTS", in minddata.txt we see the sweep of positive activation of old engrams.
At t=477, "YOU" has an activation of thirty (30).
At t=518, "YOU" has an activation of thirty (30).
At t=317, 820=SEE has an activation of thirty (30).
At t=575, 528=KIDS has an activation of 62, apparently because there was also a re-entry of "KIDS".
As a result of the $tult trough-inhibition,
at t=2426, 707=YOU has a negative "-46" activation.
At t=2430, 820=SEE has a negative "-46" activation.
At t=2435, 528=KIDS has a negative -14 activation, apparently because the AI response of "KIDS MAKE ROBOTS" made a backwards sweep to impose a positive thirty-two (32) points of activation upon the pre-existing negative "-46"
points of activation, resulting in -46+32 = -14 negative points of activation -- still part of the negative trough.
Now the AGI is making its series of innate self-referential statements ("I AM A PERSON"; "I AM A ROBOT"; I AM ANDRU"; I HELP KIDS") but why is it not using SpreadAct() to jump from the reentrant concept of "KIDS" to the innate idea of "KIDS MAKE ROBOTS"? Let us see if SpreadAct() is being called, and from where. We do not see SpreadAct() being called in the diagnostic messages on-screen while
we run the AGI. Let us check the Perlmind source code. We see that the OldConcept() module since ghost162.pl was calling SpreadAct() for recognized nouns, but now we delete that snippet of code because we see in our MindGrid theater that we do not want OldConcept() to make any calls to SpreadAct(). The AGI still runs.
We see that SpreadAct() is potentially being called from the ReEntry() mind-module, but the trigger is not working properly, so we change the trigger. Then we get SpreadAct() re-activating nouns, and we begin to see a periodic association from the innate self-referential statements to "KIDS MAKE ROBOTS" and from there to "ROBOTS NEED ME". Apparently the inhibitions have to be cancelled out before the old memories can re-surface in the internal chains of
thought of the AGI.
translation of Dai Wang-shu (1905 - 1950) is almost done. Once done, betrayal is complete... hasn't accomplished much else but surfing and thinking... such is life.
spamming local celebrity
Dear Prof. Browder,
I took my liberty to write to you on account of maintaining a good friendship with your nephew Prof. Tom Browder since his stay at Cornell when I spent a summer there in 1995(?) when Taiwanese president was visiting.
I love to get mathematician to entertain my idea that Go/Weiqi/Baduk game might be a 'solved' problem mathematically.
Here's the link to a question I formulated on ResearchGate... Of course, I know there is a HUGE gap from my idea to any formal/empirical proof. But it might be a good challenge for your students/others ... Yes?
To recap for your convenience, here's my short postulation:
"yes. 4th game AlphaGo lost yet in some Chinese circle, ironically people were saying that AlphaGo was 'cheating' to let loose of its 'winning' algorithm to let human win on purpose. But more importantly, does AlphaGo know how to 'learn' about its opponents weakness or strong traits instead of mere optimization of all known board states? I do believe human players play differently against different opponents which isn't programmed into AlphaGo.
My conjecture is that Go game might be a 'solved' problem mathematically. I once had this idea of a spherical Go board where every position has 4 liberties, with 3 sets of n=even/odd# of planes dissect Go sphere. 2D go board is simply an approximation of the spherical Go with certain edge-perturbation accounted for. My Omega-Go doesn't need _any_ board game records but its own functional output with stepping steps and time constraints and current instance of opponent's moves as variables. "
Do you see Google's DeepMind's AlphaGo defeat of professional 9-dan Go player as good as IT gets? - ResearchGate. Available from: https://www.researchgate.net/post/Do_you_see_Googles_DeepMinds_AlphaGo_defeat_of_professional_9-dan_Go_player_as_good_as_IT_gets [accessed Jul 11, 2016].
Susan Ye Laird
11 Balamor Ln
Ewing, NJ 08628
William Browder to you 8 days ago
Sorry this kind of problem is way out if my area of expertise and interests. Good luck. Bill
Susan Laird 8 days ago
yep. admittedly that is a VERY ill-defined problem, hence no solution ( or not even wrong solution) is even imaginable in mathematical terms.
But when was the last time that you ventured outside of your own expertise and brings back a victorious diction to your own satisfaction?
I can count maybe twice in the last two years. I call that the state of my destitution. Will it ever go down to negative count?
I sometimes wonder how we discern the difference on pleasure of reading vs. pleasure of calculating vs. pleasure of mathematical thinking. If machine intelligence can do a much better job 70% of times than humans, may we all out of job before we expire on our own volition.
Still My best work of the year in 2016 that is way ahead and beyond any machine intelligence is translating William Stafford's:
The Ritual to Read to Each Other. from English to Chinese:
I don't presume that you happen to know anyone who might be interested in examining the correctness of my Chinese translation. I always fancy that someone else might be interested to do a similar exercise to render English text into other poetic language.
Some mathematicians are closet/good linguists or translators themselves, so I wage my bet.
ps. Richard Rein's article on US 1 'Reunion Memoir - The sport of writing' is one of my favorite. I must beg your pardon for many of my imagined conversation with local brightest minds.
"a practice so general"
While looking through back issues of the Times for etymological citations, I discovered a rather strange classified ad for 23rd May 1786:
"The Stalled Ox", by Saki“Do you mean to say that you’re going to sit quietly down and paint that ox while it’s destroying my morning-room?” Let’s start the new series of Gentle Readers with a story in which absurdity is tamed by embracing it.
Check All The thingS!
check-all-the-things (aka cats, Meow!) is a tool that aims to make it easy to know which tools can be used to check a directory tree and to make it easy to run those tools on the directory tree. The tree could either be a source tree or a build tree or both. It aims to check as much of the tree as possible so the output can be very verbose and have many false positives. It is not for the busy, lazy or noise intolerant. It runs the checks by matching file names and MIME types against those registered for a list of checks. Each check has a set of dependencies, flags, filename wildcards, MIME type wildcards, comments and prerequisite commands. By default it:
It runs all checks for the current distro/release except:
There are command-line options to customise the behaviour and automatic bash shell completion via argcomplete. There are 177 checks (including TODO ones) in 73 different categories. There are an additional 224 not-well-specified TODO items for new checks in comments. It is exceptionally easy to add new checks once one knows how to use the tool one wants to add.
At this point in time it is probably not a good idea to run it in an untrusted directory tree for several reasons:
The project initially started as really hacky wiki page full of commands to run. At some point I figured it was time to make this actually be maintainable and started on a project to do that. At around the same time Jakub Wilk was working on maquack to replace the wiki page. Somehow I found out about it and talked to him about it. It was vastly less hacky than my version so I ended up taking it over and continuing it under the check-all-the-things name. I polished it for the last two years and finally released it into Debian unstable during DebCamp16.
DebConf16 Open Festival day 1
Today was day one of the DebConf16 Open Festival and I attended the open hardware panel, part of the talk about Code For South Africa, shirish's experiences and the DebConf new folks session.
The open hardware panel was a wide ranging discussion between bdale, Andy and indiebio. bdate talked about the experiences he has had with his rocketry hardware. bdale said "Make concious decisions about what you are buying", referencing a case where he investigated, found a GPL violation and didn't buy. Various people care about openness of different layers of the hardware. Off-the-shelf products are very strongly integrated, which is great for makers but means that people who care about lower layers like CPU micro-architecture aren't able to participate. Andy said "We are just beginning to come out of the shareware stage [of open hardware]". bdale mentioned the companies who do hardware production as a service from design files. Later in the pub some folks mentioned j-core, an open re-implementation of SuperH processors.
I missed most of the code4sa talk unfortunately, but it was about government services and open data.
shirish covered his journey through life to Debian. His youth, how satellite TV and knowledge of the outside world came to India around the time of the Iraq war. His experience accessing the Internet for the first time, uncensored vs the usual censorship in India's media. His experiences of Windows 95 viruses and crashes. He learned of PCTwist Linux through a magazine cover. His initial install was not a success but eventually managed to break through and install a desktop, but experienced network and other issues. Eventually he encountered Ubuntu and began contributing bug reports. His experiences there led him to Debian. He began blogging about Debian. In the last few years he and others have been going around the country doing mini-DebConfs at institutes around India. The first question was predictably about having a DebConf in India and how shirish might like to get more involved. DebConf in India sounds like a possibility some day and shirish was thinking about getting involved in publicity, marketting and the Debian installer.
The DebConf new folks session was a great intro to DebConf for folks new to the community. There were some quite excellent touches added to this year's version of the event by indiebio and Rhonda.
I also got some things done. Usual spam reporting. Reviewed wiki RecentChanges. Talked to the chromium-bsu/MacPorts maintainer about AX_CHECK_GL brokenness. Filed Debian wishlist bug #829292 asking to update autoconf-archive. Redirected a Hurd porterbox request to the exodar admin and quickly found out I was wrong to do that, rectified. Then we found out the LDAP sync to exodar was broken. Replied to someone who intends to sell Debian pre-installs. Thanked BunsenLabs folks for joining the derivatives list. Applied reproducible builds patch for cats from Chris Lamb. Heard about awesome new terminal-mode screensaver. Moo! Prepared a blog post about check-all-the-things.
DebCamp16 day 8
Apply wget security update to mentors.debian.net. Poke the DebConf video team about archiving the one Debian & stuff podcast episode. Discuss exclusion, privilege & DebConf. Usual spam reporting. Review wiki RecentChanges. Fix some typos from RecentChanges. File Debian wishlist bug #829177 against bugs.debian.org. Mention the recent post about breaking Android full-disk encryption on the exploits Debian wiki page. Answer questions about recommended build configuration for chromium-bsu from the maintainer of it in FreeBSD. Mention that HTML SRI could help secure initial Debian downloads. File Debian bug #829199 against file and add workaround in derivatives census. Report broken boss-gnome source package to BOSSLinux folks on IRC. Delete and re-download Parsix apt folder to stop hash sum mismatches. File Debian minor/wishlist bugs #829209/#829211/#829212 against cypher-lint. Add a porterbox guest account for one of the RTC GSoC students. Extend the expiry of another guest account. Direct query about the excuses HTML to the release team. File Debian bug #829241 against fonts-play. Discuss accessibility, life, the universe and rakia.
DebCamp16 day 7
Usual spam reporting. Review wiki RecentChanges. Provide feedback for the staging site of the new codebase for screenshots.d.n. Redirect bugs-search.d.o complaint to the BTS maintainers. Point out pastebinit already supports fpaste.org. Polish chromium-bsu, make a new upstream release to fix Debian RC bug #822711. Upload screenshot of chromium-bsu menu. Notify chromium-bsu package maintainers in other distros (hug whohas). Avoid checking WAV files for spelling errors in cats. Make the old PTS download i18n data over https. File #829092 to get the per-package i18n data to use https for links. Point someone on mentors to the Debian PHP group wiki page.
HOWTO: Purge Amazon Echo History with iMacros
This one is quick and easy… Have you ever wanted to go back into your Amazon Echo device and delete the history of all commands you asked Alexa to do for you? All the searches? All the weather requests? Well, you can… manually from the mobile app, or from the Amazon Alexa Configuration page, but […]
DebCamp16 day 6
Redirect one person contacting the Debian sysadmin and web teams to Debian user support. Review wiki RecentChanges. Usual spam reporting. Check and fix a derivatives census issue. Suggest sending the titanpad maintainence issue to a wider audience. Update check-all-the-things and copyright review tools wiki page for licensecheck/devscripts split. Ask if debian-debug could be added to mirror.dc16.debconf.org. Discuss more about the devscripts/licensecheck split. Yesterday I grrred at Debian perl bug #588017 that causes vulnerabilities in check-all-the-things, tried to figure out the scope of the issue and workaround all of the issues I could find. (Perls are shiny and Check All The thingS can be abbreviated as cats) Today I confirmed with the reporter (Jakub Wilk) that the patch mitigates this. Release check-all-the-things to Debian unstable (finally!!). Discuss with the borg about syncing cats to Ubuntu. Notice autoconf/automake being installed as indirect cats build-deps (via debhelper/dh-autoreconf) and poke relevant folks about this. Answer question about alioth vs debian.org LDAP.
Cargo cults and progressive web app stores
It's easy to forget that app stores emerged as a response to the difficulties of dealing with carriers to get your content 'on deck', getting your apps preinstalled and the extremely closed nature of that ecosystem. However that's not the job to be done on today's web. Instead what we need is:Do you remember how painful native mobile apps were (for users and developers) before the popularity of app stores?— Adewale Oshineye (@ade_oshineye) June 27, 2016
All curation grows until it requires search. All search grows until it requires curation.— Benedict Evans (@BenedictEvans) December 18, 2015
DebCamp16 day 5
Beat head against shiny cats (no animals were harmed). Discuss the spice of sillyness. Forward a wiki bounce to the person. Mention my gobby git mail cron job. Start adopting the adequate package. Discuss cats vs licensecheck with Jonas. Usual spam reporting. Review wiki RecentChanges. Whitelisted one user in the wiki anti-spam system. Finding myself longing for a web technology. Shudder and look at the twinklies.
Big opportunities in 2016
When a big industry is wrong about important things, that's an opportunity.
Making ads "better" will fix ad blocking.
The first one is wrong because adfraud is priced in. Advertisers see a fraud-adjusted price, and intermediaries get paid, fraud or no fraud. The people who pay for adfraud are legit sites that compete with fraudulent ones, users who bear the costs of adfraud malware, and the copyright holders of work that shows up on ad-supported pirate sites. (The "publisher share" of online ad revenue includes undetected fraud.)
The second one is wrong because there are no "bad" ads. The same annoying and intrusive practices that get high response rates also provoke ad blocking.
Anyway, big opportunity. More on that later. For now, here's some background reading.
Paul Muller, Adjust: Install fraud is threatening the app economy
BOB HOFFMAN: 5 Questions For The New Year
Jim Spanfeller: Opinion: The big lies of ad tech
Dawn Chmielewski: How ‘Do Not Track’ Ended Up Going Nowhere
Adam Kleinberg: Why Ad Tech Is the Worst Thing That Ever Happened to Advertising
Top News & Analysis: Inside Yahoo's troubled advertising business
Violet Blue: You say advertising, I say block that malware
Allison Schiff: The Consumer POV On Cross-Device Tracking: ‘No, Thanks’
Scripting News: It's time to care about the open web
Steven Englehardt: Do privacy studies help? A Retrospective look at Canvas Fingerprinting
Michael Eisenberg: 2016 Prediction!
David Chavern: Opinion: Ad blocking threatens democracy
Lewis DVorkin, Forbes Staff: Inside Forbes: Our Ad Block Test Stirs Up Emotions, Then Brings Learnings and New Data
Robinson Meyer: Will More Newspapers Go Nonprofit?
Lubomir Rintel: NetworkManger and tracking protection in Wi-Fi networks
Doc Searls: Rethinking John Wanamaker
Cog Blog: Just Because We Can…
MediaPost.com: MediaDailyNews: Little Progress In War On Ad Fraud
Heather West: Prioritizing privacy: Good for business
Garett Sloane: What Apple’s iAd changes mean for the industry
Krux Digital: Data’s Role in Combatting Ad Blockers
Dave Carroll: One-Click Adblocking Peace Treaty
Digg Top Stories: The Secrets I Learned Writing Clickbait
Stephanie Hobson: Google Analytics, Privacy, and Event Tracking
Media Briefing TheMediaBriefing Analysis: Last chance to save US newspapers
BOB HOFFMAN: Advertising's Comedy Bitchfight
Cog Blog: The Advertiser Agency Battle Rumbles On
BOB HOFFMAN: Native Advertising - Just More Online Corruption
Andrea Peterson: The massive new privacy deal between U.S. and Europe, explained
Lindsay Rowntree: Failure to Act Against Ad Fraud is Equal to Supporting Cybercrime
Baekdal Plus: The Amazing Google And The Not So Amazing Ads
Rob Leathern: Advertising Needs to Become Harder to Buy
Adrienne LaFrance: Facebook and the New Colonialism
Violet Blue: RIP: Adblock Plus
BOB HOFFMAN: Waste Not, Grow Not
Media Briefing TheMediaBriefing Analysis: Guardian Media Group's David Pemsel: A paywall "would diminish our reach and influence around the world"
Cog Blog: Advertising Dies a Little
Media Briefing TheMediaBriefing Analysis: The game has changed: Adblocking and audience consent
David Barton: Adblock users in their own words: what makes them tick?
BOB HOFFMAN: Why Online Ad Industry Can't Reform Itself
Cog Blog: Programming and Airtime Deals
TimKadlec.com: CPP: A Standardized Alternative to AMP
Ben Williams: Acceptable Ads explained: monetization
Scripting News: My open Instant Articles feed
Romain Gambier: Building Towards Value with Atlas
Guardian readers and Tom Stevens: Why we use adblockers: 'We need to have more control over what we're exposed to'
Mark Duffy: The lost art of the billboard
trottdave: WHO ELSE IS LISTENING IN?
BOB HOFFMAN: 3 Things I Don't Hate
Rob Leathern: Deception Funds Your Online News
Dave Carroll: Artisanal Adtech
Joshua Kopstein for Motherboard: Creepy Ad Company Says It Will Stop Eavesdropping With ‘Audio Beacons’
Hacker News: Thank you for ad blocking
BOB HOFFMAN: Advertising's Slow-Motion Suicide Continues
Jacob Hoffman-Andrews: Victory: Verizon Will Stop Tagging Customers for Tracking Without Consent
Jérôme Segura: A Look Into Malvertising Attacks Targeting The UK
Frédéric Filloux: Clickbait Obsession Devours Journalism
BOB HOFFMAN: Bullshitters Bullshitting Bullshitters
Maciej Ceglowski: My Heroic and Lazy Stand Against IFTTT
PCMag.com: the Official John C. Dvorak RSS Feed: Why the Surveillance State Will Kill U.S. Software Sales
MediaPost | Garfield at Large: Fairy Dust
Joshua Kopstein for Motherboard: Rise of Ad Blocking Is the Ad Industry's Fault, Says Outgoing FTC Commissioner
Adam Broitman: Three Reasons Why Ad Blockers Are Good for Advertising
Jerrid Grimm: The Subprime Banner Ad Crisis
@talktojimmer: How To Make Better Advertising and Advertising Better
Nelson Minar: Ad replacement is unethical
David Barton: Rights or Respect: the Ethics of Adblocking
Rob Leathern: Shitty ads cost iPhone users $8 billion a year
Dave Carroll: Co-Owning Our News Future
Jim Vande Hei: Escaping the Digital Media ‘Crap Trap’
Nick Heer: Ad Tech Is Completely Broken
Nick Heer: FTC to Crack Down on Cross-Browser Tracking
trottdave: WHY EXPERTS ARE PRECISELY, ACCURATELY WRONG
BlockAdBlock: About that claim that detecting Adblock may be illegal (via Nieman Lab)
Joseph Galarneau: Worst. Site. Ever. 1,665 tags on one page
AdExchanger: The Catch-22 Of Ad Fraud And Verification
Hacker News: Dark Patterns by the Boston Globe
David Barton: Procurement Could Play Vital Role in Stopping Adblocking
Yuyu Chen: Ad tech is having a premature midlife crisis
Nick Bilogorskiy: Malvertising on Pace for a Record-Breaking Year
BlockAdBlock: Adblocking and its dangerous arguments – Part I
trottdave: ONE AT A TIME
Massimo: The problem with content
Joseph Galarneau: Confessions of a tag hunter: Call for vendor transparency
Melody Kramer: If ad tech is not sustainable, what can publishers do?
All NAA.org Updates: NAA Asks FTC to Investigate Unlawful Ad Blocking Practices
Elizabeth Dwoskin: Newspapers escalate their fight against ad blockers
Barb Palser: Relay Media Launches AMP Platform for Publishers
Dave Carroll: Awkward Conversation With Facebook
Cog Blog: A Mess Of Our Own Making
Laura Hazard Owen: Forbes has quit bugging (some) people about their adblockers
Aral Balkan: Introducing Better
Joseph Lichterman: Report: Ad tech (and the garbage #content it funds) is killing the web
Dave Carroll: Facebook’s Adgate
Martin Shelton: How Can Newsrooms Not Be Creepy?
Hacker News: Fraudulent Advertising on Facebook
Inti De Ceukelaire: Why you shouldn’t share links on Facebook
Sean Blanchfield: The Dangers of Playing Cat and Mouse with Adblock
BOB HOFFMAN: The Cons Of Silicon Valley
Garett Sloane: WTF are agency ‘preferred vendors?’
Tim Sullivan: The Case for Neck Tattoos, According to Economists (via NewCo Shift — Medium)
Jason Kint, CEO – DCN: Google and Facebook devour the ad and data pie. Scraps for everyone else. (via The Ad Contrarian)
Columbia Journalism Review: Local news isn't dead. We just need to stop killing it.
BOB HOFFMAN: Wrong Problem, Wrong Solution
BOB HOFFMAN: Sometimes, Even Bloggers Need To Shut Up
Lara O'Reilly and Reuters: Adblock Plus' revenue model was just ruled illegal by a German court (SPR)
MediaPost | Online Publishing Insider: Finding The Answer In Search
DebCamp14 day 4
Usual spam reporting.
Review wiki RecentChanges.
Rain glorious rain! Err...
Update a couple of links on the debtags team page.
Report Debian bug #828718 against tracker.debian.org.
Update links to debtags on DDPO and the old PTS.
Report minor Debian bug #828722 against debtags.debian.org.
Update the debtags for check-all-the-things.
More code and check fixes for check-all-the-things.
Gravitate towards the fireplace and beat face against annoying access point,
wpa_cli blacklist &
wpa_cli bssid from owner of devilish laptop.
Ask stakeholders for feedback/commits before the impending
release of check-all-the-things to Debian unstable.
Meet developers of the One^WGNU Ring, discuss C++ library foo.
Contribute some links to an open hardware thread.
Point out the location of the Debian QA SVN repository.
Clear skies at night, twinkling delight.
DebCamp16 day 3
Review, approve chromium, gnome-terminal and radeontop screenshots.
Disgusted to see the level of creativity GPL violators have.
Words of encouragement on #debian-mentors.
Pleased to see Tails reproducible builds funding by Mozilla.
Point out build dates in versions leads to non-reproducible builds.
apt-file search to someone looking for a binary of kill.
Review wiki RecentChanges.
Report important Debian bug #828215 against unattended-upgrades.
Clean up some code in check-all-the-things
and work on fixing Debian bug #826089.
Wind glorious wind! Much clearer day, nice view of the mountain.
More check-all-the-things code clean up and
finish up fixing Debian bug #826089.
Twinkling city lights and more wind.
Final code polish during dinner/discussion.
Wandering in the wind amongst the twinklies.
Whitelisted one user in the wiki anti-spam system.
Usual spam reporting.
DebCamp16 day 2
Review wiki RecentChanges since my bookmark.
Usual spam reporting.
Mention microG on #debian-mobile.
Answer pkg-config question on #debian-mentors.
Suggest using UUIDs in response to a debian-arm query.
Reported Debian bug #828103 against needrestart.
A giant yellow SOS crane between the balcony hacklab and a truly misty city.
Locate the 2014 Debian & stuff podcast on archive.org.
Poke the SPARC porters in response to a suggestion on debian-www.
systemctl daemon-reload wrt buildd service changes.
Automate updating some extension lists from check-all-the-things.
Reported wishlist Debian bug #828128 against debsources.
Engage lizard mode! Wish for better display technology.
Nice vegetarian food with nice folks and
interesting discussions with interesting locals.
Polish and release check-all-the-things.
Close bugs I forgot to close in the changelog.
Add link to debian-boot on Debootstrap wiki page.
Notice first mockup of a theme for Debian stretch.
Answer a question about package naming on #debian-mentors.
Discuss the future of cross compilation on Debian.
Notice a talk about FOSSology & update a wiki page.
Mention AsteroidOS and MaruOS on the mobile wiki page.
Contemplate how close to the FSDG Debian might be
and approaches to improving that.
Recent public allegations against Jacob Appelbaum
In recent days, various public allegations have been brought forward against Jacob Appelbaum. The allegations rank from plagiarism to sexual assault and rape.
I find it deeply disturbing that the alleged victims are putting up the effort of a quite slick online campaign to defame Jakes's name, using a domain name consisting of only his name and virtually any picture you can find online of him from the last decade, and - to a large extent - hide in anonymity.
I'm upset about this not because I happen to know Jake personally for many years, but because I think it is fundamentally wrong to bring up those accusations in such a form.
I have no clue what is the truth or what is not the truth. Nor does anyone else who has not experienced or witnessed the alleged events first hand. I'd hope more people would think about that before commenting on this topic one way or another on Twitter, in their blogs, on mailing lists, etc. It doesn't matter what we believe, hypothesize or project based on a personal like or dislike of either the person accused or of the accusers.
We don't live in the middle ages, and we have given up on the pillory for a long time (and the pillory was used after a judgement, not before). If there was illegal/criminal behavior, then our societies have a well-established and respected procedure to deal with such: It is based on laws, legal procedure and courts.
So if somebody has a claim, they can and should seek legal support and bring those claims forward to the competent authorities, rather than starting what very easily looks like a smear campaign (whether it is one or not).
Please don't get me wrong: I have the deepest respect and sympathies for victims of sexual assault or abuse - but I also have a deep respect for the legal foundation our societies have built over hundreds of years, and it's principles including the human right "presumption of innocence".
No matter who has committed which type of crime, everyone deserve to receive a fair trial, and they are innocent until proven guilty.
I believe nobody deserves such a public defamation campaign, nor does anyone have the authority to sentence such a verdict, not even a court of law. The Pillory was abandoned for good reasons.
DebCamp16 day 1
Hating jetlag based headache.
Disturbed to see the Brexit result.
Review wiki RecentChanges.
Answer some questions about Launchpad on #debian-mentors.
Whitelisted one user in the wiki anti-spam system.
Reviewed and sponsored yamllint 1.2.2-1 upload.
Noted OFSET repo is broken and updated Freeduc info.
Noted the Epidemic-Linux website is having database issues.
Noted that Facebook finally completely dropped their RSS
feeds, dropped Facebook RSS feed URL generation
from the Debian derivatives census scripts and
notified the affected derivatives.
Cleared up Tanglu hash sum mismatches again.
Minor changes to Planet Debian derivatives.
Enjoyed the photos from Valessio.
Hazy city away from the mountain and tablecloth clouds
flowing over the mountain on the way to a pub lunch.
Jet lag headaches seem to be subsiding thankfully.
Ping someone generating a bounce when changing their SSH key.
Mention autorevision and other suggestions in an IRC discussion
about mesa & reproducible builds.
Review some DebConf16 announcements and add minor fix.
Push out some TODO items to check-all-the-things.
Ask for a dd-list for the GCC 6 transition.
Usual spam reporting throughout the day via manual List-Archive
copy-paste, feeding mboxen to my
report-spam-debian-bugs scripts and manual BTS clicks.
Usual wondering why there isn't an RFC for MUA spam reporting.
Disturbed by the sudden appearance of an astronautess in the
orga room but placated by a plentiful supply of crisps.
Ask x32 folks about debian-x32.org vs x32 on ports.d.o.
Glad to just avoid the room shuffle dance.
Finish mime support for check-all-the-things.
Disappointed that piz.za does not actually resolve.
Amused by pollito's virtual tour of UTC.
Completely stuffed full of Butleritos.
I was reading this two days ago. It needs saying today.
DebCamp16 day 0
Today is officially the first day of DebCamp 2016. The night wasn't as cold as I had feared. Woke at 5am for some reason. Noted the network still blocks port 6697 and 7000, worked around in IRC client configuration using 9999. Reply to network discussion to point that out. Minor changes to the empathy Debian RTC wiki page. Answer email@example.com bug email about shared company OpenPGP keys and suggest moving to individual keys. Review wiki RecentChanges. Comment on NetworkManager upstream bug #705545 that MAC address privacy is a complicated feature with many use cases. Warn another person that reporting Alioth to SpamCop does nothing and link to the unsubscription URL. Talk to Brown about IP address conflict sparc64 porters found with the setup of notker (sparc64 build machine). Filed Debian wishlist bug #827944 against at asking for support for using an editor to write at jobs. Woke up properly, discussed spam over breakfast. Notice Point Linux in the Distrowatch feed and invite them to the derivatives census. Point out reproducible builds in a discussion about source-only uploads. Commented that I encountered evolution upstream crash bug #680471 again. Reported gnome-shell upstream crash bug #767969. Joined the tour around the campus, enjoyed the view from the outdoor hacklab at the top of the hill. Confirmed that "Monkey Gland" from the pub menu is not in fact derived from monkeys in any way. Noted that Pollito did not eat chicken from the buffet. Beat head against VPN/SIP/WebRTC for a while but oncoming jetlag put me out of business for some hours. Pointed out the future Packages.gz removal in favour of Packages.xz to the popcon developers.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!