Tag Archives: advice

Rescue Your Creativity from the Internet!

rescuecreativity

I realized last night that I haven’t played my piano keyboard in about 5 weeks. 5 WEEKS? That, for me, is almost unheard of–at least, when you take into account that I used to spend up to two hours a DAY playing piano down in the basement. Even when I had video games and schoolwork to take care of, even when I was at my busiest in college, I always found time to play my music, or to write poetry, or do other creative things. What’s changed?

I can point to one thing: the Internet. Now that there’s a constant source of passive entertainment in my room (even while I’m lying or sitting in bed!), I don’t have to go far for mental stimulation. I don’t even have to lift a finger to create anything if I don’t absolutely need to. And, increasingly, I find that the urgent need to create is somehow slipping away.

Why This is a HUGE Problem–And More Widespread Than It Seems

For me, a prolific creator for most of my life up until this point, this is a radical mindset shift, and I know I’m not the only creative person suffering it. The Internet provides us with endless resources to fuel our creativity, but it also provides a handy time sink–it gives us carte blanche to while away just as many countless hours clicking things on a screen for no purpose other than a high score and/or a sense of accomplishment.

Unfortunately, that random Internet time doesn’t often lead to creativity boosts, unless your brain just really needs a gaming or browsing break. These days, for me, Internet time becomes simply “lost time,” time in which my brain still has to work at reading or analyzing, but rarely has anything concrete to show for it. And by the time I’m finally done puttering around on the Internet, I’m far too mentally tired to be creative. That is the most dangerous symptom of all.

I see this happening not only to me, but to some of my creative friends, too–we’re all suffering from what looks like “Internet fatigue,” not having the mental energy to do much beyond surf just one more website, take just one more online quiz, etc. Have you felt it, too?

A Simple Solution

I’m not recommending that we all just stop using Internet for the rest of our lives, however. Not only does our work often depend on Internet, but our creative lives are now taking place on the Internet more frequently than not. The Internet is great, but, as I’ve discovered, one can easily “overdose” on it and end up less creative than ever.

We creative folk have to reclaim at least some time for our brains to be JUST OURS–for our thoughts and ideas alone to be uppermost in our minds, rather than the blended remnants of today’s headlines/scandals, DIY ideas, status updates, etc. That’s the way we get back our creative juices…that, and specifically carving out time to do so.

So, how to reclaim productive creative time from the Internet? Here are some tips I’m putting into practice:

  • Turn your wireless connectivity off on your computer if you have to use your computer for creative purposes (such as writing).
  • If your creative process does not need the computer, turn off the computer entirely, or set it to do an anti-virus/anti-spyware scan–something that precludes you from getting back on it.
  • If you usually use your computer for creative work, try creating without it, using pen and paper when you need it for notations.
  • Turn off your smartphone or set it to Airplane Mode while you’re creating, too. Better yet, leave it in another room where you won’t be tempted to check it.
  • If you typically use a certain room for Internet, go to another room to create–sometimes, just the change of visual scenery (even if it’s still your house) will trigger your brain to behave differently.

What other ways can you think of to rescue your own creativity from Internet fatigue? Tell me in the comments!

Why Do We Use Unordered Lists for Navigation?

unorderedlists
The question in the title of today’s article has been bugging me for several years. Why, out of all the tags we could potentially use to style our site’s navigation, have modern designers chosen the unordered list?

At First Blush: Web-Elitism and Table Layouts All Over Again?

Coming from my background in hand-coding, when tables were still in vogue for layout building and lists were used for–well, listing things in one’s content–my confusion is warranted. I caught so much flack as a newbie designer for sticking with table format layouts, because, in the words of my critics, “tables are meant for tabular data only.”

So why use a list format for a navigation bar that is kinda sorta but not really a list?  See the following:

<ul class=”nav”><li><a href=”page1.html”>Page 1</a></li>

<li><a href=”page2.html”>Page 2</a></li>

<li><a href=”page3.html”>Page 3</a></li></ul>

Sure, a site’s navigation IS a list of links, but the unordered list used in most navigation schemes these days doesn’t end up LOOKING like a regular bulleted list. Instead, it gets twisted and reshaped with CSS magic into whatever configuration is needed, whether that’s a vertical list of links without bullets or whether it’s a long horizontal bar across the top of the page.  That magical CSS class creates all the beauty out of what otherwise looks like slightly bloated code, at least to my eye.

As I read article after article about using and styling unordered links, I kept thinking, “Isn’t that what we table-layout-makers were doing with tables back in the early 2000s? Isn’t this just another creative use of an HTML tag?” I found myself wondering if the unordered list would eventually go the way of the HTML table as a “deprecated” way of designing, and if those of us who had adopted it would be the butt of elitist jokes in 5 to 10 years. (Y’all who don’t think web-elitism exists–trust me, it does. People get snarky and condescending when they think they code better than you.)

The Answer to My Question: Yes AND No

But, as I’ve studied this problem a bit more, I’ve realized something. Yes, unordered lists seem like a little bit of excess code for what amounts to “a list that doesn’t look like a list onscreen.” But they actually solve a couple of problems, one of which reared its head in one of my recent designs.

My Old Navigation Style: “Display: Block” All the Way

I had organized my navigation into a div called “sidebar,” with the following code to handle all my navigation links:

#sidebar a {
display: block;
font-size: 20px;
font-weight: bold;
text-decoration: none;
border-bottom: 1px solid #AAAAAA;
padding: 10px 5px 10px 5px;}

#sidebar a:hover {
border-bottom: 1px solid #FFFFFF;
text-decoration: none;}

The corresponding HTML code for the navigation looked very simple, like this:

<div id=”sidebar”>

<a href=”about.php”>About</a>

<a href=”projects.php”>Projects</a>

<a href=”archives.php”>Archives</a>

</div>

The Problem: ALL the Links Were Affected

This was all well and good, until I decided to put more content in the sidebar–including some links that were part of paragraphs rather than navigation. You can probably guess what happened; I refreshed the page, and found that all my links in my sidebar were displaying proudly in block format, even if I had intended them to be contained in context with the paragraph around them.

So, what to do? I thought about creating another div to house my navigation links, styling it separately…but then, I realized I had the perfect tool for a vertical list of links already in my HTML toolbox. All I needed to do was to add unordered list code and give the unordered list a CSS ID. I dragged my feet about it a bit, but finally decided the list code was better than potentially causing layout havoc with another div thrown into the mix.

The Simple but Effective Fix

Thus, I ended up with this code instead:

#navlinks a {
font-size: 20px;
font-weight: bold;
text-decoration: none;
border-bottom: 1px solid #AAAAAA;
padding: 10px 5px 10px 5px;}

#navlinks a:hover {
border-bottom: #1px solid #FFFFFF;
text-decoration: none;}

The corresponding HTML code looked like this:

<div id=”sidebar”>

<p class=”sub”>A Headline</p>

<p>some text here with <a href=”index.html”>a link</a></p>

<ul id=”navlinks”>

<li><a href=”about.php”>About</a></li>

<li><a href=”projects.php”>Projects</a></li>

<li><a href=”archives.php”>Archives</a></li>

</ul>

</div>

Why This Change Helped

Adding the unordered list tags to my navigation helped me out in two ways:

  1. Eliminated the need for “display: block;” in my CSS, because the natural behavior of lists is to display each item on a separate line;
  2. Created a specific ID for just my navigation links, so that the other links in the sidebar would be unfettered by navigation styling

Having specifically targeted code like this, even if it results in typing <ul> and <li> about a thousand times more than you’d like, actually makes it easier for you to design. With your navigation self-contained in a little list “box” all its own, you can specify its styles to your heart’s content and not worry about those style choices overflowing and causing havoc in the larger divided layer.

This is a great habit to pick up–only applying CSS styling to the elements you absolutely need to style, rather than cramming all your style rules in one or two overarching divided layers. It organizes your code better, makes it easier to change small formatting issues later, AND can save you from accidentally messing up the whole page trying to affect one small section.

Summary

Putting navigation in unordered list format may seem esoteric at first, but it’s actually handy. You might not actually need a separate div to cordon off your navigation, necessarily; all you might need is <ul><li></li></ul>!

How to Learn a Web Language

learningweblanguage
Knowing how to develop websites in various languages (HTML, CSS, JavaScript/jQuery, PHP, etc.) is great. But getting that knowledge is more difficult than it sounds for a lot of us.

Take me, for example. I’m self-taught in all things webdesign, only getting help on a few things here and there to figure out HTML, CSS, and bits of PHP and JavaScript. But there’s a definite limit to what I can effectively teach myself with a few random Google searches and online tutorials. I thought I had hit that limit when I tried to learn JavaScript in full a few years back–no matter what I tried, I just couldn’t seem to piece my shards of knowledge into actual working code. It all felt way too technical and mathy for this word-loving brain of mine.

That is, it felt too tough until I started approaching it like an actual language.

JavaScript = French?

I thought back to my high school French classes (my first exposure to the French language). Well, more specifically, I focused on how my French teacher taught us:

  1. She didn’t expect us to come in there on Day 2 and be able to converse in perfect French; she taught us vocabulary and parts of speech first, a unit at a time, learning the names and labels for things (“maison” = “house,” “citron” = “lemon”, etc.). Often, she translated sentences for us to show us the connections between words.
  2. Then, after we learned a unit of vocabulary, she showed us how to use the vocabulary in basic sentences: “Je veux un citron” (I want a lemon), “Je vais a la maison” (I’m going home). Usually, this step involved us writing sentences down and checking it for correctness via homework and tests.
  3. The final step in learning the words we were taught was using them in actual conversations and/or letters with other students. We were actively using what we’d been taught, and it got us used to how the various parts of speech we had learned were put together to communicate. (There was also a lot of laughing involved as we stumbled over pronunciation or word order, but at least it was practice!)

So I wondered: would the same principles apply to learning JavaScript, or in fact any Web programming language?

Short Answer: YES! And Here’s How to Do It!

These principles do work for teaching yourself a new Web language (or learning it from a friend/along with a friend). Here’s how it works:

  • Step 1: Read all the examples of your chosen Web language that you can find. First, read tutorial websites that break down exactly what each “word” (tag, term. etc.) in the web language means (W3Schools is good for this). Then check out actual code snippet sources (see end of article), since code snippets are basically programming examples of working code. (Remember to read the comments on each of the code snippet posts, too, since programming wizards often suggest fixes or updates!)

    As you read each snippet, think: “How did they make this work?” Search up any terms you don’t recognize right away, and see if you can understand how the programming language is arranging things to work.

  • Step 2: Find a code snippet you’re interested in working into your site and start tinkering. If you find one that kinda works the way you want it to, but you want to change it up a bit, even better–that’ll give you more practice! Try implementing some simpler code tricks first so you don’t daunt yourself, and if you get stuck, ask a web developer friend for help, or post a polite question or two on code forums (see end of article). (Make sure to keep a copy of the working code in reserve at all times so that if you ROYALLY screw up, you can always copy/paste it back in place of your work and start over. Learn from my fail.)
  • Step 3: Once you’ve had success with implementing others’ designed code that you’ve tinkered with a little, try writing your own code from the ground up. Again, start simple (and I mean very simple), and ask your web developer friends for help if you get stuck or are having trouble debugging. This will give you ground-level experience with developing in the new language, and you can more easily pinpoint where you’re having problems.

Don’t Forget the “Conversation” Part!

It’s very tempting to try to learn a new Web language in isolation, but languages thrive on communication. Of course, we don’t actually speak Web languages in everyday conversation, but asking other more experienced developers about their work in a particular language can REALLY help you get over hurdles and stay updated. (For instance, a Web developer buddy of mine is teaching me JavaScript at the moment, and I am learning so much more than when I tried to learn it alone.)

You may choose to meet in person or work over the Internet, but whatever you do, cultivate helpful professional connections with other developers; it really helps to have a human touch with this rather impersonal-seeming subject matter.

Further Reading

Study Aids

Webmonkey Code Snippets (HTML, CSS, JavaScript, API)
CSSFlow (HTML5, CSS3, Sass)
CSS-Tricks (HTML, CSS, PHP, JavaScript, jQuery, WordPress, htaccess)
JavaScriptSource
PHPSnips

Code Help

StackOverflow
DaniWeb