text:
Drupalize.Me: Learn Views in Drupal 8
One of the big changes in Drupal 8 is that Views, the most popular contributed module in Drupal 7, is now included as part of core. Learning Views is a key component of learning to build Drupal sites. Aside from having this tool built in core now, the beauty of this new feature is that it is almost identical to Views in Drupal 7. You can get started site-building with Views in Drupal 8 without waiting for any fancy version-specific instructions.
Mediacurrent: Dropcast: Episode 21- Finally Oscar Menjivar
This episode we celebrate our fine podcast finally coming of drinking age and finally get our act together to welcome Oscar Menjivar back, again, for a third time, to talk about his project Exploring Tech which helps youths in south central LA learn how to develop technology. As always we have the latest Drupal news, Bob talks about the most recent Mediacurrent blog posts and Ryan rings us home with the final bell.
Liip: Let's debug in Drupal 8 !
It has been nearly 7 months since Drupal 8 first release and as a developer, I am still in the learning process. It can be hard sometimes to know what is going wrong with your code and how to solve it. I will tell you about few things to know on how to develop and debug Drupal 8 projects and continue learning, learning and learning !Disabling cache
First of all, to avoid having a crazy terminal with thousands of drupal cr hits, you can disable Drupal caching during development. You need to copy and rename sites/example.settings.local.php file to sites/default/settings.local.php. Then uncomment/update some values:
- uncomment this line to enable the "null cache service":
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
- uncomment these lines to disable CSS/JS aggregation:
$config['system.performance']['css']['preprocess'] = FALSE; $config['system.performance']['js']['preprocess'] = FALSE;
- uncomment these lines to disable the render cache and the dynamic page cache:
$settings['cache']['bins']['render'] = 'cache.backend.null'; $settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
- you can allow test modules and themes to be installed if needed with:
$settings['extension_discovery_scan_tests'] = TRUE;
To include this file as part of Drupal's settings file, open sites/default/settings.php file and uncomment these lines:if (file_exists(__DIR__ . '/settings.local.php')) { include __DIR__ . '/settings.local.php'; }
Then, to disable Twig caching, open sites/development.services.yml file and add the following settings:parameters: twig.config: debug: true auto_reload: true cache: false
Finally, rebuild the Drupal cache and it is done !Displaying errors
As in Drupal 7, you can set different levels of errors display (by visiting this page: /admin/config/development/logging in the administration interface):
- None
- Errors and warnings
- All
In Drupal 8, there is a fourth level called "All messages, with backtrace information". This is native to Drupal core and it allows to display the error backtrace in the message area.
You can also adjust the level of errors in your local setting file:$config['system.logging']['error_level'] = 'verbose'; Creating log messages
Developers from Drupal 7 know the Database Logging module that allows to log messages in the database using the famous watchdog() function.
Well, this module still exists in Drupal 8 but the function has a replacement : the Drupal 8 logger class.
It looks like this:
Let's have a look at the different parts of the code:
- \Drupal::logger('my_module') is the helper method that quickly creates a copy of the logger service. As a parameter, it takes the module name from where we log the information;
- ->error: this is the severity-level method (it can be debug, info, notice, warning, error, critical, alert, emergency);
- $message is the log message. It can be a simple string or it can contain some placeholders. In this case, you can pass the associative array (placeholders as keys) as a second parameter.
All the messages created with the logger service can be viewed in the reports page of the administration interface in /admin/reports/dblog as it used to be in Drupal 7.Debugging Twig templates
Drupal core comes with a theming debug mode that is really helpful for local environments. To enable it, copy-and-paste the following code into sites/default/services.yml file (if you haven't already added these lines in development.services.yml):parameters: twig.config: debug: true
Thanks to this mode, it will be easier to find out which portion of HTML code has been written in which templates: in the source code, you will see each part of Twig templates (pages, nodes, blocks, menus etc.) surrounded by HTML comments that contain the matching suggestion templates. The one in current use will be checked.
Make sure to enable comments in your web browser debug tab and also note that this feature has been backported to Drupal 7.
Inside a Twig template, you will also be able to use {{ dump(my_variable) }} syntax to print a variable content.
If you have Devel Kint module installed, you can use {{ kint(my_variable) }} to dump the variable in a nice formatted structure: you can hide/show levels of arrays/objects which is very helpful as Drupal variables can have many levels inside. Kint is indeed the successor of the krumo() function from Drupal 7.
When dealing with performance issues, profiling a website will help finding what is the root cause.
The well-known debugging module Devel offers in its latest version a Webprofiler. It is actually a (partial) port of the Symfony profiler and it displays a footer bar on every page with useful data collectors such as:
- Drupal current version;
- PHP configuration (current version, loaded modules);
- route and controller name;
- page load timeline and memory use;
- query time and number of queries;
- number of blocks loaded and rendered;
- number of views;
- number of modules and themes available;
- cache statistics.
By clicking on each section, you will be redirected to a specific page with more details about the collected data. For instance, if you look at the page request details, you will see which was the matching route, the route object with the passed parameters, response headers etc. Well, all the information needed to debug requests.Using command line tools
The Drupal Console project is a powerful command line tool that makes use of the Symfony Console and other third-party components. It is complementary to Drush and allows you to generate code to build modules and themes (code scaffolding), to interact with your Drupal installation and help to debug your code.
Once the Drupal Console installed, you can run the drupal list command to show all available commands.
Here are some useful commands for debug:
- drupal check: check system requirements;
- drupal site:status: show current Drupal installation status (Versions of Drupal, PHP, MySQL and libraries, updates status, cron last run, database connection etc.);
- drupal database:table:debug: show all tables of the database;
- drupal database:table:debug my_table: show columns of my_table table;
- drupal config:debug: list all configurations;
- drupal config:debug image.settings: show configuration for image.settings;
- drupal config:settings:debug: display current key:value from the settings file;
- drupal container:debug: display all services ID with the matching class name;
- drupal router:debug: display all route names with the matching paths;
- drupal router:debug dblog.overview: display route information about dblog overview page;
- drupal database:log:debug: display current log events;
- drupal database:log:debug 107: display one log event in details;
- drupal site:statistics: show some statistics about the website (number of modules enabled/disabled, number of users and comments etc.).
The Drupal Console is already used by many companies well known in the Drupal community such as Acquia, Amazee Labs, Phase2 and Commerce Guys and is becoming the standard command line tool for Drupal 8.
But note that the current version is not yet fully compatible with Drupal 8.1.x, for instance, there are still some issues with migration commands. The team of the project is currently looking for some financial support and more contributors to get a full stable release.
For more information about the project, check out the official website and the documentation.
Kevin Avignon: Become better, learn better, do code katas !
Paul Tagliamonte: Go Debian!
As some of the world knows full well by now, I've been noodling with Go for a few years, working through its pros, its cons, and thinking a lot about how humans use code to express thoughts and ideas. Go's got a lot of neat use cases, suited to particular problems, and used in the right place, you can see some clear massive wins.Some of the things Go is great at: Writing a server. Dealing with asynchronous communication. Backend and front-end in the same binary. Fast and memory safe. Things Go is bad at: Having to rebuild everything for a CVE. Having if `err != nil` everywhere. "Better than C" being the excuse for bad semantics. No generics, cgo (enough said)
I've started writing Debian tooling in Go, because it's a pretty natural fit. Go's fairly tight, and overhead shouldn't be taken up by your operating system. After a while, I wound up hitting the usual blockers, and started to build up abstractions. They became pretty darn useful, so, this blog post is announcing (a still incomplete, year old and perhaps API changing) Debian package for Go. The Go importable name is pault.ag/go/debian. This contains a lot of utilities for dealing with Debian packages, and will become an edited down "toolbelt" for working with or on Debian packages.Module Overview
Currently, the package contains 4 major sub packages. They're a changelog parser, a control file parser, deb file format parser, dependency parser and a version parser. Together, these are a set of powerful building blocks which can be used together to create higher order systems with reliable understandings of the world.changelog
The first (and perhaps most incomplete and least tested) is a changelog file parser.. This provides the programmer with the ability to pull out the suite being targeted in the changelog, when each upload was, and the version for each. For example, let's look at how we can pull when all the uploads of Docker to sid took place:func main() { resp, err := http.Get("http://metadata.ftp-master.debian.org/changelogs/main/d/docker.io/unstable_changelog") if err != nil { panic(err) } allEntries, err := changelog.Parse(resp.Body) if err != nil { panic(err) } for _, entry := range allEntries { fmt.Printf("Version %s was uploaded on %s\n", entry.Version, entry.When) } }
The output of which looks like:Version 1.8.3~ds1-2 was uploaded on 2015-11-04 00:09:02 -0800 -0800 Version 1.8.3~ds1-1 was uploaded on 2015-10-29 19:40:51 -0700 -0700 Version 1.8.2~ds1-2 was uploaded on 2015-10-29 07:23:10 -0700 -0700 Version 1.8.2~ds1-1 was uploaded on 2015-10-28 14:21:00 -0700 -0700 Version 1.7.1~dfsg1-1 was uploaded on 2015-08-26 10:13:48 -0700 -0700 Version 1.6.2~dfsg1-2 was uploaded on 2015-07-01 07:45:19 -0600 -0600 Version 1.6.2~dfsg1-1 was uploaded on 2015-05-21 00:47:43 -0600 -0600 Version 1.6.1+dfsg1-2 was uploaded on 2015-05-10 13:02:54 -0400 EDT Version 1.6.1+dfsg1-1 was uploaded on 2015-05-08 17:57:10 -0600 -0600 Version 1.6.0+dfsg1-1 was uploaded on 2015-05-05 15:10:49 -0600 -0600 Version 1.6.0+dfsg1-1~exp1 was uploaded on 2015-04-16 18:00:21 -0600 -0600 Version 1.6.0~rc7~dfsg1-1~exp1 was uploaded on 2015-04-15 19:35:46 -0600 -0600 Version 1.6.0~rc4~dfsg1-1 was uploaded on 2015-04-06 17:11:33 -0600 -0600 Version 1.5.0~dfsg1-1 was uploaded on 2015-03-10 22:58:49 -0600 -0600 Version 1.3.3~dfsg1-2 was uploaded on 2015-01-03 00:11:47 -0700 -0700 Version 1.3.3~dfsg1-1 was uploaded on 2014-12-18 21:54:12 -0700 -0700 Version 1.3.2~dfsg1-1 was uploaded on 2014-11-24 19:14:28 -0500 EST Version 1.3.1~dfsg1-2 was uploaded on 2014-11-07 13:11:34 -0700 -0700 Version 1.3.1~dfsg1-1 was uploaded on 2014-11-03 08:26:29 -0700 -0700 Version 1.3.0~dfsg1-1 was uploaded on 2014-10-17 00:56:07 -0600 -0600 Version 1.2.0~dfsg1-2 was uploaded on 2014-10-09 00:08:11 +0000 +0000 Version 1.2.0~dfsg1-1 was uploaded on 2014-09-13 11:43:17 -0600 -0600 Version 1.0.0~dfsg1-1 was uploaded on 2014-06-13 21:04:53 -0400 EDT Version 0.11.1~dfsg1-1 was uploaded on 2014-05-09 17:30:45 -0400 EDT Version 0.9.1~dfsg1-2 was uploaded on 2014-04-08 23:19:08 -0400 EDT Version 0.9.1~dfsg1-1 was uploaded on 2014-04-03 21:38:30 -0400 EDT Version 0.9.0+dfsg1-1 was uploaded on 2014-03-11 22:24:31 -0400 EDT Version 0.8.1+dfsg1-1 was uploaded on 2014-02-25 20:56:31 -0500 EST Version 0.8.0+dfsg1-2 was uploaded on 2014-02-15 17:51:58 -0500 EST Version 0.8.0+dfsg1-1 was uploaded on 2014-02-10 20:41:10 -0500 EST Version 0.7.6+dfsg1-1 was uploaded on 2014-01-22 22:50:47 -0500 EST Version 0.7.1+dfsg1-1 was uploaded on 2014-01-15 20:22:34 -0500 EST Version 0.6.7+dfsg1-3 was uploaded on 2014-01-09 20:10:20 -0500 EST Version 0.6.7+dfsg1-2 was uploaded on 2014-01-08 19:14:02 -0500 EST Version 0.6.7+dfsg1-1 was uploaded on 2014-01-07 21:06:10 -0500 EST control
Next is one of the most complex, and one of the oldest parts of go-debian, which is the control file parser (otherwise sometimes known as deb822). This module was inspired by the way that the json module works in Go, allowing for files to be defined in code with a struct. This tends to be a bit more declarative, but also winds up putting logic into struct tags, which can be a nasty anti-pattern if used too much.
The first primitive in this module is the concept of a Paragraph, a struct containing two values, the order of keys seen, and a map of string to string. All higher order functions dealing with control files will go through this type, which is a helpful interchange format to be aware of. All parsing of meaning from the Control file happens when the Paragraph is unpacked into a struct using reflection.
The idea behind this strategy that you define your struct, and let the Control parser handle unpacking the data from the IO into your container, letting you maintain type safety, since you never have to read and cast, the conversion will handle this, and return an Unmarshaling error in the event of failure.I'm starting to think parsing and defining the control structs are two different tasks and should be split apart -- or the common structs ought to be removed entirely. More on this later.
Additionally, Structs that define an anonymous member of control.Paragraph will have the raw Paragraph struct of the underlying file, allowing the programmer to handle dynamic tags (such as X-Foo), or at least, letting them survive the round-trip through go.
The default decoder contains an argument, the ability to verify the input control file using an OpenPGP keyring, which is exposed to the programmer through the (*Decoder).Signer() function. If the passed argument is nil, it will not check the input file signature (at all!), and if it has been passed, any signed data must be found or an error will fall out of the NewDecoder call. On the way out, the opposite happens, where the struct is introspected, turned into a control.Paragraph, and then written out to the io.Writer.
Here's a quick (and VERY dirty) example showing the basics of reading and writing Debian Control files with go-debian.package main import ( "fmt" "io" "net/http" "strings" "pault.ag/go/debian/control" ) type AllowedPackage struct { Package string Fingerprint string } func (a *AllowedPackage) UnmarshalControl(in string) error { in = strings.TrimSpace(in) chunks := strings.SplitN(in, " ", 2) if len(chunks) != 2 { return fmt.Errorf("Syntax sucks: '%s'", in) } a.Package = chunks[0] a.Fingerprint = chunks[1][1 : len(chunks[1])-1] return nil } type DMUA struct { Fingerprint string Uid string AllowedPackages []AllowedPackage `control:"Allow" delim:","` } func main() { resp, err := http.Get("http://metadata.ftp-master.debian.org/dm.txt") if err != nil { panic(err) } decoder, err := control.NewDecoder(resp.Body, nil) if err != nil { panic(err) } for { dmua := DMUA{} if err := decoder.Decode(&dmua); err != nil { if err == io.EOF { break } panic(err) } fmt.Printf("The DM %s is allowed to upload:\n", dmua.Uid) for _, allowedPackage := range dmua.AllowedPackages { fmt.Printf(" %s [granted by %s]\n", allowedPackage.Package, allowedPackage.Fingerprint) } } }
Output (truncated!) looks a bit like:... The DM Allison Randal <firstname.lastname@example.com> is allowed to upload: parrot [granted by A4F455C3414B10563FCC9244AFA51BD6CDE573CB] ... The DM Benjamin Barenblat <email@example.com> is allowed to upload: boogie [granted by 3224C4469D7DF8F3D6F41A02BBC756DDBE595F6B] dafny [granted by 3224C4469D7DF8F3D6F41A02BBC756DDBE595F6B] transmission-remote-gtk [granted by 3224C4469D7DF8F3D6F41A02BBC756DDBE595F6B] urweb [granted by 3224C4469D7DF8F3D6F41A02BBC756DDBE595F6B] ... The DM أحمد المحمودي <email@example.com> is allowed to upload: covered [granted by 41352A3B4726ACC590940097F0A98A4C4CD6E3D2] dico [granted by 6ADD5093AC6D1072C9129000B1CCD97290267086] drawtiming [granted by 41352A3B4726ACC590940097F0A98A4C4CD6E3D2] fonts-hosny-amiri [granted by BD838A2BAAF9E3408BD9646833BE1A0A8C2ED8FF] ... ... deb
Next up, we've got the deb module. This contains code to handle reading Debian 2.0 .deb files. It contains a wrapper that will parse the control member, and provide the data member through the archive/tar interface.
Here's an example of how to read a .deb file, access some metadata, and iterate over the tar archive, and print the filenames of each of the entries.func main() { path := "/tmp/fluxbox_1.3.5-2+b1_amd64.deb" fd, err := os.Open(path) if err != nil { panic(err) } defer fd.Close() debFile, err := deb.Load(fd, path) if err != nil { panic(err) } version := debFile.Control.Version fmt.Printf( "Epoch: %d, Version: %s, Revision: %s\n", version.Epoch, version.Version, version.Revision, ) for { hdr, err := debFile.Data.Next() if err == io.EOF { break } if err != nil { panic(err) } fmt.Printf(" -> %s\n", hdr.Name) } }
Boringly, the output looks like:Epoch: 0, Version: 1.3.5, Revision: 2+b1 -> ./ -> ./etc/ -> ./etc/menu-methods/ -> ./etc/menu-methods/fluxbox -> ./etc/X11/ -> ./etc/X11/fluxbox/ -> ./etc/X11/fluxbox/window.menu -> ./etc/X11/fluxbox/fluxbox.menu-user -> ./etc/X11/fluxbox/keys -> ./etc/X11/fluxbox/init -> ./etc/X11/fluxbox/system.fluxbox-menu -> ./etc/X11/fluxbox/overlay -> ./etc/X11/fluxbox/apps -> ./usr/ -> ./usr/share/ -> ./usr/share/man/ -> ./usr/share/man/man5/ -> ./usr/share/man/man5/fluxbox-style.5.gz -> ./usr/share/man/man5/fluxbox-menu.5.gz -> ./usr/share/man/man5/fluxbox-apps.5.gz -> ./usr/share/man/man5/fluxbox-keys.5.gz -> ./usr/share/man/man1/ -> ./usr/share/man/man1/startfluxbox.1.gz ... dependency
The dependency package provides an interface to parse and compute dependencies. This package is a bit odd in that, well, there's no other library that does this. The issue is that there are actually two different parsers that compute our Dependency lines, one in Perl (as part of dpkg-dev) and another in C (in dpkg).I have yet to track it down, but it's shockingly likely that `apt` has another in `C++`, and maybe another in `aptitude`. I don't know this for a fact, so I'll assume nothing
To date, this has resulted in me filing three different bugs. I also found a broken package in the archive, which actually resulted in another bug being (totally accidentally) already fixed. I hope to continue to run the archive through my parser in hopes of finding more bugs! This package is a bit complex, but it basically just returns what amounts to be an AST for our Dependency lines. I'm positive there are bugs, so file them!func main() { dep, err := dependency.Parse("foo | bar, baz, foobar [amd64] | bazfoo [!sparc], fnord:armhf [gnu-linux-sparc]") if err != nil { panic(err) } anySparc, err := dependency.ParseArch("sparc") if err != nil { panic(err) } for _, possi := range dep.GetPossibilities(*anySparc) { fmt.Printf("%s (%s)\n", possi.Name, possi.Arch) } }
Gives the output:foo (<nil>) baz (<nil>) fnord (armhf) version
Right off the bat, I'd like to thank Michael Stapelberg for letting me graft this out of dcs and into the go-debian package. This was nearly entirely his work (with a one or two line function I added later), and was amazingly helpful to have. Thank you!
This module implements Debian version comparisons and parsing, allowing for sorting in lists, checking to see if it's native or not, and letting the programmer to implement smart(er!) logic based on upstream (or Debian) version numbers.
This module is extremely easy to use and very straightforward, and not worth writing an example for.Final thoughts
This is more of a "Yeah, OK, this has been useful enough to me at this point that I'm going to support this" rather than a "It's stable!" or even "It's alive!" post. Hopefully folks can report bugs and help iterate on this module until we have some really clean building blocks to build solid higher level systems on top of. Being able to have multiple libraries interoperate by relying on go-debian will be a massive ease. I'm in need of more documentation, and to finalize some parts of the older sub package APIs, but I'm hoping to be at a "1.0" real soon now.
Lars Wirzenius: New APT signing key for code.liw.fi/debian
For those who use my code.liw.fi/debian APT repository, please be advised that I've today replaced the signing key for the repository. The new key has the following fingerprint:8072 BAD4 F68F 6BE8 5F01 9843 F060 2201 12B6 1C1F
I've signed the key with my primary key and sent the new key with signature to the key servers. You can also download it at http://code.liw.fi/apt.asc.
Vardot: Facebook Comments Block
In this article I'd like to share with you a module that I've recently created for Drupal 7 and 8 called Facebook Comments Block. It gives visitors of your website the opportunity to comment on your site's content using a widget that is directly integrated with Facebook. Here is the screenshot showing you how the commenting box will be displayed on your website:
What was missing in other Drupal commenting modules?
The historical background of my contribution to the Drupal society was pretty easy. While working on Vardot's distribution Uber Publisher our main goal was to make Drupal as user-friendly as possible. One of the increasing users' convenience factors was a maximal easiness in adding comments on the website, and one of the main satisfaction criterias from the user's perspective is the number of clicks and the total time needed to proceed with a request.
The big UX disadvantage of popular solutions is that users are required to create an account on a new website. The number of services we are using is increasing every year, and managing, remembering passwords or even logging in to all of them becomes very time-consuming. As a site visitor I'd prefer to be able to comment on posts without signing up, because otherwise, if I read several blogs, I waste too much time for nothing.
Another important disadvantage of commenting widgets I worked with (this time more for a developer and site owner than for an end-user) was that most of them were based on URL aliases. As a result some of our clients were facing the issue when they were losing all comments after changing the URL of the page or its title (in Uber Publisher short SEO-friendly URLs are generated automatically based on the title of the post).
What are the advantages of Facebook Comments Block module?
Addressing issues that were described above, and adding some new benefits, I've made a list of reasons why you may go for the Facebook Comments Block module:
- Facebook Comments Block relies on a node ID
The widget minimizes risks of changing the URL, because it relies on a node ID that is always constant. As a result, even if you rewrite the title of your article or the link of the page, comments that were added before won't be lost.
Facebook Comments Block allows for the main domain configuration
If you have multiple domains associated with your website, you can configure the module to recognize the main domain and share comments across all domains. For example, we have two URLs for the same site - www.example.com/article-title and www.myexample.com/article-title. Configure Facebook Comments Block to use www.example.com as a main domain, and comments of the main domain will be shared to and from www.myexample.com.
Facebook Comments Block uses basic configurations
It doesn't have dependencies which makes it easy to install and use. Just go to "Admin" -> "Structure" -> "Block", and you'll find "Facebook Comments" settings. Choosing "Configure" you'll see the menu with options to customize the widget:
You don't need to log in
Most of the site visitors are already logged in with their Facebook profiles. As a result, they comment using their real social media (Facebook) account and don't need to make additional clicks to be able to comment. The idea of this widget is to be organically implemented to the page and be percepted as its natural part, so the visitor doesn't even realize that there is a special block for commenting that is connected to an external service.
Facebook Comments Block is easy to integrate with other modules
The widget uses Drupal block API, so it can be easily integrated with most of the Drupal modules that support blocks (i.e. Rules, Context, Panels, …etc.). The integration is straightforward and doesn't require any additional development efforts or customization.
Porting Facebook Comments Block to Drupal 8
Facebook Comments Block was a new step in my developer's career, because it introduced me to the world of Drupal 8. After D8 release I've decided to learn it by porting this block, and use Drupal 8's new block API, block configurations and the new twig templates to apply changes to my new module. Now the widget is available in two latest Drupal versions - D7 and D8. It can be used by site owners that already realized benefits of Drupal 8 as well as by site owners that prefer to wait, evaluate, and choose.
Bottom line
The usage statistics of the widget shows that the number of people installing it is constantly growing and reached 380 sites by the beginning of June:
Drupal modules are developed by community and grown by community. If you'd like to try the Facebook Comments Block, feel free to download it from drupal.org. To report any bug issue, support or feature request you can fill a new ticket on Drupal issue queue. And of course I would be really thankful if you share this blog post in your social networks, so more interested people could learn about the widget and try it out.Tags: Drupal Planet drupal 8 Modules Title: Facebook Comments Block
Elena 'valhalla' Grandi: StickerConstructorSpec compliant swirl
This evening I've played around a bit with the Sticker Constructor Specification https://github.com/terinjokes/StickerConstructorSpec and its https://github.com/terinjokes/StickerConstructorSpec/blob/master/assets/hexagonal-sticker_template.svg, and this is the result:
Now I just have to:
* find somebody in Europe who prints good stickers and doesn't require illustrator (or other proprietary software) to submit files for non-rectangular shapes
* find out which Debian team I should contact to submit the files so that they can be used by everybody interested.
But neither will happen today, nor probably tomorrow, because lazy O:-)
Edit: now that I'm awake I realized I forgot to thank @Enrico Zini Zini and MadameZou for their help in combining my two proposals in a better design.
Source svg http://social.gl-como.it/attach/3
Debian Java Packaging Team: Wheezy LTS and the switch to OpenJDK 7
Wheezy's LTS period started a few weeks ago and the LTS team had to make an early support decision concerning the Java eco-system since Wheezy ships two Java runtime environments OpenJDK 6 and OpenJDK 7. (To be fair, there are actually three but gcj has been superseded by OpenJDK a long time ago and the latter should be preferred whenever possible.)
OpenJDK 6 is currently maintained by Red Hat and we mostly rely on their upstream work as well as on package updates from Debian's maintainer Matthias Klose and Tiago Stürmer Daitx from Ubuntu. We already knew that both intend to support OpenJDK 6 until April 2017 when Ubuntu 12.04 will reach its end-of-life. Thus we had basically two options, supporting OpenJDK 6 for another twelve months or dropping support right from the start. One of my first steps was to ask for feedback and advice on debian-java since supporting only one JDK seemed to be the more reasonable solution. We agreed on warning users via various channels about the intended change, especially about possible incompatibilities with OpenJDK 7. Even Andrew Haley, OpenJDK 6 project lead, participated in the discussion and confirmed that, while still supported, OpenJDK 6 security releases are "always the last in the queue when there is urgent work to be done".
I informed debian-lts about my findings and issued a call for tests later.
Eventually we decided to concentrate our efforts on OpenJDK 7 because we are confident that for the majority of our users one Java implementation is sufficient during a stable release cycle. An immediate positive effect in making OpenJDK 7 the default is that resources can be relocated to more pressing issues. On the other hand we were also forced to make compromises. The switch to a newer default implementation usually triggers a major transition with dozens of FTBFS bugs and the OpenJDK 7 transition was no exception. I pondered about the usefulness of fixing all these bugs for Wheezy LTS again and focussing on runtime issues instead and finally decided that the latter was both more reasonable and more economic.
Different from regular default Java changes, users will still be able to use OpenJDK 6 to compile their packages and the security impact for development systems is in general neglectable. More important was to avoid runtime installations of OpenJDK 6. I identified eighteen packages that strictly depended on the now obsolete JRE and fixed those issues on 4 May 2016 together with an update of java-common and announced the switch to OpenJDK 7 with a Debian NEWS file.
If you are not a regular reader of Debian news and also not subscribed to debian-lts, debian-lts-announce or debian-java, remember 26 June 2016 is the day when OpenJDK 7 will be made the default Java implementation in Wheezy LTS. Of course there is no need to wait. You can switch right now:sudo update-alternatives --config java
Dominique Dumont: An improved Perl API for cme and Config::Model
While hacking on a script to update build dependencies on a Debian package, it occured to me that using Config::Model in a Perl program should be no more complicated than using cme from a shell script. That was an itch that I scratched immediately.
Fast forward a few days, Config::Model now features new cme() and modify() functions that have a behavior similar to cme modify command.
For instance, the following program is enough to update popcon's configuration file:use strict; # let's not forget best practices ;-) use warnings; use Config::Model qw(cme); # cme function must be imported cme('popcon')->modify("PARTICIPATE=yes");
The object returned by cme() is a Config;:Model::Instance. All its methods are available for a finer control. For instance:my $instance = cme('popcon'); $instance->load("PARTICIPATE=yes"); $instance->apply_fixes; $instance->say_changes; $instance->save;
When run as root, the script above shows:Changes applied to popcon configuration: - PARTICIPATE: 'no' -> 'yes'
If need be, you can also retrieve the root node of the configuration tree to use Config;:Model::Node methods:my $root_node = cme('popcon')->config_root; say "is popcon active ? ",$root_node->fetch_element_value('PARTICIPATE');
In summary, using cme in a Perl program is now as easy as using cme from a shell script.
To provide feedback, comments, ideas, patches or to report problems, please follow the instructions from CONTRIBUTING page on github.
All the best
Tagged: config-model, configuration, Perl
Manuel A. Fernandez Montecelo: More work on aptitude
The last few months have been a bit of a crazy period of ups and downs, with a tempest of events beneath the apparent and deceivingly calm surface waters of being unemployed (still at it).The daily grind
Chief activities are, of course, those related to the daily grind of job-hunting, sending applications, and preparing and attending interviews.
It is demoralising when one searches for many days or weeks without seeing anything suitable for one's skills or interests, or other more general life expectations. And it takes a lot of time and effort to put one's best in the applications for positions that one is really, really, interested in. And even for the ones which are meh, for a variety of reasons (e.g. one is not very suitable for what the offer demands).
After that, not being invited to interviews (or doing very badly at them) is bad, of course, but quick and not very painful. A swift, merciful end to the process.
But it's all the more draining when waiting for many weeks ─when not a few months─ with the uncertainty of not knowing if one is going to be lucky enough to be summoned for an interview; harbouring some hope ─one has to appear enthusiastic in the interviews, after all─, while trying to keep it contained ─lest it grows too much─; then in the interview hearing good words and some praises, and feeling the impression that one will fit in, that one did nicely and that chances are good ─letting the hope grow again─; start to think about life changes that the job will require ─to make a quick decision should the offer finally arrives─; perhaps make some choices and compromises based on the uncertain result; then wait for a week or two after the interview to know the result...
... only to end up being unsuccessful.
All the effort and hopes finally get squashed with a cold, short email or automatic response, or more often than not, complete radio silence from prospective employers, as an end to a multi-month-long process. An emotional roller coaster [1], which happened to me several times in the last few months.All in a day's work
The months of preparing and waiting for a new job often imply an impasse that puts many other things that one cares about on hold, and one makes plans that will never come to pass.
All in a day's (half-year's?) work of an unemployed poor soul.
But not all is bad.
This period was also a busy time doing some plans about life, mid- and long-term; the usual ─and some really unusual!─ family events; visits to and from friends, old and new; attending nice little local Debian gatherings or the bigger gathering of Debian SunCamp2016, and other work for side projects or for other events that will happen soon...
And amidst all that, I managed to get some work done on aptitude.Two pictures worth (less than) a thousand bugs
To be precise, worth 709 bugs ─ 488 bugs in the first graph, plus 221 in the second.
In 2015-11-15 (link to the post Work on aptitude):
In 2016-06-18:Numbers
The BTS numbers for aptitude right now are:
- 221 (259 if counting all merged bugs independently)
- 1 Release Critical (but it is an artificial bug to keep it from migrating to testing)
- 43 (55 unmerged) with severity Important or Normal
- 160 (182 unmerged) with severity Minor or Wishlist
- 17 (21 unmerged) marked as Forwarded or Pending
Beyond graphs and stats, I am specially happy about two achievements in the last year:
To have aptitude working today, first and foremost
Apart from the abandon that suffered in previous years, I mean specifically the critical step of getting it through the troubles of the last summer, with the GCC-5/C++11 transition in parallel with a transition of the Boost library (explained in more detail in Work on aptitude).
Without that, possibly aptitude would not have survived until today.
Improvements to the suggestions of the resolver
In the version 0.8, there were a lot of changes related with improving the order of the suggestions from the resolver, when it finds conflicts or other problems with the planned actions.
Historically, but specially in the last few years, there have been many complaints about the nonsensical or dangerous suggestions from the resolver. The first solution offered by the resolver was very often regarded as highly undesirable (for example, removal of many packages), and preferable solutions like upgrades of one or only a handful of packages being offered only after many removals; and "keeps" only offered as last resort.
Perhaps these changes don't get a lot of attention, given that in the first case it's just to keep working (with few people realising that it could have collapsed on the spot, if left unattended), and the second can probably go unnoticed because "it just works" or "it started to work more smoothly" doesn't get as much immediate attention as "it suddenly broke!".
Still, I wanted to mention them, because I am quite proud of those.Thanks
Even if I put a lot of work on aptitude in the last year, the results of the graph and numbers have not been solely achieved by me.
Special thanks go to Axel Beckert (abe / XTaran) and the apt team, David Kalnischkies and Julian Andres Klode ─ who, despite the claim in that page, does not mostly work python-apt anymore... but also in the main tools.
They help with fixing some of the issues directly, or changing things in apt that benefit aptitude, testing changes, triaging bugs or commenting on them, patiently explaining to me why something in libapt doesn't do what I think it does, and good company in general.
Not the least, for holding impromptu BTS group therapy / support meetings, for those cases when prolonged exposure to BTS activity starts to induce very bad feelings.
Thanks also to people who sent their translation updates, notified about corrections, sent or tested patches, submitted bugs, or tried to help in other ways. Change logs for details.
[1] ^ It's even an example in the Cambridge Dictionaries Online website, for the entry of roller coaster:
"He was on an emotional roller coaster for a while when he lost his job."
Kevin Avignon: GSOC 2015 : From NRefactory 6 to RefactoringEssentials
Sune Vuorela: R is for Randa
This week I have been gathered with 38 KDE people in Randa, Switzerland. Randa is a place in a valley in the middle of the Alps close to various peaks like Matterhorn. It has been a week of intense hacking, bugfixing, brainstorming and a bit of enjoying the nature.
R is for Reproducible builds
I spent the first couple of days trying to get the Qt Documentation generation tool to reproducible generate documentation. Some of the fixes were of the usual 'put data in an randomized datastructure, then iterate over it and create output', where the fix is similar well known: Sort the datastructure first. Others were a bit more severe bugs that lead to the documentation to shuffle around the 'obsolete' bit, and the inheritance chains. Most of these fixes have been reviewed and submitted to the Qt 5.6 branch, one is still pending review, but that hopefully gets fixed soon. Then most of Qt (except things containing copies of (parts) of webkit and derivatives) should be reproducible.
R is for Roaming around in the mountains
Sleeping, hacking and dining in the same building sometimes leads to a enormous desire for fresh air. Luckily in the middle of the alps, it is readily available, and at least once a day many people went for a walk. To say hi to a sheep. Or to just go uphill until tired and then going back down. Or just finding a circle around. For this area, OpenStreetMap seems to have better maps than Google. We also went on a nice group trip to Zermatt and surroundings, sponsored by our friends in Edeltech.
R is for Releasing
One of the tasks I set myself for was to get my barcode generation library (prison. you know. being behind bars.) ready for release. A bit of api cleanup, including some future proofing, was done, and all users adapted. Hopefully it will be released as part of the next KDE Frameworks release.
R is for Reviewing code
When signing up for the sprint, one has to declare a couple of tasks to work on. One of the things I put myself up to was reviewing David Faure's code changes. First, he is very productive, and second, he often gets into creating patches in code areas where many other contributors are scared to look. So someone has to do it, and code never scared me.
R is for Running
I planned on going running along the river monday, wednesday and friday. Fortunately that happened, but due to Switzerland having a bit more ups and downs than flat Denmark, it didn't go that fast.
R is for Random bugfixing
When in the hacking mood surrounded by great developers, it is very easy to just fix minor bugs when you encounter them. There is likely someone around who knows the code in question. Or you are just in the mood to actually fix it, rather than living with a missing clock applet or a corner case crash.
R is for Rubber ducking
I am a brilliant person sized rubber duck. And I did get the opportunity to show off my skills a couple of times, as well as using some of the other people for that.
R is for Raising money
These sprints in Randa is only possible because of all the nice donations from people and companies around the world. The fundraiser is still running, and can be found at
Help us keep going, at this and many other sprints, clickety-click! :D
Freelock : A Flash of Insight
Its name is Watney. Watney lives in Matrix. Watney is a bot I created about 6 months ago to start helping us with various tasks that are instrumental for day-to-day tasks we need to do in our business.
Watney patiently waits for requests in a bunch of chat rooms we use for internal communications about each website we manage, each project we work on. Watney does a bunch of helpful things already, even though it is still really basic -- it fetches login links for us, helps us assemble release notes for each release we do to a production site, reminds us when it's time to do a release, and kicks off various automation jobs.DevOpsConcourseMatrixBotWatneyDrupalDrupal Planet
Acquia Developer Center Blog: Drupal 8 for beginners - meet Brandon Relph
I met 15-year-old serial entrepreneur--CEO of goCreative--and budding Drupalist Brandon Relph at the inaugural ThinkNation event in Canterbury, in December 2015. In this podcast, we talk about how he got to know Drupal 8 and what he thought of it. And I was surprised to learn that there is a world of professional Minecraft out there, in which Brandon runs two professional ventures and employs a couple dozen people around the world.
Brandon met Drupal when he began building the ThinkNation website in Drupal 8 as part of a work-experience week with the UK Agency Miggle. From an interview with Brandon on the ThinkNation website, Putting young people at the heart of ThinkNation: "Working on the ThinkNation site seemed a daunting process at first. I had just arrived to the Miggle office for my work experience and was given the task of converting the pre-made designs of ThinkNation into HTML/CSS that afternoon!" Miggle founder, Alick Mighall talks about Brandon and ThinkNation in this post: Young Thinking.Interview video - 10 min.
Guest dossier
- Name: Brandon Relph
- Work affiliation:
- CEO goCreative - "We create awesome Minecraft creations"
- Block Arts - "The new way to share all things Minecraft"
- Twitter: @brandonrelph
- 1st version of Drupal: Drupal 8!
jam: Right. We – this guy and I have just spent the whole day at this thing called ThinkNation and ThinkNation – what did you think of the day?
Brandon Relph: It was very well put together. It was very interesting and engaging.
jam: If you had to describe it to someone else who wasn't here, how would you describe this event?
Brandon Relph: Something to almost answer those big questions that you may have.
jam: Right. So the format was roughly five big questions involving human life at the deepest level. Should we invest in technology to extend it, should we invest in space flights, questions about mortality, really kind of serious stuff. And it was put together ... So there were a series of experts, speakers and artists and a poet and some dancers and everybody addressing these questions in different ways. I found it incredibly rich and I was pretty excited and the plan is to have more of these. Would you come back?
Brandon Relph: For sure.
jam: So please introduce yourself.
Brandon Relph: My name is Brandon Relph. I'm from Bishop Bell School in Eastbourne. I did my work experience with the company Miggle, which helped design the website for this event.
jam: That's our secret Drupal connection of the day. So what did you do on your work experience?
Brandon Relph: I was the first person to start the ThinkNation site.
jam: Which was built in...?
Brandon Relph: Drupal 8.
jam: Oh, lovely!
Brandon Relph: This was back in June time. So it was when - before it had even been released. Yes, I built lots of the front end and I also got to use Drupal 8, which I've never used before.
jam: So what's your development, IT, web sort of background?
Brandon Relph: In school, I study computer science. Outside the school, I do lots of computer-related activities. I also own my own company, which ... we do stuff on the computer and everyday internet.
jam: So you're an entrepreneur.
Brandon Relph: Yes, you could call me that.
jam: In geek terms, Alick Mighall said, "Go make a Drupal 8 site," and just set you loose, right? How was it to open up Drupal for the first time and...?
Brandon Relph: It was a challenge. I have to say it's very easy to install it and when we were doing – on the first day, I basically got told, "Oh yes, we use Drupal." I got talked through what it was. I got left a bit to decide and get to know it and they were like, "Oh, here's the site. We want you to start." So I started. I think pretty much in the first afternoon.
jam: Conceptually, was it an easy thing to get into, given your background?
Brandon Relph: It was very different because I'm used to coding raw PHP and it actually probably was a lot easier than what I do. So I suppose in a way, I was doing lots of the front end to begin with but we explored the back end of Drupal afterwards and getting to know how it will work opened my eyes up to how I kind of over-complicate stuff.
jam: Wow! That's really interesting. So in Drupal, we talked a lot about how we empower people to use this very complex technology stack by making a great user interface and a great experience. Did it feel that way? Can you identify with that?
Brandon Relph: Yes, it felt like the process was a lot quicker than it would necessarily been if I would have had to hard code it.
jam: Now, most people that I interview – I'll ask them something like, "What's your first Drupal memory?" but your first Drupal memory is only June and it sounds like it was entirely positive.
Brandon Relph: Yes.
jam: Is Drupal something that you are going to try out for your own projects and get back to at some point?
Brandon Relph: I probably will. It's busy time at the moment with school and everything to running your own company but it's definitely something that I want to look into in the future as it seems like a really good alternative to hard coding stuff.
jam: So now, I'm just going to stand in front of you so that we can get the height comparison. How old are you?
Brandon Relph: I'm 15.
jam: You are 15. Thank you very much. So entrepreneurialism is a big theme at this event today. A guy called Ben Towers just had a bit of a speech. He's 17 and he's a serial entrepreneur as well and quite well known here in Britain. Do you think he's sort of a role model?
Brandon Relph: Yes, I suppose he's one of those where maybe I could be even – he could be my target for the next two years because as I progress and I move on, I'd hope that one day I will be standing up at events like this. I think around now is kind of the starting point of that with a television interview coming up in the next couple of weeks and it's going to be taking it from there.
jam: So how did you discover programming was for you and how did you become an entrepreneur?
Brandon Relph: I discovered programming was for me when I sat down and I realized that I had a problem and that I needed to find the solution and programming was that type of thing. So I learned my first programming language when I was 12 or 11 – 12 and that was pretty much basic HTML/CSS and then I got into more of the backend and I did some Java and a bit of C. I suppose I became an entrepreneur when I found something that I enjoyed and I have a friend of mine in Germany who is my business partner, so to speak and we now – over the past two years, have kind of built up the company and we now have – there's 25 of us and we all live all around the world.
jam: Wow! So getting into tech was a scratch-your-own-itch story. You had a problem that you needed to solve and you went and figured it out.
Brandon Relph: Yes. Then, I noticed that other people also have problems and why can't I capitalize on that?
jam: Hey! Presto! You have a business.
Brandon Relph: Yes.
jam: So what are the 25 of you doing now?
Brandon Relph: Some of you may know the game Minecraft. If not, you can Google it. We use it as like an ...
jam: For that one person who hasn't heard of Minecraft.
Brandon Relph: Yes. We use it like a tool, a marketing tool that companies – and they employ us to make software and also stuff in the actual game in order to sell their product or sell their movie or like that. We also use Minecraft in education and we have recently taken on a chemistry project with a school where we make Minecraft – we made atoms in Minecraft and then we show children how they work and how they interact with each other. So I suppose it's kind of that that drives me forward with everything.
jam: Minecraft seems to me to be another sort of perfect system where they've made something so abstract and yet so easy to use that you can sort of turn it into anything.
Brandon Relph: Yes, it's one of those. People describe it as Lego and especially when you're building. It's so much like Lego but in the computer. So it's like Lego on steroids type of thing and it can be used for pretty much anything and the beauty of the game is once you play it, it's so simple to understand and it's engaged with so many children and not just children but generations. Yes, it's just great.
jam: You do have a passion for it. I mean otherwise, you wouldn't be in business at this point either.
Brandon Relph: There's still a market for it even five years after its development. There's still a big market for it and it's still on the rise.
jam: Are you working on the next big idea?
Brandon Relph: Oh, maybe.
jam: Oh, cagey! Cagey! Very good. So let's sum up. ThinkNation, yes – no?
Brandon Relph: Yes.
jam: You're going to be back?
Brandon Relph: Definitely!
jam: Are you going to submit a talk maybe?
Brandon Relph: Oh, I might be submitting – maybe.
jam: Okay. Alright! Drupal, yes-no?
Brandon Relph: Yes, in the future.
jam: Are you going to come back to it?
Brandon Relph: After my studies, yes.
jam: Alright! Cool! Anytime you want, you call any of us. There are several hundred thousand of us who can help you out with that. We'd love to. Start with Alick and then – you know. Awesome! And Minecraft, yes or no?
Brandon Relph: Yes, but not forever. It's going to die one day but for now, it's a great tool and I plan on using it for the future.
jam: So Brandon, give us your shameless pitch.
Brandon Relph: So if you're looking to further your brand, you can contact us. We're called goCreative. We're an international company of 25 and that's in 13 different countries and seven different time zones. You can find us online at go-creative.co and you can also find us on Twitter @goCreativeMC.
jam: It's so nice to meet you.
Brandon Relph: Nice to meet you too.
jam: Thanks for taking the time to talk.
Brandon Relph: Thanks for having me.Podcast series: Drupal 8Skill Level: BeginnerIntermediateAdvanced
Acquia Developer Center Blog: Review GitHub Pull Requests with Ease
If you are like me and have to spend a lot of time reviewing large patches on GitHub you know it is a daunting task.
There is no easy way to navigate through multiple diffs so you have to scroll a lot (and I mean a LOT) and watch very carefully to not to miss what you are looking for.
It is tiring and frustrating.Tags: acquia drupal planet
DrupalEasy: DrupalEasy Podcast 179 - Need to Pee (Michael Schmid, amazee.io, Drupal Community Keynote)
Michael Schmid (Schnitzel), Group CTO of Amazee Group, CTO of amazee.io and super-active Drupal community contributor joins Kelley, Anna, and Mike to discuss amazee.io and Michael's recent DrupalCon New Orleans Community Keynote. This episode also touches on the new (also Swiss!) king of the hill in Drupal code contributions as well as the recent changes at the Drupal Association.Interview
- DrupalCon New Orleans Community Keynote: Your Brain Health is More Important Than Your Standing Desk
- https://www.amazee.io
- http://schnitzel.io
- Introduction to Drupal 8 Module Development live training at DrupalNorth, on Thursday, June 16.
- Online Introduction to Drupal 8 Theme Development - Monday, Tuesday, and Wednesday, June 20, 21, and 22, 3-7pm EDT each day.
- Drupal's number 1 is from Switzerland blog post by Jerome Zech.
- Changes at the Drupal Association - Saying Goodbye, Reorganizing for a changing Drupal, Changes with the Drupal Association.
- MyDropWizard.com - Long-term-support services for Drupal 6, 7, and 8 sites.
- WebEnabled.com - devPanel.
- Mike - Rules module again, because it is so freakin' awesome.
- Anna - Teleport.org uses "Big Data" to compare different places to live. Focused on start-ups and other knowledge workers. Fun to look at (and scope out places where I might need to move after November!).
- Kelley - Headspace mindfulness app to reduce stress, improve focus, relax.
- Michael - Drop Guard - Updates your Core and Modules automatically.
- Drupal North - June 16-19.
- Drupal Dev Days - June 21-26.
- Twin Cities Drupal Camp - June 23-26.
- NYC Camp - July 8-11.
- Drupal4Gov - July 20-22, Learning to Love Blocks Again (Ryan's session), Custom Content Migrations to Drupal 8 (Mike's session).
- Design4Drupal - July 22-24. Still accepting session proposals until at least June 15.
- Drones! FPV and Video/Photo Drones.
- Alexa and Wink (Home Automation).
- Life.
- An Elephant.
- At DrupalCon Copenhagen's closing ceremony - the Kitten Killers performance.
- I'm Too Sexy For My Code - from the DrupalCon New Orleans pre-note performed by Larry Garfield.
Subscribe to our podcast on iTunes, Google Play or Miro. Listen to our podcast on Stitcher.
If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page.
Drop Guard: The risk of ignoring Drupal updates
There is no question about the importance of regularly updating your Drupal installation, including core, contribs, and libraries.
No matter how you manage the workflow - by using dedicated tools, custom scripts, or just update the codebase via FTP - keeping the application's 3rd party code always up-to-date is a must for every open source project.
Without getting into the details of why this is important (in fact we believe our readers don't need to be convinced at all), we decided to imagine the consequences of intentionally ignoring all updates in your project or updating the codebase selectively, when some modules get their new versions regularly and the rest remains outdated.workflow Drupal Planet Security
PreviousNext: Native PHPStorm Drupal Test Runner
PHPStorm has a lot of built in test runners, but it doesn't support Drupal's Simpletest test runner. In this blog post we'll see how we can execute Drupal tests inside PHPStorm using Drupal test runner.
Chromatic: Backup Your Drupal 8 Database to S3 with Drush & Jenkins
There are many different ways to handle offsite database backups for your Drupal sites. From host provider automations to contrib modules like Backup and Migrate and everywhere in between. This week, I was looking to automate this process on a Drupal 8 site. Since Backup and Migrate is being rewritten from the ground up for Drupal 8, I decided to whip up a custom shell script using Drush.
I knew I wanted my backups to not only be automated, but to be uploaded somewhere offsite. Since we already had access to an S3 account, I decided to use that as my offsite location. After doing a bit of Googling, I discovered s3cmd, a rather nifty command line tool for interacting with Amazon S3. From their README.md:
S3cmd (s3cmd) is a free command line tool and client for uploading, retrieving and managing data in Amazon S3 and other cloud storage service providers that use the S3 protocol, such as Google Cloud Storage or DreamHost DreamObjects. It is best suited for power users who are familiar with command line programs. It is also ideal for batch scripts and automated backup to S3, triggered from cron, etc.
It works like a charm and basically does all of the heavy lifting needed to interact with S3 files. After installing and setting it up on my Drupal 8 project's server, I was able to easily upload a file like so: s3cmd put someDatabase.sql.gz s3://myBucket/someDatabase.sql.gz.
With that bit sorted, it was really just a matter of tying it together with Drush's sql-dump command. Here's the script I ended up with:# Switch to the docroot. cd /var/www/yourProject/docroot/ # Backup the database. drush sql-dump --gzip --result-file=/home/yourJenkinsUser/db-backups/yourProject-`date +%F-%T`.sql.gz # Switch to the backups directory. cd /home/yourJenkinsUser/db-backups/ # Store the recently created db's filename as a variable. database=$(ls -t | head -n1) # Upload to Amazon S3, using s3cmd (https://github.com/s3tools/s3cmd). s3cmd put $database s3://yourBucketName/$database # Delete databases older than 10 days. find /home/yourJenkinsUser/db-backups/ -mtime +10 -type f -delete
With the script working, I created a simple Jenkins job to run it nightly, (with Slack notifications of course) and voilà: automated offsite database backups with Jenkins and Drush!


text:
Latest on Karl Otto Alberty »
South African journeyman Hennie Otto blasted a stunning nine-under-par 63 to lead the Volvo China Open after the first round on Thursday.
'Homeland' actress Miranda Otto has been tapped to star on Fox's '24: Legacy', reboot of the network's popular series "24".
Actor Karl Urban says the script of "Thor: Ragnarok" is fantastic.
The Sacramento Kings made it official on Thursday, sacking head coach George Karl a day after completing a 33-49 season and missing the NBA playoffs.
On what would be his 148th birthday, Google has honoured Nobel Laureate Karl Landsteiner, the discoverer of blood groups -- key to successful blood transfusion -- with a Doodle.
Actors Jeff Goldblum, Karl Urban will star alongside Chris Hemsworth in the upcoming third instalment of "Thor".
"The Big Bang Theory" actress Kaley Cuoco is seen getting cuddly with her rumoured boyfriend, fellow equestrian Karl Cook, in one of the new photos on Instagram.
Actress Kristen Stewart, Chanel's newest campaign model, will star in a film directed by designer Karl Lagerfeld for an upcoming show of the French fashion house.
Recommended by Colombia
Photos »
There are no related Photos.
Speed News
Expressing deep shock over death of Karl Slym, the first chairperson of ASSOCHAM Automotive Council, the Associated Chambers of Commerce and Industry of India (ASSOCHAM) Secretary General D S Rawat said untimely death of Slym is not only a loss to the Tatas but to the entire Indian automotive industry.

subset: commoncrawl


text:
Relevant offers
Western Sydney Wanderers have one hand on a ticket to the semi-finals of the Asian Champions League after stunning reigning champions Guangzhou Evergrande in the first leg in Parramatta.
The Wanderers could not have been more unfancied in the first leg of the quarter-final as they battled not just a lack of match fitness but the wealthiest club in Asia who are just eight games away from a fourth consecutive Chinese League title.
At times it was ugly and in many ways that played into the hands of the under prepared Wanderers who drew the more skilful Guangzhou away from the heat of a Chinese summer into a physical and fiery battle on a cold winter's night in Sydney.
They lacked their normal suffocating defence and speed on the counter but they made that up in sheer grit that bore the frustration of Evergrande's star-studded lineup. The decisive moment came via a stroke of luck that arrived via labour, a reminder to the adage "the harder you work, the luckier you get."
Early scuffed chances by Mark Bridge and Labinot Haliti were symbolic of the Wanderers style of play; fragmented, slow and disjointed - hallmarks of a team in the infancy of their pre-season.
They should have conceded on numerous occasions through the first half but were saved by last-ditch defending, a vigilant linesman and some poor finishing by Evergrande's strikers. Though, as rusty as thieir play was, it was often masked by determination.
Even when their off-cue passes threatened to derail their famed counter-attacks, they somehow muscled their way through the Asian champions and through endeavour and fortune, they again should've opened the scoring.
A cross to the far post found the unmarked Shannon Cole but the shortest man on the team showed why he is not a threat in the air as he slammed his header into the earth and wide of the near-empty net he was standing in front of.
That miss should have been further punished in the dying moments of the first half as exhausted defending by the Wanderers presented a chance for midfielder Liao Lisheng with a chance on the edge of the box.
His left-foot drive punched its way through a packed box but Ante Covic showed his experience to follow the path and tip the shot wide of the goal, ensuring a deadlock remained at half-time.
If the Wanderers started the match looking like a team at the start of their pre-season, they returned to the field one ready for the start of the league.
There was more poise in possession and purpose in attack, so much so that even World Cup winner Alberto Gilardino was looking frustrated as he was starved of the ball.
Antony Golec cut in from the left flank to whip in a low cross, or perhaps even shot, with his weaker right foot. It bobbled, swerved and curved towards goal in a confusing attempt, and that may be why it decieved all the visiting defenders as well.
The 17,093 fans were stunned at what they just saw as a delayed jubilation followed the awkward manner in which the Western Sydney Wanderers assumed the lead against the cashed-up juggernaut of Asian football.
In the aftermath of what surely embarrassed Guangzhou Evergrande, star playmaker Alessandro Diamanti was hauled off the field and replaced by another multi-million signing,Yu Hanchao.
They surged forwad but with the same luck.
A cut-back to Gilardino inside the box gave the Italian striker a good chance to score a trademark target man goal but even he fumbled at the final hurdle as the ball came stuck between his legs.
Their misery was sealed when fullback Zhang Lin Peng was sent-off for elbowing Iacopo La Rocca in the dying minutes before Gao Lin followed him down the tunnel in a case of mistaken identity.
In the ensuing chaos, coach Marcello Lippi and the full bench of Evergrande ran on the field in protest and while their cause had merit, it mattered little as Western Sydney announced themselves as challengers in Asia.
Meanwhile, Central Coast Mariners advanced to the second round of the FFA Cup with a 1-0 win over South Coast Wolves at WIN Stadium.
An early goal from Glen Trifiro proved enough as the Mariners held off a determined performance from their NSW Premier League opponents.
- Sydney Morning Herald
Sponsored links
Zac Guildford leaves the NSW Waratahs for 'wellbeing reasons'
Sir Mark Todd named in New Zealand equestrian team for Rio Olympic Games
Daryl Gibson wants Taqele Naiyaravoro to push for Wallabies starting spot
Euro 2016: Titleholders Spain knocked out by Italy
Rio de Janeiro's governor warns Olympics could be 'big failure'
Quiz: Test your sports knowledge - June 28
Can Pakistan's Mohammad Amir be the world's best bowler, in spite of past fixing?
Novak Djokovic beats James Ward at Wimbledon to open bid for fifth straight major
Belgian fan club founder dies after Euro 2016 match against Hungary
Cowboys' comeback sees Manly slump to seventh straight NRL loss
Parramatta Eels use World Cup as lure to convince Semi Radradra to snub French rugby
Waikato-BOP Magic outplayed by Queensland Firebirds in trans-Tasman netball league
NSW picked the wrong team, says snubbed Canberra Raider Joey Leilua
Chiefs coach Dave Rennie won't start all his All Blacks against Crusaders in Fiji
Former Wanaka Lakes Health Centre manager Richard Beven stole $730k
My school day: Drama, dyslexia, piano and Kafka
London Pride police proposal: Kiwi fiancé says public engagement was 'surreal'
Two people pulled from car that crashed off Lowry Bay into Wellington Harbour
Zac Guildford leaves the NSW Waratahs for 'wellbeing reasons'
Game of Thrones season 6, episode 10 finale: Cersei Lannister rules The Winds of Winter
Redcliffs school pupils offer insight into 21st century play-time
Belgian fan club founder dies after Euro 2016 match against Hungary
US Supreme Court firmly backs abortion rights, tosses Texas law
Justin Timberlake apologises over response to 'cultural appropriation' backlash
London Pride police proposal: Kiwi fiancé says public engagement was 'surreal'
Novak Djokovic beats James Ward at Wimbledon to open bid for fifth straight major
Family devastated after photos of son stolen a day before his funeral
Pound slides to 31-year low as Brexit shock deepens
British PM Cameron tells ministers it's business as usual as he readies for Brexit
Former Wanaka Lakes Health Centre manager Richard Beven stole $730k
Mum speaks out after son with Down syndrome is excluded from birthday party
Zac Guildford leaves the NSW Waratahs for 'wellbeing reasons'
Capital concern: The four major events that could spell doom for Wellington
Two people pulled from car that crashed off Lowry Bay into Wellington Harbour
Taylor Swift reportedly 'livid' over Kanye West's naked video inclusion
Two 12-year-old boys missing in Christchurch
11 things you should do in your 20s to be a millionaire by 30
UK visits to NZ Immigration website spiked after Brexit
Will Burnley retain their EPL status?


text:
Two top ULFA leaders arrested in Bangladesh
Guwahati: The United Liberation Front of Asom (ULFA), an influential separatist group has claimed that two of its top leaders were arrested in Bangladesh and then handed over to India, a spokesperson for the outlawed group said. There is, however, no confirmation from Dhaka or New Delhi.
The spokesperson said the outfit`s foreign secretary Sasha Choudhury and finance secretary Chitraban Hazarika were picked up by Bangladeshi intelligence sleuths at Sunday midnight from a house in Dhaka`s Uttara area.
"Seven to eight people in civvies took the two leaders saying the duo were being summoned for some interrogation by senior officials. After that there was no information of them and we suspect they might have been handed over to our enemies (meaning India)," ULFA`s military spokesperson Raju Baruah told the local media via telephone and email.
Assam police and Indian intelligence officials expressed ignorance about the reports.
"We do not know anything about the developments if any. We have also not heard anything from Dhaka about any arrests being made," a home ministry official said.
New Delhi had in the past repeatedly claimed that northeast militants were operating out of bases in Bangladesh with several of their top leaders staying in safe houses in Dhaka. Bangladesh had earlier denied such allegations.
However, the new Awami League government of Sheikh Hasina assured New Delhi of all support and cooperation to evict any Indian separatists from Bangladesh.
Last month, Bangladeshi State Minister for Home Shamsul Haque Tuku was quoted by their country`s media that the government had directed the law enforcement agencies to crack down on ULFA bases in view of intelligence reports that the outfit was planning major strikes in Dhaka.
A top ULFA leader Amal Das was arrested by security forces in Dhaka last month, as part of a crackdown, media reports from Bangladesh said.
India and Bangladesh do not have an extradition treaty.
ULFA general secretary Anup Chetia -- in a Dhaka prison since 1997 -- is in Bangladesh due to the absence of any extradition agreement between the two countries, despite New Delhi`s formal appeals to hand him over for trial in India.
More from India
More from World
More from Sports
More from Entertaiment
- DNA : When will Indian govt take strong actions against terrorism?
- Drunk girl assaults Mumbai police in Worli
- Arun Jaitley upset with Subramaniam Swami's Twitter attack
- Bombay HC to pronounce verdict on entry of woman to Haji Ali Dargah today
- DNA: When will Indian govt take strong actions against terrorism? - Part II
- Three new suicide attacks in Lebanon village near Syria
- Preparing for Brexit, Britain may see new PM by early September
- US says India has shown sustained commitment to non-proliferation
- Earthquake shakes southern Mexico, felt in capital
- Turkey mends fences with Israel and Russia in foreign policy reset


text:
Gladstone Middle Schools
1. West Central Middle School
215 W South StStronghurst, IL 61480
From Business: West Central Middle School serves students in grades six through eight. The school has an annual enrollment of more than 250 students. Its academic curriculum inclu…
2. Notre Dame Schools
702 S Roosevelt AveBurlington, IA 52601
From Business: Burlington Notre Dame Catholic Schools provides a variety of Christ-centered academic and cocurricular programs. The school district operates elementary and seconda…
3. Great River Christian School
426 Harrison AveBurlington, IA 52601
4. Edward Stone Middle School
3000 Mason RdBurlington, IA 52601
5. James Madison Middle School
2132 Madison AveBurlington, IA 52601
From Business: Located in Burlington, Iowa, James Madison Middle School is governed by the Burlington Community School District, which serves students in pre-kindergarten through …
6. Bushnell-Prairie City Jr High Sch
Bushnell, IL 61422
From Business: Bushnell-Prairie City Junior High School provides a range of educational and learning options for students in grades six through eight. Its curriculum includes art,…
7. United West Elementary
2140 State Highway 135Monmouth, IL 61462
8. Danville Jr-Sr High School
419 S Main StDanville, IA 52623
From Business: Established in 1996, EMPATH is a health care consulting firm. It has assisted more than 60 hospitals, including community hospitals, academic medical centers and mu…
9. PASS Adult Alternative Ed Program
105 N E St Ste 1Monmouth, IL 61462
10. RSSP Attendance Cntr PASS Alt Sch
105 N E St Ste 1Monmouth, IL 61462
11. La Harpe Junior High School
404 W Main StLa Harpe, IL 61450
12. Lincoln Intermediate School
325 S 11th StMonmouth, IL 61462
From Business: Lincoln Intermediate School is a part of Monmouth-Roseville School District 238, which conducts educational programs for students through elementary and high school…
13. Monmouth-Roseville Jr High Sch
200 E Gossett StRoseville, IL 61473
From Business: Monmouth-Roseville Junior High School offers a variety of educational opportunities. It enrolls more than 250 students in grades seven and eight. The school conduct…
14. Dallas City Elem School
921 Creamery Hill RdDallas City, IL 62330
From Business: Dallas City Elementary School is a part of the Dallas Elementary School District 327. Its curriculum includes reading, writing, mathematics, science and social stud…
15. Immaculate Conception School
115 N B StMonmouth, IL 61462
16. Central Intermediate School
401 E 2nd AveMonmouth, IL 61462
17. Churchill Jr High School
905 Maple AveGalesburg, IL 61401
From Business: Churchill Junior High School serves students in grades six through eight. It offers academic programs in English, mathematics, reading, industrial arts and world hi…
18. Mercer County Jr High School
203 N Washington StJoy, IL 61260
19. Alexis Junior High School
411 W Hunt AveAlexis, IL 61412
20. Aledo Jr High School
1002 SW 6th StAledo, IL 61231
21. Illini West High School
600 Miller StCarthage, IL 62321
From Business: Illini West High School is an educational institution that offers a range of learning and extracurricular opportunities for students. The school has an annual enrol…
22. West Prairie High School
18575 E 800th StSciota, IL 61475
From Business: Located in Sciota, Ill., West Prairie High School provides general academic programs to more than 280 students in grades 9 through 12. It conducts classes in consum…
23. Nauvoo Elem School
1450 Knight StNauvoo, IL 62354
From Business: Nauvoo-Colusa Elementary School is an educational institution that offers a range of learning and extracurricular opportunities for students. The school serves stud…
24. Holy Trinity Catholic Schools
2600 Avenue AFort Madison, IA 52627
From Business: Holy Trinity Catholic High School, located in Fort Madison, Iowa, is a private, Catholic co-educational day school. It enrolls more than 500 students from grades ni…
25. Holy Trinity Catholic Schools
413 Avenue CWest Point, IA 52656
From Business: Holy Trinity Middle School is an educational institution that provides academic classes and extracurricular activities to students in grades seven and eight. It off…
26. Mercer County Intermediate School
1002 SW 6th StAledo, IL 61231
From Business: Aledo Junior High School is a part of Aledo Schools. The school offers classes in English, math, science, social studies and language arts. Its curriculum also incl…
27. Mt Pleasant Community School District
2104 S Grand AveMount Pleasant, IA 52641
From Business: Mount Pleasant Community High School is a coeducational institution that serves more than 600 students in grades nine through 12. Its academic curriculum includes v…
28. Mt Pleasant Middle School
414 N Adams StMount Pleasant, IA 52641
29. Wapello High School
501 Buchanan AveWapello, IA 52653
30. Galesburg Christian School
746 Hawkinson AveGalesburg, IL 61401


text:
My Six Favorite Hot Teas
By Peanut Butter Runner on May 08, 2014
BlogHer Network
I love hot tea and typically drink at least two cups each day and some days it's upwards of 4. I credit my mom for this as she was always making tea and offering me a cup when I was growing up. I should have taken a picture of her tea stash when I went to visit last weekend. . . .
Read more from My Six Favorite Hot Teas at Peanut Butter Runner
Follow BlogHer
Most Popular
10 Perfect Sips with Chateau
Chateau Ste. Michelle ALWAYS delivers remarkable wine experiences. We asked our bloggers to try Chateau Ste. Michelle wine and share the story behind their perfect sip. Read their reviews plus get a chance to win $100! Read more
Latest comments
Protect Your Child's Teeth
The enamel of baby teeth and new adult teeth is vulnerable to damage. Help protect your child's teeth for years to come by using ProNamel 6-12 Years Toothpaste. Read our bloggers' posts and see you should start your kids with using ProNamel 6-12 Years Toothpaste plus get a chance to win $100! Read more


text:
List all words ending with shut
3 words found.
List all words ending with shut, sorted by length or by how common the words are.
Some random words: kifs elixir eohippus gweduc tapalo chablis dyable
This is not a dictionary, it's a word game wordfinder.
- Help and FAQ - Examples - Home
Privacy and Cookies Policy - Share - © Copyright 2004-2016 Morewords.com - 87.929mS


text:
How I Met Your Mother 2005 | TV Show Watchlist
Season 2, Episode 16 Stuff
First Aired: February 20, 2007
Robin is uneasy with Ted keeping gifts from past lovers in the apartment, so the two of them ask the gang to vote on whether the objects should stay or go. Meanwhile, Lily expects everyone to attend a play she's in. Floppy-Haired Guy: Jason Lopez.
Next On TVSee all »
Thu Jun 30 1:00pm
Pilot EpisodeSeason 1, Episode 1 FXI'll Watch2264 Watching
Cast & Details See all »
- Premiered: September 19, 2005
- Rating: TV-14
- Premise: A man named Ted tells his kids how he met the love of his life, through flashbacks, years in the future. The bored kids sit on the couch and listen as dad regales them with tales of his pursuit of romance. The sitcom's secondary character, Ted's smarmy fri… (more)
Trending TonightSee all »
Beauty and the Beast9:00 pm | CWI'll Watch298 Watching
WWE SmackDown8:00 pm | USAI'll Watch84 Watching
Greatest Hits
Greatest Hits9:00 pm | ABCI'll Watch78 Watching
How I Met Your Mother: Season 7
By 20th Century FoxBuy New: $9.99
How I Met Your Mother Mini Kit: Mini Barney Bobblehead Included!
By Running Press Miniature EditionsBuy New: $9.95
How I Met Your Mother and Philosophy: Being and Awesomeness (Popular Culture and Philosophy)
By Open CourtBuy New: $16.25
Popular Shows
- 1. Game of Thrones
- 2. Castle
- 3. Jane the Virgin
- 4. Dancing with the Stars
- 5. Empire
- 6. The Flash
- 7. The Blacklist
Popular Movies
Popular Celebrities
- 1. Kit Harington
- 2. Gina Rodriguez
- 3. Emilia Clarke
- 4. Tom Hiddleston
- 5. Hayley Atwell
- 6. Michael Weatherly
- 7. Melissa Benoist


text:
Obituary Francis Xavier Riley
Francis Xavier Riley, Jr. of Manassas and Fredericksburg, Va. and formerly of Glens Falls, NY died peacefully Saturday afternoon, February 15th, at the age of 87 after a 10 year battle with Alzheimer's. He was surrounded in comfort and love by the presence of his children as he left this world to join his beloved Demetra, who passed away in 2001.
A veteran of the Second World War and Korea, Mr. Riley served two combat tours during the Korean War and received the Purple Heart for wounds sustained during his first tour. Upon his return to the Korean theater he served with the 10th Engineers at the bloody battle of Outpost Harry. Aside from a brief period as a hotel and restaurant owner and manager, he worked his entire career as a superintendent and project manager in the construction field.
A dedicated and lifelong member of the Operating Engineers Union, Mr. Riley was also very active in politics in both New York and Virginia and was a loyal member of the Democratic Party. A loving husband and father, he was also an active member of any community where he lived and was noted for initiating a Pop Warner Football Program in Glens Falls, NY and an Ancient Order of Hibernians Chapter in Manassas, Va. He was also a Charter Member of American Legion Post 10, Manassas and a member of Veterans of Foreign Wars Post 1503, Woodbridge, VA.
A man of action and spirit, he lived life to the fullest and never looked back. He is survived by his sister Betsy and his children Michael, Patrick, Timothy, Sheila and Terence and numerous grand children and great grand children.
A viewing will be held at Pierce Funeral Home on Thursday evening from 5-8 pm. A funeral Mass will be said on Friday at 12 noon at All Saints Church in Manassas followed by a traditional Irish wake and celebration of his life at the American Legion Hall. He will be interred on Monday at 1pm at Quantico National cemetery alongside his wife Demetra. At Mr. Riley's request, donations should be made to the Leukemia Society in lieu of flowers.Send news and photos to Potomac Local
A word from our sponsors...
Plan on going to the World War II Weekend at Rippon Lodge
June 27, 2016
Manassas has the best fireworks display in Northern Virginia. Believe it.
June 25, 2016
Weddings and celebrations are perfect for the Manassas Park Community Center
June 23, 2016
Training the complete athlete is a priority at Competitive Edge
June 22, 2016
Donations to Habitat for Humanity Summer Drive are tax deductible
June 21, 2016
Celebrate dad at the 12th Annual Manassas Wine & Jazz Fest
June 16, 2016


text:
Reading mode: Light Dark
Forum indexPentax SLR TalkChange forum
Tokina ATX 150-500mm/5.6 on e-Bay
Started Dec 30, 2013 | Discussions thread
Shop cameras & lenses ▾
thegreat26 • Regular Member • Posts: 354
Re: Tokina ATX 150-500mm/5.6 on e-Bay
In reply to PrakticaB • Jan 11, 2014
I had already spoke with my customs office.
The answer?
What comes in can't come out.
Anyway at least i manage to touch one of my all time favorites. And i am sure this lens is not available anywhere close to Cyprus.
Got to save for sth better i quess.
thegreat26's gear list:thegreat26's gear list
Pentax K10D Pentax K-5 Pentax K-1 Pentax smc DA 18-55mm F3.5-5.6 AL Sigma 10-20mm F4-5.6 EX DC HSM +10 more
Reply Reply with quote Complain
|Post (hide subjects)
|Posted by
|Dec 30, 2013
|Dec 31, 2013
|Jan 2, 2014
|Jan 2, 2014
|Jan 3, 2014
|Jan 10, 2014
|Jan 11, 2014
|Jan 11, 2014
|Jan 13, 2014
|Jan 13, 2014
|Jan 13, 2014
|Jan 13, 2014
|10 months ago
|10 months ago
|10 months ago
|10 months ago
|10 months ago
|10 months ago
|10 months ago
|10 months ago
|3 months ago
Keyboard shortcuts:
FForum PPrevious NNext WNext unread UUpvote SSubscribe RReply QQuote BBookmark MMy threads
Color scheme? Blue / Yellow
Latest reviews
Finished challenges
Most popular cameras
Sony Cyber-shot DSC-RX10 III3.8%Panasonic Lumix DMC-GX85 (Lumix DMC-GX80 / Lumix DMC-GX7 Mark II)2.6%Sony Cyber-shot DSC-RX100 IV2.3%Panasonic Lumix DMC-LX1001.9%Panasonic Lumix DMC-ZS100 (Lumix DMC-TZ100)1.7%Sony Alpha a63001.7%Canon PowerShot G5 X1.6%Sony Alpha a60001.6%Sony Cyber-shot DSC-RX100 III1.4%Nikon D55001.3%
In-depth testingLatest Camera ReviewsBeyond the studio testsFeature Articles and VideosPIX VideosTalks, demos and panels680The Canon that canCanon EOS 80D Review358Touchscreen street shooterFujifilm X70 Review2126Upwardly mobileSony a6300 Review307Power ZoomPanasonic Lumix ZS100/TZ100 Review2471Retro through-and-throughFujifilm X-Pro2 Review
Top threads in this forum
Most bookmarked in this forum
Top posters in this forum
Follow us
All content, design, and layout are Copyright © 1998 - 2016 Digital Photography Review All Rights Reserved. Reproduction in whole or part in any form or medium without specific written permission is prohibited.


text:
Automotive Wastes
Abstract:This review summarizes research literature related to automotive wastes published over the last year. This includes wastes from automotive bodies, tires, and emissions from both the vehicles themselves as well as from the manufacturing industry. Literature published related to potential toxicological and health effects of automotive wastes are also reviewed.
Keywords: AUTOMOTIVE; EMISSIONS; VEHICLE; WASTE TIRES
Document Type: Research Article
DOI: http://dx.doi.org/10.2175/106143009X12445568400016
Publication date: September 10, 2009
More about this publication?
- Water Environment Research® (WER®) publishes peer-reviewed research papers, research notes, state-of-the-art and critical reviews on original, fundamental and applied research in all scientific and technical areas related to water quality, pollution control, and management. An annual Literature Review provides a review of published books and articles on water quality topics from the previous year. Published as: Sewage Works Journal, 1928 - 1949; Sewage and Industrial Wastes, 1950 - 1959; Journal Water Pollution Control Federation, 1959 - Oct 1989; Research Journal Water Pollution Control Federation, Nov 1989 - 1991; Water Environment Research, 1992 - present.
- Editorial Board
- Information for Authors
- Submit a Paper
- Subscribe to this Title
- Membership Information
- Information for Advertisers
- WEF Bookstore
- Ingenta Connect is not responsible for the content or availability of external websites


text:
Christmas carp
By Jozef Jakubco
12 Dec 2008
Raising carp has a long history in this territory. The first written accounts of fishpond construction date back to the 11th century, when monasteries maintained the fishponds for raising carp, which was an important food for Lent.
Carps voyage begin in huge ponds. After that, they wait in special tanks until days around Christmas eve, which is on the 24th of December. That day all the carps end as the christmas dinner.
VOTE: Do you like this story?
1 response
Alain Mijngheer gave props (12 Dec 2008):
I like this kind of esays ! Well done
More Photo Essays
Picturesque Churches of the English Countryside
By Judith Hays — 27 Jun 2016
Essay and photos of small country churches - taken in the Cotswold, Oxfordshire, and Berkshire Countryside.


text:
to experience the full functionality of mail.com.
Premium Login
Email Domains
Science & Technology
iPhone App
Android App
iPad App
Browser download
1&1 MyWebsite
Weather Service
Credit Cards
Real Estate
Sign up
Sign up
Log in
Enhanced by Google
Hillary Clinton
July 01, 2016
In VP search, Trump and Clinton eye different priorities
Donald Trump wants a running mate who has what he lacks — political experience. Hillary Clinton is putting a premium on ...
July 01, 2016
Editorial Roundup: Excerpts from recent editorials
Excerpts from recent editorials in the United States and abroad: ____ June 28 The Montreal Gazette on Brexit and Quebec: ...
June 30, 2016
Albanian southern town erects bust of Hillary Clinton
A bust of U.S. presidential candidate Hillary Clinton was unveiled Thursday in the main square of Albania's southernmost city ...
June 29, 2016
Foreign politicians to Trump: Stop 'begging' for money
Call it 'Trexit.' Members of the British Parliament and other foreign politicians want off Donald Trump's email list, and are ...
June 29, 2016
Trump gets rock-bottom ratings in international survey
A new multi-nation survey finds that confidence in Donald Trump's ability to manage foreign policy should he become U.S.
June 28, 2016
10 Things to Know for Tuesday
Your daily look at late-breaking news, upcoming events and the stories that will be talked about Monday: 1. HOW SUPREME COURT ...
June 27, 2016
Dems: Clinton never personally denied Benghazi security
Hillary Clinton never personally denied any requests from diplomats for additional security at the U.S. outpost in Benghazi, ...
June 27, 2016
10 Things to Know for Today
Your daily look at late-breaking news, upcoming events and the stories that will be talked about today: 1. WHAT UK TREASURY ...
June 26, 2016
For Trump and Brexit voters, echoes of the same frustrations
At the heart of the campaign that led Britain to vote to leave the European Union was a desire to regain independence lost ...
June 25, 2016
Business promotion and politics par for Trump's golf tour
Donald Trump moved from hole to hole on his wind-swept Scotland golf course Saturday, not a club in hand but promotion on his ...
June 25, 2016
Brexit vote hardly a harbinger of US presidential election
Widespread economic angst. Intense opposition to immigration policy. The rise of populist and nationalist sentiments, ...
June 25, 2016
Certainty Obama once had about Britain has been shattered
President Barack Obama could count on Britain to back him at nearly every turn during his first 7½ years in office. He knew ...
June 24, 2016
Trans-Atlantic Trend? Trump sees UK vote as validation
Britain's stunning vote to bolt from the European Union sent political tremors across the Atlantic Friday, fueling Donald ...
June 24, 2016
The Latest: Delegate files suit to avoid voting for Trump
The Latest on the U.S. presidential campaign (all times EDT): 10:30 p.m. One of Virginia's delegates to the Republican ...
June 24, 2016
Crisis or speed bump? What UK vote means for economy sectors
Britain's vote to leave the European Union adds a heavy dose of uncertainty to a world economy that is still struggling to ...
June 23, 2016
Trump says he wishes campaign didn't have to pay companies
Donald Trump said Thursday he would prefer to use his own companies' resources for campaigning without paying them.
June 23, 2016
Amid campaign worries, Trump to check on courses in Scotland
Facing questions about meager fundraising, slipping poll numbers and campaign instability, Donald Trump is tending to ...
June 22, 2016
Editorial Roundup: Excerpts from recent editorials
Excerpts from recent editorials in the United States and abroad: ____ June 23 The Khaleej Times on space revolution in India: ...
June 22, 2016
Responding to Trump, Clinton says he has 'no answers'
Hillary Clinton pushed back against Donald Trump's questions about her religion and her competence Wednesday, casting him as ...
June 22, 2016
Many say political opponents frighten them, threaten country
Democratic and Republican views of the opposing political party have sunk to such lows that many say their rivals make them ...


text:
I think it's clear he's standing by his original output numbers. Why would he be retesting if it were just emitter vs otf ? It would just be 180 emitterRobone Today, 12:17 PM
Successfully update FW to 1.11
My HW Ver. 1.4+
Win7 64 Home Ed.
Thanks to Kreisl, SKYRC and CPF.
I agree with Str8, the spiral is awesome but needs larger holes for sure.light-modder Today, 12:09 PM
Deleted [Duplicate post]Stoneking Today, 12:09 PM
What would be a good middle ground between the emitters available?Stoneking Today, 12:08 PM
At first, I thought it was a picture of two spaceships trying to dock! 😀
Beautifully futuristic!!
Aucooma IMR18650 3000mAh (Black-red)
Official specifications:
I prefer the straight hole model, but that probably only because the tritium light is more visible in that one.HighlanderNorth Today, 12:02 PM
Your next one should be the TOOLvn, then you will have all the bases covered 😉
In fact, you could use the TOOL as a lanyard fob for
Up for sale as a Lot are 3 Mint condition, never used Mini Maglights in Jade, Dark Green and Dark Blue. Two have a drop-in LED circa 2008/9 and one isBVH Today, 12:00 PM


text:
Did the cbs show big bang theory get cancelled?
kgb answers » Arts & Entertainment » TV » Did the cbs show big bang theory get cancelled?
Tags: chuck lorre, big bang theory, sitcom, cbs
Thursday, February 02 2012
Source: http://www.tvguide.com/tvshows/big-bang-theory/cast/288041
Related questions
Top 10 questions TV
- What coffee did alexa hente sell?
- Did jane fonda ever remove a rib from her rib cage so she would be skinnier?
- Did michael j fox play zorro?
- Is christina ricci and nicole richie sisters?
- Does tyga have a twin brother
- Is jamie fox on the new verizon commercial?
- how did rhaegar targaryen die?
- On the cartoon thundercats-who were the 2 youngest cats?
- Who do you think will win Big Brother 18?
- Was there ever a Jack Tenorman who played for the Denver Broncos?


text:
Upcoming Events
no events match your query!
New Events
no events posted in last week
Why the corporate capture of COP21 means we must Kick Big Polluters Out of climate policy 22:47 Dec 03 3 comments
Shale Gas Bulletin Ireland . Majority of MEPs support fracking moratorium in symbolic vote 23:09 Jul 19 0 comments
Concerns about toxicity from carcinogens, such as dioxins, PCBs (man-made hydrocarbons) in farmed sa... 00:20 Dec 25 1 comments
Climate change - Making big polluters pay / Overpopulation 11:51 Dec 07 11 comments
Mayo needs to wake up to Fracking 23:37 Aug 25 0 commentsmore >>
User Preferences
Blog Feeds
Irish Left ReviewJoined up thinking for the Irish Left
Bin Charges: From Private Circus to Public Service Tue Jun 21, 2016 12:38 | Michael Taft
Beyond Grexit & Brexit, Advocating an Irish and a British role in solving Europe... Tue Jun 21, 2016 12:18 | Tony Phillips
Hardship never lasts forever? Wed May 04, 2016 15:50 | Raymond Deane
DDCI calls on New Government to Strictly Regulate Vulture Fund Acquisitions Wed May 04, 2016 15:22 | Irish Left Review
Warning: Ultra-Low Spend Economy Ahead Wed May 04, 2016 11:59 | Michael Taft
Cedar LoungeFor lefties too stubborn to quit
Charley?s War and the Somme 12:00 Thu Jun 30, 2016 | WorldbyStorm
Contingency 11:00 Thu Jun 30, 2016 | WorldbyStorm
Cynicism? Nah, business as usual. 10:00 Thu Jun 30, 2016 | WorldbyStorm
Signs of Hope ? A continuing series 06:55 Thu Jun 30, 2016 | WorldbyStorm
An Phoblacht July Issue 18:03 Wed Jun 29, 2016 | WorldbyStorm
Dublin OpinionLife should be full of strangeness, like a rich painting
Notes for a Book on Money and the Irish State - The Marshall Aid Program 15:10 Sat Apr 02, 2016
The Financial Crisis:What Have We Learnt? 19:58 Sat Aug 29, 2015
Money in 35,000 Words or Less 21:34 Sat Aug 22, 2015
THE WRATH OF KANE: BANKING CRISES AND POLITICAL POWER 09:32 Fri Jan 30, 2015
ALWAYS THE ARTISTS: WEEK THREE OF THE BANK INQUIRY 23:11 Thu Jan 22, 2015
NAMA Wine Lake
Farewell from NWL Sun May 19, 2013 14:00 | namawinelake
Happy 70th Birthday, Michael Sun May 19, 2013 14:00 | namawinelake
Of the Week? Sat May 18, 2013 00:02 | namawinelake
Noonan denies IBRC legal fees loan approval to Paddy McKillen was in breach of E... Fri May 17, 2013 14:23 | namawinelake
Gayle Killilea Dunne asks to be added as notice party in Sean Dunne?s bankruptcy Fri May 17, 2013 12:30 | namawinelake
Action underway at Shell compound in Erris - fences torn down
mayo | environment | news report Friday July 29, 2011 10:15 by Andrew - WSM
We are reporting updates as we get them via the WSM twitter feed. Below are those received as of 10am with the most recent first. More to follow, see them as they are sent at http://twitter.com/#!/WSMIreland
Attempt 2 pull down inner fence at Shell compound in progress, WSM member at scene reporting Shell security reacting with some violence
Stand off between Garda & Shell to Sea campaigners in Rossport with up to 30 campaigners inside Shell compound - work halted #s2s2 minutes ago
Shell to Sea reporting that despite Garda & private security assaults 30 campaigners have now gained access to Shell compound #s2s5 minutes ago
3 more sections of fencing now pulled down at #s2s day of action at Shell compound in Erris, Mayo10 minutes ago
one Shell to Sea campaigner now reported as having received head and hand wounds at day of action against Shell pipeline in Erris #s2s12 minutes ago
WSM member at Shell's Aughoose compound reports cops and security goons throwing people around at #s2s day of action in Mayo26 minutes ago
#s2s campaigners tearing down fences now at Shell's compound in Arghoose, several sections of fence now down28 minutes ago
#s2s campaigners now approaching Shell compound in Aughoose where work has already been stopped for the day - take bak our natural resouces30 minutes ago
#s2s have shut down Shell work again at Rossport - campaigner reports "lots of extra IRMS goons in Aughoose compound for day of action"38 minutes ago
Today's Shell to Sea day of action has resulted in Shell canceling work for the day at the Aughoose compound - more details soon
More updates being sent to http://twitter.com/#!/WSMIreland as they are received
More updates being sent to
Comments (1 of 1)
by Andrew Fri Jul 29, 2011 11:35
There is now a five minute interview live from the protest available at http://www.wsm.ie/c/shell-sea-campaigner-interview-dire...ction


text:
Go Blue!
i refuse to even consider this a possibility
i refuse to even consider this a possibility
"Many of them continually emphasize the fact that I am Penn State's coach."
Tennessee is not recruiting well just because they got 18 dudes
can Harbaugh make a rock even he cannot move?
"You certainly can't fake the amount of work you put in during the offseason," O'Korn said this weekend. "I'd echo that, (Harbaugh will) find out and we'll all find out. We've all been here together, but you'll find out Aug. 8 who put in the extra work and who was here at 6 a.m. and who was here the latest. Who grabbed a guy in the middle of the afternoon when they had a few hours to get some extra work in."
Big power forward type who needs a lot of work, should go late.
"My first couple of years it's probably going to be a combination of the style that I played for the last few years at St. John's, but also a style that fits our program," she said. "I'd like to pick up pressure defense and play full-court type of style. Our team really shoots the 3s really well. We move the ball well. We share the basketball extremely well."


text:
Jenna Arcidiacono, owner and chef at Amore Trattoria Italiano serves locally-sourced, authentic Italian food in an atmosphere so homey you'll swear you were at her mother-in-law's home in Milan,...
Restaurant Week GR
Restaurant Week Grand Rapids
August 10-21, 2016
This is your time to "Taste the City" and experience a variety of earth-to-table menu creations from scores of restaurants during Restaurant Week 2016.
Indulge in Michigan's fresh-from-the-farm grown food and treat yourself to fantastic wines, brews, and spirits. Take in the sensory delights of Grand Rapids many restaurants.
Plus $1 from Restaurant Week meals sold during this year's event will be donated to the Secchia Institute for Culinary Education Student Scholarship Fund at the Grand Rapids Community College. Make your reservations now!
Infomacíón acerca de Restuarant Week disponible en Español.
As Grand Rapids prepares for Restaurant Week 2015 , it's always great to see what magic local chefs are working on area fruits, vegetables, and meats. Restaurant Week GR is purposefully placed in...
There is a collective excitement as Grand Rapidians flip their calendars to August and chefs all over town put the finishing touches on Michigan-grown menus. These special menus are for...
Interested in participating in Restaurant Week? Contact Kate Herron at email@example.com.