RSSAmplifier

Blog

perezdecastro.org

Moikka! Here's Adrián. I work for Igalia .

perezdecastro.orgRSS feed ↗46 posts

Latest posts

Merging OpenBSD file systems non-destructively

Halloween 2019 had just passed when I installed uptimed to track the uptime of an OpenBSD virtual machine from OpenBSD.amsterdam that I had booked a couple of months before. According to uptimed , the latest release of the system at the time was 6.6, and the longest uptime clocked at 139 days using the 7.3 release. The same install has been updated all the way to 7.8 since then, which means this…

Standalone Binaries With Zig CC and Meson

Have you ever wanted to run a program in some device without needing to follow a complicated, possibly slow build process? In many cases it can be simpler to use zig cc to compile a static binary and call it a day. Zig What? The Zig programming language is a new(ish) programming language that may not get as much rep as others like Rust, but the authors have had one of the greatest ideas ever:…

Sunsetting NPAPI support in WebKitGTK (and WPE)

Summary What is NPAPI? What is NPAPI used for? Why are NPAPI plug-ins being phased out? What are other browsers doing? Is WebKitGTK following suit? Summary Here’s a tl;dr list of bullet points: NPAPI is an old mechanism to extend the functionality of a web browser. It is time to let it go. One year ago, WebKitGTK 2.26.0 removed support for NPAPI plug-ins which used GTK2, but the rest of plug-ins…

The Road to WebKit 2.26: a Six Month Retrospective

Now that version 2.26 of both WPE WebKit and WebKitGTK ports have been out for a few weeks it is an excellent moment to recap and take a look at what we have achieved during this development cycle. Let’s dive in! New Features Emoji Picker Data Lists WPE Renderer for WebKitGTK In-Process DNS Cache Security Subprocess Sandboxing PSON HSTS New WebSockets Implementation Cleanups Releases, Releases!…

WPE WebKit 2.24

While WPE WebKit 2.24 has now been out for a couple of months , it includes over a year of development effort since our first official release , which means there is plenty to talk about. Let’s dive in! API & ABI Stability The public API for WPE WebKit has been essentially unchanged since the 2.22.x releases, and we consider it now stable and its version has been set to 1.0 . The pkg-config…

Web Engines Hackfest 2018 → FOSDEM 2019

The last quarter of 2018 has been a quite hectic one, and every time I had some spare time after the Web Engines Hackfest the prospective of sitting down to write some thoughts about it seemed dreadful. Christmas went by already —two full weeks of holidays, practically without touching a computer— and suddenly I found myself booking tickets to this year’s FOSDEM and it just hit me: it…

Comments: Begone!

Starting today, the comments section is not available any more in the articles at the perezdecastro.org website. The main reason for for taking this decision is that I have never felt particularly comfortable leaving that to a third party service. I have had in mind to provide a self-hosted solution, which never materialized; and given the little amount of comments posted in the last years, it…

Web Engines Hackfest, 2017 Edition

At the beginning of October I had the wonderful chance of attending the Web Engines Hackfest in A Coruña, hosted by Igalia . This year we were over 50 participants, which was great to associate even more faces to IRC nick names, but more importantly allows hackers working at all the levels of the Web stack to share a common space for a few days, making it possible to discuss complex topics and…

SnabbWall's Traffic Analyzer: L7Spy

Wow, two posts just a few days apart from each other! Today I am writing about L7Spy , the application from the SnabbWall suite used to analyze network traffic and detect which applications they belong to. SnabbWall is being developed at Igalia with sponsorship from the NLnet Foundation . (Thanks!) A Digression There are two things related to L7Spy I want to mention beforehand: nDPI 1.8 is Now…

ljndpi 0.0.3 released with nDPI 1.8 support

Although I have been away from Snabb-related work for a while, the fact that nDPI 1.8 was released didn’t went unnoticed. This library is an important building block for SnabbWall , the Layer-7 firewall which I am developing at Igalia with sponsorship from the NLnet Foundation (thanks!). SnabbWall uses the nDPI library via the ljndpi binding, about which I wrote back in January . As any other…

Identifying Layer-7 packet flows in SnabbWall

Spring is here already, the snow has melted a while ago, and it looks like a good time to write a bit about network traffic flows, as promised in my previous post about ljndpi . Why so? Well, looking at network traffic and grouping it into logical streams between two endpoints is something that needs to be done for SnabbWall , a suite of Snabb applications which implement a Layer-7 analyzer and…

ljndpi: The SnabbWall sidekick

Howdy, and happy 2016! Last time we met here, I wrote about SnabbWall , a suite of Snabb Switch applications implementing the machinery needed for a Layer-7 firewall using deep packet inspection , and a firewall program itself. The work I am doing in SnabbWall is the result of ongoing collaboration between Igalia and the NLnet Foundation . We are very grateful to have their sponsorship. We are…

Introducing SnabbWall

If you have been following the blogs of my colleagues Katerina , Diego , and Andy it should not be a surprise for you to know that in Igalia we have a small —and awesome!— team working with Snabb Switch to provide novel software–mostly solutions for networking. We are now starting the development of SnabbWall , an application-level (Layer-7) firewall suite for Snabb Switch, and yours truly happens…

Locked out of SSH? Renew all the keys!

Long time, no post! Well, here I am with something completely unrelated to programming. Instead, is this something that has been bugging me for a while but I had been postponing because from the surface it looked a bit like a deep rabbit hole. The Issue For a while, every time I tried to connect to certain servers via SSH (or Mosh , make sure to check it out!), I was getting something like this: ~…

Inception! JS-in-JS!

Apparently this November has been the gloomiest in a while , and that certainly may have slowed down my on-going quest to bring arrow functions to V8 . Though arrow functions deserve a write-up themselves, my musings today are about a side quest that started in September, when I had the chance to visit enchanting Berlin one more time, this time as a speaker at JSConf EU . So what does a guy…

A tale of multiple processes in WebKitGTK+

One of the goals we defined during the 2013 edition of the WebKitGTK+ hackfest —among others— was enabling the Network Process, which my colleague Carlos already blogged about right after the hackfest , and with that in place, we would be then able to support having one Web Process for each WebKitWebView . Fast forward one month and a half to version 2.3.5 : this is the first release of WebKitGTK+…

Tagged-PDF: Coming to a Poppler near you

As part of the work Igalia has been doing on the Friends of GNOME Accessibility project , I implemented parsing the additional information present in Tagged-PDF documents in Poppler . The state of the implementation and all related issues are being tracked in Bugzilla using metabug #64813 : as of today, the first patches have been landed , and the rest are expected to be moved progressively from…

Optimizing Qt for MIPS: QString::fromLatin1

During the last months at Igalia we have been working on optimizing open source components for the MIPS architecture , using the SIMD instructions supported by the latest MIPS 74K cores . More specifically, I have been working on the Qt framework . One of the most used parts of Qt are the basic utilities in the QtCore module, being QString a basic building block that all applications are expected…

Back from FOSDEM — 2013 Edition

A couple of weekends ago I attended FOSDEM , my third time in a row sponsored by Igalia . Apart from the appeal of wandering around Brussels and enjoying what the European capital has to offer —mostly in the gastronomic field—, this year I had a presentation to make about the progress done in WebKitGTK+ during the last year . Because it was The room was quite full, so for those who could not make…

GUADEC, second round (for me)

Last summer I had the opportunity of attending the Desktop Summit in Berlin, and being it a great experience I was more than looking forward to attend GUADEC this year. Not just because it is going to be great to meet fellow hackers and friends after one year and attend the sessions, but also because it is taking place in A Coruña, where I lived for a decade. Last, but not least, there will be a…

List of articles about systemd

Even when my personal opinion on systemd is a bit skeptical regarding some of its components , it is undeniable that in the mid-term the main GNU/Linux distributions will be shipping it (or parts of it), and with Fedora having already adopted , it is just a matter of time before GNOME (as in “GNOME OS”) starts using it. So, for getting acquainted with it, I have installed it following the…

The GNOME, the OS and the OSTree

Traditionally, GNOME has been defined —and seen— as a project aiming to produce a desktop environment made of Free Software. Maybe you have read (or heard) the term “GNOME OS” lately, which started to pop out here and there a while ago, but still it may sound a lot like vaporware… far from that, it is being shaped up in this very moment, and GNOME 3 is just the tip of the iceberg. But isn’t making…

Some Tracker + SPARQL bits

Those are some notes about Tracker with links and information which has been useful to me when using Tracker as data storage backend in a project. Maybe those will be useful to someone else out there :) Reference documentation The basics are the W3C standards: SPARQL query syntax SPARQL update syntax The examples section in the Tracker wiki is easier to digest than the W3C documents, so it is…

Attending FOSDEM 2012

This year I will be attending FOSDEM for the second time, and I am really looking forward to it. Not only because my flight from Helsinki this year will allow me to arrive on time for the beer event , but because it is a great event that fosters the Libre Software / Open Source community, it is packed with loads of interesting talks and people have the possibility to get in direct touch with…

DMon 0.4.2 “Three Wise Men” released

Don’t expect lots of surprises this time, but an otherwise smooth maintenance release that includes a couple of minor niceties. Changes since version 0.4.1 mostly affected the logging tools ( dlog , dslog and drlog ): Logging tools now may accept input from arbitrary file descriptors, using the --input-fd command line option. This enables to do some nice redirection tricks from shell scripts and…

How to develop (simple) Quill filters (and make them available to users)

So, you are a developer and want to get your hands dirty coding for the for the Nokia N9 (and maybe you even got one of those nifty Nokia N950 handsets), or just want to add some extra capabilities to Quill … Anyway, for me the journey started while toying with the Gallery application : I noticed that three is no tool that would convert images to grayscale in the image edition mode! So I decided…

DMon 0.4: New guts & new features

Wow, that was a lot of time without me posting anything (five months), mostly because I am investing most of my spare time after work here in Finland for socializing. Still, from time to time one has to take a break, and there is no better way than just staying at home watching a good TV series , or doing some coding on pet projects . The later means that DMon got some love, and that version 0.4.1…

Live is live: How to use Tracker from Qt apps and have your view of the world up to date

I have been working lately with the Qt framework and the Tracker store. The first thing I noticed once got to know about the current Tracker incarnations is that it not just another metadata crawler with full-text search support for letting users locate content afterwards: it is also a structured storage system . Yes, you have read that correctly, and that means that additional data about items,…

”I am alive” update + going to FOSDEM

It’s been a long time since I posted an update, and as I am going to FOSDEM this year for first time, it looks like now is a good moment to tell everybody that I am still alive and kicking. Similarly to some other work mates , Igalia is sponsoring my trip to Brussels. A lot of us will be there, so it will be a great opportunity to meet some of them I have not seen for some time and have a beer or…

DMon status report: evolution to 0.3.7

When I first wrote about DMon , I pointed out that version 0.3 could be already installed from our APT repository , which hosts flavours for i386 , amd64 and armel . Five weeks have passed and I feel like I have to write a status update now that 0.3.7 is out . It is not a big version number change because DMon behaves essentially as in 0.3, but a number of new features were added and bugs fixed.…

Some thoughts (and code) around GObject-Introspection

There is one single thing that is, in my opinion, generating a fair amount of hype and reinvigorated interest in the GNOME platform: GObject-Introspection (or “GI” to save some typing). In short, it works like this: Library developers add annotations to the documentation comments of functions. The GI support tools generate XML and compiled API metadata. You have a library to use that metadata at…

DMon: Process monitoring with style

Have you ever wanted to run a lengthy process making sure that it will be restarted on failure? Did you need at some point to daemonize a “normal” program? Well, maybe you already knew about daemontools , runit , freedt , Supervisor , upstart or —recently— systemd . They already do a good job respawning processes, but there are three single things that neither of them are capable of doing: Running…

vfand: A daemon to control fan speed in Vaio laptops

Today I got tired of getting frequent lock-ups in my laptop, a Vaio TZ11MN/N which has been serving me just fine the during the past three years. I decided to investigate a bit because the machine was quite hot, and after some digging I found that the fan speed was being kept below 45, by reading from /sys . For example: cat…

How to make the Python interpreter friendlier

We are doing quite some coding in Python lately (well, and also at spare time ), and it is always nice to have the possibility of having the interactive interpreter to play with. But sometimes my mind refuses to stop working, so I wondered whether there would be a simple way of improving the overall user experience when using the stock Python interpreter without needing to install alternative ones…

Python recipe: Functional config file parsing

Sometimes one has to parse programmatically some file containing key=value pairs. In the world of systems administration this means configuration files most of the time. Also, one thing I like is functional programming , but in the real world one ends up making almost all of the code in imperative style. Python allows some functional constructs, and sometimes I like to use them to make code…

Factor out your Apache-fu with mod_macro

For nearly all HTTP-serving related work, our software of choice is the Apache web server. Lately, we have been moving some old setups which were still running Apache 1.3 to the latest version in the 2.x series. This may be a lot of work when the number of virtual hosts you are serving is far from low, or if you have some lengthy, repetitive configuration blocks which must be modified everytime…

More DebConf 9 adventures

Now it looks like it is time to complete my previous post about DebConf 9 , after a tiresome journey back from Cáceres to Coruña the 30th, an Igalia assembly the 31st (the first one ever for me :-D), and sleeping for more than 14 hours today. Fortunately I did not need to travel alone, as Diego came with me to visit Coruña and the journey was more enjoyable than the other way around. To make the…

First day at the DebConf 9

I arrived yesterday at the main venue after a the long trip by car: ~700km in a car without air conditioning. I was very tired so I headed up for my room (which is in an ancient building at the old town area of Cáceres ), had a shower and decided to take a nap… with so much success that I slept for two hours and a miracle made me wake up just in time for the Cheese & wine party . It was great to…

See you at DebConf 9

I will pick up my car and embark myself into a 8-hour trip to reach Cáceres tomorrow in the evening, after 699 km of road trip. The goal: attending (and enjoying!) the ninth edition of the Debian Conference , which has already started. As I do not know exactly the arrival time, I will skip the dinner tomorrow, but I will do my best to be at the Cheese & wine party and bringing some “tetilla”…

Some news, including Bill 0.2 release

Time has passed since the latest time I blogged about something, and some things have happened, so I think it is a good occasion to write some words. The first news is that I have just released Bill 0.2, which introduces the following changes: Change license to the new GPLv3 . Modules have now a .bash suffix instead of .bsh Compatibility fixes, so it now works better with Bash 3.1 Better handling…

Python talks Collectd

I have been playing lately with collectd again, which is a very nice piece of software to monitor out things, especially when you want more than just the network statistics that other tools like MRTG . In a coffee break someone commented that it would be interesting to process and display some if the data sent by collectd daemons installed in machines in real-time, and it sounded like a funny…

Bill 0.1-2 released

I have just relased version 0.1-2 of Bill , your favourite accompaniment for your shell-code meals. Albeit I have plans for an upcoming 0.2 which will break some backwards compatibility, this is a just a mainteinance release which introduces some bugfixes. Quick summary follows: Better test suite and fixes for the data/hash module Fix bug which prevented serving content from a non-default…

Meet Bill

It has been in the oven for some time, but now it is ready for release… Bill version 0.1 has just hit the lines! In short, Bill is a solution for creating high-quality Bash code using reusable components. As GNU Bash is its only dependency, it can be run nearly everywhere—even on resource-limited systems! Origins and motivation Sometimes one wants to spit out some code to glue together a set of…

Convert repositories with fast-{export,import}

Update 2010-01-23: Nowadays the plugin is packaged in Debian (package bzr-fastimport ) and Ubuntu (package bzr-fastexport ). Once installed you can just go and use bzr fast-export instead of the alias. Thanks to the people that commented about this update :) Those days I faced the need of moving a set of Bazaar branches into a set of Git repository, and althought I already knew about Tailor , but…

Tip: Faster remote shells with multiplexed SSH

Edit ~/.ssh/config (or /etc/ssh/ssh_config for sitewide configuration) and add the following snippet: Host * ControlMaster auto ControlPersist 120 ControlPath ~/.ssh/socket-%r@%h:%p This will create a socket for each set (user, machine, port) when the first SSH session is opened. Further sessions will see the socket and use it instead of opening a new connection,…

More btrfs goodness: snapshots

As I am currently working with KVM KVM and I will have some big disk image files hanging around, I thought it could be a good opportunity to give a try to the btrfs snapshot and subvolume support. First of all: snapshots and subvolumes are the same to btrfs . To be fair: snapshots are subvolumes with initial content . The nice thing about btrfs is the Copy-On-Write (COW) semantics: snapshots do…