<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>mmhmmm.</description><title>doublejosh</title><generator>Tumblr (3.0; @doublejosh)</generator><link>http://doublejosh.com/</link><item><title>Looking into better local storage</title><description>&lt;p&gt;Looking for some basic persistant local browser storage for a simple mobile web based game (Deal Breakers).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Two Resources&amp;#8230;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://coding.smashingmagazine.com/2010/10/11/local-storage-and-how-to-use-it/" target="_blank"&gt;http://coding.smashingmagazine.com/2010/10/11/local-storage-and-how-to-use-it/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://paperkilledrock.com/2010/05/html5-localstorage-part-one/" target="_blank"&gt;http://paperkilledrock.com/2010/05/html5-localstorage-part-one/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Two libraries for storage abstraction&amp;#8230;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.jstorage.info/" target="_blank"&gt;http://www.jstorage.info/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://upstatement.com/blog/2012/01/jquery-local-storage-done-right-and-easy/" target="_blank"&gt;http://upstatement.com/blog/2012/01/jquery-local-storage-done-right-and-easy/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>http://doublejosh.com/post/24047221999</link><guid>http://doublejosh.com/post/24047221999</guid><pubDate>Tue, 29 May 2012 21:42:40 -0700</pubDate></item><item><title>Photo</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_m4tid8Bs4q1qzp471o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;</description><link>http://doublejosh.com/post/24045754615</link><guid>http://doublejosh.com/post/24045754615</guid><pubDate>Tue, 29 May 2012 21:12:44 -0700</pubDate></item><item><title>Some agencies are such a laugh!</title><description>&lt;p&gt;Just lobbed a quick softball job to an outsourcing firm that charges by the half-hour for atomic tasks. It should&amp;#8217;ve been 2-3 hours.. just a little test job ($150) and they sent back and estimate for $800.&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s a no.&lt;/p&gt;</description><link>http://doublejosh.com/post/24045438031</link><guid>http://doublejosh.com/post/24045438031</guid><pubDate>Tue, 29 May 2012 21:06:41 -0700</pubDate></item><item><title>Genertic Git Users :(</title><description>&lt;p&gt;Looks like setting up genertic Git users for generic remotes (for production, etc) is actually harder than it might seem. &lt;a href="https://github.com/tizzo/Project-Git-Auth" target="_blank"&gt;&lt;a href="https://github.com/tizzo/Project-Git-Auth" target="_blank"&gt;https://github.com/tizzo/Project-Git-Auth&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Bummer.&lt;/p&gt;</description><link>http://doublejosh.com/post/23747595698</link><guid>http://doublejosh.com/post/23747595698</guid><pubDate>Fri, 25 May 2012 12:51:11 -0700</pubDate></item><item><title>Extra fields are lame, and occasionally useful</title><description>&lt;p&gt;Been using Drupal&amp;#8217;s new &lt;a href="http://api.drupal.org/api/drupal/modules%21field%21field.api.php/function/hook_field_extra_fields/7" target="_blank"&gt;extra fields&lt;/a&gt; ability in D7 to add on programmatic fields. This seemed awesome at first; very little work to attach a field with NO database involvement. However, it turns out&amp;#8230;&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;They&amp;#8217;re not exposed to views.&lt;/li&gt;
&lt;li&gt;Their display configurations get saved to the general system variable table.&lt;/li&gt;
&lt;li&gt;But display settings don&amp;#8217;t actually save via the UI.&lt;/li&gt;
&lt;li&gt;The only way to hide them is field_extra_fields_display_alter()&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Don&amp;#8217;t do it!&lt;/p&gt;
&lt;p&gt;Except that it&amp;#8217;s kinda nice to add on a field to a normal node display without having to use &lt;a href="http://drupal.org/project/computed_field" target="_blank"&gt;Computed Field&lt;/a&gt; module and saving a new field.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a detailed presentation on creating real fields programmatically. Still need to tackle that to do it right&amp;#8230; http://www.slideshare.net/zugec/fields-in-core-how-to-create-a-custom-field&lt;/p&gt;</description><link>http://doublejosh.com/post/23504431837</link><guid>http://doublejosh.com/post/23504431837</guid><pubDate>Mon, 21 May 2012 15:41:07 -0700</pubDate></item><item><description>&lt;iframe width="400" height="225" src="http://www.youtube.com/embed/zwEtldZQNew?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;iframe frameborder="0" height="315" src="http://www.youtube.com/embed/DOOJl5lWNfM" width="560"&gt;&lt;/iframe&gt;&lt;/p&gt;</description><link>http://doublejosh.com/post/23469196592</link><guid>http://doublejosh.com/post/23469196592</guid><pubDate>Sun, 20 May 2012 23:34:23 -0700</pubDate></item><item><title>cinemagr.am</title><description>&lt;a href="http://cinemagr.am/show/8057838"&gt;cinemagr.am&lt;/a&gt;: &lt;div&gt;&lt;p&gt;&lt;img src="http://cinemagr.am/uploads/8057838.gif"/&gt;&lt;/p&gt; &lt;br/&gt;&lt;p&gt;(Taken with &lt;a href="http://cinemagr.am" target="_blank"&gt;&lt;a href="http://cinemagr.am" target="_blank"&gt;http://cinemagr.am&lt;/a&gt;&lt;/a&gt;)&lt;/p&gt;&lt;/div&gt;</description><link>http://doublejosh.com/post/23335631325</link><guid>http://doublejosh.com/post/23335631325</guid><pubDate>Fri, 18 May 2012 22:29:13 -0700</pubDate><category>cinemagraph</category><category>gif</category></item><item><title>Everything is Mobile Now, are CMSs Dead?</title><description>&lt;p&gt;I&amp;#8217;ve felt some pressure in the last few years to get up-to-speed regarding &amp;#8220;mobile.&amp;#8221; I&amp;#8217;m guessing if you&amp;#8217;re a nerd you&amp;#8217;ve felt that too, or you already have a job doing that. &lt;/p&gt;
&lt;p&gt;Mobile stuff is actually kind of a time warp because suddenly you have to think about meager performance again and more limited layouts. It&amp;#8217;s like 1999 again, but on the go.&lt;/p&gt;
&lt;p&gt;As I now know&amp;#8230; if you mean to build a very specific product, that has to perform extremely well, for a very large amount of traffic, often through low bandwidth devices&amp;#8230; using a framework/CMS with a bunch of overhead is probably a bad idea. If you want to build the Twitter app, Instagram, or DrawSomething, you don&amp;#8217;t need some CMS to manage the data and users, you can just build it lean from scratch. Besides the mobile UI provided by a CMS would never cut it for an app, even on smart phones Even if you could pull that off most framework&amp;#8217;s page load time would limit the speed to unworkable. Double no-go.&lt;/p&gt;
&lt;p&gt;This lead me to think that if you&amp;#8217;re going to build a mobile app (the future) you should write/render it into a native app and build the backend lean and custom. So my first reaction was &amp;#8212;especially because of the performance contraints&amp;#8212; thinking that CMSs are basically dead. Which sucks, since that&amp;#8217;s what I do. Cripes.&lt;/p&gt;
&lt;p&gt;However, there are glimmers of hope. For example there has been a large shift recently in the CMS I work with (Drupal) to allow a more flexible web request response system specifically to allow mobile devices to alternately access and load the system yet avoid the overhead. They are borrowing the work of the alo open-source Symphony project. This is awesome news.&lt;/p&gt;
&lt;p&gt;But I&amp;#8217;ve still been very worried that this only solves half the problem. It certainly is &lt;em&gt;nice&lt;/em&gt; that this major CMS will be able to serve mobile data requests with even better performance (in addition to existing caching tools). Yet it has felt more like a conciliation or just a desperate reaction by the community to adapt rather than a real and objective solution to a technology problem of the day. This seems like an extension of the tool just so people who already know it don&amp;#8217;t have to change to keep a job.&lt;/p&gt;
&lt;p&gt;Plus, existing web CMS tools provide very little to help create mobile UI experiences. Sure there are adaptive/responsive tools (currently setting one up) which are great for this intermediate stage while our phones still just browse the web. But that&amp;#8217;s going away, no one likes it, it sucks.&lt;/p&gt;
&lt;p&gt;So basically, bummer.&lt;/p&gt;
&lt;p&gt;Though I didn&amp;#8217;t write this for no reason. &lt;strong&gt;There is a saving grace in an overlooked side-effect of the rise of mobile; &lt;em&gt;the decline of desktop.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Soon, a majority of your traffic is going to become light-weight, single-serving mobile requests with a software client on the phone/device taking care of display and interaction. The amount of traffic from desktops needing more heavy-weight browsing is going down. At least it&amp;#8217;s definitely not increasing. For example, since I can get my netflix on the iPad I very rarely visit the site. Google Maps on my phone means I barely use that site (even with a desktop 2 feet away). Yet when I do visit on a big screen I demand a vast array of features, well architected and laid out. I want to easily manage all of my content, or if I&amp;#8217;m staff then manage the content and accounts of others.&lt;/p&gt;
&lt;p&gt;So&amp;#8230; this leaves us with the need to easy build mature/clean web tools that doesn&amp;#8217;t have to be blisteringly fast because the traffic scale in&amp;#8217;t large. it does have to be robust and easy allow expansion since the majority of development time needs to be spend on the real product, the mobile product. It need to easy expand and alter a well architected schema&amp;#8212; but needs to serve data to fast mobile requests.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Suddenly this sounds exactly like the use case for a web CMS/framework.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In fact, only a CMS can provide the ability for most development resources to be on device apps and easily add lots of features to the web side, as well as data objects to the schema with almost no effort.&lt;/p&gt;
&lt;p&gt;Suddenly I don&amp;#8217;t feel impending career doom. Feel like I see the niche I will need to learn how to serve to stay successful and be a part of emerging fun projects :)&lt;/p&gt;</description><link>http://doublejosh.com/post/23279952448</link><guid>http://doublejosh.com/post/23279952448</guid><pubDate>Thu, 17 May 2012 23:45:00 -0700</pubDate></item><item><title>Gorce, 3D code repository visualization</title><description>&lt;p&gt;&lt;iframe frameborder="0" height="315" src="http://www.youtube.com/embed/NjUuAuBcoqs" width="560"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://code.google.com/p/gource/" target="_blank"&gt;https://code.google.com/p/gource/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ZOMGZ!&lt;/p&gt;</description><link>http://doublejosh.com/post/23143244194</link><guid>http://doublejosh.com/post/23143244194</guid><pubDate>Tue, 15 May 2012 19:17:43 -0700</pubDate></item><item><title>Drupal Design Patterns: Creating your own hooks</title><description>&lt;a href="http://erikwebb.net/blog/drupal-design-patterns/hooks"&gt;Drupal Design Patterns: Creating your own hooks&lt;/a&gt;: &lt;p&gt;Cheat sheet for inter-module love.&lt;/p&gt;</description><link>http://doublejosh.com/post/23110351052</link><guid>http://doublejosh.com/post/23110351052</guid><pubDate>Tue, 15 May 2012 10:27:52 -0700</pubDate></item><item><title>cinemagr.am</title><description>&lt;a href="http://cinemagr.am/show/7410436"&gt;cinemagr.am&lt;/a&gt;: &lt;div&gt;&lt;p&gt;&lt;img src="http://cinemagr.am/uploads/7410436.gif"/&gt;&lt;/p&gt; &lt;br/&gt;&lt;p&gt;(Taken with &lt;a href="http://cinemagr.am" target="_blank"&gt;&lt;a href="http://cinemagr.am" target="_blank"&gt;http://cinemagr.am&lt;/a&gt;&lt;/a&gt;)&lt;/p&gt;&lt;/div&gt;</description><link>http://doublejosh.com/post/22919538623</link><guid>http://doublejosh.com/post/22919538623</guid><pubDate>Sat, 12 May 2012 12:33:25 -0700</pubDate><category>cinemagraph</category><category>gif</category></item><item><title>"git add -N" Made My Day (--intent-to-add)</title><description>&lt;a href="http://stackoverflow.com/questions/855767/can-i-use-git-diff-on-untracked-files"&gt;"git add -N" Made My Day (--intent-to-add)&lt;/a&gt;: &lt;p&gt;Perfect for &lt;strong&gt;creating a patch&lt;/strong&gt; that will include &lt;strong&gt;new files.&lt;/strong&gt;&lt;/p&gt;</description><link>http://doublejosh.com/post/22822047073</link><guid>http://doublejosh.com/post/22822047073</guid><pubDate>Thu, 10 May 2012 20:01:00 -0700</pubDate></item><item><title>Swap display formatters for RSS (absolute links) in Drupal 6</title><description>&lt;p&gt;Ever need images to render as absolute links when RSS feeds in Drupal views? Of course you have. In Drupal 6 + Views2 + contrib CCK you are forced into node display mode which leaves you pretty limited. Additionally, any image display widgets only generate relative links. So you either need to create an alternate display widget or do this&amp;#8230;&lt;/p&gt;
&lt;p&gt;#1) Tell this field to follow another display formatter via code (this is in a custom module).&lt;/p&gt;
&lt;pre&gt;/**
 * Modify fields for absolute links in RSS feeds.
 */
function MYMODULE_preprocess_content_field(&amp;amp;$variables) {
  if($variables['element']['#field_name'] == "field_MYFIELD" &amp;amp;&amp;amp; $variables['element']['#node']-&amp;gt;build_mode == NODE_BUILD_RSS) {
    $variables['element']['items'][0]['#theme'] = 'MYMODULE_imagefield_formatter_image_nodelink_abs';
  }
}
&lt;/pre&gt;
&lt;p&gt;Then create an alternate version on the display formatter. In my case we just needed the normal imagefield link output (I have great editors) though you might want to use and imagecache formatter. (Find a function to copy in the imagecache module.) I placed this code within the template.php &amp;#8212;because the function name HAS to start with your theme name. &lt;/p&gt;
&lt;pre&gt;/**
 * Alternate imagefield display for absolute links. See: MYMODULE_preprocess_content_field
 */
function MYTHEME_imagefield_formatter_image_nodelink($element) {
  // Inside a view $element may contain null data. In that case, just return.
  if (empty($element['#item']['fid'])) {
    return '';
  }
  $node = $element['#node'];
  $imagetag = theme('imagefield_formatter_image_plain', $element);
  $class = 'imagefield imagefield-nodelink imagefield-'. $element['#field_name'];
  return l($imagetag, 'node/'. $node-&amp;gt;nid, array('attributes' =&amp;gt; array('class' =&amp;gt; $class), 'html' =&amp;gt; TRUE, 'absolute' =&amp;gt; TRUE));
}
&lt;/pre&gt;
&lt;p&gt;That&amp;#8217;s it. To improve this you might also register the theme function within your module and avoid spreading this code out in two places.&lt;/p&gt;</description><link>http://doublejosh.com/post/22794877539</link><guid>http://doublejosh.com/post/22794877539</guid><pubDate>Thu, 10 May 2012 13:28:00 -0700</pubDate></item><item><title>"Safe" CSS Hacks... as a concept</title><description>&lt;a href="http://mathiasbynens.be/notes/safe-css-hacks#safe-css-hacks"&gt;"Safe" CSS Hacks... as a concept&lt;/a&gt;</description><link>http://doublejosh.com/post/22669228005</link><guid>http://doublejosh.com/post/22669228005</guid><pubDate>Tue, 08 May 2012 13:44:49 -0700</pubDate></item><item><title>Alter items displayed on pages after the first (Drupal)</title><description>&lt;p&gt;NOTE: These instructions are from a Drupal 6 + Views 2 setup, but I&amp;#8217;m sure the technique is transferable to D7&amp;#160;&lt;em&gt;and I may update this if/when I do that same thing on one of my D7 sites.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a super quick technique for showing more items per page once you&amp;#8217;ve entered pager mode. This is particularly useful when you use an block view attachment to show a first set of bigger items (or a single featured item).&lt;/p&gt;
&lt;p&gt;#0) Build your view.&lt;/p&gt;
&lt;p&gt;#1) Create an Argument of type &amp;#8220;&lt;strong&gt;Global: Null&amp;#8221;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;#2) Select&lt;strong&gt; &amp;#8221;Provide default argument&amp;#8221;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;#3) Choose &lt;strong&gt;&amp;#8220;Fixed entry&amp;#8221;&lt;/strong&gt; and enter any old thing, this is a dummy value.&lt;/p&gt;
&lt;p&gt;#4) Choose a&lt;strong&gt; Validator&lt;/strong&gt; of type&lt;strong&gt; &amp;#8221;PHP code.&amp;#8221;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;#5) Use the following code to know when the page view is in pager mode&amp;#8230;&lt;/p&gt;
&lt;pre&gt;if(isset($_GET['page'])) {
  $view-&amp;gt;display['page_1']-&amp;gt;handler-&amp;gt;options['items_per_page'] = 14;
}
return TRUE;&lt;/pre&gt;
&lt;p&gt;Here&amp;#8217;s a screenshot to make it easy&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m3ingf3vjI1qzpu2p.png"/&gt;&lt;/p&gt;</description><link>http://doublejosh.com/post/22399938812</link><guid>http://doublejosh.com/post/22399938812</guid><pubDate>Fri, 04 May 2012 14:01:00 -0700</pubDate></item><item><title>revert-a-faulty-merge ... Thanks Linus!</title><description>&lt;a href="http://opensource.apple.com/source/Git/Git-26/src/git-htmldocs/howto/revert-a-faulty-merge.txt"&gt;revert-a-faulty-merge ... Thanks Linus!&lt;/a&gt;: &lt;p&gt;Feel like this is the most official primary source on dealing with reverting bad changes.&lt;/p&gt;
&lt;p&gt;Right from the horses mouth.&lt;/p&gt;
&lt;p&gt;Linus Torvalds&lt;/p&gt;</description><link>http://doublejosh.com/post/22388134791</link><guid>http://doublejosh.com/post/22388134791</guid><pubDate>Fri, 04 May 2012 09:58:07 -0700</pubDate></item><item><title>Take the Code Sniffing even farther</title><description>&lt;a href="http://drupal.org/project/coder_tough_love"&gt;Take the Code Sniffing even farther&lt;/a&gt;</description><link>http://doublejosh.com/post/22219074376</link><guid>http://doublejosh.com/post/22219074376</guid><pubDate>Tue, 01 May 2012 15:26:43 -0700</pubDate></item><item><title>My new Content Code (asset loader module)</title><description>&lt;a href="http://drupal.org/project/content_code"&gt;My new Content Code (asset loader module)&lt;/a&gt;</description><link>http://doublejosh.com/post/22150132713</link><guid>http://doublejosh.com/post/22150132713</guid><pubDate>Mon, 30 Apr 2012 15:43:21 -0700</pubDate></item><item><title>Create time-based interactive media</title><description>&lt;a href="http://popcornjs.org"&gt;Create time-based interactive media&lt;/a&gt;</description><link>http://doublejosh.com/post/21336056179</link><guid>http://doublejosh.com/post/21336056179</guid><pubDate>Wed, 18 Apr 2012 12:40:50 -0700</pubDate></item><item><title>Move core block settings to a new theme (Drupal)</title><description>&lt;a href="https://gist.github.com/2371881"&gt;Move core block settings to a new theme (Drupal)&lt;/a&gt;: &lt;p&gt;This mySQL will help you move core block settings across from one theme to another. It also include two region name replaces. http://drupalbin.com/21207&lt;/p&gt;
&lt;pre&gt;# Reset blocks to remove standard placements.
UPDATE block SET status = 0, region = -1 WHERE theme = 'OLD-THEME';

# Pull data across.
UPDATE block AS export_blocks
INNER JOIN block AS import_blocks
  ON import_blocks.module = export_blocks.module
  AND import_blocks.delta = export_blocks.delta
SET
  export_blocks.weight = import_blocks.weight,
  export_blocks.region = REPLACE(
    REPLACE(import_blocks.region, 'OLD-REGION1', 'NEW-REGION1'),&lt;br/&gt;    'OLD-REGION2', 'NEW-REGION2'),&lt;br/&gt;  export_blocks.visibility = import_blocks.visibility,
  export_blocks.pages = import_blocks.pages,
  export_blocks.title = import_blocks.title,
  export_blocks.status = import_blocks.status
WHERE export_blocks.theme = 'NEW-THEME'
  AND import_blocks.theme = 'OLD-THEME';
&lt;/pre&gt;</description><link>http://doublejosh.com/post/20991128603</link><guid>http://doublejosh.com/post/20991128603</guid><pubDate>Thu, 12 Apr 2012 16:36:00 -0700</pubDate></item></channel></rss>

