Mixed HowTos

DrupalCon Portland: Mobile Roundup

Drupal Fire - Thu, 04/25/2013 - 04:54

Four Kitchens (via DrupalFire)

DrupalCon is coming! In just a little over a month, our Drupal community will meet in Portland to learn what’s new in the web and Drupal. I have already begun checking out the schedule to find some of the best frontend talks.

Sessions

Sam Richard (@snugug) and Mason Wendell (@codingdesigner) are giving a talk on how to develop a responsive site with Sass and Breakpoint. I have had the pleasure of working with both of these guys with the work for Team Sass, and look forward to their session about the changes with Breakpoint.

Josh Riggs (@joshriggs) will be showing the Zen of HTML Prototyping and Designing in the Browser. This is especially important for ensuring the proper mobile design is ready for the client. We have been designing within the browser over the past year at Four Kitchens and are excited to see what other companies have been doing with it.

Vadim Mirgorod (@dealancer) has a session to Integrate Backbone.js into Drupal 7 and 8. We have already begun to use Backbone.js to create some awesome mobile and responsive apps at Four Kitchens, and I am exited to learn new ways to integrate it into a Drupal site.

Jared Ponchot (@jponch) of Lullabot will have a session about Designing for the responsive age we live in. I look forward to seeing some tips and tricks I can apply to our design process here at Four Kitchens, and possibly better ways of thinking of responsive design.

Training

Want to start DrupalCon off running, and get a full-day responsive training? Chris Ruppel, Sam Richard and I are offering Advanced Responsive Web Design with Sass + Compass on May 20th. This shouldn’t be missed for anybody who wants to learn about how to properly implement a responsive design, and the tools to use to make your life easier.

Categories: Mixed HowTos

Debugging Drupal 8 plugins

Drupal Fire - Thu, 04/25/2013 - 03:36

Károly Négyesi (via DrupalFire)

When developing (with) Drupal 8, you will occasionally see the superb helpful exception from DefaultFactory: the plugin did not specify an instance class. A what did not a-do a what?? Glad you asked. For example, here's BlockManager:
<?php
  public function __construct(array $namespaces) {
    $this->discovery = new AnnotatedClassDiscovery('block', 'block', $namespaces);
    $this->discovery = new DerivativeDiscoveryDecorator($this->discovery);
    $this->discovery = new AlterDecorator($this->discovery, 'block');
    $this->discovery = new CacheDecorator($this->discovery, 'block_plugins:' . language(LANGUAGE_TYPE_INTERFACE)->langcode, 'block', CacheBackendInterface::CACHE_PERMANENT, array('block'));
  }

  /**
   * Overrides \Drupal\Component\Plugin\PluginManagerBase::createInstance().
   */
  public function createInstance($plugin_id, array $configuration = array(), Block $entity = NULL) {
    $plugin_definition = $this->discovery->getDefinition($plugin_id);
    $plugin_class = DefaultFactory::getPluginClass($plugin_id, $plugin_definition);
    return new $plugin_class($configuration, $plugin_id, $plugin_definition, $entity);
  }
?>

So what happens here is that the $plugin_definition array does not contain a class key. More often than not, it's completely empty in fact. How does this array get assembled? First we call the getDefinition method of CacheDecorator. This will try to retrieve the definitions from cache, if it doesn't succeed it will call the getDefinition method of whatever it decorated, in this case (just look at the line above CacheDecorator in __construct), it calls the getDefinition method of the AlterDecorator. AlterDecorator calls an alter hook on... you can now guess, on the definitions returned by the getDefinition method of DerivativeDiscoveryDecorator. Which, in turn, calls the getDefinition method of AnnotatedClassDiscovery (a separate blog post in itself) and adds whatever derivatives it sees fit. What's a derivative? For example, in Views, derivatives make it possible to provide one row plugin per entity type by define just a single plugin with a class which generates the plugin definitions. In this case, we have one plugin per custom block.

So here's a list of what happens in case of a cache miss:

  1. AnnotatedClassDiscovery looks for class in directories like .../modules/$module_name/lib/Drupal/$module_name/Plugin/$defining_module/$plugin_type for plugin classes. In this case, the $defining_module is 'block', and $plugin_type is also block. You can run ls core/modules/*/lib/Drupal/*/Plugin/block/block to see what it finds (except that the two * is held to be the same).
  2. AnnotatedClassDiscovery reads class annotations, these are the base definitions.
  3. DerivativeDiscoveryDecorator takes the 'derivate' class from the base definitions and adds those.
  4. An alter hook runs on the definitions.
  5. These decorated, altered definitions get cached.

Phew!

Categories: Mixed HowTos

One less JPG

Drupal Fire - Thu, 04/25/2013 - 02:33

Four Kitchens (via DrupalFire)

I’d like to demo a simple how-to. There are many, many techniques to make pages load faster, but this post attempts to demonstrate large gains from very small code changes.

People often build beautiful sites with multiple easy-to-use JavaScript libraries. Then, when it comes to addressing frontend performance, suddenly those libraries are an enormous download that the users are forced to bear.

Just one image

Before you go worrying about how to minify every last library or shave tests out of Modernizr, try and see if you can remove just one photo from your design. It will make a bigger difference.

Coined by Adam Sontag, the “one less JPG” idea — nay, MOVEMENT — is summed up perfectly here:

The solution to worrying about JS lib/framework size: include one less .jpg on your site. #throneofjs

— Mike Taylor (@miketaylr) July 22, 2012

Real example

Last year we re-launched Pressflow.org. We have some mobile traffic, but it’s likely people just browsing for info, since no one has a good reason to download Pressflow onto a phone or tablet. Let’s keep their attention and make the experience fast.

We have this huge, beautiful mountain on the homepage. It’s great. But it’s also 160K. I tried making it smaller, or splitting the photo off of the background pattern, but it decreased the quality of the photo too much when I lowered the file size. We made a wonderfully small SVG logo, but that’s not an option for a photograph with this kind of detail.

How much impact does it have?

A mountain is a big thing — just like the amount of traffic Pressflow can handle — and the image we chose was meant to convey that vastness. Since it doesn’t really pack the same punch on smaller screens, why include it at all? I decided to use Modernizr and conditionally load the stylesheet that references the mountain. That way it never gets loaded by tiny screens that don’t need it.

Using the Modernizr Drupal module, I added a conditional load into the .info file of my theme:

; Load CSS with Modernizr
modernizr[Modernizr.mq('screen and (min-width: 42em)')][yep][] = css/big.css

This tells Modernizr to output a Modernizr.load() statement with the test I specified. In this case, Modernizr will only load big.css if the test is true. My test checks the width of the window using a media query — .mq() — and returns true if the screen is at least 42em, causing the CSS to be fetched. Here’s the JavaScript output:

Modernizr.load({
test: Modernizr.mq('screen and (min-width: 42em)'),
yep : 'http://pressflow.org/sites/all/themes/pfo/css/big.css',
});

So that’s it, instant savings!

..oh what’s that? Always test your work? Thanks for keeping me honest.

Here’s some data.

I’ve got two network waterfalls here for comparison. They show a pretty stark difference following this one-line change to my code. If a screen isn’t big enough for the mountain, it’ll only take 20 HTTP requests and 193K total. If the screen is big enough, it takes 24 HTTP requests — for the CSS and then the images inside it — totalling 384KB total. That’s a savings of 191KB (almost exactly 50%) from a single change to my code. You’d have to remove 19 copies of jQuery 2.0 to achieve this kind of bandwidth savings.

(by the way, didja hear that jQuery 2.0 has small QSA-only custom builds?)

Small screens

Big screens

You can see in the second waterfall that the Initiator of big.css is modernizr.min.js, meaning that JavaScript loaded the file after running the test.

ThoughtContentLoaded

I hope this shows how easy it can be to reduce your page weight without worrying about shaving bytes of JavaScript that are supplying valuable functionality if you know how to use them right.

If you want to know more about the conditional loading API within Modernizr, head over to yepnope.js documentation and start reading. For more Drupal-specific examples check out the official documentation for conditional loading using the Modernizr module.

Categories: Mixed HowTos

High server load because of repeating queries too many times

Drupal Fire - Mon, 04/22/2013 - 22:38

2bits (via DrupalFire)

One of the suboptimal techniques that developers often use, is a query that retrieves the entire content of a table, without any conditions or filters.
For example:

SELECT * FROM table_name ORDER BY column_name;

This is acceptable if there are not too many rows in the table, and there is only one call per page view to that function.
However, things start to get out of control when developers do not take into account the frequency of these calls.
Here is an example to illustrate the problem:

read more

Categories: Mixed HowTos

What are Drupal Entities?

Drupal Fire - Sat, 04/20/2013 - 04:06

Lullabot (via DrupalFire)

We've launched a new series, Working with Entities in Drupal 7, which takes a deep dive into the Entity API, and shows you how to work with existing entities, as well as creating your own, new custom entity. To kick things off, we have a free video to give a nice overview of what Drupal entities are, and the various pieces associated with them.

Categories: Mixed HowTos

Our Plan for Learning Drupal 8

Drupal Fire - Sat, 04/20/2013 - 00:35

Lullabot (via DrupalFire)

In this episode, the Drupalize.Me team — Addi, Joe, Kyle, and Emma — talk about our team's plan for learning and teaching Drupal 8. Drupal 8 probably won't be released until the end of 2013 or 2014, but there is a lot to learn with some of the big changes coming.

Why and how the Drupalize.Me team is gearing up for Drupal 8

Categories: Mixed HowTos

A Dazzling Collection of iPad Mini Wallpapers

Tutorial Lounge Articles - Fri, 04/19/2013 - 02:04

Wall papers make your iPhones, Smart phones, tablets and iPads attractive and appealing. All of us want to paste different and illusive wallpapers on our screen to make our communication accessories incredible. Every iPhone or iPad has built in wallpapers. But if you want something extra ordinary for your iPad, then just have a look on our tremendous collection of iPad Mini HD Wallpapers. We have extracted out some of the best and extensive range of iPad wallpapers for you to give your iPad an excellent and wonderful look. Now you do not have to search the wallpapers for your iPad, as we are offering you a very special and striking iPad Mini wallpapers collection. The very cute and beautiful image, incredible animation, wonderful colors make these high definition wallpapers a perfect choice for your iPad. In this roundup article, you will get not only a bulk of eye-catching iPad wallpapers but also some basic information about the HD wallpapers.

You can also share the wallpapers with your friends and colleagues. We have selected the wallpapers according to the choice of very age group. These smashing iPad wallpapers not only give your iPad screen a tremendous look but they are also an excellent addition in your wallpapers collection. If you are very fond of collecting good wallpapers, then these wallpapers will definitely appeal you because they are very different and exclusive from the other regular wallpapers. If you want to change your mini iPad because you think it become old? Then just consider our advice, download the superb iPad mini HD wallpapers and then decided whether you want to change your mini iPad or not. As these wallpapers will completely change the outlook of you mini iPad and you will not feel that your mini iPad is old as it carries superlative and fascinating HD wallpapers. Do have a look on them!

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading

Downloading 

Downloading

Downloading

Downloading

Categories: Mixed HowTos

Bye, Bye Drupal 6

Drupal Fire - Thu, 04/18/2013 - 15:42

Cocomore (via DrupalFire)

It's the year 2013 and here at Cocomore we are looking forward to the future of Drupal and the release of Drupal 8.

read more

Categories: Mixed HowTos

DrupalCamp Austin: Past, Present, and Future

Drupal Fire - Thu, 04/18/2013 - 00:11

Four Kitchens (via DrupalFire)

From its inception in 2009, Four Kitchens has been heavily involved in the planning and organizing of DrupalCamp Austin, along with other Austin Drupal leaders like Astonish Design, Volacci, and Entermedia (to name a few).

It seemed like in 2011, we had hit our stride: Angela Byron was keynoting, we produced one of the first responsive DrupalCamp websites, introduced full-day training to the camp, and finally found a cool Druplicon mascot (we love you, hipster Druplicon).

Then in 2012, things came to a halt. Maybe the Mayans meant to predict the end of DrupalCamp Austin and not the end of the world. Okay, maybe not. But 2012 was definitely a turning point in the Austin event landscape with the inaugurating Formula 1 race at Circuit of the Americas. While CoA is great for the Austin economy, it was bad news for us and our camp.

Every hotel in Austin and the metro area was booked solid for the whole month of November, which is when we usually host our camp. We didn’t want to put on a camp that would be inaccessible to folks from out of town, especially our friends in Dallas and Houston; so we decided to cancel the camp as a result. (Although we did have an awesome one-day event aptly called Drupal Day Austin.)

Back with a vengeance

We’re no Die Hard 3, but we are back with a vengeance in 2013! (Sam Jackson may even make an appearance at this year’s camp. Okay, no. Don’t get your hopes up.)

Here’s what’s new this year:

  • 3 days instead of 2: The camp will start on Friday with full-day trainings and a one-day web leadership summit open to anyone who works in the web (and free to attend!).
  • Full-day trainings take place on Friday so you can enjoy 2 days of camp, uninterrupted.
  • Half-day trainings will still be available the Saturday of the camp for those who prefer half-day training, and don’t mind missing half a day of camp talks.
  • Tech trivia Friday! Start off the camp with a fun trivia night and test your overall geeky knowledge.
  • We’re downtown, baby! Our venue this year is the Austin Convention Center, conveniently located right by the metro rail and near watering holes like Easy Tiger and The Gingerman (the unofficial post-meetup spot in Austin).

And now for the fun part!

Register for the camp
Submit a session
Get involved

Volunteer: Email us at volunteer (at) drupalcampaustin.org and let us know what you’re interested in.
Sponsor: Email me personally at cecy (at) fourkitchens.com to talk about sponsorship opportunities.
Train: Get in touch with Diana Dupuis at Astonish Design if you have any ideas or questions about training.

Stay updated

The best way to stay up-to-date is to follow @DrupalATX on Twitter or Facebook.

We hope to see you there!


Photo credit: jenniferconley on Flickr.

Categories: Mixed HowTos

Voting is now Open for the Blue Drop Awards

Drupal Fire - Thu, 04/18/2013 - 00:00

Lullabot (via DrupalFire)

Voting is now open for the 2013 Blue Drop Awards. Lullabot is honored to have helped design and build three sites nominated for Blue Drop Awards this year in three different categories. Tech Guy Labs has been nominated for Best Media Website, PAC-12 Videos for Best Sports Website and Tizen.org Best Associate Website.

Categories: Mixed HowTos

Drupal 8 progress from my / MongoDB perspective: update #18

Drupal Fire - Wed, 04/17/2013 - 09:09

Károly Négyesi (via DrupalFire)

Done: thanks to the 18 months long work of swentel and yched (assisted by xjm, larowlan, alexpott and tim.plunkett) field_config and field_config_instance tables are dead and we are using CMI! Not a lot of tables left.

In progress: node_access is being moved to a class, making it pluggable. This was the last table from minimal profile that didn't even have a solid plan until now, so this is very good news. I am refactoring the entity-field storage system to support only storage backend per entity type and in general be a lot simpler and also event driven.

In the near future: I plan to write an event dispatcher version which will compile the subscriber into the container so that a larger number of subscribers do not slow it down. Based on this -- big props to Damien Tournoud for this idea -- we will add a bridge event to the hook system which fires events for every hook. We hope to attract new developers to Drupal 8 and with this, they do not need to write old, procedural code any more. Obviously converting the existing modules to dependency injected services would be even better but there's no time for that -- there's too much code. It's happening -- the router conversions move page callbacks into classes, the form interface conversion moves forms (unchanged otherwise) into classes but it won't finish before we release.

Categories: Mixed HowTos

ToadCast 015 - ECommerce

Drupal Fire - Wed, 04/17/2013 - 01:24

Metal Toad Media (via DrupalFire)

Joining me for Toadcast 15 is Tom Martin to discuss ecommerce. That's right, a show all about a single topic!

Categories: Mixed HowTos

The Best HD Summer Wallpapers

Tutorial Lounge Articles - Tue, 04/16/2013 - 19:56

Nature always beautiful and given amazing weather seasons such as winter, summer, spring and fall and fortunately some region of this world having all four seasons and mostly European and Americans visiting there for enjoy nature in every season. We are enjoying HOT summer season nowadays with sun shines, hot breeze and cold drinks, its simply awesome feelings. In this HOT season we compile a beautiful collection handpicked of summer wallpapers that we have collected famous websites that provided that HD wallpapers in order for to get a touch for your computers, smartphone and tablet devices for this summer.

In this season we have first seamless post about summer because we care about our audience choice and needs while working on computer and how much affecting these kinds of nature wallpapers on our work strength. In my opinion I would imagine that the revolting blend, particularly in a desktop background images, would be more likely to have an adverse effect. We have a lovely HD summer wallpapers showcase for you to decorate your desktop, this is first collection in the start of summer season, if you like we would like to keep update more desktop wallpapers such as widescreen summer wallpapers, smartphone and tablet wallpapers in near future.

 

Categories: Mixed HowTos

Take advantage of Drupal upgrades

Drupal Fire - Mon, 04/15/2013 - 23:12

Drupal Connect (via DrupalFire)

Drupal's upgrade mantra has always been "we will break your code but we won't break your data" and for that reason, Drupal core and contrib maintainers typically spend a lot of time and effort in providing upgrade paths for your data so you can theoretically just run the upgrade script and update your code and you're good to go.

In practice, this is rarely the case. We all know that Drupal major version upgrades (like D6 to D7) are no picnic. Lots of contrib modules don't have decent upgrade paths or do not exist at all for the newest Drupal version forcing you to find a replacement. Any code code you have that stores data will likely need to have custom update hooks written for it as well.

And even ignoring the data, there's still the issue of code. Your custom modules and your theme will have to be rewritten since there are a heap of API changes between any major version.

In other words, Drupal major version upgrades are a big time suck. You're rewriting code and massaging data and re-theming, all just to have a clone of your already-working site on the latest Drupal version.

Missed opportunities

According to Jeffrey Zeldman, "redesigning without fixing problems is a missed opportunity." Along those lines, I think that upgrading your Drupal site without fixing problems is a missed opportunity.

Why upgrade your site to an exact clone of itself when you could just as easily improve and simplify the problematic parts? You're already rewriting code and tweaking data, so you might as well use that to your advantage instead of just porting your existing site to a new version, warts and all.

However, upgrading your Drupal site via the upgrade script means that you have to keep everything as close to the old version of the site as possible so that the upgrade will work. You can't change content types or fields or roles or modules because then the upgrade will obviously break. So what's the best way to handle this?

The fresh start and migrate approach

My suggestion is a from-scratch build followed by a migration. The process goes like this:

  1. Identify problematic or messy or improvable areas of your current site.
  2. Sketch out a new, clean, improved site that fixes all of the problems of the current site. Pretend it's a brand new site for a client and you aren't constrained by any technical debt.
  3. Build that site. Build it like a new site, with a new theme and new content types and a new block setup and new field organization and new roles and new everything.
  4. Migrate the old site's content into the new site using the Migrate module. Depending on your setup, you might even be able to use the Drupal to Drupal framework for the Migrate module which will simplify your migration.

Advantages of a clean build

The benefits should be clear here. With any second attempt at something, you go into it with the knowledge of where the first attempt failed, and this is especially true in the world of programming. You recognize gotchas or redundant content types or ugly IA and you know how to fix it.

Or maybe your old site didn't even have any real issues (liar). Maybe you just want to use this opportunity for a redesign and IA overhaul. Either way, the end result here is that you get a better site and you don't have to inherit the old site's problems or legacy choices.

It's worth pointing out that you can do this whenever you want, and you don't have to do it during an upgrade. You're always free to rebuild your site and make it better, but it's costly and it's time that you don't directly get paid for, so it's a tough sell. So the reason it works in this case is that you were already going to be spending a significant amount of time upgrading the site, so it's not time you're losing, it's just time that you're transferring from one objective ("upgrade") to another ("upgrade and improve"), the latter being good for business and the former just being a necessary evil.

Also, doing it this way (with a migrate script rather than the upgrade script) means that you can continually migrate in new or updated content as you're working. This is especially useful on sites where content is constantly added, whether it's an active blog or a news site or a site with user comments or a forum, etc. If you upgrade with the upgrade script, then once the script is run, you basically have to lay down a content freeze since it's difficult to pull in any content that was added or edited to the old site after that unless you do it by copying and pasting.

Disadvantages of a clean build

The only clear disadvantage here is time. It can be a little quicker to do the classic upgrade rather than doing a from scratch build and migration (though often not as much as you'd think). However, my rebuttal to this is that the time you spend now will be time saved later since you're ridding yourself of technical debt and you're fixing issues that need fixing rather than just cloning the site.

Categories: Mixed HowTos

Building layout.io, Part III - Milestones, Raw JS, & rolling your own

Drupal Fire - Sat, 04/13/2013 - 10:46

Caleb G (via DrupalFire)

Part III in a series of articles about an online web app/service I am working on.

I've happily reached a significant milestone in the development of my project, finishing a foundational layer that by itself could be valid to open source at some point.

Also:

  • In my last post I explained my reasons for passing on the current crop of JavaScript frameworks. This is a decision that I've been extremely pleased with, as I've managed to conceive/implement my own MVC/MVVM pattern for the project and because it's pushed me much further into my JavaScript education.
  • I have refactored the codebase from using 100% jQuery to about 80% raw JavaScript to 20% jQuery. It is nice to be able to know how to step outside of jQuery and/or deepen one's appreciation for what jQuery is doing under the hood. Also, if you've spent any time on jsperf.com at all you probably know that jQuery is much slower than raw JavaScript for many things. When building an almost-entirely client-side app, speed starts to matter much more than when you have just a couple jQuery snippets on a page, and I want this app to be whip quick. It was a little ackward getting started with plain JS, but once underway I caught the hang of it fairly quickly, and the end result I'm definitely happy with.
  • Currently, I am using localStorage for my data store, and it's been working great for development purposes - it's basically a mock mongoDB for me (I'm storing nested objects in localStorage using a small jQuery library called jStorage). I'm purposely putting off the server side of this application because I want to be able to use the Symfony 2.3 LTS release, which is scheduled for May as middleware between the client-side and mongoDB. The temptation to use node.js is strong, and arguably would be the most performant option, but the reasons for picking Symfony are probably obvious to any Drupal developer.
  • Finally, don't forget - if you are using regex to parse the DOM, you're doing it brain-meltingly wrong!

Cheers all, I'm off to DrupalCamp Sacramento for the weekend.

Categories: JavaScriptDrupalSymfony

Categories: Mixed HowTos

40 Handy Photoshop Tutorials of 2013

Tutorial Lounge Articles - Thu, 04/11/2013 - 04:21

We are almost entering in second quarter of year 2013 and all designers are working hard and creatively in their respective field either web or graphic designing and we choose something from this period because we would like to update our audience with latest and modern adobe Photoshop tutorials. Check below great tutorials that created by professional designers and artistes. Every designer should learn about contemporary designing techniques to produce best and award winning designs such as posters, print advertisements, logo designing, mixed media collage designs, photo manipulations, abstract arts, Photoshop 3d effects, Photoshop and illustrator mixed designs, text effects, photo effects, photoshop lightening effects, instagram effects, grunge and retro design with brushes, textures and third party elements usage techniques are here.

As designer I must say you will learn and earn if you will enhance your skills through these latest Photoshop tutorials because we covering every aspects and directions of designing profession. Now go below choose your path to get more perfection in designing ideas.

Add depth to mixed-media collages – Photoshop Tutorial

Create an Earth Shattering Disaster Scene in Photoshop

Adobe Illustrator & Photoshop tutorial: Design abstract book art

Photoshop tutorial: Use Pantones to colour hand-drawn art

Create a Beautifully Designed 3D Starfish Icon

Iron Man In Illustrator And Photoshop

Old Signage In Photoshop 3D

Create a customized graphic brush in Photoshop

Create a Magma Hot Text Effect in Photoshop

Use Photography to Create a Scenic Matte Painting From a Sketch in Photoshop

Classic Light Effect In Photoshop

Colourise a black and white photo in Photoshop

Photoshop tutorial: Combine real and digital brushes

Photoshop tutorial: Fantasy light effects in Photoshop

Create an abstract collage effect Photoshop Tutorial

Turn day into night in Photoshop with colour-shifted exposure

Oblivion Inspiring Artwork In Photoshop

Create a Heroic Firefighter Painting in Photoshop

How to Draw a PlayStation-Inspired Game Controller From Scratch in Photoshop

Create an Adorable Children’s Illustration

Create a Science Fiction Environment With Photoshop

Create a Computer Chip Text Effect in Photoshop

Create This Stylistic Mixed-Media Artwork in Photoshop

Photoshop tutorial Spice up 3D type

Man Of Steel Symbol In Illustrator And Photoshop

How to Paint a Lovely Pair of Birds in Photoshop Create an “Out of the Box” Stone and Concrete 3D Text Effect With Photoshop and Filter Forge

The Joker Case Study

Video tutorial Breathe life into your pattern swatches

Quick Tip: Emphasize or Hide Skin Flaws With One Layer

Easy Furry Text In Photoshop

After Effects tutorial  Papercut animation techniques revealed

Create a Soviet-style collage poster

Creating “Surreal Head Stack” Photo Manipulation InDesign tutorial: Design an effective PDF form using InDesign CS6

Craft a 3D scene with Photoshop CS6 Extended

Photoshop tutorial: Digital colour tricks for pencil-drawn art

80s Christmas Artwork In Photoshop

Create a simple iPad splash screen with Photoshop CS6

Unknown Case Study

Categories: Mixed HowTos

Lullabot’s Hierarchy of Qualification

Drupal Fire - Thu, 04/11/2013 - 00:00

Lullabot (via DrupalFire)

My daily life, like most people’s lives, is filled with countless decisions that I rarely take the time to think about. What I’m choosing to eat for breakfast or where I decide to walk my dog are decisions that I make on the spur of the moment without much insight into the mechanics of how I arrived at them. In each of these decisions, I’m sure there are lots of little details that my brain weighs subconsciously against one another. A lot of times my motivations are clear to the outside observer, but sometimes they’re harder to piece together.

I imagine it’s similar when companies start discussing a new project with development or design agencies like Lullabot. Why we do or don’t get excited about a new opportunity might be clear as day, but other times it may seem completely counter-intuitive to you as a potential client. After all, if we’re offering a service and you’re able to pay for it, then it’s time to start working together, right?

Well, not exactly.

That kind of purchasing dynamic works with products, and as normal everyday consumers we’ve been buying products our entire life. We’re conditioned to think that businesses offer their goods and services at a certain price, and we can partake of those goods and services if we’re simply willing to spend the money for them. Imagine if you went to buy a new television with money in hand and the sales rep told you, “Sorry, you’re just not the right fit.”

Categories: Mixed HowTos

Drupalize.Me is Celebrating 250 Hours with 25% Off!

Drupal Fire - Wed, 04/10/2013 - 23:00

Lullabot (via DrupalFire)

We're celebrating two hundred and fifty HOURS of video lessons on Drupalize.Me! And now you can help us celebrate by joining the Drupalize.Me family at a discounted rate. For the next three days individuals can save 25% on your new membership* by using the discount code 250HOURS.

This sale will only last three days. Sometimes we get all weak and cave to public pressure. But not this time because next week we'll have released new videos and there will be more than 250 hours of video. (You can only celebrate a milestone for so long...and we've decided that three days is it.)

We've got videos for site builders, module developers, and themers. We cover modules like Rules, Omega, Panels, Views, and Organic Groups. We cover topics such as Drush and Git. Every account has a personal playlist too so that you won't forget which videos you want to watch next.

If you've never been a member of the Drupalize.Me program, or if you let your membership lapse, now is the perfect time to save some money AND brush up on your Drupal skills.

* The 25% discount can be applied to any level of new individual membership (monthly, bi-annual, or yearly), and will only apply for the first payment. E.g. if you purchase a monthly membership, you will only receive the 25% discount on your first month.

Categories: Mixed HowTos

Common Issues and Solutions for Dealing with Cloud Computing and VPS performance issues for Drupal

Drupal Fire - Wed, 04/10/2013 - 10:08

2bits (via DrupalFire)

The bulk of Drupal hosting for clients that we deal with is on virtual servers, whether they are marketed as "cloud" or not. Many eventually have to move to dedicated servers because increased traffic or continually adding features that increase complexity and bloat.
But, there are often common issues that we see repeatedly that have solutions which can prolong the life of your current site's infrastructure.
We assume that your staff, or your hosting provider, have full access to the virtual servers, as well as the physical servers that run on them.

read more

Categories: Mixed HowTos
Syndicate content