Agrégateur de flux

3C Web Services: Creating dynamic output on your entity in Drupal 7 using hook_entity_view()

Planet Drupal - mar, 25/11/2014 - 22:00

If you need to create dynamic output on an entity when it is displayed on your Drupal site you have multiple options. One method that is easy to implement is using hook_entity_view().

You can insert this hook function into your custom module (see creating a custom module for more info).

Example:

Catégories: Elsewhere

Mediacurrent: Best Practices for Custom Modules

Planet Drupal - mar, 25/11/2014 - 20:19

Recently, I had the need to refer back to a custom module I wrote at a previous job years ago and like it tends to do, the code scared me. As far as I know, this module is still chugging along doing its job to this day, and hasn’t had any issues. But for it to work for us at Mediacurrent, it needed some serious refactoring.

Catégories: Elsewhere

Drupal core announcements: Drupal core updates for November 25, 2014

Planet Drupal - mar, 25/11/2014 - 19:44
What's new with Drupal 8?

Drupal 8.0.0 beta3 was released since the last core update, with over 200 fixes after the prior release. There are still over 100 known critical issues, which means more beta releases to come.

We take special care to resolve security and performance issues. Both types of issues may require API changes. There is now defined criteria for performance issues as to what kind of improvements qualify as critical issues (and therefore blocking the Drupal 8.0.0 release).

After 2.5 years of work in part sponsored by MongoDB Inc, led by Károly Négyesi (chx), Drupal 8 can now completely install with MongoDB. This is the first time Drupal in its entirety has been successfully installed in a NoSQL database.


Check out the demo video
.

In almost three weeks, the Drupal Association and Wunderkraut are sponsoring a focused sprint in Ghent to help move core critical issues forward. However, you can help make things move faster anytime from anywhere, so read on!

Where's Drupal 8 at in terms of release?

Since November 8, we've fixed 29 critical issues and 26 major issues, and opened 19 criticals and 40 majors. That puts us overall at 117 release-blocking critical issues and 717 major issues.

How long does it take to fix a critical?

So how long will it take us to fix those critical issues and get to a Drupal 8 release candidate? The average time it takes to fix a critical issue varies enormously depending on the scope of the problem and the resources our contributors can devote to fixing each. Over the course of the Drupal 8 development cycle:

  • 30% of critical issues were fixed within one week of being filed,
  • 50% of criticals were fixed within one month of being filed,
  • 80% of criticals were fixed within six months,
  • and then 20% took more than six months.

This means that one great way to help get Drupal 8 to a release faster is to accelerate some of those long-running issues. Look for the oldest critical issues, or the critical issues that have gone awhile with no updates, and help assess them. Is each still relevant? Is something blocking it? What's the next step that's needed? Is the issue summary up to date? As we both focus on our next milestone and bring these longer-running issues to a successful resolution, we'll be able to narrow our focus to incoming issues and get Drupal 8 done. :)

Current focus

The current top priority in Drupal 8 is to resolve issues that block a beta-to-beta upgrade path (critical issues tagged 'D8 upgrade path'). Supporting an upgrade path between betas is an important step for early adopters to begin building with Drupal 8 (and lending their resources to getting other critical issues done).

We also need core contributors to continue evaluating issues for the beta phase based on the beta changes policy. Note that Dreditor now includes a handy button for inserting a beta evaluation template in issue summaries! Thanks Cottser and Mark Carver for adding this feature so quickly.

Finally, keep an eye out for critical issues that are blocking other work. Add the blocker issue tag that other issues are postponed.

(Note that we're changing this section of the Drupal Core Updates to highlight ongoing goals rather than specific issues, because calls to action in these posts haven't resulted in additional momentum in highlighted issues. Instead, we'll be making brief, separate posts every week or two highlighting top-priority issues in critical areas. If you're a core subsystem maintainer or initiative lead and want to highlight a specific issue, we encourage you to submit your own brief announcement to g.d.o/core (requires access). Anyone in MAINTAINERS.txt is authorized to post to this group!)

How to get involved

If you're new to contributing to core, check out Core contribution mentoring hours. Twice per week, you can log into IRC and helpful Drupal core mentors will get you set up with answers to any of your questions, plus provide some useful issues to work on.

If you'd like to contribute to a particular Drupal 8 initiative or working group, see the regularly scheduled meetings on the Drupal 8 core calendar:

Google Calendar ID:
happypunch.com_eq0e09s0kvcs7v5scdi8f8cm70@group.calendar.google.com
XML:
https://www.google.com/calendar/feeds/happypunch.com_eq0e09s0kvcs7v5scdi8f8cm70%40group.calendar.google.com/public/basic
iCal:
https://www.google.com/calendar/ical/happypunch.com_eq0e09s0kvcs7v5scdi8f8cm70%40group.calendar.google.com/public/basic.ics

Note that ultimike is now running a virtual Migrate sprint, Wednesdays 19:00-21:00 EST. See the Migrate in core group page for information and updates.

If you are interested in really digging into a tough problem and helping resolve a stagnating release blocker, or if you are stuck on a critical currently, join the #drupal-contribute IRC channel during weekly critical issue office hours on Fridays at 12:00p PST. See chx's office hours reports for an idea of what we've done so far!

You can also help by sponsoring independent Drupal core development.

Notable Commits
  • Issue 2236855 by rachel_norfolk, stefank, ngocketit, lauriii, LewisNyman, alexpott, yuki77, rteijeiro | mortendk: Use CSS for file icons in file fields.
  • Issue 2364647 by chx, alexpott: Fixed [sechole] Remove blacklist mode from Filter:XSS.
  • Issue 2322509 by prics, cilefen, gaurav.goyal, harijari, Temoor: Replace all instances of node_load(), node_load_multiple(), entity_load('node') and entity_load_multiple('node') with static method calls.
  • Issue 287292 by almaudoh, mr.baileys, drewish, Berdir, znerol, boombatower, dawehner, jpetso, floretan: Add functionality to impersonate a user
  • Issue 2267453 by alexpott, dawehner, damiankloip: Views plugins do not store additional dependencies
  • Issue 2352155 by Wim Leers: Remove HtmlFragment/HtmlPage
  • Issue 2375225 by LewisNyman, davidhernandez: Add emma.maria as Bartik maintainer
  • Issue #2362987 by Wim Leers, Codenator, Pinolo: Remove hook_page_build() and hook_page_alter()
  • Issue #2339151 by EclipseGc, tim.plunkett, Gábor Hojtsy, effulgentsia: Conditions / context system does not allow for multiple configurable contexts, eg. language types
  • Issue #2376791 by dawehner, Wim Leers: Move all _content routing definitions to _controller
  • Issue #2378789 by Wim Leers: Views output cache is broken
  • Issue #2324055 by dawehner, cilefen, znerol: Split up the module manager into runtime information and extension information

You can also always check the Change records for Drupal core for the full list of Drupal 8 API changes from Drupal 7.

Drupal 8 Around the Interwebs Drupal 8 in "Real Life" Whew! That's a wrap!

Do you follow Drupal Planet with devotion, or keep a close eye on the Drupal event calendar, or git pull origin 8.0.x every morning without fail before your coffee? We're looking for more contributors to help compile these posts. You could either take a few hours once every six weeks or so to put together a whole post, or help with one section more regularly. Read more about how you can volunteer to help with these posts!

Catégories: Elsewhere

Drupal Easy: DrupalEasy Career Training Graduates and Growth

Planet Drupal - mar, 25/11/2014 - 19:25

Twelve weeks after it began, the first online class of Drupal Career Online (DCO) graduated yesterday, launching six new Drupalists on their way to a new career. With this class, DrupalEasy has now graduated 71 participants from Drupal Career online and in-person programs. Our graduates were taught the fundamentals of Drupal site-building, Git, introductions to module and theme development, site maintenance, distributions, and much more. Along they way, students were required to use the same communication tools as the rest of the community (including IRC), were provided with a community mentor, and were encouraged (pestered?!) to get involved in their local communities.

-->

read more

Catégories: Elsewhere

Enrico Zini: mock-webserver

Planet Debian - mar, 25/11/2014 - 18:22
A mock webserver to use for unit testing HTTP clients

With python -m SimpleHTTPServer it's easy to bring up an HTTP server to use to test HTTP client code, however it only supports GET requests, and I needed to test an HTTP client that needs to perform a file upload.

It took way more than I originally expected to put this together, so here it is, hopefully saving other people (including future me) some time:

#!/usr/bin/python3 import http.server import cgi import socketserver import hashlib import json PORT = 8081 class Handler(http.server.SimpleHTTPRequestHandler): def do_POST(self): info = { "method": "POST", "headers": { k: v for k, v in self.headers.items() }, } form = cgi.FieldStorage( fp=self.rfile, headers=self.headers, environ={'REQUEST_METHOD':'POST', 'CONTENT_TYPE':self.headers['Content-Type'], }) postdata = {} for k in form.keys(): if form[k].file: buf = form.getvalue(k) postdata[k] = { "type": "file", "name": form[k].filename, "size": len(buf), # json.dumps will not serialize a byte() object, so we # return the shasum instead of the file body "sha256": hashlib.sha256(buf).hexdigest(), } else: vals = form.getlist(k) if len(vals) == 1: postdata[k] = { "type": "field", "val": vals[0], } else: postdata[k] = { "type": "multifield", "vals": vals, } info["postdata"] = postdata resbody = json.dumps(info, indent=1) print(resbody) resbody = resbody.encode("utf-8") self.send_response(200) self.send_header("Content-type", "application/json") self.send_header("Content-Length", str(len(resbody))) self.end_headers() self.wfile.write(resbody) class TCPServer(socketserver.TCPServer): # Allow to restart the mock server without needing to wait for the socket # to end TIME_WAIT: we only listen locally, and we may restart often in # some workflows allow_reuse_address = True httpd = TCPServer(("", PORT), Handler) print("serving at port", PORT) httpd.serve_forever()
Catégories: Elsewhere

Open Source Training: Drupal's Basic Cart Module: So Close, But ...

Planet Drupal - mar, 25/11/2014 - 18:08

I wasn't sure whether to publish this review or not.

One of our members wanted a really simple shopping cart for Drupal. They found the Basic Cart module and asked me about it.

So, I set up and tested Basic Cart. Everything worked great, until the end when I realized there was no payment gateway. None. Basic Cart is a great little e-commerce store ... except it has no way to pay.

Catégories: Elsewhere

Thorsten Glaser: d-i preseeding is not the answer

Planet Debian - mar, 25/11/2014 - 18:00

This post details what the d-i team currently shows as the only way.

It has several shortcomings and one missing documentation part.

Shortcoming: --purge is missing from the apt-get invocation. This leaves packages in “rc” state (requiring a manual dpkg --purge to completely remove them later, as they are then invisible to apt).

Worse shortcoming: this still leaves all dependencies pulled in by systemd around on the system, because packages installed by debootstrap are not eligible for “apt-get --purge autoremove”. Additionally, it does not influence debootstrap’s (nōn-existent, see #557322, #668001, #768062) dependency resolver, leading to possibly pessimistic package selections.

Missing: you can just hit Alt-F2 and enter the command…

in-target apt-get --purge -y install sysvinit-core

… there, no need to preseed. But this does not eliminate the aforementioned shortcomings, of course.

Catégories: Elsewhere

Scott Kitterman: On being excellent to each other

Planet Debian - mar, 25/11/2014 - 17:47

There has been a lot of discussion recently where there is strong disagreement, even about how to discuss the disagreement. Here’s a few thoughts on the matter.

The thing I personally find the most annoying is when someone thinks what someone else says is inappropriate and says so, it seems like the inevitable response is to scream censorship. When people do that, I’m pretty sure they don’t know what the word censorship actually means. Debian/Ubuntu/Insert Project Name Here resources are not public spaces and no government is telling people what they can and can’t say.

When you engage in speech and people respond to that speech, even if you don’t feel all warm and fuzzy after reading the response, it’s not censorship. It’s called discussion.

When someone calls out speech that they think is inappropriate, the proper response is not to blame a Code of Conduct or some other set of rules. Projects that have a code, also have a process for dealing with claims the code has been violated. Unless someone invokes that process (which almost never happens), the code is irrelevant. What’s relevant is that someone is having a problem with what or how you are saying something and are in some way hurt by it.

Let’s focus on that. The rules are irrelevant, what matters is working together in a collegial way. I really don’t think project members actively want other project members to feel bad/unsafe, but it’s hard to get outside ones own defensive reaction to being called out. So please pay less attention to how you’re feeling about things and try to see things from the other side. If we can all do a bit more of that, then things can be better for all of us.

Final note: If you’ve gotten this far and thought “Oh, that other person is doing this to me”, I have news for you – it’s not just them.

Catégories: Elsewhere

Drupal Watchdog: Load Testing

Planet Drupal - mar, 25/11/2014 - 17:02
Feature

Load testing is an important aspect of any project: it provides insight into how your site and infrastructure will react under load. While critical to the launch process of any project, load testing is also useful to integrate into your standard testing procedure. It can help you locate bottlenecks and generic performance regressions introduced in the evolution of a site post launch (due to code and infrastructure changes).

There are many different methodologies and applications for performing load tests, but generally it involves bombarding various pages on the site with enough traffic to start causing degradation. From there, work can be done to isolate bottlenecks in order to improve performance. By performing periodic load tests, you are much more likely to catch something while it’s still a minor performance issue, not after it becomes a major problem.

Different Types of Load Tests

There are a number of different load testing configurations (sometimes referred to as test plans) which can be used individually or in conjunction to provide insight into site performance. Generally, we end up running three different types of tests:

Catégories: Elsewhere

Drupal Association News: Help Us Plan DrupalCon in India

Planet Drupal - mar, 25/11/2014 - 16:47

DrupalCon is an important community event that brings a diverse group of Drupalers together under one roof to share knowledge, grow skills, and strengthen community bonds. As an organization, it is very rewarding to facilitate these experiences around the world.

In the past, our attendance data has shown that DrupalCon is primarily a regional event, attracting attendees from nearby countries and drawing in some great international speakers, trainers, and community leaders. Knowing this, the Drupal Association is committed to hosting DrupalCon in regions other than just North America and Europe.

In 2015, this third DrupalCon is in Bogota, Colombia. In 2016, we want to host DrupalCon in India and this blog explains why. Can you tell us your thoughts on this host country and which city you think should be the next DrupalCon location?

How do you pick locations?

The Drupal Association Board sets the staff’s direction with vision and strategy and they asked staff to come up with a list of possible countries in regions outside of North America and Europe that are viable DrupalCon Locations. They provided us with selection criteria that supported their strategy, which included in no particular order:

  • Popularity - People want to visit the host location to site see.
  • Strong local community: Size of the camp in the proposed city / # of camps in a country
  • Size of Drupal business community - # of Drupal businesses within that country and region
  • Ease of doing business with a country: Easy to set up a financial entity so we can collect ticket sales revenue and pay vendors in local currency.
  • Local Support: The community reached out to the Association, requesting a DrupalCon and offering to help produce it.
  • Inexpensive travel  - This gives insight into the average cost of lodging in the city
  • Visa: Easy to get a visa or one is not required to enter a country.
  • Strong business environment - The number of Fortune 500 companies in that region
  • Community survey: Where does the community want to go?

After researching locations and ranking countries and cities based on the above criteria, several places bubbled to the top. Latin America and specifically Bogota, Colombia was a clear leader, which is why we are hosting DrupalCon 2015 there. India was ranked second over other possible locations.

What makes India a good host country?

India has an impressive number of Drupal leaders, contributors, businesses, and end users. This country drives the 2nd highest amount of traffic to Drupal.org (Unites States had 1M sessions last month, while India had 450,000.) DrupalCon in India can highlight this country’s Drupal strength to the global community while conversely showing the local community how they can contribute more back to the Project.

More specifically, India ranked high because it has several mature camps and many local communities throughout the country. Producing DrupalCon outside of North America and Europe requires a strong partnership with community leaders who can help us with logistics. Plus, a DrupalCon needs power in numbers to make it financially worthwhile and effective, so a large community base is key.

In India, technology conference tickets are usually very inexpensive, so a DrupalCon in India ticket price will need to cost much less than the standard DrupalCon ticket price. Because of the cost of putting on conferences, having low ticket prices means the event will be funded through sponsorships. India has a strong Drupal business community and many are already pledging sponsorship to make the event financially viable.

Which host city is best for you?

We would like to thank Rahul Dewan, Jacob Singh, Mayank Chadha, Rachit Gupta, Ani Gupta, Hussain Abbas, Chakrapani R, Sunit Gala, Venky Goteti, and Shyamala Ramajan and other community leaders for determining the financial feasibility for hosting a 1,000 person DrupalCon in their city. After several discussions, we decided Bangalore, Mumbai, and Delhi are our three most viable host cities. Now we need your input in picking the city where we will host our first DrupalCon in India. Below is a chart summarizing their key findings.

Which city should host DrupalCon and why did you chose that city? (e.g. travel distance, travel cost, ideal hotel cost, preferred venue(s), community size). Please use comments to tell us.

  Bangalore Mumbai Delhi

Venue Recommendation:

(based on 1,000 attendees, 1 keynote room, 6 session rooms, 4 BOF rooms)

  1. Manpho Convention centre
  2. The Lalit Bangalore
  3. NIMHANS Convention centre
    (OSI days happens here)
  1. Grand Hyatt Mumbai
  2. Renaissance Powai 
  3. Films Studios. (under consideration)
  1. The Ashok, New Delhi (more info)
  2. Jaypee Greens Golf & Spa Resort, Greater Noida
  3. Hyatt Regency, Gurgaon

Catering

 

(lunch and coffee/tea break per day)

Rs.500 per person per day
($8) Rs 2,460 - 3,075 per person per day
($40 - $50)
  1. Rs 2,460 per person per day (tax inclusive) ($40)
  2. Rs 2,100 per person per day (tax inclusive) ($35)
  3. Rs 1,400 per person per day (tax inclusive) ($25)
Hotel Room Cost 2KMs from the Venue Manpho

Hotels (3-star)
Rs. 3,500 per night ($57)

Lalit (5-star): Rs.7,500 + tax per night ($121) Grand Hyatt  Rs 9,275 per night ($150)

There are 50+ options around Grand Hyatt for all price points, between Rs 1,545 - 7,420 per night ($25-$120)

Renaissance Powai Rs 11,130 per night ($180)
  1. Rs 8,000 per night ($120) - 2 seater room
    Rs 11,000 per night ($180) - 3 seater room
  2. Rs 9,000 per night ($140) - 2 seater
  3. Rs 8,000 per night ($120) - 2 seater
    Other 3* hotel option (~5km) from the venue - Rs 2,500-4,000 ($40-$80)
Travel to city

From Delhi
By plane - Rs 9,275 RT ($150)

From Bombay
Plane Rs 7,420 ($120)
Bus: (20hr) Rs 3,090 ($50)
Train (20 hr): Rs 3,710 ($60)

From Hyderabad
Mostly Bus and train(overnight journey - 8hrs).
Plane: Rs 7,730 ($125)
Bus: Rs 3,710 ($60)
Train: Rs 3,710 ($60)

From Delhi
Plane (2 hrs) Rs 8,040 ($130)
Train (16 hrs) Rs 4,950 ($80)

From Bangalore
Plane (1hr40) Rs 7,420 ($120)
Train (24 hrs) Rs 3,710 ($60)

From Hyderabad
Plane (1hr10) Rs 5,570 ($90)
Train (10 hrs) Rs 4,330 ($70)

From Bombay
Plane (2hr00): Rs 7,730 ($125)
Train Rs 2,475 ($40)

From Bangalore
Plane (2hr30): Rs 9,275 ($150)

From Hyderabad
Plane (2hr00): Rs 10,820 ($175)

Camps None - Meet Ups, Mini-camps and Trainings Only 500+ attendees 350+ attendees (consistently for past 3 years)

Indian flag image credit to Sanyam Bagha on Flickr.

DrupalCamp India image credit to Dries' blog.

Catégories: Elsewhere

InternetDevels: InternetDevels is among the best Drupal developers worldwide

Planet Drupal - mar, 25/11/2014 - 16:23

Everyone is happy to get a sign of appreciation, right? So were we having received a message from the American ranking service Clutch.co, which is regularly analyzing the market worldwide to make up lists of the best companies in certain spheres. Not so long ago they published a new list, based on fresh-conducted research. And know what? InternetDevels company was included in those new list!

Read more
Catégories: Elsewhere

Code Enigma: Twitter Pane

Planet Drupal - mar, 25/11/2014 - 15:54
Almost certainly, a time will come when a client asks for a list of Tweets to be displayed on their Drupal site.
Catégories: Elsewhere

Chris Lamb: Validating Django model attribute assignment

Planet Debian - mar, 25/11/2014 - 15:54

Ever done the following?

>>> user = User.objects.get(pk=102) >>> user.superuser = True >>> user.save() # Argh, why is this user now not a superuser...

Here's a dirty hack to validate these:

import sys from django.db import models from django.conf import settings FIELDS = {} EXCEPTIONS = { 'auth.User': ('backend',), } def setattr_validate(self, name, value): super(models.Model, self).__setattr__(name, value) # Real field names cannot start with underscores if name.startswith('_'): return # Magic if name == 'pk': return k = '%s.%s' % (self._meta.app_label, self._meta.object_name) try: fields = FIELDS[k] except KeyError: fields = FIELDS[k] = set( getattr(x, y) for x in self._meta.fields for y in ('attname', 'name') ) # Field is in allowed list if name in fields: return # Field is in known exceptions if name in EXCEPTIONS.get(k, ()): return # Always allow Django internals to set values (eg. aggregates) if 'django/db/models' in sys._getframe().f_back.f_code.co_filename: return raise ValueError( "Refusing to set unknown attribute '%s' on %s instance. " "(Did you misspell %s?)" % (name, k, ', '.join(fields)) ) # Let's assume we have good test coverage if settings.DEBUG: models.Model.__setattr__ = setattr_validate

Now:

>>> user = User.objects.get(pk=102) >>> user.superuser = True ... ValueError: Refusing to set unknown attribute 'superuser' on auth.User instance. (Did you misspell 'username', 'first_name', 'last_name', 'is_active', 'email', 'is_superuser', 'is_staff', 'last_login', 'password', 'id', 'date_joined')

(Django can be a little schizophrenic on this — Model.save()'s update_fields keyword argument validates its fields, as does prefetch_related, but it's taking select_related a little while to land.)

Catégories: Elsewhere

Dries Buytaert: The power of self-managed teams in Drupal

Planet Drupal - mar, 25/11/2014 - 15:49
Topic: DrupalLeadership

The concept of official initiatives came out of lessons learned from the Drupal 7 development. We learned a lot from that and in a recent blog post about Drupal initiative leads, I recognized that we need to evolve our tools, our processes, and our organizational design. Others like Nathaniel Catchpole, Larry Garfield and Gábor Hojtsy have shared some of their thoughts already. One of the things I'm most proud of is that the Drupal community is always looking to improve and reinvent itself. Evolving is an important part of our culture. Each time it will get better, but still won't be perfect.

For me, one of the biggest take-aways (but not the only one) is that for an initiative to succeed, it needs to be supported by a team. An initiative needs to carry out a technical vision, plan the work, communicate with all stakeholders, mobilize volunteers, raise funding, organize sprints, and more. It can easily be more than one person can handle -- especially if it isn't your full-time job or if your initiative is complex.

More specifically, we have learned that the most successful initiatives appear to be run by teams that are self-managed; the team members collaborate in the development of the initiative, but also share both managerial and operational responsibilities like planning, coordinating, communicating, sprint organizing and more.

Because self-managed teams are both responsible for their outcomes and in control of their decision-making process, members of a self-managing team are usually more motivated than traditional hierarchical teams. This independence and greater responsibility are important in volunteer communities. Self-managed teams also build and maintain institutional knowledge. The outcome of their work is also more easily accepted by other stakeholders (like core committers) because they have already built a lot of consensus.

If I were to be an initiative lead, I'd feel strongly about building my own team rather than being handed a team. My initial assumption was that each initiative lead would build his/her own team. In hindsight, that was a mistake. Team building is not easy. It requires a time investment that can seem to compete with technical priorities. This is an important lesson and something we can do better going forward. Before making an initiative official, we have to make sure that each initiative has a good team and the support to be successful -- either we can help create a team, provide more coaching or formal training around team building, or we shouldn't designate the initiative official until such a team has coalesced.

Catégories: Elsewhere

Code Enigma: Let's Get Views In Core

Planet Drupal - mar, 25/11/2014 - 15:47
Code Enigma are sponsoring a Views In Core sprint in Paris, France, from 26th - 28th August 2012.
Catégories: Elsewhere

Dirk Eddelbuettel: Rcpp now used by 300 CRAN packages

Planet Debian - mar, 25/11/2014 - 13:14

This morning, Rcpp reached another round milestone: 300 packages on CRAN now depend on it (as measured by Depends, Imports and LinkingTo declarations). The graph is on the left depicts the growth of Rcpp usage over time. There are 41 more on BioConductor (which is not included in the chart).

The first and less detailed part uses manually save entries, the second half of the data set was generated semi-automatically via a short script appending updates to a small file-based backend. A list of user package is kept on this page.

Also displayed in the graph is the relative proportion of CRAN packages using Rcpp. The four per-cent hurdle was cleared just before useR! 2014 where I showed a similar graph (as two distinct graphs) in my invited talk. We may well hit five per-cent before the end of the year.

300 is a pretty humbling and staggering number. Also interesting that we we cleared 200 only at the end of April, and 250 in early August.

So from everybody behind Rcpp, a heartfelt Thank You! to all the users and of course other contributors.

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

DebConf team: DebConf14 final report (Posted by Uli Scholler, and the DebConf Team)

Planet Debian - mar, 25/11/2014 - 09:48

The Final Report for DebConf14 is complete and the DebConf team proudly presents it to the world.

DebConf14, which was held in Portland, Oregon, USA, in August 2014, was a big success. Our final report captures the essence of this year’s conference in pictures and words:

  • talks and how we selected them
  • face-to-face meetings and their effect on building trust
  • events such as the day trip or the infamous cheese & wine party
  • the university venue
  • a selection of attendee’s impressions

And of course there are numbers, budget, and statistics.

Read, enjoy, and share!

The DebConf team

Catégories: Elsewhere

Erich Schubert: Installing Debian with sysvinit

Planet Debian - mar, 25/11/2014 - 09:24
First let me note that I am using systemd, so these things here are untested by me. See e.g. Petter's and Simon's blog entries on the same overall topic. According to the Debian installer maintainers, the only accepted way to install Debian with sysvinit is to use preseeding. This can either be done at the installer boot prompt by manually typing the magic spell: preseed/late_command="in-target apt-get install -y sysvinit-core" or by using a preseeding file (which is a really nice feature I used for installing my Hadoop nodes) to do the same: d-i preseed/late_command string in-target apt-get install -y sysvinit-core If you are a sysadmin, using preseeding can save you a lot of typing. Put all your desired configuration into preseeding files, put them on a webserver (best with a short name resolvable by local DNS). Let's assume you have set up the DNS name d-i.example.com, and your DHCP is configured such that example.com is on the DNS search list. You can also add a vendor extension to DHCP to serve a full URL. Manually enabling preseeding then means adding auto url=d-i to the installer boot command line (d-i is the hostname I suggested to set up in your DNS before, and the full URL would then be http://d-i.example.com/d-i/jessie/./preseed.cfg. Preseeding is well documented in Appendix B of the installer manual, but nevertheless will require a number of iterations to get everything work as desired for a fully automatic install like I used for my Hadoop nodes. There might be an easier option.
I have filed a wishlist bug suggesting to use the tasksel mechanism to allow the user to choose sysvinit at installation time. However, it got turned down by the Debian installer maintainers quire rudely in a "No." - essentially this is a "shut the f... up and go away", which is in my opinion an inappropriate to discard a reasonable user wishlist request. Since I don't intend to use sysvinit anymore, I will not be pursuing this option further. It is, as far as I can tell, still untested. If it works, it might be the least-effort, least-invasive option to allow the installation of sysvinit Jessie (except for above command line magic). If you have interest in sysvinit, you (because I don't use sysvinit) should now test if this approach works.
  1. Get the patch proposed to add a task-sysvinit package.
  2. Build an installer CD with this tasksel (maybe this documentation is helpful for this step).
  3. Test whether the patch works. Report results to above bug report, so that others interested in sysvinit can find them easily.
  4. Find and fix bugs if it didn't work. Repeat.
  5. Publish the modified ("forked") installer, and get user feedback.
If you are then still up for a fight, you can try to convince the maintainers (or go the nasty way, and ask the CTTE for their opinion, to start another flamewar and make more maintainers give up) that this option should be added to the mainline installer. And hurry up, or you may at best get this into Jessie reloaded, 8.1. - chance are that the release manager will not accept such patches this late anymore. The sysvinit supporters should have investigated this option much, much earlier instead of losing time on the GR. Again, I won't be doing this job for you. I'm happy with systemd. But patches and proof-of-concept is what makes open source work, not GRs and MikeeUSA's crap videos spammed to the LKML... (And yes, I am quite annoyed by the way the Debian installer maintainers handled the bug report. This is not how open-source collaboration is supposed to work. I tried to file a proper wishlist bug reporting, suggesting a solution that I could not find discussed anywhere before and got back just this "No. Shut up." answer. I'm not sure if I will be reporting a bug in debian-installer ever again, if this is the way they handle bug reports ...) I do care about our users, though. If you look at popcon "vote" results, we have 4179 votes for sysvinit-core and 16918 votes for systemd-sysv (graph) indicating that of those already testing jessie and beyond - neglecting 65 upstart votes, and assuming that there is no bias to not-upgrade if you prefer sysvinit - about 20% appear to prefer sysvinit (in fact, they may even have manually switched back to sysvinit after being upgraded to systemd unintentionally?). These are users that we should listen to, and that we should consider adding an installer option for, too.
Catégories: Elsewhere

Gunnar Wolf: 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 (also known as #10print )

Planet Debian - mar, 25/11/2014 - 06:41

The line of BASIC code that appears as the subject for this post is the title for a book I just finished reading — And enjoyed thoroughly. The book is available online for download under a CC-BY-NC-SA 3.0 License, so you can take a good look at it before (or instead of) buying it. Although it's among the books I will enjoy having on my shelf; the printing is of a very enjoyable good quality.

And what is this book about? Well, of course, it analizes that very simple line of code, as it ran on the Commodore 64 thirty years ago.

And the analysis is made from every possible angle: What do mazes mean in culture? What have they meant in cultures through history? What about regularity in art (mainly 20th century art)? How would this code look (or how it would be adapted) on contemporary non-C64 computers? And in other languages more popular today? What does randomness mean? And what does random() mean? What is BASIC, and how it came to the C64? What is the C64, and where did it come from? And several other beautiful chapters.

The book was collaboratively written by ten different authors, in a Wiki-like fashion. And... Well, what else is there to say? I enjoyed so much reading through long chapters of my childhood, of what attracted me to computers, of my cultural traits and values... I really hope that, in due time, I can be a part of such a beautiful project!

Catégories: Elsewhere

Kenshi Muto: Bug #668001

Planet Debian - mar, 25/11/2014 - 04:00

If the bug title of #668001 was not "debootstrap: cant install systemd instead of sysvinit", but was like "debootstrap ignores everything from the first pipe character to the end of Depends/Pre-Depends line.", it would be treated more carefully ;)

My patch posting #20 aims to fix it.

Well, I wish this bug will be solved on jessie+1 or backports.

Catégories: Elsewhere

Pages

Subscribe to jfhovinne agrégateur