Archive for November, 2011

The Smashing Guide To Moving The Web Forward





 



 


Many of us rely on open source tools, technologies and standards to help improve the work we do on a daily basis. None of this would however be possible without the hard work, commitment and dedication that others, just like you, have invested in giving back to the Web community over the past two decades.

Modernizr, HTML5 Boilerplate and jQuery are just a few examples of well known projects which were born from a desire to put something out there that could help others on the Web do more. These projects evolved because developers started using them and thought, “Hey, I could do something to help make this better. I bet it could save someone else’s time if I shared this with the world.”

Web standards like CSS3, HTML5 and the foundations of the Web as we know them would also not have been possible without people (just like readers of this post) spending time researching use cases, writing proposals, implementing features and catering to existing and future requirements that could be used by everyone. When you think about it, both standards and open source projects have had a large hand to play in the Web as we know it today.

In this article I’d like to talk about how you can help give back to the Web and a new project that seeks to make this process easier: MoveTheWebForward.org. If you’ve ever thought about contributing to the community but weren’t sure just how, I hope this serves as a good starting point for your journey.

Why Help Move The Web Forward?

In most cases, developers and designers that contribute back do so because of an inherent passion or desire to either improve an open source project, Web standards or the quantity of educational material freely available online.

What you get back from this is (in my opinion) worth every minute of effort.

Contributing to open source projects, you can learn more about the intricacies of programming languages, libraries and standards implementations than you probably could if you were just been a passive user. This can help you gain a better appreciation for how the Web is built, but also improve the quality of the development work you do as a part of your job.

Whilst not the reason most people do it, open source involvement can also often lead to more fulfilling jobs (and occasionally more pay). Demonstrating you have passion (and skills) in a focused area can help highlight you to recruiters at companies where those skills are highly valued.

Finally, involvement can help improve your knowledge, whether it’s simply writing tutorials about standards for others, actually being involved in submitting patches or feature implementations to browser vendors and libraries or contributing to discussions in standards mailing lists (which I’ll discuss in greater detail shortly).

“For me, open source is not about giving back, but its more about being sociable with the developers you admire. I really like forming small groups to work on projects and challenges together, or just like-minded folks that chitchat and passively learn new skills regularly.

The community has given me back great friends and I think we’ve all found more ways to be fulfilled by the work we create.”

 —  Paul Irish, HTML5 Boilerplate, Modernizr, jQuery team

Contributing

1. What can you do and how much time can you contribute?
Before we look at what you can do to contribute back to the Web, ask yourself three very simple questions: What are your strongest skill-sets? How you might these be used in an open source project? How much time and effort would you like to contribute to giving back?

Understandably, a lot of us have full-time jobs and it can be tricky sometimes trying to fit in extra side-projects into our schedules. The great thing about the Web is that there’s never too little or too much time that you can spend moving it forward.

10 minutes is enough to help someone stuck on a Web-development problem and an hour here or there is enough to greatly improve existing open source projects. If you have the desire to give back, anything is possible.

2. Pick a project or Web standard/specification you would like to work on
Once you have some rough ideas of much time you can contribute, you’ll need to decide on the project, standards group or area you would like to help with. The good news is that there’s a great new initiative to help with this called MoveTheWebForward.org (MWF), driven by some of the talented people that brought us HTML5 Boilerplate.

MWF is a project that aims to make it easy for anyone to get started contributing to the open source community.

Whether you’re just diving into Web development, or are have been doing it back since tables were cool for layout, there are a number ways for you to give back to the community. MWF makes it easy to help anyone find ways to contribute back to the Web platform by giving you a list of ideas, resources and guides to get you started.

Not sure what projects to look at or where to find lazy-Web requests you can get done in an afternoon? Not a problem. The site breaks down almost all aspects of open source contribution and even separates things based on your level of experience. Regardless of whether you’re a CSS wizard, a JavaScript ninja, or a C++ hacker wanting to play with WebKit there’s something on MWF that everyone can help with.

Don’t see a project that applies to you on there yet? Don’t worry. It’s being updated everyday and other members of the community can submit pull requests to add new things to it. You may also find it helpful reviewing what libraries and technologies you regularly use personally, whether it be a CSS feature like psuedo-selectors or a JavaScript library like Modernizr or jQuery. Beyond the basics, you may have some insights or ideas for how these could be improved in some subtle way.

Do you feel the implementation of a particular feature isn’t quite as usable as it could be? Are there circumstances where a solution just doesn’t give developers everything they need? The learnings you’ve obtained whilst using things on a day to day basis are something you can share with a project to help improve it.

Take a look at MoveTheWebForward.org each week and if you’re up for it, consider committing to getting a small task done that can push the Web forward.

3. What would you like your role in the project to be?
Most open source projects (and standards groups) have a number of key areas that they require assistance with. In no chronological order these are:

  • Core development
  • Discussions / Mailing lists
  • Documentation
  • Bug submissions triage
  • Operations
  • Testing
  • Site & UI Design
  • Developer Evangelism
  • Support

Depending on the project there may also be areas such as ‘specification writing’ that are necessary in order for features to be discussed before they are implemented.

Core Development

Core development generally involves development of a core set of features, fixes or rewrites for JavaScript libraries, and browser feature implementations or patches when it comes to Web standards.

Whilst beginners won’t generally be directly discouraged from trying to get involved with core development, it’s more often intermediate and advanced users of libraries or features that are better equipped to optimally implement code that is efficient, performs well and passes unit tests.

“I love open source. I’ve been hooked on jQuery since John Resig accepted my first patch in January 2006. It’s been at the center of several profitable projects that I’ve built. Contributing to both jQuery’s code and documentation just seems like the right way to pay that forward.”

 —  Dave Methvin, jQuery team

If you’re interested in getting involved with core development, I suggest spending time familiarizing yourself with:

  • The build/setup instructions for the open source project you wish to contribute to
  • How the project is structured so you can later experiment with making patches and running tests
  • The project contribution guide. Most open source projects these days are hosted on GitHub. This means that filing patches is usually as straight-forward as filing a pull request, but make sure to follow the project’s guidelines on doing this. At jQuery, we require developers to file a ticket in our bug tracker to accompany pull requests but it’s a subtle step that we cover in the contribution guide.
  • Where current contributors congregate to discuss issues, features and patches — with Web standards or libraries this could be a mailing list or an IRC channel. Mozilla has dedicated channels for people wishing to contribute to the MDN as do jQuery and many, many other open source projects.

“Whether you’re contributing to existing projects or open-sourcing projects of your own, giving back to the community is a great way to learn about Cool New Stuff™.”

 —  Mathias Bynens. jsPerf, HTML5 Boilerplate

Discussions & Mailing Lists

Standards Mailing Lists

We all know that Web standards are important. They help ensure the code we write works across different technologies, for people of different abilities and most importantly across all browsers. If you have an interest in pushing the Web forward by getting involved with the standards process, there are a number of different mailing lists you can subscribe to (and participate in) should you have particularly strong feelings about the direction particular technologies or features should be taking.

These mailing lists include public-html, public-webapps, es-discuss, www-style, public-fx and WHATWG. I recommend spending time familiarizing yourself with how contributors to these lists approach discussion as you’ll want to ensure your posts are read rather than ignored – specifically, research proposals, read spec wikis where available and ask other posters for their input offline if you’re unsure about anything.

Note: Chapter 2 of Mark Pilgrim’s HTML5 book contain an excellent discussion of how standards get pushed through mailing lists. It also covers some of the evolution of standards through history and is a recommended read for those interested in grasping how the process works. You can read it for free online here: http://diveintohtml5.info/past.html

The jQuery Standards Team

While many of us would like to see change, the reality is due to time restrictions and lengthy formal processes we’re not always able to participate in standards discussions, get involved with writing specifications and contribute to meetings about the future of features. This can sometimes make it difficult for Web developers to have a voice.

Another problem is that for those that do get involved with the process, it can often feel like participating on a particular thread in standards mailing lists has a limited impact because the Web community is so fragmented. There’s also a lot of assumed knowledge required of existing discussions, decisions and historical context that can make it a little more challenging to get involved.

The jQuery project have set out to try changing this. They want you to have a voice in how the future of the Web is shaped which is why they created the jQuery Standards team. The standards team listens to suggestions or feedback you may have about current specs and if there’s sufficient interest in making changes related to your concerns, they’ll file tickets on your behalf in the appropriate format.

For more information see: https://github.com/jquery/standards

Code/Project Mailing Lists

Mailing lists for code projects (e.g jQuery, Dojo) tend to work quite similarly to those for Web standards. The only real differences are that discussions can sometimes be more fast-paced and generally target the resolution of features or fixes being targeted for a specific library rather than something as broad as a standard.

You don’t have to be someone that implements library code to be able to get involved with these discussions, but it does help having a good level of familiarity with both the library, alternatives to it and the general space being worked on. As per my early suggestion, spend a little time analyzing the best way to jump in with suggestions or ideas to increase the chances of having a positive impact on the conversation.

Documentation

When most developers think about getting involved with open source, their first thought is usually about writing code that can one day be used by many others.Whilst it’s true that implementations are of course important, documentation is an equally if not more important part of the release process.

Think about it: when you first learn about a new specification that’s been implemented or about some new framework that’s just been released, your first port of call is to look at the documentation or the getting started guide so you can figure out just how to use it. Without this documentation, most projects (and indeed, specs) would be nowhere near as popular or widely used as they are today.

The great thing about documentation is that (unlike full-blown patches or implementations), your contributions can be as small or as large as your time permits. I’ve seen developers contribute simple one line changes to documentation whilst others have provided the equivalent of complete chapters of written docs because they wanted to make it easier for others to understand how everything works. If you’re good at writing, consider giving docs a try.

Writing docs is also a great way to increase your knowledge about how to use the software or tool you’re writing it for. If you feel comfortable using a particular project, consider looking at the bugs files on their trackers. This can offer insight into what confuses users and you can try writing out documentation for such workflows or actions that are unclear.

The barrier of entry is a little lower than core development and there are many well known open source projects that could use your help in this area.

Bug Triage (Issue Moderation)

Most open source projects (including frameworks like Modernizr and browsers such as WebKit) have their own issue or bug trackers. These are typically used as a central location where users can submit issues, feature requests and track the progress of what’s currently being addressed. As projects become more widely used, the number of issues received incrementally grows and there becomes a need for these issues to be moderated. Reasons issues may need to be moderated include being:

  • Invalid
    In many cases, users will simply submit issues with a project or specification without spending enough time debugging their solution. Sorting the invalid tickets from the valid ones makes it easier for core developers to focus on addressing the important ones.
  • Duplicates
    The issue may have been previously submitted. This is easy to discover as the majority of trackers have their own search options.
  • Patch welcome
    Where an issue is acknowledged but is beyond the scope (or time-constraints) of a project to patch itself.
  • Won’t or Can’t fix
    There are issues users may submit which a project may admit is a valid problem, but which may not be currently possible to fix, either due to the direction the project is taking or the broader implications it may have on a codebase.

Moderators are usually required to help narrow down issues to a list of (valid) confirmed issues and feature requests. The great thing about being involved in bug triage is that you’re regularly required to evaluate code samples and establish why a bug may or may not in fact be, valid.

“Contributing to the development of open source software, such as jQuery and Popcorn.js, is my way of ensuring that the future is awesome – in both the things people create and the tools that they’ll use to create them.”

 —  Rick Waldron. jQuery team, Popcorn.js

You’ll often find yourself writing short solutions that address the problem as a workaround and the knowledge you build up from these can greatly help avoid the same problems if you run into them in other projects or at work.

Operations

Larger open source projects often have to deal with millions of requests for downloading their library every single day. Even when offering a CDN-hosted version (like we do at jQuery), they still have a large quantity of requests coming in to access their sites, documentation pages and official tutorials. None of these would be able to cope under strain without the hard work that experienced ops people have to offer.

“Being involved in operations has not only given me the opportunity to contribute and sharpen my skills with git, writing tests and streamlining processes, it’s also allowed me to meet some incredibly talented people and make fantastic friends. Contributing to open source has made me better. Period.”

 —  Dan Heberden, jQuery team

Operations (ops) also take care of some of the smaller day to day tasks like granting permissions for new contributors wishing to access different parts of a site, setting up scripts to help automate and streamline tasks and generally ensuring the visible public face of a project stays online. If you have strong ops skills, feel free to reach out to projects (both small and large) as they likely wouldn’t mind some more assistance, either now or at some point in the future.

Testing

Implementations of new browser and library features require an extensive amount of testing prior to being released. This covers everything from ensuring 100% unit test coverage is reached, tests are written (or provided) for any patches submitted and where applicable, tests are run across all browsers, environments and devices your particular project targets. If you’re a stiffler for ensuring code is stable prior to being pushed to end-users, you may be interested in helping out with testing efforts. Speak to current contributors to the project to find out their current need for members looking specifically at this area.

Site & UI Design

Did you know that at projects like HTML5 Boilerplate and jQuery, there are dedicated designers that just focus on ensuring site layouts and UI components look at best as possible in every browser? Every open source site or group, from the W3C to JavaScript libraries generally have front-facing websites and it’s often the case that if a redesign or site maintenance isn’t already in the pipe-line, they could use your help.

“Working on open source projects means you have the skills of several people to tap on. It is a great place to learn Web development, creating workflows that work for collaboration. Moreover, it’s safe – it’s not like you’ll get fired for testing things out. The projects I contribute to are directed towards problems I struggled with myself and wish other designers had.”

 —  Divya Manian, HTML5 Boilerplate

Before you approach a project about helping them with any design work, talk to the members to see what their plans are or what they’d ideally like someone to work on. They may ask you to present a mockup of concepts you may have to establish if they’d like to get you involved with their current design team or in taking on your ideas for one of their next versions. A good to strong knowledge of HTML/CSS and a little JavaScript is always useful to have, but even if you just design in Photoshop that’s another piece of work someone else in the community could take further.

Evangelism & Support

The role of technical evangelists varies quite a lot in open source projects. Its goals can include:

  • Supporting developers in the community by providing assistance, answering questions and making it as easy as possible for developers to solve problems they may be running into (doing so via IRC, Twitter or forums is quite common).
  • Working with developers in the community to help understand why particular standards, browsers, libraries or tools should be used and can make developer’s lives easier.
  • Writing tutorials, creating screencasts and building demos that help educate others.
  • Generally speaking on behalf of the project at events to further enhance awareness about the project’s goals and offerings.
  • If you enjoy helping people solve problems or have a passion for writing (but aren’t a big fan of writing documentation), consider giving evangelism a try.

Share Knowledge, Share Experiences and Build New Things

Beyond assisting with the goals of a specific code project or standards working group, there’s a an array of other useful things you could be doing to help push the Web forward.

Building
Many of the most popular open source projects today once started out as tools and workarounds that a developer or designer worked on to satisfy a personal need. If you love hacking on code, please consider sticking your work up on GitHub and sharing it with the rest of the world. There may be many others (just like you) that your work could end up helping or inspiring it’s a great feeling knowing that you’ve saved someone else from dealing with the same headaches you once had to yourself.

Note: GitHub offer a regular free class on the ‘basics’ that you can sign up for. You can also get a free copy of ‘Pro Git’ that covers most of the fundamentals.

Blogging
Although I’m involved in open source projects, my biggest contribution to the Web is still in my day to day technical writing. Teaching through this medium is a great learning tool and you’ll often find yourself learning more as you write and research about the topics you’re conveying.

Remember that your words can be a very powerful tool for pushing education on the Web forward. For this reason I encourage you to consider writing about what you do and learn — write tutorials, create demos, post gists, write essays.

“After being repeatedly nudged by people to start writing about changes to WebKit and Chromium, which I had been monitoring for a long time already, I wrote my first article back in August 2010.

To date, 64 articles have been published and many more people are aware of and get involved in the implementation of cutting-edge features at both projects. I myself am now part of the Google Chrome and WebKit teams, focusing on improving both the browser as the Web, doing that which I love to do.”

 —  Peter Beverloo, Google Chrome team

Don’t be afraid to make mistakes (because that’s how we all improve). It’s absolutely okay for you to not be a complete expert or authority on a topic. Share what you do know because it has the potential to help many other developers and designers out there. Reach out to others in the community if you don’t know something — ask questions and prompt conversations.

Contribute to the MDN
For those interested in getting involved with writing, it’s okay if you don’t have your own blog. Almost any designer or developer with HTML, CSS or JavaScript skills can also contribute back to the Web through the MDN (Mozilla Developer Network).

The Mozilla Developer Network, also known as MDN.

The MDN is a community of developers building resources to improve the Web, regardless of what browser or platform you’re using. Anyone can contribute to it as the entire site is a wiki (just like Wikipedia). There are sections that detail specs, pages that are just tutorials and others that are just guides to quirks that are useful to be aware of when using particular browser features.

“When I learned about Web standards not much was available out there. The Mozilla Developer Network was one of the first resources I kept going back to when I was stuck. The reason why it still is that way is that it is a living resource that anyone is invited to edit and keep clean.

It is pretty rewarding to be part of this and knowing that what you put on the Web is part of something that by definition is there to keep the Web free, open, and make it easier for the next generation of Web makers not to have to make the same mistakes we did to build something good for the Web.”

 —  Christian Heillman, Mozilla

To give you an example, here’s a page I fleshed out during one of the MDN sprints with (reliable) links to get started with learning Web development: Introduction to Web development. Simple, right? It’s nothing more than an organized page of links, but prior to the new learning section on the MDN site being launched, it helped developers and designers get started with basic fundamentals when they were unsure where to look.

Mozilla evangelists regularly hang out in #mdn on irc.mozilla.org (IRC) and are always happy to help new contributors get started if you have any questions. Consider giving it a try!

Conclusion

That’s it for this guide. I’ll be sure to update it if there’s anything I’ve missed out on, but I hope it inspires others to consider giving back to the Web platform. Remember to check out MoveTheWebForward.org if you’re interested in picking a task you can start working on today. Together, we can help move the Web forward.

Further Reading

With special thanks to Divya Manian, Nicolas Gallagher and Paul Irish. Images courtesy of the 56 Geeks project.

(vf) (il)


© Addy Osmani for Smashing Magazine, 2011.


Desktop Wallpaper Calendar: December 2011





 



 


We always try our best to challenge your artistic abilities and produce some interesting, beautiful and creative artwork. And as designers we usually turn to different sources of inspiration. As a matter of fact, we’ve discovered the best one — desktop wallpapers that are a little more distinctive than the usual crowd. This creativity mission has been going on for over two years now, and we are very thankful to all designers who have contributed and are still diligently contributing each month.

We continue to nourish you with a monthly spoon of inspiration. This post features 30 free desktop wallpapers created by artists across the globe for November 2011. Both versions with a calendar and without a calendar can be downloaded for free. It’s time to freshen up your wallpaper!

Please note that:

  • All images can be clicked on and lead to the preview of the wallpaper,
  • You can feature your work in our magazine by taking part in our Desktop Wallpaper Calendar series. We are regularly looking for creative designers and artists to be featured on Smashing Magazine. Are you one of them?

December Blue

"December Blue is reminiscent of a scene from a classic Christmas stop motion film." Designed by Colin Whitehurst from Philippines.

Smashing Wallpaper - december 11

Retro Christmas

"Inspired by the old Christmas cards and 50′s style." Designed by Joao Lima Jr. from Brazil.

Smashing Wallpaper - december 11

Sweater

"I really like christmas sweaters, and you are better." Designed by Zachary Vandehey from USA.

Smashing Wallpaper - december 11

Christmas Winter

Designed by Shravan Mishra from India.

Smashing Wallpaper - december 11

Firebirds

Designed by Matej Loncko from Slovakia.

Smashing Wallpaper - december 11

Crayon’s Snowy Sailing

"When I was a little girl, I was greatly fascinated about the magic of crayons. I still am. This illustration pays homage to the humble crayon. A life shared with children (and grown-ups who refuse to grow old). A small but a colorful, textured life. This winter season, I want to portray “Crayosa” as she peacefully sails through the snowy sea, carried by the stack of crayons in different shades of blue and purple." Designed by Jessette Dayate – Catral from Singapore.

Smashing Wallpaper - december 11

Sign Of The Times

"The Holidays, the Winter Solstice, the End of the Calendar Year. Make sure you stop and enjoy December for it will be January before you know it." Designed by Deidra Wilson from USA.

Smashing Wallpaper - december 11

Winter Wonderland

"I took this photo whilst walking in the heavy snowfall in the UK last December." Designed by Ben Young from UK.

Smashing Wallpaper - december 11

Holiday Lights

"It’s that magical time of the year. One can never have enough twinkle and glow!" Designed by Tirelessweaver from Canada.

Smashing Wallpaper - december 11

Merry Christmas Wallpaper

"Have a pleasant christmas and enjoy this beautiful time." Designed by Christian Goldemann from Germany.

Smashing Wallpaper - december 11

Simple December

Designed by Lisa Temes from Canada.

Smashing Wallpaper - december 11

Hand Drawn December

"Warm, hand drawn letters defrost a cold month." Designed by Sean Mccabe from USA.

Smashing Wallpaper - december 11

Tongue Stuck On Lamppost

"Boy with tongue stuck on lamppost." Designed by Josh Cleland from USA.

Smashing Wallpaper - december 11

Pixel

"Christmas for pixel-lovers!" Designed by Lotum from Germany.

Smashing Wallpaper - december 11

Winter Flakes

"A slightly different take on the traditional green and red of the holidays with delicate snowflakes and a touch of mistletoe." Designed by Soochie from USA.

Smashing Wallpaper - december 11

Jingle All The Way

Designed by Aeri Jeong from Australia.

Smashing Wallpaper - december 11

Father Frost

"Happy new year! Na zdorov’je!" Designed by Cheloveche.ru from Russia.

Smashing Wallpaper - december 11

Candy Cane Monster

Designed by Agnieszka Malarczyk from Poland.

Smashing Wallpaper - december 11

Merry Xmas

"Merry Xmas to all! December is the month of christmas, parties and shopping, and we all love it! Merry Xmas  —  don’t you just LOVE December?" Designed by Supreet Singh from India.

Smashing Wallpaper - december 11

Night Snow

"Watching swirling snowflakes in the night sky is one of my favourite parts of the winter season. Cold, but beautiful!" Designed by Natalie Schulze from USA.

Smashing Wallpaper - december 11

Love Christmas

Designed by Mateusz Mackowiak from Poland.

Smashing Wallpaper - december 11

Pow Time

"I’ve created this wallpaper in hope that december brings us many inches of bright white snow. There’s plenty of fun outside with this frozen water anyway!" Designed by Marek Chrenko from Slovakia.

Smashing Wallpaper - december 11

Who Ate All The Christmas Cookies???

"Just a bit of Christmas fun with the birds Pipita and Milo. This time with a new (still nameless) character: the magpie stole all the Christmas cookies Pipita just made and of course she’s angry at Milo (as usual). Have a fun Christmas (and watch out for cookie thiefs!;))!" Designed by Nicole Bauer from Germany.

Smashing Wallpaper - december 11

The Little Things

"A wallpaper to represent the “Holiday Spirit” that is less commercial, and more inspirational by illustrating 150+ little things that mean everything." Designed by Winsome Interactive from USA.

Smashing Wallpaper - december 11

International Christmas

Designed by Roland Szaboka from Hungary.

Smashing Wallpaper - december 11

Deer December

Designed by Crystal Ho from Canada.

Smashing Wallpaper - december 11

Turkish Barbecue

Designed by Credo Global from Turkey.

Smashing Wallpaper - december 11

Give More

"Remember to always give more than you take. If we could all do this, the world would be a much better place." Designed by Nathan Miller from USA.

Smashing Wallpaper - december 11

Time Is Ticking Away

Designed by Marcus White.

Smashing Wallpaper - december 11

Southern December

"I can’t help but associate December with chilly nights and roast chicken, but here’s a little something for the Southern Hemisphere! Picture taken at Kamari beach, Santorini." Designed by Suety Kwan from USA.

Smashing Wallpaper - december 11

Mister Snowman

"Mister Snowman is coming." Designed by Thomas Danzo from France.

Smashing Wallpaper - december 11

Join In Next Month!

Please note that we respect and carefully consider the ideas and motivation behind each and every artist’s work. This is why we give all artists the full freedom to explore their creativity and express emotions and experience throughout their works. This is also why the themes of the wallpapers weren’t anyhow influenced by us, but rather designed from scratch by the artists themselves.

A big thank you to all designers for their participation. Join in next month!

What’s Your Favourite?

What’s your favorite theme or wallpaper for this month? Please let us know in the comment section below!

(il) (vf)


© Smashing Editorial for Smashing Magazine, 2011.


Desktop Wallpaper Calendar: December 2011





 



 


We always try our best to challenge your artistic abilities and produce some interesting, beautiful and creative artwork. And as designers we usually turn to different sources of inspiration. As a matter of fact, we’ve discovered the best one — desktop wallpapers that are a little more distinctive than the usual crowd. This creativity mission has been going on for over two years now, and we are very thankful to all designers who have contributed and are still diligently contributing each month.

We continue to nourish you with a monthly spoon of inspiration. This post features 30 free desktop wallpapers created by artists across the globe for December 2011. Both versions with a calendar and without a calendar can be downloaded for free. It’s time to freshen up your wallpaper!

Please note that:

  • All images can be clicked on and lead to the preview of the wallpaper,
  • You can feature your work in our magazine by taking part in our Desktop Wallpaper Calendar series. We are regularly looking for creative designers and artists to be featured on Smashing Magazine. Are you one of them?

December Blue

"December Blue is reminiscent of a scene from a classic Christmas stop motion film." Designed by Colin Whitehurst from Philippines.

Smashing Wallpaper - december 11

Retro Christmas

"Inspired by the old Christmas cards and 50′s style." Designed by Joao Lima Jr. from Brazil.

Smashing Wallpaper - december 11

Sweater

"I really like christmas sweaters, and you are better." Designed by Zachary Vandehey from USA.

Smashing Wallpaper - december 11

Christmas Winter

Designed by Shravan Mishra from India.

Smashing Wallpaper - december 11

Firebirds

Designed by Matej Loncko from Slovakia.

Smashing Wallpaper - december 11

Crayon’s Snowy Sailing

"When I was a little girl, I was greatly fascinated about the magic of crayons. I still am. This illustration pays homage to the humble crayon. A life shared with children (and grown-ups who refuse to grow old). A small but a colorful, textured life. This winter season, I want to portray “Crayosa” as she peacefully sails through the snowy sea, carried by the stack of crayons in different shades of blue and purple." Designed by Jessette Dayate – Catral from Singapore.

Smashing Wallpaper - december 11

Sign Of The Times

"The Holidays, the Winter Solstice, the End of the Calendar Year. Make sure you stop and enjoy December for it will be January before you know it." Designed by Deidra Wilson from USA.

Smashing Wallpaper - december 11

Winter Wonderland

"I took this photo whilst walking in the heavy snowfall in the UK last December." Designed by Ben Young from UK.

Smashing Wallpaper - december 11

Holiday Lights

"It’s that magical time of the year. One can never have enough twinkle and glow!" Designed by Tirelessweaver from Canada.

Smashing Wallpaper - december 11

Merry Christmas Wallpaper

"Have a pleasant christmas and enjoy this beautiful time." Designed by Christian Goldemann from Germany.

Smashing Wallpaper - december 11

Simple December

Designed by Lisa Temes from Canada.

Smashing Wallpaper - december 11

Hand Drawn December

"Warm, hand drawn letters defrost a cold month." Designed by Sean Mccabe from USA.

Smashing Wallpaper - december 11

Tongue Stuck On Lamppost

"Boy with tongue stuck on lamppost." Designed by Josh Cleland from USA.

Smashing Wallpaper - december 11

Pixel

"Christmas for pixel-lovers!" Designed by Lotum from Germany.

Smashing Wallpaper - december 11

Winter Flakes

"A slightly different take on the traditional green and red of the holidays with delicate snowflakes and a touch of mistletoe." Designed by Soochie from USA.

Smashing Wallpaper - december 11

Jingle All The Way

Designed by Aeri Jeong from Australia.

Smashing Wallpaper - december 11

Father Frost

"Happy new year! Na zdorov’je!" Designed by Cheloveche.ru from Russia.

Smashing Wallpaper - december 11

Candy Cane Monster

Designed by Agnieszka Malarczyk from Poland.

Smashing Wallpaper - december 11

Merry Xmas

"Merry Xmas to all! December is the month of christmas, parties and shopping, and we all love it! Merry Xmas  —  don’t you just LOVE December?" Designed by Supreet Singh from India.

Smashing Wallpaper - december 11

Night Snow

"Watching swirling snowflakes in the night sky is one of my favourite parts of the winter season. Cold, but beautiful!" Designed by Natalie Schulze from USA.

Smashing Wallpaper - december 11

Love Christmas

Designed by Mateusz Mackowiak from Poland.

Smashing Wallpaper - december 11

Pow Time

"I’ve created this wallpaper in hope that december brings us many inches of bright white snow. There’s plenty of fun outside with this frozen water anyway!" Designed by Marek Chrenko from Slovakia.

Smashing Wallpaper - december 11

Who Ate All The Christmas Cookies???

"Just a bit of Christmas fun with the birds Pipita and Milo. This time with a new (still nameless) character: the magpie stole all the Christmas cookies Pipita just made and of course she’s angry at Milo (as usual). Have a fun Christmas (and watch out for cookie thiefs!;))!" Designed by Nicole Bauer from Germany.

Smashing Wallpaper - december 11

The Little Things

"A wallpaper to represent the “Holiday Spirit” that is less commercial, and more inspirational by illustrating 150+ little things that mean everything." Designed by Winsome Interactive from USA.

Smashing Wallpaper - december 11

International Christmas

Designed by Roland Szaboka from Hungary.

Smashing Wallpaper - december 11

Deer December

Designed by Crystal Ho from Canada.

Smashing Wallpaper - december 11

Turkish Barbecue

Designed by Credo Global from Turkey.

Smashing Wallpaper - december 11

Give More

"Remember to always give more than you take. If we could all do this, the world would be a much better place." Designed by Nathan Miller from USA.

Smashing Wallpaper - december 11

Time Is Ticking Away

Designed by Marcus White.

Smashing Wallpaper - december 11

Southern December

"I can’t help but associate December with chilly nights and roast chicken, but here’s a little something for the Southern Hemisphere! Picture taken at Kamari beach, Santorini." Designed by Suety Kwan from USA.

Smashing Wallpaper - december 11

Mister Snowman

"Mister Snowman is coming." Designed by Thomas Danzo from France.

Smashing Wallpaper - december 11

Join In Next Month!

Please note that we respect and carefully consider the ideas and motivation behind each and every artist’s work. This is why we give all artists the full freedom to explore their creativity and express emotions and experience throughout their works. This is also why the themes of the wallpapers weren’t anyhow influenced by us, but rather designed from scratch by the artists themselves.

A big thank you to all designers for their participation. Join in next month!

What’s Your Favourite?

What’s your favorite theme or wallpaper for this month? Please let us know in the comment section below!

(il) (vf)


© Smashing Editorial for Smashing Magazine, 2011.


A Guide To PHP Error Messages For Designers





 



 


PHP is widely available with inexpensive hosting plans, which makes it a popular choice for developers who write software for the Web. From big platforms, such as WordPress, down to small scripts, such as ones to display image galleries or to send forms to email, thousands of script and products are out there written in PHP that can be installed and used even if you don’t know much about PHP yourself.

I have been a PHP developer for 10 years, and my company has developed a content management system, written in PHP, that is intended to be very simple to install and get started with. So, I spend a lot of time working with designers who are installing a PHP script for the first time. If you are installing a script and something goes wrong, PHP can be incredibly infuriating. Until you know what they mean, PHP errors can be baffling. My favorite message is:

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

Paamayim Nekudotayim means “double colon� in Hebrew! But double colon is a lot easier to debug than T_PAAMAYIM_NEKUDOTAYIM.

This article is aimed at designers who are not PHP developers but need to install PHP scripts from time to time. Thus, the problems and error messages we will look at here are those you are most likely to encounter when installing scripts, rather than when writing PHP. The tips should help you work through other error messages and should at least help you give clear information to the script’s developer if you need to ask them for assistance.

“All I Get Is A Blank Page!�

Before we can diagnose PHP errors, we need to see some PHP errors. Ideally, you would first be installing the script locally, perhaps using MAMP on a Mac or XAMPP, both of which allow you to turn on error messages easily. You can get PHP to just spit the errors out directly on the screen or log them to a file for viewing.

If, however, you are installing a script directly in your hosting account, the host will likely have disabled the display of all PHP error messages. This is sensible for security, because an error message could give away important information about the server or database, but it isn’t so useful if you are trying to configure a script. If error displays have been turned off, then a fatal error before any output is made to the page would result in a blank page. An error that happens after some HTML has been outputted would result in the markup being “cut off� (stopping at the point where the error occurred). If you “View source� and see a completely blank page or half a page or are getting a “500 internal server error,� then a PHP error is probably the culprit.

Locate the Error Log

On a live server, you should have access to the PHP error log. This is different than the Web server error log, which shows things such as 404 errors when a page or image is not found. The PHP log gives information on errors and warnings in PHP itself. The host should have configured PHP to send errors to a log rather than write them to the screen.

If no error log can be found, then you might be able to configure PHP to maintain one in a location that you specify. To do this, create a directory on your website named errors. Make this directory writable. Then add the code below to the .htaccess file at the root of your website. If you do not have an .htaccess file, create one.

php_flag  log_errors on
php_flag display_errors off
php_value error_log  /your/path/public_html/errors/php_error.log

Then, protect the errors directory so that the file cannot be downloaded from the Web. You might be able to do this in the control panel or just by creating a new .htaccess file, this time in the errors directory.

Order allow,deny
Deny from all

If you now run the script that caused the error, the error message should get added to the php_error.log file. If it doesn’t work, try creating the file yourself first in the errors directory and making it writable.

If you have no luck creating an error log, then open a support ticket with your hosting provider, explaining what you are trying to achieve and inquiring how to do it.

Errors, Notices And Warnings

PHP classifies the messages that go to the error log as either errors, notices or warnings. These have different levels of severity. An error is something broken in your code. It needs fixing and will cause PHP to stop executing.

A warning is essentially PHP saying, “What you’re doing will likely cause a problem, but I’ll try to continue.�

A notice alerts you to something that needs attention in your script. It could be that the version of PHP on your server is newer than the one supported by the script. Things in PHP are deprecated in the same way that elements in the HTML specification get deprecated. When something is deprecated, it means that it will be removed in the future, so the notice lets you know this.

Errors in a purchased or open-source script are most likely an issue with your installation, assuming that your version of PHP meets the requirement. If a script is throwing out warnings that you cannot fix, then you should probably raise them with technical support. You can usually ignore notices, although you should check that the latest version of the script is installed. If a lot of notices are being thrown out, it could indicate a poor-quality script.

If the trick above for turning on error logging worked for you, you can set the level of error reporting in the .htaccess file, too:

php_flag  log_errors on
php_flag display_errors off
php_value error_log  /your/path/public_html/errors/php_error.log
php_value error_reporting 1

The above will add only errors to the error_log.

php_flag  log_errors on
php_flag display_errors off
php_value error_log  /your/path/public_html/errors/php_error.log
php_value error_reporting -1

Setting error_reporting to -1 will log all errors, warnings and notices. If you do this, then you’ll definitely want to set php_flag display_errors to off, so that notices do not get outputted to your website’s pages.

screenshot

The First Error Is The Important One

If you are displaying errors to the page and hit a PHP error, you could run into a terrifying page full of errors. If you are reviewing errors in a log, refresh the page that is generating the error and then check the log. You might find a long set of errors for the same page; they should all have the same time code, helping you to identify them as a set. This usually happens when the first error is a warning; the script tries to continue running but hits more problems related to the initial warning. Fix the initial warning, and you might find that all of the other issues go away.

Database-Related Errors

Many of the errors people encounter when installing a script have to do with the connection to the database. Usually, when a script needs to make a database connection, you will be asked for four bits of information: the database’s user name and password, the server’s address (which is often, but not always, localhost) and the database’s name. If any of these are incorrect, you won’t be able to connect. Depending on the script, either you will see an ugly string of error messages or, if the developer has handled this gracefully, you will be told that the script was unable to connect to the database.

The database connection issues that I commonly see when providing technical support are as follows:

  • The user has entered localhost instead of an IP address or URL for the database server.Localhost means that the database is on the same server as your website. Some hosts have different servers for MySQL and so will give you an address for the server that you need to use when configuring the script.
  • An incorrect user name has been entered.One thing to watch is that cPanel prefixes user names that you create with the account’s name. If your account’s name is fred and you create a user named website, then the user name to enter when configuring a script would be fred_website.
  • An incorrect database name has been entered.As with user names, cPanel prefixes the database’s name with the account’s name. Check that you are using the prefixed version in your configuration.

Database Permission Problems

Another possible cause of database-related trouble is when all of the connection details are correct, but the database user doesn’t have the permissions needed to do things that the script needs to do. For example, the script might need to create database tables and so would require the database user to have create permissions.

If you created the database user in cPanel, you would also need to select the database and join the user to it, giving the user enough permissions to run the script. For example, if you were installing WordPress, your database user would need to have All Privileges for the database it is attached to.

In cPanel, you can set these in the section named “Add user to database.� Select the user and database, and then on the next screen, click the “All Privileges� checkbox before submitting the form.

screenshot

PHP Errors

The next set of errors are those generated by PHP because of some problem with the script that you’re installing or because of something that was introduced while you were installing or configuring it.

Fatal Error: Call to Undefined Function

Fatal error: Call to undefined function my_function() in /home/mysite/public_html/test.php on line 2

This means that a PHP function that the current page needs cannot be found. The function might be part of the script itself or built right into PHP. You might see this error when installing a third-party script for the following reasons:

  • If you’re installing a new script, you might not have uploaded all of the files. In my experience, people who use Dreamweaver’s FTP client encounter this issue a lot.
  • If you’re upgrading, you might not have replaced all of the required files. So, an old version that doesn’t contain the function is being used.
  • You might not have added a required PHP include or specified a correct path in a configuration file.
  • A script might be calling a PHP function that is not available on this server. For example, it might be calling imagecreatefromjpeg() when the GD image libraries haven’t been installed.

To solve the error, check carefully that all of the files have been uploaded or replaced and that you have followed the installation instructions. If you cannot resolve it, then contact the script’s developer, explaining what you have done and what you have checked and copying the error message.

If the issue is that something is missing in your PHP installation, then you might need to contact your hosting provider.

Fatal Error: Cannot Redeclare

Fatal error: Cannot redeclare my_function() (previously declared in /home/mysite/public_html/runtime.php:14) in /home/mysite/public_html/runtime.php on line 26

This usually means that you have included a file twice. Check everywhere you have edited and check included files to make sure you haven’t duplicated an include.

Fatal Error: Allowed Memory Size Exhausted

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 17472 bytes) in /home/mysite/public_html/lib/Image.class.php on line 198

You will typically see this error when trying to upload and process an image, although you might see it for any script that requires a lot of memory to run. The amount of memory that your scripts are allowed to use is set by the hosting provider. On cheap shared hosting plans, these limits are often set very low. If you need to use a script to process large images, contact your provider to see whether you can move to a plan with higher limits.

Permission Errors

Warning: move_uploaded_file(/home/mysite/public_html/upload/my_cat.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/mysite/public_html/upload.php on line 49

This warning is an example of a permissions error. The script is trying to upload a file to a directory, but the directory doesn’t have enough permissions for the file to be moved to it. The permissions that PHP needs in order to write to a file or directory depend on how the server is configured and whether you are using a Unix or Windows host. The section on “Permission Scheme� in the WordPress Codex is relevant even if you are not using WordPress. However, if you get any kind of “Permission denied� error or warning and can’t fix it simply by changing the permissions for the folder, speak with your hosting provider rather than the developer of the script, because your provider will be able to tell you how to do this.

PHP Warning: Include

PHP Warning:  include(foo.php): failed to open stream: No such file or directory in /home/mysite/public_html/test.php on line 2

This warning tells you that an include file (included using PHP’s include syntax) was not found. It is a warning rather than an error, because PHP will continue trying to load the page if it cannot find an include.

In PHP, you can include files using include() or require(). If you use require(), then you are telling PHP that this script is vital to running the website, and so PHP will spit out an error if the file is not found, rather than try to continue.

If you get a warning or error message that a file could not be opened, then check that the file referred to in the error message is there and that your path to it is correct. For example, if you have the file /inc/navigation.php, and the page calling this file is in the directory /about, then you would need to include navigation.php with the following include:

<?php include(../inc/navigation.php); ?>

Omitting the ../ would result in a warning because PHP would not be able to find the file.

In Summary

PHP errors can seem very confusing if you are not a PHP developer, but if you read the error message carefully, you will usually find something that leads you to the root of the problem. Most of the errors I see in technical support have to do with incorrect database connections, missing files or permissions. These are all things that someone with no PHP knowledge can identify and fix themselves, just by learning how to access error messages and becoming familiar with what PHP is saying in them. Being able to debug these kinds of problems will save you a lot of frustration and will free you from having to wait for tech support to get back to you.

If you run into an error when installing a script, remember the following:

  1. Learn how to access PHP errors on your server.
  2. Look at the error log to see what the error actually is.
  3. See if you can identify the source of the problem by looking at the initial error message or warning for the script.
  4. If the error seems to involve permissions or an incorrect database configuration, open a ticket with your hosting provider.
  5. If the script is the problem, then open a ticket with the developer, explaining what you have done and copying information from the error log. You will bring joy to their heart if you provide the actual error message rather than say you saw a blank page!

Further Reading

Have you come across a particularly baffling error when installing a script? Have you come across a hosting provider that requires a different method to get error logs working? Add your suggestions in the comments section.

Image source on front page: Alex E. Proimos

(al)


© Rachel Andrew for Smashing Magazine, 2011.


The Force of Inspiration: The Jedi


  

As we have done in the past, we have turned our inspirational eye towards a galaxy far, far away to help our readers recover some of their creative juices. Rather than bowing to the dark side, as we did in the last Star Wars related artwork post, this time we are shining our spotlight on those generally battling for good. The Jedi.

So below is a range of artistic styles and mediums that all have been finely tuned towards paying homage to that council of warriors who have given all to wage war against the empire. Through these talented artist’s imaginations so many of this fandom’s greatest heroes have found new form and life. And we hope that you can all find some inspiration in these artist explorations of this expansive sci-fi verse.

The Jedi

jedi by sAUcEbOy

Jedi guardian by adrian911

Star Wars – Revan vs Jedi by MaxMade

Jedi Knight by ivelin

Jedi Sentinal by defcombeta

JEDI by takren

Jedi Commander Ahsoka Tano by Master-Cyrus

KoTOR- Draethos Jedi by UdonCrew (Eric Vedder & Kevin Yan)

Revan Jedi Knight by JosephB222

sith and jedi concept by pardoart

Star Wars Jedi – Dark Side 1 by anjum

Jedi Knight Ahsoka by raikoh14

Jedi Twi’lek by seoulmanTED

rhardozed jedi vs sith by rhardo

Jedi Vs Sith: Coruscant by kw3k

Old jedi, Odan Urr by zgul-osr1113

Jedi Master Yoda by Parabuteo78

Jedi consular by neitsabes

Rodian Jedi by 29thsep

Jedi fan art by Jy-Kim

Jedi Aayla by Jakdaw

Togruta Jedi Master by MagicOpal

Duel…kinda by Daennika

Xion Tel, Jedi Master by AdamWithers

SW Gallery: Jedi II by Xennethy

The Dark Jedi by Isriana

Sullustan Jedi by Scarecrovv

Torn Jedi by REBELComx

Jedi Knight of TOR

Fearless by Xennethy

When Worlds Collide

Below we have a handful of examples of what happens when the Star Wars fandom collides with others from around the web. Apparently the Jedi have been recruiting from outside their normal verse. At least that’s how it came across from these artist’s imaginations.

Jedi Pony Commission by ArtNerdEm

Jedi Prince by Jorso

jedi Ivy valentine by Chewyli

Jedi Rarity by johnjoseco

Commission – Jedi TF by MattMoylan

(rb)


  •   
  • Copyright © 1996-2010 BlogmyQuery - BMQ. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress