<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">

    <channel>
    
    <title>Martini Lab</title>

    <link>http://www.martinilab.com</link>
    <description>Semi-regular updates about things I notice on the Internet.</description>
    <dc:language>en-us</dc:language>
    <dc:creator>Chris Williams</dc:creator>

    <dc:rights>Copyright 2017</dc:rights>
    <admin:generatorAgent rdf:resource="http://www.codeigniter.com/" />

				        	<item>
				<title>Publishers Have More to Worry About</title>
				<link>http://martinilab.com/comic_book_publishers_have_more_to_worry_about</link>
				<guid>http://martinilab.com/comic_book_publishers_have_more_to_worry_about</guid>
				<description><![CDATA[
					
					
											

																					<blockquote>
									<p>People need to calm down about the change to comiXology. At least, fans should calm down. Retailers should probably start to panic.</p>								</blockquote> 

								<cite><p><a href="http://comicsbeat.com/op-ed-no-amazon-is-not-trying-to-kill-the-broader-digital-comics-audience/">Op-Ed: No, Amazon is Not Trying to Kill the Broader Digital Comics Audience - Comics Beat</a></p></cite>
																		
						

						

					
											

											
						

												<div>
							<img src="http://s3.amazonaws.com/martinilab/mlab1j_y6wagc_s.jpg" alt="">
							<div class="owner">
																	DC Comics															</div>
							<div class="description"><p>&#8220;Now Kiss&#8221;</p></div>
						</div>
						

					
													<p>Every time something changes in tech for comics, &#8220;retailers should panic&#8221; always makes the rounds among the pundits. First it was Marvel Unlimited, PSP Comics, comiXology, iVerse, Kindle comics, Facebook comics, then retina iPads, now this. Comic shop retailing has been the only consistent consumer channel in the last decade.</p>

<p>In fact, it’s been publishers who have had more to weather, and with Amazon controlling the cards, DC, Marvel, and Image will have new contracts to contend with. I imagine that their initial deals with comiXology were very good while the start-up was shopping for an owner to buy them out. It makes sense, if comiXology’s end game was to get bought out, they’d need to bring over the publishers with them, they would have to make it worth the publishers while.</p>

<p>It’s more likely that publishers should begin to panic.</p>

<p>After all, comiXology gave every one of their readers the single most disruptive shopping experience within a month of their purchase, <a href=“http://daringfireball.net/linked/2014/04/26/comixology”>prompting even the most ardent Apple fanboy to uninstall it</a>.</p>											

											
						

						

										
					<p><a href="http://www.martinilab.com/comic_book_publishers_have_more_to_worry_about">&#9755;</a></p>

				]]></description>
				<pubDate>Wed, 30 Apr 2014 12:03:35 -0600</pubDate>
				<dc:creator>Martini Lab</dc:creator>
			</item>
				        	<item>
				<title>Front Porch 2013</title>
				<link>http://martinilab.com/front_porch_2013</link>
				<guid>http://martinilab.com/front_porch_2013</guid>
				<description><![CDATA[
					
					
											

											
						

												<div>
							<img src="http://s3.amazonaws.com/martinilab/mlab1i_cxcyx4_z.jpg" alt="">
							<div class="owner">
																																</div>
							<div class="description"><p>From the floor at Front Porch 2013</p></div>
						</div>
						

					
													<p>By the way, <a href="http://frontporch.io">this happened</a>.</p>

<p>Sure, you can build email lists, push your show for more ticket sales on Twitter, personally reach out to tech companies to have their developers attend, but blog about it?</p>

<p>I knew I forgot something.</p>

<p>If you didn’t get to attend Front Porch last year, here are all the tech talks preserved on YouTube forever.</p>											

											
						

						

					
											

											
												
														
							<iframe src="//www.youtube.com/embed/mcg_-JanP5c?list=PLV271uUAM_m7RStHA5-KFZ4HuQ2fYfRzR" frameborder="0" allowfullscreen></iframe>							<p><strong>Front Porch conference video</strong><br><br><a href="http://www.youtube.com/watch?v=mcg_-JanP5c&amp;list=PLV271uUAM_m7RStHA5-KFZ4HuQ2fYfRzR&amp;index=3">source</a></p>							
						

						

										
					<p><a href="http://www.martinilab.com/front_porch_2013">&#9755;</a></p>

				]]></description>
				<pubDate>Fri, 31 Jan 2014 17:48:15 -0600</pubDate>
				<dc:creator>Martini Lab</dc:creator>
			</item>
				        	<item>
				<title>Better color variable names through crayons</title>
				<link>http://martinilab.com/better_color_variable_names_through_crayons</link>
				<guid>http://martinilab.com/better_color_variable_names_through_crayons</guid>
				<description><![CDATA[
					
					
											

											
						

												<div>
							<img src="http://s3.amazonaws.com/martinilab/mlab1h_k7ft64_s.jpg" alt="">
							<div class="owner">
																	<a href="http://www.crayola.com/products/64-ct-crayola-crayons-product/">Crayola</a>
															</div>
							<div class="description"><p>Color all the things</p></div>
						</div>
						

					
													<p>Setting color variables is an easy way to maintain consistency across css files.  It prevents errors, easy to update, works great with mixins too. Coming up with names for each shade of red for your sites ui can be problematic. Red, dark red? lighter-red? lighter-red-button-border, etc.</p>

<p><a href="http://chir.ag/projects/name-that-color/">Name that Color</a> will take hex values and return names based on Wikipedia&#8217;s index of Crayola colors. The code for this color picker is available for download, as well as more color resources.</p>

<p>Admit it, $burnt-sienna is a much better variable name than $kindof-pink.</p>

											

											
						

						

										
					<p><a href="http://www.martinilab.com/better_color_variable_names_through_crayons">&#9755;</a></p>

				]]></description>
				<pubDate>Thu, 23 Jan 2014 13:09:57 -0600</pubDate>
				<dc:creator>Martini Lab</dc:creator>
			</item>
				        	<item>
				<title>Add IE8 to your CSS workflow</title>
				<link>http://martinilab.com/add_ie8_to_your_css_workflow</link>
				<guid>http://martinilab.com/add_ie8_to_your_css_workflow</guid>
				<description><![CDATA[
					
					
											

											
						

												<div>
							<img src="http://s3.amazonaws.com/martinilab/mlab1g_e9kh2g_z.jpg" alt="">
							<div class="owner">
																																</div>
							<div class="description"><p>Probably not IE8, but might as well be</p></div>
						</div>
						

					
													<p>Nothing quite like working in your perfect set up, coding the way you code, using your own stack, everything is coming up roses. Oh ya, the client mentions that all of this needs to work in IE8. No amount of statistics and citations to back your position will prevent this requirement. IE8 1, you 0.</p>

<p>CSS on IE8 isn&#8217;t bad. From the perspective that it&#8217;s not IE7, it&#8217;s quite good. Things that it can&#8217;t do are pretty minor to experienced developers. <code>background-size</code>, <code>border-radius</code>, <code>rgb</code> color support are minor hiccups that most will code around or provide fallback support for.</p>

<p>Getting IE8 to load the right styles based on media queries is another matter.  Bootstrap&#8217;s solution is to use JavaScript&#8230; because of reasons.  Another option is to let IE8 users only load CSS for small displays.  It&#8217;s not a bad option actually, mobile-first design might actually a better experience for IE8 users. And it doesn&#8217;t really require any additional work.  Unfortunately, it&#8217;s never an acceptable option for clients, nor should it be up to developers to dictate what users can or cannot view.</p>

<p>Putting IE8 specific styles into a separate file is supported by the browser, and hats off to Microsoft for having this feature available for it&#8217;s browsers.</p>

<p><code>&lt;!&#8212;[if lt IE 9]&gt;&lt;link rel=&#8220;stylesheet&#8221; href=&#8220;oldie.css&#8221;&gt;&lt;![endif]&#8212;&gt;</code></p>

<p>All other browsers will ignore this, but not IE8.  What happens is IE8 will load this as well as the main file.  </p>

<p>As the developer, maintaining two sets of code isn&#8217;t ideal.  Here&#8217;s a way to write code once and have it output to both IE8 and A-grade browsers. These examples are written in LESS but will just fine in Sass.</p>

											

											
						

						

					
											

											
												
														
							<script src="https://gist.github.com/amboy00/8440688.js"></script>							<p><strong></strong><br></p>							
						

						

					
													<p>So what&#8217;s happening here?  The mixin is defined in a separate file that is meant for medium-sized screens.  In this example the medium size is suitable with for IE8 support, but this can be expanded to include the any media queries as well.  Both the main and IE8 css files import the mixin &#8220;hero-medium&#8221; and call it, but the main nests it in the media query.</p>

<p>However, moving between several files just to support IE8 can be more confusing than having everything in one place.  Waiting until afterward to do this is just fine.  The  result will be the same, but a lot less cumbersome than writing a whole new IE8 file with completely separate code.</p>

											

											
						

						

										
					<p><a href="http://www.martinilab.com/add_ie8_to_your_css_workflow">&#9755;</a></p>

				]]></description>
				<pubDate>Wed, 15 Jan 2014 11:42:24 -0600</pubDate>
				<dc:creator>Martini Lab</dc:creator>
			</item>
				        	<item>
				<title>Designing with fake/real content.</title>
				<link>http://martinilab.com/designing_with_fakereal_content</link>
				<guid>http://martinilab.com/designing_with_fakereal_content</guid>
				<description><![CDATA[
					
					
											

											
						

												<div>
							<img src="http://s3.amazonaws.com/martinilab/mlab1f_y8j84x_s.jpg" alt="">
							<div class="owner">
																	<a href="http://instagram.com/amboy00">Source</a>
															</div>
							<div class="description"><p>Oh no! My rounded corners are gone!</p></div>
						</div>
						

					
													<p>Working with greeking (<em>lorem ipsum</em>) should never be an option when building or designing web sites.  There is a previous post about the <a href="http://www.martinilab.com/greeking_needs_to_die">why&#8217;s and why not&#8217;s</a>, as well as many sources that explain it far better.</p>

<p>The challenge comes when building something without knowing what the content will be. First, there&#8217;s content that goes through a copywriter, then legal, then proofing, etc. That kind of content is it&#8217;s own workflow, and hopefully the planets lined up and all that is completed before design work begins.</p>

<p>Then there is the other kind of content&#8212;data.  This content can come from external API&#8217;s, environmental or conditional factors, and users.</p>

<p>User data can be easy to design for, but still needs to be tested for the unexpected ways users muck everything up.  Not everyone has memorable names like Jonny Appleseed, or look like Kayne West.  Sorry Dribbble, pretty pixels can be totally offset but non-model avatars.</p>

<p>This was a problem Twitter faced in when updated their design for custom backgrounds.  What the designers built didn&#8217;t hold up to bad user input.  Text became unreadable and they had to experiment with bad user data to make their design work (I mean, <em>great</em> user data).</p>

<p><strong>Avatars</strong> Lots of users have added their Twitter avatars to <a href="http://uifaces.com">UI Faces</a>.  They&#8217;re ugly, pretty, cartoons, pets, questionable at times, but they are perfect example of what to expect from users.</p>

<p><strong>Names</strong> <a href="http://uinames.com">UI Names</a> offers two gender name generators.  The names are pulled from a list of the most common popular names in America, so they can don&#8217;t offer a lot of special characters or foreign names, if any.  But the variety is large enough to suss out any design elements and UI.</p>

<p><strong>Addresses</strong> What&#8217;s great about <a href="http://names.igopaygo.com/street/north_american_address">North American Address Generator</a> is that is also provides a SQL statement.  This is a lot better than 1234 Anywhere St.</p>

<p>And to really see user info in actions, use <a href="https://github.com/marak/Faker.js/">faker.js</a> to pull data into your UI.</p>

<p>It would be great to see more generators like these. Custom backgrounds, usernames, social feeds, anything that always sits out of the control of the designer but touches everything designed, it will make a better product for the client and the user.</p>											

											
						

						

										
					<p><a href="http://www.martinilab.com/designing_with_fakereal_content">&#9755;</a></p>

				]]></description>
				<pubDate>Tue, 14 Jan 2014 11:23:26 -0600</pubDate>
				<dc:creator>Martini Lab</dc:creator>
			</item>
				        	<item>
				<title>Use Grunt to handle your sprite sheets.</title>
				<link>http://martinilab.com/grunt_spritesmith_for_retina_sprite_sheets</link>
				<guid>http://martinilab.com/grunt_spritesmith_for_retina_sprite_sheets</guid>
				<description><![CDATA[
					
					
											

											
						

												<div>
							<img src="http://s3.amazonaws.com/martinilab/mlab1d_t3tgck_z.jpg" alt="">
							<div class="owner">
																	<a href="http://www.centralmarket.com">Central Market</a>
															</div>
							<div class="description"><p>One of many spritesheets I developed for Central Market.</p></div>
						</div>
						

					
													<p>There are more tedious things than creating sprite sheets from scratch. Setting all those images into one image, and measuring all the dimensions of each item, it&#8217;s coordinates in the file, and then writing the CSS code for use on the page. There are more tedious things, but none come to mind.</p>

<p>Using Grunt to leverage the process has turned out to be really useful. <a href="https://npmjs.org/package/grunt-spritesmith">grunt-spritesmith</a> has been a godsend for making the process a seamless step in the RWD workflow.</p>

<p><em>One caveat, the install is a bear. So be patient. For novice <code>npm</code> users this will not only be new territory but grabbing another developer to get it working will save some time.</em></p>

<p>From previous issues made in their github, this is a recommended workflow I&#8217;ve come up with:</p>											

											
						

						

					
											

											
						

												<div>
							<img src="http://s3.amazonaws.com/martinilab/mlab1e_7fa8w9_s.jpg" alt="">
							<div class="owner">
																																</div>
							<div class="description"><p>Example directory</p></div>
						</div>
						

					
													<p>Have two folders, one for standard displays, another for retina or high dpi displays (if you&#8217;re into that sort of thing). The order of the images in each folder need to match, so be aware that &#8220;2x&#8221; can affect that. If the images in the &#8220;2x&#8221; folder, for example, is in a different order alphanumerically with Grunt runs, the values won&#8217;t match in your <code>CSS</code>.</p>

<p>Set <code>grunt.js</code> to run the <code>sprite</code> task like below.</p>

<p>Here we set the source of the images, the output image (generated), Sass file (or LESS or CSS), how the image is referenced in CSS, and the namespace for your sprites. </p>

<p>Punch in <code>grunt sprite</code> in your <code>CLI</code> and grunt steps through each one.  You should have two new images and two <code>.scss</code> files.  Spritesmith can create as many sheets as needed, for this example only two are used to show the next part. If new sprites are needed later on in the project, these files can be updated and everything will still work.</p>											

											
						

						

					
											

											
												
														
							<script src="https://gist.github.com/amboy00/7238726.js"></script>							<p><strong></strong><br><br><a href="https://gist.github.com/amboy00/7238726">source</a></p>							
						

						

					
													<p>Using the <code>sprite</code> mixin will output width, height, background position, etc. for the sprite automatically.  Because the &#8220;retina&#8221; sprite sheet is twice as large, this mixin needs two arguments to pull it off.</p>

<p>One more thing to consider is the file sizes for the images are really large, So optimize, optimize, optimize.</p>											

											
						

						

										
					<p><a href="http://www.martinilab.com/grunt_spritesmith_for_retina_sprite_sheets">&#9755;</a></p>

				]]></description>
				<pubDate>Mon, 06 Jan 2014 10:19:26 -0600</pubDate>
				<dc:creator>Martini Lab</dc:creator>
			</item>
				        	<item>
				<title>Leveling up with Constraint Cards</title>
				<link>http://martinilab.com/constraint_cards</link>
				<guid>http://martinilab.com/constraint_cards</guid>
				<description><![CDATA[
					
					
											

											
						

												<div>
							<img src="http://s3.amazonaws.com/martinilab/mlab1c_3e66tk_s.JPG" alt="">
							<div class="owner">
																																</div>
							<div class="description"></div>
						</div>
						

					
													<p>Today, a foreign package arrived on my doorstep. What started as a Kickstarter has turned into a physical deck of cards.</p>

<p><a href="http://constraints.co/">Constraint Cards</a> comprise of 52 unique and helpful design guidelines for web designers.  <em>No images</em>, for example, is a huge design constraint for some. In the same vein so is designing for mobile. It challenges designers to work with less. <em>Paper only</em>, <em>Focus on data</em>, or <em>One type face</em> are pretty much the opposite of using Photoshop to create.</p>											

											
						

						

										
					<p><a href="http://www.martinilab.com/constraint_cards">&#9755;</a></p>

				]]></description>
				<pubDate>Sat, 04 Jan 2014 10:57:30 -0600</pubDate>
				<dc:creator>Martini Lab</dc:creator>
			</item>
				        	<item>
				<title>My reading list</title>
				<link>http://martinilab.com/my_reading_list</link>
				<guid>http://martinilab.com/my_reading_list</guid>
				<description><![CDATA[
					
					
													<p>Staying up to date with front-end development isn&#8217;t easy. Tech blogs tend to duplicate each others content leaving little to distill into useful content.</p>

<p>One good thing about following a bunch of know-it-alls on Twitter is they like to post things they create. One bad thing about it is the amount of noise between the posts I want to read.  Google Plus has a much stronger signal to noise ratio.  It has some really strong communities as well.  The node community, for example, has a high tolerance for beginner questions, something lacking in StackOverflow.</p>

<p><a href="http://webplatformdaily.org/">Web Platform Daily</a> is easily my morning read.</p>

<p>Probably the best option for staying up to date are email newsletters.  They&#8217;re curated to show import and or popular articles.</p>

<p>I started a github repo for <a href="https://github.com/amboy00/Resources">resources</a>.  Feel free to add or amend.</p>

<p>Newsletters (in no particular order:</p>

<ul>
<li><a href="http://bdconf.com/newsletter">Breaking Development</a></li>
<li><a href="http://webtoolsweekly.com/">Web Tools Weekly</a></li>
<li><a href="http://wdrl.helloanselm.com/">Web Development Reading List</a></li>
<li><a href="http://html5weekly.com/">HTML5 Weekly</a></li>
<li><a href="http://web-design-weekly.com/">Web Design Weekly</a></li>
<li><a href="http://javascriptweekly.com/">JavaScript Weekly</a></li>
<ul>											

											
						

						

										
					<p><a href="http://www.martinilab.com/my_reading_list">&#9755;</a></p>

				]]></description>
				<pubDate>Thu, 02 Jan 2014 15:20:59 -0600</pubDate>
				<dc:creator>Martini Lab</dc:creator>
			</item>
				        	<item>
				<title>Pretty good year</title>
				<link>http://martinilab.com/pretty_good_year</link>
				<guid>http://martinilab.com/pretty_good_year</guid>
				<description><![CDATA[
					
					
											

											
						

												<div>
							<img src="http://s3.amazonaws.com/martinilab/mlab1b_6fk3ay_s.jpg" alt="">
							<div class="owner">
																																</div>
							<div class="description"><p>^^^</p></div>
						</div>
						

					
													<p>As far as getting things done, this year has been really good.  In March, I left The Richards Group after launching two sites (<a href="http://www.richardslerma.com/">Richards/Lerma</a> and <a href="http://www.pancan.org/annual_report_2012/">PanCan Annual Report</a>) to work at Oven Bits.  Not a lot of time to waste, as <a href="http://instead.com">Instead App</a> got a new site for itself. Just recently, the hard work at <a href="http://cellucor.com">Cellucor</a> paid off and went live as well.  There were many other projects for Oven Bits as well.  Travel Texas, EDP, Red Mango, and Bible App for Kids all went live this year.</p>

<p><a href="http://frontpoprch.io">Front Porch</a> was a big accomplishment as well. Dallas’ own front-end developer conference has its first inaugural year - something I hope continues for years.</p>

<p>So what for 2014? Time to dust off this blog, update it’s css and back-end code I think. Hopefully get a podcast started with my colleagues. Improve my skills across the board, goes without saying.</p>

<p>What I would really like to see this year is more focus from myself and everyone on what we can do to make our industry better.  Front Porch was a good example of what happens when a few people with the same goals can make their industry better.  It wasn’t perfect, but it was damn good. And from what I can see, much needed.</p>											

											
						

						

										
					<p><a href="http://www.martinilab.com/pretty_good_year">&#9755;</a></p>

				]]></description>
				<pubDate>Tue, 31 Dec 2013 14:59:58 -0600</pubDate>
				<dc:creator>Martini Lab</dc:creator>
			</item>
				        	<item>
				<title>Is RSS Dead? (kind of, ya)</title>
				<link>http://martinilab.com/is_rss_dead</link>
				<guid>http://martinilab.com/is_rss_dead</guid>
				<description><![CDATA[
					
					
											

											
						

												<div>
							<img src="http://s3.amazonaws.com/martinilab/mlab1a_e72kj4_s.jpg" alt="">
							<div class="owner">
																																</div>
							<div class="description"><p>Google Reader</p></div>
						</div>
						

					
													<p>I certainly hope not.  But it very well may be according to Google.</p>

<p>Google Reader is shutting down in July.  Feedburner isn&#8217;t the service it used to be either, with AdSense and API no longer available with the service.</p>

<p>Maybe blogging is dead.  Or, at least the landscape for being a blogger has changed.  Between optimizing content for mobile, and social strategies for traffic, the rules for building an audience has been evolving over time.</p>

<p>Some sites are abandoning those rules altogether.  With sites moving to paywalls and subscriptions (The Magazine, Andrew Sullivan, Salon has been using this model for years), maybe the rules used as far back as just a year or two ago probably don&#8217;t even matter.</p>

<p>RSS isn&#8217;t really dead.  Neither are microformats, but who uses that anymore?  Regardless of the industry, RSS is now a tinkerers toy. Everyone else will have to actually visit a website. *shutter*</p>											

											
						

						

										
					<p><a href="http://www.martinilab.com/is_rss_dead">&#9755;</a></p>

				]]></description>
				<pubDate>Thu, 14 Mar 2013 08:55:00 -0600</pubDate>
				<dc:creator>Martini Lab</dc:creator>
			</item>
		</channel>
</rss> 
