I am a big car, and I'm a strip bar, Call it fake, I call it good as it gets.
In the beginning there was the Common Gateway Interface, commonly known as CGI – a standard approach used to dynamically generate web pages. Originally devised in 1993 by the NCSA team and formally defined by RFC 3875 in 2004, CGI 1.1 took seven years to go from the original RFC to an endorsed standard.
In 1994, not long after the original CGI standard was documented by NCSA, Rasmus Lerdorf created Personal Home Page tools (PHP Tools), an implementation of the Common Gateway Interface written in C. After going through a number of iterations and name-changes this grew to be the PHP language we know and love.
One of PHP's strengths was the way in which it made many of the request and server specific variables, as defined by the CGI standard, easy to access – through the use of superglobals, namely $_POST, $_GET, and $_SERVER. Each of these is an associative array. In the case of $_POST, the request body is parsed for you and turned into an array of user-submitted values, keyed by field name, and conveniently supporting nested arrays. Similarly for $_GET, the query string is parsed by PHP and turned into a keyed array. In the case of $_SERVER, the gamut of server-specific variables are available for your script to interrogate.
You may have heard and read a lot about Drupal 8 lately, without much support to go along with it. Well here at Blink Reaction, we are working on changing that and contributing as much help as we can to the community with the issues that we’ve come across so far in Drupal 8. In this post I will show you how you can try Drupal 8 by installing dependencies such as composer and drush so you can have a Drupal 8 site running on your local machine.
I have been privileged to be able to attend a number of conferences and events, such as DrupalCon Austin, Portland etc, since we started Cheeky Monkey Media. In the past, we’ve talked about having your DrupalCon Survival kit prepared before you head out the door to help make...Read More
Good communication: "From AAA teams to little indie outfits like us, nearly every developer has to confront this reality at some point. Still, I have seen firsthand that this can make or break a project." ...
FPP Bundles - module that helps to create an entity bundles of the Fieldable Panels Panes. The project aims to simplify developers life by way of refraining of writing the code for panels creation.
The module has an integration with Features and allows to export an existing bundles and automatically add fields and their dependencies to the feature.
As the Drupal market continues to rock and roll, more and more clients need "Drupal Developers". But what exactly is a Drupal Developer? A Drupal Developer is someone who knows Drupal right? Right?!
Got some Drupal 7 modules that use the Form API lying around? Want to learn how to port them to Drupal 8? The process could just be the crash course you've been looking for in Drupal 8, object-oriented, module development.
The Drupal Rules Filter Module is a simple module that makes it easy to sort through a long list of Drupal Rules. This is a module that is especially useful on those larger scale Drupal websites that rely heavily on the rules module and have many contributed Drupal modules installed.Tags: DrupalRulesDrupal 7Drupal PlanetSite Administration
The Migrate OAI-PMH module provides a migrate source class you can use when importing
data from a OAI-PMH provider.
You can use the source class 'MigrateSourceOaiPmh' just the same as MigrateSourceXML.
There is a lot of documentation about this at http://drupal.org/migrate. To get started,
enable the migrate_example module and browse to admin/content/migrate to see its dashboard.
Mimic the beer.inc or wine.inc example file in order to specify your own migrations.
Gmail contact provides Gmail Contact API integration with Drupal.
Be default, this module provides one block allowing users to click the invite link inside it to invite their Gmail contacts, i.e, send emails to their Gmail Contacts.
Before enable this module, one google app is required:
- Go to Google developer console to create one app.
- Enable Contact API.
- Add your test/production sites domain and redirect url there. One redirect url required by this module is '/initiate-gmail-invite'.
After enable this module:
"Let's face it -- the Agile Manifesto is very much Software Engineer focused. This redrafting is a bit of an experiment in changing the principles to make sense for game design/development." ...
"If it's mentioned, no matter how old it is, do I feel compelled to sit down, reinstall it, and play it right then? If the answer is yes, then I'll consider it a favorite." ...
Kate Marshalkina has been using Drupal for three and a half years. A web developer by trade, Kate was approached by a friend who wanted her to do Drupal work with him. After doing some research on the system, Kate agreed.
“It’s quite difficult to learn Drupal without paid work because it requires a lot of time and experience to learn the Drupal way of doing things,” Kate said. “I had joined a security startup, and a security company obviously cares about security on the web. So we decided to use Drupal because it’s a safe, well known open source system. I learned a lot while I was working on my tasks, but I spent a lot of my free time to learn Drupal. Once I started learning, I couldn’t stop— I’d previously worked with other content management with less documentation and information and then I started learning Drupal and... because of the community, and all of the learning resources and videos that are available, I was hooked."
“After working with Drupal for three months, I started my blog and not long after that I presented a session at DrupalCamp Moscow. Now, I’m a Drupal lover after three and a half years working with the platform."Drupal.org: A Valuable Resource
Every day, Kate checks in to Drupal.org: she says she visits the site to find new modules, check the issue queues, and check API documentation. “I’m very comfortable with Drupal.org, but it was hard getting used to it when I started. Initially, it was a question for me why I should even use Drupal.org, and I didn’t know what the benefits are.
"I really like my dashboard on Drupal.org,” said Kate. “It’s a great page where I can see daily updates on my issues — and of course I follow a lot. It’s nice that I can also easily view updates on issues in critical bugs in core and so on, see crucial updates, core releases, and of course I also follow the Drupal Planet RSS feed."
Drupal Planet is one of the most helpful tools for Kate when it comes to getting new Drupal knowledge, and she often encourages her colleagues to follow it. "I think Drupal Planet is an exciting part of Drupal.org. It’s a great resource for Drupal related articles for everyone; beginner to expert, frontend to backend to sysadmin, the information for all these people is usually very high quality on Drupal Planet. When I’m working with fellow developers who have questions, I always ask them to look on Drupal Planet because I know that the information there is of a high quality, and that anyone can find the knowledge they need in there."It's About the People
Some of the recent changes made on Drupal.org, including the addition of user pictures to the issue queue, have made Kate’s Drupal experience vastly better.
“[The pictures] are great because it makes Drupal.org more personalized, and you can more easily remember the people you talked to because of their photos. And, it reminds people that Drupal isn’t just a CMS, it’s a community, and the people are important.”
“It’s a big question for me how to enroll younger developers,” said Kate. “Looking at the contribution opportunities, [new people] may feel like they can’t be a contributor. So sometimes, they may encounter a bug they don’t know how to fix and think, “oh no, a bug!” instead of recognizing it as an opportunity to learn and grow. If we can encourage more people to become contributors, they will benefit from it and Drupal will benefit from them."
Kate’s advice for new Drupalers is to “start right out and register on Drupal.org. Share modules, create patches, learn how to use git and so on… it’s not easy, but it’s worth it."Growing With the Project
As for herself, Kate hopes to increase her skill level by contributing to Drupal 8 core.
"I participated in DrupalCon Amsterdam, and really liked what Dries said about getting more benefits to small companies who contribute so that it will be easier for employers to understand why they spent their time and pay for developers on core. I would be much more experienced if I could participate in Drupal core development."
"I also want to someday give a session at DrupalCon,” Kate added. "I give a lot of sessions in my local community, camps and so on. I’ll be speaking at Moscow Drupal Camp in November, but hope to speak at a DrupalCon soon."
We all wish you the best of luck, Kate, and hope to see you on a stage at DrupalCon soon!Personal blog tags: drupal.org user researchpersona interviews
Entity Scaffold is intended to be an easy way of creating your own Entities by auto-generating a basic Entity which the developer can customize later.
It is mainly based on Drush, the developer may pass the name of the module which the Entity will be part of, then, Entity Scaffold will create all the needed hooks, schema, etc and place the new Entity files inside the given module's tree.
This past week, I was listening to the new and excellent podcast, Gaming & BS. The episode was about Game Balance, and the hosts, Sean and Brett, had an interesting discussion about Encounter Balance in RPGs. Their discussion was solid, but as they were talking I realized that Encounter Balance is not the root issue. There is more lurking beneath the idea of Encounter Balance, and if you want to solve the problem you have to find the root cause. So let’s go digging…Encounter Balance
Let’s start with a definition. Encounter Balance, for this discussion, is a concept that the adversaries (i.e. monsters) in a given encounter (i.e. 10×10 room) are a fair match for the PCs, given their level of experience, gear, etc. For example: A group of 4 1st level D&D characters would encounter a room of kobolds (fair) rather than a group of trolls (unfair).
Encounter Balance can be mechanically enforced, in the case of the D&D 3.5/Pathfinder, which uses the Challenge Rating system for monsters. This system ranks monsters based on their lethality. A Pathfinder GM can then create an encounter using one or more monsters to match them to the level of the party (e.g. A CR4 monster vs a level 4 party).
Encounter Balance can also be socially enforced, in the case of an agreement at the table, be it a Campaign Framework or Social Contract. In this case, the GM agrees to only build encounters which match the power level of the characters.I Do/Don’t Believe in Encounter Balance
There is a pretty good divide on this issue, and this article is not going to make a case for Encounter Balance one way or another. That is a preference for your group to decide.
I have GM’ed using it and not using it, and those campaigns came out fine.
Despite it being an issue of group preference, people continue to argue both sides. When they do, they often are having the wrong argument because they are not talking about the root issues.I Am Root
When people start arguing about Encounter Balance they are debating about three intertwined concepts. The argument would be more efficient if people address the three core issues. If they did, the concept of Encounter Balance would fall into place.
So what should we be talking about?Character Death
When you get to the bottom of things, Encounter Balance exists to address the issue of Character Death. When the 1st level party opens the door and there are five trolls in the room, Character Death is what the players fear. Encounter balance is only the symptom.
If Encounter balance was strictly a mathematical issue of the balance of the opposition to the level of the party, then a 10th level party should be equally upset when they open the door of the room and find 5 kobolds in the room. That is not what happens, because Character Death is not an issue. They just send the fighter in alone to kill everyone in the room, and move on.
What Encounter Balance implies is, “When you open the door, there is a reasonable chance for you to defeat what is in the room. You won’t be killed without a fair fight.”Rules Inform Play
The next concept is one in which I am a firm believer: rules inform play. Meaning, if there is a mechanic for something in the game, then that rule tells you something about how the game should be played. Thus in Pathfinder, the Challenge Ratings of monsters tells you that Encounter Balance is a part of the game.
You can ignore any rules in a game. There are no Game Police, who are checking to see if you are using every rule, and that is one of the great things about the hobby. But, ignoring the rule does not mean that there are not mechanical implications in other parts of the game. That gets into a topic I call Off Label Usage, which is a topic for a future article.
There is also a more recent trend, and one that I will attribute to the influence of d20, which is in the absence of rules, players often don’t think they can perform certain actions. For instance, if a game does not have rules for how to negotiate with a monster, then players may imply that it is not an option. I say imply, because the game may not have a rule for it, but the GM can make a ruling. This is important, because not every encounter needs to wind up in a combat. Players could evade, negotiate, use stealth or trickery rather than go toe-to-toe with a more powerful creature. If players are not aware of those options, they will treat every encounter as a combat (when you have a hammer…).
It is important to understand the rules of the game and what concepts are codified, and what things are implied.Expectation Management
A game does not have to have rules for Encounter Balance for it to exist in a campaign. As said above, there are non-mechanical ways to have Encounter Balance, which brings us to the final concept: Expectation Management. That is just Project Management speak for making sure everyone is on the same page.
The GM and the players need to discuss and come to an understanding of whether or not their game and campaign will have Encounter Balance. The way to start is by discussing the issue of Character Death in the campaign.
What Character Death means will be different from group to group. In some groups, Character Death is a normal occurrence and it can happen any time; these groups will likely not worry about Encounter Balance. Other groups only want character death at dramatically appropriate moments in the story; they will lean towards more balanced encounters.
The group also needs to discuss what non-combat options exist in an Encounter, and which ones have rules and which ones are rulings. When there are a multitude of other options outside of combat, Encounter Balance becomes less important. When that 1st level party finds the room of trolls, if they believe that they can talk their way past them, or outsmart, outrun, etc, they won’t feel that they have to fight them.
Finally, if Encounter Balance is codified within the rules, address whether the group needs to agree whether or not that rule will be followed. It is easy enough for a Pathfinder GM to ignore the Challenge Ratings of monsters, but it’s important that the players all know that is how the GM is playing. Again, rules inform play.Getting To The Heart of The Matter
Encounter Balance is risk management for mitigating Character Death. In some games, there is no concept of Encounter Balance (i.e.Call of Cthulhu), and Character Death is a real possibility. In other games (i.e. Pathfinder) Encounter Balance is not only a concept but is also mechanically enforced, and there exists an expectation of it during play.
By discussing Character Death, non-combat options, and the GM’s adherence to any Encounter Balance rules, you can determine if your game will have Encounter Balance or not. By making sure everyone has the same understanding, your games will be more enjoyable.
How do you address Encounter Balance in your games? Do you run a game with Encounter Balance that does not have rules for it? Do you run a game where you ignore the Encounter Balance rules?