Each day, more Drupal 7 modules are being migrated over to Drupal 8 and new ones are being created for the Drupal community’s latest major release. In this series, the Acquia Developer Center is profiling some of the most prominent, useful modules available for Drupal 8. This week: Google Analytics.Tags: acquia drupal planetanalytics
Last week, I worked on linking the D_BUS with the client and implement MAP on my callback smartInfo to push all my information in only one parameter.
This week I wanted to display my first real information in my client. I choose to begin with the frame rate to help another person in Savoir Faire Linux who work on the encoding and decoding of the video. So I worked on the video part of the daemon trying to understand how the daemon sends frames to LRC. All the frames are decoded in the same place so I just pull the number of frames per second for the local and remote video and put it on my callback smartInfo.
Next week, I will change my architecture a little bit. Ring can handle several calls with different information and my implementation don't take care of this. I need to search and implement a new architecture to link my callback with the call.
Recently, I started using the Paragraphs Module to create landing pages.
If you haven’t used it before, go check it out. It’s really user-friendly. I feel like it’s a replacement for field collections. However, unlike field collections, paragraphs allow you to choose a different set of fields each time.Contributed modules mentioned in this post:
Finding a great hosting company is kind of like winning the lottery. You never know who to choose or who to trust with your own website or your client's websites.
With the help of the Drupal Linkedin Group and my own 20+ years of website experience, I've put together a list of some great hosting options for your Drupal Website.
Whether you need cheap Drupal hosting for a startup or top-notch hosting for a huge client, there are some great Drupal hosting options for you.
Deploying your website to production shouldn't be stressful. It should be easy. You should release with confidence.
To make that a reality, you need a repeatable, reliable and most importantly automated deployment process. BLT provides tools for connecting your GitHub, Travis CI, and Acquia Cloud accounts together to ensure that changes to your website are validated, tested, and deployed automatically.Tags: acquia drupal planetbltdeploy
DrupalCon is one of my favorite weeks of the year. Now that it’s over, I’ve had some time to go back and reflect a bit about the week and what I got out of it.
github-backup is an attempt to take something I don't like -- github's centralization of what should be a decentralized techology -- and find a constrictive way to make it at least meet my baseline requirements for centralized systems. Namely that when they go away, I don't lose data.
So, it was written partly with my ArchiveTeam hat on.
A recent bug filed on it, Backup fails for repositories unavailable due to DMCA takedown made me happy, because it shows github-backup behaving more or less as intended, although perhaps not in the optimal way.
By the way, this is the only one of my projects that uses github for issue tracking. Intentionally ironically.
It was my second real Haskell program (after git-annex) and so also served as a good exercise in applying what I'd learned about writing Haskell up to that point.
Next: ?twenty years of free software -- part 9 small projects
Let’s delve into Drupal module development!
Here is a practical guide by InternetDevels developer
on how to create modules for Drupal 8.
In this article, we will look at the process of building modules for Drupal 8. Specifically, we will create two pages, one of which will add data to its own table, and the other will display the content the right way for us. So let’s begin!Read more
The Dish on Crushing it as a Drupal Developer
Whether you are with an organization switching to Drupal, or you have chosen to make Drupal the focus of your web developer career, your future can be a lot of different things depending on your goals, your focus and your personality. It’s never easy shifting your career, and with Drupal, there are no official, defined developer career recipes to guide you.
The good news is, the ingredients are out there. Within the open-sourcey, especially welcoming, social melting pot that is the Drupal Community, there are a lot of career resources, organizations, individuals, advice and success stories that you can draw on to help you make good choices. Here are a few tips to add to the mix.
Learn early on to do things the right way
Drupal is to web development what snowboarding is to winter sports. They say that it takes a lot longer to learn to snowboard than to ski, but once you get the hang of it, you learn advanced things more quickly, and are able to do a lot more (and have a lot more fun) on a snowboard than you could on skis.
Investing a good amount of time and focus on learning the foundations of Drupal and developing habits based on best practices will really help you reach proficiency, and let you go farther, faster in the long run. The key is making sure you take the time to learn best practices, and don’t go for shortcuts before you’ve got the basics.
Another part of learning the right technical skills is to learn key elements of Drupal, not just in the right way, but in an order that will give you stackable skills. Getting key concepts down at the start will help to not only build your abilities, but feed your confidence. At DrupalEasy, we call them the Big 5:
We feel that mastering these concepts is so important, that in our long-form career training program, the curriculum is designed with examples and excercises that specifically draw on the Big 5 as solutions over and over to ensure that they become second nature for every participant.
Don’t be shy, even if you are
The Drupal Community is unique. There is always an opportunity to help, and there always seems to be someone to provide a little guidance or an answer when you have a question. Make sure you become part of Drupal.org, find an IRC channel that you feel comfortable with, and go to local meetups.
We really can’t overstate how key getting involved in the Drupal community is to your technical and professional success. Once you register on Drupal.org, you can access myriad ways to get involved and help with the Drupal project. Helping to test, sorting out issues and contributing to documentation will not only help build your skills and confidence, it will build your reputation. Even before you are ready to contribute on the technical side, you can join your local Drupal Users’ Group and start by attending, meeting others, and eventually helping to organize events.
Drupal friends and mentors really come in handy as you progress along your career path, more so than in other industries because of the nature of Drupal. We all rely on each other to build, enhance, fix and grow the project, so the more we work together, the better the project, and the better we will be as Drupal professionals. We feel really strongly about this as well, which is why we require all of our Drupal Career program participants to get involved, and we provide everyone a community mentor to kick-start their community efforts from the start of the program.
Just do it, and do it again, and again
With anything, if you want to master it, you need to practice, and practice a lot. Build sites for fun and experience. Like snowboarding, it is especially hard when you first start out, but if you stick with it, and take the struggles as opportunities to learn and get better, you will surely succeed. You’ve also got a lot of potential help and guidance through the community (since you have already taken that advice to heart,) so take advantage of it early on and be prepared to give back when you can.
Our training programs stress this concept of practice, repetition of key skills as you learn more and more, as well as different methods to help you learn them. We are strong believers in building your skills and really understanding Drupal, and that means live instruction by practicing experts, lesson guides, examples, exercises and screencasts to help you soak in the material in different ways. However you learn, take advantage of resources, find different ways to absorb and engage, and practice, practice, practice.
If you would like to learn more about how to succeed in Drupal and our long-form training program, you can sign up for one of two, no-cost Taste of Drupal workshops coming up and explore the resources below.
Taste of Drupal free workshop
Drupal Career Online Program
I've been tweaking the video review system which we're using here at debconf over the past few days so that videos are being published automatically after review has finished; and I can happily announce that as of a short while ago, the first two files are now visible on the meetings archive. Yes, my own talk is part of that. No, that's not a coincidence. However, the other talks should not take too long
Future plans include the addition of a video RSS feed, and showing the videos on the debconf16 website. Stay tuned.
Last week the Couchbase team released the new 4.5 version of Couchbase Server.
You can see all the new introduced features here:
- Exposing reverse entity reference fields in Drupal
- Drupal Session Handler: everything you need to know
- Couchbase 4.5 released: now x6 faster than MongoDB
- Making namespaced callbacks work in Drupal 7 (without hacking core and with bound parameters)
- Drupal 8 Couchbase Integration
- Distinct options in a views exposed filter: The Views Selective Filters Module
- Twig PHP extension binaries for Windows
- Benchmarking Drupal 7 on PHP 7-dev
- Drupal 8 Wincache Integration
- Build GIT on Windows from Sources
With more than 10 million users, the Scratch online community is the largest online community where kids learn to program. Since it was created, a central goal of the community has been to promote “remixing” — the reworking and recombination of existing creative artifacts. As the video above shows, remixing programming projects in the current web-based version of Scratch is as easy is as clicking on the “see inside” button in a project web-page, and then clicking on the “remix” button in the web-based code editor. Today, close to 30% of projects on Scratch are remixes.
Remixing plays such a central role in Scratch because its designers believed that remixing can play an important role in learning. After all, Scratch was designed first and foremost as a learning community with its roots in the Constructionist framework developed at MIT by Seymour Papert and his colleagues. The design of the Scratch online community was inspired by Papert’s vision of a learning community similar to Brazilian Samba schools (Henry Jenkins writes about his experience of Samba schools in the context of Papert’s vision here), and a comment Marvin Minsky made in 1984:
Adults worry a lot these days. Especially, they worry about how to make other people learn more about computers. They want to make us all “computer-literate.” Literacy means both reading and writing, but most books and courses about computers only tell you about writing programs. Worse, they only tell about commands and instructions and programming-language grammar rules. They hardly ever give examples. But real languages are more than words and grammar rules. There’s also literature – what people use the language for. No one ever learns a language from being told its grammar rules. We always start with stories about things that interest us.
In a new paper — titled “Remixing as a pathway to Computational Thinking” — that was recently published at the ACM Conference on Computer Supported Collaborative Work and Social Computing (CSCW) conference, we used a series of quantitative measures of online behavior to try to uncover evidence that might support the theory that remixing in Scratch is positively associated with learning.
Of course, because Scratch is an informal environment with no set path for users, no lesson plan, and no quizzes, measuring learning is an open problem. In our study, we built on two different approaches to measure learning in Scratch. The first approach considers the number of distinct types of programming blocks available in Scratch that a user has used over her lifetime in Scratch (there are 120 in total) — something that can be thought of as a block repertoire or vocabulary. This measure has been used to model informal learning in Scratch in an earlier study. Using this approach, we hypothesized that users who remix more will have a faster rate of growth for their code vocabulary.
Controlling for a number of factors (e.g. age of user, the general level of activity) we found evidence of a small, but positive relationship between the number of remixes a user has shared and her block vocabulary as measured by the unique blocks she used in her non-remix projects. Intriguingly, we also found a strong association between the number of downloads by a user and her vocabulary growth. One interpretation is that this learning might also be associated with less active forms of appropriation, like the process of reading source code described by Minksy.
The second approach we used considered specific concepts in programming, such as loops, or event-handling. To measure this, we utilized a mapping of Scratch blocks to key programming concepts found in this paper by Karen Brennan and Mitchel Resnick. For example, in the image below are all the Scratch blocks mapped to the concept of “loop”.
We looked at six concepts in total (conditionals, data, events, loops, operators, and parallelism). In each case, we hypothesized that if someone has had never used a given concept before, they would be more likely to use that concept after encountering it while remixing an existing project.
Using this second approach, we found that users who had never used a concept were more likely to do so if they had been exposed to the concept through remixing. Although some concepts were more widely used than others, we found a positive relationship between concept use and exposure through remixing for each of the six concepts. We found that this relationship was true even if we ignored obvious examples of cutting and pasting of blocks of code. In all of these models, we found what we believe is evidence of learning through remixing.
Of course, there are many limitations in this work. What we found are all positive correlations — we do not know if these relationships are causal. Moreover, our measures do not really tell us whether someone has “understood” the usage of a given block or programming concept.However, even with these limitations, we are excited by the results of our work, and we plan to build on what we have. Our next steps include developing and utilizing better measures of learning, as well as looking at other methods of appropriation like viewing the source code of a project.
This blog post and the paper it describes are collaborative work with Sayamindu Dasgupta, Andrés Monroy-Hernández, and William Hale. The paper is released as open access so anyone can read the entire paper here. This blog post was also posted on Sayamindu Dasgupta’s blog and on Medium by the MIT Media Lab.
Entities were introduced from Drupal 7. I would say in Drupal 8 , entities are essential part takers like node, users, files, images and comments, etc.. Still sometimes you need to create custom entities according to your requirements. From the experience of working with some of the top level Media companies in the world, sometimes we need to create custom entity types. Example like recently we got the requirement to create the entity for string the analytic data of the Articles. Why we need to create the custom entity instead of using nodes or exiting entities, because the client doesn’t want to show the data in content administration page (‘admin/content’). Still it should be able…
check-all-the-things (aka cats, Meow!) is a tool that aims to make it easy to know which tools can be used to check a directory tree and to make it easy to run those tools on the directory tree. The tree could either be a source tree or a build tree or both. It aims to check as much of the tree as possible so the output can be very verbose and have many false positives. It is not for the busy, lazy or noise intolerant. It runs the checks by matching file names and MIME types against those registered for a list of checks. Each check has a set of dependencies, flags, filename wildcards, MIME type wildcards, comments and prerequisite commands. By default it:
- doesn't check file MIME types as this is slower
- shows which command is currently running
- limits check output to 10 lines
- hides checks that output nothing
- kills checks when interrupted with Ctrl+C
- exits when interrupted twice in quick succession
- outputs various remarks at the end
It runs all checks for the current distro/release except:
- dangerous ones that execute code in the current dir
- ones that modify files in the current dir
- ones that access the network (if there is no default route)
- ones that need work to be usable
- ones that need a human to run them
There are command-line options to customise the behaviour and automatic bash shell completion via argcomplete. There are 177 checks (including TODO ones) in 73 different categories. There are an additional 224 not-well-specified TODO items for new checks in comments. It is exceptionally easy to add new checks once one knows how to use the tool one wants to add.
At this point in time it is probably not a good idea to run it in an untrusted directory tree for several reasons:
- there could be unknown vulnerabilities in the tools used
- there could be unknown interactions with interpreters (known ones worked around)
- there could be some commands doing unknown code execution
- there could be other weirdness in some layers
- there is no automatic sandboxing at all yet
The project initially started as really hacky wiki page full of commands to run. At some point I figured it was time to make this actually be maintainable and started on a project to do that. At around the same time Jakub Wilk was working on maquack to replace the wiki page. Somehow I found out about it and talked to him about it. It was vastly less hacky than my version so I ended up taking it over and continuing it under the check-all-the-things name. I polished it for the last two years and finally released it into Debian unstable during DebCamp16.
I had my strong doubts as to whether the shipment would be allowed through customs, and was happily surprised by a smiling Graham today before noon. He handed me a smallish box that arrived to his office, containing...
Our fifty C.H.I.P. computers, those I offered to give away at DebConf!
The little machines are quite neat. They are beautiful little devices, including even a plastic back (so you can safely work with it over a conductive surface or things like that). Quite smaller than the usual Raspberry-like format. It has more than enough GPIO to make several of my friends around here drool about the possibilities.
So, what's to this machine besides a nice small ARM CPU, 512MB RAM, wireless connectivity (Wifi and bluetooth)? Although I have not yet looked into them (but intend to do so very soon!), it promises to have the freest available hardware around, and is meant for high hackability!
And not that it matters — But we managed to import them all, legally and completely hassle-free, into South Africa!
That's right — We are all used to the declaring commercial value as one dollar mindset. But... The C.H.I.P.s are actually priced at US$9 a piece. The declared commercial value is US$450. South Africans said all their customs are very hard to clear — But we were able receive 50 legally shipped computers, declared at their commercial value, without any hassles!
(yes, we might have been extremely lucky as well)
Anyway, stay tuned — By Thursday I will announce the list of people that get to take one home. I still have some left, so feel free to mail me at firstname.lastname@example.org.
DrupalCamp Bristol is back for a second year, with a variety of talks covering hot topics in the Drupal (and wider digital) area. This year we will be hosting the event over 3 days with a Business Day, Conference Day and Sunday Sprints which is open to all.Business Day (Friday 22nd July)
The event is aimed at business leaders and decision makers who are already familiar with Drupal, however client-side digital managers who are either responsible for a Drupal website or are considering using Drupal as a CMS of choice in the future will certainly find the day useful.
The event will be held within Colston Hall's prestigious Lantern room, and will feature lunch and refreshments throughout, along with a social event later in the evening at Colston Yard. Thank you to our kind sponsors for providing the bar tab!
This year we welcome the following talks:
- New and improved … and amazing! Selling tech as business value, not shiny widgets. - Jeffrey A. "jam" McGuire (Open Source Evangelist, Acquia)
- Elementary, my dear Watson (the movie guide to accessibility) - Léonie Watson (Senior Accessibility Engineer, The Paciello Group)
- We hold these Online truths to be self-evident - Andrew Godleman (Transport for London Online)
- Story mapping and sketching: humanising the requirements process - Mike Dunn, Will Scott (UX Consultants, Sift Digital)
- Personalisation: The Holy Grail - Ben Wilding (MD, Cameron & Wilding)
- Client Panel: a Q+A session with digital managers and product owners managing Drupal websites
The event is primarily aimed at agency teams who use Drupal regularly, such as developers, PMs/AMs, and other agency team roles, and will consist of both high level talks and in-depth technical talks to suit all. This year we are welcoming a larger number of speakers over 3 individual tracks.
The event will again be held at the University of Bristol's School of Chemistry, and will feature lunch and refreshments throughout, along with a social event later in the evening at Zero Degrees. We are still looking for a Saturday Social Sponsor - please get in touch if you are interested.
We are also pleased to announce a Quiz this year as a change to the closing session. Prizes will be given to the best teams!
If you are interested in staying for the weekend and would like to get involved with Drupal community contribution, then please feel free to attend the Sunday sprints. Torchbox have kindly provided their offices from 10am to 4pm and refreshments will be provided. Tickets are free, although we ask you to sign-up via Eventbrite to register your interest.
Looking forward to seeing everybody there,
The DrupalCamp Bristol Committee.
Written by: Rick Donohoe, Account Manager
Microserve is a Drupal Agency based in Bristol, UK. We specialise in Drupal Development, Drupal Site Audits and Health Checks, and Drupal Support and Maintenance. Contact us for for further information.
Git-cinnabar is a git remote helper to interact with mercurial repositories. It allows to clone, pull and push from/to mercurial remote repositories, using git.
These release notes are also available on the git-cinnabar wiki.What’s new since 0.3.2?
- Various bug fixes.
- Updated git to 2.9 for cinnabar-helper.
- Now supports bundle2 for both fetch/clone and push (https://www.mercurial-scm.org/wiki/BundleFormat2).
- Now Supports git credential for HTTP authentication.
- Removed upgrade path from repositories used with version < 0.3.0.
- Experimental (and partial) support for using git-cinnabar without having mercurial installed.
- Use a mercurial subprocess to access local mercurial repositories.
- Cinnabar-helper now handles fast-import, with workarounds for performance issues on macOS.
The TWG coding standards committee is announcing two coding standards changes for final discussion. These appear to have reached a point close enough to consensus for final completion. The new process for proposing and ratifying changes is documented on the coding standards project page.
New issues for discussion:
Updates on existing issues:
- Stop disallowing camelCase for local variables / parameters - is approved and in the core queue for official core approval.
- [Policy, no patch] PHP 5.4 short array syntax coding standards
- Should we require a blank line after <?php? is approved by core and sniff implemented in coder - ratification of this rule is pending.
- Allow camelCase also for local variables / parameters (the committee is drafting a comment)
- [policy, no patch] Standardize indenting on chained method calls has been moved to the core queue for core approval.
- Add type hinting to function declaration coding standards has been moved to the core queue for core approval.
- [Policy, no patch] Delete permission to pad spacing in a block of related assignments has been marked "needs work" and discussion continues for now. Committee to reevaluate.
- [Policy, no patch] PHP 5.4 short array syntax coding standards Currently marked "needs work" but discussion appears to have stalled. Committee to review at next meeting.
These proposals will be re-evaluated during the next coding standards meeting currently scheduled for July 12. At that point the discussion will likely be extended, or if clear consensus has been reached one or more policies may be dismissed or ratified and moved to the next step in the process.
At least a little much more time lst month for helping to improve the operating system we're working on. I've worked on a couple of package updates, mostly they are for PAPT, DPMT or pkg-go (in order of completion):
- golang-github-tent-http-link-go/0.0~git20130702.0.ac974c6-2 (team upload)
- golang-github-masterzen-xmlpath/0.0~git20140218.13f4951-2 (all these fixed to test with golang-gopkg-check.v1)
- pylint-django/0.7.2-1 (team upload)
- pyuca/1.1.2-1 (team upload)
- python-svg.path/2.1.1-1 [RFA]
- python-xmp-toolkit/2.0.1+git20140309.5437b0a-3 (closed #815305)
- sphinx-argparse/0.1.15-2 (closed #827813)
- vcr.py/1.7.3-2 [RFA]
- pyomo/4.3.11388+git20160622.d3e3f0a-1 (closed #823306)
- python-bcrypt/3.0.0-1 (gladly closed #824952)
- pydocstyle/1.0.0-3 (ship transition script /usr/bin/pep257)
- manuel/1.8.0-5 (team upload)
- python-jsontest/1.2-1 (needed for the Pyinfra tests)
- dwarfutils/20160507+git20160523.9086738-1 (new shared library and several CVE fixes)
- dwarfutils/20160613-1 (closed #827382, patched for reproducible builds)
- dwarfutils/20160613-2 (closed #827921, now co-installable with libdw-dev)
- dwarfutils/20160613-3 (upload to unstable)
- squirrel3/3.1-3 (closed #828963)
Again some further ahead with these ones.
The "new package of the month" is going to be Theano. I'm still working on the introduction, it'll come hereafter very soon.