<?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>Jack Reichert</title> <atom:link href="http://www.jackreichert.com/feed/" rel="self" type="application/rss+xml" /><link>http://www.jackreichert.com</link> <description>Web Development</description> <lastBuildDate>Wed, 01 Feb 2012 02:43:44 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>No More Passwords* &#8211; Log into WordPress using a QR Code</title><link>http://www.jackreichert.com/2012/01/22/no-more-passwords-log-into-wordpress-using-a-qr-code/</link> <comments>http://www.jackreichert.com/2012/01/22/no-more-passwords-log-into-wordpress-using-a-qr-code/#comments</comments> <pubDate>Sun, 22 Jan 2012 20:37:04 +0000</pubDate> <dc:creator>Jack Reichert</dc:creator> <category><![CDATA[Web Development]]></category> <category><![CDATA[qr codes]]></category> <category><![CDATA[security]]></category> <category><![CDATA[WordPress plugin]]></category> <guid
isPermaLink="false">http://www.jackreichert.com/?p=1140</guid> <description><![CDATA[Download and try it yourself A short while ago I stumbled upon an interesting Hacker News conversation&#8230; Intrigued by the challenge, I decided to implement the theory as a WordPress plugin for all to use. So here&#8217;s the gory details&#8230; The Flow]]></description> <content:encoded><![CDATA[<p><iframe
src="http://www.youtube.com/embed/gWDtQAXIu0I?rel=0" frameborder="0" width="600" height="450"></iframe></p><h3 style="text-align: center;"><a
href="http://www.jackreichert.com/plugins/no-more-passwords/">Download and try it yourself</a></h3><p><em>A short while ago I stumbled upon an interesting <a
href="http://news.ycombinator.org/item?id=3399781">Hacker News</a> conversation&#8230;</em></p><p>Intrigued by the challenge, I decided to implement the theory as a WordPress plugin for all to use. So here&#8217;s the gory details&#8230;<span
id="more-1140"></span></p><h2>The Flow</h2><ol><li><strong>User</strong> visits <strong>Login page</strong></li><li><strong>Login page</strong> Generates unique hash, saves hash to the database</li><li><strong>Login page</strong> Creates QR code of a link that GET posts hash to the <strong>Plugin&#8217;s admin page</strong></li><li>Via long polling <strong>Login page </strong>waits for a username to be inserted into the row in the database that has the page&#8217;s active hash</li><li><strong>User</strong> scans QR code with mobile device and which is sent to <strong>Plugin&#8217;s admin page</strong> on mobile with along with the active hash posted via GET</li><li>In WordPress, the <strong>User</strong> must be logged in to reach <strong>Plugin admin page</strong> by definition</li><li>The <strong>Plugin admin page</strong> records the username to active hash in the database (the GET posted hash)</li><li>The<strong> Login page</strong> sees a change in active hash&#8217;s row of the database and reloads the page with a GET post of the active hash</li><li>Using the WordPress action init the page  receives the hash, finds row of active hash in the database and pulls the username, it then removes the hash from database so it can&#8217;t be reused</li><li>The page then logs in the <strong>User</strong> using the username pulled and redirects the <strong>User</strong> to the WordPress Dashboard</li></ol><div
style="text-align: center;"><a
href="http://www.jackreichert.com/files/2012/01/QrLogin.png"><br
/> </a></div><div
style="text-align: center;"></div><div
style="text-align: center;"><a
href="http://www.jackreichert.com/files/2012/01/QrLogin1.png" class="thickbox no_icon" rel="gallery-1140" title="QrLogin"><img
class="aligncenter size-large wp-image-1217" title="QrLogin" src="http://www.jackreichert.com/files/2012/01/QrLogin1-1024x636.png" alt="" width="1024" height="636" /></a></div><h2>Notes</h2><p>Alone, this isn&#8217;t a solution to never having to remember your passwords again. Your mobile browser has to have the logged-in cookies for it to work completely without password.</p><p><strong>Why is it still useful?</strong> Well, everyone goes everywhere with their cellphones now, but with today&#8217;s mobility it means that you&#8217;re likely to find yourself with an urgent idea to post to your blog, and not wanting to type it out with your thumbs on your mobile. So, borrow Aunt Sally&#8217;s computer &#8211; that by all chance has thousands of suspicious apps, key loggers and, by the way, is running Vista &#8211; and to log in just scan away!</p><p>Ideally, it would work great with an app built to complement it that would scan the qr code, save your passwords, and log you in automatically if the local cookie had expired&#8230; Perhaps that app is in the works&#8230; Comment below if you&#8217;d like it and I may be swayed to create such a monster. Perhaps <a
href="https://tiqr.org/">tiqr</a> might want to gang up&#8230;</p><p><strong>Is it secure?</strong> I&#8217;ve put several checks in place to make sure it is.</p><ol><li>Username/password are never passed back and forth, only the unique hash.</li><li>Hash is removed from the database once it&#8217;s used, old hashes that haven&#8217;t been used can&#8217;t be unless the database is hacked, but then you have bigger issues.</li><li>All database queries of the hash have been escaped to prevent XSS attacks.</li><li>nonce added to ajax call.</li></ol><p>I&#8217;m pretty sure that covers security. Anything else needed?</p><p>Suggestions? Comments? You know where that goes&#8230;</p><h2>Special thanks to&#8230;</h2><ul><li><a
href="http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/">5 tips for using AJAX in WordPress</a></li><li><a
href="http://blog.perplexedlabs.com/2009/05/04/php-jquery-ajax-javascript-long-polling/">PHP jQuery AJAX Javascript Long Polling</a> - although the long polling solution I worked out with WordPress&#8217; AJAX isn&#8217;t perfect yet.</li><li>And of course <em><a
href="https://twitter.com/#!/peterlegierski">@PeterLegierski</a> </em>for the original post on HN.</li></ul><p>&nbsp;</p><p><a
href="https://github.com/Jackreichert/WordPress-Login-via-QR-Code">View the GitHub repository</a></p><p><a
href="http://www.jackreichert.com/plugins/no-more-passwords/">Download and try it yourself</a></p><p>&nbsp;</p> ]]></content:encoded> <wfw:commentRss>http://www.jackreichert.com/2012/01/22/no-more-passwords-log-into-wordpress-using-a-qr-code/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>How to Add META Tags &#8211; ROBOTS NOFOLLOW,NOINDEX &#8211; to Your MediaWiki Site Head</title><link>http://www.jackreichert.com/2012/01/18/how-to-add-meta-tags-robots-nofollownoindex-to-your-mediawiki-site-head/</link> <comments>http://www.jackreichert.com/2012/01/18/how-to-add-meta-tags-robots-nofollownoindex-to-your-mediawiki-site-head/#comments</comments> <pubDate>Thu, 19 Jan 2012 02:24:42 +0000</pubDate> <dc:creator>Jack Reichert</dc:creator> <category><![CDATA[Reference]]></category> <category><![CDATA[mediawiki]]></category> <category><![CDATA[seo]]></category> <guid
isPermaLink="false">http://www.jackreichert.com/?p=1135</guid> <description><![CDATA[I spent too much time today hunting down how to do this, so I thought I&#8217;d spell it out clearly. Add the following snippet to your LocalSettings.php OR includes/OutputPage.php file and it will insert the META tag ROBOTS NOINDEX, NOFOLLOW into the header. As you]]></description> <content:encoded><![CDATA[<p>I spent too much time today hunting down how to do this, so I thought I&#8217;d spell it out clearly.</p><p>Add the following snippet to your <a
href="http://www.mediawiki.org/wiki/Manual:LocalSettings.php">LocalSettings.php</a> <em><strong>OR</strong></em> <a
href="http://www.mediawiki.org/wiki/Manual:OutputPage.php">includes/OutputPage.php</a> file and it will insert the META tag ROBOTS NOINDEX, NOFOLLOW into the header.</p><p>As you know, the ROBOTS NOINDEX, NOFOLLOW tag will tell search engines not to index your site.</p><p><script src="https://gist.github.com/1636729.js?file=mediawiki-nofollow"></script></p><p>Why would you want that? Any number of reasons: you&#8217;re still developing it, it&#8217;s a private wiki for just you or a small group of people or maybe you want to block search engines to just to spite them.</p><p>The above snippet can be modified and used to insert any meta tag into the header of your mediawiki site.</p><p>I placed the code after defining the theme in my LocalSettings.php page and it worked beautifully. Not sure where specifically it should go. Please comment below if you know of a &#8220;best placement&#8221; for the code.</p> ]]></content:encoded> <wfw:commentRss>http://www.jackreichert.com/2012/01/18/how-to-add-meta-tags-robots-nofollownoindex-to-your-mediawiki-site-head/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Beautiful WordPress 3.3 Site in Under 30 Minutes</title><link>http://www.jackreichert.com/2011/12/15/beautiful-wordpress-site-in-under-30-minutes/</link> <comments>http://www.jackreichert.com/2011/12/15/beautiful-wordpress-site-in-under-30-minutes/#comments</comments> <pubDate>Fri, 16 Dec 2011 01:46:05 +0000</pubDate> <dc:creator>Jack Reichert</dc:creator> <category><![CDATA[Musings]]></category> <guid
isPermaLink="false">http://www.jackreichert.com/?p=1127</guid> <description><![CDATA[My wife needed a professional site. What were we to do? WordPress! From conception to reality it took 30 minutes. I didn&#8217;t design the site from scratch. There are thousands of beautiful free themes out there. WordPress.org has a great]]></description> <content:encoded><![CDATA[<p>My wife needed a professional site. What were we to do?</p><p>WordPress!</p><p>From conception to reality it took 30 minutes. I didn&#8217;t design the site from scratch. There are thousands of beautiful free themes out there. WordPress.org has a great way to <a
href="http://wordpress.org/extend/themes/tag-filter/">filter through themes by the specific features you are looking for</a>. For me it was like browsing through a toy store.</p><p>I have a multisite installation of WordPress set up so it was just a click of the button setting up a new site for her. Mapping the domain took about 30 seconds and enabling the theme another thought&#8230; Without multisite it would probably have taken 31 minutes, because WordPress is THAT easy to set up.</p><p>The only thing that took time was deciding on the theme, and then figuring out information structure &#8211; taxonomy etc.</p><p>We have plans to hack up / adapt the theme we chose to fit our needs better. It probably will look nothing like the original theme when we&#8217;re done. My only conundrum is at what point do I remove the author&#8217;s name (since he may not want his name on a hacked up site).</p><p
style="text-align: center;">* * *</p><p>This was also my first opportunity to play with WordPress version 3.3. It&#8217;s a pleasure. The focus has always been on the user with WordPress, but now they took it to another level. Kudos guys!</p><p>Here&#8217;s three of my favorite features:</p><ul><li>The drag and drop multimedia embedder is wonderful. It makes adding images to a post almost frictionless (i.e. it&#8217;s almost as easy as sharing all your personal data with Facebook media partners.)</li><li>The new admin menus are a pleasure to use; No more multiple clicks to get to submenus, Easy to navigate admin bar. I&#8217;m looking forward to playing with the admin area api. It should add the ability to make  themes as a product for clients a more professional package.</li><li>Updated jQuery and jQuery UI. I&#8217;m a strong supporter of keeping supporting scripts up to date. This makes everything work better!</li></ul> ]]></content:encoded> <wfw:commentRss>http://www.jackreichert.com/2011/12/15/beautiful-wordpress-site-in-under-30-minutes/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Announcing: The Redesign &#8211; Part One</title><link>http://www.jackreichert.com/2011/09/14/announcing-the-redesign-part-one/</link> <comments>http://www.jackreichert.com/2011/09/14/announcing-the-redesign-part-one/#comments</comments> <pubDate>Wed, 14 Sep 2011 20:59:41 +0000</pubDate> <dc:creator>Jack Reichert</dc:creator> <category><![CDATA[Web Development]]></category> <category><![CDATA[font size]]></category> <category><![CDATA[jquery plugin]]></category> <category><![CDATA[responsive web design]]></category> <category><![CDATA[theme development]]></category> <category><![CDATA[web development]]></category> <category><![CDATA[wordpress]]></category> <guid
isPermaLink="false">http://www.jackreichert.com/?p=1067</guid> <description><![CDATA[I&#8217;ve been working on a new look for this site for a while&#8230; It&#8217;s not done yet, but I&#8217;ve gotten enough of the pieces in place to launch this iteration. As my wise friend Zach advised: &#8220;Commit early, commit often.&#8221; You]]></description> <content:encoded><![CDATA[<p>I&#8217;ve been working on a new look for this site for a while&#8230; It&#8217;s not done yet, but I&#8217;ve gotten enough of the pieces in place to launch this iteration. As my wise friend Zach advised: &#8220;Commit early, commit often.&#8221;</p><p>You can play with the <a
href="http://www.jackreichert.com/home/">final concept</a>, which is still under development, if you&#8217;re curious.</p><h3>Technologies/Techniques Used</h3><p><strong><a
href="http://www.jackreichert.com/meet-jack/">Home</a></strong> - (a.k.a. &#8220;Meet Jack&#8221;) Responsive. Play with the screen-size to check it out. I found that media queries worked well here.</p><p><strong><a
href="http://www.jackreichert.com/what-you-can-expect/">About</a> - </strong>(a.k.a. &#8220;What You Can Expect&#8221;) I developed a jQuery plugin &#8211; &#8220;Pretty Titles&#8221; - then ported that plugin into a WordPress plugin. There are a few kinks that need to be worked before I release the plugins into the wild. Stay tuned.</p><p>How does it work? Essentially it takes the content from an element&#8217;s title attribute and presents that content in an absolute positioned element, near the mouse position, that can be custom styled. The script will also keep an eye out for markdown formatted URLs. I am considering incorporating a limited markdown in the final version, the question is really how to avoid loading down the browser.</p><p><strong><a
href="http://www.jackreichert.com/portfolio/">Portfolio</a></strong> - (a.k.a. &#8220;Recent Notable Projects&#8221;) I had started building a responsive jQuery slider but once <a
href="http://www.smashingmagazine.com/2011/08/24/freebie-responsive-jquery-slider-plugin-flexslider/">Smashing Magazine announced FlexSlider</a> I didn&#8217;t really see the need to create another one. Mine was going to be smaller and with fewer features. But I was only half done&#8230; So I implemented FlexSlider with a few minor design and functionality modifications.</p><p>I ported the jQuery plugin into WordPress as a plugin. The plugin functionality is accessed via a shortcode and you can choose a category, a tag or children of a page to be used for the content for the slideshow. I also integrated the plugin with <a
href="http://colorpowered.com/colorbox/">ColorBox</a> so that I could display information about the slide easily. In order for this to run smoothly I added an option to the original plugin so that the slideshow would pause when a colorbox overlay was open.</p><p>I am as yet undecided whether I will release this as a WordPress plugin.</p><p><strong><a
href="http://www.jackreichert.com/testimonials/">Testimonials</a></strong> - (a.k.a. &#8220;What Others Are Saying&#8221;) This is my plugin &#8220;<a
href="http://wordpress.org/extend/plugins/random-excerpts-fader/">Random Excerpts Fader</a>&#8220;, which I built live at WordCamp Jerusalem. I modified the plugin to work as a shortcode. The updates are live and can be downloaded from the WordPress plugin repository.</p><p><a
href="http://www.jackreichert.com/blog/"><strong>Blog</strong></a> - (a.k.a. &#8220;The Conversation&#8221;) This was the first stage of the redesign. I stuck to a simple layout and made it fully responsive.</p><p><strong><a
href="http://www.jackreichert.com/contact/">Contact</a></strong> - Simple form. The QR code was created via <a
href="http://is.gd/vcard2qr">vCard2QR</a>, which I created to play with the QR concept.</p><h3>What&#8217;s Still Missing</h3><p>As I mentioned above, this is only a partial version of the <a
href="http://www.jackreichert.com/home/">final concept</a>.</p><p>I ran into several challenges keeping the page responsive while maintaining the long horizontal flow. Media queries are adequate when the flexible elements do not need to have a fixed vertical size. If the elements can grow the queries are only needed to make sure everything looks good. But if you have fixed elements, as I am implementing here, just <a
href="http://www.jackreichert.com/2011/09/13/fontbefitting-resizing-fonts-to-fit-enclosing-element/">keeping the fonts fitting</a> inside the parent element is a challenge. It&#8217;s a work in progress, but no need to delay the whole project when there is a working minimum viable project.</p><p>And of course&#8230;. Optimize, optimize optimize.</p> ]]></content:encoded> <wfw:commentRss>http://www.jackreichert.com/2011/09/14/announcing-the-redesign-part-one/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>fontBefitting &#124; Resizing Fonts to Fit Enclosing Element</title><link>http://www.jackreichert.com/2011/09/13/fontbefitting-resizing-fonts-to-fit-enclosing-element/</link> <comments>http://www.jackreichert.com/2011/09/13/fontbefitting-resizing-fonts-to-fit-enclosing-element/#comments</comments> <pubDate>Tue, 13 Sep 2011 22:02:53 +0000</pubDate> <dc:creator>Jack Reichert</dc:creator> <category><![CDATA[Web Development]]></category> <category><![CDATA[font size]]></category> <category><![CDATA[jquery]]></category> <category><![CDATA[jquery plugin]]></category> <category><![CDATA[responsive web design]]></category> <category><![CDATA[typography]]></category> <guid
isPermaLink="false">http://www.jackreichert.com/?p=997</guid> <description><![CDATA[This script is a work in progress. In a nutshell: Media queries are great. They are especially effective when building responsive websites. But they can be difficult to work out so that they cover every scenario. Media queries work especially]]></description> <content:encoded><![CDATA[<p>This script is a work in progress.</p><h3>In a nutshell:</h3><p>Media queries are great. They are especially effective when building responsive websites. But they can be difficult to work out so that they cover <em>every</em> scenario.  Media queries work especially well when your elements don&#8217;t need to have a fixed height, like with articles. But when your elements need to be a fixed height, what do you do then?</p><p>It&#8217;s a shame that the percent option with font-size isn&#8217;t a percent of the enclosing element &#8211; as percent works in other situations. So here&#8217;s a solution I came up with.</p><p><script src="https://gist.github.com/1215233.js?file=jQuery.fontBefitting.js"></script></p><p>It&#8217;s a work in progress. One known &#8220;feature&#8221;, if you are relying on hidden objects overflowing this will reduce the font size until it is 1px making it illegible. Also, if you are relying on overflow hidden, this will mess with that as well.</p><p>Even though it is incomplete I&#8217;d like to get it out there for sake of the general conversation. Please share your thoughts, improvements below.</p> ]]></content:encoded> <wfw:commentRss>http://www.jackreichert.com/2011/09/13/fontbefitting-resizing-fonts-to-fit-enclosing-element/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revised Font Stack &#124; Responsive Type Design</title><link>http://www.jackreichert.com/2011/09/04/revised-font-stack-responsive-type-design/</link> <comments>http://www.jackreichert.com/2011/09/04/revised-font-stack-responsive-type-design/#comments</comments> <pubDate>Sun, 04 Sep 2011 22:36:33 +0000</pubDate> <dc:creator>Jack Reichert</dc:creator> <category><![CDATA[Musings]]></category> <category><![CDATA[cross-browser compatibility]]></category> <category><![CDATA[css techniques]]></category> <category><![CDATA[font stack]]></category> <category><![CDATA[responsive web design]]></category> <category><![CDATA[typefaces]]></category> <category><![CDATA[typography]]></category> <guid
isPermaLink="false">http://www.jackreichert.com/?p=821</guid> <description><![CDATA[After playing a bit with some of the hosted online font repositories I&#8217;ve come out frustrated. I see all over the place the same Web Safe Fonts. But there is a wealth of fonts installed on all modern computers that]]></description> <content:encoded><![CDATA[<p>After playing a bit with some of the hosted online font repositories I&#8217;ve come out frustrated. I see all over the place the same <a
href="http://www.ampsoft.net/webdesign-l/WindowsMacFonts.html">Web Safe Fonts</a>. But there is a wealth of fonts installed on all modern computers that never see the light of our monitors due to the need to make all pages render exactly the same way across every browser.</p><p>I wanted to use Optima for this site. I LOVE Optima&#8217;s stroke contrast, it is a beautiful elegant typeface. But it&#8217;s not a &#8220;Web safe font&#8221;, so what is there to do?</p><p>I like the <a
href="http://code.google.com/apis/webfonts/">Google font api</a>. It&#8217;s a great project, except for the tiny setback that the fonts don&#8217;t render well in Windows&#8230; Oh well. Additionally, there really aren&#8217;t any fonts available with the stark stroke contrast that Optima offers.</p><p>There are services for $4 (<a
href="https://typekit.com/plans">typekit</a>) &#8211; $10 (<a
href="https://webfonts.fonts.com/en-US/Subscription/SelectSubscription">fonts.com</a>) per month that I could use. They&#8217;re not <em>too</em> prohibitive. But, you know, it&#8217;s not just more money, it&#8217;s the price of the extra resource that I&#8217;m dumping on my visitors that I&#8217;d rather not do.</p><p>Initially, Windows, Macintosh, and other systems had only a handful of fonts installed. But that&#8217;s not true anymore. More importantly, considering the underlying concepts of <a
href="http://www.alistapart.com/articles/responsive-web-design/">Responsive Web Design</a> we don&#8217;t really <em>need</em> to use the same fonts. We just need to add to our font-stack alternative typefaces to fall back on that look good with the <em>weltanschauung</em> of the site.</p><p>Amrinder Sandhu put together a great <a
href=" http://www.awayback.com/revised-font-stack/">article discussing several font stacks that he re-builds</a> in light of the <a
href="http://www.codestyle.org/css/font-family/sampler-CombinedResults.shtml">Code-style font survey</a>. It&#8217;s a good read on the topic. Another helpful tool is the <a
href="http://media.24ways.org/2007/17/fontmatrix.html">font-matrix</a>. Unfortunately it&#8217;s a little dated. <em>(If anyone finds an updated version I&#8217;d be eternally grateful if they posted it in the comments.)</em></p><p>In the end I AM using Optima, if you have a Mac you are seeing the site rendered with it. I used Amrinder&#8217;s suggested stack, so if you&#8217;re in Windows you&#8217;ll probably be reading this with Segoe UI, which was Microsoft&#8217;s &#8220;poster child&#8221; sans-serif, <a
href="http://en.wikipedia.org/wiki/Segoe">quite literally</a>.</p><p>In my search for a good font-stack for &#8220;Hoefler Text&#8221; I came across <a
href="http://abunchofnonsense.wordpress.com/2011/08/09/hoefler-text-im-in-love/">a fun tribute to the typeface</a>.</p><h3>The bottom line is:</h3><p>Just as different devices offer different screen sizes, and we should embrace these differences and build our sites to accommodate for them, so too we should embrace the different fonts available on different platforms and get creative with our font stacks.</p><p>&nbsp;</p> ]]></content:encoded> <wfw:commentRss>http://www.jackreichert.com/2011/09/04/revised-font-stack-responsive-type-design/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>LessCSS and CSS3</title><link>http://www.jackreichert.com/2011/08/28/lesscss-and-css3/</link> <comments>http://www.jackreichert.com/2011/08/28/lesscss-and-css3/#comments</comments> <pubDate>Sun, 28 Aug 2011 17:43:46 +0000</pubDate> <dc:creator>Jack Reichert</dc:creator> <category><![CDATA[Web Development]]></category> <category><![CDATA[css3]]></category> <category><![CDATA[LessCSS]]></category> <category><![CDATA[Twitter Bootstrap]]></category> <guid
isPermaLink="false">http://www.jackreichert.com/?p=704</guid> <description><![CDATA[The Gist: Use mixins.less for easy implementation of CSS3 properties. It is on GitHub available to all. Background: Read the other day about Twitter announced Bootstrap from Twitter. Immediately I dug in, like I do whenever I see something cool, to see how it]]></description> <content:encoded><![CDATA[<p><strong>The Gist:</strong> Use <a
href="https://github.com/dancrew32/lesslib/blob/master/mixins.less">mixins.less</a> for easy implementation of CSS3 properties. It is on GitHub available to all.</p><p><strong>Background:</strong> Read the other day about Twitter announced <a
href="https://dev.twitter.com/blog/bootstrap-twitter">Bootstrap from Twitter</a>. Immediately I dug in, like I do whenever I see something cool, to see how it works. (I am excited to start playing with it and will blog about it soon.)</p><p>When first landing on their Github page I saw:</p><blockquote><p><strong>Nerd alert:</strong> Bootstrap is <a
title="Read about using Bootstrap with Less" href="http://twitter.github.com/bootstrap/#less">built with Less</a> and was designed to work out of the gate with modern browsers in mind.</p></blockquote><p>It&#8217;s always exciting for me to discover new tools. If there&#8217;s a better way to do something, I want to know damnit! Even if it gives me brain-freeze trying to wrap my noggin around it.</p><p>So I dived into Less, and I&#8217;m loving it.</p><h2>LessCSS</h2><p>First impressions?</p><p><strong>IT COMPLETELY CHANGES THE CSS3 GAME.</strong> How? When using the new properties we know and love from CSS3 like border-radius or linear-gradient one of the most annoying factors is having to use so much duplicate code to manage.</p><p>A bit of history: CSS3 collects features that different browsers added over the past few years with the hope of creating a standard. In order to access these features in each of the different browsers you need to add the browser specific prefix to access the functionality.</p><p>For example, if you would like rounded corners, you need to do this:</p><pre><code> border-radius: 5px;  -webkit-border-radius: 5px;  -moz-border-radius:5px; </code></pre><p>Eventually it will all merge into the single property &#8220;border-radius&#8221; but with the speed that browser upgrades go we&#8217;ll be seeing these prefixes for awhile.</p><p>Unfortunately that can be annoying to develop with. If you&#8217;re like me, and you&#8217;re trying to get the exact right border radius, you&#8217;ll try a few before settling in on what you like the best. That means changing the value in several different places each time you change your mind. It&#8217;s reminiscent of the days before css when we had to change the style values on each html page to make global stylistic changes. Not as bad, but c&#8217;mon!</p><p>And that&#8217;s one place where LessCSS really is fun &#8211; <strong>Mixins!</strong> Or in other words, variables/closures.</p><p>The border radius above in LessCSS can look like this:</p><p><script type="text/javascript" src="https://gist.github.com/1181481.js?file=roundedCorners.less"></script>Now every place you want rounded corners you can just pop in:</p><pre><code> #header { .rounded-corners; }</code></pre><p>or</p><pre><code> #footer { .rounded-corners(10px); } </code></pre><p>(<a
href="http://lesscss.org/">Examples shamelessly stolen straight from LessCSS.org</a>, more on site.) You don&#8217;t like how the radius came out? Change it one place. Change it everywhere! So my first thoughts were to create a template that included all the CSS3 special features with the correct mixins. I did this for a bit, and got to play with some of the fun inner workings of LessCSS. It got a little complicated once I started adding in the MS filters. MS filters aren&#8217;t actually CSS, but can achieve some of the functionality of CSS3 in Internet Explorer browsers 6-8. Since they aren&#8217;t actually CSS, you have to escape them in LessCSS to compile the files properly, but they still can use variables. So a vertical gradient for IE6-8 would look like in the last two lines below:<script type="text/javascript" src="https://gist.github.com/1181518.js?file=gradient.less"></script></p><p>Then you can just pop in the mixin anywhere. { .gradient; }</p><h2>mixins.less</h2><p>Most of the conversion was pretty straightforward; however, when looking for solutions on <a
href="http://stackoverflow.com/questions/5971045/how-to-calculate-sine-cosine-in-less">stackoverflow</a> for sin/cosine conversions in LessCSS JavaScript evaluations I came across the complete job done.</p><p><a
href="https://github.com/dancrew32/lesslib/blob/master/mixins.less">mixins.less</a> is on GitHub available to all. It covers, as far as I can see, pretty much any CSS3 property</p> ]]></content:encoded> <wfw:commentRss>http://www.jackreichert.com/2011/08/28/lesscss-and-css3/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Function Reference/plugin basename « WordPress Codex</title><link>http://www.jackreichert.com/2011/08/25/function-referenceplugin-basename-%c2%ab-wordpress-codex/</link> <comments>http://www.jackreichert.com/2011/08/25/function-referenceplugin-basename-%c2%ab-wordpress-codex/#comments</comments> <pubDate>Thu, 25 Aug 2011 19:30:34 +0000</pubDate> <dc:creator>Jack Reichert</dc:creator> <category><![CDATA[Reference]]></category> <category><![CDATA[plugin development]]></category> <category><![CDATA[shortcut]]></category> <category><![CDATA[wordpress]]></category> <guid
isPermaLink="false">http://www.jackreichert.com/?p=777</guid> <description><![CDATA[When building a WordPress plugin it&#8217;s important to know where your plugin sits. An early plugin I release relied heavily on several files inside the plugin directory. Nothing wrong with that, only that at the end of the day, the]]></description> <content:encoded><![CDATA[<p>When building a WordPress plugin it&#8217;s important to know where your plugin sits. An early plugin I release relied heavily on several files inside the plugin directory. Nothing wrong with that, only that at the end of the day, the plugin directory didn&#8217;t end up being the plugin directory I thought it would be.</p><p>Ouch! I had to redeploy the plugin with the correct path.</p><p>But not anymore! Since those early days I discovered this neat line of code hidden in the all-knowing WordPress Codex.</p><pre><code>$pluginBase = WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__));</code></pre><p>via <a
href="http://codex.wordpress.org/Function_Reference/plugin_basename">Function Reference/plugin basename « WordPress Codex</a>.</p><p>pop that line into your plugin at the top and you won&#8217;t have to worry about where anything is.</p> ]]></content:encoded> <wfw:commentRss>http://www.jackreichert.com/2011/08/25/function-referenceplugin-basename-%c2%ab-wordpress-codex/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>How and Why I Wasted My Time Today &#8212; or &#8212; A New (FAIL) Way to Run Internet Explorer on Your Mac</title><link>http://www.jackreichert.com/2011/08/22/a-new-fail-way-to-run-internet-explorer-on-your-mac/</link> <comments>http://www.jackreichert.com/2011/08/22/a-new-fail-way-to-run-internet-explorer-on-your-mac/#comments</comments> <pubDate>Tue, 23 Aug 2011 00:20:19 +0000</pubDate> <dc:creator>Jack Reichert</dc:creator> <category><![CDATA[Musings]]></category> <category><![CDATA[cross-browser compatibility]]></category> <category><![CDATA[internet explorer]]></category> <category><![CDATA[mac]]></category> <category><![CDATA[web development]]></category> <guid
isPermaLink="false">http://www.jackreichert.com/?p=716</guid> <description><![CDATA[I discovered on Hacker News the promise of running Internet Explorer on my mac. This is a big issue in the Front-end Development world since it is crucial that the sites you develop work properly on ALL of the required platforms.]]></description> <content:encoded><![CDATA[<p>I discovered on <a
href="http://news.ycombinator.com/item?id=2913308">Hacker News</a> the promise of running Internet Explorer on my mac. This is a big issue in the Front-end Development world since it is crucial that the sites you develop work properly on ALL of the required platforms. From time to time there <strong><em>are </em></strong>circumstances where you don’t need to support Internet Explorer. But for the most part, making your sites look good in Internet Explorer is the bane of a Front-end Developer’s existence. There are hacks, work-arounds. Many of the wonderful new features that modern browsers offer can be done reasonably well across the board. However, it tends to waste precious time.</p><p>A big problem &#8211; specifically for people who enjoy developing on macs &#8211; is that you cannot easily run Internet Explorer on a mac. Now, with the Intel macs you can run Windows, and thus run IE. But it can be costly. There’s $120 for <a
href="http://livepage.apple.com/">Windows 7</a> itself. If you don’t want to reboot every time you want to check your site in IE you have to put down another $80 for some virtual machine software &#8211; <a
href="http://www.parallels.com/products/desktop/">Parallels Desktop</a> and <a
href="http://www.vmware.com/products/fusion/overview.html">VMware Fusion</a> are both pretty good. If you run one of those you really should have at least 4GB RAM, another $50 (<a
href="http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Delectronics&#038;field-keywords=4gb+ram+macbook&#038;x=0&#038;y=0">Amazon</a> $30 if you catch a sale). The list can go on but you get the idea.</p><p>There’s the cheap route of running <a
href="http://winebottler.kronenberg.org/">Wine</a> but I found that that only worked reasonably well with IE7 and there’s not install package for IE9. It’s a great project in theory, but unfortunately not a solution.</p><p>Back to Hacker News. The original link seemed dead. It might be that the server of the link submitter goes back up at some point. But one user posted a link in the comments to <a
href="https://github.com/xdissent/ievms">xdissent/ievms</a> a project in GitHub.</p><blockquote><p>“Microsoft provides virtual machine disk images to facilitate website testing in multiple versions of IE, regardless of the host operating system. Unfortunately, setting these virtual machines up without Microsoft&#8217;s VirtualPC can be extremely difficult. These scripts aim to facilitate that process using VirtualBox on Linux or OS X. With a single command, you can have IE6, IE7, IE8 and IE9 running in separate virtual machines.”</p></blockquote><p>It sounds incredibly promising! A free way to run Internet Explorer on my mac! Awesome!</p><p>So I tried it. (Instructions below, as I posted to Hacker News)</p><ol><li>Install <a
href="http://www.virtualbox.org/wiki/Downloads">virtual box</a> &#8211;  Go with the &#8220;VirtualBox 4.1.2 for OS X hosts x86/amd64&#8243; option.</li><li>Copy the command that is most relevant from you from here: <a
href="https://github.com/xdissent/ievms/blob/master/README.rst">the Github repository</a> (starting with &#8216;curl&#8217;)</li><li>Open up your terminal window paste, hit the &#8216;enter&#8217; key</li><li>Hit the town, it can take some time, depending on your connection speed that is.</li></ol><p><strong>Note:</strong> #4 <em>is</em> relevant. It took a few hours. Downloaded at an average speed of 1mb/s. 11+minutes per package of 700mb. The first installation will have 7 parts (each additional installation &#8211; IE8/ IE9 &#8211; has 4 parts each). That’s about an hour and a half for one installation.</p><p><strong>First drawback: </strong> Finally, after the script ran, I was down 30GB space on my hard drive. Compared with VMware which only takes 10GB, for a 3 year old Macbook 30GB can be a LOT of space!</p><p><strong>Second drawback:</strong> After trying it out it seems that while &#8220;<em>Microsoft provides virtual machine disk images to facilitate website testing&#8230;”  Microsoft</em> only provides it if you are running off an activated version of Windows. So It’s not free either.</p><p>Considering those two drawbacks I deleted the installations &#8211; which was no easy task, most of the bulk of the files were in hidden directories stashed in nowheres land.</p><p><strong>Conclusion: </strong>If you already own a valid key for Windows 7, have a hard drive with a lot of space on it, and are considering buying virtual machine software. Check this out &#8211; it&#8217;s a good alternative. It&#8217;s a very convenient script.</p><p>Otherwise&#8230;</p><p>Sigh.</p><p>There are no free lunches&#8230;</p><p>Hopefully one day we will be able to <strong>not</strong> waste our time checking our sites in Internet Explorer, whether that means that a <strong>CONVENIENT</strong> tool becomes available, so it’s not a waste of time, or perhaps IE will die someday&#8230; Yeah right!</p><p><strong>Update:</strong> As a result of writing this post I got a beta invite to <a
href="http://www.browserstack.com/">BrowserStack</a> - an online, in browser, cross browser, development tool. It looks promising. More about it to come&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://www.jackreichert.com/2011/08/22/a-new-fail-way-to-run-internet-explorer-on-your-mac/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>The Many Facets of Content Pertaining to Responsive Web Design and Object Oriented CSS.</title><link>http://www.jackreichert.com/2011/08/07/the-many-facets-of-content-pertaining-responsive-web-design-and-object-oriented-css/</link> <comments>http://www.jackreichert.com/2011/08/07/the-many-facets-of-content-pertaining-responsive-web-design-and-object-oriented-css/#comments</comments> <pubDate>Sun, 07 Aug 2011 17:48:22 +0000</pubDate> <dc:creator>Jack Reichert</dc:creator> <category><![CDATA[Musings]]></category> <category><![CDATA[css techniques]]></category> <category><![CDATA[elegant code]]></category> <category><![CDATA[ethan marcotte]]></category> <category><![CDATA[oocss]]></category> <category><![CDATA[responsive web design]]></category> <guid
isPermaLink="false">http://www.jackreichert.com/?p=623</guid> <description><![CDATA[I recently stumbled across Ethan Marcotte&#8217;s article on A List Apart  about Responsive Web Design and immediately bought the book, then ate it up. Reading the following two sentences were the Ah-HA experience of the book for me: &#8220;Rather than creating disconnected designs, each]]></description> <content:encoded><![CDATA[<p>I recently stumbled across Ethan Marcotte&#8217;s article on <em>A List Apart</em>  about <a
href="http://www.alistapart.com/articles/responsive-web-design/">Responsive Web Design</a> and immediately bought the book, then ate it up.</p><p>Reading the following two sentences were the Ah-HA experience of the book for me:</p><blockquote><p>&#8220;Rather than creating disconnected designs, each tailored to a particular device or browser, we should instead treat them as facets of the same experience. In other words, we can craft sites that are not only more flexible, but that can adapt to the media that renders them.&#8221;</p></blockquote><p>I remember when working with one of my previous clients I was asked to redo one of their pages and I was surprised to see how much duplicate code a previous Front-end developer had used on the page. One example, there were several tabs on the page I was working on and some of the content in the tabs overlapped. But instead of using the same content and simply changing the style to match each tab my predecessor had loaded up the DOM with duplicate content &#8211; overloading the browser memory and slowing down page load. In addition, the content was filled via a query to their database, so that makes <em>two</em> queries for every time the page was loaded.</p><p>In contrast, the last place I worked put a strong emphasis on implementing Object Oriented philosophies in Front-end functionality. I&#8217;ve been known to implement OOP from time to time &#8211; just like the next guy &#8211; but there is a conceptual jump between its application in the visual realm vs. the world in which it developed &#8211; server side, heavy lifting.</p><p>When you need to do visual work it doesn&#8217;t necessarily come intuitively to abstract the code pieces so that you can reuse them elsewhere in different circumstances. But when making AJAXed content pages, once I took the extra time at the beginning to map it out it saved a lot time with future pages and, of course, ran <em>much more efficiently</em>. (We&#8217;re talking about a reduction of <em>30 seconds</em> in load time&#8230;)</p><p><strong>Object Oriented CSS</strong></p><p>The application of Object Oriented concepts to front-end projects doesn’t stop with Javascript. The main two principals upon which <a
href="https://github.com/stubbornella/oocss/wiki">Object Oriented CSS</a> is built on are:</p><ol><li>Separate structure and skin.</li><li>Separate container and content.</li></ol><p>This abstraction allows for the creation of reusable modules a.k.a. classes that can be applied across your site. If you want the same feel &#8211; that would be a skin class. If you want to keep similar paddings / layouts &#8211; you&#8217;d use a container class. The term &#8220;<em>class&#8221;</em> is pertinent here. I’m not sure I’d use the framework that the project has put together. It’s not bad, it’s just <em>another</em> framework to work with&#8230; But the systematic approach they apply <em>did</em> helped me flesh out techniques I had already been implementing (said content page with duplicate content above).</p><p><strong>Object Oriented Web Design</strong></p><p>Reading about Ethan Marcotte&#8217;s Responsive Web Design was familiar to me because it is essentially another application of principals above. But here, the skins are restyled to fit the media upon which the content is viewed.  The model is the same, it’s the view that needs to be optimized per device&#8230; and our media queries work as a wonderful controller.</p><p>Abstracting the content from container is extremely powerful. Having played with responsive design for a bit now, I don’t see why I <em>wouldn’t</em> build my webapp to work equally well in mobile AND computer browser &#8211; and no need for that pesky mobile subdomain everyone is using these days.  Since native apps mean that your user will have your icon sitting there on their mobile desktop, I don’t think that responsively designed webapps would replace native apps &#8212; not to mention the power you can only truly tap into when developing natively.</p><p>That being said, a startup can get their concept out there much quicker with much less funding up-front using a service like phonegap, and only having to invest in web developers to get off the ground. It’s all just different facets of the same beautiful web.</p> ]]></content:encoded> <wfw:commentRss>http://www.jackreichert.com/2011/08/07/the-many-facets-of-content-pertaining-responsive-web-design-and-object-oriented-css/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
