FLOSS Project Planets

Antoine Levy-Lambert: Configuration Drift

Planet Apache - Fri, 2014-11-21 23:31
Recently in my day job I encountered an issue. Our continuous integration system is setup to build a Java project which is hosted in a Git/Atlassian Stash repository.

The java project is using native libraries (*.so on linux) which are referenced by one of our third party jars.

One of our feature branches wants to use the version 8 of this third party, the rest of the branches use the version 7.

The build agents run with a LD_LIBRARY_PATH containing the folder for the version 7 of the library.

The continuous integration server that we are using - TeamCity - can set environment variables - but I am not aware of a way of telling TeamCity to set up different environment variables for the same build configuration depending upon the feature branch being build currently.

Also I would not want to enter this requirement in the build configuration, because I would have to change the build configuration every time a developer does a merge.

I mentioned this problem under the keyword configuration drift in an issue TW-18911 of the bug tracker of JetBrains.

Today I looked at Travis CI. The documentation of Travis CI explains that Travis is using Travis.yml files which are checked in in the root of the source tree of the projects to be built. Ant Travis.yml is taken from the branch being built. Since Travis users can specify for instance the major version of the JDK to use for the build, they can build one feature branch with Java 1.7 and another with Java 1.8, and the developer preparing the change can even have the elegance to check in the change in Travis.yml at the same time that he starts making use of Java 1.8 and maybe changing his pom.xml or build.xml to indicate that the code needs to be compiled with source=1.8.

CruiseControl has a potential solution to this type of problem if one sets up one project per module to build and per branch. CruiseControl configuration supports includes. One can make a directory structure for the project configuration where each branch's configuration is in a separate folder. That's not a great solution either as it requires some scripting to setup this file/folder structure, and it must be done in advance of actually starting builds on a branch.

Conclusion : CI systems which want to be really helpful for agile teams should allow the developers to document basic facts about the build process in the source tree itself. In TeamCity's world, that would be at least the build steps page of the configuration.

As far as I know, Jenkins is configured from a web page and the configuration of the build steps does not come from a descriptor supplied by the developers and branch dependent either.


Categories: FLOSS Project Planets

Bryan Pendleton: Other people discuss things I don't understand

Planet Apache - Fri, 2014-11-21 22:21

I should understand these things.

But I don't.

But I must try to.

  • Uber Executive Suggests Digging Up Dirt On JournalistsOver dinner, he outlined the notion of spending “a million dollars” to hire four top opposition researchers and four journalists. That team could, he said, help Uber fight back against the press — they’d look into “your personal lives, your families,” and give the media a taste of its own medicine.

    Michael was particularly focused on one journalist, Sarah Lacy, the editor of the Silicon Valley website PandoDaily, a sometimes combative voice inside the industry. Lacy recently accused Uber of “sexism and misogyny.” She wrote that she was deleting her Uber app after BuzzFeed News reported that Uber appeared to be working with a French escort service. “I don’t know how many more signals we need that the company simply doesn’t respect us or prioritize our safety,” she wrote.

  • The Coming Era of Privacy Scandals: Why the Uber story is certain to recurThe data revolution has happened; the toothpaste can’t be put back into the tube. It’s not just the NSA which has access to enormous amounts of personal data on us; it’s any number of companies big and small, which you may or may not have ever heard of. If that data can be subpoenaed, and most of it can be, then it can also be accessed without a subpoena by people within the firm, who might have nothing better to do during their lunch hour than look up celebrities, or friends, or enemies and see what they can find. Such behavior is ignoble, to be sure – but it is going to happen.
  • Uber's data makes a creepy point about the companyA couple of years ago, there was an entry on the company's blog titled "Rides of Glory." The company examined its rider data, sorting it for anyone who took an Uber between 10 p.m. and 4 a.m. on a Friday or Saturday night. Then it looked at how many of those same people took another ride about four to six hours later – from at or near the previous nights' drop-off point.

    Yes, Uber can and does track one-night stands.

  • Some thoughts on App Based Car Services Cars are already becoming generic. And already we have a generation coming up that gives a much smaller damn about driving than did previous ones — at least in the U.S. All that aspirational stuff about independence and style doesn’t matter as much as it used to. How long before GM, Ford and Toyota start making special models just for Uber and Lyft drivers?
  • What to do about UberSo here's a modest suggestion: treat the city's roads like a traditional public utility, or a public resource like cell spectrum. Invite Uber, Lyft and other ride-sharing companies to tender for a license as the city's preferred ride-sharing service. Let them compete to show how they'll treat drivers and riders fairly, in their terms and conditions; and let them bid for the right to this future profit stream.
  • Nick Denton On How Gawker, Uber and Facebook Will Save HumanityGawker Media’s sites have also been aggressive in calling out the many supposed sins of Uber and its CEO, Travis Kalanick. But Denton has praise for the car-summoning service — high praise indeed. “Uber may do more for the world than foreign aid workers in Mozambique because at some point some version of Uber will allow for more efficient use of resources and a better standard of living,” he says.
  • Stuck in the middleThere is nothing surprising or wrong with the idea of a tech company investigating reporters. The idea that only reporters have the ability to publish is a 20th century idea. Now anyone who wants to speak can start a blog or a podcast and get up and speak.
Categories: FLOSS Project Planets

Brett Cannon: The game mechanics of Destiny

Planet Python - Fri, 2014-11-21 20:50

My good friend Paul is about to start playing Destiny with me on the ps4, so I figured I should explain to him the game mechanics upfront so he can make wise decisions early on and maximize his playing time. And since it’s me I figured I might as well share my notes publicly. Do realize this focuses on the game mechanics and not explaining every minute detail of the game, so I will gloss over some bits.

Until you’re level 20

Destiny’s game mechanics are very different from when you start a character until you hit level 20 compared to level 20 and beyond (currently the level cap is 30).

Leveling up

Until level 20 you level up your character through experience; standard fare compared to other games.

Focuses

Beyond simply having a level, your character also has a focus. You start with one focus and unlock new abilities of your focus through experience. Once you hit level 15, though, you unlock a second focus that you can switch to. Now when you switch your new focus will have no abilities, so that means e.g. no grenades initially.

By the time you hit level 15 you will probably want to have decided if you want to stick with your initial focus or switch and start building up your new focus. Getting deep into your abilities takes a lot of time so you probably don’t want to go too far into any one focus that you don’t think you will care about.

I should also note that the level 15 unlock is only required for one character. After that any new character you start will be able to switch focuses from the beginning.

Reputation

Once you hit level 4 you unlock bounties. You complete bounties for reputation which you will care about once you are past level 20, so start completing bounties as soon as you can. Reputation is essentially a ranking amongst various factions in Destiny which sell different gear. For any faction, rank 1 lets you buy pretty stuff, rank 2 is armour, and rank 3 is weapons. When you start a character you earn reputation for the Vanguard for any non-PvP bounties, patrols, and strikes. Playing in the Crucible – which is the PvP multiplayer – earns you Crucible reputation. You can’t buy any gear from a faction until you hit level 18, but you can at least earn reputation starting at level 4.

At level 18 you start earning marks which is the currency of the factions. You can get Vanguard marks for completing various kinds of strikes. Crucible marks come from playing in the Crucible.

One thing to realize about turning in bounties is that the reputation is not only for you but the items you have equipped. This means if you have maxed out an item you can swap in another one you use on occasion, turn in a bounty, and then have the item gain experience without ever using it to earn that bounty.

Items

Initially you get items either through buying them using glimmer (the basic currency which is shared amongst your characters), drops from enemies, or rewards for completing things such as missions.

The rarity of items is:

  1. Common – white
  2. Uncommon – green
  3. Rare – blue
  4. Legendary – purple
  5. Exotic – gold

Until you hit level 20 you will only get common and uncommon items.

Starting with uncommon items, you can level up your items through experience and materials. The basics just use glimmer to unlock item abilities, but later on harder-to-obtain materials are necessary. Basically anything that takes glimmer and/or weapons parts you can just upgrade without caring. All other upgrades should be thought through based on how much you like the item.

You can share items between your characters through the vault in the Tower. You should also realize that all drops you pick up in the game are unique to you, so there is no arguing over who gets what loot.

Level 20 and beyond Items

Once you hit level 20 you still start earning rare items. You also begin to see legendary items as well as working towards exotic gear.

Exotic items

Exotic items are extremely quirky compared to the other item rarities. To begin with, you can only have a single exotic weapon and a single piece of exotic armor equipped at one time.

How you obtain exotic items is also quirky. You can collect motes of light which you take to the Watcher for exotic gear. You can collect Strange Coins to trade with Xur (who only shows up on weekends). You can get exotic bounties with some ridiculous requirements. Or you can complete raids.

Factions

Remember how you have been earning reputation for the Vanguard and Crucible since you hit level 4? Well now you have a bunch of factions to earn for. There are 3 other core factions always in the Tower along with unique ones that rotate in every so often for a limited time. If you wear a trinket from a faction then all of your reputation, Vanguard or Crucible, works toward your reputation for that faction (this only applies to the non-default factions, i.e. not Vanguard and Crucible). You will use only Crucible marks to buy items, though, with these other factions. They all have different focuses in terms of stats so that will influence what faction you focus on.

What all this means is that if you play both PvP and PvE then you may want to choose a non-default faction so as to pool your experience. It does mean, though, you will need to play enough multiplayer to earn the Crucible marks required to purchase items.

Leveling up

One of the biggest shifts in Destiny once you hit level 20 is that you level up not through experience but light. Rare armour and higher have an amount of light and the total light amount decides what level you are at. You can get to level 24 on rare items alone and level 28 with bought legendary items. But to hit past level 28 you will need to either earn higher end legendary gear or get an exotic piece of armour.

Summary
  • Start doing bounties as soon as you can
  • Choose a focus at level 15 and plan to stick with it
  • Leveling up item abilities that only cost glimmer and/or weapon parts should just be done, other materials should be watched after
  • At level 20 decide if you want to warn reputation with a specific faction
  • If you have already played a character previously then know that the new characters share the vault, glimmer, and focus switching is unlocked from the get-go
Categories: FLOSS Project Planets

Send Firefox tabs to your phone via KDE Connect

Planet KDE - Fri, 2014-11-21 20:30

Even though I criticized Mozilla in the past on my blog, in the end I always returned to Firefox as my main browser, as it the most customizable browser while also (nowadays) very fast and stable.

Today I want to talk about how to marry to KDE Connect, one of the most awesome pieces of technology to come from KDE in recent years.

Everybody who once used KDE Connect is immediately hooked to it. Some say it even was the inspiration for Apple’s Continuity feature.

KDE Connect works both ways but the user interface mostly just exposes sending stuff from your phone to your PC which has been an annoyance for me.
Luckily it is solved now. Today I’ve read about indicator-kdeconnect by Viko Adi Rahmawan.
indicator-kdeconnect is mostly a port of KDE Connect to desktops that use App Indicators, such as Ubuntu Unity. However it also comes with a very handy tool called kdeconnect-send that allows you to do just what I was missing: Send links and files from the PC to the phone.

Sending files is IMO not that important as KDE Connect allows to browse the phone’s file system (at least when the phone is running Android 4.4) but sending the current tab to read it on the go is where the fun is.

To do that you obviously first have to install KDE Connect on both your PC and Android device and then pair your devices.

Then install indicator-kdeconnect. For (K)Ubuntu the necessary steps are outlined here. I packaged the tool for Fedora myself, available here.

The third step is installing Launchy for Firefox.

The fourth and final step is to manually edit launchy.xml. Details how to do that are outlined in Launchy’s Preferences window.
The code you have to add to Launchy is:
<?xml version="1.0" encoding="UTF-8"?>
<configurations xmlns="http://launchy.mozdev.org/configurations">
  <application>
    <label>KDE Connect</label>
    <type>1</type>
    <command>/usr/bin/kdeconnect-send</command>
  </application>
</configurations>

After you restarted Firefox you should have this button:

On Android it then looks like this in the notification drawer:

Have fun!

PS: I didn’t yet investigate why it’s not building under openSUSE. I send the spec file upstream. If you have a fix, please sent it upstream as well. Also no (Build)Requirements for Mageia are currently in the file. Again: If you have Mageia and want to make this tool available there as well, please send your additions directly upstream.


Categories: FLOSS Project Planets

Petter Reinholdtsen: How to stay with sysvinit in Debian Jessie

Planet Debian - Fri, 2014-11-21 19:00

By now, it is well known that Debian Jessie will not be using sysvinit as its boot system by default. But how can one keep using sysvinit in Jessie? It is fairly easy, and here are a few recipes, courtesy of Erich Schubert and Simon McVittie.

If you already are using Wheezy and want to upgrade to Jessie and keep sysvinit as your boot system, create a file /etc/apt/preferences.d/use-sysvinit with this content before you upgrade:

Package: systemd-sysv Pin: release o=Debian Pin-Priority: -1

This file content will tell apt and aptitude to not consider installing systemd-sysv as part of any installation and upgrade solution when resolving dependencies, and thus tell it to avoid systemd as a default boot system. The end result should be that the upgraded system keep using sysvinit.

If you are installing Jessie for the first time, there is no way to get sysvinit installed by default (debootstrap used by debian-installer have no option for this), but one can tell the installer to switch to sysvinit before the first boot. Either by using a kernel argument to the installer, or by adding a line to the preseed file used. First, the kernel command line argument:

preseed/late_command="in-target apt-get install -y sysvinit-core"

Next, the line to use in a preseed file:

d-i preseed/late_command string in-target apt-get install -y sysvinit-core

One can of course also do this after the first boot by installing the sysvinit-core package.

I recommend only using sysvinit if you really need it, as the sysvinit boot sequence in Debian have several hardware specific bugs on Linux caused by the fact that it is unpredictable when hardware devices show up during boot. But on the other hand, the new default boot system still have a few rough edges I hope will be fixed before Jessie is released.

Categories: FLOSS Project Planets

Justin Mason: Links for 2014-11-21

Planet Apache - Fri, 2014-11-21 18:58
  • Goat Simulator’s fake MMO

    This is classic. I love the “Rouge”:

    We also wanted the Rouge to actually look like a stealth-oriented make-up artist, but our 3D artist thought the goat looked ridiculous with a pink wig and a Gucci bag, so we remade the Rouge to actually look like a Rogue.

    (tags: rogue rouge goats goat-simulator funny satire mmos mmorpg games warcraft)

  • The boss has malware, again… : talesfromtechsupport

    Finally after all traditional means of infection were covered; IT started looking into other possibilities. They finally asked the Executive, “Have there been any changes in your life recently”? The executive answer “Well yes, I quit smoking two weeks ago and switched to e-cigarettes”. And that was the answer they were looking for, the made in china e-cigarette had malware hard coded into the charger and when plugged into a computer’s USB port the malware phoned home and infected the system. Moral of the story is have you ever question the legitimacy of the $5 dollar EBay made in China USB item that you just plugged into your computer? Because you should, you damn well should. (Via Elliot)

    (tags: via:elliot malware e-cigarettes cigarettes smoking china risks)

Categories: FLOSS Project Planets

3C Web Services: How to redirect all traffic to HTTPS on your Drupal site

Planet Drupal - Fri, 2014-11-21 18:57

Since Google announced that it gives an additional SEO boost for sites that are fully encrypted with HTTPS it is now advisable to encrypt your entire site and not just pages with sensitive information such as user login and checkout pages.

There are multiple method to achieve this. We like using the below modification to .HTACCESS file. Simply add this code to the .HTACCESS file that is located in the Drupal root directory after the the line "" and all traffic to your site will now automatically be redirected from HTTP to HTTPS.

Categories: FLOSS Project Planets

Brian W. Fitzpatrick: The un-phonetic alphabet

Planet Apache - Fri, 2014-11-21 18:28
Karl Fogel started this on the whiteboard in building 43 at Google in early 2006. The goal was to come up with an alphabet that, when used to spell out words, made it near impossible for the listener to puzzle out the word being spelled. Most people didn't quite get the spirit of the alphabet, so on the night of the Google Dance, Karl, Ian Hickson, a few others, and myself completed the alphabet.

A few of the letters could be improved on, but it's pretty darned confusing--try to spell out a word using it. :-)
A as in AreB as in Blank
C as in ChuteD as in DjangoE as in EweF as in FourG as in GenesH as in HourI as in IagoJ as in JeansK as in KnotL as in ListenM as in MnemonicN as in NoO as in OurP as in Phonetic
Q as in QatarR as in RepeatS as in SeaT as in Tsetse FlyU as in UnderscoreV as in VowelW as in WhyX as in XenophobicY as in YouZ as in Zero
Categories: FLOSS Project Planets

FSF Blogs: Back in stock: a ThinkPenguin router that respects your freedom

GNU Planet! - Fri, 2014-11-21 16:45

In September, we awarded use of the Respects Your Freedom (RYF) certification mark to the ThinkPenguin Wireless N-Broadband Router (TPE-NWIFIROUTER). But, within days of our press release, ThinkPenguin sold out of their inventory! However, today we are happy to announce that they have replenished their stocks (this time with a new case, but the same chipset and software).

This is the first home wifi router on the planet that you can go out and purchase that ships only with software that respects your freedom: libreCMC, a distribution of GNU/Linux recently endorsed by the FSF. This is awesome and you should replace your proprietary software-based wireless router at home with one of these! I've personally been using one at home for a few weeks now and I love it. I even made an unboxing video for you so you can see how simple it is to set-up:

(GIF not working? See my unboxing video.)

Or to quote artist, hacker, and GNU MediaGoblin maintainer, Chris Webber:

Prior to the ThinkPenguin router, I had no idea about any options for getting a 100% free software router. Seems exciting that someone has done all that work for me. Extra cost on top of that hardware... looks pretty cheap! Considering all the headaches I've gone through to find a phone that reasonably even comes close to respecting my freedom and then doesn't even really do so, hell, for someone doing the same for a router, thank goodness! I will be buying this as soon as we replace our router (probably soon!)

Excited that ThinkPenguin is doing this work! I hope more companies follow in said footsteps.

However, this isn't just an opportunity for individuals to be able to easily buy a 100% free software based router. It is also a big step forward for the free software community, because it gives us a platform that we can use to begin building a free software based network for communication, file sharing, social networking, and more.

This is the third product by ThinkPenguin to be awarded the use of the RYF certification mark. The first two were the TPE-N150USB Wireless N USB Adapter and the long-range TPE-N150USBL model. This combined with other products such as the LibreBoot X60 and the LulzBot 3D printer brings us one step closer to being able to recommend to users the ability to have control over all of the devices they rely upon in their day-to-day computing.

Learn more about the Respects Your Freedom hardware certification, including details on the certification of the TPE-NWIFIROUTER router as well as other RYF certified products at fsf.org/ryf. Hardware sellers interested in applying for certification can consult our certification criteria and should contact licensing@fsf.org with any further questions.

Subscribe to the Free Software Supporter newsletter to receive announcements about future RYF products.

Categories: FLOSS Project Planets

Back in stock: a ThinkPenguin router that respects your freedom

FSF Blogs - Fri, 2014-11-21 16:45

In September, we awarded use of the Respects Your Freedom (RYF) certification mark to the ThinkPenguin Wireless N-Broadband Router (TPE-NWIFIROUTER). But, within days of our press release, ThinkPenguin sold out of their inventory! However, today we are happy to announce that they have replenished their stocks (this time with a new case, but the same chipset and software).

This is the first home wifi router on the planet that you can go out and purchase that ships only with software that respects your freedom: libreCMC, a distribution of GNU/Linux recently endorsed by the FSF. This is awesome and you should replace your proprietary software-based wireless router at home with one of these! I've personally been using one at home for a few weeks now and I love it. I even made an unboxing video for you so you can see how simple it is to set-up:

(GIF not working? See my unboxing video.)

Or to quote artist, hacker, and GNU MediaGoblin maintainer, Chris Webber:

Prior to the ThinkPenguin router, I had no idea about any options for getting a 100% free software router. Seems exciting that someone has done all that work for me. Extra cost on top of that hardware... looks pretty cheap! Considering all the headaches I've gone through to find a phone that reasonably even comes close to respecting my freedom and then doesn't even really do so, hell, for someone doing the same for a router, thank goodness! I will be buying this as soon as we replace our router (probably soon!)

Excited that ThinkPenguin is doing this work! I hope more companies follow in said footsteps.

However, this isn't just an opportunity for individuals to be able to easily buy a 100% free software based router. It is also a big step forward for the free software community, because it gives us a platform that we can use to begin building a free software based network for communication, file sharing, social networking, and more.

This is the third product by ThinkPenguin to be awarded the use of the RYF certification mark. The first two were the TPE-N150USB Wireless N USB Adapter and the long-range TPE-N150USBL model. This combined with other products such as the LibreBoot X60 and the LulzBot 3D printer brings us one step closer to being able to recommend to users the ability to have control over all of the devices they rely upon in their day-to-day computing.

Learn more about the Respects Your Freedom hardware certification, including details on the certification of the TPE-NWIFIROUTER router as well as other RYF certified products at fsf.org/ryf. Hardware sellers interested in applying for certification can consult our certification criteria and should contact licensing@fsf.org with any further questions.

Subscribe to the Free Software Supporter newsletter to receive announcements about future RYF products.

Categories: FLOSS Project Planets

Joey Hess: propelling containers

Planet Debian - Fri, 2014-11-21 16:33

Propellor has supported docker containers for a "long" time, and it works great. This week I've worked on adding more container support.

docker containers (revisited)

The syntax for docker containers has changed slightly. Here's how it looks now:

example :: Host example = host "example.com" & Docker.docked webserverContainer webserverContainer :: Docker.Container webserverContainer = Docker.container "webserver" "joeyh/debian-stable" & os (System (Debian (Stable "wheezy")) "amd64") & Docker.publish "80:80" & Apt.serviceInstalledRunning "apache2" & alias "www.example.com"

That makes example.com have a web server in a docker container, as you'd expect, and when propellor is used to deploy the DNS server it'll automatically make www.example.com point to the host (or hosts!) where this container is docked.

I use docker a lot, but I have drank little of the Docker KoolAid. I'm not keen on using random blobs created by random third parties using either unreproducible methods, or the weirdly underpowered dockerfiles. (As for vast complicated collections of containers that each run one program and talk to one another etc ... I'll wait and see.)

That's why propellor runs inside the docker container and deploys whatever configuration I tell it to, in a way that's both replicatable later and lets me use the full power of Haskell.

Which turns out to be useful when moving on from docker containers to something else...

systemd-nspawn containers

Propellor now supports containers using systemd-nspawn. It looks a lot like the docker example.

example :: Host example = host "example.com" & Systemd.persistentJournal & Systemd.nspawned webserverContainer webserverContainer :: Systemd.Container webserverContainer = Systemd.container "webserver" chroot & Apt.serviceInstalledRunning "apache2" & alias "www.example.com" where chroot = Chroot.debootstrapped (System (Debian Unstable) "amd64") Debootstrap.MinBase

Notice how I specified the Debian Unstable chroot that forms the basis of this container. Propellor sets up the container by running debootstrap, boots it up using systemd-nspawn, and then runs inside the container to provision it.

Unlike docker containers, systemd-nspawn containers use systemd as their init, and it all integrates rather beautifully. You can see the container listed in systemctl status, including the services running inside it, use journalctl to examine its logs, etc.

But no, systemd is the devil, and docker is too trendy...

chroots

Propellor now also supports deploying good old chroots. It looks a lot like the other containers. Rather than repeat myself a third time, and because we don't really run webservers inside chroots much, here's a slightly different example.

example :: Host example = host "mylaptop" & Chroot.provisioned (buildDepChroot "git-annex") buildDepChroot :: Apt.Package -> Chroot.Chroot buildDepChroot pkg = Chroot.debootstrapped system Debootstrap.buildd dir & Apt.buildDep pkg where dir = /srv/chroot/builddep/"++pkg system = System (Debian Unstable) "amd64"

Again this uses debootstrap to build the chroot, and then it runs propellor inside the chroot to provision it (btw without bothering to install propellor there, thanks to the magic of bind mounts and completely linux distribution-independent packaging).

In fact, the systemd-nspawn container code reuses the chroot code, and so turns out to be really rather simple. 132 lines for the chroot support, and 167 lines for the systemd support (which goes somewhat beyond the nspawn containers shown above).

Which leads to the hardest part of all this...

debootstrap

Making a propellor property for debootstrap should be easy. And it was, for Debian systems. However, I have crazy plans that involve running propellor on non-Debian systems, to debootstrap something, and installing debootstrap on an arbitrary linux system is ... too hard.

In the end, I needed 253 lines of code to do it, which is barely one magnitude less code than the size of debootstrap itself. I won't go into the ugly details, but this could be made a lot easier if debootstrap catered more to being used outside of Debian.

closing

Docker and systemd-nspawn have different strengths and weaknesses, and there are sure to be more container systems to come. I'm pleased that Propellor can add support for a new container system in a few hundred lines of code, and that it abstracts away all the unimportant differences between these systems.

PS

Seems likely that systemd-nspawn containers can be nested to any depth. So, here's a new kind of fork bomb!

infinitelyNestedContainer :: Systemd.Container infinitelyNestedContainer = Systemd.container "evil-systemd" (Chroot.debootstrapped (System (Debian Unstable) "amd64") Debootstrap.MinBase) & Systemd.nspawned infinitelyNestedContainer

Strongly typed purely functional container deployment can only protect us against a certian subset of all badly thought out systems. ;)

Categories: FLOSS Project Planets

ImageX Media: Delivery Documentation

Planet Drupal - Fri, 2014-11-21 16:11
When buying a car, there’s a reason you are given such a comprehensive user's manual to cover everything that the salesperson or technician was unable to show you how to do in the first demonstration. Things like what to do when the "Check Engine" light comes on, or which grade of oil to use when it comes time for an oil change. Although you may not reference it often, when needed the supporting user manual is worth its weight in gold.
Categories: FLOSS Project Planets

Blink Reaction: Matt Korostoff Talks REST and SOAP

Planet Drupal - Fri, 2014-11-21 15:53

This talk was given at Drupal Camp Baltimore 2014. In it, I discuss REST and (briefly) SOAP APIs built with Drupal. I give a number of hands on examples using Views Datasource, RESTful Web Services (restws), and the Services module.

Categories: FLOSS Project Planets

Niels Thykier: Release Team unblock queue flushed

Planet Debian - Fri, 2014-11-21 15:46

At the start of this week, I wrote that we had 58 open unblock requests open (of which 25 were tagged moreinfo).  Thanks to an extra effort from the Release Team, we now down to 25 open unblocks – of which 18 are tagged moreinfo.

We have now resolved 442 unblock requests (out of a total of 467).  The rate has also declined to an average of ~18 new unblock requests a day (over 26 days) and our closing rated increased to ~17.

With all of this awesomeness, some of us are now more than ready to have a well-deserved weekend to recharge our batteries.  Meanwhile, feel free to keep the RC bug fixes flowing into unstable.


Categories: FLOSS Project Planets

Richard Hartmann: Release Critical Bug report for Week 47

Planet Debian - Fri, 2014-11-21 15:31

There's a BSP this weekend. If you're interested in remote participation, please join #debian-muc on irc.oftc.net.

The UDD bugs interface currently knows about the following release critical bugs:

  • In Total: 1213 (Including 210 bugs affecting key packages)
    • Affecting Jessie: 342 (key packages: 152) That's the number we need to get down to zero before the release. They can be split in two big categories:
      • Affecting Jessie and unstable: 260 (key packages: 119) Those need someone to find a fix, or to finish the work to upload a fix to unstable:
        • 37 bugs are tagged 'patch'. (key packages: 20) Please help by reviewing the patches, and (if you are a DD) by uploading them.
        • 12 bugs are marked as done, but still affect unstable. (key packages: 3) This can happen due to missing builds on some architectures, for example. Help investigate!
        • 211 bugs are neither tagged patch, nor marked done. (key packages: 96) Help make a first step towards resolution!
      • Affecting Jessie only: 82 (key packages: 33) Those are already fixed in unstable, but the fix still needs to migrate to Jessie. You can help by submitting unblock requests for fixed packages, by investigating why packages do not migrate, or by reviewing submitted unblock requests.
        • 65 bugs are in packages that are unblocked by the release team. (key packages: 26)
        • 17 bugs are in packages that are not unblocked. (key packages: 7)

How do we compare to the Squeeze release cycle?

Week Squeeze Wheezy Jessie 43 284 (213+71) 468 (332+136) 319 (240+79) 44 261 (201+60) 408 (265+143) 274 (224+50) 45 261 (205+56) 425 (291+134) 295 (229+66) 46 271 (200+71) 401 (258+143) 427 (313+114) 47 283 (209+74) 366 (221+145) 342 (260+82) 48 256 (177+79) 378 (230+148) 49 256 (180+76) 360 (216+155) 50 204 (148+56) 339 (195+144) 51 178 (124+54) 323 (190+133) 52 115 (78+37) 289 (190+99) 1 93 (60+33) 287 (171+116) 2 82 (46+36) 271 (162+109) 3 25 (15+10) 249 (165+84) 4 14 (8+6) 244 (176+68) 5 2 (0+2) 224 (132+92) 6 release! 212 (129+83) 7 release+1 194 (128+66) 8 release+2 206 (144+62) 9 release+3 174 (105+69) 10 release+4 120 (72+48) 11 release+5 115 (74+41) 12 release+6 93 (47+46) 13 release+7 50 (24+26) 14 release+8 51 (32+19) 15 release+9 39 (32+7) 16 release+10 20 (12+8) 17 release+11 24 (19+5) 18 release+12 2 (2+0)

Graphical overview of bug stats thanks to azhag:

Categories: FLOSS Project Planets

KDE: SoK: Revamp the Continuous Integration system progress report.

Planet KDE - Fri, 2014-11-21 14:51

KDE jenkins ci prototype

Wow. What a journey. Poor CMake, my Guinea pig, while I figured out how to get it all working.

My quest is to accomplish : The continuous integration system is a piece of KDE.org infrastructure which compiles KDE software, executes tests included with the software and performs software quality tests. This is done when developers make commits to git.kde.org, and is used to ensure our software is in a releasable state and to detect regressions which are accidentally introduced from time to time. It can be found at build.kde.org. As part of this project you will be revamping the system to allow us to expand it to cover additional operating systems in the future, standardize the configuration of jobs and to improve the flexibility of the builds we perform. In addition you’ll also be responsible for setting up a new foundation for our Linux builds as the current one is running on a distribution which will soon be out of date.

Expected results: The CI system is prepared for future expansion, is able to use a new format for dependency and branching information, and is optionally able to communicate with Reviewboard.

Knowledge Prerequisite: Object oriented programming is mandatory. Student should also be aware of how to build KDE software by hand (using CMake). Familiarity with Python is a significant plus, as well as the JSON, XML and YAML data storage formats. The student should ideally be comfortable accessing a system over SSH, installing packages there and compiling software remotely without a graphical terminal.

I met all of the prerequisites, so I thought it would be a breeze. Hah. Thankfully, I love a challenge and this has been a super learning experience.

While doing my research I encountered this lovely concept called docker. It looks to be the answer for many of the above mentioned requirements, so I took the dive to learn docker. This being a large hurdle, as I have never worked with containers of any kind before… My first hurdles while learning docker was my data went poof every time I needed a new build, from a missing dependency or missed tool! Oh goodness, this will not do, in come volumes. Of course, that was a challenge until I figured out the UID and GID did not match. Volumes will be necessary with my future plans, so it all worked out :). Now I love docker so much, I for see myself containerizing everything!! I have now successfully built cmake+qt5+ECM+KF5 tier 1. This concludes Prototype 1.

Next steps:
Solution for Docker + SSH + rsync currently in scripts. Docker by design does not keep the same IP and I had to map the Hostname + IP on my slave. As this will change on every restart, this is not ideal.

I am certain I want to set up multi config for all build to accommodate MULTIOS and adjust the python scripts to check the OS and load config script accordingly.
Though I still need to figure out multi-config in itself as you can see kwindowsystem was an utter failure.

Compile all of KDE.

Future steps:
I want to break out each app into its own container which will satisfy: standardize the configuration of jobs and to improve the flexibility of the builds we perform.

Templates.

Anything else I can think of to make this a great CI system.

A big thank you to Ben Cooksley, my mentor

Categories: FLOSS Project Planets

Jonathan Wiltshire: On kFreeBSD and FOSDEM

Planet Debian - Fri, 2014-11-21 14:16

Boy I love rumours. Recently I’ve heard two, which I ought to put to rest now everybody’s calmed down from recent events.

kFreeBSD isn’t an official Jessie architecture because <insert systemd-related scare story>

Not true.

Our sprint at ARM (who kindly hosted and caffeinated us for four days) was timed to coincide with the Cambridge Mini-DebConf 2014. The intention was that this would save on travel costs for those members of the Release Team who wanted to attend the conference, and give us a jolly good excuse to actually meet up. Winners all round.

It also had an interesting side-effect. The room we used was across the hall from the lecture theatre being used as hack space and, later, the conference venue, which meant everybody attending during those two days could see us locked away there (and yes, we were in there all day for two days solid, except for lunch times and coffee missions). More than one conference attendee remarked to me in person that it was interesting for them to see us working (although of course they couldn’t hear what we were discussing), and hadn’t appreciated before that how much time and effort goes into our meetings.

Most of our first morning was taken up with the last pieces of architecture qualification, and that was largely the yes/no decision we had to make about kFreeBSD. And you know what? I don’t recall us talking about systemd in that context at all. Don’t forget kFreeBSD already had a waiver for a reduced scope in Jessie because of the difficulty in porting systemd to it.

It’s sadly impossible to capture the long and detailed discussion we had into a couple of lines of status information in a bits mail. If bits mails were much longer, people would be put off reading them, and we really really want you to take note of what’s in there. The little space we do have needs to be factual and to the point, and not include all the background that led us to a decision.

So no, the lack of an official Jessie release of kFreeBSD has very little, if anything, to do with systemd.

Jessie will be released during (or even before) FOSDEM

Not necessarily true.

Debian releases are made when they’re ready. That sets us apart from lots of other distributions, and is a large factor in our reputation for stability. We may have a target date in mind for a freeze, because that helps both us and the rest of the project plan accordingly. But we do not have a release date in mind, and will not do so until we get much closer to being ready. (Have you squashed an RC bug today?)

I think this rumour originated from the office of the DPL, but it’s certainly become more concrete than I think Lucas intended.

However, it is true that we’ve gone into this freeze with a seriously low bug count, because of lots of other factors. So it may indeed be that we end up in good enough shape to think about releasing near (or even at) FOSDEM. But rest assured, Debian 8 “Jessie” will be released when it’s ready, and even we don’t know when that will be yet.

(Of course, if we do release before then, you could consider throwing us a party. Plenty of the Release Team, FTP masters and CD team will be at FOSDEM, release or none.)

On kFreeBSD and FOSDEM is a post from: jwiltshire.org.uk | Flattr

Categories: FLOSS Project Planets

Ian Ozsvald: My Keynote at PyConIreland 2014 &#8211; &#8220;The Real Unsolved Problems in Data Science&#8221;

Planet Python - Fri, 2014-11-21 13:39

I’ve just given the opening keynote here at PyConIreland 2014 – many thanks to the organisers for letting me get on stage. This is based on 15 years experience running my own consultancies in Data Science and Artificial Intelligence. (Small note  – with the pic below James mis-tweeted ‘sexist’ instead of ‘sexiest’ (from my opening slide) <sigh>)

 

The slides for “The Real Unsolved Problems in Data Science” are available on speakerdeck along with the full video. I wrote this for the more engineering-focused PyConIreland audience. These are the high level points, I did rather fill my hour:

  • Data Science is driven by companies needing new differentiation tactics (not by ‘big data’)
  • Problem 1 – People asking for too-complex stuff that’s not really feasible (‘magic’)
  • Problem 2 – Lack of statistical education for engineers – do go statistics courses!
  • Problem 3 – Dirty data is a huge cost – think about doing a Data Audit
  • Problem 4 – We need higher-level data cleaning APIs that understand human-level data (rather than numbers, strings and bools!) – much work is required here
  • Problem 5 – Visualisation with Python still hard and clunky, has a poor on-boarding experience for new users (and R does well here)
  • Problem 6 – Lots of go-faster/high-performance options but really Python should ‘handle this for us’ (and yes, I have written a book on this)
  • Problem 7 – Lack of shared vocabulary for statisticians & engineers
  • Problem 8 – Heterogeneous storage world is mostly non-Python (at least for high performance work), we need a “LAMP Stack for Data Science”
  • Problem 9 – Collaboration is still painful (but the IPython Notebook is improving this)
  • Problem 10 – We’re still building the same tools over and over (but the Notebook makes it easier) - we could do with some shared tools here
  • Linked Open Data is very useful and you should contribute to it and consume it
  • Our common tooling in Python is very powerful – please join numpy and scipy projects and contribute to the core
  • I noted a few times that the Python science stack works in Python 3 so you should just use Python 3.4+ for all new projects
  • PyData/EuroSciPy/SciPy/DataKind meetups are a great way to get involved
  • We need a “Design Patterns for Data Science with Python” book (and I want to know what you want to learn)

From discussions afterwards it seems that my message “you need clean data to do neat data science stuff” was well received. I’m certainly not the only person in the room battling with Unicode foolishness (not in Python of course as Python 3+ solves the Unicode problem :-).

Ian applies Data Science as an AI/Data Scientist for companies in ModelInsight, sign-up for Data Science tutorials in London. Historically Ian ran Mor Consulting. He also founded the image and text annotation API Annotate.io, co-authored SocialTies, programs Python, authored The Screencasting Handbook, lives in London and is a consumer of fine coffees.
Categories: FLOSS Project Planets

Gunnar Wolf: Status of the Debian OpenPGP keyring — November update

Planet Debian - Fri, 2014-11-21 13:29

Almost two months ago I posted our keyring status graphs, showing the progress of the transition to >=2048-bit keys for the different active Debian keyrings. So, here are the new figures.

First, the Non-uploading keyring: We were already 100% transitioned. You will only notice a numerical increase: That little bump at the right is our dear friend Tássia finally joining as a Debian Developer. Welcome! \o/

As for the Maintainers keyring: We can see a sharp increase in 4096-bit keys. Four 1024-bit DM keys were migrated to 4096R, but we did have eight new DMs coming in To them, also, welcome \o/.

Sadly, we had to remove a 1024-bit key, as Peter Miller sadly passed away. So, in a 234-key universe, 12 new 4096R keys is a large bump!

Finally, our current-greatest worry — If for nothing else, for the size of the beast: The active Debian Developers keyring. We currently have 983 keys in this keyring, so it takes considerably more effort to change it.

But we have managed to push it noticeably.

This last upload saw a great deal of movement. We received only one new DD (but hey — welcome nonetheless! \o/ ). 13 DD keys were retired; as one of the maintainers of the keyring, of course this makes me sad — but then again, in most cases it's rather an acknowledgement of fact: Those keys' holders often state they had long not been really involved in the project, and the decision to retire was in fact timely. But the greatest bulk of movement was the key replacements: A massive 62 1024D keys were replaced with stronger ones. And, yes, the graph changed quite abruptly:

We still have a bit over one month to go for our cutoff line, where we will retire all 1024D keys. It is important to say we will not retire the affected accounts, mark them as MIA, nor anything like that. If you are a DD and only have a 1024D key, you will still be a DD, but you will be technically unable to do work directly. You can still upload your packages or send announcements to regulated mailing lists via sponsor requests (although you will be unable to vote).

Speaking of votes: We have often said that we believe the bulk of the short keys belong to people not really active in the project anymore. Not all of them, sure, but a big proportion. We just had a big, controversial GR vote with one of the highest voter turnouts in Debian's history. I checked the GR's tally sheet, and the results are interesting: Please excuse my ugly bash, but I'm posting this so you can play with similar runs on different votes and points in time using the public keyring Git repository:

  1. $ git checkout 2014.10.10
  2. $ for KEY in $( for i in $( grep '^V:' tally.txt |
  3. awk '{print "<" $3 ">"}' )
  4. do
  5. grep $i keyids|cut -f 1 -d ' '
  6. done )
  7. do
  8. if [ -f debian-keyring-gpg/$KEY -o -f debian-nonupload-gpg/$KEY ]
  9. then
  10. gpg --keyring /dev/null --keyring debian-keyring-gpg/$KEY \
  11. --keyring debian-nonupload-gpg/$KEY --with-colons \
  12. --list-key $KEY 2>/dev/null \
  13. | head -2 |tail -1 | cut -f 3 -d :
  14. fi
  15. done | sort | uniq -c
  16. 95 1024
  17. 13 2048
  18. 1 3072
  19. 371 4096
  20. 2 8192

So, as of mid-October: 387 out of the 482 votes (80.3%) were cast by developers with >=2048-bit keys, and 95 (19.7%) were cast by short keys.

If we were to run the same vote with the new active keyring, 417 votes would have been cast with >=2048-bit keys (87.2%), and 61 with short keys (12.8%). We would have four less votes, as they retired:

  1. 61 1024
  2. 14 2048
  3. 2 3072
  4. 399 4096
  5. 2 8192

So, lets hear it for November/December. How much can we push down that pesky yellow line?

Disclaimer: Any inaccuracy due to bugs in my code is completely my fault!

Categories: FLOSS Project Planets

Paul Booker: How to Override Core Functionality in your Theme

Planet Drupal - Fri, 2014-11-21 13:12

If you wanted to add right double angle quotes or raquo to each of your comment block comments. First you would track down the functionality that needs changing to theme_comment_block() inside the comments module ..

function theme_comment_block() { $items = array(); $number = variable_get('comment_block_count', 10); foreach (comment_get_recent($number) as $comment) { $items[] = l($comment->subject, 'comment/' . $comment->cid, array('fragment' => 'comment-' . $comment->cid)) . ' ' . t('@time ago', array('@time' => format_interval(REQUEST_TIME - $comment->changed))) . ''; } if ($items) { return theme('item_list', array('items' => $items)); } else { return t('No comments available.'); } } function comment_block_view($delta = '') { if (user_access('access comments')) { $block['subject'] = t('Recent comments'); $block['content'] = theme('comment_block'); return $block; } }

and then make your changes by overriding theme_comment_block inside your theme's template.php as ..

function mytheme_comment_block() { $items = array(); $number = variable_get('comment_block_count', 10); foreach (comment_get_recent($number) as $comment) { $items[] = l('» ' . $comment->subject, 'comment/' . $comment->cid, array('fragment' => 'comment-' . $comment->cid, 'html' => true)) . ' ' . t('@time ago', array('@time' => format_interval(REQUEST_TIME - $comment->changed))) . ''; } if ($items) { return theme('item_list', array('items' => $items)); } else { return t('No comments available.'); } }

After clearing the cache your theme function will be now called instead of the theme function provided by the core comment module.

Tags:
Categories: FLOSS Project Planets
Syndicate content