<?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>dabblet.com is an interactive CSS playground. Here you’ll find news, usage tips, trivia and other cool stuff.</description><title>dabblet</title><generator>Tumblr (3.0; @dabbletapp)</generator><link>http://blog.dabblet.com/</link><item><title>Idea: Show/hide panes with toggles instead of tabs</title><description>&lt;p&gt;Currently, Dabblet employs a system of tabs to show/hide panes, with preconfigured options of which panes to show for every tab:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/2b8d428f3c0e39c66ccd108077949226/tumblr_inline_mmnavpIz6h1qz4rgp.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;There is also a setting that modifies the layout of those panes:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/e2872d22ef509897827ac7642a4044f7/tumblr_inline_mmnayfr0nL1qz4rgp.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;This was done to minimize cognitive overhead and provide easy, pre-baked options to the user of the pane combinations they are most likely to need. However, after my colleague, &lt;a href="http://twitter.com/shepazu"&gt;Doug Schepers&lt;/a&gt; recently suggested a better idea, I’m starting to think it was just UI overengineering, as it has a number of issues:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;There are certain pane visibility combinations that simply aren’t possible, e.g. HTML &amp;amp; JS &amp;amp; Result. Out of the 15 (2⁴  - 1) possible combinations of 4 panes, Dabblet currently only offers 8 (CSS, HTML, JS, Result, CSS+Result, HTML+Result, JS+Result, HTML+CSS+Result).&lt;/li&gt;
&lt;li&gt;The view setting mixes pane visibility &amp;amp; pane layout (The &amp;#8220;Separate&amp;#8221; option actually hides panes), which can be confusing.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;His idea was to use a control to toggle pane visibility individually, allowing all 15 options, and a separate control for their layout. The tabs would be replaced by something like this:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/dc65c8ae8a7b2c06b2d8854553febe26/tumblr_inline_mmnbmdZD7s1qz4rgp.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;and the view setting with something like this:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/16024ad0b0a0d56bab4e48cba1ac668c/tumblr_inline_mmnbn2AD361qz4rgp.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;Like all brilliant ideas, it seems obvious after somebody else describes it to you. I later discovered that &lt;a href="http://jsbin.com/"&gt;JSBin&lt;/a&gt; does something similar:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/04ac3c791b1a086959f44e72f6cfac94/tumblr_inline_mmnbpovwK31qz4rgp.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;Although it doesn&amp;#8217;t let you control the layout of the panes, and just treats it always as &amp;#8220;Vertical&amp;#8221;, which certainly simplifies implementation.&lt;/p&gt;

&lt;p&gt;Implementation of the idea described here for Dabblet is actually pretty hard. The &amp;#8220;Horizontal&amp;#8221; and &amp;#8220;Vertical&amp;#8221; states are quite easy (although such a major change is always a lot of work), but the &amp;#8220;Mixed&amp;#8221; one would require a pre-set layout for all 15 possible combinations. So, before devoting all the time required to implement it, we felt it would be good to ask the community: Do you think it’s worth it? Would it make Dabblet’s UI more straightforward? Any feedback is welcome, even ways to improve on this, if you have any ideas.&lt;/p&gt;</description><link>http://blog.dabblet.com/post/50182599947</link><guid>http://blog.dabblet.com/post/50182599947</guid><pubDate>Sat, 11 May 2013 11:14:21 -0700</pubDate><category>UX</category></item><item><title>Updates over the last few months</title><description>&lt;p&gt;There has been a while since the last post in this blog. However, this doesn’t mean dabblet is not moving forward. There have been a number of improvements, practically everything we promised in the &lt;a href="http://blog.dabblet.com/post/35203393585/lots-of-improvements-in-the-pipeline"&gt;previous blog post&lt;/a&gt;:&lt;/p&gt;

&lt;h4&gt;JavaScript support&lt;/h4&gt;

&lt;p&gt;JavaScript support was added in a new tab. It will run when a dabblet loads, as well as when you hit the Play button in the JS tab or hit Cmd/Ctrl + Enter (⌘↩). If your script has errors, the first one will be displayed, no need to check the console!&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/29921ef68a8e9020d6ed3869fc504f92/tumblr_inline_mmmzjkYNrf1qz4rgp.png" alt="JS error UI"/&gt;&lt;/p&gt;

&lt;h4&gt;Dabblets through POST&lt;/h4&gt;

&lt;p&gt;You can now submit a form to dabblet with the fields &amp;#8220;css&amp;#8221;, &amp;#8220;html&amp;#8221; and &amp;#8220;javascript&amp;#8221; and its code will be displayed in the appropriate fields. You can &lt;a href="http://dabblet.com/post-test.html"&gt;test this functionality here&lt;/a&gt;. This can be useful for tutorial sites or using dabblet to preview e.g. theme changes. Make sure the form has &lt;code&gt;method="POST"&lt;/code&gt; otherwise it won’t work.&lt;/p&gt;

&lt;h4&gt;Integrated Prism into dabblet&lt;/h4&gt;

&lt;p&gt;The syntax highlighter powering dabblet is now &lt;a href="http://prismjs.com"&gt;Prism&lt;/a&gt;, which started from it but evolved into something much bigger. Prism is used by big industry websites like &lt;a href="http://smashingmagazine.com"&gt;Smashing Magazine&lt;/a&gt; or &lt;a href="http://alistapart.com"&gt;A List Apart&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;Fixed XSS issue&lt;/h4&gt;

&lt;p&gt;A long standing XSS issue in dabblet, that thankfully nobody exploited, was that the preview iframe was in the same origin, so someone could write malicious JS to steal the user’s Github access token. The preview iframe is now &lt;a href="http://preview.dabblet.com/"&gt;on its own subdomain&lt;/a&gt; and communication with the Dabblet UI happens through the &lt;a href="http://www.w3.org/TR/webmessaging/"&gt;Cross-Window Messaging API&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;General bug fixing&lt;/h4&gt;

&lt;p&gt;Several long-standing bugs were fixed. Especially bugs that had to do with the undo/redo functionality. The long-standing issue of previewers that remained visible in the top left corner of the screen also should have been fixed. There were attempts to fix the major issue with Dabblet’s &amp;#8220;View Full page Result&amp;#8221; functionality, which apparently hits Github rate limit and starts showing &amp;#8220;Not found, sorry! :(&amp;#8221; after a certain point, but it looks like it hasn&amp;#8217;t been solved yet.&lt;/p&gt;

&lt;h4&gt;One click code validation for CSS and HTML&lt;/h4&gt;

&lt;p&gt;The CSS and HTML panes now have a validation button that sends your code to the W3C validator, which opens with the results on a new tab.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/c25de528cdc2585c95a7878dd1f5803c/tumblr_inline_mmn09iSZgU1qz4rgp.png" alt="Validation button for CSS"/&gt;&lt;/p&gt;

&lt;h4&gt;WebPlatform.org Codelet&lt;/h4&gt;

&lt;p&gt;&lt;a href="http://www.webplatform.org/"&gt;WebPlatform.org&lt;/a&gt;, W3C’s new effort to document the Web together with both the developer community and all the big players of the Web as stewards, has &lt;a href="http://code.webplatform.org"&gt;its own customized installation of Dabblet, nicknamed Codelet&lt;/a&gt;. Besides the skin, its main difference from Dabblet is that it doesn’t require a Github account to save, since every gist is saved in the WebPlatformDocs account. All of the above changes were also ported into Codelet, and in fact, many were done because of it. Since WebPlatform.org is part of my job at &lt;a href="http://w3.org"&gt;W3C&lt;/a&gt;, it enabled me to work on Dabblet during W3C time, so in a way, W3C sponsored these updates. Therefore, if you like these changes, you know who to thank, besides me :)&lt;/p&gt;

&lt;p&gt;&lt;img src="http://thesis.dabblet.com/images/wpd-dabblet.png" alt="WebPlatform.org Code"/&gt;&lt;/p&gt;

&lt;h4&gt;Dabblet thesis&lt;/h4&gt;

&lt;p&gt;I recently finished my BSc in Computer Science, and Dabblet was my thesis. I’ve written the entire thesis in HTML (It’s even responsive!), and if you’re interested in the inner workings of Dabblet, you may &lt;a href="http://thesis.dabblet.com/"&gt;read it here&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.dabblet.com/post/50166400621</link><guid>http://blog.dabblet.com/post/50166400621</guid><pubDate>Sat, 11 May 2013 07:17:00 -0700</pubDate></item><item><title>Lots of improvements in the pipeline</title><description>&lt;p&gt;As many of you probably know, &lt;a href="http://lea.verou.me/" target="_blank"&gt;I&lt;/a&gt;’ve started working for &lt;a href="http://www.w3.org/community/devrel/" target="_blank"&gt;W3C Developer Relations&lt;/a&gt; since this August. Half of my time is devoted to &lt;a href="http://www.webplatform.org/" target="_blank"&gt;WebPlatform.org&lt;/a&gt;, a very promising project to document the web with the help of all major players, in a vendor-neutral way. Even before I joined &lt;a href="http://w3.org" target="_blank"&gt;W3C&lt;/a&gt;, we discussed using a hosted, customized version of &lt;a href="http://dabblet.com"&gt;dabblet&lt;/a&gt; in WebPlatform.org, as a platform for live code examples. I recently started working towards making this happen.&lt;/p&gt;
&lt;p&gt;A lot of changes and improvements need to be made to achieve this, but the good news is, most of these will be pushed to dabblet.com as well! In a nutshell, this is what I’m currently working on:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Adding JavaScript support — This will be a challenge UX-wise, as it shouldn&amp;#8217;t run on every keystroke, like the HTML and CSS, but it should run on startup and it should be straight-forward how to get it to run. Perhaps it will also run after a significant pause in typing.&lt;/li&gt;
&lt;li&gt;Dabblets that are not stored in Github, but get their data through POST requests.&lt;/li&gt;
&lt;li&gt;Improving cross-browser support&lt;/li&gt;
&lt;li&gt;Strengthening security&lt;/li&gt;
&lt;li&gt;Integrating &lt;a href="http://prismjs.com/" target="_blank"&gt;Prism&lt;/a&gt;. Dabblet’s syntax highlighter might have been Prism’s precursor, but currently Prism has solved many of its bugs, and these fixes need to be pushed to dabblet at some point.&lt;/li&gt;
&lt;li&gt;General bug fixing&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;These will probably be gradually rolled out in dabblet.com and tested by the community, before we integrate dabblet into WebPlatform.org. If a new feature is significant enough, there will be a new blog post about it here, but don’t expect blog posts about bugfixes. I’m really excited to see dabblet flourish, and I believe you will be too, once these updates are out!&lt;/p&gt;</description><link>http://blog.dabblet.com/post/35203393585</link><guid>http://blog.dabblet.com/post/35203393585</guid><pubDate>Wed, 07 Nov 2012 07:06:09 -0800</pubDate></item><item><title>User profiles come to dabblet</title><description>&lt;p&gt;For many months, dabblet was just a web application with hardly any social components and that seemed to work fine. However, discovering new interesting dabblets was a pain. While user profiles do not completely solve this, they are a step in the right direction and something that was requested multiple times in the past. They’re basically a wrapper around &lt;a href="https://github.com/LeaVerou" target="_blank"&gt;Github profiles&lt;/a&gt; combined with &lt;a href="https://gist.github.com/LeaVerou" target="_blank"&gt;a user’s Gist listings&lt;/a&gt;, presented in a way that’s more suitable for Dabblet (e.g. with previews and without all the non-dabblet gists).&lt;/p&gt;
&lt;p&gt;Accessing a user profile can be done in a number of different ways:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;You can access your own profile if you are logged in, by using the menu under your username and selecting &amp;#8220;My profile&amp;#8221;:&lt;br/&gt;&lt;img src="http://media.tumblr.com/tumblr_m6vbr1Bte71r4e45m.png"/&gt;&lt;/li&gt;
&lt;li&gt;If you are viewing a dabblet by someone else, you can access their profile through the cloud menu:&lt;br/&gt;&lt;img src="http://media.tumblr.com/tumblr_m6vc5xF17X1r4e45m.png"/&gt;&lt;br/&gt;Keep in mind that this UI might change very soon, as I&amp;#8217;m thinking of splitting the current dabblet info into its own panel.&lt;/li&gt;
&lt;li&gt;Through the user profile itself, for example when viewing followers and following.&lt;/li&gt;
&lt;/ul&gt;&lt;h4&gt;So what are these user profiles?&lt;/h4&gt;
&lt;p&gt;Each user profile includes information about the user, latest dabblets, followers and followed users. All this information is fetched from Github, through the Github API, client-side. Here are some screenshots from my own profile:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m6vdxgAFuq1r4e45m.png"/&gt;&lt;/p&gt;
&lt;p&gt;The dabblet previews were quite tough. For a while I&amp;#8217;ve been wondering how to do it. There is still no reasonably cross-browser way to capture an entire page as an image in the Web Platform set of tools. I had thought of iframes, but dismissed the idea without testing as &amp;#8220;too performance intensive&amp;#8221;. However, when I was at Front Trends 2012, I had a chat with &lt;a href="http://css-tricks.com/" target="_blank"&gt;Chris Coyier&lt;/a&gt; who was working on his (then still in private beta) &lt;a href="http://codepen.io" target="_blank"&gt;CodePen&lt;/a&gt;. He told me they solved this in CodePen via iframes and the performance seemed reasonable. So, when I got some time to work on it, I tested it for myself and it does, indeed, seem reasonable. I guess it might be a bit laggy on older machines, but hopefully still bearable.&lt;/p&gt;
&lt;p&gt;The dabblets are rendered in a 800×600 viewport and then scaled back to 400×300 through CSS scale transforms on the iframes. To minimize the number of requests to Github, I also implemented a lazy loading system that only loads the previews when they are actually visible on the screen and not e.g. scrolled off it. Also, to improve client-side performance the iframes are loaded one by one and not in parallel. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m6vdy7arSg1r4e45m.png"/&gt;&lt;/p&gt;
&lt;p&gt;On all three tabs 30 items at most are displayed initially, and you can click on the &amp;#8220;More&amp;#8221; button to load up to 30 more every time. This page size is hardcoded by Github and it seems there is no way to change it. &lt;/p&gt;
&lt;p&gt;Furthermore, although the page size in the &amp;#8220;Followers&amp;#8221; and &amp;#8220;Following&amp;#8221; tabs is exactly 30, in the &amp;#8220;Dabblets&amp;#8221; page it could anything from 0 to 30. This is because there is no way to tell which gists are dabblets until actually fetching them and checking the file names. &lt;/p&gt;
&lt;h4&gt;Interesting user profiles&lt;/h4&gt;
&lt;p&gt;To play a bit with them yourself, I&amp;#8217;ve included links to my profile and some other interesting profiles below:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://dabblet.com/user/LeaVerou" target="_blank"&gt;Lea Verou&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dabblet.com/user/kizu" target="_blank"&gt;Roman Komarov&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dabblet.com/user/chriscoyier" target="_blank"&gt;Chris Coyier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dabblet.com/user/desandro" target="_blank"&gt;David DeSandro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dabblet.com/user/pepelsbey" target="_blank"&gt;Vadim Makeev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dabblet.com/user/bigbosssnk" target="_blank"&gt;bigbossSNK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dabblet.com/user/bennyschudel" target="_blank"&gt;Benny Schudel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;If you know of any other users with a lot of interesting experiments on Dabblet let me know and I’ll add them to the list.&lt;/p&gt;
&lt;h4&gt;Github API limitations :(&lt;/h4&gt;
&lt;p&gt;The Github API, although elegant in what it supports, it showed its limits a lot while I was developing this page. For example, to name a few:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;I can&amp;#8217;t display more information about the following or followed users without making one request per user, as the only info returned is their avatar and username. &lt;/li&gt;
&lt;li&gt;There doesn&amp;#8217;t seem to be a way to check if user A follows user B, unless user A is the currently logged in user. So, although I wanted to show whether the user whose profile you are viewing is following you back, I can&amp;#8217;t. &lt;/li&gt;
&lt;li&gt;The inability to only fetch dabblets and not gists in general is quite crippling. For example, I can&amp;#8217;t make a page with the latest dabblets, since I can only fetch the latest gists and I would guess only a tiny percentage of them is actually dabblets.&lt;/li&gt;
&lt;li&gt;I would love to create a page with &amp;#8220;hot&amp;#8221; dabblets that would fetch predefined dabblets off a list of gist ids. However, that would involve sending a separate request for every item on the list, and I&amp;#8217;d guess that would hit the hourly rate limit quite quickly.&lt;/li&gt;
&lt;li&gt;I would love to show how many times a dabblet has been starred and even rank dabblets by popularity. I can&amp;#8217;t do either.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;I hope Github API expands in the future and shifts some of these limitations, since the small set of calls it already supports is a real pleasure to work with. &lt;/p&gt;</description><link>http://blog.dabblet.com/post/26804815305</link><guid>http://blog.dabblet.com/post/26804815305</guid><pubDate>Sun, 08 Jul 2012 19:40:00 -0700</pubDate></item><item><title>Dabblets now degrade gracefully in non-CORS browsers</title><description>&lt;p&gt;Following &lt;a href="https://github.com/LeaVerou/dabblet/issues/162" target="_blank"&gt;a suggestion by Roman Komarov&lt;/a&gt; (&lt;a href="http://twitter.com/kizmarh" target="_blank"&gt;@kizmarh&lt;/a&gt;), dabblet now redirects to the full page result when viewing saved dabblets in non-CORS browsers such as Opera 11.6 or IE9. &lt;/p&gt;</description><link>http://blog.dabblet.com/post/21209438436</link><guid>http://blog.dabblet.com/post/21209438436</guid><pubDate>Mon, 16 Apr 2012 06:40:29 -0700</pubDate></item><item><title>New feature: Custom font size per dabblet</title><description>&lt;p&gt;A new setting has landed in dabblet: &lt;strong&gt;Custom font size&lt;/strong&gt;! It’s incredibly useful for presentations, where you might want to show the code at a very large font size. Also, it makes it possible to adjust the presentation of very small or large demos to give them a more suitable font size.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m2kpmybRgC1r4e45m.png"/&gt;&lt;/p&gt;
&lt;p&gt;The setting is &lt;strong&gt;saved with every dabblet&lt;/strong&gt;, so when you share one, you are also sharing its font size. Of course, the viewer can choose to change it if your chosen font size is uncomfortable. You may also &lt;strong&gt;change your default local setting&lt;/strong&gt; the usual way: just set it on a new, unsaved dabblet. Dabblets saved before this feature was added will be displayed with the viewer&amp;#8217;s local setting.&lt;/p&gt;
&lt;p&gt;The new setting can be triggered by keyboard shortcuts:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Cmd/Ctrl + +&lt;/strong&gt; increases font size&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cmd/Ctrl + -&lt;/strong&gt; decreases font size&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cmd/Ctrl + 0&lt;/strong&gt; resets the font size to the default&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;This were also added in the &lt;a href="http://dabblet.com/help/#keyboard" target="_blank"&gt;help section&lt;/a&gt;, along with the rest of the keyboard shortcuts.&lt;/p&gt;
&lt;p&gt;To avoid interfering with the browser default shortcuts, these only apply in editing mode (i.e. when a code area is focused).&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This feature is available in the GUI only in browsers that natively support HTML5 slider controls (&amp;lt;input type=&amp;#8221;range&amp;#8221; /&amp;gt;), which currently are WebKit-based browsers, Opera and IE10. In non-supporting browsers, dabblets will still be displayed with their saved font size and the keyboard shortcuts will work, it just isn&amp;#8217;t settable through a UI.&lt;/p&gt;</description><link>http://blog.dabblet.com/post/21208581503</link><guid>http://blog.dabblet.com/post/21208581503</guid><pubDate>Mon, 16 Apr 2012 06:07:00 -0700</pubDate><category>update</category></item><item><title>Full page result is now on its own subdomain</title><description>&lt;p&gt;So, for example to view the full page result for dabblet &lt;a href="http://dabblet.com/gist/2191425" target="_blank"&gt;#2191425&lt;/a&gt; you will now go to:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://result.dabblet.com/gist/2191425"&gt;http://result.dabblet.com/gist/2191425&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;instead of:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dabblet.com/result/gist/2191425"&gt;http://dabblet.com/result/gist/2191425&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Obviously, the new syntax is prettier, more in line with URL conventions and more consistent with regular dabblet URLs. However, this was not the primary motivation behind the change. The new syntax is more secure, preventing malicious dabblets from injecting JavaScript and stealing your access token. Don&amp;#8217;t worry, there was no such incident so far. But I wanted to ensure it wouldn&amp;#8217;t happen in the future either. :)&lt;/p&gt;
&lt;p&gt;The old URLs will still work, 301-redirecting to the new ones.&lt;/p&gt;
&lt;p&gt;No idea what this is? The full page result helps you test your demo in browsers that might not be fully supported by dabblet for authoring. For example mobile browsers, old browsers, Opera &amp;lt; 12 etc. It&amp;#8217;s also better for providing a testcase with bug reports, as the developers won&amp;#8217;t have to dig through the dabblet UI to debug. Apart from the above URLs, you can access it from the cloud menu by selecting the option &amp;#8220;View full page result&amp;#8221;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m2keq193wg1r4e45m.png"/&gt;&lt;/p&gt;</description><link>http://blog.dabblet.com/post/21203881571</link><guid>http://blog.dabblet.com/post/21203881571</guid><pubDate>Mon, 16 Apr 2012 02:06:00 -0700</pubDate><category>update</category><category>security</category></item><item><title>View all panes at once and other updates</title><description>&lt;p&gt;One of the most frequent requests I get for dabblet is being able to see CSS, HTML and Result all at once, similar to how &lt;a href="http://jsbin.com/" target="_blank"&gt;JSBin&lt;/a&gt; and &lt;a href="http://jsfiddle.net/" target="_blank"&gt;JSFiddle&lt;/a&gt; work. As you probably know if you&amp;#8217;re following this blog, I &lt;a href="http://blog.dabblet.com/post/14768400057/new-feature-in-upcoming-dabblet-v1-1-complete"&gt;was planning&lt;/a&gt; to allow full customization of the number and layout of the tabs, and I&amp;#8217;ve already implemented this in the &lt;a href="https://github.com/LeaVerou/dabblet/tree/labs" target="_blank"&gt;experimental branch&lt;/a&gt; (albeit a bit buggily).&lt;/p&gt;
&lt;p&gt;However, something inside me was preventing me from polishing it and pushing it to the main branch. Sometimes, allowing full customization is not the best option. It&amp;#8217;s usually just an excuse to help UX designers avoid hard dilemmas. Who can blame them, after all, there will always be users that will disagree with any possible decision and I can understand trying to avoid that by giving full power to the user. &lt;/p&gt;
&lt;p&gt;However, one of the basic UX principles is that what users ask is not always what they want. Giving this kind of power to users adds clutter. Clutter that can be avoided with decisions that will please the vast majority of users, even if some of them will dislike them. The fewer settings an application has, the less users will feel utterly lost while trying to configure it. I strongly believe that a setting should be a last resort, only after there is sufficient evidence that there is no decision that will please most users.&lt;/p&gt;
&lt;p&gt;So, I decided today to simply add an &amp;#8220;All&amp;#8221; tab, which would display all panes at once, and delay full customization (indefinitely? Honestly, I don&amp;#8217;t know). It shows all three panes in every view (separate, vertical split, horizontal split) with a different layout in each. The following screenshot is from the &amp;#8220;separate&amp;#8221; view. Since there was nothing sensible to do for that tab in that view, I picked something that seemed useful:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lzu0i1I9561r4e45m.png"/&gt;&lt;/p&gt;
&lt;p&gt;While I was at it, I added transitions on the panes, so that they animate when switching views or tabs.&lt;/p&gt;
&lt;p&gt;Another change I made is that the &amp;#8220;Behind code&amp;#8221; mode was removed from views and is now a checkbox that applies to every view:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lzu0ld2EZL1r4e45m.png"/&gt;&lt;/p&gt;
&lt;p&gt;I didn&amp;#8217;t add code for backwards compatibility with existing dabblets that used the old &amp;#8220;Behind code&amp;#8221; view, as those are very few and it&amp;#8217;s super easy to update them.&lt;/p&gt;
&lt;p&gt;Another small change is that now, in large screens where the top bar doesn&amp;#8217;t autohide, the tabs are now contained inside the top bar rather than being on top of the panes:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lzu1r9zVYh1r4e45m.png"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; To fully get the changes you may need to hard refresh (or delete cache) and perhaps even change the view mode at least once, to clear incompatible stored settings. Yes, I could spend some time to save you from that hassle, but I guess you prefer me to spend my time in making dabblet better, right? :)&lt;/p&gt;
&lt;p&gt;Hope you like the changes. Please note that like every update, there might be bugs at first, so I&amp;#8217;ll be waiting for your &lt;a href="https://github.com/LeaVerou/dabblet/issues" target="_blank"&gt;bug reports&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.dabblet.com/post/18119520944</link><guid>http://blog.dabblet.com/post/18119520944</guid><pubDate>Wed, 22 Feb 2012 22:29:52 -0800</pubDate><category>update</category></item><item><title>Always visible menu bar for larger screens</title><description>&lt;p&gt;One of the most frequent complaints I get about dabblet&amp;#8217;s UI is that the top menu bar auto-hides.&lt;/p&gt;
&lt;p&gt;This saves a lot on vertical space (and looks nice when closed), but I can see how it can be annoying. However, I hate preferences creep more than anything, so I was reluctant to add an extra setting for that, even when &lt;a href="https://github.com/LeaVerou/dabblet/pull/85" target="_blank"&gt;others did it for me&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;However, today I came up with an idea: You don&amp;#8217;t really need this kind of space parsimony on large screens, do you? In those cases, being easy and quick to use are more important than saving screen real estate, which we have an abundance of. So, I used a simple media query (&lt;code&gt;@media (min-height: 799px) and (min-width: 1000px)&lt;/code&gt;) which makes the header always visible when active (i.e. on large enough windows). :)&lt;/p&gt;</description><link>http://blog.dabblet.com/post/17738897602</link><guid>http://blog.dabblet.com/post/17738897602</guid><pubDate>Thu, 16 Feb 2012 16:50:00 -0800</pubDate><category>update</category></item><item><title>Linking to individual revisions</title><description>&lt;p&gt;You can now link to individual dabblet revisions, which is ideal for tutorials. Check these revisions of the same dabblet:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dabblet.com/gist/1695733/c68f732103cd030eda63ce3ba8bdbc88c4463ee4"&gt;http://dabblet.com/gist/1695733/c68f732103cd030eda63ce3ba8bdbc88c4463ee4&lt;/a&gt;&lt;br/&gt;&lt;a href="http://dabblet.com/gist/1695733/a82c6bbf13a1fbd9ec56141b16504060ec98a57c%C2%A0"&gt;http://dabblet.com/gist/1695733/a82c6bbf13a1fbd9ec56141b16504060ec98a57c &lt;/a&gt;&lt;br/&gt;&lt;a href="http://dabblet.com/gist/1695733/1e949dd3c1566124ef606cacd7fa8b5564502365"&gt;http://dabblet.com/gist/1695733/1e949dd3c1566124ef606cacd7fa8b5564502365&lt;/a&gt;&lt;br/&gt;&lt;a href="http://dabblet.com/gist/1695733/a60ee572806770e2dd19ff33a10d3aef3c138d63"&gt;http://dabblet.com/gist/1695733/a60ee572806770e2dd19ff33a10d3aef3c138d63&lt;/a&gt;&lt;br/&gt;&lt;a href="http://dabblet.com/gist/1695733/4745f5592f273fd96a6ea1255ac6959dbf310c43"&gt;http://dabblet.com/gist/1695733/4745f5592f273fd96a6ea1255ac6959dbf310c43&lt;/a&gt;&lt;br/&gt;&lt;a href="http://dabblet.com/gist/1695733/ed2e6efc272146f3d728e65341f4f51a91e65e03%C2%A0"&gt;http://dabblet.com/gist/1695733/ed2e6efc272146f3d728e65341f4f51a91e65e03 &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To find the version hash of each revision, you have to visit the gist page (by clicking &amp;#8220;View gist&amp;#8221; on the menu) and click on the revision from the sidebar:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lyj2r2Ae7F1r4e45m.png"/&gt;&lt;/p&gt;
&lt;p&gt;Then, take a look at the URL, the hash will be there, after the gist ID.&lt;/p&gt;
&lt;p&gt;Of course the same functionality applies to the server-side generated results. Example: http://dabblet.com/result/gist/1695733/1e949dd3c1566124ef606cacd7fa8b5564502365&lt;/p&gt;</description><link>http://blog.dabblet.com/post/16658268154</link><guid>http://blog.dabblet.com/post/16658268154</guid><pubDate>Sat, 28 Jan 2012 14:21:49 -0800</pubDate><category>update</category></item><item><title>Dabblet’s first month in review</title><description>&lt;p&gt;Dabblet turned one month old four days ago, on January 15th. The response from the community has been overwhelming, thousands of people are using it daily to create and share CSS and HTML experiments and in some cases even entire website templates.&lt;/p&gt;
&lt;p&gt;As for the numbers, dabblet got &lt;strong&gt;4K unique visitors on its first day and 11K on its second&lt;/strong&gt;. During its first month, it got a total of &lt;strong&gt;65K unique visitors and 90K visits&lt;/strong&gt;. It also got almost &lt;a href="https://twitter.com/#!/dabblet" target="_blank"&gt;600 twitter followers&lt;/a&gt;. At least &lt;a href="http://topsy.com/dabblet.com" target="_blank"&gt;845 tweets&lt;/a&gt; were linking to it.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;d like to thank you all for your support, and I promise I will do my best to keep improving dabblet.&lt;/p&gt;</description><link>http://blog.dabblet.com/post/16096836069</link><guid>http://blog.dabblet.com/post/16096836069</guid><pubDate>Wed, 18 Jan 2012 19:05:00 -0800</pubDate></item><item><title>Dabblet update: URL &amp; Entity previewers, subtle scrollbars and more</title><description>&lt;p&gt;I decided that rather than working on a separate experimental branch and eventually merging the whole thing with the mainstream version of dabblet, to keep them both separate and integrate features from the experimental branch once they mature.&lt;/p&gt;
&lt;p&gt;So, today I&amp;#8217;ve integrated some features that seemed stable enough in the private beta:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.dabblet.com/post/14862207076/url-and-entity-previewers-in-upcoming-dabblet-v1-1"&gt;URL &amp;amp; entity previewers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Nicer scrollbars in Webkit. &lt;a href="https://twitter.com/juliencabanes"&gt;Julien Cabanes&lt;/a&gt; helped with that by figuring out a clever way to give spacing between the scrollbar and the edge of the editing area.&lt;/li&gt;
&lt;li&gt;Nicer checkboxes in Webkit&lt;/li&gt;
&lt;li&gt;Help is now &lt;a href="http://dabblet.com/help" target="_blank"&gt;a separate section&lt;/a&gt;, in order to make the actual application lighter&lt;/li&gt;
&lt;li&gt;Changed the save icon to something more current than a floppy disk&lt;/li&gt;
&lt;li&gt;Ampersand in font stack previews&lt;/li&gt;
&lt;li&gt;Font stack previews now show both normal and italic font-styles, since many fonts are entirely different when italicized (especially serif fonts).&lt;/li&gt;
&lt;li&gt;Transitions for showing and hiding the previewers&lt;/li&gt;
&lt;li&gt;More polished transitions for the tabs&lt;/li&gt;
&lt;li&gt;More robust header positioning&lt;/li&gt;
&lt;li&gt;&amp;#8220;New dabblet&amp;#8221; menu command moved to top to match established conventions&lt;/li&gt;
&lt;li&gt;Removed annoying confirmation popup before the page was closed. It didn&amp;#8217;t serve any purpose anyway, as unsaved edits are saved in localStorage anyway.&lt;/li&gt;
&lt;li&gt;A number of bug fixes&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lxcl3mUGWK1r4e45m.png"/&gt;&lt;/p&gt;
&lt;p&gt;Sadly, &lt;a href="http://blog.dabblet.com/post/14944435974/coming-in-dabblet-v1-1-current-line-highlight"&gt;line numbers&lt;/a&gt; and &lt;a href="http://blog.dabblet.com/post/14768400057/new-feature-in-upcoming-dabblet-v1-1-complete"&gt;tab templating&lt;/a&gt; didn&amp;#8217;t make it. I think they need to be tested a bit more, as they involve major code changes.&lt;/p&gt;
&lt;p&gt;Hope you like the changes! As always, please report any bugs on &lt;a href="https://github.com/LeaVerou/dabblet/issues" target="_blank"&gt;dabblet&amp;#8217;s bug tracker&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.dabblet.com/post/15365786713</link><guid>http://blog.dabblet.com/post/15365786713</guid><pubDate>Thu, 05 Jan 2012 15:03:00 -0800</pubDate></item><item><title>Coming in dabblet v1.1: Current line highlight &amp; number. I...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lwxvyovOfn1r8m4fwo1_400.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;Coming in dabblet v1.1: Current line highlight &amp; number.&lt;/strong&gt; I think most use cases of line numbers are covered by knowing the current line number (McRabbit’s Espresso knows this, and dims the other line numbers a lot), so I can avoid adding that kind of clutter. &lt;/p&gt;</description><link>http://blog.dabblet.com/post/14944435974</link><guid>http://blog.dabblet.com/post/14944435974</guid><pubDate>Wed, 28 Dec 2011 16:27:59 -0800</pubDate><category>teaser</category><category>update</category><category>ui</category></item><item><title>URL and entity previewers in upcoming dabblet v1.1</title><description>&lt;p&gt;&lt;a href="http://dribbble.com/shots/364459-dabblet-v1-1-URL-previewer"&gt;&lt;img alt="URL previewer" height="300" src="http://dribbble.com/system/users/13039/screenshots/364459/screen_shot_2011-12-27_at_16.20.43_.png?1324995743" width="400"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A URL previewer was a very common request. I had my qualms at first but I decided it&amp;#8217;s useful enough to outweigh the disadvantages. It should work for everything displayable in an &amp;lt;img&amp;gt; element, including SVGs and data: URIs.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dribbble.com/shots/364455-dabblet-v1-1-Entity-preview" target="_blank"&gt;&lt;img alt="Entity previewer" height="300" src="http://dribbble.com/system/users/13039/screenshots/364455/screen_shot_2011-12-27_at_16.13.42_.png?1324995356" width="400"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Along with that, I&amp;#8217;ve also implemented an entity previewer, which is useful when you&amp;#8217;re not sure whether you remember an HTML or CSS entity correctly.&lt;/p&gt;</description><link>http://blog.dabblet.com/post/14862207076</link><guid>http://blog.dabblet.com/post/14862207076</guid><pubDate>Tue, 27 Dec 2011 06:38:21 -0800</pubDate><category>UI</category><category>previewers</category><category>teaser</category><category>update</category></item><item><title>New feature in upcoming dabblet v1.1: Complete control over...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lwrox4YNaz1r8m4fwo1_400.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;New feature in upcoming dabblet v1.1: Complete control over number and layout of tabs. The “template” accepts a syntax similar to what the &lt;a href="http://dev.w3.org/csswg/css3-grid-align/#grid-template-property" title="Definition of the grid-template property from the CSS3 Grid Layout module" target="_blank"&gt;&lt;code&gt;grid-template&lt;/code&gt;&lt;/a&gt; property does, assuming &lt;strong&gt;r&lt;/strong&gt; is for the result pane, &lt;strong&gt;c&lt;/strong&gt; is for the CSS pane and &lt;strong&gt;h&lt;/strong&gt; is for the HTML pane.&lt;/p&gt;
&lt;p&gt;The “see through code” option will make the result full-size and the code will have a transparent background through which the result can be seen. Similar to current “Behind code” view but more customizable.&lt;/p&gt;</description><link>http://blog.dabblet.com/post/14768400057</link><guid>http://blog.dabblet.com/post/14768400057</guid><pubDate>Sun, 25 Dec 2011 08:10:00 -0800</pubDate><category>teaser</category><category>update</category><category>UI</category><category>UX</category></item></channel></rss>
