<?xml version="1.0" encoding="ISO-8859-1" ?> 
<rss version="2.0">
<channel>
<title>ferdychristant.com :: blog feed</title> 
<link>http://www.ferdychristant.com</link> 
<description>Blog Feed: ferdychristant.com</description> 
<language>en</language> 
<item>
<title>Responsive JungleDragon - update XIV</title> 
<pubDate>Wed, 8 May 2013 10:41:54 +0100</pubDate>
<link>http://www.ferdychristant.com/fchristant/production/fdm.nsf/archive/DOMM-97HDDQ</link>
<description><![CDATA[ <p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_resp_00.jpg" height="398" width="650" />
</p>
<p>
It's time for another episode of my journey into redesigning <a href="http://www.jungledragon.com">JungleDragon</a> to be a mobile-first, responsive website. This post will be heavy on screenshots and cover quite a lot of areas that are now redesigned. Where appropriate, I'll throw in some technical hints on how it's made.
</p>
<p>
<b>New footer</b>
</p>
<p>
JungleDragon's new footer is extremely simple. At small viewports, it only shows the essential links:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_01.jpg" height="37" width="332" />
</p>
<p>
At larger viewports, or when turning your device to landscape, more information becomes available:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_02.jpg" height="33" width="650" />
</p>
<p>
JungleDragon fans may notice that the dragon illustration is gone, which acts as a mascotte for the site. I may revisit that decision after the initial V3 release, but for now this will do.
</p>
<p>
<i>How its made:</i>These are just 3 divs, where in the default CSS I only show the footer links. In larger breakpoints I enhance the view by toggling the visibility of the other 2 elements. As for layout, I'm using CSS tables. The HTML is free of tables, yet in CSS I style these elements to behave like tables using display:table, table-row and table-cell. This makes alignment and vertical centering far easier than using floats. 
</p>
<p>
<b>Redesigned search</b>
</p>
<p>
Search is equally simple in design. The global navigation has a link for it:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_03.jpg" height="95" width="155" />
</p>
<p>
Here is the search screen, along with some results:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_04.jpg" height="846" width="644" />
</p>
<p>
You may see some results being rendered in a strange way. This is only true for my development environment. This search is powered by Google which only has an index of the JungleDragon production instance, hence it cannot make a connection to my development database for rich object rendering.
</p>
<p>
As you can see, it simply is a full width column with a paginated list of search results across photos, photo lists, tags, forum topics and users. In production, JungleDragon will richly visualize search results where it can.
</p>
<p>
<i>How its made</i>: In terms of layout, this is simply a scalable full width page. As for the back-end, I'm sending the search query from this UI to the Google Search API. The returned results are in XML. I parse this XML and reverse engineer the URLs in the results to map them back to JungleDragon database objects. With that match made, I then have full control over output rendering. See my <a href="http://www.ferdychristant.com/blog/archive/DOMM-8HMDHK">earlier article</a> on the implementation details.
</p>
<p>
<b>New uploader</b>
</p>
<p>
JungleDragon has had a rich upload experience from the beginning, consisting of a Flash-based multi uploader and classic single file uploader fallback. The same is true in JungleDragon V3:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_05.jpg" height="520" width="650" />
</p>
<p>
I cleaned up this page and simplified it somewhat. I'm not terribly hapy yet with the styling, so I will likely revisit this design.
</p>
<p>
<i>How its made: </i>I made no functional changes to the uploader, for a detailed how-to on this uploader, please check my <a href="http://www.ferdychristant.com/blog/archive/DOMM-8ALPY4">earlier article</a>. 
</p>
<p>
<b>New maps</b>
</p>
<p>
Maps are integrated into JungleDragon in various ways. There is a global wildlife map, maps are part of photo and species pages, there are country maps, personal maps (showing only your geotagged photos), and there is the possibility to manually geotag a photo.
</p>
<p>
Below is the global wildlife map on mobile:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_06.jpg" height="550" width="472" />
</p>
<p>
The header at this size is very simple, it doesn't even have the JungleDragon logo. The header allows you to search for a location, zoom out the map (since it zooms to your current location by default), or close the map.
</p>
<p>
Other than that, this simply is a fullscreen embedded Google map with photos shown as markers. Clicking a marker shows the actual photo. Here is the same screen on a larger viewport:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_07.jpg" height="524" width="650" />
</p>
<p>
Note how the JungleDragon logo is now visible, and how the header buttons now have labels. I did what I could to make these maps usable on all devices, but to be fair, they kind of suck on mobile, quite hard to navigate.
</p>
<p>
You can imagine that manually geotagging a photo is a challenge as well across devices. Here's how it looks:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_08.jpg" height="521" width="650" />
</p>
<p>
Compared to the current JungleDragon version, I had to radically simplify this interaction. I got rid of map controls, the image preview and even the slider that allows you to navigate between images (to rapidly geotag multiple images in a row). All that remains is a sticky footer with an instruction and a Save button to confirm. You simply drag the marker to the location and click Save. The result is that this works and is usable across devices, despite sacrificing some functionality and sophistication. Such is the way of a mobile-first design.
</p>
<p>
<i>How it's made:</i> In terms of layout this is a fullscreen embedded Google map, which is easy to accomplish. All interactions on the map (such as search), are calls to the Google Maps API (version 3). As for responsiveness, I'm hiding some map controls using javascript based upon the viewport size, which I detect using Modernizr. 
</p>
<p>
<b>Note:</b> In terms of functionality and layout I am happy with this result. Note though that I do have a challenge ahead in making the global wildlife map scalable in terms of performance. With a few thousand markers to load on the global map, it is getting very slow. This will be a task for after V3.
</p>
<p>
<b>New video player</b>
</p>
<p>
JungleDragon allows users to add videos from Youtube and Vimeo to species pages. This is to enrich specie information. We'll have text about a specie, but also photos and videos. When clicking one of such videos, a full screen video player launches. I have completely redesigned that player, and I'm quite proud of the result.
</p>
<p>
On a smartphone in portrait mode:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_09.jpg" height="495" width="334" />
</p>
<p>
On a smartphone in portrait mode, the video has little room, but I can't help that. Still, the video renders nicely. Notice the simple header that allows one to switch to viewing the species' photos. Furthermore, there is a video description below the video. Turning the device into landscape makes for better video viewing:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_10.jpg" height="338" width="496" />
</p>
<p>
If you're bothered by the JungleDragon header in this mode, no worries, both the Vimeo and Youtube player will detect that you're on mobile and offer to play the video truly fullscreen.&nbsp;
</p>
<p>
What you did not see yet, because we haven't scrolled down yet, is that the video player has additional context. Just like with photos, you can learn about what you're viewing. In this case we're watching a video of a cheetah. JungleDragon will know this and present the species info below the video. This becomes visible after scrolling, or instantly on a small tablet:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_11.jpg" height="882" width="623" />
</p>
<p>
Pretty awesome, isn't it? Yet there is more, if you'd scroll down further, you'd find thumbs of other videos of this species. Or, on a large tablet, you can see them right next to the species information:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_12.jpg" height="711" width="650" />
</p>
<p>
This video player is nice and functional on small devices, but really kicks ass on tablets and viewports above. And unlike other JungleDragon pages, there is no upper limit to how this page scales.&nbsp;
</p>
<p>
<i>How it's made:</i> Too much to tell really. A few key techniques:
</p>
<ul>
	<li>Fitvids.js to scale the main video</li>
	<li>The min-float technique explained in an earlier article, but smart text wrapping</li>
	<li>Custom javascript and CSS background-size: cover to force video thumbs into squares&nbsp;</li>
	<li>Simple column changes based on breakpoints to decide how many thumbs should be shown per row</li>
</ul>
<p>
<b>Friend photos</b>
</p>
<p>
In the current version of JungleDragon, there is a seperate page to check the updates and photos of the people you follow. This functionality has now been integrated directly into the main photo list viewer:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jdv3_16_13.jpg" height="629" width="650" />
</p>
<p>
So next to new photos, popular photos, random photos, and unidentified photos, you can now also easily see your friends' photos. An in each case, you will see very large high quality thumbs that scale to any device. 
</p>
<ul>
</ul>
<p>
<b>Wrapping up</b>
</p>
<p>
This has been a fairly large update, a big step towards completing the redesign. The next step ahead of me is JungleDragon's slideshow viewer. Unfortunately, this one is highly complex and it may take me a few weeks. The good news is that after that component, V3 is functionally complete. Once functionally complete, there's only a few technical tasks to take care of (refactoring, some slight restyling, IE8 support, etc).&nbsp;
</p>
<p>
It's a long journey, but we're creeping towards the end.&nbsp; 
</p>
]]></description>
</item>
<item>
<title>Responsive JungleDragon - update XIII</title> 
<pubDate>Mon, 22 Apr 2013 08:55:11 +0100</pubDate>
<link>http://www.ferdychristant.com/fchristant/production/fdm.nsf/archive/DOMM-96ZRCZ</link>
<description><![CDATA[ <p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_resp_00.jpg" width="650" height="398" />
</p>
<p>
And we're at episode 13 already of my documented journey into redesigning <a href="http://www.jungledragon.com">JungleDragon</a> to be a mobile-first responsive website. In this episode I will share the redesigned forum. This post will be fairly boring in that it does not bring dramatic new insights, instead I simply reused a lot of parts developed earlier. I will therefore just share the results, and pay a bit more attention to what lies ahead.
</p>
<p>
<b>The new forum</b>
</p>
<p>
JungleDragon has a forum that is organized much like the classic internet forum setup: there is a forum per topic category, and in these forums topics are posted, to which other users can reply. Below is the redesigned result of the forum overview on a smartphone:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd3_v3_15_01.jpg" width="342" height="503" />
</p>
<p>
The touch target (clickable area) spans the entire row to support fat fingers. When a bit more room becomes available, for example in landscape mode, additional columns of information appear:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd3_v3_15_02.jpg" width="585" height="343" />
</p>
<p>
And finally, on larger tablets or desktops, all information is shown:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd3_v3_15_03.jpg" width="650" height="493" />
</p>
<p>
When opening one of these forums, the same thing happens: instead of showing a list of forums, it shows a list of topics, organized similarly to the list of forums. And here is an open topic in tablet portait mode:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd3_v3_15_04.jpg" width="650" height="860" />
</p>
<p>
All forum features are still there, you can create, edit, delete and report topics, you can subcribe to a forum or use its RSS feed. And, as shown on the screenshot, you can include rich objects in the body, for example a video.&nbsp;
</p>
<p>
<b>Boring is good</b>
</p>
<p>
From a development perspective, this post is boring, as no new technology is discussed. And that's a good thing, it means the reuse factor is very high. To name a few, these are things I reused when developing this responsive forum:
</p>
<ul>
	<li>Main responsive layout (side by side vs stacked columns)</li>
	<li>The topics themselves are exactly the same markup and style as normal image comments</li>
	<li>Responsive video</li>
	<li>Responsive breadcrumbs</li>
	<li>Responsive &quot;hero&quot; header, not visible in screenshots</li>
</ul>
<p>
I know I keep repeating this in every post, but building robust and reusable components truly is a must-have in responsive design, with enormous benefits later on.&nbsp; 
</p>
<p>
<b>Status and next steps</b>
</p>
<p>
I'm moving into really good territory now as for the progress of the total redesign phase. Here's a few key things still to do:
</p>
<ul>
	<li>I have a few single page redesigns still to do, about a handful of them. These include the upload screen, search screen, and a few more.&nbsp; None of these will be a huge challenge, they are simply a matter of putting in the effort and doing the work.</li>
	<li>I have now covered almost all major categories of functionality, including the hard ones. Except for one: fullscreen interactions. These include all slideshows on image lists, fullscreen map interactions and fullscreen video. As these components are currently quite complex in JungleDragon, making them responsive will be a challenge as well, at least a fair amount of work. You can consider this the last major technical mountain to climb.</li>
	<li>And finally, there is the category of &quot;general&quot; work. This concerns fine-tuning, technical restructuring, some performance tuning, old IE fallbacks, etc.</li>
</ul>
<p>
Summarizing, we're not quite there yet, but the finish line is in sight, in the distance.&nbsp; 
</p>
]]></description>
</item>
<item>
<title>The touch zoom dilemma</title> 
<pubDate>Tue, 16 Apr 2013 08:36:20 +0100</pubDate>
<link>http://www.ferdychristant.com/fchristant/production/fdm.nsf/archive/DOMM-96TQZ8</link>
<description><![CDATA[ <p>
Web developers who are trying to make their websites usable on mobile/touch devices, regularly use this in their page header:
</p>
<p>
<b>&lt;meta name=&quot;viewport&quot; content=&quot;initial-scale=1,maximum-scale=1&quot;&gt;</b>
</p>
<p>
The initial scale parameter prevents the mobile browser from scaling the website upon load, whilst the maximum scale parameter prevents end users from zooming the page using the touch gestures they use so regularly: pinch to zoom and double tap to zoom.&nbsp;
</p>
<p>
In an earlier post, I have made a case against disabling end-user zoom. I think it is a gesture users expect, and it should not be up to a designer to brutally disable it alltogether. Zooming in on text and photos is a powerful feature of touch devices, and quite often needed.
</p>
<p>
I still stand by those words. However, I cannot deny that the case for disabling zoom anyway is getting stronger as I go along. Here are three benefits of robbing users of this zoom option:
</p>
<ul>
	<li>Since zooming works on the page level, not the object level, in many (most) cases, it will mess up the layout of your site. Your website on mobile has little room to begin with, zooming it in to 200, 300% percent is going to break it in most cases. Experienced users will know how to fix this: pinch back and zoom out as far as possible, and the layout will &quot;snap&quot; back into place. </li>
	<li>The layout issue is even stronger when it comes to forms. Unless you are using a font-size of 16 pixels, most mobile browsers will zoom in the page when focusing on an input field. Not only will this likely break your layout (again), as the focus is now on the text field and the on screen keyboard is blocking half your screen, snapping back becomes harder and more frustrating than a normal zoom.</li>
	<li>This week I discovered an amazing library called <a href="https://github.com/ftlabs/fastclick">Fastclick</a>. What I did not know is that most mobile browsers have a wait time of 300ms when you touch a link before actually following up on it. The reason it does that is that it is waiting to see if perhaps the user is going to do a double tap, or a pinch to zoom. Both gestures are technically a sequence of &quot;clicks&quot; that should be treated as one action, and since human beings cannot perform such actions in 0 ms, there is the wait time. The Fastclick library removes the wait time. This has two effects:
	<ul>
		<li>Actual clicks are incredibly snappy, a difference in night and day. Its unbelievable what 300ms can do. By using this library, normal clicks feel as fast as native app clicks.</li>
		<li>The dramatic speed improvement, as expected, comes with a price. Since clicks are sent without any delay, double taps to zoom will no longer work. Pinch to zoom will sometimes work, only when both your pinch fingers actually register at the same time, it effectively becomes unreliable.</li>
	</ul>
	</li>
</ul>
<p>
And this is the dilemma. There are great pros and cons to both sides of the story. More than I realized when I first made my case for always allowing end-user zooming.&nbsp;
</p>
<p>
I'm currently leaning towards disabling zooming, for the reasons given above, of which reason #2 and #3 I consider the strongest points. I am further lured into disabling zoom because of other sites, like Flickr, who also disable it for similar reasons. My plan would be to disable zooming when I ship the new JungleDragon, and then to await feedback.&nbsp;
</p>
<p>
What are your thoughts around this? 
</p>
<p>
&nbsp;
</p>
<ul>
</ul>
]]></description>
</item>
<item>
<title>Responsive JungleDragon - update XII</title> 
<pubDate>Fri, 12 Apr 2013 01:38:20 +0100</pubDate>
<link>http://www.ferdychristant.com/fchristant/production/fdm.nsf/archive/DOMM-96PGTY</link>
<description><![CDATA[ <p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_resp_00.jpg" height="398" width="650" />
</p>
<p>
Welcome to the 12th edition of my documented journey into the responsive redesign of <a href="http://www.jungledragon.com">JungleDragon</a>. In the <a href="../../../blog/http://www.ferdychristant.com/blog/archive/DOMM-968RJF">previous edition</a>, we covered the redesign of a complicated set of species pages. In this edition, I'll be focusing on the species browser. The species browser allows for a very visual way of browsing the tree of life. Technically, it only concerns two pages, but they are fairly complicated and heavy. 
</p>
<p>
I'll be keeping this post brief. I'll just show you the redesigned results and will finish with two tech tips.&nbsp;
</p>
<p>
<b>Responsive species browsing</b>
</p>
<p>
Here is the new species browser on a smartphone:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_14_01.jpg" height="444" width="320" />
</p>
<p>
Let's dissect this page. It starts with a breadcrumb that shows where we are in the current hierarchy. Below are the &quot;children&quot; of the current selection, visualized as small thumbs. Next there is secondary navigation to switch between species or photos results, amongst other options. And finally, only partially visible below that navigation are the results of your selection.&nbsp;
</p>
<p>
It's a lot to fit in on a smartphone screen. Here's how I solved each component:
</p>
<ul>
	<li>I've redesigned the breadcrumbs. The species hierarchy can be up to 6 levels deep, which is a too long bread crumb to fit on a single line. Multiple lines cause a problem too, they take up too much height. Therefore I implemented a simple fix: only the last 3 levels in the hierarchy are shown.</li>
	<li>The &quot;childs&quot; navigator was a problem too. Some species nodes have 3 sub nodes, others may have dozens. I fixed this problem by creating a scollable area. </li>
	<li>The results of the specie selection, being the actual species records, are visualized as very large thumbs with a caption telling their specie name. I solved this thumb problem once, and I think I solved it very well, and now I am reusing it wherever I see fit.</li>
</ul>
<p>
Here's how this same screen looks on a small tablet viewport:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_14_02.jpg" height="790" width="600" />
</p>
<p>
The species nodes now cover 2 columns, on larger tablet viewports there will be 3. Don't mind the scrollbar on the scolleable area, on actual touch devices it is invisible unless you scroll, and when you do, it looks a lot more elegant.
</p>
<p>
This screenshot also shows how the breadcrumb now shows 4 levels, instead of 3. Furthermore, you can now clearly see the species result: large captioned thumbs of a high PPI quality.
</p>
<p>
Finally, here is the desktop viewport:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_14_03.jpg" height="378" width="600" />
</p>
<p>
The species nodes now show far larger thumbs, and they will be positioned into as many columns as your viewport allows.&nbsp;
</p>
<p>
<b>How it's made</b>
</p>
<p>
I promised you some tech tips, so here they are. I mentioned the problem of not wanting to show 6 levels of breadcrumbs on small viewport, yet to limit them. Here's a very elegant way of doing this:
</p>
<p>
<i>.navgrid { <br />
&nbsp;&nbsp;&nbsp; white-space:nowrap;<br />
&nbsp;&nbsp;&nbsp; li { display:none; }<br />
&nbsp;&nbsp;&nbsp; li:nth-last-child(-n+3) { @include inline-block;&nbsp; }<br />
}</i>
</p>
<p>
What this does is to hide all list element in the breadcrumb (which in markup is simply a list of li elements), except for the last 3. On slightly larger viewports, I can up the number to 4, and so on. The elegance lies in controlling this in the front-end. It's also SEO friendly, since all 6 levels will be indexed by search engines.
</p>
<p>
And here's the second tech tip. The scolleable area I showed you only kicks in when it reaches a certain height. So no scrolling unless there is a lot of content to justify scrolling:
</p>
<p>
<i>.specie-nodes {<br />
max-height:20em; <br />
overflow-y:scroll;<br />
overflow-x:hidden;<br />
-webkit-overflow-scrolling: touch;<br />
}</i>
</p>
<p>
That in itself is nice, but it's just plain old CSS. The cool discovery is in the property <i>-webkit-overflow-scrolling: touch;</i>If you are used to using touch devices, you are used to the experience of momentum scrolling. Momentum scrolling means that when you let you go of your finger, the page does not instantly stop scrolling, instead it continues for a bit and then slows down, depending on the speed of your swipe.&nbsp;
</p>
<p>
Momentum scrolling will work fine on most touch devices regarding the scrolling of your entire page. However, I noticed that this is not true for scrolleable areas within a page. Scrolling immediately stops when you stop your swipe. To make a long story short, the above property applies momentum scrolling to your scrolleable area, which is a vast improvement.
</p>
<p>
<b>Species browsing continued</b>
</p>
<p>
I'm quite happy with the redesigned result. Layout-wise it is quite cool and I learned a few new things in the process. The truth is to be told though: species browsing is quite slow currently on the JungleDragon production site. This redesign does not yet solve it, as the problem lies in the setup of the data structure. Unfortunately, species browsing isn't very inviting when it is slow, so I have to fix this one day. I'll do so after V3 is ready. I don't want to mix a UI redesign with a database redesign right now.
</p>
<p>
<b>Next steps</b>
</p>
<p>
I've already started work on the next section: forums. More on that when I complete it.&nbsp;
</p>
<p>
PS: Is anyone still reading this ;) 
</p>
]]></description>
</item>
<item>
<title>The last of Madagascar</title> 
<pubDate>Thu, 11 Apr 2013 07:58:18 +0100</pubDate>
<link>http://www.ferdychristant.com/fchristant/production/fdm.nsf/archive/DOMM-96NQ9G</link>
<description><![CDATA[ <p>
<img src="http://www.ferdychristant.com/blog/resources/Article/$FILE/madagascar_bye.jpg" height="397" width="600" />
</p>
<p>
If you're following me on JungleDragon or any of the social networks, you're probably tired of me sharing photos of Madagascar by now. It took me several months to share them, a few each time. I put a lot of effort in describing the unique species and locations, but ultimately, I stretched it over too much time probably.
</p>
<p>
Today my story of Madagascar ends. Here's an overview:
</p>
<ul>
	<li><a href="http://www.jungledragon.com/tag/4964/madagascar.html">All Madagascar photos</a> (over 700!)&nbsp;</li>
	<li><a href="http://www.jungledragon.com/list/68/madagascars_unique_species.html">Photo list: Madagascar's unique species</a></li>
	<li><a href="http://www.jungledragon.com/list/102/madagascar_at_night.html">Photo list: Madagascar at night</a></li>
	<li><a href="http://www.jungledragon.com/list/105/madagascar_flowers.html">Photo list: Madagascar flowers</a></li>
	<li><a href="http://www.jungledragon.com/list/67/madagascar_landscapes.html">Photo list: Madagascar landscapes</a></li>
	<li><a href="http://www.jungledragon.com/tag/4968/andasibe.html">Location: Andasibe</a></li>
	<li><a href="http://www.jungledragon.com/tag/6703/isola.html">Location: Isola</a></li>
	<li><a href="http://www.jungledragon.com/tag/6526/ranomafana_national_park.html">Location: Ranomafana</a></li>
	<li><a href="http://www.jungledragon.com/tag/6835/tsingy_de_bemaraha_national_park.html">Location: Tsingy</a></li>
	<li><a href="http://www.jungledragon.com/tag/6916/kirindy_reserve.html">Location: Kirindi</a></li>
</ul>
<p>
The photo journey ends here, but my relation with Madagascar will never end. It has made a lasting impression on me, not a day goes by that I don't think of it, in ways both good and bad. I'll definitely revisit one day, if only I can convince my other half.
</p>
<p>
For now, I hope you liked the extensive photo journey and story. Even more so, I hope you will one day visit Madagascar yourself. To kill two birds with one stone: to experience unique wildlife yourself, and secondly to breath life into eco tourism. Show them that there is more money to be made from tourism than there is from slash-and-burn farming the remaining 3% of unique forest. 
</p>
]]></description>
</item>
<item>
<title>Responsive JungleDragon - XL</title> 
<pubDate>Fri, 29 Mar 2013 01:59:28 +0100</pubDate>
<link>http://www.ferdychristant.com/fchristant/production/fdm.nsf/archive/DOMM-969JEP</link>
<description><![CDATA[ <p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_resp_00.jpg" width="650" height="398" />
</p>
<p>
<a href="http://www.ferdychristant.com/blog/archive/DOMM-968RJF">Yesterday</a> I posted the 11th edition of the responsive redesign journey I'm taking with JungleDragon. If you've been following along, you see the recurring theme of smartphone views, tablet views, and desktop views. It may appear as though I am putting all this effort into making JungleDragon suitable for <b>smaller</b> devices.
</p>
<p>
In this post I want to explain how the new JungleDragon will not only scale down, it will also scale up. The old JungleDragon, currently in production, has a maximum layout width of only 960 pixels.&nbsp;
</p>
<p>
The new JungleDragon (V3) will initially launch with a scaling range of 320 to 1280 pixels. 320 pixels extra in the upper width is an enormous difference!
</p>
<p>
Why not more than 1280 pixels though? Quite simply, because up to 1280 pixels is my initial focus. I don't want to wait with this release for too long. However, for the sake of fun I did a little experiment, placing the upper limit to 1920 pixels, meaning a full HD layout. In addition, I upped the font size by 1. A one minute job.&nbsp;
</p>
<p>
Will the new JungleDragon survive this experiment? Making it 50% wider without any code changes? See for yourself in this animated GIF:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_xl_01.gif" width="650" height="329" />
</p>
<p>
To fully appreciate this animated GIF, realize that this is a scaled down image of a 2560 x 1440 screen shot. The frames are in this order:
</p>
<ul>
	<li>Current JungleDragon (very narrow 960 pixels layout)</li>
	<li>JungleDragon V3 (1280 pixels wide)</li>
	<li>Our experiment (1920 pixels wide)</li>
</ul>
<p>
<br />
The experiment is pretty impressive, although the animated GIF may not bring that across very well. Between JungleDragon V1 and our experiment, the layout has gotten 2.5 times wider. That's enormous. And the design does not fall apart, instead it thrives. 
</p>
<p>
So why is this an experiment, and will it not ship with JungleDragon V3 initially? Because the extra space still does require some extra fixes, for example for wide text columns. Trust me though, a full HD layout will be coming after V3.
</p>
<p>
Bridging 320 to 1920 pixels without breaking a design means we're pretty responsive. Surely we can break the design by zooming the page? That breaks almost every website on the planet. You can do so in most browsers by hitting Ctrl &amp; +. &nbsp; 
</p>
<p>
No, this too does not break JungleDragon V3:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_xl_02.jpg" width="650" height="336" />
</p>
<p>
Again hard to appreciate on this blog, but we are looking at JungleDragon V3 at the whopping resolution of 2560 x 1440 pixels, with the page zoomed to 200% in the browser. Imagine this on a 27&quot; monitor (the one I am using as I write this) or a big-a$$ TV.&nbsp;
</p>
<p>
A funny thing just happend. We are at 2560 pixels of width. However, because we are zoomed in at 200%, the browser actually realizes it has only half of those <b>software </b>pixels available (1280). So my media queries aren't respondig to 2560 pixels, they are respondig to 1280 pixels, and serve the appropriate layout for that. So effectively we are looking at a blown-up 1280 pixels layout. The cool thing though is that JungleDragon V3 does not break when blown up up to 200%.&nbsp;
</p>
<p>
And there is a reason for that: Retina. Making your web pages Retina-ready means one simple thing: it should not suck when blown up to 200%. Even without a Retina device, zoom your page to 200%. If it looks great and sharp, you're done. If things look blown up (most websites will), you have work to do.
</p>
<p>
So far for this teaser. Yes, my friends, your mega big devices too will get JungleDragon love. 
</p>
]]></description>
</item>
<item>
<title>Responsive JungleDragon - update XI</title> 
<pubDate>Thu, 28 Mar 2013 09:53:40 +0100</pubDate>
<link>http://www.ferdychristant.com/fchristant/production/fdm.nsf/archive/DOMM-968RJF</link>
<description><![CDATA[ <p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_resp_00.jpg" width="650" height="398" />
</p>
<p>
Welcome to the 11th edition of my documented journey into JungleDragon's responsive redesign. It's been 3 weeks since the last post. Various distractions slowed me down during the last weeks, but I am here revived an all to present you responsive awesomeness. This post will be about JungleDragon's species pages.
</p>
<p>
<b>First things first</b>
</p>
<p>
First, a brief look at some general improvements:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_01.jpg" width="599" height="370" />
</p>
<p>
Photo lists are now included in global navigation. They deserve more attention.
</p>
<p>
A second general improvement (again) is in navigation. I expressed concern last time about how usable it is. In particular the hierarchical order did not always make sense. I went back to all redesigned pages and changed the order of things. Example:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_02.jpg" width="444" height="125" /> 
</p>
<p>
This new navigation shows the popular photos of a particular tag. Before, the crumbs would be below the sort filter, which does not make sense.&nbsp;
</p>
<p>
<b>Species pages</b>
</p>
<p>
Whenever I start out on the redesign of a JungleDragon page (120 in total), I decide on its weight. If it's a simple and/or unimportant page, I try to be done with it in a few hours at most, preferably less. Pages with a significant weight get more attention. And on some pages, I go all-in. The JungleDragon species pages are such pages, begging for the best I can do in responsive design, as a humble student I might add.
</p>
<p>
JungleDragon at its core is a photo platform, yet is unique added value is being able to identify the species on photos. From the photo, you can click on the species ID to learn more about the specie. This page, or set of pages, that are all about the specie is what I am about to show you.
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_03.jpg" width="392" height="553" />
</p>
<p>
See above, the top part of a specie page (specie header) on a smartphone. Note the navigation directly below the green global navigation. Because there is no room for 6-level breadcrumbs to show the species' taxonomy, a grid is used instead. Should any text in this grid not fit, it is truncated using the CSS eclipse technique explained in earlier posts.
</p>
<p>
Next is the photo, which can be of any size or orientation. The species' common name, binomial name and description follows. The description text is truncated. The amount of characters before truncation occurs depends on the viewport size, as explained in earlier posts as well. Finally, the specie header concludes with sub navigation. We are now at the species' &quot;homepage&quot;, but there are also dedicated pages for photos, videos and a map.
</p>
<p>
Check out how responsive this specie header is. Here is the exact same page on a small tablet:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_04.jpg" width="650" height="489" />
</p>
<p>
The transformation is significant. The grid navigation for the specie taxonomy is now a normal 6-item horizontal breadcrumb, since space allows for it. The photo itself has grown in size, and will do so until it can't anymore. The specie description is not below the photo, it wraps around it. Yet it will only wrap with a specific minimum width available to avoid very narrow text columns. This too is a technique explained earlier.
</p>
<p>
All of this yet only concerns the specie header, which is consistent across the 4 species pages. Below the header, if we scroll down further, we get to the content blocks:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_05.jpg" width="317" height="445" />
</p>
<p>
Content blocks are mixtures of JungleDragon specie photos and Wikipedia block texts. As you can see, on mobile the photo and text are below each other. On a small tablet, however, the text wraps:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_06.jpg" width="650" height="390" />
</p>
<p>
Similar to the specie header, wrapping only occurs as of a minimum text width being available next to the photo. Scrolling down even further, we come across some interesting specie information:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_07.jpg" width="314" height="691" />
</p>
<p>
First there is the distribution map, coming from Wikipedia. It will scale to the width available. The second block shows the species' vulnerability status. The threat status colors are CSS gradients, zero images are used. Third and finally there is a table showing the specie taxonomy (again).
</p>
<p>
If we'd look at these components on a tablet in portrait mode, we still have a fairly narrow width. However, it is width enough to split these components into two columns:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_08.jpg" width="650" height="421" />
</p>
<p>
This is accomplished using CSS columns. I used this technique before on the redesign of the photo page.&nbsp;
</p>
<p>
<b>Note:</b> Notice how in this post alone I have already mentioned &quot;As explained earlier&quot; four times? This bares witness that in responsive design, you need to solve problems once and solve them well. The reuse factor is incredible and much needed.
</p>
<p>
By now perhaps you are confused about this specie homepage, showing all these individual blocks. Let us then move on to the final viewport, the desktop viewport:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_09.jpg" width="650" height="683" />
</p>
<p>
This is probably the most complicated responsive page I have created so far. I look at this page on my iPhone5 and in the background the same page is on a 27&quot; 2560 x 1440 screen. They differ so much that you'd almost forget this is the exact same content being served to both devices. This stuff is the holy grail of web design, I am convinced of it.
</p>
<p>
Moving on, all of the above concerned the specie homepage. There's also a page showing only the photos of the specie:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_10.jpg" width="650" height="849" />
</p>
<p>
As with any list of images in the new JungleDragon, we get huge edge-to-edge thumbs of Retina quality. I ran into an unexpected problem though. You have seen how the specie header is quite awesome, but also quite tall, especially on mobile. So if we'd move from the specie homepage to the photos page, it looks like nothing happened. In both cases the header will fill the screen, and users have to scroll down to see the content that actually changed. To avoid this issue, I am auto scrolling the page on mobile. So you click on &quot;photos&quot;, and the page will scroll automatically past the specie header to the start of the actual photos. Code curious? This is all it takes:
</p>
<p>
<i>&nbsp;&nbsp;&nbsp; if ($('body').data('scrollto').length &gt; 0 &amp;&amp; mqMode.num &lt;=2) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var scrollTarget = $($('body').data('scrollto'));<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $('html, body').animate({ scrollTop: scrollTarget.offset().top });<br />
&nbsp;&nbsp;&nbsp; }</i>
</p>
<p>
I don't care to explain it now, post a comment if you'd like me to. Moving on to the species' video page:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_11.jpg" width="650" height="539" />
</p>
<p>
Users can add videos to a specie page from Youtube or Vimeo. We're not looking at the actual videos here, these are thumbs of the videos, clicking them launches a video player (still to be redesigned). As you can see, there's a little layout problem: videos have different aspect ratios leading to different black bars around the thumbs. I can't solve this, because the thumbs are out of my control.&nbsp;
</p>
<p>
Below the video thumbs are a caption and a link to remove the video entry, if authorized. Just like normal images, these thumbs will use the appropriate amount of columns (in this case 4) to fit the viewport. 
</p>
<p>
And finally, we come to the 4th page: the species' map. The map will show geotagged JungleDragon photos of this specie:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_13_12.jpg" width="650" height="668" /> 
</p>
<p>
The map obviously scales to the viewport. I've simplified the marker info windows. They only show the photo, which works better on smaller devices. Truth is to be told though: on smartphones the Google maps control really sucks. This is something that is usable as of a tablet-sized viewport.
</p>
<p>
There is no need for despair though. Imagine this: you are hiking in the forest, pull up your smartphone and JungleDragon shows you the list of species spotted around you earlier. That's the kind of mobile &quot;map&quot; experience I will aim for, but don't hold your breath :) 
</p>
<p>
<b>Wrapping up</b>
</p>
<p>
It's been hell redesigning this page, yet the result is rewarding. If I'd care to explain responsive web design to a stranger, this would be the page to pull up. I'd start from mobile and slowly scale the window to desktop. The incredible transformation appearing in between explains why I am a believer, and why you will be one as well.&nbsp; 
</p>
<p>
Next time: the species section is not completed yet. I still have to redesign the wildlife browser, which is also a complicated set of pages. 
</p>
]]></description>
</item>
<item>
<title>JungleDragon celebrates 2,000 species</title> 
<pubDate>Tue, 12 Mar 2013 07:44:15 +0100</pubDate>
<link>http://www.ferdychristant.com/fchristant/production/fdm.nsf/archive/DOMM-95QR67</link>
<description><![CDATA[ <p>
<img src="http://www.ferdychristant.com/blog/resources/Article/$FILE/jd_2000species.jpg" height="382" width="650" />
</p>
<p>
Yesterday JungleDragon passed the 2,000 unique species milestone. This number is more impressive than it sounds:
</p>
<p>
With less than 10,000 photos posted, it means there is a very high diversity of species. It's not just the usual &quot;elephant and bear&quot; photos, the coverage of species is very wide. Mammals, insects and birds take up the largest chunk, plants is a large category as well, as are reptiles. Other categories are underrepresented, such as marine life, which is of course harder to photograph.&nbsp;
</p>
<p>
Out of the 9,000+ photos posted, 75% has their species identified. The real number is even better, since that 25% includes photos that do not have any species, such as landscapes. 75%+ shows an enormous community discipline in identifying species. Above all, I consider the relationship between photos and species to be the biggest strength of JungleDragon, so I am proud of the community for this excellent number.
</p>
<p>
In fact, some people claim that the specie identification feature of JungleDragon has changed them as a photographer. I consider that to be the ultimate compliment. It has had the same effect on me. The feature somewhat forces you to consider what it is you are photographing. You'll think differently of wildlife photography as of then, it becomes a conscious process. It may even trigger the &quot;collector&quot; mechanism in you, where you are constantly looking for the next specie that you did not photograph before. That's the kind of addiction that is most welcome :)
</p>
<p>
Regarding 2,000 unique species as a number: of course the number pales compared to the millions of actual species that mother nature holds. Still, those millions need to be put in perspective somewhat:
</p>
<p>
Species in nature are spread out thinly. This means that specie rarity is not an exception, it is the rule. Most of those millions of species are rare. Rare in their distribution, rare to be photographed, rare to be identified, rare to be described anywhere. For example, the snout beetle family holds 40,000 species described. It's a tiny leaf on the total tree of life, yet still incredibly vast in numbers. Of most of those 40,000 species, you will find next to nothing online, whereas you will find lots of the top 100 snout beetles. This is even true for Wikipedia, a major source of specie information that JungleDragon depends on. It covers only a fraction of the actual species (about 180,000), and you will find that only the top 25% of those articles go beyond a basic entry of naming the specie.
</p>
<p>
What counts most for me is the educational value of 2,000 species. If you'd put me on the spot, I think I'd have trouble naming a hundred species by heart. That means 2,000 is incredibly educational. On almost all photos in JungleDragon you can directly see what the specie is, and learn more about it. Furthermore, one can browse through the tree of life without needing to be a scientist:
</p>
<p>
<a href="http://www.jungledragon.com/wildlife/browse">JungleDragon Tree of Life</a>
</p>
<p>
Anyway, let it hereby be noted that I am deeply proud of our small yet enthusiastic community. Thank you all for your excitement and efforts, and let us march on to our next goal: 10,000 photos! 
</p>
]]></description>
</item>
<item>
<title>Insane upgrade</title> 
<pubDate>Sat, 9 Mar 2013 02:53:15 +0100</pubDate>
<link>http://www.ferdychristant.com/fchristant/production/fdm.nsf/archive/DOMM-95MKGB</link>
<description><![CDATA[ <p>
One of the things I love most about our house is the ground floor office. It is spatious, and therefore allows for proper seating and a nice desktop setup. This beats the laptop-in-the-living-room scenario imho. Furthermore, by not being tucked away in the attic, I know what's going on in the household.
</p>
<p>
Anyway, the desktop setup I have been using was in need of an upgrade. For the last years I've been working on what effectively was a powerful Acer gaming machine back in 2007. To this day, it is still quite fast in many ways. As for screen real estate, I've been working on a 24&quot; full HD monitor complimented with a 21&quot; full HD monitor. In many ways, the old setup was working quite fine still in terms of general computing power, but I was longing for a graphical update.
</p>
<p>
I decided to go for an upgrade that borders insanity, one that will bring me daily joy for years to come. I went for the <a href="http://www.dell.com/us/p/alienware-aurora-r3/pd">Alienware Aurora</a> desktop setup. In it is an I7-3820 processor, which is excellent. It's not the highest end, yet CPU power never is a bottleneck for me. It has 16 GB of 1.600 MHz Quad Channel DDR3 memory. Awesome as well, but mostly a standard now for high-end desktops. Furthermore, the system has a 2TB 7200 rpm disk (no SSD yet, to be considered still), and a Blu-ray reader.
</p>
<p>
Excellent stuff all in all, but what really makes the system spectacular is this:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/hardware/$FILE/alienware_00.JPG" height="475" width="600" />
</p>
<p>
This is Nvidia's GTX690 GPU, the world's fastest consumer card. Effectively, it is a dual GPU: two GTX680s on a single card. It has an insane performance, there is very little out there that you can throw at this card that it cannot handle with ease, and this applies to both 2D and 3D rendering.
</p>
<p>
So that covers the main Alienware desktop system. Far more interesting is what all this power enables:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/hardware/$FILE/alienware_01.JPG" height="450" width="600" />
</p>
<p>
Part of the upgrade is a full monitor replacement. These are two Dell U2713HM screens, each running a resolution of 2560 x 1440. The photo is wide angle, in reality these screens are huge. I'm now looking at a working resolution of 5120 x 1440 pixels, which borders insanity.&nbsp;
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/hardware/$FILE/alienware_02.JPG" height="450" width="600" />
</p>
<p>
The other fantastic part of this upgrade is the switch from LCD TN panels to these IPS panels. The color accuracy is stunning, it makes me wonder what the hell I've been looking at all these years. 
</p>
<p>
As for working space, here is the typical width a browser windows takes up in relation to the total available space:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/hardware/$FILE/alienware_03.JPG" height="450" width="600" />
</p>
<p>
If you think this is overdone, I agreed with that before buying this. Now that I have it at my finger tips, I am not so sure I agree:
</p>
<ul>
	<li>I do tabbed-browsing a lot, but really I'd prefer to have actual browsers open next to each other, as I often look up data between windows. This is very useful for that.</li>
	<li>In Lightroom, I can see well over a 100 thumbnails just on one screen alone, with the other screen having the photo open nearly fullscreen. </li>
	<li>In Photoshop, I don't have to keep toggling the zoom level when I do selective edits, because a large zoom level fits entirely on the screen.</li>
	<li>When programming, I see a lot more code on one screen, whilst also having the server console and two browser screens open next to it.</li>
</ul>
<p>
In other words, it's more than a toy factor, actual productivity is better too. I can't say the same thing for the GTX690 though, its primary purpose is for very high-end gaming. Here's some experiences:
</p>
<ul>
	<li>Crysis 3 currently is the ultimate benchmark game for GPUs. In-game it has an overwhelmingly large amount of lighting effects, reflections, shadows, etc. With the GTX690 at stock settings (not overclocked), Crysis runs at about 50fps with all settings at the highest, even the biggest performance killer (AA) is at its highest. In this torture mode, the cards runs hot up to about 90 degree celsius, but never crashes.</li>
	<li>Games like Farcry 3 and Battlefield 3 are a piece of cake, at their highest settings a constant 100+ fps is delivered. I could even clock down the power in such cases.</li>
</ul>
<p>
And then there is Skyrim. Playing it on this setup is the most stunning and immersive gaming experience I ever had. It is not the technically most demanding game, but certainly the most beautiful one. Playing it at a large 2560 x 1440 IPS screen is mind blowing. 
</p>
<p>
So that is the new setup. It's been years since I was this excited about hardware, I'm happy as a child when I glance upon this machinery. And all of this in the midst of the post PC era. I hope that it is a telling sign that above all, I aspire to be a creator, not a consumer. And when not creating, I surely enjoy a world class gaming experience as well :) 
</p>
]]></description>
</item>
<item>
<title>Responsive JungleDragon - update X</title> 
<pubDate>Mon, 4 Mar 2013 09:25:54 +0100</pubDate>
<link>http://www.ferdychristant.com/fchristant/production/fdm.nsf/archive/DOMM-95GRE2</link>
<description><![CDATA[ <p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3_resp_00.jpg" height="398" width="650" />
</p>
<p>
Welcome to the 10th edition of my documented journey into redesigning <a href="http://www.jungledragon.com">JungleDragon</a> to be responsive. This being the 10th edition already shows the size of the task, but luckily progress is steady. In this edition I'll cover the user profile section of JungleDragon. From a technology perspective, there is only one tip to share.
</p>
<p>
<b>A small improvement to mobile navigation</b>
</p>
<p>
First, let us come back to responsive navigation. Out of all the topics that relate to responsive design, I believe it is the hardest thing to get right, particularly for mobile screens. In previous editions I shared my solution, which makes use of a common pattern: if there is no room for navigation, fold up the items into a &quot;menu&quot; or &quot;more&quot; link that reveals all options in a list or grid.&nbsp;
</p>
<p>
Still, in specific areas of JungleDragon the navigation depth is up to 3 levels deep, each level showing the &quot;more&quot; link where appropriate. It's quite easy to get lost in navigation this way. My point is that I do not see my proposed solution as a particular good or usable one. However, having researched other patterns I have yet to find a better solution, other than scrapping a lot of options alltogether for mobile.&nbsp;
</p>
<p>
Anyway, I just wanted to make a note of this: responsive navigation is one of the most important problems to solve, and it's also one of the hardest ones. For now I did make a small but valuable improvement:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3-12_01.png" height="500" width="335" />
</p>
<p>
Before, on mobile only the &quot;Menu&quot; link would be visible. This is now supplemented with the active link as well as the sign in link (or user profile link depending on sign in state).This helps in feeling less lost when moving through navigation on very small screens.
</p>
<p>
As said, this is not the final word on responsive navigation, but this will do for now.
</p>
<p>
<b>User profile header and vertical truncation</b>
</p>
<p>
This 10th edition covers a major chunk of work: user profiles, enticing 30 individual screens that all had to be made responsive. The screens cover both a user's content (photos, lists, comments, etc) as well as user profile actions (settings, edit profile, etc).&nbsp;
</p>
<p>
All of these screens have something in common: a user profile header block. I'll use this to cover an interesting responsive topic: vertical truncation.&nbsp;In earlier editions, we already talked about horizontal truncation:
</p>
<p>
&nbsp;<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3-10_07.jpg" height="327" width="287" /><img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3-10_06.jpg" height="196" width="160" />
</p>
<p>
See above. We have user-generated titles of an unknown content length, yet we want to truncate based on available screen width, not based on a fixed number of characters. The simple solution for this is to make use of the CSS ellipsis property. Case closed.
</p>
<p>
Vertical truncation is more difficult, so let us have a look at that problem:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3-12_02.png" height="497" width="334" />
</p>
<p>
See above for a user profile header. It shows a user-generated &quot;About&quot; text of unknown length. Showing the full text on a small screen in portrait mode takes up too much vertical space. This is where vertical truncation comes in.
</p>
<p>
Now, the easiest solution to this is to place a fixed limit on characters, showing a &quot;more&quot; link to expand the full text. That character limit would have to be based on the smallest of screens. The problem is that on larger screens, this leads to an overly truncated result: only a few characters are visible whilst there is a lot of room for more. What we need is variable text truncation. Here's the result of variable truncation:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3-12_03.png" height="497" width="334" /> 
</p>
<p>
See above, on mobile, text is truncated aggressively. 
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3-12_04.png" height="447" width="650" /> 
</p>
<p>
See above, on desktop, text is truncated liberally. In this case, no visible truncation took place because the amount of actual characters did not exceed the truncation limit.
</p>
<p>
How is this solved? Basically, I'm making use of <a href="http://theodin.co.uk/blog/development/truncatable-jquery-plugin.html">Truncatable</a>, a lightweight jQuery truncation plugin. It's actually a good thing to do truncation during runtime, as it avoids any SEO problems. The plugin allows for fixed character truncation, so I had to built some intelligence to call it responsively:
</p>
<p>
<b>&nbsp;$('.js-truncatable').each(function(index){<br />
&nbsp;var truncChars = $(this).data(&quot;trunc-&quot; + mqMode.name);<br />
&nbsp;$(this).truncatable({ limit: truncChars, more: '..more', less: true, hideText: '[hide]' });<br />
&nbsp;});
</b>
</p>
<p>
This code runs on any html element that has the class &quot;js-truncatabale&quot;. Note that it is a good practice to prefix your JS hooks like this, to avoid any clashes with style classes. Next, for each html element that has this special class, the code will read out the data properties of the element to determine the amount of characters to truncate based on the viewport size. Once it is calculated how many characters should be truncated, the actual call to the plugin is made, which does the truncation.
</p>
<p>
All of this becomes a lot more clear when you see the markup of the user profile header:
</p>
<p>
<b>&lt;div class=&quot;user-about js-truncatable group1&quot; data-trunc-xxs=&quot;80&quot; data-trunc-xs=&quot;260&quot; data-trunc-s=&quot;320&quot; data-trunc-m=&quot;340&quot; data-trunc-l=&quot;600&quot;&gt;&lt;?= $userdata['about'] ?&gt;&lt;/div&gt;</b>
</p>
<p>
Check out the data properties. There is one for each major viewport breakpoint, and each carries a specific number as for the truncation characters to use. The code shown earlier reads the property for the currently active viewport breakpoint, and then applies the truncation.
</p>
<p>
Whilst this seems like a lot of work for such a small problem, this entirely fits into the battle plan of responsive design. Solve problems once and solve them in a reusable way. This truncation problem is going to occur in multiple places in JungleDragon. With this solution in hand, any subsequent cases are solved simply by applying the right markup properties.
</p>
<p>
I did question the notion to put such properties in markup. I'm quite a web purist as it comes to the proper seperation of markup, presentation and logic. Yet in this case the practical advantages of the solution outweigh the principal aspect of it.
</p>
<p>
<b>The new user profile</b>
</p>
<p>
I'm not going to be sharing all 30 screenshots of the user profile section (or 120 if I'd show them in all major breakpoints), yet hereby an impression. First, visible in the previous screenshot already, the most important part of the user profile is quickly seeing the photos contributed by the user. This is solved similar to all other image lists in the new responsive design: awesome photos light in filesize yet very rich in quality, scaling from mobile to desktop without quality loss. It's by far the biggest strength of this entire redesign.
</p>
<p>
Other than seeing the user's uploaded photos, one can also quickly see which photos the user voted on or favorited. And, there's a new photo overview on the user profile: promoted images, showing user photos that were promoted to the homepage. This feature has been requested multiple times and is now coming.
</p>
<p>
Next is the activity screen, showing a karma log of activities done by the particular user. Hardly worthy of a screenshot, you'll see it in action soon. Let's move on to an entirely new screen: the reputation screen. Before, a user's profile header would contain all their medals, which take up a lot of space. This has now been moved to a dedicated reputation page:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3-12_05.png" height="762" width="550" />
</p>
<p>
Seeing a user's photo collections (lists) looks quite nice as well:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3-12_06.png" height="587" width="650" /> 
</p>
<p>
And then there are screens to see the user's tags, comments, users being followed and followers. I won't post them here, they are visualized exactly the same as normal tags, comments, etc. Summarizing, anything a user contributes to JungleDragon can be seen from their profile, using the same visualizations used throughout the design.
</p>
<p>
<b>User actions</b>
</p>
<p>
The second part to user profiles are user actions, things only the user can perform on their own profile. Examples are editing details, their password, preferences, notification settings, etc. Here's the signin screen on mobile:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3-12_07.png" height="497" width="349" />
</p>
<p>
The &quot;manage notifications&quot; screen:
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3-12_08.png" height="788" width="437" />
</p>
<p>
Notice the blue navigation on top, giving access to all user profile actions. I think you get the idea of how those other screens may look like.&nbsp; Finally, here's the new &quot;classes&quot; screen, which shows the JungleDragon food chain (reputation system):
</p>
<p>
<img src="http://www.ferdychristant.com/blog/resources/jungledragon0/$FILE/jd_v3-12_09.png" height="519" width="650" />
</p>
<p>
The illustrations are a lot larger now and of Retina quality, whilst being equal in file size compared to the current JungleDragon. Also, the screen has been cleaned up and is smarter in that it calculates how much karma you need to earn to reach a particular class.
</p>
<p>
<b>Wrapping up</b>
</p>
<p>
The user profile section has been a massive undertaking into redesigning 30 screens, out of a 119 in total. Luckily though, the reuse factor is increasing. Having solved so many responsive challenges in previous screens already, I rarely come across many new issues to tackle. This means I am moving from spending a lot of time inventing solutions for new issues into a mode of simply executing changes. This is bad news for this series of blog articles, as they will become increasingly boring, but good news for JungleDragon, which simply needs this redesign delivered as soon as possible.
</p>
<p>
As for status, I'm at 60-70% with a few big pieces still awaiting. These are the forum, species pages, slideshows, and a few general pages and things to do. I still estimate it at a few months of work (given of course that I do this on top of a fulltime life). Despite the long journey, I'm excited as ever. Both to deliver an awesome new JungleDragon this year, as to mastering these new techniques. JungleDragon requires almost every responsive trick in the book, and that exposure is useful to my education, and hopefully useful to you readers as well. 
</p>
]]></description>
</item>
</channel>
</rss>
