EuroPython: EuroPython 2016 Keynote: Naomi Ceder

Planet Python - Fri, 2016-05-27 05:13

We are pleased to announce our fourth keynote speaker for EuroPython 2016: Naomi Ceder.

About Naomi Ceder

Naomi Ceder has been learning, teaching, using, and talking about Python since 2001. She is the author of the Quick Python Book, 2nd edition and has served the Python community in various ways, including as an organizer for PyCon US and a member of the PSF Board of Directors. Naomi is also the co-founder of Trans*Code, a UK based hack day focusing on trans issues.

She speaks about her own experiences of marginalization with the hope of making the communities she loves more diverse and welcoming for everyone. In her spare time she enjoys knitting and deep philosophical conversations with her dogs.

The Keynote: Come for the Language, Stay for the Community

While Python the language is wonderful, the Python community and the personal, social, and professional benefits that flow from involvement in a community like ours are often more compelling.

“Learn about the goals of the Python Software Foundation and how everyone can take part to help build even better Python communities locally, regionally, and globally.  I will also discuss some of our strengths as a community, and also look at some of the challenges we face going forward.”

With gravitational regards,

EuroPython 2016 Team

Categories: FLOSS Project Planets

Chris Warrick: Code writing code: Python and Vim as development aids

Planet Python - Fri, 2016-05-27 04:46

Recently I was working on some C# and Java code. And along the way, I used Python and Vim to (re)write my code. A small Python script and a 6-keystroke Vim macro did it faster and better than a human would.

Every programmer should learn a good scripting language and use a programmable editor like Vim. Why? Here are two examples, after the break.

Episode I: INotifyPropertyChanged, or Python writing C#

I was building a private C# weekend project (that turned into a weeklong project) — and by the way, WPF and C# are quite pleasant (Windows Forms is a trainwreck, though). One of the things I used in that project was a DataGrid bound to a list of custom objects (a DataGrid is a table, basically). And in order to use it, you need to use the INotifyPropertyChanged interface (MSDN). It involves doing something like this:

private string name_ { get; set; }; // can also be a field [JsonProperty] public string name { get { return name_; } set { if (value != name_) { name_ = value; NotifyPropertyChanged("name"); } } }

That’s 12 lines of code (excluding [JsonProperty] which comes from the Json.NET library) for that pattern. Oh: and I need to do that for every field/property of my class, because otherwise any changes to them would not be reflected in the tables (and maybe one or two fields were not in the table).

Doing that by hand is really not feasible: you need to copy-paste this large block 14 times and take care of 5 instances of the name (3 with underscores, 2 without), 2 instances of the type, and the [JsonProperty] attribute (which does not appear on all properties).

So, I used one of those intelligent computer things to do it for me. I wrote a really simple Python script and ran it. And I ended up with all 14 fields built for me.


#!/usr/bin/env python3 TEMPLATE = """\ %spublic %s %s { get { return %s_; } set { if (value != %s_) { %s_ = value; NotifyPropertyChanged("%s"); } } } """ JSONPROPERTY_TEMPLATE = '[JsonProperty]\n ' def write(has_jsonproperty, vtype, name): if has_jsonproperty: jsonproperty = JSONPROPERTY_TEMPLATE else: jsonproperty = '' return TEMPLATE % (jsonproperty, vtype, name, name, name, name, name) properties = [ '1 string name', '0 int another', # 12 fields omitted for brevity ] properties_split = [p.split() for p in properties] # Private definitions (internal) for has_jsonproperty, vtype, name in properties_split: print(" private %s %s_ { get; set; }" % (vtype, name)) print() # Public definitions (with notifications) for has_jsonproperty, vtype, name in properties_split: print(write(has_jsonproperty == '1', vtype, name))

That script takes a list of properties and spits out a block of code, ready to be pasted into the code. Visual Studio has a nice Insert File as Text feature, so redirecting the output to a file and using that option is enough.

Episode II: Fixing argument order, or Vim (re)writing Java

Another project, Number Namer, written in Java, and it does what it says on the tin: takes a number and writes it out as words, while being multilingual and extensible. I used Eclipse for this project, because it looks good, is really helpful with its code linting, and does not run slowly on my aging system (I’m looking at you, IntelliJ IDEA aka PyCharm aka Android Studio…)

And so, I was building a test suite, using JUnit. It’s pretty straightforward, and I remember the syntax from Python’s unittest (even though I write tests with pytest nowadays). Or so I thought.

// (incorrect) assertEquals("Basic integers (7) failed", namer.name(7L), "seven"); // (fixed) ^ cursor assertEquals("Basic integers (7) failed", "seven", namer.name(7L));

You see, the typical Python spelling is self.assertEquals(actual, expected). Java adds a String message parameter and it also swaps actual and expected. Which I didn’t notice at first, and I wrote my assertions incorrectly. While it doesn’t really matter (it will still work), the output looked a bit weird.

And I noticed only when I finished writing my tests (and I had a typo in my expected output). I wanted to fix them all — not manually, of course. So, I closed this file, brought up Vim, searched for the motion I need (it’s t{char} — see :help t). And I ended up with this (cursor placed on the comma after the first argument):


What does this do, you may ask? It’s actually pretty self-explanatory:

delete till comma, (go) till closing parenthesis, paste.

This fixes one line. Automatically. Make it a macro (wrap in qq … q, use with @q) and now you can run it on all lines, either by moving manually or by searching for , and pressing n@q until you run out of lines.


Some of you might say “but VS/Eclipse/IDEA has an option for that somewhere” or “[expensive tool] can do that” — and a Google search shows that there is an Eclipse plugin to swap arguments and that I could also write a regex to solve my second issue. Nevertheless, Python is a great tool in a programmer’s toolbox — especially the interactive interpreter. And Vim is an awesome editor that can accomplish magic in a few keystrokes — and there are many more things you can do with it.

Go learn Python and Vim now.

Also: don’t even bother with VsVim or IdeaVim or any other Vim emulation plugins, they work in unusual ways and often don’t give you everything — for example, VsVim has a Vim visual mode (v key) and Visual Studio selection mode (mouse), and only one allows Vim keystrokes (the other will replace selected text).

Categories: FLOSS Project Planets

Answer about “Akonadi for e-mail needs to die” blog

Planet KDE - Fri, 2016-05-27 01:07

Yesterday morning I read planetkde.org as usual before to hack on kdepim and I saw this blog.

I thought that it was a constructive blog, but not!

(As all your articles on your blog about kdepim. I don’t understand why you are not able to switch to another mailer before.)
Mr “Andreas K. Hüttel” is just an user which was frustrated by a bug about his IMAP server.

I can confirm that KMail is not free bug, Akonadi is not perfect too. We work a lot each days to fix the bugs. You can make the same blog about each application which doesn’t work as you want. You can criticize all these programs and wrote that developers lose their time to work on. I hope that you wrote some blog as it for Kernel Linux, Xorg, LibreOffice etc. for sure they are not perfect too.

KDEPIM team is small but I think that we make a good work. Perhaps you should read kde-commit to see all fixes that we did…

But Mr “Andreas K. Hüttel” I can tell you:

  • Nobody forced you to use KMail ! We are in open-source world, you are not happy by an application you can use another one!
  • I didn’t see a patch from you about KMail to try to fix it. So how can you told us that it was an error to migrate to Akonadi (just because it doesn’t work for you?). Did you study on which technology it’s based ?
  • When you wrote ” What is dead should better remain dead, and not suffer continuous revival efforts while users run away and the brand is damaged.” Who are you to tell us to stop to develop  KMail based on Akonadi ?
  • “Also, I’m a volunteer myself and invest a lot of time and effort into Linux. I’ve been seeing the resulting fallout. It likely scared off other prospective help.” Ok so I will wait to see your work about the fork of kdepim based on qt4. I am sure that you will able to make better than us (poor kdepim team). You know you can port it to qt5 and we will see if you will be able to fix all bugs not just your bugs. I hope that you will able to reproduce all of them.

Now Mr “Andreas K. Hüttel” with a blog as it you will discourage for sure some new user/developer, but also people  which helps us, they will think that they’re wasting their time. It’s unacceptable. 

Mr “Andreas K. Hüttel” you just have NOT ANY respect for all work done by the KDEPIM team, by the doc team, by the i18n team, by all user support guys, by the users which reported bugs.

Mr “Andreas K. Hüttel” if a day you are able to work on a project you will see that it’s not possible to reproduce all bugs because we don’t have all the time, we don’t have the same environment. Fixing a bug take time when we can’t reproduce when it’s a corner case. Some time we don’t have the good technology as a specific server IMAP etc. But perhaps it’s too hard for you to understand it.

Ok Mr “Andreas K. Hüttel” it’s sad that we were not able to fix your bug, but it’s more sad that you think that all kdepim team work is a lost of time.

As I wrote who are you to tell us that it’s a lost of time ?

Do you provide a technical solution ? NO

So for your information we will not stop to develop KMail because you think it’s a lost of time. We will continue, I will continue because I know that a lot of people uses it and they are happy with KMail based on Akonadi. I will continue to “lose my time” each day as I respect users which use KMail, it’s not your case.

I want to thank all people which participate, all guys was participating  to KMail improvement. We make KMail better for sure. Thanks guys. Thanks Doc Team, Thanks I18n Team, Thanks User Team Support, Thanks happy users, Thanks not happy users which understand our work.

To conclude we are in open-source you are not happy you can use another application, all developer is  able to choice on which technology he wants to develop, but it’s really unacceptable as you reduce kdepim team work (and other teams) to a lost of time because you are just a frustrated person.

Categories: FLOSS Project Planets

Chapter Three: Scripting Drupal Development With Drush

Planet Drupal - Fri, 2016-05-27 00:50

Whether you work on one Drupal site or multiple, it is often necessary for your local dev environment to be slightly different from your site's server.  Perhaps you need to disable Secure Pages because you don't want to set up SSL on your local environment, or there are modules specific to your website's server config.  If you work on multiple sites in a sporadic fashion its possible you need to synchronize your local database with the dev server between tasks, that way you aren't missing any updated configurations.

Sure, you can pull this off manually by grabbing the database, reloading your local, and updating your Drupal site's config; but why not add a little automation to help out?

Categories: FLOSS Project Planets

Dirk Eddelbuettel: rfoaas 0.1.9

Planet Debian - Thu, 2016-05-26 22:02

Time for new release! We just updated rfoaas on CRAN, and it now corresponds to version 0.1.9 of the FOAAS API.

The rfoaas package provides an interface for R to the most excellent FOAAS service--which provides a modern, scalable and RESTful web service for the frequent need to tell someone to f$#@ off.

Release 0.1.9 brings three new access point functions: greed(), me() and morning(). It also adds an S3 print method for the returned object. A demo of first of these additions in shown in the image in this post.

As usual, CRANberries provides a diff to the previous CRAN release. Questions, comments etc should go to the GitHub issue tracker.

This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

Categories: FLOSS Project Planets

Daniel Roy Greenfeld: Pretty Formatting JSON in the Django Admin

Planet Python - Thu, 2016-05-26 20:00

Recently I was writing code to interact with a third-party API. The API changes frequently, especially the data contained in responses. However, that data has to be saved and periodically needs to be audited. I wanted a data model flexible enough to handle these periodic changes without a lot of anguish, yet queryable. Since the API serves out queryable JSON, this made it a no-brainer for using django.contrib.postgres's JSONField.

After a little bit of work, I had data samples to play with. Quickly my admin filled with chunks of JSON that looked something like this:

{"field_12": 8, "field_16": 4, "field_6": 14, "field_7": 13, "field_18": 2, "field_2": 18, "field_4": 16, "field_15": 5, "field_9": 11, "field_3": 17, "field_8": 12, "field_11": 9, "field_17": 3, "field_10": 10, "field_0": 20, "field_1": 19, "field_13": 7, "field_5": 15, "field_14": 6}

Kind of illegible, right? And that's a simple, flat example with just 20 keys. Imagine if this were a nested dictionary with 100 or 200 fields. For reference, that's the kind of data that I had that makes this kind of display nigh useless.

So I cooked up this quick fix:

import json from pygments import highlight from pygments.lexers import JsonLexer from pygments.formatters import HtmlFormatter from django.contrib import admin from django.utils.safestring import mark_safe from .models import APIData class APIDataAdmin(admin.ModelAdmin): readonly_fields = ('data_prettified',) def data_prettified(self, instance): """Function to display pretty version of our data""" # Convert the data to sorted, indented JSON response = json.dumps(instance.data, sort_keys=True, indent=2) # Truncate the data. Alter as needed response = response[:5000] # Get the Pygments formatter formatter = HtmlFormatter(style='colorful') # Highlight the data response = highlight(response, JsonLexer(), formatter) # Get the stylesheet style = "<style>" + formatter.get_style_defs() + "</style><br>" # Safe the output return mark_safe(style + response) data_prettified.short_description = 'data prettified' admin.site.register(APIData, APIDataAdmin)

The field remains the same, but we also get a display of nicely formatted data:

Much better!

There may be a package out there that does this already, perhaps even using a JavaScript library like hightlight.js instead of pygments. If not, it shouldn't be hard to create one using Cookiecutter Django Package. Let me know if you package this and I'll add it to this blog post.

See you at PyCon!

I'll be at PyCon with Audrey Roy Greenfeld. You can easily find us at the Cookiecutter booth during the main conference days or at the Cookiecutter sprint. Stop by and say hi!

Categories: FLOSS Project Planets

liberty-eiffel @ Savannah: Liberty Eiffel release: 2016.05 (Bell)

GNU Planet! - Thu, 2016-05-26 17:07

We are happy to announce the first release since LibertyEiffel officially is under the umbrella of GNU, 2016.05, code-named "Bell" (after Alexander Graham Bell - Scottish engineer).

Get it from one of the following sources
- Tarball:
- Debian/Ubuntu packages:
http://apt.liberty-eiffel.org/ release main
- Git repository:

Looking forward to a promising time with an emerging community, stay tuned and have fun!

Categories: FLOSS Project Planets

Iustin Pop: First run in 2016

Planet Debian - Thu, 2016-05-26 17:06

Today I finally ran a bit outside, for the first time in 2016. Actually, for even longer—the first run since May 2015. I have been only biking in the last year, so this was a very pleasant change of pace (hah), even if just a short run (below 4K).

The funny thing is that since I've been biking consistently (and hard) in the last two months, my fitness level is reasonable, so I managed to beat my all-time personal records for 1 Km and 1 mile (I never sprint, so these are just 'best of' segments out of longer runs). It's probably because I only did ~3.8Km, but still, I was very surprised, since I planned and did an easy run. How could I beat my all-time PR, even better than the times back in 2012 when I was doing regular running?

Even the average pace over the entire run was better than my last training runs (~5Km) back in April/May 2015, by 15-45s.

I guess cross-training does work after all, at least when competing against myself ☺

Categories: FLOSS Project Planets

Four Kitchens: What’s on the Horizon for Drupal?

Planet Drupal - Thu, 2016-05-26 12:00

The Drupal community is self-reflective enough to see the flaws in the project and brave enough to reinvent itself. …

Categories: FLOSS Project Planets

Acquia Developer Center Blog: Acquia U, before and after - meet Ally Gonthier

Planet Drupal - Thu, 2016-05-26 11:56

I sat down with Ally Gonthier the first time I visited Acquia's then-new downtown Boston headquarters in mid-2015. At the time, she was preparing to leave her job as Support Coordinator at Acquia to enter Acquia's Drupal/tech bootcamp, known as Acquia U. When I returned to Boston in the spring of 2016, I took the chance to talk with her again about her experiences at Acquia U and what had become of her in the meantime. Below is a transcript of our before and after conversations.

Before and after on video

More with Ally
Before Acquia U: Mid 2015

jam: Hey. We are at Acquia’s brand-spanking-new headquarters. It’s been barely any time. This is only my third day here ever and we’re in downtown Boston, and it’s kind of exciting. I am with a current and future colleague, right? Why don’t you introduce yourself and tell us something about you.

Ally Gonthier: Something?

jam: Yes, whatever you like. Maybe something non-Drupaly.

Ally Gonthier: Okay. My name is Ally. My last name is pronounced differently depending on where you are in the world. In America, it’s Gonthier [read in American accent]. In France, it’s Gonthier [read in beautiful French accent], which is way better.

jam: Way better, okay. So I’m with Ally Gonthier. What’s your job at Acquia right now?

Ally Gonthier: I am a senior customer support coordinator, which is sort of a complicated-ish but not really.

jam: Interestingly, you’re about to be a "Ubie". So you’re changing from this job and going into Acquia’s Drupal training program.

Ally Gonthier: Yes.

jam: Why are you doing that?

Ally Gonthier: So I’m in support right now and it’s a very entry level position. There’s a lot to do, a lot of tasks to be done. To get me to the next level, I need to learn a lot more about Drupal and as intensely as I can, so ...

jam: And you’re excited about Drupal and you want ... ?

Ally Gonthier: Yes.

jam: You’re all about the Drupal now?

Ally Gonthier: That’s why I’m here.

jam: Okay. So this sounds kind of silly in context, but how did you hear about the Acquia U program?

Ally Gonthier: I literally met Amy who’s running the program at a Drupal camp last September and I bumped into her. We worked together but I didn’t even know who she was and we – she introduced herself to me and I was like fly paper. I didn’t leave her alone.

jam: Wow! Okay, okay. And had you heard of Drupal before you came to Acquia?

Ally Gonthier: Yes, yes. So I have been ... a “Supportian” for a while now. I had other jobs in life but when I went into sort of a technical land I found support really fit my personality well because not only do I enjoy learning and doing technical things, but I’m also really empathetic for customers. I really want to help people, and help them understand and ... I’m not necessarily a people person but I care if that makes sense, you know?

jam: No, it does. I think support, it’s actually such a great fit for people steeped in the open source mentality because you really do help people succeed and it’s all about transparency and sharing, right? And then I’ve also been told by other people from Acquia support that the difference between working in a support role and working in some company building website ...

Ally Gonthier: Like a help desk, right?

jam: Right. Well, you get to look at a different code base every day.

Ally Gonthier: Yes, absolutely.

jam: You’re not just working on the one thing for ...

Ally Gonthier: It’s every day is different. Every customer is different. It’s a different challenge every day. It’s great for somebody who doesn’t want to do the same thing all day every day.

jam: What’s your first Drupal memory?

Ally Gonthier: My first Drupal memory? Interesting. Well, honestly, I mean I learned about Acquia, obviously, because of Drupal but I was just looking into web design maybe five/six years ago. I just was comparing all the big CMSs or whatever was available at that time and I was like, “What is the best? And what is the hardest? And, okay, Drupal it is.” Then, I just started – I literally bought a book and I went front to back.

jam: What made you stick with it then?

Ally Gonthier: Honestly, I learned about – I figured I – I saw Acquia and they had some really neat tools that we still have this time like we had Dev Desktop which just made it really easy to spin up a site and play with it. Then, we had Drupal Gardens as well which you could just customize and then export that and then throw it wherever. So I did that for a couple of friends’ websites, and then I was like, “Where are these people located?” I saw they’re hiring so I just looked at their hiring page and applied to every job I could.

jam: Are you from the Boston area?

Ally Gonthier: Yes.

jam: Oh, that helped too, right?

Ally Gonthier: Yes.

jam: Okay, cool. So, how did you feel when you were accepted into the new Acquia U class?

Ally Gonthier: I’m ecstatic. I could not be more excited.

jam: Awesome. What were your expectations going in?

Ally Gonthier: I’m a little anxious, you know? I’m not super confident myself. I don’t know. It’s just something I had to work on. I mean, I’m going to just dive in and learn as much as I can and absorb it all.

jam: High five to that. So is it okay if we check-in again over the course of the program and see how you’re doing?

Ally Gonthier: Sure, absolutely.

jam: All right. I will see you some time soon.

Ally Gonthier: Okay.

jam: And good luck on Acquia U.

Ally Gonthier: All right, thanks.

jam: Thanks for talking to me.

Ally Gonthier: All right, great.

After Acquia U: Early 2016

jam: Ally Gonthier, it is now early-ish 2016. How are you?

Ally Gonthier: I’m well.

jam: Last time we were talking was the middle of 2015, right? And you were just going into Acquia U.

Ally Gonthier: Right.

jam: To recap, you’ve been at Acquia a while.

Ally Gonthier: Yes.

jam: And until you did Acquia U, your job title was?

Ally Gonthier: I was a Customer Support Coordinator.

jam: And what was your Drupal level, Drupal experience to be in that job?

Ally Gonthier: Zero basically. I didn’t need any Drupal experience for that position.

jam: Support coordinator?

Ally Gonthier: Yes.

jam: Then, you had the chance to do the Acquia U Drupal Bootcamp, tech boot camp thing.

Ally Gonthier: Yes, yes.

jam: How was that?

Ally Gonthier: That was eye-opening. It was crazy. It was fun. It was overwhelming. Every single emotion that I could ever – I was pushed to my limit and beyond. I cried more than once. I laughed more than once.

jam: I mean, it sounds funny that you say that but I’ve talked with a bunch of people ... It was a really powerful experience for a lot of people who have gone through the program.

Ally Gonthier: Yes, yes. I did things that I would have never normally have done and it gave me the Drupal picture, which I did not have before. It empowered me with my confidence. I knew what I wanted. I was just – it was a great experience.

jam: So I want to roll it back for a second. How did you end up at Acquia in the first place?

Ally Gonthier: I had always been in tech support for quite a while, different roles, different companies. I was sort of getting interested in web design, web development, and I was like, “Well, what’s the best?” So I was drawn to Drupal and I just literally downloaded Acquia Dev Desktop. I was like, “I wonder where these guys live.” I was like, “Oh, that’s 20 minutes away.” So I applied to three different positions. I interviewed for all of them and then they hired me.

jam: Cool, okay. So what was your thought process in going into Acquia U? What were you hoping for?

Ally Gonthier: I wasn’t sure. Ultimately, I wanted to grow and I wanted to try something different. Sad to say, but I wanted to make more money in the long run so ...

jam: There is nothing sad about that and, frankly, that’s a completely legitimate goal.

jam: What are some of the skills, some of the things that you learned in the – during the course?

Ally Gonthier: We built a bunch of different Drupal sites and, like I mentioned, it gave me the – it helped me for the big picture anyway. Like now I feel like I might not be a Drupal expert but I can join in the conversation and I can understand what my peers are talking about, you know? That’s like sort of the big part of it. I might not be an expert, but I know where the experts are. Now, I can have conversations with them, and grab that feedback, and learn from it so ...

jam: Even knowing how to figure out what the right question is and how to answer the question opens the door to enormous career, well, and enormous possibilities whether those are in career or whether doing something for yourself or your community with technology, right?

Ally Gonthier: Yes, absolutely. Yes.

jam: So what’s your title now? Did you get a new job coming out of Acquia U?

Ally Gonthier: I did. I am a Support Engineer now so yes.

jam: So you do actual Drupal on the job?

Ally Gonthier: Yes, I do. Yes, exactly. That’s right. So just like you described, I take questions. I might not know the answer, but I can find the answer and I have resources to help me with that. I’ve learned so much and every day just flies by. Of course, I’ve always loved the people I work with here. So I wouldn’t want to go anywhere else really.

jam: One of the things that I’ve always really admired about the approach that our global support team takes is that we’re not about – you have a problem with your website, you tell us what it is. We’ll fix it and then we’ll tell you it’s fixed and then go away. I’ve seen a lot of people share. They say, “Hey, so this got misconfigured. There was a problem on the server. The file system is corrupt in this way and these are the things that we did.” And whether subtle or not, we’re giving people the tools to help themselves or maybe not create the same problem for the second time. I imagine that you’ve got a situation where you now know enough about Drupal. You see all of these different everyday problems that people are having and every one of those is a chance for you to learn as well, right?

Ally Gonthier: Exactly, exactly. Definitely, yes.

jam: So you become more of an expert every day, more ready for – readier for new challenges, for new possibilities?

Ally Gonthier: Yes, that describes it. It’s fun. I like it.

jam: So you’re a problem solving sort of person?

Ally Gonthier: I am. I can’t do the same thing every day type of person if that makes sense.

jam: Oh, yes. So I remember talking with someone about their job in support saying that the best thing about working in support compared to working on a client project or an in-house project was, “Actually, I don’t have to touch the same code base every day. I get a completely different work day every day.”

Ally Gonthier: Every single day is something different. Different and you might touch something and not touch it again for three months. For me personally, it helps because I get bored honestly and in that kind of atmosphere, it’s really difficult to be bored, you know? So ...

jam: That’s really cool. So do you – let me think how to ask this. Do you have new and different career ambitions now?

Ally Gonthier: No, I don’t. I think I’m in a different point now where I’m just trying to do well at what I’m doing right now. Then, I’ve always thought of that like, “What’s next? What’s next? What’s next?” Right now, I’m just focusing on now and I’ll re-evaluate that eventually but for the time being, I’m pretty happy where I am right now so ...

jam: Cool, and Acquia U was part of putting you in this space right now. You’re pretty happy to sit and learn, and do this stuff?

Ally Gonthier: Yes, 100%. Yes, definitely.

jam: Cool. Well, congratulations.

Ally Gonthier: Thank you.

jam: We should probably make a pitch for Acquia Support being a really fun place to work.

Ally Gonthier: Yes, it is a lot of fun.

jam: Ally is a lot of fun to work with. I know that. So cool. So Acquia U, worth doing?

Ally Gonthier: Yes, yes. It was challenging. It was great. It was a good experience. It got me to where I wanted to be, so very happy for that.

jam: Excellent. Hey, so thanks for taking the time to come back and talk with me again.

Ally Gonthier: No problem.

jam: And you people watching this out on the internet have seen before Ally and this is after Ally.

Ally Gonthier: I’m sure I looked the same I hope.

jam: Well, you look enriched with Drupal knowledge now.

Ally Gonthier: Yes, I have the tattoo. No, I’m just kidding.

jam: Oh, you didn’t? Yes, you have to get that once you’ve taken the course.

Ally Gonthier: I know the secret handshake. No, I’m just kidding.

jam: It’s true. It’s real. Thanks, Ally.

Ally Gonthier: Thanks, jam.

Skill Level: BeginnerIntermediateAdvanced
Categories: FLOSS Project Planets

GNUnet News: GNU Hacker Meeting August 16-20 2016 (Rennes)

GNU Planet! - Thu, 2016-05-26 11:38

This is the official registration page for the 9th GNU Hacker Meeting 2016. Please read the instructions carefully.

The previous time, we had twice as many people register as showed up, resulting in significant unnecessary expenses. To avoid this, registration is not exactly free this time. Instead, if you are:

Categories: FLOSS Project Planets

Drupalize.Me: What's New in Drupal 8.1.0

Planet Drupal - Thu, 2016-05-26 11:10

Drupal 8.1.0 was released on April 20th. There are a few things that are exciting about this release; in particular the 2 new experimental modules BigPipe and Drupal Migrate UI.

Categories: FLOSS Project Planets

Lisandro Damián Nicanor Pérez Meyer: Do you want Qt5's QWebEngine in Debian? Do you have library packaging skills? If so, step up!

Planet Debian - Thu, 2016-05-26 10:51
So far the only missing submodule in Debian's Qt5 stack is QtWebEngine. None of us the current Qt maintainers have the time/will to do the necessary stuff to have it properly packaged.

So if you would like to have QtWebEngine in Debian and:

  • You have C++ libraries' packaging skills.
  • You have a powerful enough machine/enough patience to do the necessary builds (8+ GB RAM+swap required).
  • You are willing to deal with 3rd party embedded software.
  • You are willing to keep up with security fixes.
  • You are accessible through IRC and have the necessary communications skills to work together with the rest of the team.
Then you are the right person for this task. Do not hesitate in pinging me on #debian-kde, irc.oftc.net.
Categories: FLOSS Project Planets

Chapter Three: How to Register an Event Subscriber in Drupal 8

Planet Drupal - Thu, 2016-05-26 10:30

Events in Drupal 8 allow for different components of the system to interact and communicate with each other. One system component dispatches the event at an appropriate time; many events are dispatched by Drupal core and the Symfony framework in every request. Other system components can register as event subscribers; when an event is dispatched, a method is called on each registered subscriber, allowing each one to react.

Most of the hooks from previous versions of Drupal were removed in Drupal 8 in favor of Events. Example: hook_boot() which now can be done by registering an event subscriber.

I will use the following structure for the example module:

Categories: FLOSS Project Planets

Acquia Developer Center Blog: Four Ways That Acquia Cloud Helps You Develop Drupal Sites FAST: #1. Simple Code, Workflow, and Local Development

Planet Drupal - Thu, 2016-05-26 10:17

When you spin up sites for a living, velocity is important. The developers at Acquia understand this, which is why we’re always looking for ways to make website development simpler and easier. Because that equals faster.

Many of our customers are already using these tools and practices. But we’d like to spread the word further.

We know you’re facing really challenging situations. We’ve got tools that will help you get past them, without taking up an entire afternoon. We can speed you up, and speed up your team.

Tags: acquia drupal planet
Categories: FLOSS Project Planets

Evolving Web: Drush Commands for Themers and Site Builders

Planet Drupal - Thu, 2016-05-26 10:02

Most people think that using the drush command-line tool is only something hardcore developers do, but it turns out it's also super-helpful for site builders and theme developers too! In my experience, using drush will speed up from 3 to 10 times usual Drupal Admin tasks, compared with visiting the Drupal admin pages in the browser. 

read more
Categories: FLOSS Project Planets

PyCharm: Announcing PyCharm 2016.1.4

Planet Python - Thu, 2016-05-26 09:55

PyCharm 2016.1.4 has been uploaded and is now available from the download page. It also will be available soon as a patch update from within the IDE.

The Release Notes lists all fixes for this update. This build doesn’t have any additional fixes comparing to the PyCharm 2016.1.4 Release Candidate build, so here’s the recap:

  • numerous performance improvements along with fixes for various hangs
  • a number of fixes for Docker-based python interpreters and Docker Compose support
  • a fix for exception while renaming a string format parameter
  • and much more

Download PyСharm 2016.1.4 for your platform from our website and please report any problem you found in the Issue Tracker.

If you would like to discuss your experiences with PyCharm, we look forward to your feedback in comments to this post and on twitter.

The Drive to Develop
PyCharm team

Categories: FLOSS Project Planets

Import Python: ImportPython Issue 74

Planet Python - Thu, 2016-05-26 09:41

Worthy Read
Find Freelance work OR Find Your Top Developers
Toptal is an exclusive network of the top freelance software developers and designers in the world. Top companies rely on Toptal freelancers for their most important projects. Apply as a Python Freelancer. See why top startups depend on Toptal to connect them with elite developers, hand-picked to match their needs. Work with top developers on an on-demand basis.Sponsor
Python Developers Survey 2016: FindingscommunityRecently we conducted a survey among more than 1,000 Python developers to identify the latest trends and gain insight into how the Python development world looks today. We’re excited to share some of these results with you. It's pretty interesting check it out.

GitHub - SykoTheKiD/DockerDjangoRest: A Docker setup for a Django REST API with Travis CI supportdockerA Docker setup for a Django REST API with Travis CI support. Includes Python 2.X and Python 3.X, PostgreSQL, Unicorn ,Nginx, Travis CI Integration.

How To Serve Django Applications with uWSGI and Nginx on Ubuntu 16.04 | DigitalOceandjangoIn this guide, we will demonstrate how to install and configure some components on Ubuntu 16.04 to support and serve Django applications. We will configure the uWSGI application container server to interface with our applications. We will then set up Nginx to reverse proxy to uWSGI, giving us access to its security and performance features to serve our apps.

Django Channels for Background TasksdjangoThis little tutorial is what you need to add a background task processor to Django using channels. Our task for this example will just be outputting "Hello, Channels!", but you could image running a subprocess on some data or sending an email.

Python 101: An Intro to Benchmarking your codebenchmarkThe main idea behind benchmarking or profiling is to figure out how fast your code executes and where the bottlenecks are. The main reason to do this sort of thing is for optimization. You will run into situations where you need your code to run faster because your business needs have changed. When this happens, you will need to figure out what parts of your code are slowing it down. This article will cover how to profile your code.

Convert between XML and native Python data structures with jxmleasecore python, xmlOne of the important realizations we made was that Python objects also have metadata. So, we can represent the XML data as normal Python objects, but store the XML metadata as metadata in the resulting Python objects. Using jxmlease, you can easily convert XML data to Python data structures. Here, the 'xml' variable contains the XML document shown in Example 2 (below). You convert it to Python data objects and print it.

A Look at two Python Plugin Managers: Stevedore and PikeIf you’ve worked with OpenStack code for even a minimal amount of time you’ve probably come across a Python plugin library called stevedore. The second Python plugin manager I’m going to cover is pike.

Python Software Foundation News: Brett Cannon wins Frank Willison Awardcore pythonThis morning at OSCON, O'Reilly Media gave Brett Cannon the Frank Willison Memorial Award. The award recognises Cannon's contributions to CPython as a core developer and project manager for over a decade.

Kel — an open-source, Kubernetes-based PaaS built in Python and GoKel™ is an open-source Platform as a Service (PaaS) from Eldarion® that makes it easy to manage web application deployment and hosting through the entire software lifecycle. Kel helps DevOps professionals manage their application infrastructure through a layer of tools and components that make Kubernetes accessible and easier to use. Kel builds on Eldarion's 7+ years experience running Gondor, one of the leading Python / Django PaaS solutions.

Exploring U.S. Traffic Fatality Datadata scienceAt a ChiPy event, Nick Bennett gave an excellent talk on traffic fatalities and how he attempts to visualize the publicly available data. The accompanying GitHub repo shows how he accessed and manipulated some of that data with Python tools and then used a couple of different web mapping services to visualize it. The talk prompted some informative comments from the audience and inspired me to further analyze the data myself.

bisect — Maintain Lists in Sorted Orderrcore pythonThe bisect module implements an algorithm for inserting elements into a list while maintaining the list in sorted order.

Group Chat for Teams
A chat tool that's actually built for teams and businesses. Try HipChat for free today!Sponsor

Upcoming Conference / User Group Meet
PyCon Singapore 2016
GeoPython 2016
PyCon Australia 2016
PyOhio 2016
EuroPython 2016

bless - 400 Stars, 12 ForkRepository for BLESS, an SSH Certificate Authority that runs as a AWS Lambda function
fizz-buzz-tensorflow - 264 Stars, 12 Forkfizz buzz in tensorflow
Open-Browser - 89 Stars, 22 ForkA web browser designed to open, minimal and fast.
HN-Saved-Links-Export - 35 Stars, 1 ForkExport your saved links on HN as JSON or CSV, with only a few keystrokes.
pytablewriter - 20 Stars, 0 Forkpytablewriter is a python library to write a table in various formats: CSV/HTML/JavaScript/JSON/Markdown/Excel/Pandas/Python/reStructuredText
Categories: FLOSS Project Planets

A. Jesse Jiryu Davis: Captioning Myself And 6 Other Ways I'll Prepare In The 24 Hours Before I Speak At Pycon

Planet Python - Thu, 2016-05-26 09:34

At 1:10pm Pacific Time this Wednesday, I'll be in Portland, sitting in a lecture room at PyCon, judging the right moment to walk on stage and start my talk. I have a regimen for the 24 hours before that primes me to give you the best talk I can.

This whole series of articles about conference speaking is inspired by my friend Sasha Laundy's 24 hours checklist, which is the definitive guide for public speakers. I'll add a few more tips for you to choose among, particularly my method to ensure my talk is accessible to Deaf people.


Most of my audience will be there because they saw my talk on the schedule and like the topic. Still, it won't hurt to compose a few tweets advertising my talk, before nervousness robs me of wit, and schedule them for the night and morning before my talk. (I need to remember to set Buffer to PDT so it tweets at the right time in Portland.)

Landing Page

I'll make a page on my site with links to further study. I've collected links about my topic during the months when I wrote my proposal and outlined my talk, so I'll assemble those into a landing page on my site.

(Next week when PyCon publishes the video of my talk, I can link to it from this page for future visitors.)

To show you an example: I made a landing page for the talk I gave last year titled "Eventually Correct", about testing asynchronous applications. I had used Super Mario Bros. as a gimmicky analogy in the talk, so I continued the theme on the landing page with more Super Mario stuff, as well as links to my code and related libraries.

Unlike a blog post, a "page" on my site is not automatically linked from my home page, so publishing it won't spoil my talk. Once it's online, I make a memorable shortlink to it. (Last year's was "bit.ly/eventually-correct".) I'll add this link to my last slide, and I'll also schedule a tweet with the link at 1:40pm, towards the ending of my speaking slot.


I'll rehearse a couple times in the final 24 hours, of course.

It's natural to practice my talk sitting down and staring at my slides on a laptop, but my speaking coach exhorts me not to. On stage, I'll stand in front of the big screen holding a remote clicker, looking at the audience, and only occasionally glance at the Keynote presenter view on my laptop. Ideally I'll have my deck largely memorized by Tuesday, so I'll rehearse standing up, looking out the window of my Airbnb apartment, using the clicker.


My slides will be done by Tuesday night and my performance well-rehearsed. It'll be a good time to record the talk. On Mac, iShowU HD is an easy way to capture my slides and voice. Since I won't see my speaker notes in Keynote while I record, I'll use my iPad to read them.

If I severely screw up in the middle of the talk I can edit it in post-production, but I won't worry about small flubs. I'm not making Serial here. PyCon's A/V experts will make a great recording of the actual talk on Wednesday, anyway, so the main point of this recording isn't the audio track: it's for captioning.


Once I've made a decent recording of the talk with a screen capture of my slide deck, I'll upload it privately to YouTube and caption it. When I first captioned a video last year I was pleased how well YouTube's online interface works—its killer feature is that it pauses the video while I type and resumes it automatically, so I rarely need to take my fingers from the home row. Captioning my half-hour talk will take about an hour.

Last year, for the first time, all PyCon talks had professional real-time captioning, and that's great if you're a Deaf person in the room. (It also helps if English is a foreign language to you.) But those captions weren't published, so a Deaf person watching the video later sees comical computer-generated captions. The first sentence of my "Eventually Correct" talk is a very unfortunate misunderstanding:

I believe the caption-generating software heard the opening "pop" of the audio track, followed by my session chair introducing me with "he is a staff software engineer at MongoDB." In the face of ambiguity, the computer couldn't refuse the temptation to guess. If you're Deaf, better to watch the version I captioned myself.

Captioning isn't just for the Deaf and hard of hearing; it's an investment that has other dividends. First, it's the start of an article: after I recorded last year's talk I dumped the caption file from YouTube and massaged the text into a blog post on the topic. Reduce, reuse, recycle! And second, captioning my video is the ultimate rehearsal technique. Once I've recorded this year's talk, listened to the recording, and typed it, I'll know it by heart.


After I spoke at MongoDB World a couple years ago, Meghan Gill gave me the best speaker gift in modern history:

It's a portable Bluetooth speaker! I'll take it with me to Portland next week. The night before my talk, I'll open the SingFriend app on my iPhone, connect it to the speaker, and sing scales for half an hour. I'm not going to be an American Idol (particularly since Idol was canceled) but it doesn't matter how well I sing: doing a long vocal warmup the night before makes a big difference in how strong my voice will be when I speak on Wednesday.


I'll lay out my supplies, so I don't forget anything when I leave my Airbnb for the conference center Wednesday morning:

  • Water bottle. (The session runner will offer me a disposable bottle, but why waste one?)
  • My clicker and a spare pair of batteries.
  • Cough drops.
  • Business cards (so I can forget to give them to people).
  • A cute outfit.

I'm finally ready.

Categories: FLOSS Project Planets

Caktus Consulting Group: Where to Find Cakti at PyCon 2016

Planet Python - Thu, 2016-05-26 08:00

As Django developers, we always look forward to PyCon. This year, working with the Python Software Foundation on the design for PyCon 2016’s site kindled our enthusiasm early. Our team is so excited for all the fun to begin. With an array of fantastic events, speakers, and workshops, we thought we would highlight all the events we’ll be participating in. Come find us!

Sunday, May 29th Python Education Summit: Outside the Pipeline: Expanding Early Access to Coding as a Career Choice (3:10 pm)

Rebecca Conley will be speaking about how to increase diversity in tech by expanding early access to coding education.

Sponsor Workshop: Leveraging Text Messaging in 2016 with RapidPro (3:30 pm)

Attend Erin Mullaney and Rebecca Muraya’s workshop on building SMS surveys. The workshop will include an overview of up-to-date case studies involving the use of SMS for surveys, crises, elections, and data tracking. Erin and Rebecca will also cover RapidPro, UNICEF’s open source SMS mobile messaging platform. In addition to basic functionality, they will demonstrate how to extend RapidPro’s core functionality through use of the API and how to manage SMS security.

Monday, May 30th - Tuesday, May 31st Trade Show (8:00 am - 5:00 pm)

Don’t forget to stop by our trade show booth where you can take our 5-question project health quiz and chat about results with our experts. You can also sign up for one of our limited time slots to discuss upcoming projects.

Our booth, double in size this year, will also feature a live RapidPro survey about PyCon attendees. We’ll also have some sweet swag, like PyCon 2016 temporary tattoos, Django-themed t-shirts, and more. Plus, you can enter to win an authentic BB8 Sphero!

Mon, May 30th - Wednesday, June 1st Open Spaces

We’re planning on hosting a few Open Spaces discussions. Times TBD. Be sure to look for our discussion topics on the Open Spaces board!

  • Scrum at Caktus
  • RapidPro Flow Editor overview
  • Using the Django project template
  • Open data policing and getting involved in civic tech
  • RapidPro deployment and usage
  • AWS deployment using Python
  • Python in civic tech and Code for America projects
  • Building APIs
  • Teaching community-centered Python classes
  • Python meetup groups - supporting PyLadies and Girl Develop It
Tuesday, May 31st Charity Fun Run (6:00 am)

Mark Lavin will be running in the annual 5k charity fun run. This year’s funds will be donated to Big Brothers Big Sisters Columbia Northwest.

PyLadies Auction (6:30 pm)

There are always fun and fantastic items up for bid during the PyLadies benefit auction. This year, Caktus is contributing a framed piece showcasing early concept sketches of the PyCon 2016 website.

Wednesday, June 1st Job Fair (10:00 am - 1:00 pm)

Find out how you can grow with us! Stop by our booth at the Job Fair for information on our open positions. We’re currently looking for sharp Django web developers to fill full-time and contractor positions.

Categories: FLOSS Project Planets
Syndicate content