<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DUADQ3Y5eSp7ImA9WhBbE0w.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963</id><updated>2013-05-12T03:16:12.821+03:00</updated><category term="Development" /><category term="Carbon" /><category term="GitHub" /><category term="App" /><category term="Lion" /><category term="CodeBox" /><category term="Release" /><category term="Gist" /><category term="Cocoa" /><category term="Update" /><category term="Design" /><category term="textExpander" /><category term="CodeBar" /><category term="Snipplr" /><category term="CodeBox 2" /><category term="ResolutionTab" /><category term="PNG Compressor" /><category term="Web" /><title>In Code We Trust</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.shpakovski.com/" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/shpakovski/blog" /><feedburner:info uri="shpakovski/blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0EGQno-eSp7ImA9WhJaFEs.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-7875523701738501961</id><published>2012-10-05T22:29:00.000+03:00</published><updated>2012-10-05T22:33:43.451+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-05T22:33:43.451+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ResolutionTab" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><title>ResolutionTab 1.1 brings missed features</title><content type="html">&lt;img style="float: left; margin-right: 20px; margin-bottom: 5px;" src="http://s3.amazonaws.com/retinatab/icon.png" width="120" height="120"/&gt;

&lt;p&gt;&lt;a href="http://resolutiontab.com"&gt;ResolutionTab&lt;/a&gt; was released one month ago and has been pretty successful for such a simple developer tool. It has got very positive feedback in the Mac App Store and was even &lt;a href="http://lifehacker.com/5945942/resolutiontab-enables-hidpi-mode-on-your-non+retina-mac"&gt;reviewed at Lifehacker&lt;/a&gt;. After receiving your feedback and feature requests, I implemented some improvements to make this tool even more useful.&lt;/p&gt;

&lt;p&gt;First, it turned out it is possible to enable the checkbox Launch at Login in the sandboxed environment. If you are a Cocoa developer and looking for information on this topic, the following resources should be useful: &lt;a href="http://www.delitestudio.com/2011/10/25/start-dockless-apps-at-login-with-app-sandbox-enabled/"&gt;Start dockless apps at login with App Sandbox enabled&lt;/a&gt;, &lt;a href="http://stackoverflow.com/questions/11292058/how-to-add-a-sandboxed-app-to-the-login-items"&gt;How to add a sandboxed app to the login items&lt;/a&gt; and &lt;a href="http://stackoverflow.com/questions/11212796/sandboxing-login-items-and-launch-app"&gt;Sandboxing, login items and launch App&lt;/a&gt;. All of these resources resulted in a new checkbox in the Preferences panel allowing to launch ResolutionTab automatically when you on log in.&lt;/p&gt;

&lt;p&gt;Next, the menubar icon is usually invisible when an active app menu is too wide and you are working on a MacBook. To make switching still possible, the new version adds support for the global keyboard shortcut. Now there is no need to click the status icon. You define the hotkey and then press it in any app to switch from the standard display mode to HiDPI and vice versa. By the way, if you are developing Mac app and need a control for hotkeys, check out my GitHub project &lt;a href="https://github.com/shpakovski/MASShortcut"&gt;MASShortcut&lt;/a&gt;. Recent commits introduce new options for appearance of the input view.&lt;/p&gt;

&lt;p&gt;In addition, the app now watches for recently used display modes and enables switching between the two most popular much easier by putting them into the main menu. This allows to return back to the previously selected resolution, even if it is not ultra-high, in one click or hotkey press.&lt;/p&gt;

&lt;p&gt;Finally, not all users could find an Option-Click on the icon to switch between all available display modes. In the new update, the global menu is redesigned and now it has all available modes under the submenu. This will also make the app more convenient for MacBook Pro with Retina display. That's it.&lt;/p&gt;

&lt;p&gt;Check out an update of ResolutionTab 1.1 &lt;a href="http://itunes.apple.com/us/app/resolutiontab/id540141595?ls=1&amp;mt=12"&gt;in the Mac App Store&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/KNfOE43sm6A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/7875523701738501961/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2012/10/resolutiontab-update-with-improved-preferences-menu-and-global-keyboard-shortcuts.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/7875523701738501961?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/7875523701738501961?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/KNfOE43sm6A/resolutiontab-update-with-improved-preferences-menu-and-global-keyboard-shortcuts.html" title="ResolutionTab 1.1 brings missed features" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.shpakovski.com/2012/10/resolutiontab-update-with-improved-preferences-menu-and-global-keyboard-shortcuts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8MSHkyeSp7ImA9WhJWFkg.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-4077323702890072659</id><published>2012-08-22T17:44:00.001+03:00</published><updated>2012-08-22T20:01:29.791+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-22T20:01:29.791+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Web" /><category scheme="http://www.blogger.com/atom/ns#" term="App" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Cocoa" /><category scheme="http://www.blogger.com/atom/ns#" term="Design" /><title>ResolutionTab: switch between Standard and Retina modes in one click</title><content type="html">&lt;img style="float: left; margin-right: 20px; margin-bottom: 5px;" src="http://s3.amazonaws.com/retinatab/icon.png" width="120" height="120"/&gt;

&lt;p&gt;Devices with Retina displays are the future. Apple introduced iPhone and iPad with double resolution screens a long time ago, but the small sizes allowed software makers to ignore @2x graphics. Things changed rapidly when Apple introduced the new MacBook Pro with a Retina display. Now you simply can't ignore ultrahigh-resolution displays when developing new software.&lt;/p&gt;

&lt;p&gt;To help developers and designers with older Macs, Apple has added support for additional display modes (named HiDPI) in OS X 10.8. You have to install Xcode and launch its Quartz Debug tool to enable the virtual modes system-wide. Then you will be able to switch between standard and @2x graphics using the Displays pane in System Preferences. This is the way you can test how a website or an app will look on the modern devices.&lt;/p&gt;

&lt;p&gt;When you configure your display in System Preferences however, it takes plenty of time to switch from the standard to HiDPI mode and vice versa. It would be much better if the process was automated or simplified in some way. And here we go.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://resolutiontab.com"&gt;ResolutionTab&lt;/a&gt; is a minimal app living in the menu bar. It allows you to switch between real and virtual display modes right from the menu bar. ResolutionTab requires OS X 10.8 and Xcode to enable virtual HiDPI modes in OS X.&lt;/p&gt;

&lt;p style="text-align:center;"&gt;&lt;a style="padding:5px 10px; margin: 5px 10px; border: solid 1px #AAAABB; color: #990000;" href="http://itunes.apple.com/us/app/resolutiontab/id540141595?ls=1&amp;mt=12"&gt;Download in the Mac App Store&lt;/a&gt;&lt;/p&gt;

&lt;br /&gt;

&lt;p&gt;Special thanks to &lt;a href="http://twitter.com/solonsky"&gt;@solonsky&lt;/a&gt;, &lt;a href="http://twitter.com/gregdougherty"&gt;@gregdougherty&lt;/a&gt;, &lt;a href="http://twitter.com/pieteromvlee"&gt;@pieteromvlee&lt;/a&gt;, &lt;a href="http://twitter.com/ruiaureliano"&gt;@ruiaureliano&lt;/a&gt; and &lt;a href="http://twitter.com/philipbruce"&gt;@philipbruce&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/6_iayXIjTgw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/4077323702890072659/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2012/08/resolutiontab-switch-between-standard-and-retina-modes-in-one-click.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/4077323702890072659?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/4077323702890072659?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/6_iayXIjTgw/resolutiontab-switch-between-standard-and-retina-modes-in-one-click.html" title="ResolutionTab: switch between Standard and Retina modes in one click" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.shpakovski.com/2012/08/resolutiontab-switch-between-standard-and-retina-modes-in-one-click.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYNQX45cCp7ImA9WhJSGEk.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-4155385942882538910</id><published>2012-07-09T17:16:00.000+03:00</published><updated>2012-07-09T17:29:50.028+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-09T17:29:50.028+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GitHub" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Carbon" /><category scheme="http://www.blogger.com/atom/ns#" term="Cocoa" /><title>Global Keyboard Shortcuts in Cocoa</title><content type="html">&lt;p&gt;There is a lot of menu bar apps which display a panel with user interface when you click the menu bar icon. To make our life easier, these apps usually provide a global keyboard shortcut to access that panel without using your mouse.&lt;/p&gt;

&lt;p&gt;Other apps just run in background and wait while you press a hotkey to perform some action. Evernote, Fantastical, Clocks, LittleSnapper, Things… all of these use global shortcuts to do their work. But how to implement this feature in you own Mac app?&lt;/p&gt;

&lt;h4&gt;Problem&lt;/h4&gt;

&lt;p&gt;Unfortunately, there is no official Cocoa API like &lt;code&gt;NSGlobalShortcut&lt;/code&gt;. Instead, you have to deal with old low-level Carbon APIs to listen for global hotkeys, look &lt;a href="http://cocoasamurai.blogspot.com/2009/03/global-keyboard-shortcuts-with-carbon.html"&gt;here&lt;/a&gt; and &lt;a href="http://cocoatutorial.grapewave.com/2010/01/adding-a-hotkey-listener/"&gt;here&lt;/a&gt; to find more details.&lt;/p&gt;

&lt;p&gt;In addition, we would need a control like &lt;code&gt;NSGlobalShortcutView&lt;/code&gt; to enter and display keyboard shortcuts with special characters for Command, Option and Shift, something like &lt;a href="http://stackoverflow.com/a/8204355/26980"&gt;this&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;From the links I just posted, you may find that adding support for global keyboard shortcuts is a non-trivial task. You have to dive into the component architecture, copy many sources or framework into your project, and finally add many lines of code into your app.&lt;/p&gt;

&lt;h4&gt;Solution&lt;/h4&gt;

&lt;p&gt;I always wanted to have something more lightweight and easy to use, something modern, something that will have simple APIs with blocks. And here we go, I would like to share a “framework” &lt;a href="https://github.com/shpakovski/MASShortcut"&gt;MASShortcut&lt;/a&gt;. I use it in my own apps &lt;a href="http://www.shpakovski.com/codebox/"&gt;CodeBox&lt;/a&gt; and &lt;a href="http://www.shpakovski.com/hunting/"&gt;Hunting&lt;/a&gt;, all code is compatible with latest OS X 10.7, with the Mac App Store and its sandboxed environment. So I hope you will find it useful :)&lt;/p&gt;

&lt;h4&gt;Usage&lt;/h4&gt;

&lt;p&gt;To use MASShortcut in a Cocoa app, git clone the repository from GitHub, link to the &lt;code&gt;Carbon.framework&lt;/code&gt; in Xcode and drag all Objective-C files into your project. Then insert a custom view of 19 pixels height into XIB and set its class to &lt;code&gt;MASShortcutView&lt;/code&gt;. Next, import &lt;code&gt;"MASShortcutView+UserDefaults.h"&lt;/code&gt; into the view controller and ask the shortcut view to read and store a hotkey in user preferences automatically. That's it for the UI part.&lt;/p&gt;

&lt;p&gt;To listen for the global hotkey stored in user preferences, you have to import &lt;code&gt;"MASShortcut+UserDefaults.h"&lt;/code&gt; into the application delegate, for example. And then provide a block of code to execute when the user presses that global hotkey. This is really easy as you can see in README:&lt;/p&gt;

&lt;p style="text-align:center;"&gt;&lt;a style="padding:5px 10px; margin: 5px 10px; border: solid 1px #AAAABB; color: #990000;" href="https://github.com/shpakovski/MASShortcut"&gt;MASShortcut on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I built a simple application which demonstrates MASShortcut in action, please check &lt;a href="https://github.com/shpakovski/MASShortcutDemo"&gt;MASShortcutDemo&lt;/a&gt; on GitHub and let me know if you have any questions or suggestions, — &lt;a href="http://twitter.com/vadimshpakovski"&gt;@vadimshpakovski&lt;/a&gt; in Twitter.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/Fs6RTZQspsE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/4155385942882538910/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2012/07/global-keyboard-shortcuts-in-cocoa.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/4155385942882538910?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/4155385942882538910?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/Fs6RTZQspsE/global-keyboard-shortcuts-in-cocoa.html" title="Global Keyboard Shortcuts in Cocoa" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>6</thr:total><feedburner:origLink>http://blog.shpakovski.com/2012/07/global-keyboard-shortcuts-in-cocoa.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcNSXk6cCp7ImA9WhVXEUs.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-334462236026543501</id><published>2012-04-10T21:15:00.001+03:00</published><updated>2012-04-11T19:34:58.718+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-11T19:34:58.718+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="PNG Compressor" /><title>PNG Compressor 1.1</title><content type="html">&lt;img style="float: left; margin-right: 20px; margin-bottom: 5px;" src="http://dl.dropbox.com/u/1052853/Compressor128x128.png" width="128" height="128"/&gt;
 
&lt;p&gt;An update 1.1 is available for downloading in the Mac App Store. Special thanks to the people who helped me with beta testing. &lt;!--Václav Vančura, you are the best :)--&gt;&lt;/p&gt;

&lt;p&gt;After analyzing all user feedback from the last release, I did my best to meet all possible requirements. There are quite a lot of new features, so I'm going to review some of them.&lt;/p&gt;

&lt;h4&gt;Compression Queue&lt;/h4&gt;

&lt;p&gt;&lt;a href="http://blog.shpakovski.com/2011/05/png-compressor-10.html"&gt;Last version&lt;/a&gt; included only one compression tool embedded. OptiPNG is a great console utility, but its compression method could work not very good for particular PNG images. So you reasonably asked to include optional tools. Unfortunately, some of the best utilities use GPL license. In other words, it is hard to deal with embedding these tools into the commercial app.&lt;/p&gt;

&lt;p&gt;So I decided to provide ability to build your own list of compression tools, be it pngcrush, advpng or any other binary that can be executed in Terminal. Everything you need to make your own decent PNG compressor is in Preferences. Open the Queue tab to configure any number of terminal apps in any preferred way.&lt;/p&gt;

&lt;p&gt;By default, there is only one “standard” executable &lt;code&gt;optipng&lt;/code&gt;. Click the Add button to append another binary and configure its command line arguments. You can duplicate and reorder items to play with compression results until you find the best combination. I know it's a bit geeky, but we get unlimited options and total control on compression workflow.&lt;/p&gt;

&lt;p style="text-align: center;"&gt;&lt;img src="http://dl.dropbox.com/u/1052853/Queue-474x440.png" width="474" height="440"/&gt;&lt;/p&gt;

&lt;h4&gt;Automatic compression&lt;/h4&gt;

&lt;p&gt;When you work on a project, it may contain graphics that you have to compress all the time. Drag and drop is easy but may become annoying. Version 1.1 provides a better way to deal with this. In the Advanced preference pane, you can choose a folder that should be tracked by PNG Compressor. Once this feature is enabled, all new PNG images that appear in that chosen folder will be compressed automatically.&lt;/p&gt;

&lt;p&gt;Select &lt;code&gt;~/Desktop/&lt;/code&gt; if you often take snapshots auto-stored on the Desktop. The app will watch for new images and handle them immediately. Later, you can select any other directory while you work with it or reset selection to disable any folder tracking.&lt;/p&gt;

&lt;h4&gt;Silent compression&lt;/h4&gt;

&lt;p&gt;Drag and drop experience is very important. When you drag an image into the Dock icon, PNG Compressor will display its user interface and start compression automatically. However, you may prefer to not see any progress windows while dealing with something else.&lt;/p&gt;

&lt;p&gt;Now there is an option to disable auto-popup. Just drag your pic into the Dock icon and continue working in the recent app. Moreover, there is another option: the app can clear completed images automatically. Now we all set to make compression unobtrusive.&lt;/p&gt;

&lt;h4&gt;Thanks for your support!&lt;/h4&gt;

&lt;p&gt;I know there are many competitor apps that wrap console tools for image compression. Most of them are free. So I much appreciate your support of PNG Compressor. Its popularity driven by your amazing feedback surprised me to say at least. I hope the new version will make your workflow even faster and your apps even lighter.&lt;/p&gt;

&lt;p style="text-align:center;"&gt;&lt;a style="padding:5px 10px; margin: 5px 10px; border: solid 1px #AAAABB; color: blue;" href="http://itunes.apple.com/us/app/png-compressor/id434886325?mt=12"&gt;DOWNLOAD PNG COMPRESSOR&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/ex-bwDvhVPU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/334462236026543501/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2012/04/png-compressor-11.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/334462236026543501?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/334462236026543501?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/ex-bwDvhVPU/png-compressor-11.html" title="PNG Compressor 1.1" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.shpakovski.com/2012/04/png-compressor-11.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMEQH8-eCp7ImA9WhVQGEw.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-1077389139906488737</id><published>2012-04-07T19:38:00.000+03:00</published><updated>2012-04-07T19:50:01.150+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-07T19:50:01.150+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CodeBox 2" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><title>CodeBox 1.6</title><content type="html">&lt;p&gt;Hey guys, there is a new update of &lt;a href="http://www.shpakovski.com/codebox/"&gt;CodeBox&lt;/a&gt; available in the Mac App Store. Here is a brief overview of new features and one more thing.&lt;/p&gt;

&lt;h4&gt;Minimalistic View&lt;/h4&gt;

&lt;p&gt;This update brings support for displaying snippets in the table view as a list of plain items. Now it is much easier to manage snippets if you have hundreds of them. Check out the General preference pane.&lt;/p&gt;

&lt;h4&gt;External Editor&lt;/h4&gt;

&lt;p&gt;Previously CodeBox used a system default editor for each file type. However, it may be more convenient to edit snippets and source files in different apps. So, now CodeBox will remember which external editor you used last time.&lt;/p&gt;

&lt;h4&gt;Improved Tooltips&lt;/h4&gt;

&lt;p&gt;CodeBar always had an annoying drawback: it could cut snippet titles by ellipsis in the end. To make such long titles accessible, I improved tooltips for menu items. In addition, they include information about assets and notes.&lt;/p&gt;

&lt;hr/&gt;

&lt;h4&gt;&lt;span style="color:#990000"&gt;CodeBox 2&lt;/span&gt;&lt;/h4&gt;

&lt;p&gt;I believe it's time to announce that the new version of CodeBox is already in development. An upcoming OS X Mountain Lion, new APIs and requirements i.e. Sandboxing push my app forward. Thanks to your amazing feedback and suggestions, I am sure CodeBox 2 will be the best app I have ever worked on.&lt;/p&gt;

&lt;p&gt;If you enjoy CodeBox and want to take a participation in beta testing, please fill in the form. Thanks!&lt;/p&gt;

&lt;p style="text-align:center;"&gt;&lt;a style="padding:5px 10px; margin: 5px 10px; border: solid 1px #AAAABB; color: #990000;" href="https://docs.google.com/a/shpakovski.com/spreadsheet/viewform?formkey=dHhmOW11eXFLRUU2MElUY0paZEtzX0E6MQ#gid=0"&gt;SIGN UP FOR CODEBOX 2&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/Pf35aKWAjC8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/1077389139906488737/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2012/04/codebox-16.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/1077389139906488737?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/1077389139906488737?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/Pf35aKWAjC8/codebox-16.html" title="CodeBox 1.6" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>4</thr:total><feedburner:origLink>http://blog.shpakovski.com/2012/04/codebox-16.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMHSXc-fyp7ImA9WhVREko.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-4585759017422608267</id><published>2012-03-15T00:00:00.000+03:00</published><updated>2012-03-20T23:47:18.957+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-20T23:47:18.957+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Snipplr" /><category scheme="http://www.blogger.com/atom/ns#" term="Gist" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="Lion" /><title>CodeBox 1.5</title><content type="html">&lt;p&gt;I'm happy to announce that the new version of &lt;a href="http://www.shpakovski.com/codebox/"&gt;CodeBox&lt;/a&gt; is available for downloading. It brings some great features that you have requested recently together with minor improvements and bug fixes. Here is a brief overview of what is new.&lt;/p&gt;

&lt;h4&gt;Search through Code&lt;/h4&gt;

&lt;p&gt;You were able to filter and search only through snippet names and tags. Now you can search snippets and assets through code and notes. &lt;em&gt;This feature is available in a just released update 1.5.1.&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;Better OS X Lion integration&lt;/h4&gt;

&lt;p&gt;You could experience issues with Autosave and Versions previously. This update should fix all this stuff. In addition, a library window gets support for the Full Screen mode.&lt;/p&gt;

&lt;h4&gt;“Paste” button in the Edit Code panel&lt;/h4&gt;

&lt;p&gt;CodeBar supports very useful feature named Edit Code. You can edit placeholders before copying code into the Clipboard. With this new version, there is no more need to copy code manually. Now you can click the Paste button to insert code right into the active application automatically.&lt;/p&gt;

&lt;h4&gt;Social code sharing&lt;/h4&gt;

&lt;p&gt;It was one of the most requested features. In the new update, you are two clicks or one keyboard shortcut away from sharing snippets to &lt;a href="https://gist.github.com/"&gt;Gist&lt;/a&gt; and &lt;a href="http://snipplr.com"&gt;Snipplr&lt;/a&gt;. Please check out the menu commands under “Library ▸ Share”.&lt;/p&gt;

&lt;h4&gt;Newcomers, meet CodeBox&lt;/h4&gt;

&lt;p&gt;If you use another snippet manager or plugin, it's really easy to get started with CodeBox. Go to the “File ▸ New Library From” submenu. I added support for importing snippets from the most popular apps. Please &lt;a href="email:codebox@shpakovski.com"&gt;let me know&lt;/a&gt; if you miss some app.&lt;/p&gt;

&lt;h4&gt;Edit tags in many snippets&lt;/h4&gt;

&lt;p&gt;You might miss an option to assign the same tag to the multiple snippet selection. Now you can do this by dragging selected snippets into any tag in the Tags view.&lt;/p&gt;

&lt;h4&gt;Links in the Notes field&lt;/h4&gt;

&lt;p&gt;Since version 1.5, You can drag a file from Finder into the Asset Notes field to make a clickable link to that file or folder. If the file path contains spaces, they should be escaped i.e. “/Users/dev/Desktop/My&lt;span style="background-color:yellow"&gt;\&amp;nbsp;&lt;/span&gt;Project”.&lt;/p&gt;

&lt;h4&gt;Other improvements&lt;/h4&gt;

&lt;p&gt;Finally, the update brings other little improvements and fixes many small issues. In addition, there are some new advanced options. Take a look at the updated &lt;a href="http://www.shpakovski.com/codebox/hidden-features"&gt;Hidden Preferences&lt;/a&gt;.&lt;/p&gt;

&lt;hr/&gt;

&lt;p&gt;I hope you will enjoy new features. Thanks a lot for your bug reports and feature requests. Be sure, all suggestions are carefully sorted, analyzed and considered for the future development. iCloud sync and iOS version are on their way, stay tuned guys!&lt;/p&gt;

&lt;p style="text-align:center;"&gt;&lt;a style="padding:5px 10px; margin: 5px 10px; border: solid 1px #AAAABB;" href="http://itunes.apple.com/us/app/codebox/id412536790?mt=12&amp;ls=1"&gt;DOWNLOAD CODEBOX&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/LJZY6BTE3tM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/4585759017422608267/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2012/03/codebox-15.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/4585759017422608267?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/4585759017422608267?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/LJZY6BTE3tM/codebox-15.html" title="CodeBox 1.5" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>7</thr:total><feedburner:origLink>http://blog.shpakovski.com/2012/03/codebox-15.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMNRHs-eCp7ImA9WhVaFkg.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-397750298447570651</id><published>2011-07-05T18:30:00.010+03:00</published><updated>2012-06-14T08:41:35.550+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-06-14T08:41:35.550+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GitHub" /><category scheme="http://www.blogger.com/atom/ns#" term="Cocoa" /><category scheme="http://www.blogger.com/atom/ns#" term="CodeBar" /><title>Cocoa Popup window in the Status bar</title><content type="html">&lt;p&gt;My &lt;a href="http://www.shpakovski.com/codebox/"&gt;CodeBox&lt;/a&gt; app for Mac OS X has got an embedded helper app named CodeBar. It is a small utility resided in the system status bar. In this blog post, I'm going to share an open-source project demonstrating how to implement a custom status icon with a popup window. I hope it will be useful for those who are new to Cocoa and want to make their own utility living in the status bar.&lt;/p&gt;

&lt;p style="text-align:center;"&gt;&lt;a href="https://github.com/shpakovski/Popup"&gt;&lt;img src="http://dl.dropbox.com/u/1052853/Popup.png" width="311" height="159"/&gt;&lt;/a&gt;&lt;p&gt;

&lt;p&gt;First, we have to allocate a new NSStatusItem to place it into the menu bar. This task is managed by the controller class named &lt;a href="https://github.com/shpakovski/Popup/blob/master/Popup/MenubarController.m"&gt;MenubarController&lt;/a&gt;. To make status item more flexible, we use a custom &lt;a href="https://github.com/shpakovski/Popup/blob/master/Popup/StatusItemView.h"&gt;StatusItemView&lt;/a&gt; to display its contents in the menu bar. The demo project provides the simplest implementation that draws a Star icon in that view. You can have even more advanced icon by adding handling of drag &amp; drop or any other feature supported by regular views.&lt;/p&gt;

&lt;p&gt;Next, we need a customized window to display it as a popover. In the demo project, this window is a panel managed by the &lt;a href="https://github.com/shpakovski/Popup/blob/master/Popup/PanelController.m"&gt;PanelController&lt;/a&gt; class. It loads the panel component from NIB and manages its live cycle. Also, it configures popover appearance by removing title bar and standard window background.&lt;/p&gt;

&lt;p&gt;Finally, once we have menu bar icon and popover, it is time to connect them. The top level controller class &lt;a href="https://github.com/shpakovski/Popup/blob/master/Popup/ApplicationDelegate.m"&gt;ApplicationDelegate&lt;/a&gt; is watching for clicks in the menu bar and passes them to the panel controller. Then, after panel controller is closed, application delegate asks menu bar icon to remove a blue highlight.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/shpakovski/Popup"&gt;Popup project on GitHub&lt;/a&gt; has got all source files that you need to build a demo app in Xcode 4.&lt;/p&gt;

&lt;p&gt;P. S. In Lion, Apple is adding a new class for popovers like in iOS. So, after OS X 10.7 is released, you would better to rely on native Cocoa classes where it is possible. In other cases, the Popup project should still be usable.&lt;/p&gt;

&lt;p&gt;Update: What a shame. It looks like implementation using NSPopover requires a lot of hacks. Please find more information &lt;a href="http://blog.brokenrobotllc.com/using-nspopover-with-nsstatusitem"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/AkmFiqSywzA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/397750298447570651/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2011/07/cocoa-popup-window-in-status-bar.html#comment-form" title="30 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/397750298447570651?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/397750298447570651?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/AkmFiqSywzA/cocoa-popup-window-in-status-bar.html" title="Cocoa Popup window in the Status bar" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>30</thr:total><feedburner:origLink>http://blog.shpakovski.com/2011/07/cocoa-popup-window-in-status-bar.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAGSX0zfCp7ImA9WhZUGE8.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-5333940919935428523</id><published>2011-06-07T00:53:00.003+03:00</published><updated>2011-06-12T00:12:08.384+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-12T00:12:08.384+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CodeBox" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><category scheme="http://www.blogger.com/atom/ns#" term="textExpander" /><category scheme="http://www.blogger.com/atom/ns#" term="CodeBar" /><title>CodeBox 1.4</title><content type="html">&lt;p&gt;What a day! Keynote by Apple was so exciting. And this is only beginning of the magical WWDC week! I'm 2x happy because of Apple Review Team approved version 1.4 right during the Keynote. I cannot believe these guys were working while Steve was announcing iOS 5 and iCloud. Bravo Apple! So, what's new in CodeBox?&lt;/p&gt;

&lt;h3&gt;Drag snippets between libraries&lt;/h3&gt;

&lt;p&gt;There is no more need to copy code and attributes one-by-one to transfer snippets between different CodeBox libraries. Now you can copy and paste or drag and drop whole Snippets, Groups, Folders and Smart Groups between libraries. This makes code snippet management extremely easy.&lt;/p&gt;

&lt;h3&gt;Export to Finder&lt;/h3&gt;

&lt;p&gt;CodeBox 1.3 brought support for adding files and folders from Finder. CodeBox 1.4 continues Finder integration and adds support for dragging whole folders, groups and snippets into Finder. For example, you can drop the complete project template including subfolders and all nested files. Neat?&lt;/p&gt;

&lt;h3&gt;CodeBar Text Expander&lt;/h3&gt;

&lt;p&gt;If you are an advanced Mac user, you must have heard about text expanding tools like &lt;a href="http://smilesoftware.com/TextExpander/"&gt;TextExpander&lt;/a&gt;. According to your feedback, CodeBox really missed text expanding feature. So why not have it at hand? Adding abbreviations is easy: just write some letters before the asset name and attach them using a symbol @.&lt;/p&gt;

&lt;p&gt;Say, you have an asset.txt with your email signature. Click the Asset tab and edit its name by adding the shortcut like here: &lt;em&gt;SIGN&lt;/em&gt;@asset.txt. Next, save the library and switch to another Mac application. Type ‘SIGN’, and CodeBar should automatically replace it with contents of the ‘asset.txt’.&lt;/p&gt;

&lt;h3&gt;Add to CodeBox&lt;/h3&gt;

&lt;p&gt;The new service named Add to CodeBox allows you to select a piece of text from any application and create a new snippet with this text. Please, do not forget that you can define a custom Keyboard Shortcut to call the service in System Preferences.&lt;/p&gt;

&lt;p&gt;Also, you can bookmark the link &lt;a href="javascript:d=document,e=encodeURIComponent;d.location.href='codebox://add-snippet?name='+e(d.title)+'&amp;src='+e(d.location.href)+'&amp;content='+e(''+document.getSelection());"&gt;Add to CodeBox&lt;/a&gt; to create new snippets right from your browser. The workflow is as follows: install that link into the Bookmark bar, then select a piece of text on a webpage and click the Add to CodeBox bookmarklet. CodeBox will create the new snippet containing current selection.&lt;/p&gt;

&lt;h3&gt;CodeBar Keyboard Modifiers&lt;/h3&gt;

&lt;p&gt;In addition to revamped user interface, new CodeBar added support for custom Keyboard modifiers. Before, you had only one option, Command-Click, to insert selected snippet immediately. However, many of you wanted other options like Copy and Edit Code.&lt;/p&gt;

&lt;p&gt;Here we go! In CodeBox 1.4, you are free to configure any command as you wish. For instance, Command-Click to Insert Code, Option-Click to Copy, Shift-Click to Edit code and placeholders.&lt;/p&gt;

&lt;h3&gt;Thanks for using CodeBox&lt;/h3&gt;

&lt;p&gt;I think this is the best release of CodeBox ever, and I hope you will like and use it as much as I do. As always, I want to thank you for reporting bugs and issues, suggesting new features and leaving reviews in the Mac App Store. &lt;a href="http://itunes.apple.com/us/app/codebox/id412536790?mt=12&amp;ls=1"&gt;Go get an update&lt;/a&gt; guys!&lt;/p&gt;

&lt;h3&gt;P. S.&lt;/h3&gt;

&lt;p&gt;Tips and Tricks for CodeBox updated on the &lt;a href="http://www.shpakovski.com/codebox/hidden-features"&gt;Hidden Preferences&lt;/a&gt; page.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/Z0TeYx4Qlpw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/5333940919935428523/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2011/06/codebox-14.html#comment-form" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/5333940919935428523?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/5333940919935428523?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/Z0TeYx4Qlpw/codebox-14.html" title="CodeBox 1.4" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>13</thr:total><feedburner:origLink>http://blog.shpakovski.com/2011/06/codebox-14.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEFRXozeCp7ImA9WhVXEEo.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-4993521370352437993</id><published>2011-05-16T14:26:00.007+03:00</published><updated>2012-04-10T20:06:54.480+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-10T20:06:54.480+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PNG Compressor" /><category scheme="http://www.blogger.com/atom/ns#" term="Release" /><title>PNG Compressor 1.0</title><content type="html">&lt;img style="float: left; margin-right: 20px; margin-bottom: 5px;" src="http://dl.dropbox.com/u/1052853/Compressor128x128.png" width="128" height="128"/&gt;
 
 &lt;p&gt;After using console tools like &lt;a href="http://optipng.sourceforge.net/"&gt;OptiPNG&lt;/a&gt; and &lt;a href="http://pmt.sourceforge.net/pngcrush/"&gt;PNGCrush&lt;/a&gt; for a while, I decided to write a native application for Mac OS X to rule them all. This is how my new app was born.&lt;/p&gt;
 
 &lt;p&gt;Last week I launched &lt;a href="http://www.shpakovski.com/png-compressor/"&gt;PNG Compressor&lt;/a&gt;. This is a GUI client for compressing PNG images. Now you do not need to launch Terminal every time you want to shrink pictures in PNG format. Instead, you just drag &amp;amp; drop files or folders from Finder directly into the Dock icon. Simple and easy!&lt;/p&gt;
 
 &lt;p&gt;Using PNG Compressor, you can optimize website graphics for faster loading. Or you can compress image files to save the bandwidth and hosting costs. Developers can use this utility to shrink bitmaps in the Mac and iPhone application bundles. And all of this can be done in the sexy user interface without any clatter.&lt;/p&gt;
 
 &lt;p&gt;I would like to thank all the people who supported PNG Compressor and downloaded it from the &lt;a href="http://itunes.apple.com/us/app/png-compressor/id434886325?mt=12"&gt;Mac App Store&lt;/a&gt;. As usually, any feedback and suggestions are highly appreciated. I'm carefully listening to all your emails and comments. The next update will bring support for additional engines like &lt;a href="http://advancemame.sourceforge.net/comp-readme.html"&gt;AdvPNG&lt;/a&gt; and &lt;a href="http://advsys.net/ken/utils.htm"&gt;PNGOut&lt;/a&gt;. Please stay tuned!&lt;/p&gt;
 
 &lt;p&gt;It seems like PNG Compressor has been warmly accepted by designers and coders. These days I constantly meet really cool &lt;a href="http://twitter.com/vadimshpakovski/favorites"&gt;tweets&lt;/a&gt; and reviews all over the web: i.e. &lt;a href="http://www.macstories.net/mac/png-compressor/"&gt;Mac Stories&lt;/a&gt;, &lt;a href="http://www.macgeneration.com/news/voir/199912/png-compressor-comprime-sans-pertes"&gt;Mac Generation&lt;/a&gt;, &lt;a href="http://macmagazine.com.br/2011/05/12/novo-aplicativo-faz-compressao-sexy-de-imagens-png-no-mac-os-x/"&gt;Mac Magazine&lt;/a&gt;, &lt;a href="http://pplware.sapo.pt/apple/png-compressor-1-0-a-forca-ao-seu-dispor/"&gt;Pplware&lt;/a&gt;. Thank you very much guys! This really matters and inspires me :)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/U890YNi-m6s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/4993521370352437993/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2011/05/png-compressor-10.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/4993521370352437993?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/4993521370352437993?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/U890YNi-m6s/png-compressor-10.html" title="PNG Compressor 1.0" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.shpakovski.com/2011/05/png-compressor-10.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MGQXgzfyp7ImA9WhZQFEU.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-1228770260553480395</id><published>2011-04-22T02:22:00.010+03:00</published><updated>2011-04-22T19:23:40.687+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-22T19:23:40.687+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="GitHub" /><category scheme="http://www.blogger.com/atom/ns#" term="Development" /><category scheme="http://www.blogger.com/atom/ns#" term="Cocoa" /><title>Preferences Windows in Cocoa</title><content type="html">&lt;p style="text-align: center;"&gt;&lt;img src="http://dl.dropbox.com/u/1052853/codebox-preferences.png" width="426" height="163" /&gt;&lt;/p&gt;
&lt;p&gt;The most of applications in Mac OS X have the Preferences window. Unfortunately, there is no component like NSPreferencePane in the AppKit. Instead, we want to use NSToolbar with custom delegate and selectable items.&lt;/p&gt;
&lt;p&gt;Cocoa community has made some great implementations of Preferences window. Probably, the most popular are &lt;a href="http://mattgemmell.com/source"&gt;SS_PrefsController&lt;/a&gt; by Matt Legend Gemmell and &lt;a href="http://brandonwalkin.com/bwtoolkit/"&gt;Selectable Toolbar&lt;/a&gt; by Brandon Walkin. It's interesting that Matt's solution is extremely powerful and more advanced: i.e. you can create and build preference panes as separate Xcode projects. While Brandon's component is all-in-one and easy to use: you do not need to read any documentation to get started with it.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;img src="http://dl.dropbox.com/u/1052853/learning-curves.png" width="667" height="171" /&gt;&lt;/p&gt;
&lt;p&gt;I had used these components for development until I went into iPhone development. In CocoaTouch you must use &lt;a href="http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIViewController_Class/Reference/Reference.html"&gt;UIViewController&lt;/a&gt; class everywhere, and soon or later it becomes your best friend. After returning back to Cocoa on Desktop I realized that I really miss “standard” view controllers, so I started looking for new Preferences implementation. The main criteria was using &lt;a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSViewController_Class/Introduction/Introduction.html"&gt;NSViewController&lt;/a&gt; class for preference panes.&lt;/p&gt;
&lt;p&gt;Google did not offer anything interesting, but I found great &lt;a href="http://www.cocoarocket.com/articles/preferences.html"&gt;research of Preferences windows&lt;/a&gt; by James Huddleston. After reading that brilliant article, I decided to develop my own component meeting two requirements. First, it should be based on modern &lt;a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindowController_Class/Reference/Reference.html"&gt;NSWindowController&lt;/a&gt; and NSViewController classes. Second, it should load preference panes lazily.&lt;/p&gt;
&lt;p&gt;After some iterations, I developed components  that I use for Preferences windows in &lt;a href="http://www.shpakovski.com/codebox/"&gt;CodeBox&lt;/a&gt; and &lt;a href="http://www.shpakovski.com/hunting/"&gt;Hunting&lt;/a&gt;. Here I would like to share what I have. Maybe this code will be helpful to somebody. Please find the Demo project at GitHub:&lt;/p&gt;
&lt;p style="text-align: center;"&gt;&lt;a href="https://github.com/shpakovski/MASPreferences"&gt;&lt;img src="http://dl.dropbox.com/u/1052853/open-github.png" width="291" height="39" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I'm sorry for the lack of any documentation at the moment. Please consider this code as work in-progress.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/0Q_XypDQ2VU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/1228770260553480395/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2011/04/preferences-windows-in-cocoa.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/1228770260553480395?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/1228770260553480395?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/0Q_XypDQ2VU/preferences-windows-in-cocoa.html" title="Preferences Windows in Cocoa" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>6</thr:total><feedburner:origLink>http://blog.shpakovski.com/2011/04/preferences-windows-in-cocoa.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUCRX09cCp7ImA9WhZRF0Q.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-1807371843788709696</id><published>2011-04-10T18:47:00.001+03:00</published><updated>2011-04-14T18:51:04.368+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-14T18:51:04.368+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CodeBox" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><title>CodeBox 1.3</title><content type="html">&lt;p&gt;Today’s update brings new features, user interface improvements and bug fixes.&lt;/p&gt;
&lt;p&gt;This version adds support for variable placeholders. Now you can wrap any piece of code into pairs of underscores like &lt;code&gt;__this__&lt;/code&gt; to define the new placeholder. Each snippet of code can have multiple placeholders.&lt;/p&gt;
&lt;p&gt;Once placeholders are defined, you can edit them right before pasting from CodeBar. Click an Edit Code item in the asset menu to open the text editor. There you can jump between placeholders using the Tab key.&lt;/p&gt;
&lt;p&gt;Many of you may have kept snippets as source files in folders on the Hard Drive. Now you can migrate to CodeBox really fast by simple dragging any files and folders from the Finder into the Sources view.&lt;/p&gt;
&lt;p&gt;In addition to web link assets, the Notes field now can keep clickable URLs for web pages.&lt;/p&gt;
&lt;p&gt;Thanks to your continuous feedback, most of the issues with syntax highlighting are fixed in this update. Also, some new syntaxes were added to the Code Editor.&lt;/p&gt;
&lt;p&gt;&lt;a title="CodeBox on the Mac App Store" href="http://itunes.apple.com/us/app/codebox/id412536790?mt=12"&gt;Go get the new version&lt;/a&gt;! Thanks :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPD: CodeBar may not autorun after updating from earlier versions. In this case, please try to hint Finder where to find the helper app by launching it manually from here:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Applications/CodeBox.app/Contents/Library/LoginItems/CodeBar.app&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This is a known issue that will be fixed in the next update. Sorry for temporary inconvenience!&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/gmX0MC8KIic" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/1807371843788709696/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2011/04/codebox-13.html#comment-form" title="11 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/1807371843788709696?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/1807371843788709696?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/gmX0MC8KIic/codebox-13.html" title="CodeBox 1.3" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>11</thr:total><feedburner:origLink>http://blog.shpakovski.com/2011/04/codebox-13.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08DRX07fyp7ImA9WhVQE0U.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-1290857908978813036</id><published>2011-03-15T14:26:00.004+02:00</published><updated>2012-04-02T19:57:54.307+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-02T19:57:54.307+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CodeBox" /><category scheme="http://www.blogger.com/atom/ns#" term="CodeBar" /><title>CodeBar Issues</title><content type="html">&lt;p&gt;This information is for those who cannot launch CodeBar from Preferences window.&lt;/p&gt;
&lt;p&gt;I contacted Apple technical support and we investigated into this. It seems like the problem origins from ACL that may be “corrupted” either by the Operating System either by the Time Machine.&lt;/p&gt;
&lt;p&gt;Apple hackers propose to fix ACL by executing the following commands in the Terminal.app (please do not forget to omit the leading “$ ”):&lt;/p&gt;
&lt;code&gt;$ chmod -a# 0 /var/db/launchd.db/com.apple.launchd.peruser.$UID&lt;/code&gt;&lt;br/&gt;
&lt;code&gt;$ chmod -a# 0 /var/db/launchd.db/com.apple.launchd.peruser.$UID/overrides.plist&lt;/code&gt;
&lt;p&gt;And below are some additional commands for those who use the Time Machine:&lt;/p&gt;
&lt;code&gt;$ xattr -d com.apple.metadata:_kTimeMachineNewestSnapshot /var/db/launchd.db/com.apple.launchd.peruser.$UID&lt;/code&gt;&lt;br/&gt;
&lt;code&gt;$ xattr -d com.apple.metadata:_kTimeMachineNewestSnapshot /var/db/launchd.db/com.apple.launchd.peruser.$UID/overrides.plist&lt;/code&gt;&lt;br/&gt;
&lt;code&gt;$ xattr -d com.apple.metadata:_kTimeMachineOldestSnapshot /var/db/launchd.db/com.apple.launchd.peruser.$UID&lt;/code&gt;&lt;br/&gt;
&lt;code&gt;$ xattr -d com.apple.metadata:_kTimeMachineOldestSnapshot /var/db/launchd.db/com.apple.launchd.peruser.$UID/overrides.plist&lt;/code&gt;
&lt;p&gt;Now you should be able to enable and disable CodeBar in Preferences. Sorry for inconvenience.&lt;/p&gt;
&lt;p&gt;Please note: Mentioned problems with access rights seem to be fixed in the latest update of Mac OS X 10.6.7, so please ensure that your system software is up-to-date.&lt;/p&gt;
&lt;h3&gt;How to launch CodeBar manually&lt;/h3&gt;
&lt;p&gt;Another rare issue that you may experience is that CodeBar may not be auto-launched after update or after restart. The reason for this is that the system process “launchd” cannot find where the helper app is located. In order to fix this, you should launch the app in Finder:&lt;/p&gt;
&lt;code&gt;/Applications/CodeBox.app/Contents/Library/LoginItems/CodeBar.app&lt;/code&gt;
&lt;p&gt;Then the operating system will know where the helper app is located and everything will work properly. Let’s hope this will be fixed in the future software updates of Mac OS X.&lt;/p&gt;
&lt;h3&gt;How to stop CodeBar errors logs&lt;/h3&gt;
&lt;p&gt;If you note &lt;em&gt;launchd&lt;/em&gt; error logs about inability to launch CodeBar, the following receipt may help. Remove this XML from the file &lt;code&gt;~/Library/LaunchAgents/com.apple.launchd.peruser.&amp;lt;ID&amp;gt;&lt;/code&gt;:&lt;/p&gt;
&lt;code&gt;&amp;lt;key&amp;gt;com.shpakovski.mac.codebar&amp;lt;/key&amp;gt;&lt;br/&gt;
&amp;lt;dict&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;key&amp;gt;Disabled&amp;lt;/key&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;false/&amp;gt;&lt;br/&gt;
&amp;lt;/dict&amp;gt;&lt;/code&gt;
&lt;p&gt;After a reboot, the error messages should stop appearing in the log file.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/WmsrmMpl-Ck" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/1290857908978813036/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2011/03/codebar-issues.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/1290857908978813036?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/1290857908978813036?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/WmsrmMpl-Ck/codebar-issues.html" title="CodeBar Issues" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.shpakovski.com/2011/03/codebar-issues.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAHR3w8eSp7ImA9WhZQEkw.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-7166324441599442768</id><published>2011-03-05T18:43:00.001+02:00</published><updated>2011-04-19T14:32:16.271+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-19T14:32:16.271+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CodeBox" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><title>CodeBox 1.2</title><content type="html">&lt;p&gt;Version 1.2 is available for downloading! Now CodeBox supports over 100 syntaxes for code highlighting.&lt;/p&gt;
&lt;p&gt;You can find the most popular syntaxes in the Highlight popup. If you need any other language, you can enable it using Checkmark button.&lt;/p&gt;
&lt;p&gt;Also, new version brings support for text settings and color themes. Right-click text editor to apply new theme.&lt;/p&gt;
&lt;p&gt;As highlighting engine uses TextMate syntaxes, feel free to download&amp;nbsp;.tmTheme files from web, then drag &amp;amp; drop them into CodeBox editor from Finder.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/7NjkWTTyfN4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/7166324441599442768/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2011/04/version-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/7166324441599442768?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/7166324441599442768?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/7NjkWTTyfN4/version-1.html" title="CodeBox 1.2" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.shpakovski.com/2011/04/version-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MARX09cCp7ImA9WhZQEkw.&quot;"><id>tag:blogger.com,1999:blog-7971303847554312963.post-6958981720800205556</id><published>2011-02-06T07:05:00.001+02:00</published><updated>2011-04-19T14:10:44.368+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-19T14:10:44.368+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CodeBox" /><category scheme="http://www.blogger.com/atom/ns#" term="Update" /><title>CodeBox 1.1</title><content type="html">&lt;p&gt;Here we go! The first CodeBox update is &lt;a title="CodeBox 1.1" href="http://itunes.apple.com/us/app/codebox/id412536790?mt=12&amp;amp;ls=1"&gt;available&lt;/a&gt; in the Mac App Store :)&lt;/p&gt;&lt;p&gt;Thanks a lot for all your support during the last month, thanks for emails, tweets, reviews and ratings in the Mac App Store. After careful consideration of all your suggestions, I decided to redo the architecture and user interface. As result,&amp;nbsp;the app become easier to use,&amp;nbsp;really fast and lightweight.&lt;/p&gt;&lt;p&gt;You asked to add support for syncing using &lt;a title="Get DropBox" href="https://www.dropbox.com/"&gt;DropBox&lt;/a&gt; or any other Cloud service. Also, you wanted to manage more than one library and store libraries at custom locations. CodeBox 1.1 brings support for this stuff altogether. And now every library is a Document!&lt;/p&gt;&lt;p&gt;So, you can save the library into DropBox, iDisk, mounted FTP folder or any other location. Open the library at work, make changes and click Save. That’s it — all your snippets are available on all your macs.&lt;/p&gt;&lt;p&gt;By the way, thanks to the new architecture, the app got full-featured support for Undo and better performance.&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;Multiple Assets in CodeBox&lt;/h3&gt;&lt;p&gt;Many users wanted to have ability to add materials, files, notes and links related to their snippets. So meet the new feature in CodeBox 1.1 — Assets.&lt;/p&gt;&lt;p&gt;Assets are multiple parts of a single snippet. Each asset can have its own name, file extension and text notes. In current version, you can create assets with text content and web links.&lt;/p&gt;&lt;p&gt;To create a web link asset, copy any HTTP URL and select command New Asset From Clipboard. This will create a new asset presented as a web page.&lt;/p&gt;&lt;p&gt;In the future I’m going to add support for image assets and maybe something else.&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;Meet CodeBar&lt;/h3&gt;&lt;p&gt;As I can see from the feedback, most of you need more advanced helper in the menu bar. Also, you don’t like that CodeBox should be always running in the Dock. Usually it’s enough to have only the icon in the menu bar.&lt;/p&gt;&lt;p&gt;I would like to introduce your new assistant — CodeBar. Go to the application preferences and turn it on — now you can quit CodeBox but still have the full access to all your library files from the menu bar.&lt;/p&gt;&lt;p&gt;Use CodeBar for browsing libraries, folders, groups, snippets and assets. Any selected snippet can be copied into Clipboard, previewed or pasted into the active application.&lt;/p&gt;&lt;p&gt;CodeBar will note the library after you open the document or save any changes.&lt;/p&gt;
&lt;h3&gt;Syntax Highlighting is coming&lt;/h3&gt;
&lt;p&gt;I can guess your first feature request after downloading the new version of CodeBox :) Here is the deal:&lt;/p&gt;
&lt;p&gt;As 1.1 brought support for assets, and assets can have their own file extensions, there is no more need to have the limited number of supported highlights.&lt;/p&gt;
&lt;p&gt;So I’m already working on the new engine for syntax highlighting. I hope you will like it.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/shpakovski/blog/~4/j04jWcGSJjc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.shpakovski.com/feeds/6958981720800205556/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.shpakovski.com/2011/02/codebox-11.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/6958981720800205556?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7971303847554312963/posts/default/6958981720800205556?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/shpakovski/blog/~3/j04jWcGSJjc/codebox-11.html" title="CodeBox 1.1" /><author><name>Vadim Shpakovski</name><uri>http://www.blogger.com/profile/07971682033974005558</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-SFPVsq57F5o/TdlomCKKxCI/AAAAAAAAAAQ/bem9rBzh7JU/s220/Me-128.png" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.shpakovski.com/2011/02/codebox-11.html</feedburner:origLink></entry></feed>
