Drupal.org Featured Case Studies: SooperThemes Drupal Themes

Planet Drupal - Mon, 21/09/2015 - 18:01
Completed Drupal site or project URL: http://www.sooperthemes.com/#-Drupal-Themes

SooperThemes is a theme shop, selling premium Drupal themes. SooperThemes developed their sixth Drupal re-design to go with a completely new product line, based on our Glazed Drag and Drop theme.

As the oldest active Drupal themes shop, SooperThemes has been selling designs and contributing code to the community since 2007. We have used Drupal 6 with Ubercart and Drupal 7 with Commerce. For our newest website, we started with a clean slate and browsed the Drupal ecosystem for the most effective and maintainable tools to build the home for our new themes.

Traditionally, we have always used custom themes for our own website. This time, we built our website entirely with our own product. Our new theme is as much about its Drag and Drop site-building tools as it is about design. We could create a unique design by editing the many settings in the Glazed theme. Thereafter, we could design pages with the integrated visual drag and drop page builder. At no point did we miss Photoshop or our favorite code editor. Photography, text, and responsive design combine intuitively in the page builder, and everything is mobile-friendly out of the box.

Key modules/theme/distribution used: Drupal CMS Bootstrap 3 ProfileBootstrapModel EntitiesRecurlyOrganizations involved: SooperThemesTeam members: JurriaanRoelofs
Categories: Elsewhere

Lunar: Reproducible builds: week 21 in Stretch cycle

Planet Debian - Mon, 21/09/2015 - 17:33

What happened in the reproducible builds effort this week:

Media coverage

Nathan Willis covered our DebConf15 status update in Linux Weekly News. Access to non-LWN subscribers will be given on Thursday 24th.

Linux Journal published a more general piece last Tuesday.

Unexpected praise for reproducible builds appeared this week in the form of several iOS applications identified as including spyware. The malware was undetected by Apple screening. This actually happened because application developers had simply downloaded a trojaned version of XCode through an unofficial source. While reproducible builds can't really help users of non-free software, this is exactly the kind of attacks that we are trying to prevent in our systems.

Toolchain fixes

Niko Tyni wrote and uploaded a better patch for the source order problem in libmodule-build-perl.

Tristan Seligmann identified how the code generated by python-cffi could be emitted in random order in some cases. Upstream has already fixed the problem.

Packages fixed

The following 24 packages became reproducible due to changes in their build dependencies: apache-curator, checkbox-ng, gant, gnome-clocks, hawtjni, jackrabbit, jersey1, libjsr305-java, mathjax-docs, mlpy, moap, octave-geometry, paste, pdf.js, pyinotify, pytango, python-asyncssh, python-mock, python-openid, python-repoze.who, shadow, swift, tcpwatch-httpproxy, transfig.

The following packages became reproducible after getting fixed:

Some uploads fixed some reproducibility issues but not all of them:

Patches submitted which have not made their way to the archive yet:


Tests for Coreboot, OpenWrt, NetBSD, and FreeBSD now runs weekly (instead of monthly).

diffoscope development

Python 3 offers new features (namely yield from and concurrent.futures) that could help implement parallel processing. The clear separation of bytes and unicode strings is also likely to reduce encoding related issues.

Mattia Rizolo thus kicked the effort of porting diffoscope to Python 3. tlsh was the only dependency missing a Python 3 module. This got quickly fixed by a new upload.

The rest of the code has been moved to the point where only incompatibilities between Python 2.7 and Pyhon 3.4 had to be changed. The commit stream still require some cleanups but all tests are now passing under Python 3.

Documentation update

The documentation on how to assemble the weekly reports has been updated. (Lunar)

The example on how to use SOURCE_DATE_EPOCH with CMake has been improved. (Ben Beockel, Daniel Kahn Gillmor)

The solution for timestamps in man pages generated by Sphinx now uses SOURCE_DATE_EPOCH. (Mattia Rizzolo)

Package reviews

45 reviews have been removed, 141 added and 62 updated this week.

67 new FTBFS reports have been filled by Chris Lamb, Niko Tyni, and Lisandro Damián Nicanor Pérez Meyer.

New issues added this week: randomness_in_r_rdb_rds_databases, python-ply_compiled_parse_tables.


The prebuilder script is now properly testing umask variations again.

Santiago Villa started a discussion on debian-devel on how binNMUs would work for reproducible builds.

Categories: Elsewhere

Microserve: Responsive Design: Media Queries And How To Make Them More Friendly

Planet Drupal - Mon, 21/09/2015 - 17:33
Responsive Design: Media Queries And How To Make Them More FriendlySep 21st 2015

In building responsive websites, whether Drupal or otherwise, we all need to harness the power of media queries. 
Here is a brief overview of media queries, breakpoints and the basics of the ‘Mobile First’ approach and also some simple tricks for making media queries more friendly, semantic and easier to remember and use with LESS and SASS variables. 

Media queries - The basics

A CSS Media Query (originally ‘media rule’ in CSS2, renamed ‘media query’ in CSS3) is a CSS statement which targets a specific media type and/or size/size range. Inside a media query statement we can nest a collection of CSS declarations which will style content only when the conditions of that parent media query statement are true.

So, if a media query targets a media type of ‘screen’ with a min-width of 320px, it’s nested CSS declarations will only have effect on screens (smartphones/tablets/computers etc) but only if the device has a screen with a display larger than 320px wide.


In responsive design, a ‘breakpoint’ is a declared pixel width at which the layout of a web page or entire site should adjust (respond) to better display its content on the screen size of the device it is being viewed on. Commonly designers and developers set breakpoints at 2 or 3 size ranges to separately target mobile, tablet and larger desktop/laptop computers.

There’s no actual limit (other than common sense) to the amount of breakpoints you could add, but these 3 are a pretty good rule of thumb and cover most needs.

The beauty of the system is that it encourages us to target screen size ranges (all screens between ‘these sizes’) and not specific device types, so when a new model of smartphone comes out (for instance), we can be pretty sure the site will appear correctly as the device’s screen will be of a size that falls within an existing range that we are already targeting.

Mobile First? (min vs max)

First thing to decide is in which direction you want to media queries to work.

By this I mean whether you want to set max-width or min-width breakpoints. 

You can of course use a mixture of both, but here we’re all about making things more straightforward, so I would avoid ‘crossing the streams’ and stick to one strategy.

Max Width breakpoints:

Everything from zero or the last, narrower breakpoint,  up to ‘this width’ .
Used mostly in ‘Desktop First’ and ‘Retro Fitted Mobile’ builds.

Min Width breakpoints:

Everything above ‘this width’ to infinity, or until overridden by another, wider breakpoint.
Used mostly in modern ‘Mobile First’ builds.

‘Mobile First’ is widely accepted as the best way to approach responsive design, so I would advise the use of Min Width breakpoints.

You can find much more in-depth information about Mobile First from the person regarded as its original architect Luke Wroblewski.

In Mobile First theory we start without any breakpoints or media queries (in essence targeting all screen sizes of 1px wide to infinity) and here set all default, site-wide styles as well as any mobile specific styles for (so that we know all screens no matter how small will be covered) and then we create media query breakpoints at which we override the default styles for layout or elements which need to appear differently on larger screens. (As opposed to styling the whole site for desktop and then overriding for smaller screens.) 
This can take a little getting used to and feel a bit ‘backwards’ for developers used to building desktop sites, who may still consider mobile a ‘bolt on’, secondary consideration, but it’s surprising how easy the switch in thinking can be.

Example of a Mobile First media query body{ background: white; } @media screen and (min-width:768px) { body{ background: black; } }

In this example, the body of the document will have a white background on all screens smaller than 768px - This is it’s default ‘Mobile First’ setting.
Then on all screens larger than 768px the body will have a black background.

Which and how many breakpoints to choose?

You could in theory, create a mobile first website without any media queries or breakpoints.

You could serve the same mobile layout to all screen sizes. But because in most cases mobile layout consists of 100% width single column elements, it would start to become very difficult to use and read on larger screens. So the bare minimum we would usually consider using is one breakpoint to distinguish between mobile and more traditional desktop layouts.

The size of 768px used in the example above would work well for this, as our site would show mobile layout on mobiles and many tablets in portrait orientation, then on tablets in landscape orientation, laptops and desktops, another layout could be displayed.

I use Bootstrap 3 as my main front-end framework and ‘out of the box’ Bootstrap 3 has 3 defined breakpoints:

sm - 768px and up to...
md - 992px  and up to...
lg - 1200px  and up to infinity

This covers our Mobile First defaults up to 767px, a tablet aimed size range of 768px-991px, a traditional desktop width of 992px-1199px and a more modern, wider desktop width of 1200px and above.
*Personally, I usually add a smaller, custom breakpoint of around 480px, because I find in practice the range of 0-767px, before the first ‘sm’ breakpoint kicks in can sometimes be a bit wide for every part of my layout. Interestingly, one of the promised updates in the imminent release of Bootstrap 4 is that it will come with a similar ‘extra small’ breakpoint as standard.

Media queries can become surprisingly complicated to keep track of. This is where LESS and SASS variables can be a godsend.

LESS and SASS Variables - Making media queries more user friendly

Although not the most complicated coding syntax in the world, media queries can be hard to keep track of, once you’ve got 3 or 4 different sizes to contend with. Having to remember the precise pixel width you are targeting and in which direction can become surprisingly complicated, especially when we start using inline queries (more coming on that later.) This is where LESS and SASS variables can be a godsend.

Here’s a LESS example:

In our variables.less (or similar) create a variable called ‘@tablet’. *Notice we use a tilde (~) in front of our value string, so that the quote marks are not included when processed into CSS. - We need to use quotes around our variable value as LESS syntax requires this if a value contains a string of different tokens, but once compiled to CSS, these are not needed.

@tablet: ~“screen and (min-width: 768px)”;

Now instead of using

@media screen and (min-width:768px) { body{ background: black; } }

We can use the variable to target 768px and above.

@media @tablet { body{ background: black; } }

In SASS, the same principle applies, but our syntax is slightly different. Our variable is denoted by ‘$’ as opposed to ‘@’ and instead of adding a tilde to interpolate our value string and remove the quotes at the point at which our variable is declared, we use #{} around our variable name at the point at which it’s referenced in our code to do the same thing.:

$tablet: “only screen and (min-width: 768px)”;

We can then use:

@media #{$tablet} { body{ background: black; } } ‘Nested media queries’

So that’s given us a method of creating more memorably named variables to use in place or full hand media queries in our code, but it can still feel a bit disjointed and counter intuitive to set initial global declarations in one point of a file and then keep jumping to another point in a file or to another file altogether to set our media query overrides.  Also imagine if you only want to override an attribute value which was a few levels down within a LESS or SASS nest. For our media query override to work we would have to include the entire nest up to the point at which the value we want to change appears.

Say we want to change the color of all links on screens above 768px wide, but only if they are inside paragraphs, which are inside a div with the class of ‘thisdiv’, which are in turn inside a div with an ID of ‘container’.

The original global code might look like this:

#container{ .thisdiv{ p{ a{ color: red; } } } }

Our media query override would need to include this whole list (LESS version shown):

@media @tablet{ #container{ .thisdiv{ p{ a{ color: blue; } } } } }

That’s a heck of a lot of nesting to keep on top of and if we add a new nest level in our original declaration between say '#container' and '.thisdiv', we would also have to update the nesting in our media query.
Luckily current versions of both LESS and SASS allow for the nesting of media queries so that they can essentially be used inline within existing declarations.

So with the above example instead of having to re-write the entire nest in a separated part of our file or in a separate file, we can just specify the exact element we want to override from within the original global declaration.

So instead of having to write:

#container{ .thisdiv{ p{ a{ color: red; } } } } @media @tablet{ #container{ .thisdiv{ p{ a{ color: blue; } } } } }

We can just write:

#container{ .thisdiv{ p{ a{ color: red; @media @tablet{ color:blue; } } } } }

*Notice the media query is nested inside the ‘a’ attribute itself, after its initial, global value.

Bootstrap 3 specific queries

In Bootstrap 3 we can go a little further to make sure we fully integrate our media query variables into the framework. Bootstrap depends on a grid system which is based around a collection of pre existing breakpoints.

Although most users leave these existing breakpoints where they are, if you do need or want to changes these to custom values of your own choice, this can be done by identifying and changing the values of the corresponding variables in variables.less. For this reason it makes sense that our media queries use these existing variables as their values.

Why? Because if we (or anyone else) updates the value of the grid breakpoint widths, our media query variables will then in turn automatically receive these new values.

Here is our friendly name Bootstrap LESS variables:

@mobile-lg: ~"screen and (min-width: @{screen-xs-min})"; @tablet: ~"screen and (min-width: @{screen-sm-min})"; @normal: ~"screen and (min-width: @{screen-md-min})"; @wide: ~"screen and (min-width: @{screen-lg-min})";

I usually place these at the top of variables.less for easy reference.

So to re-iterate; instead of explicitly stating ‘768px’ as the value for min-width in the @tablet variable, we instead reference the existing Bootstrap variable ‘@{screen-sm-min}’. This means if the integral Bootstrap grid variable is updated, our media query variable and all dependant references will use this new value automatically.

Other Front End Frameworks Are Available!

There are of course other front-end frameworks available other than Bootstrap such as Foundation by Zurb as well as some Drupal specific responsive grid-based systems like AdaptiveTheme and Omega. I only cover Bootstrap here as an example and also because it is currently the most popular framework around also but not least because it's what I personally use most and know most about. All of the principles up to the Bootstrap specific queries should still be just as relevant, no matter which framework you use or whether you indeed use one at all.

Further reading

The above is intended as quite a top level, overview of media queries and their application. For more in-depth information on the technologies and concepts used I’d recommend the following further reading:

W3C Schools: Media Queries
Luke Wroblewski - Architect Of Mobile First
Bootstrap 3

Written by: Martin White, Drupal Themer

Microserve is a Drupal Agency based in Bristol, UK. We specialise in Drupal Development, Drupal Site Audits and Health Checks, and Drupal Support and Maintenance. Contact us for for further information.

Categories: Elsewhere

Drupalize.Me: Meet Front-end Developer Kris Bulman

Planet Drupal - Mon, 21/09/2015 - 15:00

We interview Kris Bulman about what it means to be a front-end developer and share advice from his experience. Kris has been theming Drupal sites and working on the front-end since 2007. He's done a lot of work in the open source world including being a co-maintainer of Drupal’s Zen theme and building his own Sass grid system.

Categories: Elsewhere

Wunderkraut blog: How to make DrupalCon even better?

Planet Drupal - Mon, 21/09/2015 - 11:46

You may have noticed that after three years of being the primary sponsor for DrupalCon Europe we've chosen to skip the traditional sponsorship this year. Many people have asked why, so here’s the answer.

For a long time we treated DrupalCon in Europe as a marketing investment. We did this even though it didn't create even nearly enough leads to justify the investment of time and money. In real life it was an HR investment, our staff liked it and it helped in our hiring. And DrupalCon is an awesome event that we are proud to support, could we support it in a better way? There is a real difference between DrupalCons, and in fact technical conferences in general, between Europe and the US. Customers don't go to technical events in Europe. The participant profile is much more technical in Europe. This makes DrupalCon in Europe a very attractive marketing opportunity for hosting providers, ISVs and other parties who target to developers and Drupal shops, less so for Drupal shops. After DrupalCon Amsterdam we sat down with the DA in order to come up with a better way to support the event. Traditional sponsorship wasn't working for us and we wanted to help improve the event. Our own staff is a big part of the Drupal community, so naturally we asked them what would make the DrupalCon even better. After considering quite a few different ideas, and learning a lot on the strange limitations conference venues have in the process, we decided to make contributing to Drupal more comfy. We do this by bringing loads of beanbag chairs to the venue. Naturally we paid the DA for the privilege, and in order to keep our financial support on the same level as before we also decided to be the first company to sign up for the new signature level supporting partnership. We have more ideas in store for the future years and I would also like to hear your take on how to make DrupaCon even better. Is there something we could do to help?
Categories: Elsewhere

Norbert Preining: International Sad Hits Volume 1

Planet Debian - Mon, 21/09/2015 - 07:22

I stumbled over this CD a few weeks ago, and immediately ordered it from some second-hand dealer in the US: International Sad Hits – Volume 1: Altaic Group. Four artists from different countries (2x Japan, Korea, Turkey) and very different music style, but connected in one thing: That they don’t fit into the happy-peppy culture of AKB48, JPOP, KPOP and the like, but singers and songwriters that probe the depths of sadness. With two of my favorite Japanese appearing in the list (Tomokawa Kazuki and Mikami Kan), there was no way I could not buy this CD.

The four artist combined in this excellent CD are: Fikret Kızılok, a Turkish musician, singer and songwriter. Quoting from the pamphlet:

However, in 1983 Kızılok returned with one of his most important and best albums: Zaman Zaman (Time to time). […] These albums presented an alternative to the horrible pop scene emerging in Turkey — they criticized the political situation, the so-called intellectuals, and the pop stars.

The Korean artist is 김두수 (Kim Doo Soo), who was the great surprise of the CD for me. The sadness and beauty that is transmitted through is music is special. The pamphlet of the CD states:

The strictness of his home atmosphere suffocated him, and in defiance against his father he dropped out, and walked along the roads. He said later that, “Hatred towards the world, and the emptiness of life overwhelmed me. I lived my life with alcohol every day.”

After some problems due to political crisis, and fierce reactions to his song “Bohemian” (included) made him disappear into the mountains for 10 years, only to return with even better music.

The third artist is one of my big favorites, Tomokawa Kazuki (Official site, Wikipedia) from Japan. I have written often about Tomokawa, but found a very fitting description in the booklet:

Author Tatematsu Wahei has described Tomokawa as “a man standing naked, his sensibility utterly exposed and tingling.” It’s an accurate response to a creativity that seems unmediated by embarrassment, voraciously feeding off the artist’s personal concern.

The forth artist is again from Japan, Mikami Kan, a well known wild man from the Japanese music scene. After is debut at the Nakatsugawa All-Japan Folk Jamboree in 1971, he was something like a star for some years, but without a record deal his popularity decreased steadily.

During this period his songwriting gradually altered, becoming more dense, surreal and uncompromisingly personal.

Every song on this CD is a masterpiece by itself, but despite me being a great fan of Tomokawa, my favorite is Kim Doo Soo here, with songs that grip your heart and soul, stunningly beauty and sad at the same time.

Categories: Elsewhere

Matthew Garrett: The Internet of Incompatible Things

Planet Debian - Sun, 20/09/2015 - 23:22
I have an Amazon Echo. I also have a LIFX Smart Bulb. The Echo can integrate with Philips Hue devices, letting you control your lights by voice. It has no integration with LIFX. Worse, the Echo developer program is fairly limited - while the device's built in code supports communicating with devices on your local network, the third party developer interface only allows you to make calls to remote sites[1]. It seemed like I was going to have to put up with either controlling my bedroom light by phone or actually getting out of bed to hit the switch.

Then I found this article describing the implementation of a bridge between the Echo and Belkin Wemo switches, cunningly called Fauxmo. The Echo already supports controlling Wemo switches, and the code in question simply implements enough of the Wemo API to convince the Echo that there's a bunch of Wemo switches on your network. When the Echo sends a command to them asking them to turn on or off, the code executes an arbitrary callback that integrates with whatever API you want.

This seemed like a good starting point. There's a free implementation of the LIFX bulb API called Lazylights, and with a quick bit of hacking I could use the Echo to turn my bulb on or off. But the Echo's Hue support also allows dimming of lights, and that seemed like a nice feature to have. Tcpdump showed that asking the Echo to look for Hue devices resulted in similar UPnP discovery requests to it looking for Wemo devices, so extending the Fauxmo code seemed plausible. I signed up for the Philips developer program and then discovered that the terms and conditions explicitly forbade using any information on their site to implement any kind of Hue-compatible endpoint. So that was out. Thankfully enough people have written their own Hue code at various points that I could figure out enough of the protocol by searching Github instead, and now I have a branch of Fauxmo that supports searching for LIFX bulbs and presenting them as Hues[2].

Running this on a machine on my local network is enough to keep the Echo happy, and I can now dim my bedroom light in addition to turning it on or off. But it demonstrates a somewhat awkward situation. Right now vendors have no real incentive to offer any kind of compatibility with each other. Instead they're all trying to define their own ecosystems with their own incompatible protocols with the aim of forcing users to continue buying from them. Worse, they attempt to restrict developers from implementing any kind of compatibility layers. The inevitable outcome is going to be either stacks of discarded devices speaking abandoned protocols or a cottage industry of developers writing bridge code and trying to avoid DMCA takedowns.

The dystopian future we're heading towards isn't Gibsonian giant megacorporations engaging in physical warfare, it's one where buying a new toaster means replacing all your lightbulbs or discovering that the code making your home alarm system work is now considered a copyright infringement. Is there a market where I can invest in IP lawyers?

[1] It also requires an additional phrase at the beginning of a request to indicate which third party app you want your query to go to, so it's much more clumsy to make those requests compared to using a built-in app.
[2] I only have one bulb, so as yet I haven't added any support for groups.

Categories: Elsewhere

Russ Allbery: Review: Shady Characters

Planet Debian - Sun, 20/09/2015 - 23:06

Review: Shady Characters, by Keith Houston

Publisher: W.W. Norton Copyright: 2013 ISBN: 0-393-34972-1 Format: Trade paperback Pages: 250

Subtitled The Secret Life of Punctuation, Symbols & Other Typographical Marks, Shady Characters is one of those delightfully quirky books that examines the history of something you would not normally connect to history. It's an attempt to document, and in some cases reconstruct, the history of several specific punctuation marks. If you've read and enjoyed Lynn Truss's Eats, Shoots & Leaves, this is a near-perfect complement, focusing on more obscure marks and adding in a more detailed and coherent history.

Houston has some interest in the common and quotidian punctuation marks, with chapters on the hyphen, dash, and quotation mark, but he avoids giving a full-chapter treatment to the most obvious periods and commas. (Although one learns quite a bit about them as asides in other histories.) The rest of the book focuses on the newly-popular (the at symbol), the recognizable but less common (the hash mark, the asterisk and dagger symbols used for footnotes, and the ampersand), and the historical but now obscure (the pilcrow or paragraph mark, and the manicule or pointing finger). He even devotes two chapters to unsuccessful invented punctuation: the interrobang and the long, failed history of irony and sarcasm punctuation.

And this is an actual history, not just a collection of anecdotes and curious facts. Houston does a great job of keeping the text light, engaging, and readable, but he's serious about his topic. There are many reproductions of ancient documents showing early forms of punctuation, several serious attempts to adjudicate between competing theories of origin, a few well-marked and tentative forays into guesswork, and an open acknowledgment of several areas where we simply don't know. Along the way, the reader gets a deeper feel for the chaos and arbitrary personal stylistic choices of the days of hand-written manuscripts and the transformation of punctuation by technology. So much of what we now use in punctuation was shaped and narrowed by the practicalities of typesetting. And then modern technology revived some punctuation, such as the now-ubiquitous at sign, or the hash mark that graces every telephone touchpad.

I think my favorite part of this history was using punctuation as perspective from which to track the changing relationship between people and written material. It's striking how much early punctuation was primarily used for annotations and commentary on the text, as opposed to making the text itself more readable. Much early punctuation was added after the fact, and then slowly was incorporated into the original manuscript, first via recopying and then via intentional authorial choice. Texts started including their own pre-emptive commentary, and brought the corresponding marks along with the notes. And then printing forced a vast simplification and standardization of punctuation conventions.

Full compliments to W.W. Norton, as well, for putting the time and effort into making the paper version of this book a beautiful artifact. Punctuation is displayed in red throughout when it is the focus of the text. Endnotes are properly split from footnotes, with asides and digressions presented properly at the bottom of the page, and numbered endnotes properly reserved solely for citations. There is a comprehensive index, list of figures, and a short and curated list of further readings. I'm curious how much of the typesetting care was preserved in the ebook version, and dubious that all of it would have been possible given the current state of ebook formatting.

Typesetting, obscure punctuation, and this sort of popular history of something quotidian are all personal interests of mine, so it's unsurprising I found this book delightful. But it's so well-written and engaging that I can recommend it even to people less interested in those topics. The next time you're in the mood for learning more about a corner of human history that few people consider, I recommend Shady Characters to your attention.

Rating: 8 out of 10

Categories: Elsewhere

Dirk Eddelbuettel: RcppArmadillo 0.5.600.2.0

Planet Debian - Sun, 20/09/2015 - 22:39

And yet another upstream Armadillo update -- version 5.600.2 was released yesterday by Conrad. So I pushed a new and matching RcppArmadillo release 0.5.600.2.0 to CRAN and to Debian.

Armadillo is a powerful and expressive C++ template library for linear algebra aiming towards a good balance between speed and ease of use with a syntax deliberately close to a Matlab.

This release contains small upstream improvements:

Changes in RcppArmadillo version 0.5.600.2.0 (2015-09-19)
  • Upgraded to Armadillo 5.600.2 ("Molotov Cocktail Deluxe")

    • expanded .each_col() and .each_row() to handle out-of-place operations

    • added .each_slice() for repeated matrix operations on each slice of a cube

    • faster handling of compound expressions by join_rows() and join_cols()

Courtesy of CRANberries, there is also a diffstat report for the most recent CRAN release. As always, more detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.

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

Categories: Elsewhere

Dirk Eddelbuettel: RQuantLib 0.4.1

Planet Debian - Sun, 20/09/2015 - 22:25

Right before heading off to last week's excellent EARL 2015 conference in London, a new minor release of RQuantLib was released onto CRAN and into Debian.

The changes are detailed below. Changes in RQuantLib version 0.4.1 (2015-09-11)
  • Changes in RQuantLib code:

    • A simple shiny application is now included in the directory shiny/DiscountCurve/ and accessible via the new demo function ShinyDiscountCurve.

    • The option surface plotting example in arrays.R now checks for rgl by using requireNamespace.

    • The files NAMESPACE and DESCRIPTION have been updated to reflect all the suggestions of R CMD check.

    • The Travis CI tests now use binary Debian packages for all package dependencies making the tests a little faster.

Courtesy of CRANberries, there is also a diffstat report for the this release. As always, more detailed information is on the RQuantLib page. Questions, comments etc should go to the rquantlib-devel mailing list off the R-Forge page. Issue tickets can be filed at the GitHub repo.

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

Categories: Elsewhere

Thorsten Alteholz: Package of the Day: ansiweather

Planet Debian - Sun, 20/09/2015 - 20:01

While looking at NEW I sometimes see a package and think “wow this is great, you have to try this”.

One of these packages is ansiweather. It looks at the data at openweathermap and presents them on the console. So with

ansiweather -l chemnitz -u metric

I get something like:

Current weather in Chemnitz => 12 °C ☔ – Wind => 2.52 m/s WNW – Humidity => 80 % – Pressure => 1014 hPa

Now I see that I need a coat and an umbrella for my walk. Or better I don’t go outside and continue looking at other stuff in NEW

Categories: Elsewhere

Michal Čihař: Weblate 2.4

Planet Debian - Sun, 20/09/2015 - 18:15

Weblate 2.4 has been released today. It comes with extended support for various file formats, extended hook scripts, better keyboard shortcuts and dozen of bug fixes.

Full list of changes for 2.4:

  • Improved support for PHP files.
  • Ability to add ACL to anonymous user.
  • Improved configurability of import_project command.
  • Added CSV dump of history.
  • Avoid copy/paste errors with whitespace chars.
  • Added support for Bitbucket webhooks.
  • Tigher control on fuzzy strings on translation upload.
  • Several URLs have changed, you might have to update your bookmarks.
  • Hook scripts are executed with VCS root as current directory.
  • Hook scripts are executed with environment variables descriping current component.
  • Add management command to optimize fulltext index.
  • Added support for error reporting to Rollbar.
  • Projects now can have multiple owners.
  • Project owners can manage themselves.
  • Added support for javascript-format used in Gettext PO.
  • Support for adding new translations in XLIFF.
  • Improved file format autodetection.
  • Extended keyboard shortcuts.
  • Improved dictionary matching for several languages.
  • Improved layout of most of pages.
  • Support for adding words to dictionary while translating.
  • Added support for filtering languages to be managed by Weblate.
  • Added support for translating and importing CSV files.
  • Rewritten handling of static files.
  • Direct login/registration links to third party service if that's the only one.
  • Commit pending changes on account removal.
  • Add management command to change site name.
  • Add option to confiugure default committer.
  • Add hook after adding new translation.
  • Add option to specify multiple files to add to commit.

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on http://weblate.org, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user.

Weblate is also being used https://hosted.weblate.org/ as official translating service for phpMyAdmin, Gammu, Weblate itself and other projects.

If you are free software project which would like to use Weblate, I'm happy to help you with set up or even host Weblate for you.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far!

PS: The roadmap for next release is just being prepared, you can influence this by expressing support for individual issues either by comments or by providing bounty for them.

Filed under: English phpMyAdmin SUSE Weblate | 0 comments

Categories: Elsewhere

DrupalCon News: Registration is Open! Come on By!

Planet Drupal - Sun, 20/09/2015 - 15:18

We are set up and handing out badges here at the CCIB!  Come on over to door A of the Convention Center, step through the doors and get your DrupalCon kicked off!

When you arrive to the CCIB, go in this door:

And grab your badge:

Then take a pic with Dries!

Categories: Elsewhere

Jonathan Dowland: Koločep, Dubrovnik, Dalmatia

Planet Debian - Sun, 20/09/2015 - 11:13

Trsteno (near Botanical gardens)

This year, Sarah and I spent two weeks off the coast of Dubrovnik, on Koločep island. We'd never been to Croatia before, and I was a little nervous that if there wasn't much to do on the island, we wouldn't be able to get elsewhere particularly easily. I needn't have worried: We thoroughly enjoyed our stay. It might even be my favourite holiday so far.

We did travel around a bit: twice to Dubrovnik's old town and once to a botanical gardens in Trsteno but there was also loads to see on the island itself. One of our favourite trips was simply to a cave on the opposite side of the island known as a "blue cave" because you looked like a Smurf on the inside. We had to jump into the sea from the boat and swim into and out of the cave before continuing on our trip.

Simply puttering about on the boat, either around the island or to Trsteno was a great experience in itself. Our guide Sammi was very friendly, the weather was great and swimming around or just enjoying the sun on the back of the boat was enough for me to want to check property prices out there.

On Koločep island is a little restaurant called Villa Ruza. We managed to eat there twice during our stay. I think it is considered to be one of the top ten restaurants in Croatia. It's one of the best places I've ever eaten in my life. In terms of price, it was about half that of restaurants in Dubrovnik itself.

Koločep bay, from Villa Ruza

Dubrovnik itself was, quite predictably, much busier than Koločep. It is a stunningly attractive old town. On our second visit we took a tour. There are a variety of different themed tours that you can take, including Game Of Thrones sight-seeing tours, and there were Game Of Thrones tat shops all over the place. We opted for A Story About The War. One thing we love to do when visiting foreign places is to get an idea of what life is like for people there, and this war was not all that long ago - I can remember the news coverage from the time. We were the only two people on that particular tour, so we had a fairly tailored experience. I wish I could remember our guide's name. She was the same age as us and grew up as a child in the city when it was under siege. Her personal story included details about where her family stayed; what life was like for kids growing up at the time; how people got supplies; which areas were badly affected and much more.

It was a very heartfelt tour and gave us an intimate and personal portrait of what life was like for people there at a time that most tour operators tend to prefer to ignore. This was exactly what we were looking for. Sarah and I were both a little teary at the end!

We tried to do things a little different on this holiday. Normally we keep ourselves to ourselves and don't socialise much with other guests. We also rarely do trips and excursions, preferring to sort things out for ourselves. This time we made an effort to be more sociable and I'm glad we did because we met some really nice people. The trips we did were great fun and on the last day I blew through most of the rest of our currency by hiring a jet ski for half an hour. Those things are FUN. Top speed on the one I was using was 57 land mph. Every muscle in my body was screaming for a few days afterwards!

Often on a two-week holiday we reach a point around 10 days where we've pretty much had enough. This time around I could have stayed for twice as long.

This was the first proper test of my new camera and I've uploaded a set of photographs from our holiday to a Flickr gallery.

Categories: Elsewhere

DrupalCon News: Come Run with Us

Planet Drupal - Sun, 20/09/2015 - 11:10

If you like Drupal and being in shape, Barcelona offers a lot of options for running. There are many routes to follow, each one with its own charms.

Remember, in Google Maps, the venue of DrupalCon 2015 is next to Auditori Forum.

If you are staying in the Hotel Princess or near the CCIB, you can follow these directions:

Categories: Elsewhere

Francois Marier: Hooking into docking and undocking events to run scripts

Planet Debian - Sun, 20/09/2015 - 01:55

In order to automatically update my monitor setup and activate/deactivate my external monitor when plugging my ThinkPad into its dock, I found a way to hook into the ACPI events and run arbitrary scripts.

This was tested on a T420 with a ThinkPad Dock Series 3 as well as a T440p with a ThinkPad Ultra Dock.

The only requirement is the ThinkPad ACPI kernel module which you can find in the tp-smapi-dkms package in Debian. That's what generates the ibm/hotkey events we will listen for.

Hooking into the events

Create the following ACPI event scripts as suggested in this guide.

Firstly, /etc/acpi/events/thinkpad-dock:

event=ibm/hotkey LEN0068:00 00000080 00004010 action=su francois -c "/home/francois/bin/external-monitor dock"

Secondly, /etc/acpi/events/thinkpad-undock:

event=ibm/hotkey LEN0068:00 00000080 00004011 action=su francois -c "/home/francois/bin/external-monitor undock"

then restart udev:

sudo service udev restart Finding the right events

To make sure the events are the right ones, lift them off of:

sudo acpi_listen

and ensure that your script is actually running by adding:

logger "ACPI event: $*"

at the begininng of it and then looking in /var/log/syslog for this lines like:

logger: external-monitor undock logger: external-monitor dock

If that doesn't work for some reason, try using an ACPI event script like this:

event=ibm/hotkey action=logger %e

to see which event you should hook into.

Using xrandr inside an ACPI event script

Because the script will be running outside of your user session, the xrandr calls must explicitly set the display variable (-d). This is what I used:

#!/bin/sh logger "ACPI event: $*" xrandr -d :0.0 --output DP2 --auto xrandr -d :0.0 --output eDP1 --auto xrandr -d :0.0 --output DP2 --left-of eDP1
Categories: Elsewhere

Russ Allbery: Review: Magic's Promise

Planet Debian - Sun, 20/09/2015 - 01:37

Review: Magic's Promise, by Mercedes Lackey

Series: Last Herald Mage #2 Publisher: DAW Copyright: January 1990 ISBN: 0-88677-401-2 Format: Mass market Pages: 320

Magic's Promise is the second book of the Last Herald Mage trilogy and a sequel to Magic's Pawn. As tempting as it is to skip the first book, which isn't very good, I think you'd miss a lot of the emotional dynamics between Vanyel and his family if you didn't read it.

Magic's Promise opens years after the end of Magic's Pawn. Vanyel has become the most powerful Herald-mage of the kingdom, which is lucky for the kingdom because it's beset on all sides by magical attack. Heralds are being killed, countries on the border are looking for opportunities to spring, and Vanyel is being run ragged. Ragged enough that he's worried he's going to hurt someone by mistake when surprised. It's time for a desperately-needed vacation.

Unfortunately for his ability to relax, that vacation means going home to visit his parents, who have never understood him and who disapprove strongly of his sexuality. (Not that he's actually had a lover in years.) It also means being in the same household as the armsmaster who broke his wrist as a child, and his father's deeply disapproving priest. And the border near his parents' lands may be heating up as well.

Magic's Promise is the book where this trilogy hits its stride. After the events of the previous book, Vanyel is ridiculously overpowered and will be for the rest of the trilogy, but the problems in this book aren't the sort that raw power can fix. (That's a balance Lackey handles well in general.) There are a few places where Vanyel can simply overpower his problems, but the heart of the plot is a mystery that requires analysis, investigation, and a bit of undercover snooping.

I enjoyed the defense of the kingdom plot (more than I had remembered, in fact), but the heart of this book is Vanyel and his family coming to terms with each other. Vanyel is a lot older and more confident than he was in the first book, and his service to the kingdom forces some grudging respect. But the way that grudging respect turns into real affection over the course of this book is a delight to read. This degree of reconciliation is wish-fulfillment — most of the Valdemar series is heavy on wish-fulfillment — but it's the sort of wish-fulfillment that matches the way that you wish the world would work. People figure out that they've been ignorant and cruel and actually change, and Vanyel learns some important lessons about giving people room to change. I particularly liked that the growth of respect wasn't one-sided. Most of the movement comes (and has to come) from Vanyel's family, but Vanyel gains some new-found appreciation and empathy for some strengths that he'd previously been blind to.

Lackey's writing is still not the best here. There's something a bit awkward about the dialogue patterns in places, one gets a bit tired of the repetitive narrative focus on Vanyel's exhaustion, and the sentence-level construction of the story is more workable than delightful. You have to be invested in the characters; the beauty of the writing itself isn't going to win you over. As with a lot of Lackey's writing, I think your enjoyment will depend greatly on whether she happens to hit your emotional buttons. But the story she tells here, of people finding the inner goodness in each other and healing over past wounds, is one that I very much enjoy reading.

I think this is the third time I read this book, and it's the first of the Valdemar series in this re-read that held up to my memory. So far, it's the best of the series.

Followed by Magic's Price.

Rating: 8 out of 10

Categories: Elsewhere

Philipp Kern: Working with z/VM DIRMAINT as a mere user

Planet Debian - Sat, 19/09/2015 - 21:45
Two helpful CMS commands to know if the users on the z/VM host you connect to are managed using DIRMAINT:

  • DIRMAINT PW: This will ask you for your current password and then for the new one. This way you can change your own user password instead of having to ask the administrator for it.
  • DIRMAINT REVIEW: If you want to see the directory entry for your user (i.e. the configuration of your VM), you can issue this command. It will put the directory onto the card stack, from which you can retrieve it onto your A disk using RETRIEVE <number> <USERNAME> DIRECT A. The number is listed after RDR FILE in CP's output.
REVIEW is something I always expire from my mind after a few weeks of not using a mainframe. And then I do not usually find it quickly, even knowing where to look. (For some reason GET won't work unless you are a privileged user of the system.)
I guess by now most of the systems use DIRMAINT, but it's an IBM product that requires a separate license in addition to z/VM. Hence on some systems the user directory is still maintained by hand. In this case the password is written verbatim into the file and the administrator needs to change it manually for you.
Categories: Elsewhere

Gábor Hojtsy: Multilingual happenings at DrupalCon Barcelona

Planet Drupal - Sat, 19/09/2015 - 13:39

If you are interested in to learn about, solve your problems with and/or contribute to multilingual Drupal, DrupalCon Barcelona is the place to be. Here is a quick summary of things happening so you don't miss what is going on.

Categories: Elsewhere


Subscribe to jfhovinne aggregator - Elsewhere