Wednesday, March 2, 2016

Get Your Project Management Certifications and Save 93%

Save 93% on this test prep bundle and get your project management certifications

Project management is a lucrative field that’s growing every day—and not just because people like telling other people what to do. Project managers are core parts of any team they’re on—and you can train to become one with our Project Management Certified Professional Bundle. Get it for $35.99 at SitePoint Shop.

This bundle includes two courses that’ll help you get your PMP and CompTIA Project+ certifications. Along the way, you’ll pick up must-know industry terminology and in-demand skills like putting together a great team, staying within budget, completing a project on time, and quality management. The bundle includes plenty of sample questions, so you’ll get a feel for what you’re in for come exam time.

Jump into a lucrative new career…and get your start with the Project Management Certified Professional Bundle for $35.99.

Continue reading %Get Your Project Management Certifications and Save 93%%


by SitePoint Offers via SitePoint

What Is Drupal?

Drupal is a popular open-source content management system written in PHP. Having been created in the early 2000s by a Belgian student, it now powers some of the most prominent websites on the web (WhiteHouse.gov, Weather.com, etc.). It is often regarded as a competitor of CMSs such as WordPress and Joomla.

One of the most important components of the Drupal project is its community of supporters (contributors, developers, evangelists, business owners, etc.). Prominent within this community stands the Drupal Association, responsible for "fostering and supporting the Drupal software project, the community and its growth".

A giant leap from its predecessor, the 8th major release of the Drupal project has just hit the shelves. It brought about a serious modernisation of its code, practices and mentality. Many regard this shift as a real move away from the traditional notion of a CMS to more of a Content Management Framework (CMF) that provides a great platform for building complex applications.

In this article, I'm going to answer some of the more frequent questions people have about Drupal when starting up for the first time or considering doing so:

  • Is it right for me? Who is it aimed at?
  • How can it be installed, and where can I host it?
  • How can I start working with it as a developer?
  • What options do I have for extending functionality or styling it?

Who Is Drupal Aimed At?

Since the beginning of the project, Drupal has evolved from being mainly a tool for building smaller sites to one that can now power enterprise-level platforms. Especially with Drupal 8, site builders and developers can easily scale up from small websites to large platforms with many integrations. For example, the adoption of Composer allows you not only to bring external libraries into a Drupal project, but also to use Drupal as part of a bigger project of applications and libraries. It's safe to say that Drupal is flexible enough to meet the needs of a wide range of projects.

When it comes to development, Drupal has always had a relatively closed community—not because people are unfriendly, quite the contrary, but mainly because of the code typically being written in a Drupal way (resulting in what sometimes is referred to as Drupalisms). This has meant a learning curve for any developer starting up, but also less interest from developers of other PHP projects to jump in and contribute.

This is no longer the case. Especially with the release of Drupal 8, the community now promotes a new mentality of code reusability and best practice across different open-source projects. Active participation in the PHP Framework Interoperability Group is part of this effort, and using a number of popular Symfony components in Drupal 8 core is a testament to this commitment. 

With this move, the Drupal community has gotten richer by welcoming many developers from other communities and projects, and it is sure to grow even further. So if you are a Laravel developer, looking at Drupal code will no longer be so daunting.

How Can I Install Drupal, and Where Can I Host It?

Traditionally, Drupal has had a relatively easy installation process, particularly for people who at least knew their way around a Linux environment. The project simply needs to be dropped into a folder your web server can run (which needs to be using PHP and have a MySQL or MariaDB database). Then pointing your browser to the /install.php file and following the steps takes care of the rest. The most important screen you'll see is the one in which you select a specific database to use.

In terms of requirements, the LAMP stack (Linux, Apache, MySQL and PHP) environment has always been a favourite for Drupal to run in. However, it is in no way restricted to it. Solutions exist for installing it straight on Windows or Mac (e.g. using the Acquia Dev Desktop) but also on a Linux system that runs other web servers.

The easiest approach, if you go with your own setup, is to use a LAMP server for hosting. For a bit more performance you can replace Apache with Nginx, but you'll then have to take care of some specific configuration that otherwise is handled in the .htaccess file Drupal ships with.

However, if you don't want the hassle of maintaining your own hosting server, there are three main providers of specialised Drupal managed hosting: Acquia, Pantheon, and Platform.sh. These also provide a workflow for easy updates and development flow. Past that, you are looking at fully managed hosting with a Drupal development company.

How Can I Get Started Developing for It?

Developing Drupal websites has typically been the kind of thing you either liked a lot or didn't like at all. This is because when you were first introduced to Drupal, you encountered very many specificities that you didn't see in other projects. So if those tickled your fancy, you loved it forever.

With getting off this island in Drupal 8, this is no longer the case as much. You still have plenty of Drupalisms left that you can love or hate, but you now also have external components like Symfony or Guzzle and, most importantly, a more modern way of writing code in general (OOP, design patterns, reusable components, etc.). So your PHP skills from building websites with Zend will come in handy.

A good way of getting into Drupal development is to follow some online video courses. There are a couple of resources that are excellent for this purpose, most notably Drupalize.me. If, however, video is not your favourite medium, there are also many written tutorials and guides available to get you started. Check out the following links for some of the first steps you can take:

Since Drupal 8 is brand new, you'll find significantly more learning content for Drupal 7. Nevertheless, the focus in the community has been shifting recently towards Drupal 8, so you can expect more and more of these resources to crop up. And if you have no experience with any version of Drupal, it's best to focus exclusively on Drupal 8 as the changes between the two are big and perhaps you'd be facing unnecessary challenges.

How Can I Extend Drupal?

The main extension point of a core Drupal installation is its module system. 

Modules are used to encapsulate bigger chunks of reusable functionality that can/should work on different sites. Aside from the core modules, there are a large number of contributed ones, available for installation. 

Granted, most are still only for Drupal 6 and 7, but the community is catching up also for the newest version. This problem is also mitigated by the incorporation in Drupal 8 of a few popular contributed modules as well as extending the scope of what core can do out of the box (compared to Drupal 7). 

Lastly, custom modules (the ones that you write yourself) are the primary way you can add any functionality that you want and that is not available via a contributed module.

Installing modules can allow you to plug in various pieces of functionality, but you should not treat this as a green light for adding too many. It's always better to stick to the ones you actually need, and don't be afraid to be critical in this respect. You can also work on finding a good balance between contributed code and the custom one you write yourself. 

Additionally, since we are talking about open-source software, you should always evaluate the modules you install. The following indicators are good examples to pay attention to: number of downloads and usage, commit frequency, maintainer engagement, state of the issue queue.

And do keep security in mind as well. It's highly recommended you keep both Drupal core and any contributed modules up to date as this will significantly help you keep your site and server secure (though it doesn't ensure it).

What About Styling?

The styling layer of a Drupal site is handled (in large part) by its theme. Themes are similar to modules in that they are an extension point, but they have different responsibilities. They contain the styles, front-end libraries and in most cases template files that are used to output data.

There has been great progress in Drupal 8 compared to the previous version: the popular Twig engine has been adopted for templating, theming has been limited to Twig template files, debugging and overriding templates has been made much easier, etc. Similar to the advances in back-end development experience (DX), the theming layer has been made more appealing to the non-Drupal crowd. Front-end developers can now easily work with Drupal themes without having to understand the ins and outs of the back end.

Drupal core comes with a number of themes that can provide you with examples but also which you can extend from. There are also contributed themes similar to how there are modules. Popular front-end frameworks such as Bootstrap or Zurb Foundation have mature Drupal theme implementations for Drupal 7, which are also readying for Drupal 8. These work very well as base themes but also for quickly scaffolding a website and making it look decent.

Paid themes are also available to try out. Usually they are very cheap and quick to set up. The problem with them is that they are worth exactly as much as you pay for them and usually have gaping holes in their flexibility. As a beginner, these themes can seem like a great way to set up a site, and they very well may be. However, as you progress, you'll learn to avoid them and build your own, based on external designs or even plain HTML/CSS/JS templates.

Conclusion

Drupal is a powerful tool for building websites and platforms of any kind. With each new major release, Drupal has shown a commitment to better itself, become more robust and flexible, and embrace outside communities as well.


by Danny Sipos via Envato Tuts+ Code

Improve Your Angular Skills in Our Coffee Break Series

Do you want to learn more about AngularJS? It has become the go-to framework for many web developers, who find it an all-in-one solution for quickly building front-end single-page web applications.

We've put together a series of Coffee Break Courses designed to teach you AngularJS in small, bite-sized chunks. Each course takes just ten minutes or so, and teaches you a single, useful skill. So far, we've covered:

Here's some more information about each of the courses:

1. Testing Angular Directives

Angular directives require a slightly different approach to unit testing than other Angular components such as services or controllers. In this Coffee Break Course, Envato Tuts+ instructor Dan Wellman will show you how to take an existing Angular app and add tests for its directives with Sinon, Jasmine, and Karma. You'll learn how to initialise any modules used by the app, and how to create dummy markup for the directive to bind to.

Watch the introduction below to find out more.

2. Testing Angular Controllers

If you haven't unit tested an Angular application before, you might not be aware that there are some extra features that you can use to make testing easier, such as hooking into Angular's dependency injection, and using angular-mocks for a range of test-friendly utilities.

In this course, Dan Wellman will show you how to take an existing Angular app and add tests for its controller. You'll learn how to create a new scope and how to create an instance of the controller and associate it with that scope. You'll also see how to inject dependencies and how to stub methods in dependencies.

Watch the introduction below to find out more.

3. Advanced Angular Directives

Directives are one of the least-understood features of Angular. In this Coffee Break Course, Envato Tuts+ instructor Reggie Dawson will show you how to build an Angular directive with a dynamic template. The display template will be chosen based on the type of content passed to the directive. This directive is built to be easily extensible so that more templates can be added easily.

Watch the introduction below to find out more.

4. Sharing Data Between Angular Controllers

One of the limitations of AngularJS is the difficulty of communicating between controllers. You'll be learning with Reggie Dawson again as you discover some simple techniques for sharing data between Angular controllers. You'll see how to pass data with services, and you'll also learn a trick for passing parameters along with router state.

Watch the introduction below to find out more.

You can take our series of Coffee Break Courses straight away with a free 10-day trial of our monthly subscription. If you decide to continue, it costs just $15 a month, and you’ll get access to hundreds of courses, with new ones added every week.

We've got more Angular courses in the works too, so stay tuned.


by Andrew Blackman via Envato Tuts+ Code

Ruby/Rails Code Smell Basics 03

6 Ways to Use Advanced Twitter Search for Increased Influence

bg-twitter-search-560

Do you want to be a recognized expert in your industry? Looking for relevant conversations to weigh in on? Using Twitter’s Advanced Search to monitor keywords and conversations can help you connect with influencers and uncover opportunities for thought leadership. In this article you’ll discover six ways to use Twitter’s Advanced Search to increase your [...]

This post 6 Ways to Use Advanced Twitter Search for Increased Influence first appeared on .
- Your Guide to the Social Media Jungle


by Beth Gladstone via

LA 2024

The official site of the LA24 Exploratory Committee to bring the 2024 Olympic and Paralympic Games to Los Angeles.
by via Awwwards - Sites of the day

PhysicsJS : Physics engine for JavaScript

A modular, extendable, and easy-to-use physics engine for javascript.

The post PhysicsJS : Physics engine for JavaScript appeared first on jQuery Rain.


by Admin via jQuery Rain