Agrégateur de flux

Dirk Eddelbuettel: RcppEigen 0.3.2.5.0

Planet Debian - jeu, 16/07/2015 - 02:59

A new release of RcppEigen arrived on CRAN and in Debian yesterday. It synchronizes the Eigen code with the 3.2.5 upstream release. Once again, Yixuan Qiu did most of the heavy lifting in one very nice pull request, and I added some minor updates to keep R CMD check --as-cran happy.

The NEWS file entry follows.

Changes in RcppEigen version 0.3.2.5.0 (2015-07-11)
  • Updated to version 3.2.5 of Eigen

  • Fixed some incorrect error messages stemming from Eigen code.

  • Updated package to current R CMD check standards.

Courtesy of CRANberries, there is also a diffstat report for the most recent release.

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

Catégories: Elsewhere

Drupal @ Penn State: ELMSLN - Coming to a camp near you

Planet Drupal - mer, 15/07/2015 - 23:36

I was made aware that it’s been close to a year since I actually did a demo of the reason that I contribute so many modules to drupal. org. For those that don’t know, the reason I exist is a project called ELMS Learning Network. It is a Drupal 7 based deployment methodology that takes the many parts of an LMS and fragments them across a series of drupal distributions.

Catégories: Elsewhere

Cheeky Monkey Media: Into the Fire with Foundation and The Big “D”rupal

Planet Drupal - mer, 15/07/2015 - 23:26

Cheeky Monkey broke my Foundation cherry.  It’s been a pleasurable experience.

Coming from frameworks like Zen Grids (+ Drupal Theme) and Susy2 Grids, I can appreciate (and need) some major control over the grids.  I have to say though, foundation does a bang up job of letting you control the ‘big stuff’ with ease, and still being able to get down into the nitty griddy(see what I did there?) -- and change what you like without too much fuss.

Drupal, Drupal he’s our man.

And then, oh yeah, there’s a Drupal theme for it!  ...

Catégories: Elsewhere

Four Kitchens: Introducing Saucier

Planet Drupal - mer, 15/07/2015 - 23:11

With the first party API building tools built into Drupal 8 core, there’s been a lot of talk about building semantic APIs in Drupal; when, how, and why you should or should not. However, a commonly overlooked piece of this picture is how to go about actually consuming these APIs. And as it turns out, consuming an API, even a well designed one, can present a number of challenges. That’s why we created Saucier, a Node.js framework used to quickly create web pages from data that has been consumed from a Drupal API.

JavaScript Drupal
Catégories: Elsewhere

Matthew Garrett: Canonical's Ubuntu IP policy is garbage

Planet Debian - mer, 15/07/2015 - 21:20
(In order to avoid any ambiguity here, this is a personal opinion. The Free Software Foundation's opinion on this matter is here)

Canonical have a legal policy surrounding reuse of Intellectual Property they own in Ubuntu, and you can find it here. It's recently been modified to handle concerns raised by various people including the Free Software Foundation[1], who have some further opinions on the matter here. The net outcome is that Canonical made it explicit that if the license a piece of software is under explicitly says you can do something, you can do that even if the Ubuntu IP policy would otherwise forbid it.

Unfortunately, "Canonical have made it explicit that they're not attempting to violate the GPL" is about the nicest thing you can say about this. The most troubling statement is Any redistribution of modified versions of Ubuntu must be approved, certified or provided by Canonical if you are going to associate it with the Trademarks. Otherwise you must remove and replace the Trademarks and will need to recompile the source code to create your own binaries.. The apparent aim here is to avoid situations where people take Ubuntu, modify it and continue to pass it off as Ubuntu. But it reaches far further than that. Cases where this may apply include (but are not limited to):
  • Anyone producing a device that runs an operating system based on Ubuntu, even if it's entirely invisible to the user (eg, an embedded ARM device using Ubuntu as its base OS)
  • Anyone producing containers based on Ubuntu
  • Anyone producing cloud images (such as AMIs) based on Ubuntu

In each of these cases, a strict reading of the policy indicates that you are distributing a modified version of Ubuntu and therefore must either get it approved by Canonical or remove the trademarks and rebuild everything. The strange thing is that this doesn't limit itself to rebuilding packages that include Canonical's trademarks - there's a requirement that you rebuild all binaries.

Now obviously this is good engineering practice in a whole bunch of ways, but it's a huge pain in the ass. And to make things worse, Canonical won't clarify what they consider to be use of their trademarks. Many Ubuntu packages rebuilt from Debian include the word "ubuntu" in their version string. Many Ubuntu packages will contain the word "ubuntu" in maintainer email addresses. Many Ubuntu packages include references to Ubuntu (for instance, documentation might say "This configuration file is located under /etc/default in Debian and Ubuntu"). And many Ubuntu packages will include the compiler version string, which will include the word "ubuntu". Realistically, there's no risk of confusion by using the trademarks in this way, and as a consequence there would be no infringement under trademark law. But Canonical aren't using trademark law here. Canonical assert that they hold copyright over binaries that they have built form source, and require that for you to have permission to redistribute these binaries under copyright law you must remove the trademarks. This means that it doesn't matter whether your use of the trademarks would be infringing or not - you're required to remove them, because fuck you that's why.

This is a huge overreach. It's hostile to free software, in that it makes it significantly more difficult to produce derivative works of Ubuntu and doesn't benefit the community in the process. It's hostile to our understanding of IP law, in that it claims that the mechanical process of turning source code into binaries creates an independently copyrightable work. And in some cases it may make it impossible to create derivative works that interoperate with Ubuntu due to applications making assumptions about the presence of strings.

It'd be easy write this off as an over the top misinterpretation of the policy if it hadn't been confirmed by the Ubuntu Community Manager that any binaries shipped by Ubuntu under licenses that don't grant an explicit right to redistribute the binaries can't be redistributed without permission or rebuilding. When I asked for clarification from Canonical over a year ago, I got no response[2]. Perhaps Canonical don't want to force you to remove every single use of the word Ubuntu from derivative works, but their policy is written such that the natural reading is that they do, and they've refused every single opportunity they've been given to clarify the point.

So, we're left with a policy that makes it hugely impractical to redistribute modified versions of Ubuntu unless Canonical approve of it. That's not freedom, and it's certainly not Ubuntu. If Canonical are serious about participating in the free software community then they need to demonstrate their willingness to continue improving this policy to bring it closer to our goals. Failure to do so will give a strong indication of their priorities.

[1] While I'm a member of the FSF's board of directors, I'm not involved in the majority of the FSF's day to day activities and was not part of this process
[2] Nebula's OS was a mixture of binary packages we pulled straight from Ubuntu and packages we rebuilt, so we were obviously pretty interested in what the answer was

comments
Catégories: Elsewhere

OpenConcept: Conforming to coding standards with linters

Planet Drupal - mer, 15/07/2015 - 18:27

At the the DrupalNorth code sprint, I spent some time chatting about code linters, and how to use them to ensure your code conforms to coding standards. So, I thought I'd share the process that works for me.

If you find a better process, please blog about it and post a link in the comments!

This tutorial assumes:

  • You write or modify code in a language like PHP, JavaScript, CSS, Bash, etc.
What is a linter?

Simply put, a linter is a static analysis tool that you can run to ensure that your code is free from syntax and/or style errors.

Types of linters

To help me prioritize fixing linter messages, I usually classify linters into two types:

  • Linters that check for syntax errors, and,
  • Linters that check for coding standards violations.

I consider linters that check for syntax errors manditory, since I can't really think of a time when I would want code which contains syntax errors (in PHP and JavaScript, syntax errors cause unrecoverable fatal errors if the file containing the code is ever parsed (i.e.: white screen of death, JavaScript engine halting)). I will not commit code unless these types of linters give the okay.

I consider linters that check for coding standards violations strongly recommended (as they affect the maintainability of your code), but technically optional (because code that doesn't conform to standards still works). I try to avoid committing code that doesn't pass these linters; but there are some circumstances when that is unavoidable (e.g.: if I have to commit a contributed module, or if it's a hotfix and there's a plan to make the code more-maintainable later).

Checking for syntax errors

Many interpreted languages and shells have a syntax-checker built into them, for example:

  • php -l $file will check a PHP script for syntax errors,
  • bash -n $file will check a BASH shell script for syntax errors,
  • ruby -c $file will check a Ruby script for syntax errors,
  • perl -c $file will check a Perl script for syntax errors,
  • zsh -n $file will check a ZSH shell script for syntax errors, and,
  • fish -n $file will check a Fish shell script for syntax errors.

I wasn't able to find any built in syntax linters for JavaScript, Python, and PowerShell, but please leave a comment if you know of one.

Checking for coding standards

Github has put together a showcase of clean code linters, but note that they are limited to ones developed on Github.

As a Drupal developer, I usually use:

Since Drupal's coding standards differ slightly from other communities, all of these tools need to be configured slightly before you can use them. I'll explain how to install and configure all of these below.

Note that PHP CodeSniffer, the Drupal coding standards sniffs, and the Drupal Best Practice sniffs are used by the Drupal Automated Project Review tool.

PHP CodeSniffer

To set up PHP CodeSniffer, I'm assuming that:

  • You know how to use the command-line,
  • PHP is installed on your machine and in your PATH,
  • You have installed Composer,
  • You want to install PHP CodeSniffer globally (i.e.: for all projects), and,
  • Composer's ~/.composer/vendor/bin folder is in your PATH.
Installing
  1. Tell Composer to install PHP CodeSniffer globally:

    composer global require 'squizlabs/php_codesniffer'
  2. Install the Coder module globally, so we can use it's Drupal coding standards and best practices sniffs:

    composer global require 'drupal/coder'
  3. Register the Drupal and DrupalPractice Standards with PHP CodeSniffer:

    phpcs --config-set installed_paths ~/.composer/vendor/drupal/coder/coder_sniffer
Use

To check that a file conforms to the Drupal coding standards, run:

phpcs --standard=Drupal $file

To check that a file conforms to the Drupal best practices, run:

phpcs --standard=DrupalPractice $file Setting a default coding standard

It is possible to set a default coding standard (i.e.: so you can just run phpcs $file), but:

  • You still have to run

    phpcs --standard=DrupalPractice $file

    to check that the file conforms to best practices, and,

  • If you ever have to work on non-Drupal projects, you'll have to explicitly state:

    phpcs --standard=PEAR $file

    for php's default functionality.

Instead of setting a default, you could create an alias in your shell. For example, if you use Bash, adding...

alias drupalcs='phpcs --standard=Drupal'

... to your .bash_profile or .bashrc will let you run...

drupalcs $file

... instead of...

phpcs --standard=Drupal $file

If you use another shell, this is left as an exercise to the reader.

Fix coding standards violations with the PHP Code Beautifier (phpcbf)

PHP CodeSniffer also ships with a command called phpcbf (PHP Code Beautifier), which can fix some coding standards violations automatically. For example, to convert a file to the Drupal coding standards, run:

phpcbf --standard=Drupal $file

A word of warning: I haven't tested phpcbf very extensively, so your mileage may vary. It may eat your code and/or socks.

Ignoring files, or parts of a file

You might want to ignore coding standards violations on legacy code that the team has decided isn't worth the effort to convert to coding standards.

  • You can ignore whole files by adding a

    // @codingStandardsIgnoreFile

    comment at the top of the file, immediately after the opening PHP tag.

  • You can ignore certain parts of a file by surrounding that part of the file with

    // @codingStandardsIgnoreStart

    and

    // @codingStandardsIgnoreEnd

    comments.

See the PHPCodeSniffer advanced usage instructions for more information.

ESLint

To set up ESLint, I'm assuming that:

  • You know how to use the command-line,
  • You have installed Node.js,
  • Node.js' npm ("Node Package Manager") executable is in your PATH, and,
  • You want to install ESLint globally (i.e.: for all projects).
Installing
  1. Tell npm to install ESLint globally:

    npm i -g eslint

    On certain machines, you may need to run this command with sudo; but try it without sudo first.

Configuring

ESLint needs a .eslintrc file (and usually, a .eslintignore file as well) in your project's root directory.

If you're working on a Drupal 8 project, ESLint will just work, because it's configuration files ship with Drupal 8.0.x core. For other projects, you'll need to copy .eslintrc from Drupal 8 core.

Drupal 8.0.x core's .eslintignore probably won't work for your project, but I've put together some templates for your D7 projects, and you can also refer to the official .eslintignore documentation if you need to customize them further.

Use

To check that a JavaScript file conform to Drupal coding standards, run:

eslint $file CSSLint

To set up CSSLint, I'm assuming that:

  • You know how to use the command-line,
  • You have installed Node.js,
  • Node.js' npm ("Node Package Manager") executable is in your PATH, and,
  • You want to install CSSLint globally (i.e.: for all projects).
Installing
  1. Tell npm to install ESLint globally:

    npm i -g csslint

    On certain machines, you may need to run this command with sudo; but try it without sudo first.

Configuring

CSSLint needs a .csslintrc file in your project's root directory.

If you're working on a Drupal 8 project, CSSLint will just work, because it's configuration file ships with Drupal 8 core. For other projects, you'll need to copy .csslintrc from Drupal 8 core.

Use

To check that a CSS file conforms to Drupal coding standards, run:

csslint $file Running the coding-standards linters

Once PHP CodeSniffer, ESLint, and CSSLint have been installed and configured, you can:

  • Check that a PHP file conforms to Drupal coding standards with:

    phpcs --standard=Drupal $file
  • Check that a PHP file uses Drupal best practices with:

    phpcs --standard=DrupalPractice $file
  • Check that a JavaScript file conforms to Drupal coding standards with:

    eslint $file
  • Check that a CSS file conforms to Drupal coding standards with:

    csslint $file
A note on the history of Drupal coding standards checkers

In the past, most of us used the Coder module to check that our work conformed to the Drupal coding standards and documentation standards. However, the Coder module relied on parsing PHP, JavaScript, etc. code using regular expressions, which were hard to understand, write, and maintain, and couldn't catch all cases (because almost all programming languages are parsed with tokenizers and context-free grammars).

The move to PHP CodeSniffer started with the Drupal Code Sniffer (drupalcs) module, which eventually was imported into the Coder module's 7.x-2.x branch. It concentrated on checking PHP code only.

As the Drupal Community developed our own CSS coding standards and JavaScript coding standards, we needed a way to automatically check those too. Rather than writing our own parsers, we decided to "get off the island" and use what the wider web development community was using.

Stay tuned

Next week, I will blog about automatically running linters when you commit code, which can be pretty useful.

Topic: Primary Image: 
Catégories: Elsewhere

Promet Source: Better Debugging: Conversations with Duckie

Planet Drupal - mer, 15/07/2015 - 17:50
Learning to Strategize & Plan with Help from an Inanimate Friend

Ever wondered what the best sounding board for a debugging plan might be? If you could describe the ideal listener, which qualities come to mind?

A wish list might include: patient, calm, totally uncritical and not rushing off to the next fire that needs putting out. Hard to find someone who fits the bill, am I right? Well, terrible puns aside, our team has recently discovered someone who does fit the "bill" — as in duck bill.

Catégories: Elsewhere

Mediacurrent: Mediacurrent is Gearing Up for NYC Camp

Planet Drupal - mer, 15/07/2015 - 15:46

We all know one of the best things about Drupal is the community. If you’re looking to learn more or make connections, there’s almost always a meet-up, camp or other event nearby.  

Catégories: Elsewhere

Palantir: Saying No to Say Yes

Planet Drupal - mer, 15/07/2015 - 15:20

At DrupalCon Los Angeles I gave a Core Conversation with the unassuming title "No", where I argued that in order for the Drupal project to be successful in the long term, it needs to have a clear and explicit focus. While in part it was an excuse for me to work Grumpy Cat pictures into a DrupalCon presentation, the broader point is one that I believe bears reiterating.

Companies or projects that can't focus tend to have problems. Instead of doing one thing well, they end up doing lots of things poorly. For instance, in an infamous 2006 internal memo that became known as “The Peanut Butter Manifesto”, a senior executive at Yahoo! argued that the company lacked a cohesive vision and was spreading itself too thin trying to be everything to everybody… like peanut butter on bread. In his words, "We lack a focused, cohesive vision for our company. We want to do everything and be everything – to everyone." Sure enough, Yahoo! faltered badly with no killer feature or service and is still struggling to make up lost ground from that era.

Jack Welch, former CEO of General Electric, said it bluntly: "If you don't have a competitive advantage, don't compete." Put another way, if you aren't striving to be the best at something, it's not worth doing. Say "no" to anything where you aren't working to be the best.

What is Drupal's focus?

What do we, as Drupal, want to focus on? And how do we determine if we're doing so successfully? There's no clear, explicit consensus on that within the community. We try to support new contributors and let "rough consensus" decide what we accept or not. That is great for community building, but it doesn't scale to product management at the scale Drupal is now. There’s no way to establish a clear, explicit consensus on what the project wants to focus on (and not focus on), or how to determine if we’re doing so successfully.

Emma Jane Westby called this problem "The Danger of Having No Why" at DrupalCon Austin. Our nominal mission statement roughly boils down to "be a good CMS". What being a good CMS means, and what problems Drupal seeks to solve, is an undefined question. The mission statement doesn't provide any guidance in terms of what functionality to focus on, or what type of user to emphasize. In her words, "We need to stop pretending to be something that everyone will love."

Without a clear and explicit focus, Drupal runs the risk of becoming what Jeff Eaton has called The CMS of the Gaps: a "generic" system that tries to be "good enough" for everyone, but is not great for anyone. That in turn makes Drupal vulnerable to increasingly strong focused tools (Wordpress for blogging, PHPBB for forums, Symfony and Zend Framework and Laravel for custom business logic, etc.) that are not standing still, but getting stronger and more inter-operable every year. We can't "do everything and be everything to everyone" if we want to do that well.

What of Drupal 8?

In the five years since I last talked about its audience priorities, Drupal has made a radical shift. Drupal 8 jettisoned many old assumptions, made significant cultural changes, and reinvented itself as a more modern content management platform.

Drupal 8 shifts the emphasis more heavily toward a certain class of content management that makes a discrete distinction between usage and administration, with a strong emphasis on content strategy and platonic content.

As Drupal has become a stronger CMS, it has become a weaker pure framework. And that's fine, given the shifts in the rest of the PHP market. Tools like Symfony and Zend Framework fill that space better today, while Drupal is a far better content management platform than rolling your own on top of a bare framework. That specialization means end users still have Free Software options for different use cases, and they're better than expecting one generic program to serve every use case.

Looking at what we've accomplished in just a few short years, I am incredibly proud of the work the community has done, both technically and socially. However, the process of getting there was incredibly and unnecessarily painful. Because we didn’t have a well-defined decision-making process, we saw increased conflict and burnout within the Drupal core developer community. Quite simply, the path that we are on will not get us where we want to be.

The new core governance model is a big and positive step forward. Subsystem maintainers and the Product Owners now have greater clarity and autonomy in their roles. But those people need to not only have but communicate, and agree upon, a clear focus for both the project and for their areas of responsibility. If we're all pulling in different directions, or worse no direction, then we're back where we started. If we can all be in explicit alignment in terms of what the goals of the project are, and are not, we can all drive toward that "Why" faster and more effectively, both for the remainder of Drupal 8's development and well into the future.

Deciding Who Drupal Is (And Is Not) For

If we want to improve developer morale and avoid defaulting to the “CMS of the Gaps”, then we need to prioritize certain tasks and use cases at which Drupal needs to excel. And that means saying “no” to other tasks and use cases. That distinction needs to be one that is both explicitly made and communicated, so that we know that at the end of the day everyone is on the same page.

This means that as a project, we need to be thinking about questions such as:

  • What edge cases are just not worth supporting due to the instability they'd cause in the system?
  • What types of applications are we okay with people not building in Drupal?
  • What features are we willing to not accept, because they make the code too brittle or complex for the other use cases we support?
  • What site is just "too simple" for Drupal to be an appropriate tool?
  • What site is just "too complex" for Drupal to be an appropriate tool?
    • There are a couple of ways we can go about answering these questions:

      One would be a revision to Drupal's mission statement to make it more targeted and actionable. The current mission statement doesn't provide any guidance in terms of what functionality to focus on, or what type of user to emphasize. A mission statement should be a statement that you can always refer back to and say "does this thing support that statement? If yes, do it. If not, say no."

      Another useful tool is personas. Personas are an important part of content strategy and user experience for a website, but also an important part of product development. They can help identify the users that are being targeted, and how to serve their needs, but, by extension, those features that are not useful to an identified persona are easy to exclude.

      Take the Content Working Group's personas for Drupal.org users, for instance. They lay out five personas: Newcomer, Learner, Skilled, Expert, and Master. The purpose of Drupal.org's content is to help people move up that scale as smoothly as possible. However, the working group makes this very explicit statement:

      For further clarity and focus primary and secondary personas were determined. Primary personas are who we design for first. Each primary persona requires their own set of features and content, and the needs of a primary persona will not be met if we do not design for them explicitly. The needs of secondary personas can mostly be met by focusing on the primary personas. However, there are a few needs specific to them that we will need to accommodate for.

      Based on user interviews, Learner and Skilled were determined as primary personas. Secondary persona is Expert. Newcomer and Master are tertiary personas.

      That is, Drupal.org is "for", primarily, Learner and Skilled users, and helping those users get to the next higher level. Content decisions should be made, primarily, to support those users. Content that would help an Expert or Master user is fine, but only if it doesn't hinder the primary goal of aiding and training Learner and Skilled users.

      That provides a clear framework for deciding not only what content and information architecture to adopt, but what to not bother spending resources on and, potentially, what content to reject (at least from high-level pages) as it would confuse that primary audience.

      Similarly, we could develop "use case personas" for Drupal. These personas are not archetypical people but archetypical sites or applications. For what type of site or application do we want Drupal to be the world-recognized obvious best choice for? And in order to achieve that, for what type of site or application are we willing to say Drupal just is not going to be the best fit and likely never will be? We need to ask, and answer, both questions.

      At the very least, we need to define some metrics to define our focus. In late 2010, on the eve of Drupal 7's release, I noted that the HTML5 Working Group has a very clear metric by which it guides its focus:

      In case of conflict, consider users over authors over implementers over specifiers over theoretical purity.

      Drupal needs to define its "constituency tie-breaker" metric and apply it consistently. Favoring different users over others in some issues, but the other way around in others, does not help Drupal succeed. It just confuses both contributors and users.

      Getting to “Yes” by Saying “No”

      Focusing on a goal is how one achieves it. Focus is a prerequisite for effectively achieving that goal. And focusing on that goal means not focusing on other potential goals.

      Few people enjoy saying "no" to someone. It's difficult. It should be difficult. But that doesn't mean we can avoid doing it. Sometimes we need to say “no” in order to make an explicit decision, as opposed an implicit amorphous one. Implicit decisions are those that get made for us by us environment, by our process, or by someone else we don't know. Those kinds of decisions are rarely the best ones. To once again quote Jack Welch, "Control your own destiny or someone else will."

      Saying “no” and saying “yes” are complementary tasks. While we can’t say “yes” to every feature, by explicitly eliminating a few, we can focus our efforts, and our decision-making about what to include or not include, on those that remain. And by building a collective priority of audiences and use cases that puts us all on the same page, we can support those users at the top of our list even better than we do today.

      So as we wrap up Drupal 8 and start looking toward 8.1 and eventually Drupal 9, I put the question to everyone: To what shall we focus our efforts on, and to what we say “no”?

      Those questions cannot be separated.

Catégories: Elsewhere

Ritesh Raj Sarraf: VirtualBox 5.x

Planet Debian - mer, 15/07/2015 - 14:37

We just pushed VirtualBox 5.0.0 into Debian Experimental. It should land up on your mirrors very soon.

Since this is a major release, we are looking for some testing and feedback. If you use VBox, or have your business depend on it, please give it a test. For details about what is new in 5.x, please check out the release announcement

Categories: Keywords: Like: 
Catégories: Elsewhere

tsvenson: Create your own responsibility

Planet Drupal - mer, 15/07/2015 - 12:08

It has only gone a few days, but my first Kickstarter campaign is already delivering new learning and understanding. As I looked over what happened during the time I've been sleeping it struck me:

  • I am designing and creating my own responsibility!

 

...and I like it.

 

Digital Identity leads the way

Yes, this is clearest proof so far that my search for developing a better working Digital Identity actually works.

Many of the pieces I have thrown from my mind and out on internet are now coming back. This time with clearer structure and identifiable boundaries and guidelines to help me make the most out of previously unorganized and unstructured thoughts and ideas.

 

To name a few important thought experiments that have been developing over the last few weeks.

Have I been kickstarted already?

...think I have.

Only two nights ago I suddenly remembered that last year, when I heard Kickstarter was coming to Sweden, I started working on the campaign now launched.

That was shortly after I had written the I am a Follower and Thinker post, where I presented the idea of changing "Followers & Leaders" to the more modern and internet-adjusted version "Followers & Thinkers".

At the time I was debating the usefulness of dividing up humans in two such either/or camps as followers and leaders throughout history has made it out to be. Two camps where you can be a member of only one. Where the leader-camp is crowded, vocal and overall a very hostile well gated and guarded community to make yourself a name in.

Open has unfolded new ways

I have spent a considerable time of my years on the internet within various Open Source projects. Over the last 6+ years especially within the Drupal Community where I have met many brilliant minds to follow, think and learn from.

The last one year, or so, I have had to fight a more personal battle, occupied trying to figure out the reasons behind me not fitting into either the analog (my everydays), nor the digital (especially online) worlds.

Wherever I went, tried and started to work on something it always ended up in failures and disappointments. Wherever I poked my mind it felt I was causing more trouble than good. Not just for myself, but for practically everyone that happened to cross my line of actions.

As the number of troubles I caused grew, my health - particularly mental health - got worse. More and more I locked myself into own mind-debates, trying to figure out what the hell I was doing wrong. Nothing made any sense as:

  • All I wanted was to help
  • Make contributions to the common good
  • Collaborate to learn and make progress

 

That was back then, now I have had almost a year to think.

A year decoupled from the societally obligations and other invisible musts that humankind have created, built upon and brought with us through history and until today.

 

Make responsibility your own

No matter if this Kickstarter results in funding, it has already helped me find a better way forward.

 

 

What started out as a tidy-up exercise quickly transformed into something I passionately feel I can take responsibility for.

Something to work from to help make sense out of the world around me.

Something I also feel will work much better than anything I have put my mind to before.

It has freed my mind of many stale musts and obligations that previously drained energy and wasted time.

 

Welcome to respond to this post at www.tsvenson.com
Catégories: Elsewhere

Jim Birch: Clean Up Google Docs' HTML Programmatically

Planet Drupal - mer, 15/07/2015 - 12:00

We are often tasked with entering content into the CMS' we build for our clients.  Cleaning up the HTML of those documents is always a chore, no matter who puts them together.  I figured out that I spend most of my time stripping out what Microsoft Word, OpenOffice, and Google Docs put in there.  My desire is to have simple HTML, that will pick up the styling of my Drupal or Wordpress theme.

My searching for a better way has led me to a great script called GoogleDoc2Html created by Omar AL Zabir.  Using Google Docs and the Google Docs Script Editor, this script emails a pretty simple HTML file of the document to your Google email account associated with your Google account.

You can upload your document to Google Drive, and open/convert it with Google Docs, or create a new one.  Even with documents created with Google docs, and exported as HTML, I still have to go it and remove things like class="c0 c1" on paragraph and list items, along with a bunch of <span> tags added throughout.

Here's a screenshot of the export of a document created in Google Docs, exported as HTML, and opened in HTMLTidy run in Sublime Text:

Read more

Catégories: Elsewhere

Realityloop: 5 Beautiful & Simple jQuery snippets for Drupal

Planet Drupal - mer, 15/07/2015 - 06:16
15 Jul Jarkko Oksanen

We all know that there is an abundance of Javascript and jQuery libraries out there that provide all kinds of interesting functionalities for almost every issue you could think of. During the last few years of working on various projects I have gathered snippets, scripts and plugins that I am reusing when the need comes up. This article will demonstrate some of the better and easily re-usable ones.

1. Parallax Scrolling backgrounds

The parallax effect has been a nice thing to have for a while now and is especially useful in brochure sites or one page websites. However it has its uses in other contexts as well. I came across a simple function to apply the effect to css backgrounds awhile back. Notice that it only works on backgrounds, not on other elements.

Snippet:

  1. // Parallax scroll.
  2. $.fn.parallax = function(options) {
  3.  
  4. var windowHeight = $(window).height();
  5.  
  6. // Establish default settings.
  7. var settings = $.extend({
  8. speed : 0.15
  9. }, options);
  10.  
  11. // Iterate over each object in collection.
  12. return this.each( function() {
  13.  
  14. // Save a reference to the element.
  15. var $this = $(this);
  16.  
  17. // Set up Scroll Handler.
  18. $(document).scroll(function(){
  19. var scrollTop = $(window).scrollTop();
  20. var offset = $this.offset().top;
  21. var height = $this.outerHeight();
  22.  
  23. // Check if above or below viewport.
  24. if (offset + height < scrollTop || offset > scrollTop + windowHeight) {
  25. return;
  26. }
  27. var yBgPosition = Math.round((offset - scrollTop) * settings.speed);
  28.  
  29. // Apply the Y Background Position to Set the Parallax Effect.
  30. $this.css('background-position', 'center ' + yBgPosition + 'px');
  31. });
  32. });
  33. };

Use the speed setting to set the speed of the parallax effect.

And to simply use it:

  1. $('.background').parallax({
  2. speed : 0.3
  3. });

This is simple enough to use as a part of your Javascript scripts instead of using a library.

Jsfiddle with a gradiant to display effect. Use with an image for optimal demonstration: http://jsfiddle.net/jOksanen/7ywhcdd2/5

For more complex usage, the library that this work is based on is located at: http://pixelcog.github.io/parallax.js/

2. Floating block

Sometimes you just want to “fix” something on your website after scrolling the page for a bit. This could be a login block, your main menu or anything else.

You can use a plugin https://github.com/somewebmedia/hc-sticky to implement this behavior.

Snippet (only with the plugin installed):

$('#element').hcSticky();

D7 module that implements the behavior: https://www.drupal.org/project/floating_block

3. Smooth Scrolling to anchor links

A smooth scrolling behavior to anchor links on page is an effect that is both nice and simple. Its as simple as it sounds and gives you an animation on anchor link clicks.

Demonstration: https://css-tricks.com/examples/SmoothPageScroll/

Snippet:

  1. $(function() {
  2. $('a[href*=#]:not([href=#])').click(function() {
  3. if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
  4. var target = $(this.hash);
  5. target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
  6. if (target.length) {
  7. $('html,body').animate({
  8. scrollTop: target.offset().top
  9. }, 1000);
  10. return false;
  11. }
  12. }
  13. });
  14. });

D7 modules that implement the behavior: https://www.drupal.org/sandbox/souless/2349477 or https://www.drupal.org/project/scroll_to_destination_anchors

4. Back to top

A small effect that makes blogs and websites more user-friendly. A button that appears and scrolls back to the top of the page that you’re currently on. Especially for mobile devices its a great thing to have. This can be used in conjunction with the last snippet to create a nice smooth scroll back to the top.

Snippet:

  1. function back_to_top(selector){
  2. $(window).scroll(function () {
  3. if ($(this).scrollTop() > 50) {
  4. $(selector).fadeIn();
  5. } else {
  6. $(selector).fadeOut();
  7. }
  8. });
  9.  
  10. $(selector).click(function () {
  11. $(selector).tooltip('hide');
  12. $('body,html').animate({
  13. scrollTop: 0
  14. }, 0);
  15. return false;
  16. });
  17. };
  18.  
  19. // Call this function on your button selector.

And then you only need to create a button on your page somewhere and apply the function with the collect selector.

Back to top

And of course a bit of css to make the button fixed.

  1. .top {
  2. cursor: pointer;
  3. position: fixed;
  4. bottom: 25px;
  5. right: 25px;
  6. display: none;
  7. }

Drupal modules for the behavior: https://www.drupal.org/project/back_to_top and https://www.drupal.org/project/scroll_to_top

Demonstration and original source: http://bootsnipp.com/snippets/featured/link-to-top-page

5. Keep your footer at the bottom of the page

On many sites that I’ve worked with I’ve run to the issue that the page is shorter than the actual page. Keeping the footer at the bottom at all times can be accomplished by using perfect markup and css (https://css-tricks.com/snippets/css/sticky-footer/), but in some cases some javascript is needed due to time or markup limitation concerns.

Snippet:

  1. var footerHeight = 0,
  2. footerTop = 0;
  3.  
  4. function positionFooter(footer) {
  5. footerHeight = footer.height();
  6. footerTop = ($(window).scrollTop()+$(window).height()-footerHeight)+"px";
  7.  
  8. if ( ($(document.body).height()+footerHeight) < $(window).height()) {
  9. footer.css({
  10. position: "absolute"
  11. }).animate({
  12. top: footerTop
  13. })
  14. } else {
  15. footer.css({
  16. position: "static"
  17. })
  18. }
  19. }
  20.  
  21. positionFooter(".your-footer");

This snippet places the footer at the bottom of the page. It should be called on window resize to make the effect perfect. The snippet is a simplified version of what's presented in the link below.

Demonstration and original source: https://css-tricks.com/snippets/jquery/jquery-sticky-footer/

drupal planet
Catégories: Elsewhere

Michal &#268;iha&#345;: Wammu 0.39

Planet Debian - mer, 15/07/2015 - 06:00

Yesterday, Wammu 0.39 has been released.

The list of changes is not really huge:

I will not make any promises for future releases (if there will be any) as the tool is not really in active development.

Filed under: English Gammu Wammu | 0 comments

Catégories: Elsewhere

DrupalCon News: Training Spotlight: Developing Healthy Web Projects

Planet Drupal - mer, 15/07/2015 - 00:34

We are bringing one of our best-rated trainings back! If you missed this popular class at last year’s DrupalCon Amsterdam, here is your second chance to dive into Agile Scrum techniques and improve your project management skills.

Agile methodology has shown it stands a much greater chance of success than traditional project management. More and more organizations, including governments and some of the world’s biggest companies, are moving to adopt it. In this full-day course, we cut past the evangelism that exists around Agile, and instead focus on real-world practical training that you can put into action.

Catégories: Elsewhere

Acquia: Start Developing Sites on Drupal 8 with Acquia

Planet Drupal - mar, 14/07/2015 - 23:34

This is a part of our Drupal 8 Ready series of blog posts. Read what Dries has to say on buytaert.net. This post will be focused on our push toward Drupal 8 for Drupalists.

If you have been wondering when the right time is to start new projects with Drupal 8, you are not alone. We are approached with this question from partners and clients on a daily basis and have built up a many faceted decision tree for determining which way a project should go. Some of the questions we ask include:

  • When will you start UAT?
  • When do you plan to launch?
  • What authoring and integration functionality will you need at launch?
  • What is the category of the site you will be launching: Campaign, Brand, Intranet, Portal, Community etc.
  • Do you have developers proficient in Drupal 8?
  • Do you have Symfony developers on your team?
  • Do you intend to use modules outside of the top 50?

We have been recommending Drupal 7, but are now at the watershed moment where we can with great certainty recommend that users of our platform start building Drupal 8 sites for launch later this year. There are some projects that won’t be a fit, but if you are still trying to make this decision, it just got a whole lot easier.

Why should we use Drupal 8?
Most reading this post will know the major architectural changes baked into Drupal 8, if not I recomend a visit to this page: https://www.drupal.org/drupal-8.0. These on their own should give you some good reasons to make the move, but digging a little deeper, back-end developers should read about:

According to Morten DK, front-end developers should also be getting very excited about Twig.
In general, Drupal developers are loving Drupal 8, just ask core committer Alex Pott or the teams from Phase2, Amazee Labs and Chapter Three.

The Decision
Acquia has made a company-wide commitment to upgrade Acquia Platform and enable our Customer Success team for Drupal 8. This will ensure our customers can reap the benefits of Drupal 8 while having support to overcome its current challenges.

    Starting your Drupal 8 project now means:
  • Working with a reduced and immature module eco-system
  • Upskilling Drupal developers for object oriented programming
  • Retraining site-builders on the new authoring tools
  • Updating your continual integration scripts

We have a four-pronged approach to supporting our customers in this endeavour:

  1. We have long supported Drupal 8 on our development platform, Acquia Free, but as of this week, customers will be able to develop Drupal 8 sites on Acquia Cloud Enterprise and as of Drupal 8 RC1 we will be offering full production support. This will give customers the ability to leverage the full power of our 50 person, expert-laden, follow-the-sun support team in development, launch and maintenance of Drupal 8 sites.
  2. We have an internal tracking system for active module development among our many projects, allowing our PS, TAM and support teams to give you up-to-date information on the likely release schedule for critical modules.
  3. We have Drupal 8 enablement and migration packages available to speed up your new site development and Drupal 6/7 migration.
  4. Shortly we will be launching our updated Drupal certification programme for developers and site builders for Drupal 8.

The future of Drupal 8 on Acquia
At Acquia we are always thinking about how we can better serve developers. We have put years of research effort into developing better tools Drupal 8 and we have some very exciting releases in our short term pipeline:

  • A new Drupal 8 version of our open source drupal distribution, Lightning. This will be released by the end of the year to give developers a standard architecture and starting point for developing amazing Drupal 8 sites for enterprise (Full Disclosure: This is a shameless plug, as I am the new product manager for Lightning).
  • Upgrades of our existing products Acquia Lift and Acquia Cloud Site Factory to Drupal 8.
  • A completely refreshed automated build system in Acquia Cloud Enterprise with both new APIs and a GUI to enhance your development velocity on Drupal 8.

Thanks @EclipseGc and @webchick for inspiration. I hope this post has helped you make your decision.

Acquia is going all in!

Tags:  drupal drupal 8 developer acquia drupal planet
Catégories: Elsewhere

Drupal Watchdog: Five Ways to List Content

Planet Drupal - mar, 14/07/2015 - 22:48
Article


Drupal is exceptionally good at creating exactly the right data model for your content. As you begin modeling your content, you should also think about how you will retrieve and display, or list, the content on your site.

This article explores five ways you can list content on your site once it has been created.

  1. Curated lists of content: Menus
  2. Categorization of content: Vocabularies and taxonomies
  3. Discretionary lists of related content: Views
  4. Wayfinders for people: Breadcrumbs
  5. Content maps for search engines: Sitemaps

The experts will already see some flaws with my categories: you can use Draggable views and Nodequeue to manually curate Views, and you can use Menu block to improve the wayfinding experience. Let's stick with the broad strokes for now though.

Curated Lists with Menus

Menus allow you to manually curate a list of content which exists on your site, almost like a Choose Your Own Adventure of links (See Figure A).

Menus are typically used for areas of static navigation. For example, the primary menu of your site, a set of utility links (log in, log out, my account), or the legal section (ToS, privacy policy).

Once a menu has been created, it becomes available as a block, which you can place into any region of your site (See Figure B).

To extend the usability of the core Menu module, you may want to use one of the following contributed modules: Menu block; DHTML menu, Superfish, or Nice menus; Menu position; and Navigation 404.

Catégories: Elsewhere

Steinar H. Gunderson: wpa_supplicant 5GHz improvements

Planet Debian - mar, 14/07/2015 - 22:25

One of my more common complaints about 802.11 (also known as Wi-Fi) on Linux is AP selection. For one, I was doing Wi-Fi at Solskogen this weekend, and my Linux laptop just consistently hated 5 GHz, going to 2.4 at almost any cost. Eventually I sat down and took a look at the algorithm in wpa_supplicant, hacked up some code, went to merge it into git master, aaaand… saw that someone else had already done what I wanted and then much more.

So compared to v2.3, which is what's currently in Debian, there's two nice fixes: First, when the driver doesn't report noise levels (just signal levels), AP selection used to fall back to an algorithm that didn't understand that above a certain level, more signal strength doesn't matter (so a great 5 GHz signal should be preferred, even if there's an even greater 2.4 GHz signal). That was fixed in f0d0a5d2, which simply adds default noise values. (From an author with @chromium.org address, wonder where those were measured… :-) ) In particular, the Intel cards (at least the 7260 AC I have in my X240) seem to be hit by this, so it should affect a fair number of laptops.

The next patch is even more interesting: a1b790eb (with bugfixes in 8b2b718d and aa517ae2) makes the algorithm understand that 5 GHz isn't just 2.4 GHz on a different band anymore. 802.11n and 802.11ac has more modulations and support wider channels, and if those are advertised, it should be taken into account when picking the fastest channel.

I'm looking forward to these patches hitting mainline distributions (and Android, if Android still uses wpa_supplicant; I honestly don't know); they should hopefully steer AP selection towards 5 GHz much more often. Of course, there's still a lot of work left—802.11 on Linux didn't go from bad to perfect with these two patches, but it's a good start.

Catégories: Elsewhere

Scott Kitterman: Debian LTS Work June 2015

Planet Debian - mar, 14/07/2015 - 21:21

This was my second month as a Freexian sponsored LTS contributor. I was assigned 4 hours which was enough for me to update libclamunrar to the latest version we have, 0.98.5. This aligns libclamunrar with last month’s clamav update and resolved a potentially concerning double free error. This is consistent with the way clamav and its components are updated for Debian supported releases through proposed-updates. This is covered under DLA 250-1.  This update took longer than expected due to time spent wrestling with the git repository for the packaging, but that’s resolved now, so if future updates are needed, it should be much easier.

Catégories: Elsewhere

3C Web Services: Tips to minimize Form Spam on your Drupal Website

Planet Drupal - mar, 14/07/2015 - 21:06
If you have forms on your website that the public can submit then you will, without a doubt, have to deal with form spam. Fortunately there are some easy steps you can take to greatly minimize spam submissions on your website.
Catégories: Elsewhere

Pages

Subscribe to jfhovinne agrégateur