Feed aggregator
Wouter Verhelst: DNSSEC enabled for my domains
If you're using the DNSSEC validator and you're reading either my blog or Planet Grep, you may have noticed that the validator icon went from the gray "undefined" version to the green "validated" one. That's right, I have working DNSSEC now—with thanks to Philip for doing all the hard work.
Drupal Association News: Guest blog: Using Campus Tours to spread Drupal in the Philippines
Guest blogger Gemma Rose Devanadera tells of the inspiration, results, and future plans for Drupal Campus Tours in the Philippines.
Personal blog tags: guest blogcommunityPhilippinesgroups.drupal.org frontpage posts: DrupalCamp Austin 2013 schedule is up. Register today!
DrupalCamp Austin is back! This is the event to learn everything about Drupal, the world's best open-source content management system and web framework. We'll cover everything from beginner-level site building to advanced design and development.
Register today before tickets sell out! Schedule- Friday, June 21: Workshops, Web Leadership Day, and Geek Trivia Night (register separately)
- Saturday, June 22: Sessions, BoFs, keynote, workshops, and after-party
- Sunday, June 23: Sessions, BoFs, and keynote
- When: June 21-23
- Where: Austin Convention Center
- Price: $65
- Schedule
Web Leadership Day is a new event that gathers voices from across the web for a single day of deep dives into the business and future of the web. We're calling on all tech companies — from agencies and dev shops to startups — to come together for a day of curated talks and Earth-shattering enlightenment.* We all work on the web. Let's make a better web, together.
This is a free event organized by DrupalCamp Austin. You do not need to register for DrupalCamp to attend — but we certainly encourage you to. :)
Register for Web Leadership Day!
*Earth-shattering enlightment not guaranteed.
AttachmentSize dca2013.png18.19 KBGábor Hojtsy: Drupal 8 multilingual tidbits 1: language first
The Drupal 8 Multilingual Initiative was announced on May 9th, 2011 - 25 months ago. Since it's inception, the heroic efforts of people on the initiative resulted in about 400 issues resolved but there are still about 300 open to resolve. We have made huge advances in terms of multilingual support in Drupal 8 thanks to all these changes and you can still help to make it perfect.
I'd love to highlight some of the great improvements that we made to make you excited about what is coming and point out some related places where you can still help to perfect what we have so far. This is number one in a series of short posts to discuss these improvements.
Language first in the installerDrupal 8 makes language occupy the prominent first step in the installer. And compared to Drupal 7 where you were presented with a wall of textual instructions as to how to locate and download a translation file, place into a specific directory and reload the page, Drupal 8 comes with the realization that these are all automatable tasks. So we show you about a 100 languages to choose from to install Drupal 8 in.
The new Drupal version also comes with highly improved browser based language detection capabilities, so it will attempt to automatically identify your preferred language for this installation based on what your browser tells us. So in most cases, you'll likely just hit the button to continue and not think much about this.
We not only present you with the list of languages, we also download and import the translations to your system proper. So all the steps you did manually before are now automated. The installer can also fully show up in right to left languages, such as when picking Arabic.
Also, if you pick a foreign language here, English will not be among your site's languages anymore either. Drupal 8's assumption is that if you install in a foreign language, you likely want a foreign language website without English showing up at all kinds of places as an option. Compared to Drupal 7 where English was not possible to remove.
Drupal Commerce: Commerce Module Tuesday: Commerce Product Add-on
Welcome to another Commerce Module Tuesday! Today we are looking at Commerce Product Add-on, maintained by Matt Robison who is the Vice President of Louisville Web Group. While I was at Drupalcon Portland, I was approached by two different individuals looking to do something that this modules makes very easy: Add a product as a checkbox on the add-to-cart form for another product.
Drupalize.Me: Drupal Dev Days and the Race to Code Freeze
During the week June 24th a mass of Drupal folks will converge on Dublin, Ireland for Drupal Dev Days. This year, in addition to the three days of DrupalCamp that is happening (June 28-30), there is also a week of sprints leading up to the camp, and to the Drupal 8 code freeze deadline. This is it. If it's going to be in Drupal 8, it needs to happen before the end of June.
Steve Kemp: Migrations and changes
So I'd previously talked about migrating machines. From having one virtual machine running "mail" + "web" + "stuff" I've now got three hosts:
- ssh.steve.org.uk
This is supposed to be used solely for shell access, email reading, IRC.
Sadly it still hosts one website, the web interface to my Mercurial repositories. This can't be moved without moving the repositories which is a step too far. Although I don't particularly want people browsing my code/changes I do want them to be able to clone them. If I could get anonymous-SSH checkouts working, sanely, then I'd be happy, but I don't see how to do that.
- skx-web
This hosts all my websites except for two.
The two that are excluded are my mercurial repositories, which still lives on ssh.steve.org.uk, and my blogspam service.
- blogspam
This runs my blogspam.net service.
I wish I could retired this, since it uses cruftly XML::RPC. I'd rather see a RESTful application sending/receiving JSON.
Sadly I can't kill it without annoying a lot of people. So it must remain.
I chose to add the blogspam guest, because that service does really take over an IP, and it just seemed simplest to move it to one machine. As a quick hack both http://repository.steve.org.uk & http://blogspam.net/ run under Apache. Although the other websites run under their own UID with thttpd + my proxy.
Now time to change the subject entirely. I've recently joined gym. Which isn't as horrible as I thought it might be, though as a matter of policy I refuse to go on any of those fancy running/jogging machines.
The first three weeks I just alternated between the cycling machines and the rowing machines. Initially ten minutes on each, then twenty, then thirty.
Now I'm being all brave and adventurous, using new machines and pieces of equipment.
Writing this I've got a dull ache in both my arms, after doing seated-dips with 100Lbs. So I guess I'm starting to make progress.
No specific goals in mind, but I've been paying slightly more attention to my diet over the past month and I think if I'm a "little fitter" and have "slightly nicer arms" then I'll be happy enough.
I've no desire to go all anal and count calories, or give up chocolate and beer. So it is almost hard to explain why I'm going, but .. it is fun, and watching the numbers change is fun too.
I'll probably post more about this in the future.
Blink Reaction: Part 2 - Prioritize Adoption for Enterprise CMS Success
In the first post in this series we talked about the importance of adoption and how it can often be an afterthought in the process of building world class open source solutions. We delved into the topic of identifying your audience. That was a huge step in the right direction. For more information on identifying your audience see my blog from last week. Today, lets delve into the remaining 5 steps in the process starting with understanding the logistics and geography of your audience and constituents.
2. Understand logistics and geography.
Digett: DrupalCon Portland: It's About the Community
While DrupalCon Portland ended nearly three weeks ago, some of us are just now decompressing from the experience. Spending a week with 3,300 attendees learning about and contributing to Drupal was both inspiring and instructive.
Drupal Easy: DrupalEasy Podcast 107: E%$#&prise
Mike Kadin (mkadin), creator and head-referee from ModuleOff.com, joins Andrew Riley, Ryan Price, and Mike Anello to talk about his competitive Drupalizing web site, WYSIWYG in Drupal, the E#$@!prise, as well as some great picks of the week.
Paul Booker: Creating a custom views access plugin
If you need to create a custom views access plugin the reason for this will be to allow you to add custom logic to protect the access to your view.
Let's say you need finer access control to a view than roles and permissions. For example let's suppose you are storing properties on a user object which determine if certain user can see certain views independent of their roles. What we need to do, is to configure our views correctly with a views access plugin.
Working against the Views API:
You could load the user in the template file of your view and check for the property but this is not what we want to do. While this would work you would have to repeat this process in every template and you would not be able to configure it. It is also difficult to control and would result in a lot of maintenance.
Working with the Views API:
Views has this beautiful architecture in place that allows you to extend its base classes. If you start writing a custom views plugin the best thing to do is to examine another plugin of the same kind. For example check out the permissions access plugin. (tip: a good way to write plugins is to look at examples from views or other module implementing the same system)
The file:
/views/plugins/views_plugin_access_perm.inc
This is a clear example that we can use to start with. You can see there are some essential functions to create this plugin. Lets check our example to see which ones.
Create a file called mymodule_access_plugin.inc in the root of your custom module.
/** * Access plugin that provides property based access control. */ class mymodule_access_plugin extends views_plugin_access { function summary_title() { return t('Custom access plugin'); } // summary_title() /** * Determine if the current user has access or not. */ function access($account) { return mymodule_access($account); } function get_access_callback() { return array('mymodule_access', array()); } }
For the custom views plugin you need three functions. The summary_title to return the title. This is what you will see when you go to the views interface and you select your plugin. It will appear next to role based and permission based access options in the views interface.
Then we have our access method. Finally you must declare to views your custom access callback. You can pass arguments if needed using the array.
Now that we have our access plugin file, with our class, we need to tell views that we have created a new access plugin.
Two things need to be done. First in the info file you must declare the new file.
name = mymodule description = Custom code core = 7.x package = custom dependencies[] = views files[] = mymodule_access_plugin.incThen you need to implement a hook_views_plugins to tell views that there is a new custom access plugin available ..
/** * Implements hook_views_plugins() */ function mymodule_views_plugins() { $plugins = array( 'access' => array( 'test' => array( 'title' => t('Custom access check'), 'help' => t('This is a custom access plugin'), 'handler' => 'mymodule_access_plugin', 'path' => drupal_get_path('module', 'mymodule'), ), ), ); return $plugins; }.. and finally our access callback ..
function mymodule_access($account = NULL) { global $user; $access = false; $account = user_load($user->uid); $optionfield = field_get_items('user', $account, 'field_option'); //In the future more values are possible so this is extendible //For now only +eur exists $allowed_values = array('eur'); $options = explode('+', $optionfield[0]['value']); foreach ($allowed_values as $allowed_value) { if (in_array($allowed_value, $options)) { $access = true; } } return $access; }Here we are checking on certain values that are stored in a field of a user of certain role. When a user has these properties we want the callback to return true. This will grant access.
Now that you have this plugin you can start using it in all your views by going to the interface access section and select the plugin.
Tags: viewsaccesshook_access_pluginhook_views_pluginsdrupalplanet TweetPronovix: Walkthrough.it T-shirts debut at DrupalCon Portland
We have finished the design and production of the first round of Walkthrough.it T-shirts, and they have already debuted at DrupalCon Portland.
The design concept pays homage to Star Wars and reflects on the popular Death Star funding campaign on Indiegogo. The front pictures the walkthrough Luke is going through to launch the Proton torpedoes that eventually destroy the Death Star, while the back sheds light on the decision of backers choosing our project over the ambitious Death Star campaign.
Daniel Pocock: Interrupt-free computing
On debian-devel, there has been a discussion about the security issues of "spontaneously" appearing popups demanding the root password.
There is a much more general issue related to this: computing without interruptions.
Most of us have probably seen some friend or acquaintance with a (usually non-Linux) PC that is constantly beeping and flashing with chat notifications, new email popups, Adobe update this, Java update that, etc. In one recent case I came across somebody who had experienced a dramatic drop in his productivity as a consequence - giving him a laptop with a freshly installed copy of Linux made a dramatic difference to his work.
I can already hear people insisting that security trumps everything (which isn't an original argument either) and that popups can't be avoided.
A search on the web for "computing without interruptions" reveals users have a particular distaste for these things appearing while watching a video. Websites responding to that complaint fill the search results. With many types of interactive real-time content (video, WebRTC phone/video calls and so on) deployed within browsers, it is even more important for UI designers to contemplate when it is not appropriate to interrupt a user and to do everything possible to avoid interrupting the user.
Preparing for disasterOn the other hand, just ignoring security updates and not telling the user their disk is filling until 0 bytes remain available could only shift the problem down the road (from constant annoyance to periodic crisis).
That said, sometimes you can still fill the disk very suddenly (especially with fast SSDs) and rather than relying on popups to keep users away from the precipice, applications (particularly the core desktop and daemon processes) could be tested more regularly to ensure they remain resilient in full disk situations.
Managing information overloadPopups are just part of a wider problem of information overload. There are emails too: some applications, such as Drupal, will send daily or weekly emails to a user if their system is not up to date. For many virtual-hosted sites, this starts to resemble a small flood. There is a flaw in this design: applications are competing for attention by sending more and more emails and popups or making them more annoying (e.g. the security updates in Debian 6 were ignorable popups in the top right-hand corner of the screen, Debian 7 displays a big password prompt in the middle of the screen).
The solution would be to develop a mechanism for unifying, de-duplicating and then prioritising these information/event flows. Some fault alerting systems already do this for their own events - these are niche solutions that aren't always applicable to the average PC-owner, although the principles are well tested. Some email organisation tools have similar features, but only for email. I'm not currently aware of any solution that synthesizes such an experience for all possible information sources.
Setting prioritiesOne well-read work on this subject in the business world is The 7 Habits of Highly Effective People (Stephen R. Covey, 1989). Of particular interest for the problem at hand is the priority matrix (borrowed from the Eisenhower Method):
The left column, Urgent items, typically must be executed by a certain date (e.g. buying a gift before a birthday or installing a new SSL certificate before the old one expires). A security update or Acrobat reader update does not have this same characteristic. Under this model:
Urgent Non-urgent Important Replace SSL certificateBuy birthday gift Security update
Run backup job Not important Register for conference before deadline for free gift Non-security update for Acrobat reader
Covey even released an Outlook plugin, Plan Plus to help people organise their tasks (and their lives) using his methodology. Unfortunately it is closed-source software with a terrible set of ratings on Amazon - this review from a customer stands out:
"My take is that Franklin does not consider robust software nor customer support to be either Urgent or Important."
Could this be replicated more successfully with an open-source plugin for Mozilla Lightning or a similar productivity tool, and could the concept be extended across the range of data sources, including email, calendar items, system notifications and more to provide a unified approach to both the computing platform and general productivity (real-life) time management?
Would this help solve the same problem in a more effective manner? In other words, would such an effort to help users integrate the demands of technology with the other demands of life make them more likely to keep their systems up to date?
The wider community experienceGoing beyond the desktop/user experience, could this model be extended to automatically integrate external tasks, such as handling bug reports, moderating mailing lists and other slightly tedious things that have to be given regular attention to keep the free-software world moving along smoothly?
Managing down-timeFor people who work in computing, there is almost no down-time any more. Even when on holiday, checking in for a flight might involve navigating through a buggy wifi access control system and an annoying set of advertisements from your low-cost airline as you try to print a boarding pass. These things often trigger thoughts about similar issues on client projects. Glancing at your email to find the booking number could awaken thoughts of a whole lot of projects you had tried to put out of your mind for a week.
This is another area where excessive popups and emails can only compound the problem. Who really wants to download and install security updates while on holiday using an intermittent wifi connection?
Managing all these events through a common mechanism may also finally make it possible to have an "ordinary user" experience with your PC. In practice, this might mean being able to view information/events through a time-of-day filter or "holiday mode" - and only on demand.
A worthy design goal?Would any free software operating system make it a design goal to give their users a 100% interrupt-free experience?
Of course there would still be things like chat notifications - but those would only be possible when a user has signed-in to a chat application. The distinction for the interrupt-free experience would only need to apply to default system behavior and not to every application.
Petter Reinholdtsen: Fixing the Linux black screen of death on machines with Intel HD video
When installing RedHat, Fedora, Debian and Ubuntu on some machines, the screen just turn black when Linux boot, either during installation or on first boot from the hard disk. I've seen it once in a while the last few years, but only recently understood the cause. I've seen it on HP laptops, and on my latest acquaintance the Packard Bell laptop. The reason seem to be in the wiring of some laptops. The system to control the screen background light is inverted, so when Linux try to turn the brightness fully on, it end up turning it off instead. I do not know which Linux drivers are affected, but this post is about the i915 driver used by the Packard Bell EasyNote LV, Thinkpad X40 and many other laptops.
The problem can be worked around two ways. Either by adding i915.invert_brightness=1 as a kernel option, or by adding a file in /etc/modprobe.d/ to tell modprobe to add the invert_brightness=1 option when it load the i915 kernel module. On Debian and Ubuntu, it can be done by running these commands as root:
echo options i915 invert_brightness=1 | tee /etc/modprobe.d/i915.conf update-initramfs -u -k allSince March 2012 there is a mechanism in the Linux kernel to tell the i915 driver which hardware have this problem, and get the driver to invert the brightness setting automatically. To use it, one need to add a row in the intel_quirks array in the driver source drivers/gpu/drm/i915/intel_display.c (look for "static struct intel_quirk intel_quirks"), specifying the PCI device number (vendor number 8086 is assumed) and subdevice vendor and device number.
My Packard Bell EasyNote LV got this output from lspci -vvnn for the video card in question:
00:02.0 VGA compatible controller [0300]: Intel Corporation \ 3rd Gen Core processor Graphics Controller [8086:0156] \ (rev 09) (prog-if 00 [VGA controller]) Subsystem: Acer Incorporated [ALI] Device [1025:0688] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- \ ParErr- Stepping- SE RR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- \ <tabort-><mabort->SERR- <perr- intx-="INTx-" latency:="Latency:"><unassigned> [disabled] Capabilities: <access denied="denied"> Kernel driver in use: i915The resulting intel_quirks entry would then look like this:
struct intel_quirk intel_quirks[] = { ... /* Packard Bell EasyNote LV11HC needs invert brightness quirk */ { 0x0156, 0x1025, 0x0688, quirk_invert_brightness }, ... }According to the kernel module instructions (as seen using modinfo i915), information about hardware needing the invert_brightness flag should be sent to the dri-devel (at) lists.freedesktop.org mailing list to reach the kernel developers. But my email about the laptop sent 2013-06-03 have not yet shown up in the web archive for the mailing list, so I suspect they do not accept emails from non-subscribers. Because of this, I sent my patch also to the Debian bug tracking system instead as BTS report #710938, to make sure the patch is not lost.
Unfortunately, it is not enough to fix the kernel to get Laptops with this problem working properly with Linux. If you use Gnome, your worries should be over at this point. But if you use KDE, there is something in KDE ignoring the invert_brightness setting and turning on the screen during login. I've reported it to Debian as BTS report #711237, and have no idea yet how to figure out exactly what subsystem is doing this. Perhaps you can help? Perhaps you know what the Gnome developers did to handle this, and this can give a clue to the KDE developers? Or you know where in KDE the screen brightness is changed during login? If so, please update the BTS report (or get in touch if you do not know how to update BTS).
Rogério Brito: working with cvs via git
meta title="Working with CVS via Git" meta date="Tue, 11 Jun 2013 04:49:56 -0300"
The easiest way of using git locally to commit to a CVS repository is to have both a git clone of the CVS repository and a CVS checkout of your repository.
Initial steps that Work for Me (TM)Create your git clone of the CVS repository:
git cvsimport -v -a -A /tmp/lame-authors.txt -k -m -d \ :ext:rbrito@lame.cvs.sourceforge.net:/cvsroot/lame lame
The command above will create your clone of the CVS repository in the current directory which we suppose, for the sake of this discussion, is /tmp/gitified.
If want to specify a directory different than what you're in, then you should add the option -C /path/to/git/repository.
Create a checkout of the CVS repository for CVS work stuff (I'm checking out things under /tmp):
cvs -z3 -d:ext:rbrito@lame.cvs.sourceforge.net:/cvsroot/lame checkout lame
This will create your CVS checkout on the directory /tmp/lame, assuming that you are working under /tmp, as I do.
Go to your git clone (/tmp/gitified) and start hacking, committing, etc.
When it is time to send your patches to the CVS repo, you have to:
export GIT_DIR=/tmp/gitified/.git cd /tmp/lame git cherry origin master | sed -n 's/^+ //p' | xargs -l1 git cvsexportcommit -c -p -v
This will automatically check in all the commits that you have made in step 3.
Continuing your work afterwards- First, discard your commits in your git repository, so that you don't get further problems with git cvsimport.
Update your git repository with the current contents of the CVS repo:
cd /tmp/gitified git cvsimport -v -a -A /tmp/lame-authors.txt -k -m -d \ :ext:rbrito@lame.cvs.sourceforge.net:/cvsroot/lame lame
Update your CVS repository with the current contents of the CVS repo too:
cd /tmp/lame cvs update
Of course, I would prefer a simpler, leaner workflow. If you happen to have one, please let me know.
Ben Hutchings: Updating the Linux kernel for Debian 7.1
The first point release for Debian 'wheezy', 7.1, is due next weekend. The Linux kernel should be updated with:
- Stable release 3.2.46, fixing many bugs and adding support for various USB WWAN, serial and Bluetooth devices
- DRM drivers from stable release 3.4.47, fixing various bugs and adding support for AMD's new 'Richland' integrated GPUs
- RT stable release 3.2.45-rt66
- Support for Cypress PS/2 multitouch trackpads
- Miscellaneous bug fixes
The new package, version 3.2.46-1, is available for most architectures in stable-proposed-updates. Please test it now if you can, so we can catch any serious regressions.
comm-press | Drupal in Hamburg: Thresholds, Code Freeze, Getting Features into Drupal 8, Criticals and Majors in Drupal
Instead of doing 2 things myself, I'm doing one and trying to make it possible for X others to do the same.
(OK, I might be doing more than one thing, but the sentiment is the same. grin)
I've been making a little noise about change records; posting instructions and encouraging people to take a stab at drafting the first versions for some change records. Why?
For many reasons, but one big reason is there are a few features I want to see get into Drupal 8 still.
Features?! Yep. There is still some hope of getting features in. I'm hoping for Add configuration translation user interface module in core, some issues from Refactor account workflow, ... and I'm sure other cool things.
...there are a lot of small, non-destabilizing features that would make Drupal 8 better. Especially for the kinds of iterative improvements that we would allow into 8.1 or 8.2, it doesn't make sense to hold those up until then, if we're able to get them into 8.0 without it delaying the 8.0 release date. To help with this goal, catch and I have discussed a plan for allowing some features to continue to be committed to core up until RC1, providing we are under thresholds.-Dries from Code Freeze and Thresholds
More up-to-date information on where we are in the release cycle is in the Drupal.org release cycle page. The code freeze (API freeze) date for Drupal 8 is July 1, 2013... July 1 is quickly approaching.
What are the threshold numbers? We want to be below 15 critical bugs, 100 major bugs, 15 critical tasks, 100 major tasksThere is the possibility for new features, when issues are under these counts:
- Critical bugs, across D7 and D8: no more than 15 [We have 35, 0 RTBC]
- Major bugs, across D7 and D8: no more than 100 [We have 156, 8 RTBC]
- Critical tasks, across D7 and D8: no more than 15 [We have 39, 0 RTBC, 12 need change notification]
- Major tasks, across D7 and D8: no more than 100 [We have 156, 5 RTBC]
(Taken from Drupal core issue count thresholds docs page on d.o.)
What can people do?We have a support system in place to help people and make that experience rewarding for the project and for the individual. Contributor task document pages help people figure out how to do what needs to be done.
You don't have to do a bunch, just picking one thing will really help. It is not hopeless!
Take for example change notifications. We really are making a dent in them already. Just in the last week, people have made 21 change records. Thanks ParisLiakos, larowlan, Gábor Hojtsy, Shyamala, tim.plunkett, fago, Wim Leers, patrickd, swentel, andypost, chx, Berdir!
- needs change notification 12 critical tasks need change notification and the Contributor task: Write up a change record for a Drupal core issue document helps anyone who has not make a change record figure out how to go through the process of helping make a change record.
- needs review 77 of the threshold issues need review and the Contributor task: Review a Drupal core patch document helps people get started reviewing, has a link to more detail on how to do reviews and xjm's review guide has tips too.
- needs manual testing 9 need manual testing and the Contributor task: Manually test a patch for a Drupal issue document helps figure out how to test, and also how to write up the results for posting back to the issue queue.
- needs accessibility review 4 need accessibility review and the Contributor task: Manually do accessibility testing of a patch for a Drupal issue document includes tools to help people get set up for accessibility reviews.
- needs issue summary update 84 need issue summary update and the Contributor task: Write an issue summary for an existing Drupal Core issue document gives a strategy for tackling issue summaries. Anyone can edit the issue summaries and it is more than just pasting in the html from the template, it is also making sure the information is there regarding the motivation, remaining tasks, etc. Another thing that helps issues, is adding a steps to reproduce, related issues and follow-up issues section to the issue summary. Issue summary updates are an investment, and take a bit of time, but they are worth it and are key to getting things moving in Drupal 8 (See: xjm's Help!).
- needs tests 49 need tests and the Contributor task: Write an automated test for a Drupal core bug document is a good starting point. Also helpful are: simpletest documentation for a start on using SimpleTest and xjm's presentation from MWDS on tests.
Pick an issue you want to work on, then add a comment on the issue saying what task you are about to start doing. (Typically the assigned field is only used when someone is actively making a new patch for an issue. For other tasks, like reviews, drafting change notices, issue summary updates, etc, making a comment on the issue is fine.)
Have questions?It's ok to ask questions in a comment on the issue. It works well because people "following" the issue will see your question and can help you out.
Want real live support, from humans?!From the irc bot factoid: core mentoring?
Want to contribute to Drupal core? Come to core contribution mentoring! Two timeslots, (Tuesdays 02:00 UTC and Wednesdays 16:00 UTC) in #drupal. More info: http://drupal.org/core-mentoring, http://modulesunraveled.com/podcast/003-jess-and-core-office-hours-modules-unraveled-podcast. | Twitter: @drupalmentoring | Create an account at http://drupalmentoring.orgOr try the #drupal-contribute irc channel any hour of the day.
Chapter Three: Put Some Thought Into Your Files Folder Architecture and The Cats of The Web Will Purr With Thanks.
Recently, I had the special fun of migrating a new client’s site over to a new host. Everything was going smoothly and quickly until I got to the Files folder. It contained a 4-gigabyte hodgepodge of images, thumbnails, pdfs, known site backups and unknown site backups (Yes, unknown! I don't count the WordPress version of the site from six years ago as a "known about" backup). It got me thinking about one part of Drupal that I think many take for granted: The Files system. Drupal is three-part system: Database, Code and Files. When planning a site architecture, often the Files folder gets treated like the red-headed step child of the three; forgotten, neglected and rather ignored.
However, that’s not the way it should be. Drupal is a content management system. No matter what type of content, whether doc, image, or a PowerPoint on how many kittens and puppies it takes to make a good calendar, Files are just as much content as the text describing said cute kittens and puppies. And this type of content is much easier to manage then most people think.
I’m not talking about the Media module, a hopeful dream of the Drupal world that I still believe in and could still use some more loving. I’m just talking about what comes after "sites/default/files/..." When writing new content, we often upload files and images along with our post about how our cat fell asleep in the kitchen sink. Instead of just having all those images and files placed first level in the Files folder, why not have them go into a "blog" folder or a "fluffy" folder. That way we don’t need to look at 10,000 images upon opening the Files folder.
When adding a file upload field to a content type, you can set a default path to house the files that will be uploaded. Using tokens, you can create default path structures that handle all the folder architecture for you. I like to separate folders by content type, year/month/day uploaded, taxonomy term, and/or type of file. An example token setup for a default path may look like this: [node:content-type]/[node:created:short] or [node:content-type]/[node:nid].
The benefit is that whenever I go into the Files folder, I have instant information about the files contained inside. An image with the name of 348jkdldhisoj.png is not helpful to me, but if it’s located at say "sites/default/files/blog/may2013/img/cat_photos/348jkdldhisoj.png," then I have a good idea of what that image is. If you are naming a folder without the use of tokens, be descriptive as to what that folder actually contains. Don’t label it “images” and expect the world to know what that universally means.
The point I’m making is you don't have all of your files on your computer located on your desktop, do you? No, you have them in human-readable, ordered folders. When I’m looking for my legally downloaded episodes of Family Guy, I don't want to have to look through a folder that also contains clips of my sister’s cat getting scared by his own image in the mirror (although that one always makes me laugh when I come across it). So put the same thought into your Drupal sites/default/files folder. Your site, the cats of the web, and your local Drupal support guy will appreciate it.
baxwrds: Drupal 7 'Add to Cart' Rule for Ubercart
On a current site in development I am using Ubercart to provide a renewable subscription service. To make the user experience clean, I wanted to protect the user from going 'shopping' to add their subscription. To do this I decided to use a rule to add the product to the user cart when the user is created by an administrator or when the subscription is cancelled or fails payment. I tried the Ubercart Rules module, but this is mainly for dealing with orders and not carts, and did not contain the needed add to cart rule.
Petter Reinholdtsen: Third alpha release of Debian Edu / Skolelinux based on Debian Wheezy
The third wheezy based alpha release of Debian Edu was wrapped up today. This is the release announcement:
New features for Debian Edu 7.0.0 alpha2 released 2013-06-10
This is the release notes for for Debian Edu / Skolelinux 7.0.0 edu alpha2, based on Debian with codename "Wheezy".
About Debian Edu and Skolelinux
Debian Edu, also known as Skolelinux, is a Linux distribution based on Debian providing an out-of-the box environment of a completely configured school network. Immediately after installation a school server running all services needed for a school network is set up just waiting for users and machines being added via GOsa², a comfortable Web-UI. A netbooting environment is prepared using PXE, so after initial installation of the main server from CD, DVD or USB stick all other machines can be installed via the network. The provided school server provides LDAP database and Kerberos authentication service, centralized home directories, DHCP server, web proxy and many other services. The desktop contains more than 60 educational software packages and more are available from the Debian archive, and schools can choose between KDE, Gnome, LXDE and Xfce desktop environment.
This is the third test release based on Debian Wheezy. Basically this is an updated and slightly improved version compared to the Squeeze release.
Software updates
- Iceweasel was updated from 10 to 17. (DSA 2699-1)
- Updated libxv (DSA-2674), libxvmc (DSA-2675), libxfixes (DSA-2676), libxrender (DSA-2677), mesa (DSA-2678), xserver-xorg-video-openchrome (DSA-2679), libxt (DSA-2680), libxcursor (DSA-2681), libxext (DSA-2682), libxi (DSA-2683), libxrandr (DSA-2684), libxp (DSA-2685), libxcb (DSA-2686), libfs (DSA-2687), libxres (DSA-2688), libxtst (DSA-2689), libxxf86dga (DSA-2690), libxinerama (DSA-2691), libxxf86vm (DSA-2692), libx11 (DSA-2693), chromium-browser (DSA-2695), gnutls26 (DSA-2697), wireshark (DSA-2700), krb5 (DSA-2701), telepathy-gabble (DSA-2702) and subversion (DSA-2703).
- Switched xrdp on thin client servers to use tightvncserver instead of xvnc4.
- Now install software oscilloscope xoscope by default.
- Now install music tools gtick, lingot and pianobooster by default.
Other changes
- The subnet-change script is now able to change all files needing a change on the main-server when changing the IP network used.
- Updated translation of the installation.
- New Romanian translation.
- Fix security problem causing root and first user password to no longer show up in /var/cache/debconf/templates.dat.
- Fix roaming workstation setup (Closed in libpam-mklocaluser/0.8, libpam-mklocaluser/0.8~deb7u1: #706753: libpam-mklocaluser: Fail to create local user during first login).
- Made roaming workstation setup more robust in non-Debian Edu environments.
- New script debian-edu-bless to transform a Debian installation to a Debian Edu profile.
- Adjust Iceweasel setup to improve performance when $HOME is on NFS.
- More testsuite tests.
- Make automatic proxy configuration more robust.
- Adjust GOsa² GUI configuration.
- Update thin client and diskless workstation setup to work with LTSP in Wheezy.
- Diskless workstations now run out of the box -- no need to set them up with GOsa².
- Update IMAP server setup.
- Fix login into Skolelinux Backup Tool (Closed in slbackup-php/0.4.4-1: #700257: slbackup-php: Fails to submit correctly entered password).
Known issues
- DVD binary and source images are not yet ready.
- No mass import of user account data in GOsa (ldif or csv) available yet (Open in gosa/2.7.4-4: #698840: gosa-plugin-ldapmanager: missing import feature).
- Missing artwork for the KDE desktop (and probably a few others).
- KDE Debian submenu lacks icons (Closed: #502192: menu-xdg: invents own icon names instead of using existing). This will remain unfixed.
Where to get it
To download the multiarch netinstall CD release you can use
- ftp://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso
- http://ftp.skolelinux.org/skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso
- rsync -avzP ftp.skolelinux.org::skolelinux-cd/wheezy/debian-edu-7.0+edu0~a2-CD.iso .
The MD5SUM of this image is: 27bbcace407743382f3c42c08dbe8178
The SHA1SUM of this image is: e35f7d7908566cd3075375b3721fa10ee420d419
How to report bugs