FLOSS Project Planets

Daniel Bader: A better Python REPL: bpython vs python

Planet Python - Thu, 2016-07-21 20:00
A better Python REPL: bpython vs python

A quick video that demonstrates bpython, an awesome alternative Python interpreter.

Compared to the vanilla Python interpreter bpython knows a few extra tricks like syntax highlighting, auto indent (yay!), and auto completion.

Check it out, it’s a really great tool!

If you’d like to learn more about bpython, the following links should help you out:

Categories: FLOSS Project Planets

Third & Grove: Drupal GovCon: Day 2 Recap

Planet Drupal - Thu, 2016-07-21 19:43
Drupal GovCon: Day 2 Recap abby Thu, 07/21/2016 - 19:43
Categories: FLOSS Project Planets

Vincent Fourmond: QSoas version 2.0 is out / QSoas paper

Planet Debian - Thu, 2016-07-21 17:04
I thought it would come before that, but I've finally gotten around releasing version 2.0 of my data analysis program, QSoas !


It provides significant improvements to the fit interface, in particular for multi-buffer fits, with a “Multi” fit engine that performs very well for large multibuffer fits, a spreadsheet editor for fit parameters, and more usability improvements. It also features the definition of fits with distribution of values of one of the fit parameter, and new built-in fits. In addition, QSoas version 2.0 features new commands to derive data, to flag buffers and handle large multi-column datasets, and improvements of existing commands. The full list of changes since version 1.0 can be found there.

As before, you can download the source code from our website, and purchase the pre-built binaries following the links from that page too.

In addition, I am glad to announce that QSoas is now described in a recent publication, Fourmond, Anal. Chem., 2016, 88, 5050-5052. Please cite this publication if you used QSoas to process your data.

Categories: FLOSS Project Planets

Acquia Developer Center Blog: Live from DrupalCon Mumbai: Meet Acquia Pune!

Planet Drupal - Thu, 2016-07-21 17:03

A conversation from DrupalCon Asia DrupalCon Mumbai 2016 with members of Acquia's Pune, India office: Prassad Shirgaonkar, Prassad Gogate, Prafful Nagwani, and Jeffrey A. "jam" McGuire in which we touch on Drupal and community in India, the history of the DrupalCon Prenote, Drupal's multilingual strengths, the Drupal Campus Ambassador Program in India, and more!

jam: We are at the Contribution Sprint day of DrupalCon Asia in Mumbai, wrapping up a great few days for me. Prafful Nagwani, how was your DrupalCon?

Prafful Nagwani: This is my third DrupalCon and this was fantastic. Even more so because this is happening in India, in our own backyard, it has been really, really great the way it’s been organized. The sessions, everyone coming in, meeting each other and stuff, it’s been fantastic.

jam: So I would like to point out ... really a huge thank you to the Drupal Association and everyone involved in the organization because it was incredibly smooth and I’ve been to cons in Europe and America that were nowhere near as well-organized so: fantastic. Thank you Drupal Association.

Prafful Nagwani: Thank you.

jam: Prasad?

Prasad Shirgaonkar: Yes.

jam: How was your DrupalCon?

Prasad Shirgaonkar: It was a dream come true for me. I first did a DrupalCon in London in--I think it was 2011 or 12--and I’ve seen you doing the Prenote. I had met Jacob [Singh] and Dries with whom I work now. From that time, I wanted to do a Prenote with you and I wanted to have that done in India and it happened.

jam: Wow, that’s cool! So we did a Prenote in London called ... so there’s a Dickens’ story called A Christmas Carol and we did a parody of A Christmas Carol and we had the Ghost of DrupalCon Past and the Ghost of DrupalCon Present and the Ghost of DrupalCon Future and it was hilarious and we got chx, the contributor C-H-X to be the Ghost of DrupalCon Past and he was hilarious ... and the whole thing actually ...Prenote I’m so glad you were there! We never talked about this. So Prasad and I organized the Prenote which is a DrupalCon tradition now where it’s an opening introduction sort of a welcome to DrupalCon before Dries’ Driesnote. Prasad and I, as well as Adam Juran and Campbell Vertesi and Parth Gohil and Ashwini Kumar; we wrote it as a team together. We were very concerned frankly about making sure it would be funny in India, right? So Prasad and the Indian team hooked us up with great jokes and concepts and I think we rode the line really well of ... frankly, I don’t know everything that’s going to be offensive in India, right?

Prasad Shirgaonkar: Absolutely, absolutely.

jam: So we were really concerned.We wanted to be funny maybe even edgy, right, but not upset people. So how did you feel when we did tongue twisters with an India accent?

Prasad Gogate: Absolutely that was amazing. I think everybody enjoyed that and people probably were not expecting that. So it was really a surprise for them which was obviously a good surprise. Overall, I think DrupalCon in India has been an awesome experience here now. I think it is a dream come true for the entire India community because – and most important is I think the India community has started getting recognized and it’s growing. That’s why – I think that is more important.

jam: So we didn’t quite managed to do this yet. Please introduce yourself to everyone.

Prasad Gogate: I am Prasad Gogate. I work from Pune for Acquia.

Prasad Shirgaonkar: I’m Prasad Shirgaonkar. I work for Acquia from Pune from my home.

jam: So you’re Prasad zero, right?

Prasad Shirgaonkar: Yes.

jam: You’re Prasad one?

Prasad Gogate: Yes.

jam: Okay.

Prafful Nagwani: Hi. I am Prafful Nagwani and I work for Acquia from Pune office. I have been in Drupal since - eight years now since Drupal 6. Yes.

jam: How did you discover Drupal?

Prafful Nagwani: It happened – I got a job and they said that you need to work on something called PHP. I never worked on PHP until then. So I said, “Okay. Let’s try it out.” Since then, I have been with Drupal. I never worked – before that I was totally working on Microsoft Technologies. I never worked on any of the other open source things. I knew about Joomla. I had read about Drupal, but that’s how my experience started and since then I’m here. I’m not going anywhere.

jam: So eight years. How long have you been doing Drupal, Prasad?

Prasad Shirgaonkar: Ten years, since Drupal 4.7.

jam: I installed Drupal 4.6 but I didn’t really do anything with it.

Prasad Shirgaonkar: I did my first site. Actually, I discovered Drupal because I wanted to do my poetry website in Mahrati and back in 2005, 2006, Drupal was the only CMS which supported non-English characters.

jam: Wait, wait. The only CMS?

Prasad Shirgaonkar: Yes. So I had downloaded a couple of others and they didn’t support Unicode characters really well. So Drupal was the only one which supported Unicode ever since its birth actually.

jam: Right. This is a great segue-way into: Hey, Drupal 8 has been released and the multilingual internationalization support is unbelievable! If anybody hasn’t tried this yet, to get a fully, fully, fully translated site in Drupal 7, you couldn’t because there are certain things, variables and certain things that you couldn't touch ... but you could come the very, very closest by installing somewhere between 21 and 27 modules, right?

Prasad Shirgaonkar: Yes.

jam: Hands up who knows how many modules you have to install into Drupal 8 to make it fully multilingual? Every single thing translatable, how many modules do I have to install?

Prasad Shirgaonkar: [faint] Nothing apart from core ...

jam: No. Give me a number. How many modules?

Prafful Nagwani: Three.

Prasad Shirgaonkar: Four.

jam: I thought you guys work with Drupal. The correct answer is zero modules. So because core has?

Prasad Gogate: Multilingual.

jam: Right. Four modules that you turn on ... so amazing. So to do that site today, right, would be even easier. So Prasad, how long have you been doing Drupal?

Prasad Gogate: Since four years now, four plus years. So I was introduced when I started working for a company it was like first project for me and Drupal. I never came across it. So from that stage, I learned and then four years I have been working.

jam: What’s your favorite thing about Drupal?

Prasad Gogate: Building sites faster.

jam: Okay. What technologies did you work in before?

Prasad Gogate: It was Arc.js and Microsoft.

jam: Okay. Do you have a favorite Drupal module?

Prafful Nagwani: That’s a tough one. That’s a tough one. I think I like Views and Panels. I would go for those.

jam: Okay.

Prasad Shirgaonkar: Views, all the way Views and just Views: every sub-system, all the ecosystem around Views.

jam: Right. Another plug for Drupal 8, Views was the key differentiator for us since Drupal 5 that really sets up apart from other CMSs as well as our multilingual support apparently. Now, it’s in core, too, which means we can actually abstract it out, make other interfaces, another tools rely on it. That’s pretty cool.

This is the Acquia Pune office. We had an Acquia India sort of a gathering as part of DrupalCon the other day. How many people work for Acquia India now?

Prasad Gogate: Around more than 25.

jam: So three, four in Pune?

Prasad Gogate: Four in Pune.

jam: How many in Delhi?

Prasad Gogate: The rest, everyone is Delhi.

jam: So when is the Pune office going to overtake Delhi and become the true center of Acquia India?

Prasad Shirgaonkar: As far as leadership is concerned, that is the true center right now. Thought leadership is concerned, that is but number-wise who cares about quantity, when quality is there? ;-)

jam: So one thing I’ve noticed about the Indian community is that India is such a huge, huge, huge, huge place. I’ve met really wonderful local community leaders from all different parts of the country and there’s not a national organization per se, but it feels to me like the communication between the different groups is actually pretty strong. What’s up in Drupal today in India?

Prasad Gogate: In terms of work? You mean Acquia India or overall ... ?

jam: Drupal in India.

Prasad Gogate: I think we have been working in two various sectors. Mostly I think more of the SI and big companies are also getting involved and lot of commerce and contributions are happening. So I think people are becoming more and more knowledgeable, I would say. More and more awareness is increasing which is obviously a good thing and growth definitely is the word, I would say.

jam: Growth?

Prasad Gogate: Yes.

Prasad Shirgaonkar: I think about eight years ago we had very small pockets in Pune, in Delhi and possibly in Ahmedabad ... and in IIT Mumbai obviously.

jam: Ahmedabad was the first user group I think in India.

Prasad Shirgaonkar: Yes. That was the first user group.

Prafful Nagwani: First Drupal Camp in India was Ahmedabad in 2008.

Prasad Shirgaonkar: 2009 was in Pune.

Prafful Nagwani: Pune. That 300 people attended the 2009 and I think we had someone from US visiting and talking there.

Prasad Shirgaonkar: Yes. It was Berry ...

jam: Addison.

Prafful Nagwani: Addison Berry.

jam: You said Barry and I was about to say Barry Jaspan but no, and that’s when she was travelling around on the Knight Foundation grant.

Prasad Shirgaonkar: Yes. We had a code sprint actually in 2009 at that time in January, I remember. That was my first community interaction in Pune where I met Prafful and a lot of - Dipen. We have been ever since doing Drupal camps. Prafful has been – Prafful and Dipen had been like instrumental in setting up community. Prafful drives community like – it’s his own like homely household duty and he gets everyone together. He gets like – yes, he literally, many of the times he shouts at people if they are not doing work.

Prafful Nagwani: There are a lot of community leaders in India. I think the good part with India that’s happening is everyone shares things with each other. So if there is a camp that’s happening in Pune, I’m definitely--I have seen this and we have done this--Delhi comes to help and Bangalore comes to help and we share things. We share resources: "Okay. This is how we did the budget. This is how we did the sponsor. This is the users. This is my user group. Go ahead. Mail them." So I don’t have to start from scratch. Anyone in India wanting to do a Drupal camp, they have a head start. There are people who help out.

jam: I see.

Prasad Gogate: I think that is the community spirit which is actually shown that everybody wants the camp to be successful no matter where it is.

jam: I’ve heard about a lot of that happening and for example Parth Gohil, he has an actual job to just help as many people as possible. Someone came up to me yesterday at the DrupalCon and told me ... he told me a Veda in Sanskrit and he said open source is essential. It’s absolutely the best possible fit for Indian culture because giving and sharing are our core values as a nation and the Veda he read me was something like, "Give a man food and he’ll be satiated for a few hours but give him knowledge," right, and of course it was put much more elegantly but essentially, "knowledge will help you fill your life forever." I’m definitely going to use that in slides with the proper Sanskrit on it forever because it was so moving. Anyway, I’m having an absolutely splendid time in India just being so impressed with the Con and with the community, the number of young people. Frankly, can you talk a little bit about the gender balance in the developer community in India? I’ve seen a lot of women in terms of percentage much, much more than I see in a lot of communities around the world.

Prafful Nagwani: Yes. I think good thing happening over here is that the community overall has been pretty much welcoming everyone into the community and ready to help. As it was said by Danese in her keynote like people here have open minds. Nobody is above someone or below someone. We are all at equal level and that is what is driving people to get more into getting started with community. So for an example, we started doing meet-ups regularly in Pune and over a period of six months we have about 400 attendees, aggregated over six months. Lot of these, I think a lot of these were women. Yes. They really feel a part of it because it’s the community that drives things together, right?

jam: In the west, in open source and it’s a known problem, we have a diversity problem, very, very often. Here, I don’t see that in terms of religion and gender and age. I’ve seen a real – I’ve seen people who are definitely in their 60s at DrupalCon and definitely seen people in their early 20s or younger. I’m very impressed by that. The places that I’ve seen that before are places like Bulgaria. So post-communist countries who have a really strong engineering tradition, a really strong educational tradition over decades. So anyway, well done India because it’s great. It’s very inspiring.

What’s next for Drupal in India?

Prasad Shirgaonkar: We strongly believe that there should be a nationwide meet-up every year if not DrupalCon every year in India.

jam: So I know a guy who would like to be invited if you’re doing anything interesting I can – I’ll introduce you.

Prasad Shirgaonkar: Yes, yes. Please, please do.

jam: So Acquia Pune, thank you guys so, so, so much for taking the time to talk with me. I really can’t wait to see you again soon. Anything, any last words, anything you want to promote, push, say?

Prasad Gogate: Yes. I mean thanks to you for this and definitely, we would expect that you come to Pune once but one thing that probably I want to mention it over here is one of the important things in the Drupal community that recently is happening is more and more educational organizations have started taking interest and I think that is the root. I mean if we start giving education for Drupal from that stage, I think we’ll build a definitely a very good community.

jam: I’m glad you brought that up because I had forgotten, one of the very impressive things that I’ve seen here in India is huge community effort to bring Drupal into high schools and into universities and this is another challenge that I’ve – the efforts that I’ve been involved in, it’s been very, very difficult for us. India is now producing young software engineers who know Drupal and who like Drupal and it’s really, really exciting that you are solving the pipeline problem and everyone else out there, you need to come and see what the Indians are doing because it’s just, just right. Catch them at 15, 16. Get them excited about the web and we can have them. Prasad, shameless plug?

Prasad Shirgaonkar: No. It’s exactly the same thing I was going to say. The universities and colleges are so important and we need to have Drupal over there. So we are – actually we are in talks with IIT. They have open education resources project where they have a software project, software education translated to like 15 Indian languages and we are planning to provide a Drupal content to them. So that way, Drupal will reach to the most - remotest corner of India in their own language.

jam: Please let me know when that is happening. I’d love to help promote that.

Prasad Shirgaonkar: Absolutely.

jam: Prafful?

Prafful Nagwani: Again, the focus is on the education systems. So India community recently started the DCAP program, the Drupal Campus Ambassador Program which is in pilot phase. I think what we need to immediately do and we are trying to do is get students connected to people and they know where to go. They are not left somewhere looking around, okay, what to do next. That is where we lose them.

jam: Take them by the hand and bring them to the goal.

Prafful Nagwani: Show them the way. Show them. If they take Drupal as a career, definitely a good choice for them but we need to tell them, yes, Drupal has a career option. It’s not that only Microsoft or other technologies have that.

jam: Listen, we run 2% of the web, 5% of sites with identifiable CMS and it’s only going to get bigger. You’ve got a job here. ... Prafful.

Prafful Nagwani: Thank you so much.

jam: Prasad.

Prasad Shirgaonkar: Thank you so much.

jam: Prasad.

Prasad Gogate: Thank you so much.

jam: Zero, one. Thank you guys for taking the time to talk with me. It’s been really, really great to spend time together. I can’t wait to see you next time. Thanks, guys.

Prasad Shirgaonkar: Thanks.

Prafful Nagwani: Thanks.

Prasad Gogate: Thank you. Bye.

Skill Level: BeginnerIntermediateAdvanced
Categories: FLOSS Project Planets

Dataquest: How I built a Slack bot to help me find an apartment in San Francisco

Planet Python - Thu, 2016-07-21 16:00

I moved from Boston to the Bay Area a few months ago. Priya (my girlfriend) and I heard all sorts of horror stories about the rental market. The fact that searching for “How to find an apartment in San Francisco” on Google yields dozens of pages of advice is a good indicator that apartment hunting is a painful process.

Boston is cold, but finding an apartment in SF is scary

We read that landlords hold open houses, and that you have to bring all of your paperwork to the open house and be willing to put down a deposit immediately to even be considered. We started exhaustively researching the process, and figured out that a lot of finding an apartment comes down to timing. Some landlords want to hold an open house no matter what, but for others, being one of the first people to see the apartment usually means that you can get it. You eneed to find the listing, quickly figure out if it meets your criteria, then call the landlord to arrange a showing to have a shot.

We looked...

Categories: FLOSS Project Planets

Janez Urevc: Blog design refreshed

Planet Drupal - Thu, 2016-07-21 14:52
Blog design refreshed

Today I am very excited! A while ago I asked my friend David Ličen to help me improve appearance and UX for my personal blog. He carefully observed my desires and added some of his own ideas. When we agreed on the initial mock he proceeded with the theme implementation.

He finished his part a while ago. I needed to tweak few other things on the back-end too, which took me way too long to do. Today I finally decided to finish this and deployed the changes to the live website.

How do you like it?

slashrsm Thu, 21.07.2016 - 20:52 Tags Drupal Enjoyed this post? There is more! janezurevc.name runs on Drupal 8! We had great and productive time at NYC sprint! Sam Morenson is thinking about media in Drupal core

View the discussion thread.

Categories: FLOSS Project Planets

FSF Blogs: Friday Free Software Directory IRC meetup: July 22nd

GNU Planet! - Thu, 2016-07-21 14:50

Join the FSF and friends Friday, July 22nd, from 12pm to 3pm EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.

Participate in supporting the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode.

Tens of thousands of people visit directory.fsf.org each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions, to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.

While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential of being a resource of even greater value. But it needs your help!

If you are eager to help and you can't wait or are simply unable to make it onto IRC on Friday, our participation guide will provide you with all the information you need to get started on helping the Directory today! There are also weekly FSD Meetings pages that everyone is welcome to contribute to before, during, and after each meeting.

Categories: FLOSS Project Planets

Friday Free Software Directory IRC meetup: July 22nd

FSF Blogs - Thu, 2016-07-21 14:50

Join the FSF and friends Friday, July 22nd, from 12pm to 3pm EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.

Participate in supporting the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode.

Tens of thousands of people visit directory.fsf.org each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions, to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.

While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential of being a resource of even greater value. But it needs your help!

If you are eager to help and you can't wait or are simply unable to make it onto IRC on Friday, our participation guide will provide you with all the information you need to get started on helping the Directory today! There are also weekly FSD Meetings pages that everyone is welcome to contribute to before, during, and after each meeting.

Categories: FLOSS Project Planets

Drupal Blog: City of Boston launches Boston.gov on Drupal

Planet Drupal - Thu, 2016-07-21 13:00

Republished from buytaert.net

Yesterday, the City of Boston launched its new website, Boston.gov, on Drupal. Not only is Boston a city well-known around the world, it has also become my home over the past 9 years. That makes it extra exciting to see the city of Boston use Drupal.

As a company headquartered in Boston, I'm also extremely proud to have Acquia involved with Boston.gov. The site is hosted on Acquia Cloud, and Acquia led a lot of the architecture, development, and coordination. I remember pitching the project in the basement of Boston's City Hall, so seeing the site launched less than a year later is quite exciting.

The project was a big undertaking, as the old website was 10 years old and running on Tridion. The city's digital team, Acquia, IDEO, Genuine Interactive, and others all worked together to reimagine how a government can serve its citizens better digitally. It was an ambitious project as the whole website was redesigned from scratch in 11 months; from creating a new identity, to interviewing citizens, to building, testing and launching the new site.

Along the way, the project relied heavily on feedback from a wide variety of residents. The openness and transparency of the whole process was refreshing. Even today, the city made its roadmap public at http://roadmap.boston.gov and is actively encouraging citizens to submit suggestions. This open process is one of the many reasons why I think Drupal is such a good fit for Boston.gov.

More than 20,000 web pages and one million words were rewritten in a more human tone to make the site easier to understand and navigate. For example, rather than organize information primarily by department (as is often the case with government websites), the new site is designed around how residents think about an issue, such as moving, starting a business or owning a car. Content is authored, maintained, and updated by more than 20 content authors across 120 city departments and initiatives.

The new Boston.gov is absolutely beautiful, welcoming and usable. And, like any great technology endeavor, it will never stop improving. The City of Boston has only just begun its journey with Boston.gov—I’m excited see how it grows and evolves in the years to come. Go Boston!

Last night, there was a launch party to celebrate the launch of Boston.gov. It was an honor to give some remarks about this project alongside Boston mayor, Marty Walsh (pictured above), as well as Lauren Lockwood (Chief Digital Officer of the City of Boston) and Jascha Franklin-Hodge (Chief Information Officer of the City of Boston).

Categories: FLOSS Project Planets

Olivier Grégoire: Height week: create an API on library ring client (LRC)

Planet Debian - Thu, 2016-07-21 12:57

At the beginning of the week, I didn’t really use the LRC to communicate with my client.
-The client calls an function in it to call my method who calls my program
-The daemon sends his signal connect to an Qslot in LRC. After that, I just send another signal connect to a lambda function of the client

I have never programmed API before and I began to write some code without checking how doing that. I needed to extract all the information of my map<s,s> sending by the daemon to present all it in my API. After observing the code, I saw LRC follow the kde library code policy. So, I change my architecture to follow the same policies . Basically, I needed to create a public and private header by using the D-Pointer. My private header contains my slot who is connect with the daemon and all private variable. My public header contains a signal connect to lambda function who indicates to the client when some information change and he need to refresh it. This header contains obviously all the getters too.

I have now a functional API.


Next week I will work on the gnome client to use this new API.

Categories: FLOSS Project Planets

Dries Buytaert: City of Boston launches Boston.gov on Drupal

Planet Drupal - Thu, 2016-07-21 12:50

Yesterday the City of Boston launched its new website, Boston.gov, on Drupal. Not only is Boston a city well-known around the world, it has also become my home over the past 9 years. That makes it extra exciting to see the city of Boston use Drupal.

As a company headquartered in Boston, I'm also extremely proud to have Acquia involved with Boston.gov. The site is hosted on Acquia Cloud, and Acquia led a lot of the architecture, development and coordination. I remember pitching the project in the basement of Boston's City Hall, so seeing the site launched less than a year later is quite exciting.

The project was a big undertaking as the old website was 10 years old and running on Tridion. The city's digital team, Acquia, IDEO, Genuine Interactive, and others all worked together to reimagine how a government can serve its citizens better digitally. It was an ambitious project as the whole website was redesigned from scratch in 11 months; from creating a new identity, to interviewing citizens, to building, testing and launching the new site.

Along the way, the project relied heavily on feedback from a wide variety of residents. The openness and transparency of the whole process was refreshing. Even today, the city made its roadmap public at http://roadmap.boston.gov and is actively encouraging citizens to submit suggestions. This open process is one of the many reasons why I think Drupal is such a good fit for Boston.gov.

More than 20,000 web pages and one million words were rewritten in a more human tone to make the site easier to understand and navigate. For example, rather than organize information primarily by department (as is often the case with government websites), the new site is designed around how residents think about an issue, such as moving, starting a business or owning a car. Content is authored, maintained, and updated by more than 20 content authors across 120 city departments and initiatives.

The new Boston.gov is absolutely beautiful, welcoming and usable. And, like any great technology endeavor, it will never stop improving. The City of Boston has only just begun its journey with Boston.gov - I’m excited see how it grows and evolves in the years to come. Go Boston!

Last night there was a launch party to celebrate the launch of Boston.gov. It was an honor to give some remarks about this project alongside Boston Mayor Marty Walsh (pictured above), as well as Lauren Lockwood (Chief Digital Officer of the City of Boston) and Jascha Franklin-Hodge (Chief Information Officer of the City of Boston).
Categories: FLOSS Project Planets

Mediacurrent: Think First, Then Design

Planet Drupal - Thu, 2016-07-21 11:01

There are many talented designers with the ability to create a fabulous, responsive, web design worthy of the term “screen candy.” But looks aren’t everything and website design is not just art. When a website fails to engage the visitor, it’s often due to the designer’s failure to plan strategically.

Categories: FLOSS Project Planets

GammaRay 2.5 release

Planet KDE - Thu, 2016-07-21 10:48

GammaRay 2.5 has been released, the biggest feature release yet of our Qt introspection tool. Besides support for Qt 5.7 and in particular the newly added Qt 3D module a slew of new features awaits you, such as access to QML context property chains and type information, object instance statistics, support for inspecting networking and SSL classes, and runtime switchable logging categories.

We also improved many existing functionality, such as the object and source code navigation and the remote view. We enabled recursive access to value type properties and integrated the QPainter analyzer in more tools.

GammaRay is now also commercially available as part of the Qt Automotive suite, which includes integration with QtCreator for convenient inspection of embedded targets using Linux, QNX, Android or Boot2Qt.

Download GammaRay

The post GammaRay 2.5 release appeared first on KDAB.

Categories: FLOSS Project Planets

KDStateMachineEditor 1.1.0 released

Planet KDE - Thu, 2016-07-21 10:47

KDStateMachineEditor is a Qt-based framework for creating Qt State Machine metacode using a graphical user interface. It works on all major platforms and is now available as part of the Qt Auto suite.

The latest release of KDAB’s KDStateMachineEditor includes changes to View, API and Build system.

View

  • Button added to show/hide transition labels
  • Now using native text rendering
  • Status bar removed

API

  • API added for context menu handling (cf. StateMachineView class)

Build system

  • Toolchain files added for cross-compiling (QNX, Android, etc.)
  • Compilation with namespaced Qt enabled
  • Build with an internal Graphviz build allowed (-DWITH_INTERNAL_GRAPHVIZ=ON)

KDStateMachineEditor Works on all major platforms and has been tested on Linux, OS X and Windows.

Prebuilt packages for some popular Linux distributions can be found here.

Homebrew recipe for OSX users can be found here.

The post KDStateMachineEditor 1.1.0 released appeared first on KDAB.

Categories: FLOSS Project Planets

KDAB contributions to Qt 5.7

Planet KDE - Thu, 2016-07-21 10:46

Hello, and welcome to the usual appointment with a new release of Qt!

Qt 5.7 has just been released, and once more, KDAB has been a huge part of it (we are shown in red on the graph):

Qt Project commit stats, up to June 2016. From http://www.macieira.org/blog/qt-stats/

In this blog post I will show some of the outstanding contributions by KDAB engineers to the 5.7 release.

Qt 3D

The star of Qt 5.7 is the first stable release of Qt 3D 2.0. The new version of Qt 3D is a total redesign of its architecture into a modern and streamlined 3D engine, exploiting modern design patterns such as entity-component systems, and capable to scale due to the heavily threaded design. This important milestone was the result of a massive effort done by KDAB in coordination with The Qt Company.

If you want to know more about what Qt 3D can do for your application, you can watch this introductive webinar recorded by KDAB’s Dr. Sean Harmer and Paul Lemire for the 5.7 release.

Qt on Android

Thanks to KDAB’s BogDan Vatra, this release of Qt saw many improvements to its Android support. In no particular order:

  • Qt can now be used to easily create Android Services, that is, software components performing background tasks and that are kept alive even when the application that started them exits. See here for more information.
  • The QtAndroidExtras module gained helper functions to run Runnables on the Android UI thread. They are extremely useful for accessing Android APIs from C++ code that must be done on Android UI thread. More info about this is available in this blog post by BogDan.
  • Another addition to the QtAndroidExtras module is the QtAndroid::hideSplashScreen function, which allows a developer to programmatically hide the splash screen of their applications.
  • The QtGamepad module gained Android support.
Performance and correctness improvements

A codebase as big as Qt needs constant fixes, improvements and bugfixes. Sometimes these come from bug reports, sometimes by reading code in order to understand it better, and in some other cases by analyzing the codebase using the latest tools available. KDAB is committed to keeping Qt in a great shape, and that is why KDAB engineers spend a lot of time polishing the Qt codebase.

Some of the results of these efforts are:

  • QHash gained equal_range, just like QMap and the other STL associative container. This function can be used to iterate on all the values of a (multi)hash that have the same key without performing any extra memory allocation. In other words, this code: // BAD!!! allocates a temporary QList // for holding the values corresponding to "key" foreach (const auto &value, hash.values(key)) { }

    can be changed to

    const auto range = hash.equal_range(key); for (auto i = range.first; i != range.second; ++i) { }

    which never throws (if hash is const), expands to less code and does not allocate memory.

  • Running Qt under the Undefined Behavior Sanitizer revealed dozens of codepaths where undefined behaviour was accidentally triggered. The problems ranged from potential signed integer overflows and shift of negative numbers to misaligned loads, invalid casts and invalid calls to library functions such as memset or memcpy. KDAB’s Senior Engineer Marc Mutz contributed many fixes to these undefined behaviours, fixes that made their way into Qt 5.6.1 and Qt 5.7.
  • Some quadratic loops were removed from Qt and replaced with linear or linearithmic ones. Notably, an occurrence of such loops in the Qt Quick item views caused massive performance degradations when sorting big models, which was fixed in this commit by KDAB’s engineer Milian Wolff.
  • Since Qt 5.7 requires the usage of a C++11 compiler, we have starting porting foreach loops to ranged for loops. Ranged for loops expand to less code (because there is no implicit copy taking place), and since compilers recognize them as a syntactic structure, they can optimize them better. Over a thousand occurrences were changed, leading to savings in Qt both in terms of library size and runtime speed.
  • We have also started using C++ Standard Library features in Qt. While Qt cannot expose STL types because of its binary compatibility promise, it can use them in its own implementation. A big advantage of using STL datatypes is that they’re generally much more efficient, have more features and expand to a lot less code than Qt counterpart. For instance, replacing some QStack usages with std::stack led to 1KB of code saved per instance replaced; and introducing std::vector in central codepaths (such as the ones in QMetaObjectBuilder) saved 4.5KB.
  • While profiling Qt3D code, we found that the mere act of iterating over resources embedded in an application (by means of QDirIterator) uncompressed them. Then, reading a given resource via QFile uncompressed it again. This was immediately fixed in this commit by KDAB’s Director of Automotive, Volker Krause.
Other contributions

Last but not least:

  • It is now possible to use the Qt Virtual Keyboard under QtWayland compositors.
  • The clang-cl mkspec was added. This mkspec makes it possible to build Qt using the Clang frontend for MSVC. Stay tuned for more blog posts on this matter.
  • A small convenience QFlag::setFlag method was added, to set or unset a flag in a bitmask without using bitwise operations.

About KDAB

KDAB is a consulting company dedicated to Qt and offering a wide variety of services and providing training courses in:

KDAB believes that it is critical for our business to invest in Qt3D and Qt, in general, to keep pushing the technology forward, ensuring it remains competitive.

The post KDAB contributions to Qt 5.7 appeared first on KDAB.

Categories: FLOSS Project Planets

Four Habit-Forming Tips to Faster C++

Planet KDE - Thu, 2016-07-21 10:46

Are you a victim of premature pessimisation? Here’s a short definition from Herb Sutter:

Premature pessimization is when you write code that is slower than it needs to be, usually by asking for unnecessary extra work, when equivalently complex code would be faster and should just naturally flow out of your fingers.

Despite how amazing today’s compilers have become at generating code, humans still know more about the intended use of a function or class than can be specified by mere syntax. Compilers operate under a host of very strict rules that enforce correctness at the expense of faster code. What’s more, modern processor architectures sometimes compete with C++ language habits that have become ingrained in programmers from decades of previous best practice.

I believe that if you want to improve the speed of your code, you need to adopt habits that take advantage of modern compilers and modern processor architectures—habits that will help your compiler generate the best-possible code. Habits that, if you follow them, will generate faster code before you even start the optimisation process.

Here’s four habit-forming tips that are all about avoiding pessimisation and, in my experience, go a long way to creating faster C++ classes.

1) Make use of the (named-) return-value optimisation

According to Lawrence Crowl, (named-) return-value optimisation ((N)RVO) is one of the most important optimisations in modern C++. Okay—what is it?

Let’s start with plain return-value optimization (RVO). Normally, when a C++ method returns an unnamed object, the compiler creates a temporary object, which is then copy-constructed into the target object.

MyData myFunction() { return MyData(); // Create and return unnamed obj } MyData abc = myFunction();

With RVO, the C++ standard allows the compiler to skip the creation of the temporary, treating both object instances—the one inside the function and the one assigned to the variable outside the function—as the same. This usually goes under the name of copy elision. But what is elided here is the temporary and the copy.

So, not only do you save the copy constructor call, you also save the destructor call, as well as some stack memory. Clearly, elimination of extra calls and temporaries saves time and space, but crucially, RVO is an enabler for pass-by-value designs. Imagine MyData was a large million-by-million matrix. There mere chance that some target compiler could fail to implement this optimisation would make every good programmer shy away from return-by-value and resort to out parameters instead (more on those further down).

As an aside: don’t C++ Move Semantics solve this? The answer is: no. If you move instead of copy, you still have the temporary and its destructor call in the executable code. And if your matrix is not heap-allocated, but statically sized, such as a std::array<std::array<double, 1000>, 1000>>, moving is the same as copying. With RVO, you mustn’t be afraid of returning by value. You must unlearn what you have learned and embrace return-by-value.

Named Return Value Optimization is similar but it allows the compiler to eliminate not just rvalues (temporaries), but lvalues (local variables), too, under certain conditions.

What all compilers these days (and for some time now) reliably implement is NRVO in the case where there is a single variable that is passed to every return, and declared at function scope as the first variable:

MyData myFunction() { MyData result; // Declare return val in ONE place if (doing_something) { return result; // Return same val everywhere } // Doing something else return result; // Return same val everywhere } MyData abc = myFunction();

Sadly, many compilers, including GCC, fail to apply NRVO when you deviate even slightly from the basic pattern:

MyData myFunction() { if (doing_something) return MyData(); // RVO expected MyData result; // ... return result; // NRVO expected } MyData abc = myFunction();

At least GCC fails to use NRVO for the second return statement in that function. The fix in this case is easy (go back to the first version), but it’s not always that easy. It is an altogether sad state of affairs for a language that is said to have the most advanced optimisers available to it for compilers to fail to implement this very basic optimisation.

So, for the time being, get your fingers accustomed to typing the classical NRVO pattern: it enables the compiler to generate code that does what you want in the most efficient way enabled by the C++ standard.

If diving into assembly code to check whether a particular patterns makes your compiler drop NRVO isn’t your thing, Thomas Brown provides a very comprehensive list of compilers tested for their NRVO support and I’ve extended Brown’s work with some additional results.

If you start using the NVRO pattern but aren’t getting the results you expect, your compiler may not automatically perform NRVO transformations. You may need to check your compiler optimization settings and explicitly enable them.

Return parameters by value whenever possible

This is pretty simple: don’t use “out-parameters”. The result for the caller is certainly kinder: we just return our value instead of having the caller allocate a variable and pass in a reference. Even if your function returns multiple results, nearly all of the time you’re much better off creating a small result struct that the function passes back (via (N)RVO!):

That is, instead of this:

void convertToFraction(double val, int &numerator, int &denominator) { numerator = /*calculation */ ; denominator = /*calculation */ ; } int numerator, denominator; convertToFraction(val, numerator, denominator); // or was it "denominator, nominator"? use(numerator); use(denominator);

You should prefer this:

struct fractional_parts { int numerator; int denominator; }; fractional_parts convertToFraction(double val) { int numerator = /*calculation */ ; int denominator = /*calculation */ ; return {numerator, denominator}; // C++11 braced initialisation -> RVO } auto parts = convertToFraction(val); use(parts.nominator); use(parts.denominator);

This may seem surprising, even counter-intuitive, for programmers that cut their teeth on older x86 architectures. You’re just passing around a pointer instead of a big chunk of data, right? Quite simply, “out” parameter pointers force a modern compiler to avoid certain optimisations when calling non-inlined functions. Because the compiler can’t always determine if the function call may change an underlying value (due to aliasing), it can’t beneficially keep the value in a CPU register or reorder instructions around it. Besides, compilers have gotten pretty smart—they don’t actually do expensive value passing unless they need to (see the next tip). With 64-bit and even 32-bit CPUs, small structs can be packed into registers or automatically allocated on the stack as needed by the compiler. Returning results by value allows the compiler to understand that there isn’t any modification or aliasing happening to your parameters, and you and your callers get to write simpler code.

3) Cache member-variables and reference-parameters

This rule is straightforward: take a copy of the member-variables or reference-parameters you are going to use within your function at the top of the function, instead of using them directly throughout the method. There are two good reasons for this.

The first is the same as the tip above—because pointer references (even member-variables in methods, as they’re accessed through the implicit this pointer) put a stick in the wheels of the compiler’s optimisation. The compiler can’t guarantee that things don’t change outside its view, so it takes a very conservative (and in most cases wasteful) approach and throws away any state information it may have gleaned about those variables each time they’re used anew. And that’s valuable information that can help the compiler eliminate instructions and references to memory.

Another important reason is correctness. As an example provided by Lawrence Crowl in his CppCon 2014 talk “The Implementation of Value Types”, instead of this complex number multiplication:

template <class T> complex<T> &complex<T>;::operator*=(const complex<T> &a) { real = real * a.real – imag * a.imag; imag = real * a.imag + imag * a.real; return *this; }

You should prefer this version:

template <class T> complex<T> &complex<T>;::operator*=(const complex<T> &a) { T a_real = a.real, a_imag = a.imag; T t_real = real, t_imag = imag; // t == this real = t_real * a_real – t_imag * a_imag; imag = t_real * a_imag + t_imag * a_real; return *this; }

This second, non-aliased version will still work properly if you use value *= value to square a number; the first one won’t give you the right value because it doesn’t protect against aliased variables.

To summarise succinctly: read from (and write to!) each non-local variable exactly once in every function.

4) Organize your member variables intelligently

Is it better to organize member variables for readability or for the compiler? Ideally, you pick a scheme that works for both.

And now is a perfect time for a short refresher about CPU caches. Of course data coming from memory is very slow compared to data coming from a cache. An important fact to remember is that data is loaded into the cache in (typically) 64-byte blocks called cache lines. The cache line—that is, your requested data and the 64 bytes surrounding it—is loaded on your first request for memory absent in the cache. Because every cache miss silently penalises your program, you want a well-considered strategy for ensuring you reduce cache misses whenever possible. Even if the first memory access is outside the cache, trying to structure your accesses so that a second, third, or forth access is within the cache will have a significant impact on speed. With that in mind, consider these tips for your member-variable declarations:

  • Move the most-frequently-used member-variables first
  • Move the least-frequently-used member-variables last
  • If variables are often used together, group them near each other
  • Try to reference variables in your functions in the order they’re declared

Nearly all C++ compilers organize member variables in memory in the order in which they are declared. And grouping your member variables using the above guidelines can help reduce cache misses that drastically impact performance. Although compilers can be smart about creating code that works with caching strategies in a way that’s hard for humans to track, the C++ rules on class layout make it hard for compilers to really shine. Your goal here is to help the compiler by stacking the deck on cache-line loads that will preferentially load the variables in the order you’ll need them.

This can be a tough one if you’re not sure how frequently things are used. While it’s not always easy for complicated classes to know what member variables may be touched more often, generally following this rule of thumb as well as you can will help. Certainly for the simpler classes (string, dates/times, points, complex, quaternions, etc) you’ll probably be accessing most member variables most of the time, but you can still declare and access your member variables in a consistent way that will help guarantee that you’re minimizing your cache misses.

Conclusion

The bottomline is that it still takes some amount of hand-holding to get a compiler to generate the best code. Good coding-habits are by no means the end-all, but are certainly a great place to start.

The post Four Habit-Forming Tips to Faster C++ appeared first on KDAB.

Categories: FLOSS Project Planets

PyCharm: Announcing General Availability of PyCharm 2016.2

Planet Python - Thu, 2016-07-21 10:06

Today we bring you PyCharm 2016.2, now available for download. This is the second update in the series of releases planned for 2016. Its outstanding new features for professional Python, Web and scientific development work together smoothly to offer you a unique coding experience.

As usual, PyCharm 2016.2 is available as a full-featured Professional Edition for Python and Web development, or as a free and open-source Community Edition for pure Python and scientific development.

Here are some notable highlights of this release.

Python-related improvements:

  • vmprof Profiler Support
  • Pandas dataframes viewer
  • Thread suspend option
  • Function return values in the debugger
  • Improvements for package installation from requirements.txt
  • Configuration for optimize imports
  • Enhanced postfix code completion
  • Lettuce scenario outlines

Platform enhancements:

  • Support for ligatures
  • Improved inspection tool
  • Custom background image for the editor
  • Regex support improvement
  • Handling of unversioned files
  • Improvements in working with patches
  • Enhanced VCS Log Viewer
  • Database tool improvements
  • And even more

For more details please watch this short What’s New in PyCharm 2016.2 video:

Read more about what’s new in PyCharm 2016.2 on the product website and download the IDE for your platform.

Your JetBrains Team
The Drive to Develop

Categories: FLOSS Project Planets

Import Python: ImportPython Issue 82

Planet Python - Thu, 2016-07-21 09:40

Worthy Read
Python has come a long way. So has job hunting.
Try Hired and get in front of 4,000+ companies with one application. No more pushy recruiters, no more dead end applications and mismatched companies, Hired puts the power in your hands.Sponsor
Machine Learning over 1M hotel reviews finds interesting insightsOn this tutorial we learned how to scrape millions of reviews, analyze them with pre-trained classifiers within MonkeyLearn, indexed the results with Elasticsearch and visualize them using Kibana. Machine learning makes sense when you want to analyze big volumes of data in a cost effective way. The code repository is here - https://github.com/monkeylearn/hotel-review-analysis

Mike Driscoll: Python 201: An Intro to mockThe unittest module now includes a mock submodule as of Python 3.3. It will allow you to replace portions of the system that you are testing with mock objects as well as make assertions about how they were used. A mock object is used for simulating system resources that aren’t available in your test environment. In other words, you will find times when you want to test some part of your code in isolation from the rest of it or you will need to test some code in isolation from outside services.

Altair: Declarative statistical visualization library for Python, based on Vega-Litepep8Altair is a declarative statistical visualization library for Python.

7 Django Development Best Practices Each Web Developer Must KnowdjangoSet up Persistent Database Connections, Turn Cached Loading on, Store the Sessions in Cache, Keep the Application and Libraries Separate, Store All Templates in One Place, Install HTML5 Boilerplate, Monitor and Control Processes using Supervisor.

DSF Code of Conduct committee releases transparent documentationcommunityToday we're proud to open source the documentation that describes how the Django Code of Conduct committee enforces our Code of Conduct. This documentation covers the structure of Code of Conduct committee membership, the process of handling Code of Conduct violations, our decision making process, record keeping, and transparency.

Why are some functions in python spelled with underscore, while some are not: setdefault, makedirs, isinstance?discussionI always wondered that. Here is a reddit discussion on the same.

Teaching an AI to write Python code with Python codeAIThis post is about creating a machine that writes its own code. More or less. Introducing GlaDoS Skynet Spynet. More specifically, we are going to train a character level Long Short Term Memory neural network to write code itself by feeding it Python source code. The training will run on a GPU instance on EC2, using Theano and Lasagne. If some of the words here sound obscure to you, I will do my best to explain what is happening.

Writing an API with Flask-RESTfulRESTThis article will go over the details of how to create a RESTful API with Flask and Flask-RESTful. In Part 1 we will go over the API basics and how to implement a simple API. In Part 2 we will expand into advanced use cases powered by Flask-RESTful. All code that will be show is readily available on this repository.

SciPy 2016 videos are upvideoRunning Python Apps in the Browser by Almar Klein was a pretty interesting talk for me. See what interest you. Youtube channel.

How to Create a Custom Django MiddlewaredjangoIn a nutshell, a Middleware is a regular Python class that hooks into Django’s request/response life cycle. Those classes holds pieces of code that are processed upon every request/response your Django application handles.

Mike Driscoll: An Intro to coverage.pycoverageCoverage.py is a 3rd party tool for Python that is used for measuring your code coverage. It was originally created by Ned Batchelder. The term “coverage” in programming circles is typically used to describe the effectiveness of your tests and how much of your code is actually covered by tests. You can use coverage.py with Python 2.6 up to the current version of Python 3 as well as with PyPy.

Ajax Website Tutorial with DjangodjangoIn this tutorial we'll see a trivial example of how to do a ajax website with django. Good for students looking to learn the basics of Django/Ajax and see how it works.

Check out the Python & Django channels available on Gitter.communityGitter is like slack for developers. They have active Python, Django channels. Have a look.

Introduction to Zipline in PythonPython has emerged as one of the most popular language for programmers in financial trading, due to its ease of availability, user-friendliness and presence of sufficient scientific libraries like Pandas, NumPy, PyAlgoTrade, Pybacktest and more. Zipline is a Python library for trading applications that powers the Quantopian service mentioned above. It is an event-driven system that supports both backtesting and live-trading. In this article we will learn how to install Zipline and then how to implement Moving Average Crossover strategy and calculate P&L, Portfolio value etc.



Upcoming Conference / User Group Meet
PyCon Australia 2016
PyCon APAC 2016
EuroScipy 2016
PyCon MY 2016
Python Unconference 2016
Kiwi PyCon
PyCon ZA 2016

Projects
PokemonGo-DesktopMap - 204 Stars, 36 ForkElectron App around PokemonGo-Map
PokemonGo-Map - 128 Stars, 55 ForkLive visualization of all the pokemon in your area
asyncpg - 69 Stars, 2 ForkA fast PostgreSQL Database Client Library for Python/asyncio
choronzon - 46 Stars, 16 ForkAn evolutionary knowledge-based fuzzer
zhihu-terminal - 42 Stars, 2 Forkzhihu-terminal using python2.7.
awesome-wagtail - 14 Stars, 1 ForkA curated list of awesome packages, articles, and other cool resources from the Wagtail community.
reddit_get_top_images - 10 Stars, 1 ForkGet top images from any subreddit
aiosmtpd - 6 Stars, 1 ForkA reimplementation of the Python stdlib smtpd.py based on asyncio.
delft - 6 Stars, 1 ForkA Python tool that automatically optimizes deep learning pipelines using genetic programming.
Categories: FLOSS Project Planets

Reproducible builds folks: Reproducible builds: week 62 in Stretch cycle

Planet Debian - Thu, 2016-07-21 09:13

What happened in the Reproducible Builds effort between June 26th and July 2nd 2016:

Read on to find out why we're lagging some weeks behind…!

GSoC and Outreachy updates
  • Ceridwen described using autopkgtest code to communicate with containers and how to test the container handling.

  • reprotest 0.1 has been accepted into Debian unstable, and any user reports, bug reports, feature requests, etc. would be appreciated. This is still an alpha release, and nothing is set in stone.

Toolchain fixes
  • Matthias Klose uploaded doxygen/1.8.11-3 to Debian unstable (closing #792201) with the upstream patch improving SOURCE_DATE_EPOCH support by using UTC as timezone when parsing the value. This was the last patch we were carrying in our repository, thus this upload obsoletes the version in our experimental repository.
  • cmake/3.5.2-2 was uploaded by Felix Geyer, which sorts file lists obtained with file(GLOB).
  • Dmitry Shachnev uploaded sphinx/1.4.4-2, which fixes a timezone related issue when SOURCE_DATE_EPOCH is set.

With the doxygen upload we are now down to only 2 modified packages in our repository: dpkg and rdfind.

Weekly reports delay and the future of statistics

To catch up with our backlog of weekly reports we have decided to skip some of the statistics for this week. We might publish them in a future report, or we might switch to a format where we summarize them more (and which we can create (even) more automatically), we'll see.

We are doing these weekly statistics because we believe it's appropriate and useful to credit people's work and make it more visible. What do you think? We would love to hear your thoughts on this matter! Do you read these statistics? Somewhat?

Actually, thanks to the power of notmuch, Holger came up with what you can see below, so what's missing for this week are the uploads fixing irreprodubilities. Which we really would like to show for the reasons stated above and because we really really need these uploads to happen

But then we also like to confirm the bugs are really gone, which (atm) requires manual checking, and to look for the words "reproducible" and "deterministic" (and spelling variations) in debian/changelogs of all uploads, to spot reproducible work not tracked via the BTS.

And we still need to catch up on the backlog of weekly reports.

Bugs submitted with reproducible usertags

It seems DebCamp in Cape Town was hugely successful and made some people get a lot of work done:

61 bugs have been filed with reproducible builds usertags and 60 of them had patches:

Package reviews

437 new reviews have been added (though most of them were just linking the bug, "only" 56 new issues in packages were found), an unknown number has been been updated and 60 have been removed in this week, adding to our knowledge about identified issues.

4 new issue types have been found:

Weekly QA work

98 FTBFS bugs have been reported by Chris Lamb and Santiago Vila.

diffoscope development strip-nondeterminism development
  • Chris Lamb made sure that .zhfst files are treated as ZIP files.
tests.reproducible-builds.org
  • Mattia Rizzolo uploaded pbuilder/0.225.1~bpo8+1 to jessie-backports and it has been installed on all build nodes. As a consequence all armhf and i386 builds will be done with eatmydata; this will hopefully cut down the build time by a noticable factor.
Misc.

This week's edition was written by Mattia Rizzolo, Reiner Herrmann, Ceridwen and Holger Levsen and reviewed by a bunch of Reproducible builds folks on IRC.

Categories: FLOSS Project Planets

Mike Driscoll: Python 201 Writing Update: Only 4 Chapters to go!

Planet Python - Thu, 2016-07-21 09:04

I finished up section #4 earlier this week which brings the book up to 26 chapters and a little over 200 pages. I have four more chapters planned and then a couple of updates to previous chapters. My goal is to have the book ready for proofing at the end of the month. Then I’ll create a sample print of the book and check it over for errors.

If anyone has been reading the book and found any errors, please let me know. I’ll be finalizing the chapters in mid-August or so and would like them to be as good as they can be before then.

Thanks so much for your support!
Mike

P.S. If you’d like to purchase the early version of the book, you can do at Gumroad or Leanpub

Categories: FLOSS Project Planets
Syndicate content