<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog.kno.at &#187; Web Development</title>
	<atom:link href="http://blog.kno.at/folders/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kno.at</link>
	<description>Marketing, Webdesign, Graphics, Drinking, a little WebApp every once in a while, it&#039;s like love. You could live without it, but why the hell should you?</description>
	<lastBuildDate>Sat, 22 Oct 2011 16:42:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Mobile Phone Service Providers</title>
		<link>http://blog.kno.at/web/mobile-phone-service-providers/</link>
		<comments>http://blog.kno.at/web/mobile-phone-service-providers/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 21:06:12 +0000</pubDate>
		<dc:creator>Kno</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[handheld]]></category>
		<category><![CDATA[mobile design]]></category>
		<category><![CDATA[mobile profile]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xhtml mp]]></category>

		<guid isPermaLink="false">http://blogs.kno.at/personal/2008/03/28/mobile-phone-service-providers/</guid>
		<description><![CDATA[<p>Yesterday I finally got my new phone, a Nokia N95 8GB, and I&#8217;m pretty happy with it&#8217;s functions, the look &#38; feel and, after all, the plain fact that I eventually got a phone with all buttons working again. With the N95 there come some online-functionalities as well, like connecting to ... <a class="more-link" href="http://blog.kno.at/web/mobile-phone-service-providers/" title="View Post">&#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Yesterday I finally got my new phone, a Nokia N95 8GB, and I&#8217;m pretty happy with it&#8217;s functions, the look &amp; feel and, after all, the plain fact that I eventually got a phone with all buttons working again. With the N95 there come some online-functionalities as well, like connecting to the web via any WLAN or your provider&#8217;s data plan.<span id="more-141"></span></p>
<div class="conImg"><a href="http://blog.kno.at/wp-content/uploads/2008/03/screenshot0001.jpg" title="A1 (http://www.a1.net)"><img title="Click to view Full" src="http://blog.kno.at/wp-content/themes/200/flickpic/flickpic.php?grayscale=1&amp;width=88&amp;height=88&amp;imageUrl=http://blog.kno.at/wp-content/uploads/2008/03/screenshot0001.jpg" width="88" height="88" alt="" /></a> <a href="http://blog.kno.at/wp-content/uploads/2008/03/screenshot0003.jpg" title="3 (http://www.drei.at)"><img title="Click to view Full" src="http://blog.kno.at/wp-content/themes/200/flickpic/flickpic.php?grayscale=1&amp;width=88&amp;height=88&amp;imageUrl=http://blog.kno.at/wp-content/uploads/2008/03/screenshot0003.jpg" width="88" height="88" alt="" /></a><a href="http://blog.kno.at/wp-content/uploads/2008/03/screenshot0004.jpg"><img title="Click to view Full" src="http://blog.kno.at/wp-content/themes/200/flickpic/flickpic.php?grayscale=1&amp;width=88&amp;height=88&amp;imageUrl=http://blog.kno.at/wp-content/uploads/2008/03/screenshot0004.jpg" width="88" height="88" alt="" /></a> <a href="http://blog.kno.at/wp-content/uploads/2008/03/screenshot0005.jpg"><img title="Click to view Full" src="http://blog.kno.at/wp-content/themes/200/flickpic/flickpic.php?grayscale=1&amp;width=88&amp;height=88&amp;imageUrl=http://blog.kno.at/wp-content/uploads/2008/03/screenshot0005.jpg" width="88" height="88" alt="" /></a> <a href="http://blog.kno.at/wp-content/uploads/2008/03/screenshot0006.jpg"><img title="Click to view Full" src="http://blog.kno.at/wp-content/themes/200/flickpic/flickpic.php?grayscale=1&amp;width=88&amp;height=88&amp;imageUrl=http://blog.kno.at/wp-content/uploads/2008/03/screenshot0006.jpg" width="88" height="88" alt="" /></a></div>
<p>I got curious and started the browser &#8211; interesting results, what do you think? and then had the idea to have a look at those service provider&#8217;s websites. Now it&#8217;s a time where optimizing websites for the web itself is tricky enough and I truly and deeply understand why people wouldn&#8217;t optimize their private blog or portfolio page for mobile devices. But, so I thought, for a mobile phone service provider it would be obsolete and the most natural thing to provide a good version for their customers&#8217; phones. Not really though. Only one managed to pass the test, namely T-Mobile.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kno.at/web/mobile-phone-service-providers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Grid-Based Design</title>
		<link>http://blog.kno.at/web/grid-based-design/</link>
		<comments>http://blog.kno.at/web/grid-based-design/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 15:18:28 +0000</pubDate>
		<dc:creator>Kno</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Design Links]]></category>
		<category><![CDATA[grid]]></category>
		<category><![CDATA[grid layout]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://blogs.kno.at/personal/2008/03/26/grid-based-design/</guid>
		<description><![CDATA[<p>It&#8217;s rather usual in print-design to use grid-based layouts, whereas the web still has to catch up with that (mostly due to the inability of a lot of self-claimed webdesigners I&#8217;d say). It&#8217;s certainly harder to work with a grid-based layout, because you&#8217;ll have to take care of ... <a class="more-link" href="http://blog.kno.at/web/grid-based-design/" title="View Post">&#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s rather usual in print-design to use grid-based layouts, whereas the web still has to catch up with that (mostly due to the inability of a lot of self-claimed webdesigners I&#8217;d say). It&#8217;s certainly harder to work with a grid-based layout, because you&#8217;ll have to take care of source code, and many folks who work on websites still can&#8217;t even read the HTML their WYSIWYG-editors produce, not even mentioning understanding CSS.</p>
<p><span id="more-139"></span></p>
<p>Well, to all those who are willing to make that effort there are plenty resources out there, technical as well as theoretical, and one of the greatest collections to be posted since quite some time is this article: <a href="http://www.smashingmagazine.com/2008/03/26/grid-based-design-six-creative-column-techniques/">Grid-Based Design: Six Creative Column Techniques</a>. Following the resources mentioned there you&#8217;ll also &#8211; like so many times when it comes to articles about professional web design &#8211; Khoi Vinh&#8217;s page Substraction, where you can find a link to a downloadable pdf-presentation about a fictional case study at the end of the article <a href="http://www.subtraction.com/archives/2007/0318_oh_yeeaahh.php">Oh Yeeaahh!</a>.</p>
<p>Have fun with the resources and switch to grid-based designs already!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kno.at/web/grid-based-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How NOT to implement a community</title>
		<link>http://blog.kno.at/web/how-not-to-implement-a-community/</link>
		<comments>http://blog.kno.at/web/how-not-to-implement-a-community/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 11:26:37 +0000</pubDate>
		<dc:creator>Kno</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[ducati]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[interaction]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[member]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[registration]]></category>
		<category><![CDATA[relation]]></category>
		<category><![CDATA[signup]]></category>
		<category><![CDATA[user]]></category>
		<category><![CDATA[visitor]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://blogs.kno.at/doc/2007/11/26/how-not-to-implement-a-community/</guid>
		<description><![CDATA[<p>Just right now I had to download a kind-of-printable picture of the new Ducati Monster 696 for a Christmas-card we&#8217;re doing for our main client Mazda Lietz (no, except for the split page I didn&#8217;t have anything to do with the websites). However, since there&#8217;s no good material out ... <a class="more-link" href="http://blog.kno.at/web/how-not-to-implement-a-community/" title="View Post">&#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Just right now I had to download a kind-of-printable picture of the new <a href="http://www.ducati.com/en/bikes/my2008/Monster/M696-08/presentation/index.html" title="Ducati Monster 696">Ducati Monster 696</a> for a Christmas-card we&#8217;re doing for our main client <a href="http://www.lietz.at/" title="Mazda Lietz">Mazda Lietz</a> (no, except for the split page I didn&#8217;t have anything to do with the websites). However, since there&#8217;s no good material out there yet I decided to try on their website. Whilest there&#8217;s no printable material available, there are at least some wallpapers which do the job for the ~2-in by 2-in thumbnail we&#8217;re going to print. So I try to download one of those.</p>
<p><span id="more-162"></span></p>
<p>Nope, registered users only. Let&#8217;s just stop here for a moment. Imagine you&#8217;re a bike manufacturer. You bring out a brand new model and do all kinds of marketing, an own mini-site and all that stuff. You really go out heavy. And then you don&#8217;t allow people to even download a photo in reasonable quality. Great idea, eh? That for the basic weirdness of that, but now for the more DocBlog-related thing.</p>
<p>We need that pic, so I decided to sign up. I&#8217;m used to signing up, why the hell not? It&#8217;s just my office mail anyways, so I don&#8217;t really care about more newsletters as our spamfilter will take care of that nicely. But the ducati sign-up-process feels more like a murder-trial. There&#8217;s 4 pages of forms and they ask you all kind of stuff. They want your address, your full name, information about your currently owned bike, your previously owned bike(s), bla bla bla &#8211; basically it seems as they&#8217;d prefer you sending in your autobiography.</p>
<p>If you&#8217;re through the whole mess, just to top it off, they show you another form, containing the data you already submitted, labelled &#8220;billing &amp; shipping address&#8221;. All I want is one damn wallpaper and those guys have the guts to ask my biker&#8217;s life-story and set up a shopping account for me.</p>
<p>Let&#8217;s get more technical here, to keep the documentation-thing going, looking at a few basic principles of (online) communication and comparing them to what Ducati&#8217;s doing there.</p>
<h3>First rule when trying to publish content: Make it accessible</h3>
<p>
If you don&#8217;t want to publish, don&#8217;t put it on the internet. Easy enough. If you want to, make it easy to retrieve. If you really need to get something in return, at least make it as painless as possible.</p>
<h3>Golden rule for signup-processes: Keep it short &amp; simple</h3>
<p>
We&#8217;re all used to signing up by now. Everyone signs up for something every other day. Why did we get used to it? Because it got easier. I can get a fully-working Blog on wordpress.com by filling in three form fields. I can get an Amazon-account all of a sudden. I can sign up for ebay in a few simple steps. There&#8217;s a limit of the relation between what I&#8217;m willing to give and what I get in return. I do enter my credentials at amazon, because I want to buy things. I do enter my shipping-address because I expect to get deliveries. I&#8217;d not enter my address on wordpress.com, because there&#8217;s just no reason for them to know it.</p>
<h3>Another golden rule for signup-processes: Guide the user</h3>
<p>
We probably don&#8217;t recognize it anymore, but most signup-forms are more outlined as guidelines. You see the form and instantly know what you gotta do: There&#8217;s the username, there&#8217;s the password. Stars indicate a required field and somewhere down there is the submit button. Been there, done that. To make the whole guiding easier forms usually are designed nicely (sounds obvious, but obviously isn&#8217;t) and short. If there are more than 3-4 fields at a time one easily already get&#8217;s that &#8220;uh-oh, that&#8217;s gonna take ages&#8221; feeling. Not the best start of a user-interaction to make him feel like we&#8217;re making him waste precious time, is it?</p>
<h3>A rule of signup-etiquette: Don&#8217;t annoy the sh*t out of your users</h3>
<p>
Look at what you want to know, sum it up, make it compact and pack it into one form. If you gotta split it on multiple pages you probably want to add a &#8220;page 1 of x&#8221; (and try to keep x low, by the way), just to be polite. It&#8217;s about creating a predictable dialogue with your visitor and potential-soon-to-be customer. People prefer predictable things, especially if it comes to crucial things like private information.</p>
<p>I guess that&#8217;s the most important stuff already. Now for a short glance at the Ducati-way of new user interaction.</p>
<p>Making it <em>Ducati-accessible:</em> Find the content you want. Click download. Find out that you&#8217;re not permitted to do so. Click the signup-button. Wait for the page to load (due the server seems not to take this as an important request &#8211; at least all the other pages did not take 20+ seconds to load). Form-torture (more details soon). Wait for your activation mail.</p>
<p>More Ducati-like preview: Work yourself through form 1. Form 1 being the form asking for your home address, your birthday, gender and for your approval of the <strong>Information pursuant to Article 10 of Act 675/96 under Italian Law</strong>. It requires you to scroll down a whole page (on my 22-in widescreen, that is) and read 9px/9px black-on-grey type (black on dark grey with scrollbar for the law-stuff, that is). All fields are required. After choosing your country the page reloads for the State/County/Province, taking another 20+ seconds. Note that by clicking submit you agree to the terms and conditions. Those are linked to. Have fun reading. Find out your username is already taken. Find out your username can be a maximum of 8 characters in length. Page 2. Tell us everything about your motorbike. Please note: If you check you ever owned, or own, a bike this information is mandatory.</p>
<p>Enough details, if you want to experience the whole thing and have a nice example for bad implementation enjoy the party at the <a href="http://www.ducati.com/profile/registration.jsp?_DARGS=/profile/registration.jsp.register" title="Ducati.com Registration Form">Ducati.com Registration Form</a>.</p>
<p>Oh, and by the way I&#8217;m still waiting for that confirmation mail. I guess I&#8217;ll have to use an ugly low-res version, then.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kno.at/web/how-not-to-implement-a-community/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>10 Tipps on how to improve CSS efficiency</title>
		<link>http://blog.kno.at/web/10-tipps-on-how-to-improve-css-efficiency/</link>
		<comments>http://blog.kno.at/web/10-tipps-on-how-to-improve-css-efficiency/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 22:56:35 +0000</pubDate>
		<dc:creator>Kno</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[efficiency]]></category>
		<category><![CDATA[formatting]]></category>
		<category><![CDATA[sourcecode]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://blogs.kno.at/doc/2007/11/20/10-tipps-on-how-to-improve-css-efficiency/</guid>
		<description><![CDATA[<p>
Don&#8217;t start at the computer. Take pen and paper and think ahead. Scribble, write down ideas, plan your layout and your markup. Try to spot and eliminate problematic sections beforehand.
Know HTML out of the pocket and use appropriate markup &#8211; it&#8217;s the skeleton of your layout, and ... <a class="more-link" href="http://blog.kno.at/web/10-tipps-on-how-to-improve-css-efficiency/" title="View Post">&#187;</a></p>]]></description>
			<content:encoded><![CDATA[<ol>
<li>Don&#8217;t start at the computer. <strong>Take pen and paper and think</strong> ahead. Scribble, write down ideas, plan your layout and your markup. Try to spot and eliminate problematic sections beforehand.</li>
<li>Know HTML out of the pocket and use <strong>appropriate markup</strong> &#8211; it&#8217;s the skeleton of your layout, and you don&#8217;t want it to be weak or incomplete.</li>
<li>Forget Photoshop, it only limits and slows down. Mockup your layouts with your preferred layout program already using elements you&#8217;ll use on the page: Boxes, elements, defined styles, linked images.</li>
<li>Play. Try to get the most out of as little markup as possible, <strong>just for fun</strong></li>
<li><strong>Stick to your markup,</strong> speak: Don&#8217;t add extra markup for design purposes</li>
<li>Think weird. Browse the available CSS properties and <strong>find something you can abuse</strong></li>
<li>Debug! Use backgrounds and borders to <strong>locate the root</strong> of the problem</li>
<li>Isolate problems: <strong>Move them to a new document</strong> and find different solutions, then bring it back and see which approach works best with the rest.</li>
<li>Don&#8217;t give up. Search the web. Ask. Discuss. Sleep over it. <strong>Try again. And again.</strong></li>
<li>Keep your experiments &#8211; all of them. As little as they are, <strong>keep snippets as a reference and library</strong></li>
</ol>
<p><span id="more-161"></span></p>
<p>Sure, CSS styling is a pain. Sometimes it feels like trying to turn a sphere inside-out; You get one thing right and then struggle with another. The key to success is patience and a strict step-by-step workflow.</p>
<p>Apply one rule after the other, add one thing at a time. And then test it. Play around with it. Find various ways to archive what you want and keep in mind how those affect further decisions, surrounding/containing elements and cross-browser issues. Over time you will learn some of those things and you get faster. You start to think in variety rather than focused, in alternatives rather than the obvious solutions. The first attempt might sound like this:</p>
<blockquote><p>
  <br />
  I gave this element a 1em top &amp; bottom padding. <em>How else could i get what I want?</em> Will a margin do? The line-height? Any other attributes to apply that might work? What if I changed it to display:block and apply a height? How about using the parent&#8217;s dimensions and fit this one in? Might another value for position can do some magic?
</p></blockquote>
<p>
Try them. All of them. Play. Sure, it takes a lot of time, a lot of trial &amp; error. But as you go on practicing this way of thinking you&#8217;ll end up thinking like that:</p>
<blockquote><p>
  <br />
  1em padding. Issues: box-model-bug IE. Alternatives: 1em margin (note collapsing), line-height +2em (will center type vert.), block + height (height will be fixed), block + getting containing element to desired height, &#8230;
</p></blockquote>
<p>
You&#8217;ll automate this thinking, get faster and more efficient &#8211; at development &amp; troubleshooting. The great thing about being a web designer is that you learn something new in every project. New tricks are found every day by thousands of people, who will gladly share those with the community, giving you more hints and hooks to come up with another thing by yourself.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kno.at/web/10-tipps-on-how-to-improve-css-efficiency/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When I&#8217;m grown up I want to be a web designer</title>
		<link>http://blog.kno.at/web/when-im-grown-up-i-want-to-be-a-web-designer/</link>
		<comments>http://blog.kno.at/web/when-im-grown-up-i-want-to-be-a-web-designer/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 22:41:05 +0000</pubDate>
		<dc:creator>Kno</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[theory]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://blogs.kno.at/personal/2007/11/20/when-im-grown-up-i-want-to-be-a-web-designer/</guid>
		<description><![CDATA[<p>As a person who originated it&#8217;s webdesign-affection in the programmer-world and then switched over to becoming an actual graphics designer I know both sides. I know the problems and misunderstandings, and where they come from. The way of thinking is as different as it can be and probably the ... <a class="more-link" href="http://blog.kno.at/web/when-im-grown-up-i-want-to-be-a-web-designer/" title="View Post">&#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>As a person who originated it&#8217;s webdesign-affection in the programmer-world and then switched over to becoming an actual graphics designer I know both sides. I know the problems and misunderstandings, and where they come from. The way of thinking is as different as it can be and probably the biggest challenge someone faces while becoming a web designer: Wrapping your mind around the approaches of design <em>and</em> the implifications of strict semantic structure and coding standards &#8211; at the same time.</p>
<p><span id="more-91"></span></p>
<h2>The start &#8211; pretty much the same</h2>
<p>All kinds of design should start the same way: Think. Make yourself a plan. What do the costumers/consumers/readers want, what does the client/author want? You are about to archive an information architecture project, so do the implied brainwork. It&#8217;s not <em>just a webpage</em>, it&#8217;s an important <a href="http://www.informationarchitects.jp/the-interface-of-a-cheeseburger">interface</a> to your target group. What&#8217;s the target and how to archive it in a way that comforts the costumer? <a href="http://blogs.kno.at/personal/2007/11/20/what-is-design/">Have a look at this</a>. Have a look at successful sites, similar sites, different sites. Collect ideas. Make a solid concept. Then start the dirty work.</p>
<h2>Basics: Web thinking</h2>
<p>First of all things depend on your experience in <a href="http://www.alistapart.com/articles/separationdilemma">separation of content &amp; design</a>. Everyone who uses InDesign, for example, already knows about this. Basically what you do as a web designer can be compared to setting a document <em>in InDesign only using styles</em> (paragraph styles, character styles, etc.). You try to think as general as possible. It&#8217;s not <em>this headline</em>, it&#8217;s <em>all headlines sharing this level of importance</em>. Open up one of your multi-page InDesign documents and try to style it with as little styles as possible. Don&#8217;t use any inline-styles, only stick to your defined styles palette. That&#8217;s what you will have to do as a web designer. Furthermore as a designer you know that <a href="http://www.markboulton.co.uk/journal/comments/five_simple_steps_to_designing_grid_systems_part_4/">grids</a> are a profound tool in information architecture, so get used to use grids. Once again you can start in InDesign: Open that document and set everything on a <a href="http://www.alistapart.com/articles/settingtypeontheweb">baseline grid</a>, define columns and <a href="http://www.subtraction.com/archives/2004/1231_grid_computi.php">follow the grid</a>. Think of how to handle objects that need to or should break the grid. It&#8217;s the same deal as in print design, just there&#8217;s a huge step between <em>finishing</em> the layout and <em>implementing</em> it. In print we got PDF and solid programs that do the magic of converting a layout into a production-ready file. We don&#8217;t have this for the web. <em>WYSIWYG for the web is a lie.</em> Period. Most designers still <a href="http://www.alistapart.com/articles/understandingwebdesign">don&#8217;t understand the medium</a>. Forget the old rule about making layouts for the web in photoshop. The medium has evolved over this and the layout software approach is way more appropriate by now. Think in boxes, columns, grids, micro- and macrotypography. We might don&#8217;t have single-letter-spacing, nor a library of 2.000 fonts on the web. But as a designer you know that Arial doesn&#8217;t necessarily look the same wherever it is used. Font size, rhythms, colors, letter-spacing, whitespace, leading &#8211; we got all of it. Don&#8217;t limit yourself in the first place. There&#8217;s enough <a href="http://typetester.maratz.com/">variety in web type</a>.</p>
<h2>Implementation</h2>
<p>Now this is the point where most designers hand over their layouts to coders, or &#8211; hopefully not &#8211; start their WYSIWYG Editor. That&#8217;s fine. But if you want to call yourself a web designer than you have to cross this line. You&#8217;ll not get away being a web designer without knowing HTML and CSS. If you don&#8217;t want to do this, don&#8217;t label yourself what you&#8217;re not. That&#8217;s as calling yourself a graphics designer whilest all you can do is make clipping paths in photoshop. WYSIWYG doesn&#8217;t give you enough control to come up with the designs you&#8217;ll want to come up with: Designs that produce reusable parts. As your finished projects increase, your further ones will be accomplished faster &#8211; if you know about your HTML &amp; CSS. How flexible you can be is demonstrated by the <a href="http://www.csszengarden.com/">CSS Zen Garden</a>. Whatever design you see is the same HTML file, just linked with another Style Sheet.</p>
<h2>HTML/CSS have nothing to do with programming</h2>
<p>Never say programming a web page if what you mean is HTML/CSS coding. It&#8217;s wrong. Programmers write applications and use gibberish programming languages you&#8217;ll never have to deal with if you don&#8217;t want to. They will do all that data handling on the server and those interactive features on the client side, using JavaScript, PHP, ASP, Perl, Phyton, Ruby, whatever. HTML is no programming language. It&#8217;s (<strong>H</strong>yper<strong>T</strong>ext) <strong>M</strong>arkup <strong>L</strong>anguage. It&#8217;s no complicated programming-logic-binary-thinking-stuff, it&#8217;s logical and easy to learn. Example:</p>
<h5>Here we have a headline</h5>
<p>
This is a paragraph of text, with a <strong>stronger</strong> word and an <em>emphasized</em> word, followed by an unordered list:</p>
<ul>
<li style="list-style: none"></li>
<li>List item number one</li>
<li>List item number two</li>
</ul>
<p>
How does this look like in HTML?</p>
<ul>
<li style="list-style: none"></li>
<li><code>&lt;h1&gt;Here we have a headline&lt;/h1&gt;</code><br />
  h = headline, 1 = top level. There&#8217;s h1 to h6, the higher the number the deeper the level.</li>
<li><code>&lt;p&gt;This is a paragraph of text, with a &lt;strong&gt;stronger&lt;/strong&gt; word and an &lt;em&gt;emphasized&lt;/em&gt; word, followed by an unordered list:&lt;/p&gt;</code><br />
  p = paragraph, strong = a strong word (bold, by default) em = emphasize (italic, by default)</li>
<li><code>&lt;ul&gt;<br />
  &lt;li&gt;List item number one&lt;/li&gt;<br />
  &lt;li&gt;List item number two&lt;/li&gt;<br />
  &lt;/ul&gt;</code><br />
  ul = an unordered list (not numbered, that means)<br />
  li = list item</li>
</ul>
<p>
HTML describes the document and you basically only have to remember some abbreviations. If you are serious about becoming a web designer better start heading towards the right direction: HTML, CSS, handmade. Otherwise you should probably consider doing something else for your profession.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kno.at/web/when-im-grown-up-i-want-to-be-a-web-designer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Content Flood: Quality Tops Quantity</title>
		<link>http://blog.kno.at/web/the-content-flood-quality-tops-quantity/</link>
		<comments>http://blog.kno.at/web/the-content-flood-quality-tops-quantity/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 13:39:31 +0000</pubDate>
		<dc:creator>Kno</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[authoring]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[flood]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://blogs.kno.at/personal/2007/11/20/the-content-flood-quality-tops-quantity/</guid>
		<description><![CDATA[<p>Because my today web-travellings exposed it once again and there are more and more &#8220;tools&#8221; for this everyday, I&#8217;ll throw in my two cents on the current state of the medium we love so much, the internet.

The last years have changed the medium a lot. Not a big surprise in a medium ... <a class="more-link" href="http://blog.kno.at/web/the-content-flood-quality-tops-quantity/" title="View Post">&#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Because my today web-travellings exposed it once again and there are more and more &#8220;tools&#8221; for this everyday, I&#8217;ll throw in my two cents on the current state of the medium we love so much, the internet.</p>
<p><span id="more-88"></span></p>
<p>The last years have changed the medium a <strong>lot.</strong> Not a big surprise in a medium that&#8217;s only consistency is change. But there are directions. Let&#8217;s take an ultimate crash-course in internet history:</p>
<ul>
<li style="list-style: none"></li>
<li>Started as a very small thing</li>
<li>Became popular for scientific usage</li>
<li>Attracted all kinds of specialists as fast &amp; global publication medium</li>
<li>Attracted &#8220;the public&#8221; as global, free source of information</li>
<li>Attracted the advertisin-madmen as &#8220;the new medium&#8221;</li>
<li>Attracted the &#8220;.com&#8221;-hype</li>
<li>Crashed thy hype by people realizing that money doesn&#8217;t come from nowhere</li>
<li>New technologies, faster connections, lower prices</li>
<li>Platforms &amp; social networks arose</li>
<li>The concept of &#8220;user generated content&#8221; evolved</li>
<li>The internet as everyone&#8217;s personal publishing platform</li>
</ul>
<p>
Basically what the internet is nowadays is an important part of nearly everyone&#8217;s life. No business can exist without at least having an e-mail adress, everyone has got an own webpage, students do their master thesis&#8217;s researching on WikiPedia, people keep friendships and business connectins alive on the neverending supply of social network sites, phone companies face the enemy VoIP, the music industry is about to get smacked down again after 50 years of self-claimed dictatorship, no newspaper is without an online-version, an so forth. You get the idea.</p>
<p>Through all this blogging, content-generating, web-publishing, &#8230; the internet became a huge mess of information. Information of different quality. One can find &#8220;advice&#8221; and &#8220;tutorials&#8221; or &#8220;how-to&#8217;s&#8221; on and for everything, the problem is that there&#8217;s no guarantee on the quality of those tips and tricks. So the internet tried to invent ways of trust. First of all there are Search Engines, no question google on top. They did a great job until recently, but the bloat of publishing seems also being too much for those lately. It&#8217;s not <em>searching</em> anymore, it&#8217;s <em>researching</em> &#8211; &#8220;is this really the information I need?&#8221; &#8220;Is the source reliable?&#8221; &#8220;Is the information up to date?&#8221; &#8220;Are there conflicting opinions/truths out there?&#8221; &#8220;Is this true at all?&#8221; &#8211; every one of us is doing the profound journalistical check &#8211; recheck &#8211; doublecheck routine, on every internet research.</p>
<p>But the internet is supposed to <em>save time, not generate more work.</em> So what to do? Right, trust. In WikiPedia we trust, for example. Many people don&#8217;t even hesitate to ask google anymore if they are looking for nothing than plain facts. WikiPedia got it, and you can bet your ass the information there is as reliable as any expert or book around. Then there&#8217;s all kinds of networks trying to establish a way of sharing content: Digg, StumbeUpon, Del.ico.us, &#8230; it&#8217;s all the same: Rather trust what others suggest as being good sources of information than doing a research all by yourself. The internet has became an active medium and it&#8217;s users don&#8217;t limit themselves to &#8220;take what they get&#8221;, but they will <em>add what&#8217;s missing.</em></p>
<p>And they will make their own conclusions. I, for example, haven&#8217;t ever bought a book on marketing or branding. Because there&#8217;s hundreds of them. Even the amazon-feedbacks aren&#8217;t enough on this, I don&#8217;t want to read through all that to decide which source of information is trustworthy. But I do read blogs. Marketing Blogs. From all over the world, professionals from different parts of marketing, with different thoughts and beliefs about what they do, and with different conclusions about their work. And from those different views I can draw my own conclusions, pick the truths I find working for me and probably buy the book this guy whom&#8217;s blog I read for a year now and agree with on most topics suggested. The same thing with webdesign, a far more polarizing topic.</p>
<p>I trust total strangers. I base my future in work on the words of people I&#8217;ve never even talked to, nor seen, nor anything else, rather than buying admired books containing &#8220;the truth&#8221;. Because those people don&#8217;t try to proclaim &#8220;the one method&#8221;, &#8220;the final truth&#8221;. Those people write about <em>their experiences, what they learned and how things work for them,</em> in their situation. And they don&#8217;t hesitate talking about their own failures, critizising &#8220;the big ones&#8221; or giving out their knowledge, for free, just because they think it makes a difference.</p>
<p>And, for me, it does.</p>
<p>Hm, turned out to be a lot of ranting now. What I wanted to say is way shorter and can be packed in one sentence:</p>
<blockquote><p>
  Deliver high quality content and you&#8217;ll build lasting relations to high quality consumers.
</p></blockquote>
<p>
Now feel free to exchange &#8220;content&#8221; with &#8220;product&#8221; and there you go with probably the world&#8217;s best, yet most forgotten, marketing strategy.</p>
<p>There&#8217;s another point in delivering <em>less, but higher quality</em> content: How many blogs do you read a day? My Abo currently counts 12, personal blogs not included. If every of those blogs published two posts a day I&#8217;d not be able to catch up anyways. Abonnements and the pleasure of free RSS Readers make it easy to keep track of high quality blogs. And even if people only post once a month &#8211; if high-quality knowledge is shared I&#8217;m willing to wait. Are you?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kno.at/web/the-content-flood-quality-tops-quantity/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Can AJAX-functionality be loaded dynamically?</title>
		<link>http://blog.kno.at/web/can-ajax-functionality-be-loaded-dynamically/</link>
		<comments>http://blog.kno.at/web/can-ajax-functionality-be-loaded-dynamically/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 15:31:57 +0000</pubDate>
		<dc:creator>Kno</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dynamically]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://blogs.kno.at/doc/2007/10/30/can-ajax-functionality-be-loaded-dynamically/</guid>
		<description><![CDATA[<p>Uhm, what?
Okay, that&#8217;s the basic thought: A user visits the website. PHP recognizes a new session and therefore creates a variable $ajaxAvailable and sets it to false. The first page being displayed to the user only includes one simple AJAX-statement which tries to GET data. If AJAX isn&#8217;t ... <a class="more-link" href="http://blog.kno.at/web/can-ajax-functionality-be-loaded-dynamically/" title="View Post">&#187;</a></p>]]></description>
			<content:encoded><![CDATA[<h2>Uhm, <em>what?</em></h2>
<p>Okay, that&#8217;s the basic thought: A user visits the website. PHP recognizes a new session and therefore creates a variable <code>$ajaxAvailable</code> and sets it to false. The first page being displayed to the user only includes one simple AJAX-statement which tries to GET data. If AJAX isn&#8217;t available, or JavaScript is disabled, nothing happens. If AJAX is available the PHP-application recognizes the request, therefore sets <code>$ajaxAvailable</code> true for the current session. This way it can act different when displaying pages.</p>
<p><span id="more-156"></span></p>
<p>Utilizing Smarty (I guess any other template engine will do as well, I&#8217;m just into Smarty) one could send less data if AJAX is available, like so:</p>
<p><code><br />
{if $ajaxAvailable}<br />
&lt;h1&gt;header&lt;/h1&gt;<br />
&lt;p&gt;preview&lt;/p&gt;<br />
&lt;a rel="getMore" href="fullarticle.php"&gt;full article&lt;/a&gt;<br />
{else}<br />
&lt;h1&gt;header&lt;/h1&gt;<br />
&lt;p&gt;full article&lt;/p&gt;<br />
{endif}<br /></code></p>
<h2>What about the original question, then?</h2>
<p>Yeah, ok. Well I was just thinking that most pages would offer AJAX-functionality already on the first page. So this method would either require to load AJAX and non-AJAX contents on first access, or the page needs to be reloaded or other quirky dumb un-usable stuff. But we could get around that if the GET-request we sent to check for AJAX in the first place could then deliver this AJAX-functionality. Like importing a script on the fly. I see that on the first attempt one has to load the non-AJAX stuff anyways (in the case AJAX is not available, that is), but somehow I think this could be useful in some way. But probably I&#8217;m just plain wrong.</p>
<p>As life is a google-search for the terms &#8220;load javascript dynamically&#8221; gives, as a first result, this article: <a href="http://www.codehouse.com/javascript/articles/external/">Dynamically Loading External JavaScript Files</a> and, after some more digging around, <a href="http://www.phpied.com/javascript-include/">Javascript includes &#8211; yet another way of RPC-ing</a>. Searching and digging are nice.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kno.at/web/can-ajax-functionality-be-loaded-dynamically/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More reading and going live</title>
		<link>http://blog.kno.at/web/more-reading-and-going-live/</link>
		<comments>http://blog.kno.at/web/more-reading-and-going-live/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 15:29:49 +0000</pubDate>
		<dc:creator>Kno</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://blogs.kno.at/doc/2007/10/30/more-reading-and-going-live/</guid>
		<description><![CDATA[<p>Going live
The big day. A few minutes ago I decided to write this documentation. To show others how I work on this, to keep myself on track showing me that there is progress despite the the lack of results, and last but not least to review this later on and make it better next time.

More ... <a class="more-link" href="http://blog.kno.at/web/more-reading-and-going-live/" title="View Post">&#187;</a></p>]]></description>
			<content:encoded><![CDATA[<h2>Going live</h2>
<p>The big day. A few minutes ago I decided to write this documentation. To show others how I work on this, to keep myself on track showing me that there is progress despite the the lack of results, and last but not least to review this later on and make it better next time.</p>
<p><span id="more-155"></span></p>
<p><span style="font-size: 18px; font-weight: bold;">More reading</span></p>
<p>I&#8217;ve read a hell lot of articles recently and I found something to pick up in every single one. I realized that the <em>perfect</em> solution I am craving for won&#8217;t be possible to do. Just today it happened that I got into a lot of articles about two opposing aspects of web design: The macro-like theme of general information architecture side-by-side with the more micro-like aspect of typography. Funny enough those two give quite straight directions, and I am glad about that, since most things turned out to need to be looked into way further.</p>
<p>It&#8217;s interesting that most people seem to be on track with the theoretical approach: Typography is the major part of web content design, usability is the most important aspect when designing the interface, web design needs to be cleaned of unnecessary gutter (in ways of content, design and markup), the content istelf should be the most important part of a website and that none of those parts can really work separated from the others.</p>
<p>On the other hand there&#8217;s a lot of different approaches when it comes to practice, on <em>how</em> to accomplish those rules. Funny enough it turns out that there&#8217;s a lot of experts out there, doing one thing perfectly right and stick to it by all means, yet miserable fail on other requirements and therefore end up with nothing but a big mess. Tough luck.</p>
<h2>Questions</h2>
<p>So lately I spent most of the time on comparing methods to achieve various things (uhm &#8230; what a sentence). For example:</p>
<ul>
<li>
  Should a baseline grid rely on pixel-sized type?<br />
  No good: Some browsers still don&#8217;t resize those.<br />
  Good: Makes things a lot easier (mathematics can get tricky with relative units, and there&#8217;s no guarantee on how browsers handle things like <em>0.0625em</em>).</li>
<li>
  Should the layout width also be flexible?<br />
  No good: Can get kind of complicated, again we rely on mathematics and relative units. Also there&#8217;s the thing with images &#8211; how to handle those when the layout can be resized at all?<br />
  Good: If the layout looks good on a small screen, users with a bigger one can adjust the whole thing to their needs &#8211; what a nice feature! Also the line-width usually is (or should be) a cleverly planned thing. And if resizing doesn&#8217;t resize everything, these typographical things would break and make for a less readable layout.</li>
<li>
  Only use safe fonts?<br />
  No good: It&#8217;s been a few years that we sticked to Tahoma and Verdana. It&#8217;s the 21st century, we really should be able to move on and spice up that boring web-surface a little.<br />
  Good: It&#8217;s safe. And easier. If I based my layout on a non-safe font I&#8217;d also have to test the substitutes, to at least keep them as good-looking as possible.</li>
<li>
  Use a &#8220;web-grid&#8221; or a &#8220;design-grid&#8221;?<br />
  Web-grid: The usual stuff &#8211; x columns, y pixels each,<br />
  z pixels gutter, somewhat meeting the font requirements.<br />
  Design-grid: Use proportions, directly relate grids to type (therefore make the grid resizeable), try to bring more of the print-typography to the web, pleasing the bored eyes of the casual surfer</li>
<li>
  Use images inline or separate them?<br />
  Inline: Pictures will most likely vary in size. Placing them inline will make it kind of difficult to get them to comfort the grid. It will most likely require some server-side action, what breaks the separation-rules</li>
</ul>
<p>And a lot more questions that are floating around in my head at the moment, waiting to be answered. I really have to set up a briefing to use as a guideline, or I&#8217;ll find myself thinking <em>Uhm &#8230; how did I decide about that?</em>. Time for decisions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kno.at/web/more-reading-and-going-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rules: CSS Formatting</title>
		<link>http://blog.kno.at/web/rules-css-formatting/</link>
		<comments>http://blog.kno.at/web/rules-css-formatting/#comments</comments>
		<pubDate>Thu, 25 Oct 2007 15:27:38 +0000</pubDate>
		<dc:creator>Kno</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[formatting]]></category>
		<category><![CDATA[sourcecode]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[stylesheets]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://blogs.kno.at/doc/2007/10/25/rules-css-formatting/</guid>
		<description><![CDATA[<p>CSS formatting
CSS files bother me since I can think of using CSS. The bigger a CSS ruleset becomes the harder it becomes to keep things separted. If it comes to debugging it can be a real pain to find the one rule inside the nested styles. One major part of that mess has always been my own fault. In ... <a class="more-link" href="http://blog.kno.at/web/rules-css-formatting/" title="View Post">&#187;</a></p>]]></description>
			<content:encoded><![CDATA[<h2>CSS formatting</h2>
<p>CSS files bother me since I can think of using CSS. The bigger a CSS ruleset becomes the harder it becomes to keep things separted. If it comes to debugging it can be a real pain to find the one rule inside the nested styles. One major part of that mess has always been my own fault. In the first place I just wrote down the rules, each element got it’s style, period.</p>
<p><span id="more-154"></span></p>
<p>Later on I found out (I think while looking at wordpress-themes, that was) that it’s a good idea to divide a CSS file into sections for basic structure, typography and so on. This was the first thing I stuck to. Then I invited my own coding structure, which I couldn’t find anywhere else until now, for whatever reason that is. It looks like this:</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;body <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">&quot;../images/bg.gif&quot;</span><span class="br0">&#41;</span> <span class="re0">#<span class="nu0">333</span></span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">#fff</span><span class="coMULTI">/*colInverted*/</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-family</span><span class="sy0">:</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;georgia, <span class="kw2">serif</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-size</span><span class="sy0">:</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3"><span class="nu0">100</span>%</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="re0">#mycontent</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">#fff</span> <span class="coMULTI">/*colInverted*/</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border-color</span><span class="sy0">:</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">#<span class="nu0">333</span></span> <span class="coMULTI">/*colText*/</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border-top-color</span><span class="sy0">:</span> &nbsp; &nbsp; &nbsp; <span class="re0">#bbb</span> <span class="coMULTI">/*colSoftX*/</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">#<span class="nu0">333</span></span> <span class="coMULTI">/*colText*/</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>So the basic idea is to have all rules, codeblocks and values begin at their own consistent column. Additionally I adopted an idea from <a href="http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/">70 Expert Ideas For Better CSS Coding</a> and am sorting the properties alphabetically. Finally I am using constants in a way like this:</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1"><span class="coMULTI">/**</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* Constants being used in this file:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* #fff/*colInverted*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* #333/*colText*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* #666/*colSoft*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* #bbb/*colSoftX*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;* #333/*colHighLight*/</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;*/</span></div>
</li>
</ol>
</div>
<p>Using those I can easily change every notation of a color in the whole css file using a simple search &amp; replace. (Note that the constant-name-comment is written <em>before</em> the semicolon, so the search &amp; replace also works with short notations where the constant may not be the last value in the ruleset, plus there&#8217;s a space between the value and the <code>/*</code>-opening comment, this is for better browser compatiblity) Finally I split up the CSS into various files:</p>
<ul>
<li>reset.css<br />
  Reset file to cancel browser default values.</li>
<li>main-layout.css<br />
  Define the dimensions and positions of the main layout elements</li>
<li>baseline.css<br />
  Rules to keep everything on the baseline grid, with lots of ugly 0.xxxxxx &#8211; em-values</li>
<li>boxes.css<br />
  Rules for other semantic areas within the layout (e.g. side column) are defined here.</li>
<li>color-typo.css<br />
  Typefaces and colors, nothing else.</li>
<li>links.css<br />
  Appearance of all links</li>
<li>toolbox.css<br />
  All kinds of special effects and layout-hacks.</li>
</ul>
<p>Footnote: One big disadvantage about css frameworks is that they can produce a hell lot of http-requests. I saw frameworks split up in 20+ files, what for my personal bloggy is irrelevant, but any bigger page has a good chance to suffer from that. Keep in mind that every single file has to be fetched from the server (I know caching helps here, but hey &#8211; 20times as much requests? come on …). Whilest I see the advantage of keeping single parts split up that’s not an excuse. A simple server-side script that, let’s say once a day, checks if any css-framework files have been updated and, depending on that, builds one complete file from all the single parts will solve this problem without having any disadvantages. Also this script could strip unnecessary comments and whitespace as well as it could gather the data from one central location, making administration of the framework even more easy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kno.at/web/rules-css-formatting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>.htaccess: Subdomain &amp; PHP-ErrorDocument</title>
		<link>http://blog.kno.at/web/htaccess-subdomain-php-errordocument/</link>
		<comments>http://blog.kno.at/web/htaccess-subdomain-php-errordocument/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 10:56:44 +0000</pubDate>
		<dc:creator>Kno</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[errordocument]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[subdomain]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://blog.kno.at/2007/10/23/htaccess-subdomain-php-errordocument/</guid>
		<description><![CDATA[<p>Vor kurzem bin ich zu einem neuen Hosting-Provider umgezogen. Seit dem bastl i an der Einrichtung meiner Seite (wie man, zum Beispiel am falsch-kollatierten Portieren der WP-Datenbank, erkennen kann mit Hürden). I bin ein kleiner Ordnungsfreak, deswegen mag&#8217; i meine Verzeichnisse gern sauber. ... <a class="more-link" href="http://blog.kno.at/web/htaccess-subdomain-php-errordocument/" title="View Post">&#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Vor kurzem bin ich zu einem neuen Hosting-Provider umgezogen. Seit dem bastl i an der Einrichtung meiner Seite (wie man, zum Beispiel am falsch-kollatierten Portieren der WP-Datenbank, erkennen kann mit Hürden). I bin ein kleiner Ordnungsfreak, deswegen mag&#8217; i meine Verzeichnisse gern sauber. Und um die URLs kurz und permanent zu halten, mag i Subdomains. So. Klingt guat.</p>
<p><span id="more-79"></span></p>
<p>Dann will i allerdings auch schöne eigene ErrorDocuments (zum Beispiel so: <a href="http://blog.kno.at/wp-includes/">403 &#8211; Forbidden</a>), damit das alles a bissl a GESICHT hat. Das Problem kommt erst beim Mischen auf. Subdomains <strong>und</strong> eigene ErrorDocuments. A erster Blick in die .htaccess:</p>
<div class="geshi no apache">
<div class="head"># custom error pages</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw1">ErrorDocument</span> <span class="nu0">403</span> /errorpage.php?sc=<span class="nu0">403</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RewriteEngine</span> <span class="kw2">On</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># don&#39;t rewrite existing directories RewriteCond</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RewriteCond</span> %<span class="br0">&#123;</span>REQUEST_URI<span class="br0">&#125;</span> !-d</div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># don&#39;t rewrite existing files &nbsp;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RewriteCond</span> %<span class="br0">&#123;</span>REQUEST_URI<span class="br0">&#125;</span> !-f </div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># map 3-digit-files to errordoc</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RewriteRule</span> ^<span class="br0">&#40;</span><span class="br0">&#91;</span><span class="nu0">4</span><span class="nu0">-5</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="nu0">-9</span><span class="br0">&#93;</span><span class="br0">&#123;</span><span class="nu0">2</span><span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="br0">&#40;</span>.*<span class="br0">&#41;</span>$ errorpage.php?sc=$<span class="nu0">1</span></div>
</li>
</ol>
</div>
<p>Nach dem ErrorDocument XXX /errorpage?sc=XXX Muster san die “üblichen” Fehler 400, 401, 404 und 500 (obwohl i net sicher bin, ob’s bei dem was bringt &#8211; oba bitte, moi schaun) in ein zentrales PHP-File kanalisiert, das sich dann um Weiteres kümmert. Die nächsten 4 Zeilen fangen eventuelle weitere Fehlercodes ab. Des funktioniert, weil die ErrorDocument &#8211; Direktive wichtiger is als die Rewrite-Gschichte, zumindest nach der aktuellen Konfiguration auf dem Server hier.</p>
<p>So weit, so gut. Und funktioniert auch wunderbar. Nur net für Subdomains. Der Grund is, wenn ma ihn daun endlich rausgfunden hat, relativ einfach: Die Serverkonfiguration setzt für jede Subdomain ein eigenes DocumentRoot. Die .htaccess-Direktiven werdn daun zwar übernommen, funktionieren aber net, weil’s im neuen DocRoot die /errorpage.php net gibt. Absolute Pfade (/home/username/www) funktionieren auch net, warum is ma net 100% klar, aber auch net sonderlich wichtig; Es geht jo net.</p>
<p>Und wos tuan?</p>
<p>Die Lösung is zwar einfach, aber a bissl mühsam. Wie auch immer, sie funktioniert. Der Clou: Man richte die Subdomains auf die Hauptdomain, damit sie das gleiche DocRoot verwendet. In der zentralen .htaccess werden die Subdomains dann auf das jeweilige Verzeichnis umgeleitet, und siehe da: Die Subdomains funktionieren, die ErrorDocuments funktionieren, es gibt nur mehr 1 zentrales DocumentRoot (= kein automatisches Erstellen der Default-Dateien in den Subdomain-DocRoots) und überhaupt is alles so, wie i ma des vorstell. Die .htaccess-Direktiven für eine Subdomain test:</p>
<div class="geshi no apache">
<div class="head"># test.domain.com > /my/demo/folder</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw1">RewriteCond</span> %<span class="br0">&#123;</span>HTTP_HOST<span class="br0">&#125;</span> ^<span class="br0">&#40;</span>www.<span class="br0">&#41;</span>?test.domain.com$ </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RewriteCond</span> %<span class="br0">&#123;</span>REQUEST_URI<span class="br0">&#125;</span> !^/my/demo/folder/ </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RewriteCond</span> %<span class="br0">&#123;</span>REQUEST_FILENAME<span class="br0">&#125;</span> !-f </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RewriteCond</span> %<span class="br0">&#123;</span>REQUEST_FILENAME<span class="br0">&#125;</span> !-d </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RewriteRule</span> ^<span class="br0">&#40;</span>.*<span class="br0">&#41;</span>$ /my/demo/folder/$<span class="nu0">1</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RewriteCond</span> %<span class="br0">&#123;</span>HTTP_HOST<span class="br0">&#125;</span> ^<span class="br0">&#40;</span>www.<span class="br0">&#41;</span>?test.domain.com$ </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">RewriteRule</span> ^<span class="br0">&#40;</span>/<span class="br0">&#41;</span>?$ my/demo/folder/ <span class="br0">&#91;</span>L<span class="br0">&#93;</span></div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.kno.at/web/htaccess-subdomain-php-errordocument/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

