This is me, Wu!
July 2016
Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
About
This site is an effort to share some of the base knowledge I have gathered through all this years working with Linux, FreeBSD, OpenBSD, Python or Zope, among others. So, take a look around and I hope you will find the contents useful.
Recent Entries
Recent Comments
Recent Trackbacks
Categories
OpenBSD (9 items)
BSD (0 items)
FreeBSD (19 items)
Linux (3 items)
Security (3 items)
Python (22 items)
Zope (13 items)
Daily (144 items)
e-shell (9 items)
Hacks (14 items)
PostgreSQL (3 items)
OSX (8 items)
Nintendo DS (0 items)
enlightenment (0 items)
Apache (3 items)
Nintendo Wii (1 items)
Django (24 items)
Music (12 items)
Plone (7 items)
Varnish (0 items)
Lugo (2 items)
Sendmail (0 items)
europython (7 items)
Cherokee (1 items)
self (1 items)
Nature (1 items)
Hiking (0 items)
uwsgi (0 items)
nginx (0 items)
cycling (7 items)
Networking (1 items)
DNS (0 items)
Archives
Links

Syndicate this site (XML)

RSS/RDF 0.91

25 junio
2016

Cyberpunk cycling

all geared up and connected!

A view of the road from Portomarin to Lugo from my bicycle

A couple of days ago I went on a ride in the morning. One of the usual routes I do around Lugo, first going southeast towards the mountains, then turning west, then northeast back to Lugo. Around 58 kms on both main/bigger roads and small and lovely secondary roads.

Something I do quite often this days, but this time something was different.

This time I had fun x 10. I felt so good, it was so much fun, I couldn't stop smiling. I even laughed out loud some times. It was like having an extra boost of adrenaline. It was real good fun there and, at one moment, I thought that I'd love Dolo to be there with me, having exactly that same sensation, feeling the joy and the fun.

"That won't happen any time soon" - I thought. I know, I know, not everybody likes the same things, same sports... but I thought it would be really nice to be able to share that with her.

And then an idea came to mind, like a lighting strike: SimStim!.

For those of you who hadn't read (yet) Neuromancer (seriously, go read it!), a SimStim allows one of the characters on the novel (Case) to be able to connect to another character (Molly) and live her experiences as his own, seeing what she sees, feeling what she feels (pain, joy, surprise, etc).

That'd be just perfect for sharing all the joy I had the other day while riding my bike. And, who knows, the future is just there, around the corner...

Posted by wu at 08:31 | Comments (0) | Trackbacks (0)
10 junio
2016

Sentry email notifications not arriving?

Hint: the timeout is the key!

Getsentry logo

I've been using Sentry for quite some time now in some projects, mostly all of them running python based applications and systems, and recently I did a major upgrade of a Sentry server to the latest version (8.3.1). It was an update with lots of changes, both in the Sentry internals and the dependencies needed by it (like the addition of Redis) but everything went more or less smoothly.

Once I had the server ready, I did upgrade the Raven client accordingly and I modified something in our staging server so an exception (IOError actually) was raised and the proper notification was sent to the Sentry server.

It worked just fine, the error message was sent to the server and it appeared on the Sentry web interface. Just perfect... or not?

Not really. After the error arrived in the Sentry server, a notification should have been sent to a mailing list where developers/support would see it and act accordingly. But that email never arrived and there was no error on the Sentry server logs.

When I took a look at the SMTP server logs, I found this

12:53:12 sm-mta[1534]: NOQUEUE: connect from my.sentry.server [xxx.xxx.xxx.xxx]
12:53:12 sm-mta[1534]: AUTH: available mech=SCRAM-SHA-1 DIGEST-MD5 OTP CRAM-MD5 ANONYMOUS, allowed mech=LOGIN PLAIN
12:53:12 sm-mta[1534]: u4JArC4c001534: Milter (bogom): init success to negotiate
12:53:12 sm-mta[1534]: u4JArC4c001534: Milter (opendkim): init success to negotiate
12:53:12 sm-mta[1534]: u4JArC4c001534: Milter (opendmarc): init success to negotiate
12:53:12 sm-mta[1534]: u4JArC4c001534: Milter: connect to filters
12:53:12 sm-mta[1534]: u4JArC4c001534: milter=bogom, action=connect, continue
12:53:12 sm-mta[1534]: u4JArC4c001534: milter=opendkim, action=connect, continue
12:53:13 sm-mta[1534]: u4JArC4c001534: milter=opendmarc, action=connect, continue
12:53:17 sm-mta[1534]: u4JArC4c001534: my.sentry.server [xxx.xxx.xxx.xxx] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA

Which basically means there was an incoming connection which was suddently closed by the client.

Weird.

Continue reading "Sentry email notifications not arriving?"
Posted by wu at 06:35 | Comments (0) | Trackbacks (0)
09 mayo
2016

Store python PersistentMapping objects into an objects TreeSet

When the OOTreeSet refuses to add new PersistentMapping objects...

I've been working with ZODB for quite some time now. First when I was doing Zope based web development (oh, the ol' good^hard days), then in some courses I gave about persistence and data storage in python, nowadays working with pyramid and still using ZODB for some apps.

Some days ago, working on one of those pyramid based projects, I found something really weird, something that was not working as expected, and it took me some time to figure out what was it. I'd like to share it, just in case it happens to any of you.

Continue reading "Store python PersistentMapping objects into an objects TreeSet"
Posted by wu at 08:47 | Comments (0) | Trackbacks (0)
05 mayo
2016

The Flower Power Sprint

The third one already in naxos!

Flying towards Greece

Exactly one month ago I had a long traveling day with r0sk. We left Lugo in the middle of the night and we got in a plane in A Coruña while it was still dark outside.

After a one-hour-and-something flight we arrived in Barcelona, where we got in another plane, this time the destination was Athens, Greece. We were on our way to one of our regular International Pizza sprints, when all the people working on the same project meet to work hand by hand for a few days (and then have lots of fun, of course).

Continue reading "The Flower Power Sprint"
Posted by wu at 00:00 | Comments (0) | Trackbacks (0)
25 abril
2016

The 100

Finally, I did a +100km ride, and in the best possible company

100 ride

10 of April, 2016

The alarm should ring at 07:00 (EEST), but I wake up way before that. I'm too excited to stay in bed, so I get out of the room as stealthy as I can, trying not to bother Oscar, sleeping in the other bed.

I left the clothes ready the day before, in the living room, so there is where I go after preparing breakfast (coffee, milk, bread and cheese).

Breakfast, coffee, milk, bread and cheese Preparing the coffee Preparing the bread and the cheese Having breakfast

I take it easy, eating slowly. It is always really hard to have breakfast so early, but today I manage quite well and I eat it all up. The bike is ready already, I put my cycling clothes on and I double check again that I have everything with me (Phone, Garmin, HR Sensor, GoPro, spare tube, tools...). Then I pick up Sascha's Jake to get outside.

Getting dressed with the cycling clothes (1) Getting dressed with the cycling clothes (2) Taking everything I need with me Almost ready for the start of the ride

Today we have planned to go on a longer ride together, Sascha and me. We will do the Apollonas round (clockwise), a route that covers something like 100 kms around the island of Naxos. We will pass by beaches, villages, valleys and mountains.

Leaving Damarionas, the road is waiting for me!

And I am pretty sure we will have looots of fun

Continue reading "The 100"
Posted by wu at 21:42 | Comments (0) | Trackbacks (0)
17 abril
2016

Moving through the big city

It had been a while since the last time I did this

Image of the Athens Metro, from the wikipedia

(image from the wikipedia)

Eleven days ago I hopped into a plane in A Coruña. That was the first part of a trip that would take me to Barcelona, then Athens, then the island of Naxos, in the Aegean Sea. We were going to have another International Pizza sprint, but that's a totally different story, I just wanted to add some context for this short story.

Yesterday I arrived in Piraeus around 15:00, as part of my trip back home. I did step down the boat (Blue Star Naxos) and I went to the Piraeus Metro station.

I was a bit excited. Moving around big cities is something that always excites me, specially if I'm not in a hurry to get quickly somewhere. I like to take my time, see what is happening around me and try to stop and watch even the smaller details.

Before going to the Metro station, I gave my bigger backpack to my friend Panos, so he and Oscar could take it on their motorbikes. Then I picked up the smaller backpack and a bigger piece of luggage, one of those harder suitcases with wheels (that they couldn't carry on the motorbikes). I also checked I had a book with me, real paper book this time, it was a novel from Haruki Murakami, Kafka on the shore.

Continue reading "Moving through the big city"
Posted by wu at 16:25 | Comments (0) | Trackbacks (0)
05 abril
2016

Why you should use NoScript

javascript is too powerful and buggy, and the internet is wilder than ever

http://e-shell.org/img/noscript.png

NoScript is an extension for the Firefox web browser that, among tons of other things, prevents Javascript code from being executed in the browser when you load a page.

Sounds simple, right? Well, NoScript has a lot more features and options, feel free to install it and take a look at its documentation and features, it is really worth it.

But here I want to focus on that hability, to prevent javascript code from being executed in your browser. This can be a bit annoying at first, specially nowadays when every website or webapp is using tons of javascript code for the most simple things, from displaying nice gallery carousels to modify the behaviour of clicks you do on links or buttons, passing by performing additional load of contents from third-party sources. If you don't believe me, just try to load a website like the Washington Post not letting your browser to load any javascript from that domain. You won't see the pictures, for example.

In some other websites the experience is even worse, all you get is message asking you to enable javascript if you want to get the contents; or even worse, a blank page without any contents or indications of why the contents are not there.

That's why many people ask me why - "Why do you have this blocker, which makes websites unusable?" - they ask. Even if I can allow (permanently or temporary) those javascript codes to be executed, people usually find this very annoying.

Well, the answer is for security reasons. Exactly as when I do a network firewall setup, I prefer to go with a block by default, then allow what is needed policy in my browser. I think this is a very good idea, specially if you take in account things like this bugs here:

https://bugs.chromium.org/p/project-zero/issues/detail?id=773

https://bugs.chromium.org/p/project-zero/issues/detail?id=693

If you look a bit further down Internet Lane you will find a lot more examples of bugs that can be exploited by simple Javascript code that is automatically executed in your browser when you load a website, so be careful when surfing through the Interwebz!

Posted by wu at 08:33 | Comments (0) | Trackbacks (0)