<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7026908640761203214</id><updated>2011-09-04T14:13:19.178+01:00</updated><category term='VisualSourceSafe'/><category term='Visual Studio plugins'/><category term='Visual Studio'/><category term='hdd'/><category term='Windows'/><category term='tools'/><category term='SVN'/><category term='UI design'/><title type='text'>analog feelings, digital world</title><subtitle type='html'>the code is poetry</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-8071303410037774269</id><published>2008-12-24T01:33:00.002Z</published><updated>2008-12-24T01:36:09.120Z</updated><title type='text'>The very last post</title><content type='html'>&lt;div style="text-align: justify;"&gt;Yup, this is the very last post on this blog. No, I don't give up :) I just moved my blog to free hosting service I was writing about (and now my blog is being powered by WordPress engine ;)&lt;br /&gt;&lt;br /&gt;So... this is the address of my new blog: &lt;a href="http://notonlyzeroesandones.site40.net/"&gt;http://notonlyzeroesandones.site40.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;See ya.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-8071303410037774269?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/8071303410037774269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=8071303410037774269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/8071303410037774269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/8071303410037774269'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/12/very-last-post.html' title='The very last post'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-4880150677641049009</id><published>2008-12-15T23:30:00.001Z</published><updated>2008-12-15T23:30:58.542Z</updated><title type='text'>Usability &amp; User experience</title><content type='html'>&lt;p align="justify"&gt;A few days ago I wrote a short note about the importance of GUI. But GUI alone - the set of graphical widgets, that present information and allow to perform actions - is not everything one should consider when creating application. The second, very important thing while designing application is to focus on how this application will be used, make it as easy as possible, create interface that will be easy (so easy, that users will not have to read documentation just to get to know how to perform some tasks, that application is capable of performing), interface that will not be annoying (avoid forcing user to click in many places to perform one action) and many more. &lt;a href="http://en.wikipedia.org/wiki/Usability"&gt;Wikipedia's definition&lt;/a&gt; of usability is: &amp;quot;&lt;b&gt;Usability&lt;/b&gt; is a term used to denote the ease with which people can employ a particular &lt;a href="http://en.wikipedia.org/wiki/Tool"&gt;tool&lt;/a&gt; or other human-made object in order to achieve a particular goal. Usability can also refer to the methods of measuring usability and the study of the principles behind an object's perceived efficiency or elegance.&amp;quot; So, I think, there is no need, to explain further what 'usability' (in terms of designing software) is. Let's face some real-world examples:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Control Panel link in Start Menu (Windows 95)&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Windows 95 GUI was fresh, and gave much better user experience than the old GUI designed for Windows 3.x. Although there were a lot of small 'bugs' or things that were possible (not at the first sight) but were not easy to achieve. One of them, was creating a menu (link) to control panel in Start Menu. It was possible. The only things one should do, was to find proper key in Windows Registry (well, not the key, but it's GUID was to be found), and create a folder, which name was GUID itself. This kind of folder pointed directly to the content of Control Panel. The same trick worked for other special folders. Anyway, the thing is, that some of my friend, that were proud Mac owners at the time, claimed, that it 'stupid'. Stupid, because it so hard to do, and Mac allows to do such things just using drag &amp;amp; drop technique. &lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Fonts in cmd.exe&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;When you look a little bit closer to cmd.exe (or command line console - if you prefer) you realize, that this ugly bitmap font (the default one) hasn't changed for a long, long time. It is default font, and it looks the same (or rather: is as much ugly) in Vista and in Windows 95. Can't it be changed? Of course, it can. And again, &lt;a href="http://www.howtogeek.com/howto/windows-vista/stupid-geek-tricks-enable-more-fonts-for-the-windows-command-prompt/"&gt;it could be made by digging and changing Windows Registry.&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Where does my tab-close button go? (Mozilla Firefox)&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Firefox was one of the first browsers that incorporated tabbed browsing - something that many of us can not imagine surfing without. But there is some strange behaviour of Firefox, when it comes to tab-closing button. If you have only few tabs open - it is always placed on every tab (on the right side on the tab title). But what happens, when user opens more, and more tabs? Well... the button disappears! Simply, none of the tabs has it. Why? I don't know. What's the solution? Ctrl+T for new tab, in the address bar type famous &amp;quot;about:config&amp;quot;, &lt;em&gt;browser.tabs.closeButtons'&lt;/em&gt; value should be 1 (to show tab closing button for all tabs), and &lt;em&gt;browser.tabs.tabClipWidth's&lt;/em&gt; value should be way smaller than default 140 (this value is the minimal width of the tab title, if its smaller, tab close button is being not displayed).&lt;/p&gt;  &lt;p align="justify"&gt;Did you expect that there is still so many to do in the field of user experience, usability? Is there anything that software designer could do, to make their applications better? Of course! In the first two examples the changes are obvious. In the first case, managing special folders should be the same as 'normal' folders, so copying them, linking to them should be possible - there is even better solution: a wizard that will let anyone personalize its start menu (similar to what it is being done right now in Windows XP and Vista, but it could be a bit more user friendly, IMO). &lt;/p&gt;  &lt;p align="justify"&gt;I am wondering, what is so hard in making 'Courier New' or 'Lucida Console' (both of them are TrueType fonts) the default font for cmd.exe? Those fonts look a lot better than default bitmap font (which is so ugly, that I wonder how anyone can actually work with console that has this font set).&lt;/p&gt;  &lt;p align="justify"&gt;And the last issue... I assume that the worst thing in the case of 'disappearing tab close button' is that it is silent. You're just surfing the web, opening more, and more pages, maybe close your browser, and restart it the very next day... and there is a moment, that you realize the buttons are gone. And it's so strange, because 'they were always present, on all the tabs', right? So first of all, I think that Firefox should warn user (but not with standard message box dialog that nobody ever reads) that tab closing buttons will not be displayed anymore (as long, as tabs are so narrow). I think, this message box, should have some animation showing that the button is being 'kicked off' from tab titles (it's not hard to do, just a small gif containing about 8 frames of animation will do). The message box (or dialog box - better) could provide a smart wizard, that will let user choose how the browser should behave. That's it. I think, it would be much better, and less confusing for many people. &lt;/p&gt;  &lt;p align="justify"&gt;Usability could be taught on example, there are dozens of applications around, and it is sometimes a good idea to think if they work the way users expect, or users are just used to applications' design? How many clicks does it take to perform a simple action? And how many different ways exist that allow to perform a specified task? Are all the ways obvious? Does user need to go over and over to some kind of menus to change some properties during work? Are the most common tasks and options grouped? How? Are messages easy to understand to anybody (not only some techie guys)? There's definitely more question that software designer focused on GUI and usability should ask while (re)designing.&lt;/p&gt;  &lt;p align="justify"&gt;At the very end I would like to point that there are some books that should be interesting for people who think that designing GUI and usability is not just a waste of time and resources. First book I think is worth reading is &lt;a href="http://www.amazon.co.uk/User-Interface-Design-Programmers-Spolsky/dp/1893115941/ref=sr_1_5?ie=UTF8&amp;amp;s=books&amp;amp;qid=1229190745&amp;amp;sr=8-5"&gt;&amp;quot;User Interface Design for Programmers&amp;quot; by Joel Spolsky&lt;/a&gt; (it is also worth to take a look at &lt;a href="http://www.joelonsoftware.com/"&gt;his blog&lt;/a&gt;). The other book I think is worth reading is &lt;a href="http://www.whysoftwaresucks.com/"&gt;&amp;quot;Why Software Sucks And What You Can Do About It&amp;quot;&lt;/a&gt; by David S. Platt (there is a sample chapter available on David's book page). Have you ever thought that there is no point in thinking about some small parts of the application? David presents great example: the message that user gets when they want to close application and their work was not saved. Is the standard message easy to understand to anyone? It definitely should, right? There is a thin line between sticking to standard solutions used in GUI design we see in modern apps, and the need of improving user experience. If nobody at Microsoft thought that problem of Office was in its poor GUI - Ribbon would never appeared. The same thing is with context menus: why options (entries, whatever) are being placed one under another? Is it really comfortable? Or was it the most simple solution (rendering rectangle is the simplest what you can actually do in graphic environment). I've seen lately some proposals to change standard context menus to circles (all the options are equally available in terms of 'mouse distance'). There's a lot more to think about. I just hope that modern apps are going to be more and more easy to use (so they make us all more productive, and we'll all have more time to relax and enjoy our lives).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-4880150677641049009?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/4880150677641049009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=4880150677641049009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/4880150677641049009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/4880150677641049009'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/12/usability-user-experience.html' title='Usability &amp;amp; User experience'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-4624346207888607870</id><published>2008-12-11T11:03:00.000Z</published><updated>2008-12-11T11:04:05.532Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>FreeMind alternative, really?</title><content type='html'>&lt;p align="justify"&gt;For quite a long time I have been using FreeMind as a mind mapping software for day-to-day basis. I am used to it, but its ugly user interface (and especially those ugly fonts!) keeps me searching for replacement from time to time. Recently I spent another hour searching for alternative. I have found &lt;a href="http://www.xmind.net/" mce_href="http://www.xmind.net/"&gt;XMind&lt;/a&gt;. &lt;a href="http://www.xmind.net/" mce_href="http://www.xmind.net/"&gt;XMind&lt;/a&gt; was a commercial only application before, but now a free version is also available. The differences between PRO and free versions are not crucial for me, and I didn't even thought about spending money on the PRO version (you may check detailed &lt;a href="http://www.xmind.net/pro/features/" mce_href="http://www.xmind.net/pro/features/"&gt;feature comparison&lt;/a&gt;). Anyway, lets start testing it. First impression? Whoa! &lt;b&gt;It is beautiful!&lt;/b&gt; Ctrl+Shift+Esc... and hm... XMind allocates about 60MB at the very beginning. A bit too much I think... (and I didn't start working! I just run the app!) A few more clicks (importing my mind map created in FreeMind) and... yup, definitely it is eye-catching. Fonts on the mind map are very well antialiased, all the shapes looks very nice, same as connecting lines. The whole structure is very clean, icons are big enough to notice them at the first sight. Mind map is actually colored but it does not look like a fireworks during fiesta - no need to be worry about it ;) The impression while using are, although, mixed. The app looks great, but sometimes user does not have good experience of application's responsiveness... what am I talking about? I have tested both apps (XMind and FreeMind - just for comparison) with the same mind map (created originally using FreeMind). This mind map consists of 76 object (including the 'root' one). The maximum depth is 6 levels. As you see it was not very complicated. And while using XMind I had the feeling that my quite new cpu (2.6GHz Core2Duo) is lacking some power... yes ;) Collapsing / expanding and moving whole mind map (even if big part of it was already collapsed - so not visible) was quite slow. Much better impression is being made while scrolling with scrollbars than "dragging workspace" (right-click &amp;amp; drag). There are two panes that I think should be incorporated into FreeMind: outline and properties. Outline is special view that lists all objects on workspace in hierarchy. It would be great if clicking on anything in outline made it active in main view... It does not work that way at the moment (it is very strange, because one expects that). Properties pane is used to quickly change properties of workspace and how it is being rendered. It allows changing outlook of workbook (workspace), user may change default shape, default type of connector lines and font. Properties pane makes a lot of work easier and allows to quickly change whole outlook of current workbook (workspace) in very convenient way (it is very easy to see how the structure will look if one uses different font or connector lines type). A few minutes passed, time to see how much memory does XMind consume... 180MB. Well... it is way too much. Working with XMind is easy. One do not have to search through help to find how something should be done. User interface is really well designed, there are dozens of predefined shortcuts, so most of the work could be done without touching mouse. It may be a power of being used to, but I think that +/- (XMind) for collapsing / expanding is worse than just hitting space bar. But customizing XMind's shortcuts is really easy, and there is always a possibility to revert all changes and restore default settings. XMind allows using one of predefined themes - bunch of predefined colors and properties, that change the way your scheme looks like. Another couple of minutes... and XMind uses about 290MB (hey, and some said that Vista's memory consumption is huge, so how do you call that?). The best thing about XMind is that is not only a mind mapping software. It allows creating many different types of structures: fishbones, spreadsheet, organizational, tree and logic charts (and mind maps of course ;) There are a few more things that XMind has to offer: markers, notes, creating relationships, boundaries (creating a special shape around selected objects) and a few more.&lt;/p&gt; &lt;p align="justify"&gt;FreeMind is much smaller application than XMind. Working with FreeMind sometimes fools user: application behaves as if it was doing a lot of hard work, even if the only thing that is happening is just mouse cursor moving over objects. The (default?) behaviour of selecting object that mouse cursor is over gives user kind of a quirky feeling... the selection is not immediate, and it seems lto be a task very hard to achieve. There are a lot of useful shortcuts in FreeMind (and personally I think that they are much better designed than those in XMind). Creating and managing mind maps is easy, but one has to stop focusing on how ugly the app and mind maps created using it are... Being the opposition of XMind - FreeMind consumes only a fraction of memory that XMind does. At the beginning it allocates about 50MB, and if minimalized, this value drops to only few MBs. Sometimes (after using it for quite a while) it take about 20-30 MB more, but I didn't see it allocating more than 100. The biggest issues with FreeMind are related to its poor GUI design and ugly outlook. The fonts look horrible and whole mind maps too (fonts are not antialiased, so as shapes and connecting lines). If you select all objects on mind map and try to change font - be aware that those object which are not visible (collapsed) will not have its properties changed - not really nice surprise after expanding.&lt;/p&gt; &lt;p align="justify"&gt;So... Is XMind worth trying? Definitely yes. Am I going to give up using FreeMind? No. Two biggest issues are: memory consumption (it is hardly possible to use it as a background app with almost 300MB allocated by such a simple app) and lack of possibility to export created mind maps into FreeMind again. Mixing FreeMind (and especially its small resource allocation) and xmind (almost everything else ;) is the way to create the perfect mind mapping application.&lt;/p&gt; &lt;p align="justify"&gt; &lt;/p&gt;&lt;p align="justify"&gt;So, just to sum everything up:&lt;/p&gt; &lt;p align="justify"&gt;&lt;b&gt;FreeMind:&lt;/b&gt;&lt;/p&gt; &lt;p align="justify"&gt;Pros:&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;div&gt;free&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;small&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;available for many platforms (written in Java)&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;small memory &amp;amp; resource consumption&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;shortcuts are very well designed, for most of the time one does not have to use the mouse at all&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p align="justify"&gt;Cons:&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;div&gt;ugly (especially fonts - not antialiased (even if one sets up antialiasing for all apps)&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;GUI is far from being convenient&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;responsiveness while selecting objects... one may sometimes feel some strange delays&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;still in BETA&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;if there are some objects hidden, hitting Ctrl+A (select all) and changing font (for example) does not have any effect on those objects that are collapsed... don't like it.&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p align="justify"&gt;&lt;b&gt;Xmind:&lt;/b&gt;&lt;/p&gt; &lt;p align="justify"&gt;Pros:&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;div&gt;free&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;beautiful&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;creates very good looking mind maps / charts&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;it is much more than mind mapping software - it could be used for designing variety of things structures&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;outline view is definitely a big plus (or rather to say it will be a good thing if they improve it a bit)&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;properties view - very good idea&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;imports FreeMind's and MindManager's mind maps&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;able to store mind maps online (but hey, who really needs this kind of feature in the era of free online storage services?)&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;based on Eclipse, so it is easy to use to all those people used to Eclipse environment&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;available for many platforms: Windows, Mac, Linux...&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;portable version available (quite big, but it has java included, so it may be possible to use it on machine that does not have Java Runtime installed)&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p align="justify"&gt;Cons:&lt;/p&gt; &lt;ul&gt;&lt;li&gt; &lt;div&gt;huge, HUGE, AMAZING, ridiculous... memory consumption (it may be related to using Eclipse framework, which itself is memory hungry app, but... 300 MB?)&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;lacks export to FreeMind and /or MindManager (it seems that even PRO version is lacking this functionality)&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;slow (while moving mind map around, collapsing / expanding - even if animations are turned off)&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;selecting object on outline view does not select the same object on the main workspace, so outline is somewhat useless...&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;portable version is HUGE: ~110MB of free space is required&lt;/div&gt; &lt;/li&gt;&lt;li&gt; &lt;div&gt;you have to register to download it (God bless GuerillaMail? ;)&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p align="justify"&gt;Last minute news: at the time of finishing this note, XMind was allocating 450MB... no comments...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-4624346207888607870?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/4624346207888607870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=4624346207888607870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/4624346207888607870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/4624346207888607870'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/12/freemind-alternative-really_11.html' title='FreeMind alternative, really?'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-7089423062732030887</id><published>2008-12-07T20:30:00.001Z</published><updated>2008-12-07T20:30:00.663Z</updated><title type='text'>Color customization in CodeRush XPress</title><content type='html'>&lt;p align="justify"&gt;A while ago &lt;a href="http://community.devexpress.com/blogs/ctodx/archive/2008/10/27/coderush-xpress-announced-and-available.aspx"&gt;DevExpress introduced a new, totally free product&lt;/a&gt; for developers using Visual Studio - CodeRush XPress. I found it quite helpful, so it became one of the plugins I am using during my day to day developer activities. However, I was looking for possibility to change default colors (I have black background in my VS environment, so not all the colors are easy to notice), and couldn't find one. Recently, I have found the &lt;a href="http://www.devexpress.com/Support/Center/p/Q35328.aspx"&gt;solution&lt;/a&gt; on DevExpress site. It's a pity, that one must be aware of this &lt;em&gt;magic&lt;/em&gt; key combination, instead of being able to configure plugin behaviour from VS options menu. Anyway, after pressing Ctrl+Shift+Alt+O (easy to remember, right? all the modifier keys and 'O' as in &lt;strong&gt;O&lt;/strong&gt;ptions ;) you will see an option dialog, with dozen of things to change (or better: 'personalize'):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_rVMWuQUnWek/STwyM4Nv4pI/AAAAAAAAAFo/sxPmovBzW9I/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="592" alt="CodeRush XPress&amp;#39; option dialog." src="http://lh3.ggpht.com/_rVMWuQUnWek/STwyRqiwwmI/AAAAAAAAAFs/0ToaWZcZwWo/image_thumb%5B5%5D.png?imgmax=800" width="820" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-7089423062732030887?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/7089423062732030887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=7089423062732030887' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/7089423062732030887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/7089423062732030887'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/12/color-customization-in-coderush-xpress.html' title='Color customization in CodeRush XPress'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_rVMWuQUnWek/STwyRqiwwmI/AAAAAAAAAFs/0ToaWZcZwWo/s72-c/image_thumb%5B5%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-3778696863814428641</id><published>2008-11-28T19:51:00.000Z</published><updated>2008-11-28T20:01:53.531Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='UI design'/><title type='text'>Modern UI</title><content type='html'>&lt;p align="justify"&gt;Office 2007 UI is one of the things that forced many people to think about UI of their own applications. I remember while working for one of the companies in - we were all impressed by the new UI. We planned to change the outlook of our application and make it more convenient for the end-user (and looking somewhat similar to Ribbon UI). I have just found a &lt;a href="http://msdn.microsoft.com/en-us/library/cc872782.aspx"&gt;site on MSDN&lt;/a&gt; that describes all the things that people who want to create office 2007-like GUI should take under consideration (Ribbon guidelines). You may also be interesting in watching a &lt;a href="http://msstudios.vo.llnwd.net/o21/mix08/08_WMVs/UX09.wmv"&gt;1.5 hour presentation&lt;/a&gt; by &lt;a href="http://blogs.msdn.com/jensenh/default.aspx"&gt;Jensen Harris&lt;/a&gt;, who describes the process of designing Ribbon UI. He shows many prototypes and talks about research that Microsoft has conducted while designing Ribbon. The amount of work is impressive and if you're interested in creating modern GUI's this is definitely what you should see. The guidelines are what every developer / designer responsible for designing GUI should see, and think of. I have seen many applications that seem to be created 'by developers and for developers'. It is amazing how easy it is to make application hard to use, by making its GUI completely different that other similar application use (however sometimes innovation is what makes application better - just like in the case of Office applications).&lt;/p&gt;  &lt;p align="justify"&gt;Apple is a company that is believed to create and design the best user interfaces (although I am definitely not a keen on Apple, but I have to admit, that their applications look really neat, and they make apps really easy to use). There is a &lt;a href="http://developer.apple.com/DOCUMENTATION/UserExperience/Conceptual/AppleHIGuidelines/XHIGIntro/chapter_1_section_1.html"&gt;great site devoted to Apple developers&lt;/a&gt; that describes how should application be designed to meet all the standards for 'true Mac app'. I does not matter if one is a Mac developer or not - most of the things described are universal. It is a strong belief that 'good looking applications sell' - so why not spend a little bit more time on designing GUI - just to make sure that there were no pitfalls made that will prevent the app from gaining popularity? Command-line interfaces are gone, and creating GUI is not the same as creating GOOD GUI (it is definitely something more than just putting some controls on the form). Why not to learn from the best? Why not to use all the experience they want to share with?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-3778696863814428641?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/3778696863814428641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=3778696863814428641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/3778696863814428641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/3778696863814428641'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/11/modern-ui.html' title='Modern UI'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-8581255219614741460</id><published>2008-11-22T22:04:00.001Z</published><updated>2008-11-22T22:11:34.850Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='hdd'/><title type='text'>Disk problems? I hate it!</title><content type='html'>&lt;p align="justify"&gt;There is one thing I hate about computers: sometimes something doesn't work and it takes a lot of time to figure out what is causing troubles. I am really happy when everything works as I am expecting. I am aware that it is important to create backups - I prefer to devote small amount of time every day / week than have to spend all day repairing and trying to get my data back. Unfortunately I am also eager to check a lot of things that shows up - new operating systems' versions (different Linux distribution for example), different compilers, tools etc. As far as it does not involves playing with disk partitions I feel quite safe - only thing that I have to do is just to create backup of the environment I am currently using. However when it comes to repartitioning or changes in partition sizes (sometimes, I had to do it - no matter how much I am trying to avoid it) it takes much more time than expected. A few days ago I have decided to change organization of partition on my old desktop machine. I didn't expected it to take so much time...&lt;/p&gt;  &lt;p align="justify"&gt;The strangest thing that happened to me recently was... incidentally loss of a whole partition (the one with quite important data on it... and of course the one I didn't backed up earlier ;) At the beginning I thought that everything is lost... but after a while I realized, that it have to be possible to recover at least some of the information. It should be possible - just like in case of deleting files. If nothing has been saved on the same place - the information is still there, the issue is that OS somehow does not see it. After a few click I had the first &lt;a href="http://www.partition-recovery.com/"&gt;tool&lt;/a&gt;. Next couple of seconds, and... the tool informs me, that it found the lost partition, it allows me to see all the data on it... but... I am not able to recover them, because the full version of the software (the one you have to pay for) is needed for the write operation. I didn't want to waste my time, and wait for the code, so I started to search for the free alternative. After a while I have found &lt;a href="http://www.cgsecurity.org/wiki/TestDisk"&gt;TestDisk&lt;/a&gt; utility. It is completely free, and it is available in many version for different OSes. It is not as much friendly as earlier mentioned commercial app (TestDisk is a console application) but it does its job very good. After a few moments I had all my data back. And everything is ok (media are playable, archives have been tested and are error free). The best thing is that this utility (TestDisk) comes as a part of great LiveCD called &lt;a href="http://partedmagic.com/"&gt;PartedMagic&lt;/a&gt;. The LiveCD consist of a bunch of disk utilities, among them: &lt;a href="http://www.gnu.org/software/parted/"&gt;GNUParted&lt;/a&gt; (partition tool able to resize, move, create, delete partitions...), TestDisk (partition recovery tool) and &lt;a href="http://www.cgsecurity.org/wiki/PhotoRec"&gt;PhotoRec&lt;/a&gt; (file recovery). I advise to download PartedMagic's iso image, burn it, and have it always somewhere near - just in case...&lt;/p&gt;  &lt;p align="justify"&gt;A while ago, I went to my friends and they were having a problem - some application (which was really a state of the art when it comes to its design...) stopped working, because there were no sufficient free space on system partition (only 7 GB free...). They tried to reinstall this app on different partition - nothing changed - it claimed about insufficient free space on system drive. And that's where another utilities I use come in handy: &lt;a href="http://www.rekenwonder.com/linkmagic.htm"&gt;Junction Link Magic&lt;/a&gt; and &lt;a href="http://www.pearlmagik.com/winbolic/"&gt;Winbolic&lt;/a&gt;. What do these utilities allow? To be short: creating junction points (directory symbolic links, NTFS junction or however you'll call it). The thing is just to create a special link pointing to a directory on a different drive or partition (that has a lot of free space) and thus overcome the limitation of &amp;quot;insufficient free space&amp;quot;. It works similar to standard links, but it is transparent for all applications - the paths are not being changed, and from the view of application or file operations it is the same as it was before creating junction point. A few clicks in Winbolic (this one is my favorite) and everything was back to normal, app was starting without any complaint (all thing was about creating symbolic link for application's preferences stored in AppData...).&lt;/p&gt;  &lt;p align="justify"&gt;Similar technique I often use to avoid repartitioning my drive, and still be able to use all its space. When I give up some new and fancy Linux distribution (for any reason) - I just format the partition and link them to an empty directory (this is possible using Windows built in Administrative Tools -&amp;gt; Computer Management -&amp;gt; Disk Management). The only thing you have to do is to remove any drive letter that is assigned to drive, and mount the drive to any &lt;strong&gt;empty&lt;/strong&gt; directory to any of the partitions you use. From now on all the space from the specified partition (or drive) is accessible through the directory you've chosen. It works very similar to mounting drives / partition in Linux distributions. I find it much more convenient than having a lot of drive letters that you have to switch through to find something. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-8581255219614741460?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/8581255219614741460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=8581255219614741460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/8581255219614741460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/8581255219614741460'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/11/disk-problems-i-hate-it.html' title='Disk problems? I hate it!'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-2226501021551346498</id><published>2008-11-18T22:51:00.004Z</published><updated>2008-11-18T22:57:23.142Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='VisualSourceSafe'/><category scheme='http://www.blogger.com/atom/ns#' term='SVN'/><title type='text'>Visual SourceSafe to SVN migration.</title><content type='html'>&lt;p align="justify"&gt;After struggling with VSS for quite some time I decided to switch to SVN with all my private projects. I have used SVN before and I think it is great, but never had enough time to migrate all the projects. I thought that such an operation could not be painless. History of all changes was crucial for me - I did not want  to devote all those information held by VSS just because of the migration. I started looking for some kind of script I could use... and I was very lucky, because almost immediately I found the &lt;a href="http://www.poweradmin.com/sourcecode/vssmigrate.aspx"&gt;solution&lt;/a&gt; that did all the work for me. &lt;a href="http://www.poweradmin.com/sourcecode/vssmigrate.aspx"&gt;VssMigrate&lt;/a&gt; is a command line C++ utility developed by a bunch of folks (y&lt;/p&gt;&lt;p align="justify"&gt;ou will find all the info on the &lt;a href="http://www.poweradmin.com/sourcecode/vssmigrate.aspx"&gt;utility site&lt;/a&gt;). At the project page one will find a bunch of releases (bug fixes, additional features...) - personally I think the best idea is follow author's advice and download one of the latest (the one with 'tim2' suffix seems to be the latest one - it automatically removes VSS bindings). VssMigrate seems to be quite mature and as much developer-friendly  as could be - the only thing one has to do is to configure this tool by editing .config file.  It did take me, however, a couple of minutes to configure it properly, but when I figured out the proper values... the migration was quick as lightning. Below you may find configuration that worked for one of my projects:&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:79f1efef-e497-439d-81ee-5d018d7b6ee4" style="margin: 0px; padding: 0px; display: inline; float: none;"&gt;&lt;pre style="overflow: auto; background-color: White;"&gt;&lt;div&gt;&lt;!--  Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/  --&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="VSSWIN32"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="C:\Program Files\Microsoft Visual SourceSafe"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 2&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; # VSS\\Win32 directory which contains ssapi.dll&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 3&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="VSSDIR"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="d:\VSS"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 4&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #VSS repository directory (contains srcsafe.ini)&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 5&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="VSSPROJ"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="$/RegionCreator/"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 6&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #VSS project to start at (ie $/Product)&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 7&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="VSSUSER"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="&amp;lt;user&amp;gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 8&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #User to use for VSS commands, use blank for none&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 9&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="VSSPASSWORD"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;=""&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #password to use for VSS commands, blank is OK&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="SVNUSER"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="&amp;lt;computer_name&amp;gt;\&amp;lt;user_name&amp;gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #User to use for SVN commands, use blank for none&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="SVNPASSWORD"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;=""&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #password to use for SVN commands, blank is OK&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="SVNURL"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="file:///D:/Svn/RegionCreator"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #URL to use for the root of the check in&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="SVNPROJ"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="trunk"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #SVN project to start at (ie $/Product)&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="SVNREVPROPSPATH"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="d:\Svn\db\revprops"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #SVN Repository directory (ends in [RepositoryName]\db\revprops\)&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;21&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="WORKDIR"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="c:\Temp\vss"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;22&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #Directory under which files and directories will be created as work progresses&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;23&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="DEBUG"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="1"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;24&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #turn on debug output, blank is OK&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;25&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;add &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="AUTORETRY"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="1"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;26&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; #if a command fails to run, it will be run automatically 1 time before failing&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;--&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="justify"&gt;Thanks to the comments, and sample values - editing config file was not such a big hassle as I was expecting. Just to make it even clearer - I will describe some properties that may not be obvious at the beginning:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;[line 5] "VSSPROJ" should hold internal path of a project inside VSS.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;[line 19] "SVNREVPROSPATH" should point into "db\revprops" that is located right under the folder when SVN repository was created&lt;br /&gt;&lt;/li&gt;&lt;li&gt;[line 21] "WORKDIR" is a temporary directory used during the migration process. The directory must exist before running migration utility.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;I am not sure if I have configured it properly, but it worked for me as a charm. The only disadvantage I can think of is that it is impossible to import all the content of VSS at once. One has to change configuration for every project that needs to be copied to SVN. It just take me about 15 minutes to move 8 solutions (most of them consisting of 3-4 projects).&lt;br /&gt;&lt;br /&gt;And at the end... it is a good idea to remove source control bindings before releasing your sources, right? And why do it manually if there is another &lt;a href="http://visualstudiohacks.com/tools/sourcecontrol/sourcesafe-bindings-remover/"&gt;great tool&lt;/a&gt; that does all this work? :)  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-2226501021551346498?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/2226501021551346498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=2226501021551346498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/2226501021551346498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/2226501021551346498'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/11/visual-sourcesafe-to-svn-migration.html' title='Visual SourceSafe to SVN migration.'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-3272279628354225493</id><published>2008-11-11T14:21:00.001Z</published><updated>2008-11-11T14:21:53.248Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SVN'/><title type='text'>svn hosting service</title><content type='html'>&lt;p align="justify"&gt;Having your sources (the private projects) only on one machines is not a good idea. The need of creating backups is obvious, but much more convenient for any developer is to be able to store source files in outer version control system. A few weeks ago I have discovered &lt;a href="http://www.assembla.com/"&gt;Assembla&lt;/a&gt;. It was a great site, that offered free svn hosting (200MB of space), free trac and many more services that most of developers would find very useful. Unfortunately I just got an email from &lt;a href="http://www.assembla.com/"&gt;Assembla&lt;/a&gt;, where the staff informs that within a month they stop offering private free spaces. You just have to decide if you want to convert your space to public one (i.e. publicly available to anyone) or you prefer to pay for a private one. Well... I choose neither. Instead I started looking for an alternative. It is quite hard, because &lt;a href="http://www.assembla.com/"&gt;Assembla&lt;/a&gt; was not only a svn hosting, but for me it was the most important service. I think that &lt;a href="http://xp-dev.com/app/"&gt;XP-Dev&lt;/a&gt; and &lt;a href="http://www.codespaces.com/"&gt;Codespaces&lt;/a&gt; are worth trying. I just hope that there will be a free svn hosting service for all people developing free projects (not only open source, but also closed source free). I think it will be a great loss if there is no such a possibility.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-3272279628354225493?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/3272279628354225493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=3272279628354225493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/3272279628354225493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/3272279628354225493'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/11/svn-hosting-service.html' title='svn hosting service'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-4354312282756194762</id><published>2008-11-08T19:13:00.001Z</published><updated>2008-11-08T19:13:00.827Z</updated><title type='text'>the best things in life are for free, huh?</title><content type='html'>&lt;p align="justify"&gt;A few weeks ago I started searching for some place to have a WordPress powered blog hosted. I didn't want to buy a hosting. First hosting service I have tested was &lt;a href="http://wordpress.com/"&gt;WordPress.com&lt;/a&gt;. Although it allows to create a blog for free there are way too many limitations (limited amount of skins you may use, no FTP access - so uploading binary files is not convenient). Then I tested &lt;a href="http://www.blogsome.com/"&gt;Blogsome&lt;/a&gt;, &lt;a href="http://blogetery.com/"&gt;Blogetery&lt;/a&gt;, and a few others similar services that gives WordPress powered blogs for free, but none was the one I was looking for. I realized, that it would be the best for me to have a free hosting that would allow me to install WordPress and manage it by myself instead of having a blog hosted on some site that specializes in hosting blogs for free. I didn't believe it could be possible, but after a couple of hours (very, very exhausting) searching through the Web I have found the best (and FREE) hosting service - &lt;a title="http://www.000webhost.com/" href="http://www.000webhost.com/"&gt;http://www.000webhost.com/&lt;/a&gt;. Yup, it is REALLY free. For free you get: 350MB of disk space, 100GB of transfer (per year I think), PHP, MySQL and mod_rewrite Apache module (this on is not a must, but I am sure you'll want to use it). Setting your own blog is not very hard. It just takes a couple of minutes - after unpacking and copying WordPress source files, you have to configure it, create a database... and you're ready to blog! What is mod_rewrite for? Well... it just makes all blog &lt;a href="http://en.wikipedia.org/wiki/Permalink"&gt;permalinks&lt;/a&gt; looks much better than default &lt;a href="http://yourblog/?p=456"&gt;http://yourblog/?p=456&lt;/a&gt; and allows them to look more 'human': &lt;a href="http://yourblog/2008/11/03/just-a-test"&gt;http://yourblog/2008/11/03/just-a-test&lt;/a&gt;. &lt;/p&gt;  &lt;p align="justify"&gt;But what is the biggest advantage of having WordPress blog set up by yourself instead of using WordPress.com or &lt;a href="https://www.blogger.com/start"&gt;Blogger.com&lt;/a&gt; that deal with all the hassle by themselves? Well... let's suppose that you would like to have something more than 'just a blog'. Let's suppose, that you would like to have a blog looking more like a personalized homepage, that main part is blog. What to do? &lt;a href="https://www.blogger.com/start"&gt;Blogger.com&lt;/a&gt; does not allow to create additional pages - you may of course use &lt;a href="http://sites.google.com/"&gt;Google Sites&lt;/a&gt;, but I gave up after a couple of hours trying to create the site the way I wanted. &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; is much more flexible. You may create a lot of additional pages, the may even be organized in a hierarchy - anything you want. The second thing is that hosting additional files on &lt;a href="https://www.blogger.com/start"&gt;Blogger&lt;/a&gt; is not possible - you got to put files somewhere else... convenient? Don't think so. The last thing (maybe not the most important) is ability to change the look of your blog. &lt;a href="http://wordpress.com/"&gt;WordPress.com&lt;/a&gt; gives you a bunch of skins to choose from, the same is on &lt;a href="https://www.blogger.com/start"&gt;Blogger&lt;/a&gt; - having your blog hosted on hosting service like &lt;a title="http://www.000webhost.com/" href="http://www.000webhost.com/"&gt;http://www.000webhost.com/&lt;/a&gt; gives you total freedom to apply new themes, manage them, upload binary files, install additional plugins to &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt;... you are the person who decides what you need. And for me, there is another advantage of &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; - it works well with &lt;a href="http://get.live.com/writer/overview"&gt;Windows Live Writer&lt;/a&gt; (I am not a keen on built in blog editors).&lt;/p&gt;  &lt;p align="justify"&gt;There are of course other blog engines, but from those I have tested &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; seems to be the most flexible and the cheapest :) I am planning to move my blog to a &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; powered one in a couple of weeks. And if you ever wondered if there is a possibility to have your own blog/site hosted for free - do not hesitate and try what &lt;a href="http://www.000webhost.com/"&gt;http://www.000webhost.com/&lt;/a&gt; has to offer. If you're interested in setting up your blog in &lt;a href="http://www.000webhost.com"&gt;http://www.000webhost.com&lt;/a&gt; - I think &lt;a href="http://my-leung.blogspot.com/2008/02/how-to-install-wordpress.html"&gt;some info on configuring WordPress&lt;/a&gt; may be useful (just pay attention that 'localhost' is not a proper value for 'DB_HOST' in config file - but you'll find information what should be there on hosting service's information pages; the same is with enabling mod_rewrite - everything you need to know you will find on &lt;a href="http://www.000webhost.com"&gt;http://www.000webhost.com&lt;/a&gt; information pages).&lt;/p&gt;  &lt;p align="justify"&gt;Happy blogging! :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-4354312282756194762?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/4354312282756194762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=4354312282756194762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/4354312282756194762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/4354312282756194762'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/11/best-things-in-life-are-for-free-huh.html' title='the best things in life are for free, huh?'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-1182832352435130416</id><published>2008-09-19T15:29:00.001+01:00</published><updated>2008-09-19T15:30:28.159+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio plugins'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='SVN'/><title type='text'>Visual Studio &amp; SVN integration</title><content type='html'>&lt;p align="justify"&gt;SVN is nowadays one of the most popular version control systems. There is a great tool for Windows called &lt;em&gt;&lt;a href="http://tortoisesvn.tigris.org/"&gt;TortoiseSVN&lt;/a&gt;&lt;/em&gt; - it is very popular, easy to use and has a lot of features. But... it is not very convenient while developing. The need to switch from Visual Studio just to check-in, resolve conflicts... well it is definitely not what I want. I wanted to have a tool that integrates with Visual Studio just like Microsoft's Visual Source Safe or TFS does. Quite a while ago I tried AnkhSVN, but it didn't work as good as I wanted - it had a heavy impact on my Visual Studio (sometimes I had to wait very long to be able to do anything - because VS tended to freeze). &lt;/p&gt;  &lt;p align="justify"&gt;Few months ago I found out that many people praise &lt;em&gt;&lt;a href="http://www.visualsvn.com/"&gt;VisualSVN&lt;/a&gt;&lt;/em&gt;. It is not a plugin (just like the old AnkhSVN) - it uses SCC interface, so it behaves just like VSS/TFS. Some people says that the only thing they dislike is that they feel it just a wrapper for TortoiseSVN (VisualSVN just launches TortoiseSVN's dialogs for most of the operations). I think it is not a disadvantage - TortoiseSVN is a great client, so if there is a way to use not, and not be forced to switch from Visual Studio to Explorer / Total Commander / any other shell... that's just great (for me). The only disadvantage of VisuaSVN is that one have to pay for it. In the past it was very cheap (19$) but after gaining popularity it became much more expensive - now it costs 50$ (but there is a way to get it for free - one just have to be active developer involved in open source project). &lt;/p&gt;  &lt;p align="justify"&gt;Well... I wanted to find a free alternative, and that's how I found &lt;em&gt;&lt;a href="http://blog.programmerslog.com/?p=4"&gt;Garry Bodsworth's special settings&lt;/a&gt;&lt;/em&gt;, that integrates TortoiseSVN with Visual Studio. It is free. It is fast (there is no impact on Visual Studio performance). It contains both: version for VS2008 and VS2005. Perfect? Well... almost ;) It is just a setting file, so 'Pending Checkins' won't work, there is no mechanism showing new files or changed files in projects / solutions... &lt;/p&gt;  &lt;p align="justify"&gt;All those things that Garry's settings lacks are provided by the latest, totally rewritten version of &lt;em&gt;&lt;a href="http://ankhsvn.open.collab.net/"&gt;AnkhSVN&lt;/a&gt;&lt;/em&gt;! Now AnkhSVN works not as a plugin, but as SCC package - the integration is done the way it should be. The impact on Visual Studio performance is not noticeable. 'Pending Checkins' works just like with VSS / TFS, managing newly added, changed or deleted files in solutions / projects is much simpler - thanks to showing all the changes right in the solution view. Personally I think that TortoiseSVN's dialogs are better ;) so at the moment I am using both - Garry's settings and AnkhSVN. Garry's settings allows me to use very well known by me mechanisms provided by TortoiseSVN, and AnkhSVN shows me all the changes I have made recently - it saves me a lot of time, and I am sure I won't miss any file while doing heck-in.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-1182832352435130416?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/1182832352435130416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=1182832352435130416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/1182832352435130416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/1182832352435130416'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/09/visual-studio-svn-integration.html' title='Visual Studio &amp;amp; SVN integration'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-8055764177359014321</id><published>2008-09-05T01:10:00.009+01:00</published><updated>2008-09-05T18:30:11.614+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Automatic system backups</title><content type='html'>&lt;p align="justify"&gt;The need of creating backups is obvious. Data is the most important thing on everyone's PC. But how about all the environment? What about system, it's configuration, configuration of all installed applications? A while ago a new idea was presented - image creating software. The first was (I think) Norton Ghost. At the very begging the app was very, very small (just a little bit bigger than 100 kilobytes) and run under DOS (so yes, you did have to have a DOS bootable diskette, or ability to boot into plain old DOS environment). This kind of software became more and more popular, and nowadays there are dozens of applications you may choose from. There is, however, one I would like to present - special version of &lt;a href="http://www.seagate.com/ww/v/index.jsp?locale=en-US&amp;amp;name=MaxBlast_5&amp;amp;vgnextoid=7add8b9c4a8ff010VgnVCM100000dd04090aRCRD"&gt;&lt;em&gt;Acronis True Image&lt;/em&gt;&lt;/a&gt; available under the name of &lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;a href="http://www.seagate.com/ww/v/index.jsp?locale=en-US&amp;amp;name=MaxBlast_5&amp;amp;vgnextoid=7add8b9c4a8ff010VgnVCM100000dd04090aRCRD"&gt;"MaxBlast"&lt;/a&gt;&lt;/span&gt; at Seagate's site. This software is free for everyone who has Maxtor or Seagate hard drive installed in their PC. I am not sure which version of Acronis True Image is being available under the label of MaxBlast, but as far as I remember it is version 10.0 (there is version 11.0 of Acronis True Image available). So what is so great about this software except it's price? Well, it suits my needs very good: it creates really small images (although it takes a lot of time, if you choose the maximum compression level), and allows to restore images in a very convenient way - you just decide what you want to do, and if you choose to restore whole system partition (the one you actually work on) the software boots before windows, and makes all operations necessary to restore your previous environment. &lt;/p&gt;  &lt;p align="justify"&gt;There is one thing, I think would be very handful for a lot of people. Possibility of storing configuration on-line. I imagine it should work like this: all applications will use the same way of storing all its settings (for example somewhere in Applications Data). Zipping those files should not be a problem. And of course it should be possibile to restore the configuration in only few clicks. I would like it to be connected with one of the free file storing services (Dropbox, Microsoft's SkyDrive or any other). Advantage of such a behavior is obvious - one could save a lot of time in case of reinstalling system and all applications (and it is not always possible to restore previously created system image - sometimes you just install your system from scratch, for example after acquiring new machine...).&lt;/p&gt;  &lt;p align="justify"&gt;Anyway... going back to system backups. They are really important, but what I have learned while working with Windows is that registry files are crucial. Sometimes you may wonder what happened, and after deep investigation you realize that one (or more) of registry files is broken. So... what to do? Creating system backup everyday is not convenient (and as I said before - it takes a lot of time. Personally I create full system backup once a week only). But there is a way to keep those vulnerable files in safe place in case something happens. There is even a small and handy application written that does this task for you - &lt;a href="http://www.larshederer.homepage.t-online.de/erunt/"&gt;&lt;em&gt;Erunt&lt;/em&gt;&lt;/a&gt;. I started using this small tool a while ago, and after a couple of weeks I have spotted an &lt;em&gt;&lt;a href="http://www.winhelponline.com/blog/backup-windows-vista-registry-daily-using-erunt/"&gt;interesting article&lt;/a&gt;&lt;/em&gt; that shows how to configure Erunt using task scheduler, so it is being run every time your Windows starts. It is great, but... those backup files are a bit too big (registry backup on my Vista based laptop takes about 80MB for each day - for me it is definitely too big). I started to create a small batch, that you may find useful. So, here it is:&lt;/p&gt;  &lt;pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);font-family:monospace;font-size:12px;"&gt;  1: @echo off&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);font-family:monospace;font-size:12px;"&gt;  2:&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);font-family:monospace;font-size:12px;"&gt;  3: &lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; root=AutoBackup&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);font-family:monospace;font-size:12px;"&gt;  4: &lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; maxfiles=5&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);font-family:monospace;font-size:12px;"&gt;  5:&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);font-family:monospace;font-size:12px;"&gt;  6: "&lt;span style="color: rgb(139, 0, 0);"&gt;erunt\AUTOBACK.EXE&lt;/span&gt;" %root%\#Date# sysreg otherusers &lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);font-family:monospace;font-size:12px;"&gt;/noconfirmdelete /noprogresswindow&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);font-family:monospace;font-size:12px;"&gt;  7:&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);font-family:monospace;font-size:12px;"&gt;  8: &lt;span style="color: rgb(0, 0, 255);"&gt;rem&lt;/span&gt; setting date variables&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);font-family:monospace;font-size:12px;"&gt;  9: &lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;day&lt;/span&gt;=%DATE:~7,2%&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);font-family:monospace;font-size:12px;"&gt; 10: &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; %&lt;span style="color: rgb(0, 0, 255);"&gt;day&lt;/span&gt;:~0,1% == 0 (&lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; shortday=%DATE:~8,1%) &lt;span style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt; (&lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; shortday=%DATE:~7,2%)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);font-family:monospace;font-size:12px;"&gt; 11: &lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;month&lt;/span&gt;=%DATE:~4,2%&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);font-family:monospace;font-size:12px;"&gt; 12: &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; %&lt;span style="color: rgb(0, 0, 255);"&gt;month&lt;/span&gt;:~0,1% == 0 (&lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; shortmonth=%DATE:~5,1%) &lt;span style="color: rgb(0, 0, 255);"&gt;else&lt;/span&gt; (&lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; shortmonth=%&lt;span style="color: rgb(0, 0, 255);"&gt;month&lt;/span&gt;%)&lt;br /&gt;&lt;/pre&gt;&lt;pre style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);font-family:monospace;font-size:12px;"&gt; 13: &lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;year&lt;/span&gt;=%DATE:~-4%&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);  "&gt; 14:&lt;br /&gt;&lt;/pre&gt;&lt;pre style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);font-family:monospace;font-size:12px;"&gt; 15: &lt;span style="color: rgb(0, 0, 255);"&gt;rem&lt;/span&gt; setting archive &lt;span style="color: rgb(0, 0, 255);"&gt;and&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;folder&lt;/span&gt; names...&lt;br /&gt;&lt;/pre&gt;&lt;pre style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238); font-family: monospace; font-size: 12px;"&gt; 16: &lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; archive_name=%&lt;span style="color: rgb(0, 0, 255);"&gt;year&lt;/span&gt;%-%&lt;span style="color: rgb(0, 0, 255);"&gt;month&lt;/span&gt;%-%&lt;span style="color: rgb(0, 0, 255);"&gt;day&lt;/span&gt;%&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);  font-family:monospace;font-size:12px;"&gt; 17: &lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; folder_name=%shortmonth%-%shortday%-%&lt;span style="color: rgb(0, 0, 255);"&gt;year&lt;/span&gt;%&lt;br /&gt;&lt;/pre&gt;&lt;pre style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238); font-family: monospace; font-size: 12px;"&gt; 18:&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);  font-family:monospace;font-size:12px;"&gt; 19: &lt;span style="color: rgb(0, 0, 255);"&gt;rem&lt;/span&gt; compress the registry backup &lt;span style="color: rgb(0, 0, 255);"&gt;files&lt;/span&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;pre style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);font-family:monospace;font-size:12px;"&gt; 20: cd %root%&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);  font-family:monospace;font-size:12px;"&gt; 21: &lt;span style="color: rgb(0, 0, 255);"&gt;rem&lt;/span&gt; backup command: "&lt;span style="color: rgb(139, 0, 0);"&gt;c:\program files\7-Zip\7z.exe&lt;/span&gt;" &lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);  "&gt;a -r -t7z -mx9 &amp;lt;archive name&amp;gt; &amp;lt;directory&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);font-family:monospace;font-size:12px;"&gt; 22: "&lt;span style="color: rgb(139, 0, 0);"&gt;c:\program files\7-Zip\7z.exe&lt;/span&gt;" a -r -t7z -mx9 %archive_name%.7z %folder_name%&lt;br /&gt;&lt;/pre&gt;&lt;pre style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);font-family:monospace;font-size:12px;"&gt; 23: cd ..&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);"&gt; 24:&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);font-family:monospace;font-size:12px;"&gt; 25: &lt;span style="color: rgb(0, 0, 255);"&gt;rem&lt;/span&gt; ...removing &lt;span style="color: rgb(0, 0, 255);"&gt;folder&lt;/span&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);"&gt; 26: rd /S /Q %root%\%folder_name%&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);"&gt; 27:&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);"&gt; 28: &lt;span style="color: rgb(0, 0, 255);"&gt;rem&lt;/span&gt; ...checking &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; there are some old-registry backup &lt;span style="color: rgb(0, 0, 255);"&gt;files&lt;/span&gt; &lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);"&gt;that should be deleted&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);"&gt; 29: @&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; exist &lt;span style="color: rgb(0, 0, 255);"&gt;files&lt;/span&gt;.txt ( del &lt;span style="color: rgb(0, 0, 255);"&gt;files&lt;/span&gt;.txt )&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);"&gt; 30: cd %root%&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);"&gt; 31:  @&lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; filenum=0&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);"&gt; 32:  @dir *.7z /b /o:-n &amp;gt; ..\&lt;span style="color: rgb(0, 0, 255);"&gt;files&lt;/span&gt;.txt&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);"&gt; 33:&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);"&gt; 34:  &lt;span style="color: rgb(0, 0, 255);"&gt;for&lt;/span&gt; /f %%f &lt;span style="color: rgb(0, 0, 255);"&gt;in&lt;/span&gt; (..\&lt;span style="color: rgb(0, 0, 255);"&gt;files&lt;/span&gt;.txt) &lt;span style="color: rgb(0, 0, 255);"&gt;do&lt;/span&gt; (&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);"&gt; 35:   &lt;span style="color: rgb(0, 0, 255);"&gt;call&lt;/span&gt; ..\autorun-del.cmd %%f&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(221, 221, 238);"&gt; 36:  )&lt;br /&gt;&lt;/pre&gt;&lt;pre face="monospace" size="12px" style="margin: 0em; width: 100%; background-color: rgb(251, 251, 251);"&gt; 37: cd..&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em;  width: 100%;  background-color: rgb(221, 221, 238);font-family:monospace;font-size:12px;"&gt; 38: &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; exist &lt;span style="color: rgb(0, 0, 255);"&gt;files&lt;/span&gt;.txt ( del &lt;span style="color: rgb(0, 0, 255);"&gt;files&lt;/span&gt;.txt )&lt;/pre&gt;&lt;/pre&gt;and (thanks to the limitations of batch files) the second, very small batch:&lt;br /&gt;&lt;pre&gt;&lt;pre   style="margin: 0em;  width: 100%;  background-color: rgb(251, 251, 251);font-family:monospace;font-size:12px;"&gt;  1: &lt;span style="color: rgb(0, 0, 255);"&gt;set&lt;/span&gt; /a filenum=filenum+1&lt;br /&gt;&lt;/pre&gt;&lt;pre   style="margin: 0em;  width: 100%;  background-color: rgb(221, 221, 238);font-family:monospace;font-size:12px;"&gt;  2: &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; %filenum% GTR %maxfiles% ( del /F /Q %1 )&lt;/pre&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;How does it work? The idea is simple. After creating folder that contains backup of all registry files - the folder and its' content is being compressed. Then, the folder is being deleted. At the end the script checks if there are too many backup files (i.e. if amount of backup files is greater than the one you set in &lt;em&gt;'autorun.cmd'&lt;/em&gt;) - if so, the oldest file(s) are deleted. I have set the script to run before logging into Windows, but you can of course run the script manually (if using Vista with UAC remember to give it proper privileges). Archives containing backups of registry files are created per-day - if the script is being run more then once - it updates the content of the archive. I assumed that:&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;the folder where &lt;em&gt;&lt;a href="http://www.larshederer.homepage.t-online.de/erunt/"&gt;Erunt&lt;/a&gt;&lt;/em&gt; is stored is named 'Erunt'; both batch files should be located in the Erunt's parent folder&lt;br /&gt;&lt;/li&gt;&lt;li&gt;archives with registry backup files are stored in Erunt's sibling-folder. The folder's name is 'AutoBackup' (you may change it - folder name is stored in &lt;strong&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;%root%&lt;/span&gt;&lt;/strong&gt; variable)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;default amount of backup archives is 5 - it may be changed by editing &lt;span style="color: rgb(0, 0, 128);"&gt;&lt;strong&gt;%maxfiles%&lt;/strong&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; - thanks to compression one archive is only about 11MB, so even storing backups of last two weeks is not a big-deal.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;After struggling with windows batch files, I solemnly promised myself not to use it any more. Next time I will have to create anything like this, I will use PowerShell or Python ;) Batch files are a real pain. Hope someone finds it a bit helpful. For me it is a way to be more confident that in case of system damage I will be able to recover my environment very fast.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-8055764177359014321?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/8055764177359014321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=8055764177359014321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/8055764177359014321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/8055764177359014321'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/09/system-backups_05.html' title='Automatic system backups'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-8516948725604519525</id><published>2008-08-31T22:53:00.001+01:00</published><updated>2008-08-31T22:53:28.398+01:00</updated><title type='text'>Universal(?) Disk Format...</title><content type='html'>&lt;p align="justify"&gt;Funny thing, but when I hear that something is &lt;em&gt;'universal'&lt;/em&gt; I am starting having doubts. Not about universality. No. About usefulness. I wonder if something that is &lt;em&gt;'universal'&lt;/em&gt; is capable of doing one thing the proper way. In Poland we have a saying: 'If something is quite-good in many areas, it is not good enough in any of them'. &lt;/p&gt;  &lt;p align="justify"&gt;Few days ago, I received an .iso image that was created as an &lt;a href="http://en.wikipedia.org/wiki/Universal_Disk_Format"&gt;&lt;em&gt;udf&lt;/em&gt;&lt;/a&gt; image. I am using the free version of &lt;a href="http://trial.alcohol-soft.com/"&gt;&lt;em&gt;Alcohol 52%&lt;/em&gt;&lt;/a&gt;, so I mounted it immediately... and saw only information, that 'this disk was created as an udf image, and your system does not support this format' (or something like this). I tried to mount it on my alternative os - Ubuntu 8.04 (also using &lt;em&gt;udftools&lt;/em&gt;) - but it didn't work too. I Googled for a while, and found a solution - the free version of Elby's &lt;a href="http://www.elby.ch/fun/software/index.html"&gt;&lt;em&gt;Virtual Clone Drive&lt;/em&gt;&lt;/a&gt;. I mounted the image to a new virtual drive... and it worked! It seems that Elby's virtual drive is the only free software that is capable of mounting disks in udf format (or udf 2.x - I didn't checked the version). I didn't get rid of Alcohol 52% (mainly because of it shell integration) but Vritual Clone Drive is just a good addition when needed.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-8516948725604519525?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/8516948725604519525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=8516948725604519525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/8516948725604519525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/8516948725604519525'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/08/universal-disk-format.html' title='Universal(?) Disk Format...'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-451091113596047695</id><published>2008-06-12T09:15:00.000+01:00</published><updated>2008-06-14T16:03:08.991+01:00</updated><title type='text'>Aspect oriented programming</title><content type='html'>&lt;div style="text-align: justify;"&gt;I have heard about aspects during studies. I was not very interested in it and did not have any need to learn about it more. What I've heard was mainly about &lt;span style="font-style: italic;"&gt;'reusable code'&lt;/span&gt; and about &lt;span style="font-style: italic;"&gt;'software patching'&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Software patching was explained to me as a method to make some changes in software not being forced to make changes in sources and compile it again. So, what is the advantage? As you know, after deploying new version of application that someone &lt;span style="font-style: italic;"&gt;out-there&lt;/span&gt; is using, test team should make everything what is possible to make sure, that the fixes in new version did not brake anything (and did not make any new bugs).&lt;br /&gt;&lt;br /&gt;The example describing the technique of &lt;span style="font-style: italic;"&gt;'software-patching'&lt;/span&gt; I was given was: lets imagine a big financial system being used by a bank or a financial company. Lets image, that the financial law in a country is being changed, so changes to the system are necessary. Traditional way is to make changes (I mean: write some additional code fixing the way system calculates taxes...) and deliver it to the client. (Of course, there is way better approach - at the stage of analysis someone could have been such a clever person who could predict this situation, and think of it, so decision could have been made not to use fixed tax rates but to store the tax rate into a special &lt;span style="font-style: italic;"&gt;'configuration'&lt;/span&gt; table in database, or in config files. But... lets think for a while, that the system we are considering changing was not created in this situation in mind).&lt;br /&gt;So what is the aspect approach? It is based rather on idea of &lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;'plugins'&lt;/span&gt;&lt;/span&gt; than one-big monolith. So, the idea is to deliver additional code, that will be called before, or after a specified function / procedure, so it may change the behaviour of the whole application. In the example, the code should take the return value from the function that calculates tax, and should add the amount so the height of the tax would be calculated properly.&lt;br /&gt;&lt;br /&gt;There are of course some problems in delivering the patches, but... it was just an example ;)&lt;br /&gt;&lt;br /&gt;The second approach's goal is rather to help in the stage of creating application, than stage of patching it. It is being used during development. The common situation is that it is more and more complex to split code into proper layers. In business / logic layer there is always some code that is totally technical: exception handling, logging, etc. At the very beginning it may not be a big problem, but when application grows it become more and more significant (. Thanks to aspect oriented approach we may use .NET attrributes and inform the compiler that before/after this specified functions (or bunch of function which names contains specified characters: "OnClick" for example) some additional code (delivered in separate function) should be run.&lt;br /&gt;Sounds like very interesting idea, isn't it?&lt;br /&gt;&lt;br /&gt;About the second approach, I have heard recently - last Saturday - to be more precise. I have attended to Gael Frateur's lecture during &lt;a style="font-style: italic;" href="http://codecamp.pl/en/Homepage.aspx"&gt;CodeCamp&lt;/a&gt; (held in Krakow). I must admit, that I really enjoyed the presentation, and I think it was really worth attending to and listening. Now I am preparing one of my small projects to benefit from AOP concepts.&lt;br /&gt;&lt;br /&gt;Aspect oriented programming is not very widely know or used, but there are surprisingly many solutions for different languages (and platforms) available - so I think anyone interested in it would be able to find something suitable (there are a lot of projects for .NET and Java, there are some for C++ and also for Python and even Lua! - this &lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Aspect-oriented_programming#Implementations"&gt;list&lt;/a&gt; seems to be quite comprehensive ).&lt;br /&gt;&lt;br /&gt;There are two projects for .NET platform I have read about (and tried to use in very, very simple test projects):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.dcl.hpi.uni-potsdam.de/research/loom/"&gt;LOOM.NET&lt;/a&gt; - it has two different weavers: Gripper and Rapier. Gripper is static, and Rapier is dynamic one.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.postsharp.org/"&gt;PostSharp&lt;/a&gt; - this solution is based on post-compiler approach, just to cut that short: it is intended for development, not software patching&lt;/li&gt;&lt;/ul&gt;Right after the presentation, I talked a while with Gael Frateur (the creator of PostSharp) and he assured me, that he is thinking about adding a dynamic weaver to PostSharp .&lt;br /&gt;&lt;br /&gt;For me, aspect oriented programming is very interesting technique. I am planning to devote more time and investigate the possibilities and limitations of AOP in the nearest future.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-451091113596047695?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/451091113596047695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=451091113596047695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/451091113596047695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/451091113596047695'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/06/aspect-oriented-programming.html' title='Aspect oriented programming'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-8228558310396593592</id><published>2008-02-24T17:57:00.000Z</published><updated>2008-02-24T18:08:33.073Z</updated><title type='text'>Problems uninstalling VS 2003?</title><content type='html'>&lt;div style="text-align: justify;"&gt;Recently I was just trying to get rid of some apps I would not use any more. I found out that I still have VS 2003 installed. VS and MSDN takes about 3GB of space so I almost immediately launech "Add Remove Programs" and clicked "Remove". As for my surprise VS did not want to unistall. It just showed me again the dialog box where I could choose which features I would like to &lt;span style="font-weight: bold;"&gt;install&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;/span&gt; I repeated procedure several times, but nothing changed. In the act of desperation, I just deselected everything and clicked "install". Then (just at the very begging of installation) clicked "cancel", and started the procedure again from clicking "remove" in "Add Remove Programs". And... it worked.&lt;br /&gt;&lt;br /&gt;One thing that struck my mind is that installing / uninstalling applications is still a pain. If you are to install / uninstall several applications... you are to waste some time sitting in front of your PC and waiting for any actions you should take. Why there is no possibility to choose many apps to deinstall? Why is it still so hard to install several apps one after another? Why can't you just have the possibility to "batch" installation processes? Why nobody though of making installers able to read some "setup configuration" (so that you could specify some basic options for installation like: destination folder, type of installation: full / minimal - custom will need of course your assistance...). PC hardware and OS'es changed a lot in recent years, but maintaining your software is still not as painful as it should be. When will we see new better setup technology? Will we see it at all?&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-8228558310396593592?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/8228558310396593592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=8228558310396593592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/8228558310396593592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/8228558310396593592'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/02/problems-uninstalling-vs-2003.html' title='Problems uninstalling VS 2003?'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-3646843268963457158</id><published>2008-02-09T01:00:00.001Z</published><updated>2008-02-09T01:20:52.440Z</updated><title type='text'>GMail coloured labels hack</title><content type='html'>&lt;div style="text-align: justify;"&gt;A while ago Google announced that their GMail accounts offer label coloring (you may define color for every label you've created). I checked it immediately after I had heard about it. It worked, and I really like this feature. But some of my friends were unable to use it. Their GMail just did not have any label-palete that is used to define labels colors. The thing just drove me crazy. I did not know what was the reason of such a behaviour of Google's mail service. I thought that it takes time to migrate all account, but... &lt;a href="http://groups.google.com/group/Gmail-Problem-solving/browse_thread/thread/d39be0c4e8d13ade"&gt;I just found a solution ;&lt;/a&gt;) It appears that you &lt;span style="font-weight: bold;"&gt;have to&lt;/span&gt; change language of your GMail account into English-US. I've tried it and it works! So... if  you would like to use coloured labels - try to set language into 'English-US'. It should work for you (unless your account is not migrated... ;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-3646843268963457158?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/3646843268963457158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=3646843268963457158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/3646843268963457158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/3646843268963457158'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/02/gmail-coloured-labels-hack.html' title='GMail coloured labels hack'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-4759894612143647880</id><published>2008-01-25T13:28:00.000Z</published><updated>2008-01-25T22:30:54.179Z</updated><title type='text'>VS 2008 &amp; C# 3.0</title><content type='html'>&lt;div style="text-align: justify;"&gt;I have been using VS 2008 &amp;amp; .NET Framework for my personal needs for quite a while and I would like to share some of my thoughts about the new technology. As for changes in C# 3.0 - you can find complete list of changes in .NET Framework (and C#) on &lt;a href="http://msdn2.microsoft.com/en-us/library/bb332048.aspx"&gt;MSDN&lt;/a&gt; , all those new things in C# 3.0 are also explained in details on &lt;a href="http://www.danielmoth.com/Blog/index.htm"&gt;Daniel Moth's Blog&lt;/a&gt; (under "Orcas" OR "Visual Studio 2008" labels and there is a &lt;a href="http://www.danielmoth.com/Blog/2007/11/top-10-things-to-know-about-visual.html"&gt;great post&lt;/a&gt; that describes most of the new features in VS2008 and .NET 3.5). There is even an &lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-IN&amp;amp;EventID=1032340297&amp;amp;CountryCode=IN"&gt;event about .NET 3.5&lt;/a&gt; you may be interested to watch.&lt;br /&gt;&lt;br /&gt;One thing in C# 3.0 I don't really like are &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=343893"&gt;extension methods&lt;/a&gt;. At the beginning - when I first read about this new feature I thought that it was cool. The idea that you may add new behaviour to the types you did not create (and have no sources to rebuild them) seems very attractive, but... after thinking about it a bit longer I have changed my opinion. Now I think that this feature brings more harm than good. It makes something looks different than it really is. It may confuse person that is going through the source code and is looking for bugs in it (because why should you not trust methods of String type or any onther type that comes in BCL? Yes, I know that you may right-click and choose 'Go to definition' - but my point is that this feature makes your code harder to read). I think static helpers are much better solution (and you do have to write static helpers to use extension methods...).&lt;br /&gt;&lt;br /&gt;For me personally, the two new features I may call timesavers (and yes, they are great ;) are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;automatic properties - I think most of us feel that C# lack this feature. It is not so uncommon to create a simple property (such that you do not have to add more code into getter or setter than automatic property does. And as for me - I think that you should consider creating special Get/Set methods instead of property when Get/Set operation is complicated. This way someone using your class is aware that this particular operation could take a long time and it should not be called too frequently).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;anonymous types - great idea connected to LINQ. Sometimes it is very convenient to be able to create a variable of an unknown type (and don't be forced to create implentation for the new type first).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=343893"&gt;Partial methods&lt;/a&gt;. Some people seem to think of them as a way not  to emit method metadata (if method is not implemented). I just wonder why there is so much misunderstanding about the concept of partial methods. The funny thing is that a lot of people think of them rather as a &lt;a href="http://msdn2.microsoft.com/en-us/library/4xssyw96%28vs.80%29.aspx"&gt;Conditional attribute&lt;/a&gt;. I think this is the most powerfull of new features added in C# 3.0. Thanks to it you may be able to provide some mechanism very similar to "aspect programming" (just provide some methods like &lt;span style="font-style: italic;"&gt;before&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;after&lt;/span&gt; and if it will be needed the user may implement them and be sure that actions take place in right time.&lt;br /&gt;&lt;br /&gt;One thing I really do NOT like in VS2008 is that there is still no support for XNA Game Studio 2.0. I do not like it that I just have to switch to older version of VS, I lack some new features in VS 2008. I hope that XNA team will soon release new version of XNA GSE that will work fine with Orcas.&lt;br /&gt;&lt;br /&gt;And the last thing about new Visual Studio is... I have already encountered a bug connected to WPF designer. It just stopped working some day. It was impossible to add new control, change properties of controls... I started to search for some solution to this problem, and I found out that I should delete all TBD files (everything is described in details on &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2510208&amp;amp;SiteID=1"&gt;MSDN forum&lt;/a&gt;). Kinda strange for me... but it is not the first time that deleting helps VS to recover from some strange behaviour. I remember that I had a problem with VS 2005 after installing some add-ons (from Microsoft). My keyboard just stopped working in VS (well... it did not stop working at all, but some keys just seemed not to work - enter, space - those are two I remember). Resetting all options to default did not help. After googling for quite a while I just found suggestion to delete VS settings... yup, it worked ;) Now I think, that I will try to delete VS settings at the very beginning if something brokes again...&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-4759894612143647880?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/4759894612143647880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=4759894612143647880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/4759894612143647880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/4759894612143647880'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/01/vs-2008-c-30.html' title='VS 2008 &amp; C# 3.0'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-7211247382986184280</id><published>2008-01-24T21:31:00.000Z</published><updated>2008-01-25T12:13:42.386Z</updated><title type='text'>RSS readers with synchronization</title><content type='html'>&lt;div style="text-align: justify;"&gt;Since the moment I discovered rss feeds I can hardly imagine living without it. But... there is one problem with rss for me. Readers. I have tested various readers and I could not find one that would suit all my needs:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;possibility to use the reader on many machines (I am thinking about some kind of synchronization)&lt;/li&gt;&lt;li&gt;I am keen of desktop programs - so it would be nice to have a desktop application (that could stay in system tray while working) and to be notified when new things appears&lt;/li&gt;&lt;li&gt;it would be great if there would be possibility to use web based client - in case when installing desktop software is not possible (for example: reading feeds using some pda's...)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;For a long time I have been thinking that the best solution is &lt;a href="http://www.google.com/reader"&gt;Google's web based rss reader&lt;/a&gt;. It has almost everything I want. There is also a lightweight version made especially for older pda's and phones (&lt;a href="http://www.google.com/reader/m"&gt;Google Reader Mini&lt;/a&gt;) and a bit more sophisticated wrapper on Google Reader for mobile devices that can handle not only static html (&lt;a href="https://readermini.com/"&gt;ReaderMini&lt;/a&gt; - currently still in beta).&lt;br /&gt;Google Reader and all similar solutions have one big advantage - you do not have to think about synchronizing state of your feeds. You just log on - on any machine you are currently working on - and that's it. You got everything you need. But not everyone is a keen of 'software inside a browser'. Web based rss reader does not alert you about updated feeds - but there are some plugins for Firefox (and for others web browser too, I think) that will pop information about latest changes in your feeds. The biggest problem with Google Reader for me is that when I want to use Google's search engine - I am logged. I don't like it. I feel like Google knows much more about me that I would like them to.&lt;br /&gt;&lt;br /&gt;Thats why I have started to write my own small application based on Google Reader that would stay in system tray and alert me about new feeds and allow me to read the content not having to bother about synchronization issues. I have found &lt;a href="http://www.niallkennedy.com/blog/2005/12/google-reader-api.html"&gt;Nial Kennedy's&lt;/a&gt; article about Google Reader API, I have also find some gossips about Google's will to release Google Reader API to public in near future. Unfortunatelly it seems that Google no longer wants to make Google Reader API available to wide range of programmers all over the world. Later - after digging up for a while - I have found a small utility by BrianDotty called &lt;a href="http://www.braindotty.com/"&gt;Google Reader Notifier &lt;/a&gt;- that allows you to have information about new feeds presented in the well known 'tray ballon' way (yup, I did use Reflector The Great ;&gt; to see how to log into Google Reader ;) Another thing I have found was complete (I think) &lt;a href="http://www.codeplex.com/greader"&gt;API for Google Reader written in C#&lt;/a&gt;. It is a pitty that there are no links for the applications that are using this API (GReader Desktop, GReader Mobile - both mentioned on the main page of the 'Google Reader .NET API').&lt;br /&gt;After few days going through the code it stroke me that it is totally pointless to create another feature-rich rss reader. The best thing would be just to embedd a WebBrowser control in an application that could reside in system tray and provide some information about the feeds (how many feeds are unread and so on). So I just cut out all those things that were 'extra' and build a simple application with .NET WebBrowser control. It worked great but... it seems to consume a lot of memory. After using it for a while I have realized that it allocated about 60-70MB of RAM! And even the special trick with minimize-restore did not help much. I was wondering if it was a problem with WebBrowser control or with Google Reader. Hard to say at the moment but I plan to investigate this issue further on. The simpliest solution (embedded WebBrowser control) has one big advantage: you may go to your Google Calendar / GMail / Google Notebook with only a few clicks (and yes,  you do not have this feeling that Google knows everything about you - whenever you use their search engine ;)&lt;br /&gt;&lt;br /&gt;A few days ago I have found information about free NewsGator desktop application for reading rss feeds that has ability to synchronize information about your feed's state between various machines. I tried it... and I think it is great. The desktop application is well known &lt;a href="http://www.newsgator.com/Individuals/FeedDemon/"&gt;FeedDeamon&lt;/a&gt; that is now given by NewsGator for free. It almost perfect. You are able to use desktop or &lt;a href="http://www.newsgator.com/Individuals/FeedDemon/"&gt;web based version of the reader&lt;/a&gt; - so all the time you know what have you read and what is still marked as &lt;span style="font-style: italic;"&gt;to-read&lt;/span&gt; or &lt;span style="font-style: italic;"&gt;important&lt;/span&gt;. There is one thing As for me FeedDemon lacks easy retrieval of older content for selected feed. Using Google Reader I got used to being able to see what were the previous posts / entries in selected feed. You just scroll down - and thats it - Google Reader automatically gets them for you (if there are any). I must say that FeedDemon is really easy to use and does not need a lot of memory - after having it run for more than 20 hours it did not consume more than 20MB.&lt;br /&gt;&lt;br /&gt;I you are just like me - and synchronization and availability of desktop reader are the most important for you - you should give NewsGator a try - but I will give my application another chance and see what is the real problem with such a hughe memory consumption.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-7211247382986184280?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/7211247382986184280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=7211247382986184280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/7211247382986184280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/7211247382986184280'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2008/01/rss-readers-with-synchronization.html' title='RSS readers with synchronization'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-1329467679136080760</id><published>2007-12-29T20:08:00.000Z</published><updated>2007-12-29T21:16:12.798Z</updated><title type='text'>A few thoughts on Apple's Safari</title><content type='html'>&lt;div style="text-align: justify;"&gt;A few days ago I have found information that Safari (Web browser for MacOS) is available for free for Windows system. I have heard a lot of good things about this browser from it's user, so I gave it a try. The first thing is that Safari (the one that is available for PC) is still in beta, so don't be suprprised if something works not as you would expect. After installing - first run of the browser - yup, it mimics the MacOS's Aqua interface. Quite nice ;) Below I wrote the pos and the cons of the PC version of Safari after using it for a few days.&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Pros:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;very nice rendering (font looks a bit better - and it is not subjective opinion). &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rVMWuQUnWek/R3a4Tg0Ke_I/AAAAAAAAABs/XdnYdwNVpdE/s1600-h/ff.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_rVMWuQUnWek/R3a4Tg0Ke_I/AAAAAAAAABs/XdnYdwNVpdE/s200/ff.png" border="0" alt="Firefox" id="BLOGGER_PHOTO_ID_5149505869310491634" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rVMWuQUnWek/R3a4Tg0KfAI/AAAAAAAAAB0/nKDlqTPnKxE/s1600-h/ie7.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_rVMWuQUnWek/R3a4Tg0KfAI/AAAAAAAAAB0/nKDlqTPnKxE/s200/ie7.png" border="0" alt="IE7" id="BLOGGER_PHOTO_ID_5149505869310491650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rVMWuQUnWek/R3a4Tw0KfBI/AAAAAAAAAB8/6MV7HH_Y53I/s1600-h/opera.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_rVMWuQUnWek/R3a4Tw0KfBI/AAAAAAAAAB8/6MV7HH_Y53I/s200/opera.PNG" border="0" alt="Opera" id="BLOGGER_PHOTO_ID_5149505873605458962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rVMWuQUnWek/R3a4Tw0KfCI/AAAAAAAAACE/XJEVi9bSodI/s1600-h/safari.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_rVMWuQUnWek/R3a4Tw0KfCI/AAAAAAAAACE/XJEVi9bSodI/s200/safari.PNG" border="0" alt="Safari" id="BLOGGER_PHOTO_ID_5149505873605458978" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;renders pages really fast (not only on my development machine, but also on the 'historical' pc used by my parents) .  Another thing that is worth to mention is that Safari is not only fast at rendering pages, but it also seem to use not as much of cpu power when it has many tabs open (comapred to Firefox). Of course, you may enojoy it's speed as long as it does not crash ;)&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;some of the users may find it's user interface very interesting&lt;/li&gt;&lt;li style="text-align: justify;"&gt;fancy glare effect (focus) - when a control that is focusable and it content can be changed by user (all those text fields, checkboxes...) gets focus, it also gets some kind of glare. It is nice to know where the focus is, right? &lt;/li&gt;&lt;li style="text-align: justify;"&gt;does not seem to be a bloat-ware. does not consume a lot of memory. It seems to have .net - alike memory management mechanism built in. When you minimize Safari it just frees memory, so it takes only about a few MB of RAM.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;most sites are rendered correctly.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;works perfectly with Silverlight! (I have checked it woth Silverlight version of Microsoft Download Center)&lt;/li&gt;&lt;li style="text-align: justify;"&gt;it is very convenient for the user that they do not want people to change their habbits, and the shortcuts for the most frequently used functions are 'standard (ctr+t for new tab, F5 for refresh content... - it is nice that learned the Opera's lesson ;)&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Safari has ver cool 'search ' feature. It is somewhat similar to the one in Firefox. Safari highlits all wordswhich contain the specified phrase, and phrase in 'active' word is highlited in yellow. It is also possible to move backward and forward through all the words containing search-phrase using buttons. It would be even better if there would be possibility to move between findings using some shortcuts (alt+n for next - just like in Firefox woudl be great ;)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Cons:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;unstable (crashes very often). It helps a lot if you just uncheck the 'Enable plugins' options in Security -&gt; Web Content.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;often gives message that is unable to display a page... - if you get the 'page could not be loaded' message - try to hit F5 - sometimes Safari needs this key to be pressed several times ;) )&lt;/li&gt;&lt;li style="text-align: justify;"&gt;there's no option to double-click on the tab area to create new tab (ctrl+t or right-click and 'new tab')&lt;/li&gt;&lt;li style="text-align: justify;"&gt;plugins for mac version of Safari does not seem to work (you just can't use Apple's dmg executable, can you?) And there are very few plugins for PC version of Safari (if any... I haven't found a one myself)&lt;/li&gt;&lt;li style="text-align: justify;"&gt;very few options - I just wasn't able to configure some of the settings I would like to &lt;/li&gt;&lt;li style="text-align: justify;"&gt;sometimes it consumes a lot of cpu (I have encountered this issue while watching some movies on youtube). This problem is connected somehow with plugins. I think there are some plugins that works, but sometimes they cause Safari to hang-up or even crash. The browser itself (without plugins) is quite reliable.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;there are only two options for download location: desktop or any other folder. why can't I choose folder apropriate for what I am downloading right before clicking 'download'?&lt;/li&gt;&lt;li style="text-align: justify;"&gt;kind of a strange bookmark &amp;amp; rss management... well, not really a management, but I am still confused about what should I do (where to click) if I want to manage bookmarks or rsses. I always forget, that I should click on the book icon on the bookmarks toolbar (there is another way to enter bookmark management window... but I have forget it ;) I wonder, why did they decided not to put "Manage your bookmarks" option in "Bookmarks" menu? And the bookmark management is not very friendly. You got it open - ok. Now lets assume that you would like to create a new bookmark folder. Hm... right click is not working... so how should I...? Ah! There are some small plus-icons buttons  _at the very bottom_... I don't think it really the best idea.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;I still do not know why I can't get New York Times pages to show me their dictionary after double clicking on a specified word. In IE/Opera/Mozilla it works without problems. I have enabled all the scripts, JavaScript, Java. I have also let the browser to show pop-up windows... no effect.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;one thing I really miss in Safari is session saver. (I know that Mozilla also does not have it on board right after installation but there is a plugin ;) and Opera, and even IE - both have this feature built in).&lt;/li&gt;&lt;li style="text-align: justify;"&gt;web address autocompletion: Safari has this feature. But it works... strange. It takes a while to realize that when there is a list of addresses that are similar to what you have typed shown to you - most of the people are used to hit enter (to get to the address that is first in list of those suggested by browser), or click on the one that they want to choose. In Safari you also may use Enter. But if you're a fan of a mouse - you have to double click the address you would like to go. Small inconvenience.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;there is no fullscreen optionn (F11 in Firefox/IE). I really missed it while using Safari - especially when working on my laptop (it's display is not as big as I would like it to be).&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Safari has problems managing many tabs. Lets assume that you've opened so many tabs, that they don't fit in tabs bar. You can - of course - select a tab which title is not visible on tabs bar, but there is no way to close it (or I just haven't found one - after a while I have found one solution: you can 'Move Tab to New Window' ('Window' menu) and then close the window. Hm... a bit too tricky, don't you think?&lt;/li&gt;&lt;li style="text-align: justify;"&gt;if you use the 'Move Tab to Other Window' and in the new window you add some folders to the bookmarks... be prepared for Safari to crash if you would like to add a page to bookmarks.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;browser doesn't save what you have typed in google search - and I find this thing to be extremely useful &lt;/li&gt;&lt;li style="text-align: justify;"&gt;sometimes it looses focus - especially when you're working mostly with keyboard (you go forward, backward, and want to scroll the page using keys? sometimes you just have to click on the site content to be able to do so). Sometimes when editing some texts on pages you cannot go to the line above / below using keys - just as if there would be no lines above / below.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;I have also made some small memory-usage test. I typed in the web browsers address bars the address of the site I have presented screenshot a bit earlier. So, the results are:&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;IE7: &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;39 348K,  &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;7 024K (after minimize-restore)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Safari:     &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;46 328KK, &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;14 924 (after minimize-restore)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Opera:     &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;20 948K,  &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;6 000K - 7 000K (after minimize-restore)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;FireFox:  &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;32 228K, the same after minimize-restore (it is really strange, don't you think?)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;So, is Safari worth a try? Definetly yes. Of course some things works a bit different than in other browsers, but after some time, when you get used to them - you may even think that things should be done Apple way ;) There are some things Safari misses and the most important is: plugins. It would be perfect if PC version could use all those plugins that have been made for Mac version (but I don't think it is possible). Bare Safari is definitely not enough for many people. One thing I really like Safari for: it has the nicest font rendering engine! Reading sites in Safari is just a pure pleasure! And I think I will keep Safari installed on my PC just for its speed and font rendering.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;(Yup, this note was created using Safari ;)&lt;/div&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-1329467679136080760?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/1329467679136080760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=1329467679136080760' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/1329467679136080760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/1329467679136080760'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2007/12/few-thoughts-on-apples-safari.html' title='A few thoughts on Apple&apos;s Safari'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rVMWuQUnWek/R3a4Tg0Ke_I/AAAAAAAAABs/XdnYdwNVpdE/s72-c/ff.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7026908640761203214.post-4908054443128530836</id><published>2007-11-25T13:59:00.000Z</published><updated>2007-11-27T10:56:19.674Z</updated><title type='text'>Getting started with Silverlight</title><content type='html'>&lt;div  style="text-align: justify;font-family:times new roman;"&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;Recently I have heard about INETA's &lt;a href="http://europe.ineta.org/Events/SilverlightEuropeanChallenge/tabid/311/Default.aspx"&gt;"Silverlight European Challenge"&lt;/a&gt; and I have thought that it is a great opportunity to learn this cool new technology from Microsoft. My first steps were to go to &lt;a href="http://silverlight.net/"&gt;Silverlight's site&lt;/a&gt; (community -&gt; gallery) - just to install the runtime and watch some samples. Some of them were really amazing, so I was very excited, and started to install everything I thought I would need as a developer. I have installed:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify; font-family: georgia;"&gt;&lt;li&gt;Silverlight 1.0&lt;/li&gt;&lt;li&gt;Silverlight 1.1 Alpha September Refresh&lt;/li&gt;&lt;li&gt;Silverlight 1.0 SDK&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=b52aeb39-1f10-49a6-85fc-a0a19cac99af&amp;amp;displaylang=en"&gt;Microsoft Silverligh Tools Alpha for Visual Studio 2008 Beta 2&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div  style="text-align: justify;font-family:times new roman;"&gt;&lt;span style="font-family:georgia;"&gt;After a couple of minutes, when everything I have listed above was installed I created first Silverlight project in Visual Studio 2008 Beta 2. It compiled at once with no errors or warnings. But when I wanted to run the application (you know, the simpliest "Hello world from Silverlight" thing) it didn't work. I saw the "Get Microsoft Silverlight" instead of what I expected. I went back to the &lt;a href="http://silverlight.net/"&gt;silverlight.net&lt;/a&gt; site, just to check if problem was with the application, or something was broken in my developer's environment. Samples I was watching a few minutes earlier just stopped working. I decided not to spoil my working environment and to test Silverlight's installation on virtual machine. I used images with Visual Studio 2008 Beta 2. At the very beginning I realized that I did not need to install Silverlight 1.0 SDK. The next thing I have discovered was that samples stopped working after installing VS 2008 Tools for Silverlight. Unfortunately it is impossible (at least very hard) to develop anything using Silverlight without those VS tools (VS Beta2 is not able to cope with Silverlight's project type without this add-in). The last thing I tried was to install only Silverlight 1.1, and VS 2008 Tools for Silverlight 1.1. &lt;/span&gt;&lt;span style="font-family:georgia;"&gt;and... &lt;/span&gt;&lt;span style="font-weight: bold;font-family:georgia;" &gt;it worked!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;It is really dissapointing that there is no information concerning what you should install to get everything work as it should. There is a topic on a forum on a Silverlight community site, but it describes installation issues with older version (July 2007) of Silverlight 1.1 Alpha package.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: georgia;"&gt;So... just to sum everything up, to have environment for Silverlight development configured properly all you need to do is install:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul style="font-family: georgia;"&gt;&lt;li&gt;Silverlight 1.1&lt;/li&gt;&lt;li&gt;VS 2008 Tools for Silverlight&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: georgia;"&gt;and that's it! Nothing more! (you may also install SDK for Silverlight 1.0 and 1.1 - it should not spoil your environment).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;br /&gt;Hope it helps... happy Silverlight-contest coding ;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7026908640761203214-4908054443128530836?l=notonlyzeroesandones.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notonlyzeroesandones.blogspot.com/feeds/4908054443128530836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7026908640761203214&amp;postID=4908054443128530836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/4908054443128530836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7026908640761203214/posts/default/4908054443128530836'/><link rel='alternate' type='text/html' href='http://notonlyzeroesandones.blogspot.com/2007/11/getting-started-with-silverlight.html' title='Getting started with Silverlight'/><author><name>Maciek Talaska</name><uri>http://www.blogger.com/profile/04966893796583340810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
