<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-390342010149142339</atom:id><lastBuildDate>Thu, 06 Nov 2025 10:22:31 +0000</lastBuildDate><category>tools</category><category>subversion</category><category>visual c++</category><category>vault</category><category>job</category><category>microsoft</category><category>sourcegear</category><category>custom</category><category>customization</category><category>documentation</category><category>express</category><category>joel test</category><category>perforce</category><category>planning</category><category>silence</category><category>software release</category><category>wizard</category><category>apology</category><category>blog</category><category>c++</category><category>code editor</category><category>compiler</category><category>documentation generator</category><category>doxygen</category><category>drawing</category><category>inkscape</category><category>latex</category><category>learn</category><category>natural docs</category><category>notepad</category><category>notepad++</category><category>nsis</category><category>open source</category><category>performance</category><category>python</category><category>rant</category><category>scripting</category><category>setup</category><category>software update</category><category>something obvious</category><category>source editor</category><category>svn</category><category>text editor</category><category>tortoisesvn</category><category>vcs</category><category>vector graphics</category><category>warning</category><category>windows sdk</category><title>PM&#39;s Development Blog</title><description></description><link>http://pm-db.blogspot.com/</link><managingEditor>noreply@blogger.com (Paulius Maruška)</managingEditor><generator>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-9206615926808208375</guid><pubDate>Thu, 11 Dec 2008 12:50:00 +0000</pubDate><atom:updated>2008-12-11T16:12:43.117+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">documentation</category><category domain="http://www.blogger.com/atom/ns#">latex</category><title>First steps to success!</title><description>I was thinking, how come I have no completed hobby projects? I couldn&#39;t find a reason, so I concluded that perhaps I&#39;m too stupid to complete anything. Then I open Visual Studio again and started thinking &lt;span style=&quot;font-style: italic;&quot;&gt;what other features&lt;/span&gt; I might need in my utility library... Then it struck me! I haven&#39;t completed anything, because none of my hobby projects had requirements or design documents (which, IMHO, is the same thing)! So, I decided, that &lt;span style=&quot;font-weight: bold;&quot;&gt;I will never write a single line of code, without having requirements or design documentation written.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I was very happy and excited, but then I&#39;ve come to another problem. What document format to use for the documentation? Being an inch smarter than I was five minutes ago, I decided to gather the requirements for the document format, and then try to find one that matches as many as possible of those requirements. So, I fired up my good friend &lt;a href=&quot;http://notepad-plus.sourceforge.net/uk/site.htm&quot;&gt;Notepad++&lt;/a&gt; and started typing...&lt;br /&gt;&lt;br /&gt;Here are the most important requirements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Version control system friendly or in other words - it must be a &lt;span style=&quot;font-weight: bold;&quot;&gt;text based format&lt;/span&gt;, I must be able to diff two versions of the document and so on.&lt;/li&gt;&lt;li&gt;If the format isn&#39;t easily editable by hand - it must have at least one &lt;span style=&quot;font-weight: bold;&quot;&gt;free editor&lt;/span&gt;. Note that WYSIWYG editor is not required.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;IT must be easy to &lt;span style=&quot;font-weight: bold;&quot;&gt;separate content from presentation&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The format must s&lt;span style=&quot;font-weight: bold;&quot;&gt;upport embeddable elements&lt;/span&gt; (and they must be easily editable/replaceable):&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Tables&lt;/span&gt;;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Images&lt;/span&gt;;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Diagrams&lt;/span&gt; (this one is optional, because I can embed images).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;I immediately knew, that what I&#39;m describing is HTML (or XHTML). After some googling, I also found DocBook, and some more XML-based formats. I liked none of them! XML is a horrible language to edit by hand (you have to remember to close the tags, you have to replace some characters with their codes etc.)&lt;br /&gt;&lt;br /&gt;Then, while reading something about &lt;a href=&quot;http://www.docbook.org/&quot;&gt;DocBook&lt;/a&gt;, I saw &lt;a href=&quot;http://en.wikipedia.org/wiki/LaTeX&quot;&gt;LaTeX&lt;/a&gt; being mentioned. I looked at it... And I couldn&#39;t believe I wasn&#39;t using it already! It&#39;s my kind of way to create documents. I mean, how often can you tell someone, that you&#39;re compiling your documents? :)&lt;br /&gt;&lt;br /&gt;And besides, LaTeX meets all of my requirements. Text based, free editors (any text editor, or something more WYSIWYG-ish like &lt;a href=&quot;http://www.lyx.org/&quot;&gt;LyX&lt;/a&gt; or &lt;a href=&quot;http://www.texniccenter.org/&quot;&gt;TeXnic&lt;/a&gt; can be used), content separation from the presentation is probably the main philosofy of all TeX formats, through some external packages LaTeX let&#39;s you embed almost anything.&lt;br /&gt;&lt;br /&gt;So now, I have &lt;a href=&quot;http://miktex.org/&quot;&gt;MiKTeX&lt;/a&gt;, and I&#39;m experimenting with document classes and packages. I will probably create my own classes, because I want to have the common look and feel.&lt;br /&gt;&lt;br /&gt;If you&#39;re a programmer like me - have a look at LaTeX! It&#39;s brilliant!</description><link>http://pm-db.blogspot.com/2008/12/first-steps-to-success.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-7893302098170873473</guid><pubDate>Thu, 11 Dec 2008 09:45:00 +0000</pubDate><atom:updated>2008-12-11T12:05:29.268+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sourcegear</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><category domain="http://www.blogger.com/atom/ns#">tools</category><category domain="http://www.blogger.com/atom/ns#">vault</category><title>Subversion and Vault (again)</title><description>Ok, the two readers that I have might think I&#39;m crazy or something. But I&#39;m starting to dislike Vault again. I know, I know... This time, it&#39;s the &quot;Add solution to Vault&quot; thing that got me on the edge.&lt;br /&gt;&lt;br /&gt;In subversion, if you need to add a new project or a solution - you simply check-out the directory that will contain this project or solution. You copy the directory of the project or solution in there with all of it&#39;s sub-directories. You do a few &lt;code&gt;svn add -N&lt;/code&gt; commands and a few &lt;code&gt;svn propset&lt;/code&gt; or &lt;code&gt;svn porpedit&lt;/code&gt; commands (to set the correct &lt;code&gt;svn:ignore&lt;/code&gt;&#39;s and, possibly, other properties - like mime-type etc.) and then you commit the changes. That&#39;s it!&lt;br /&gt;&lt;br /&gt;In Vault, however, this is much &lt;span style=&quot;font-style: italic;&quot;&gt;easier&lt;/span&gt;. Ahem. You just start the Vault client... You wait for the client to start... For about 2 minutes... You right click on the directory that will contain the project and choose &lt;span style=&quot;font-style: italic;&quot;&gt;Add Files/Folders&lt;/span&gt;, now you just navigate to the right directory, select it, select the right files and click on the OK button. Now, you wait... Wait and pray, because 90% of the times, Vault will fail with some very unclear error message...&lt;br /&gt;&lt;br /&gt;So, the task of importing one solution with a few projects into the repository - the task that would take no more than 5 minutes on subversion - it takes 2 to 4 hours on Vault... Well, if I had to do this again on Vault, I wouldn&#39;t even bother to do it this way. Now I know, that the best method is by creating a fresh solution in Visual Studio, importing that empty solution into Vault, and then just adding projects and files into it. I wish I knew this before, though.&lt;br /&gt;&lt;br /&gt;I don&#39;t know... How many more times does Vault have to disappoint me and my colleagues, before we will switch to subversion?</description><link>http://pm-db.blogspot.com/2008/12/subversion-and-vault-again.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-6110330208987611505</guid><pubDate>Thu, 11 Dec 2008 09:36:00 +0000</pubDate><atom:updated>2008-12-11T11:45:23.739+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">nsis</category><category domain="http://www.blogger.com/atom/ns#">python</category><category domain="http://www.blogger.com/atom/ns#">scripting</category><category domain="http://www.blogger.com/atom/ns#">setup</category><category domain="http://www.blogger.com/atom/ns#">tools</category><title>Python 3.0 is finally out!</title><description>Finally, we have &lt;a href=&quot;http://www.python.org/download/releases/3.0/&quot;&gt;Python 3.0&lt;/a&gt;! I wonder, when will the &lt;a href=&quot;http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython&quot;&gt;IronPython&lt;/a&gt; catch up with the changes...&lt;br /&gt;&lt;br /&gt;Btw, I was looking at NSIS the other day and I started wondering - why aren&#39;t there any install systems, that would use python as their scripting languages? I mean, this would give the power of python for the install script (classes, functions, standard library) and it would still be able to generate a native executable file (&lt;a href=&quot;http://www.py2exe.org/&quot;&gt;py2exe&lt;/a&gt; anyone?) - the setup program. Also, python is portable - it shouldn&#39;t be hard to port this kind of install system to other platforms!</description><link>http://pm-db.blogspot.com/2008/12/python-30-is-finally-out.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-5399255857662665271</guid><pubDate>Tue, 12 Aug 2008 11:06:00 +0000</pubDate><atom:updated>2008-08-12T14:09:25.596+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">apology</category><category domain="http://www.blogger.com/atom/ns#">sourcegear</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><category domain="http://www.blogger.com/atom/ns#">vault</category><title>Apology: SourceGear Vault isn&#39;t as hopeless as I was picturing it</title><description>Better late than never, right?&lt;br /&gt;&lt;br /&gt;Anyway, &lt;a href=&quot;http://roub.net/blahg/&quot;&gt;Paul Roub&lt;/a&gt; from &lt;a href=&quot;http://www.sourcegear.com/&quot;&gt;SourceGear&lt;/a&gt; &lt;a href=&quot;http://pm-db.blogspot.com/2008/05/changes-at-work.html#c3391684139912817073&quot;&gt;commented&lt;/a&gt; my post about the &lt;a href=&quot;http://pm-db.blogspot.com/2008/05/changes-at-work.html&quot;&gt;changes at work&lt;/a&gt;. Also, they have released new version of &lt;a href=&quot;http://www.sourcegear.com/vault/&quot;&gt;Vault&lt;/a&gt; with some speed improvements. So, now I don&#39;t have any major complaints about it. The one feature that I would absolutely love in Vault is if the files were not versioned separately, like in &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Anyway, I was wrong. Sorry. ;)</description><link>http://pm-db.blogspot.com/2008/08/apology-sourcegear-vault-isnt-as.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-3429189594617192983</guid><pubDate>Tue, 10 Jun 2008 07:57:00 +0000</pubDate><atom:updated>2008-06-13T09:31:54.434+03:00</atom:updated><title>Colleagues programmers</title><description>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhccE-be844Dn20XUKHRIqDRNIqPUL2TKhiEia9UQGOp3NV1jYrnP2hfClCeF8b5A35KWdo2dvdsVhpqlU7eF-8oBMAGvsH1YvGwWT8MkSvx0SrdpFMpJEu8iVbXMOwqztCRs3ZE3ojdqg/s1600-h/image-upload-2-753001.jpg&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhccE-be844Dn20XUKHRIqDRNIqPUL2TKhiEia9UQGOp3NV1jYrnP2hfClCeF8b5A35KWdo2dvdsVhpqlU7eF-8oBMAGvsH1YvGwWT8MkSvx0SrdpFMpJEu8iVbXMOwqztCRs3ZE3ojdqg/s320/image-upload-2-753001.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;We&#39;re working!&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;NOTE: I made this photo with my new Sony Ericsson W660i phone, and I was testing the feature that lets you post the photos to the blog. It all works nice!&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</description><link>http://pm-db.blogspot.com/2008/06/colleagues-programmers.html</link><author>noreply@blogger.com (Paulius Maruška)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhccE-be844Dn20XUKHRIqDRNIqPUL2TKhiEia9UQGOp3NV1jYrnP2hfClCeF8b5A35KWdo2dvdsVhpqlU7eF-8oBMAGvsH1YvGwWT8MkSvx0SrdpFMpJEu8iVbXMOwqztCRs3ZE3ojdqg/s72-c/image-upload-2-753001.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-7782221098661413535</guid><pubDate>Mon, 12 May 2008 13:02:00 +0000</pubDate><atom:updated>2008-05-15T13:42:35.403+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">job</category><category domain="http://www.blogger.com/atom/ns#">joel test</category><category domain="http://www.blogger.com/atom/ns#">perforce</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><category domain="http://www.blogger.com/atom/ns#">vault</category><title>Changes at Work</title><description>Apparently, one of my &lt;a href=&quot;http://halfas.blogspot.com/&quot;&gt;colleagues&lt;/a&gt;, told my boss (again, not &lt;a href=&quot;http://pm-db.blogspot.com/2008/05/rant-open-source-is-not-secure.html&quot;&gt;that boss&lt;/a&gt;) about my last two blog entries (&lt;a href=&quot;http://pm-db.blogspot.com/2008/05/rant-open-source-is-not-secure.html&quot;&gt;Rant: Open source is not secure&lt;/a&gt; and &lt;a href=&quot;http://pm-db.blogspot.com/2008/05/joel-test.html&quot;&gt;The Joel Test&lt;/a&gt;). So now, there are undergoing changes. WOOT!&lt;br /&gt;&lt;br /&gt;I was asked to write a document describing advantages of &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; versus &lt;a href=&quot;http://sourcegear.com/vault/index.html&quot;&gt;Vault&lt;/a&gt;. It makes perfect sense - I think I&#39;m the guy who knows the most about &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; in this company. Heck, I even have some ongoing spare time projects, involving &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt;, &lt;a href=&quot;http://www.python.org/&quot;&gt;Python&lt;/a&gt; and &lt;a href=&quot;http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html#svn.reposadmin.create.hooks&quot;&gt;hooks&lt;/a&gt; :P. However, after I updated my &lt;a href=&quot;http://pm-db.blogspot.com/2008/05/rant-open-source-is-not-secure.html&quot;&gt;rant&lt;/a&gt;, I really started leaning towards &lt;a href=&quot;http://www.perforce.com/index.html&quot;&gt;Perforce&lt;/a&gt;, instead of &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt;. So, I think I&#39;m going to get &lt;a href=&quot;http://www.perforce.com/index.html&quot;&gt;Perforce&lt;/a&gt;, and evaluate it locally on my computer (it has some options for free evaluation - see &lt;a href=&quot;http://www.perforce.com/perforce/price.html&quot;&gt;licensing page&lt;/a&gt; for more info). I guess I&#39;ll write more than just one document... ;)&lt;br /&gt;&lt;br /&gt;Oh, I think I should be fair and mention something in &lt;a href=&quot;http://sourcegear.com/vault/index.html&quot;&gt;Vault&lt;/a&gt;&#39;s defense - I&#39;m not as angry on it as I was yesterday... Although, what I wrote about it is still true - I&#39;m kind of getting used to it. Yeah, it slows me down, but at least I already figured out how to perform the most basic tasks. Anyway, I still think that lock-less version control method is much better, so I&#39;m not giving up my hopes to use &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; or &lt;a href=&quot;http://www.perforce.com/index.html&quot;&gt;Perforce&lt;/a&gt; at work.&lt;br /&gt;&lt;br /&gt;I&#39;ll post updates about our score on &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot;&gt;The Joel Test&lt;/a&gt; as soon as it changes. :)</description><link>http://pm-db.blogspot.com/2008/05/changes-at-work.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-2752042748395455243</guid><pubDate>Sun, 11 May 2008 06:50:00 +0000</pubDate><atom:updated>2008-05-15T13:41:48.572+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">job</category><category domain="http://www.blogger.com/atom/ns#">joel test</category><title>The Joel Test</title><description>Ok, so I started writing about my Job and I can&#39;t stop now. :)&lt;br /&gt;&lt;br /&gt;I decided, to evaluate the company I work for with &lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000043.html&quot;&gt;The Joel Test&lt;/a&gt;. I&#39;ll try to explain my answers to all questions and maybe I will make some conclusions. So, let&#39;s start it already!&lt;br /&gt;&lt;br /&gt;The Joel Test as it appears on the &lt;a href=&quot;http://www.joelonsoftware.com/&quot;&gt;Joel on Software&lt;/a&gt;:&lt;br /&gt;&lt;span style=&quot;color: rgb(51, 51, 51);font-family:Arial Black,Arial,Helvetica;font-size:130%;&quot;  &gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51);font-family:Arial Black,Arial,Helvetica;font-size:130%;&quot;  &gt;&lt;/span&gt;&lt;blockquote&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51);font-family:Arial Black,Arial,Helvetica;font-size:130%;&quot;  &gt;The Joel Test&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Do you use source control?  &lt;/li&gt;&lt;li&gt;Can you make a build in one step?  &lt;/li&gt;&lt;li&gt;Do you make daily builds?  &lt;/li&gt;&lt;li&gt;Do you have a bug database?  &lt;/li&gt;&lt;li&gt;Do you fix bugs before writing new code?  &lt;/li&gt;&lt;li&gt;Do you have an up-to-date schedule?  &lt;/li&gt;&lt;li&gt;Do you have a spec?  &lt;/li&gt;&lt;li&gt;Do programmers have quiet working conditions?  &lt;/li&gt;&lt;li&gt;Do you use the best tools money can buy?  &lt;/li&gt;&lt;li&gt;Do you have testers?  &lt;/li&gt;&lt;li&gt;Do new candidates write code during their interview?  &lt;/li&gt;&lt;li&gt;Do you do hallway usability testing?&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;&lt;br /&gt;Let&#39;s answer those questions one by one.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Do you use source control?&lt;/span&gt;&lt;br /&gt;Yes, we do. The source control we use isn&#39;t the best in the world, but we do use it.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Can you make a build in one step?&lt;/span&gt;&lt;br /&gt;No, we don&#39;t. We have a lot of projects in our repository, and all of those projects get updated from time to time. Building the project, usually, involves getting one of the developers to get the latest copy of the source, and building it manually in Visual Studio. If necessary - version numbers must be updated manually. Packaging must be handled manually. Basically, we don&#39;t have any official build process - each developer does it however he likes it.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Do you make daily builds?&lt;/span&gt;&lt;br /&gt;No, we don&#39;t. We should, though. There are people who use the projects we develop. Currently, we have to e-mail updated versions of the applications. If we&#39;d make nightly builds - we could as well make those available for the people who use the projects. So, they&#39;d be always using the latest versions, and we wouldn&#39;t have to worry about sending the projects to them.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Do you have a bug database?&lt;/span&gt;&lt;br /&gt;No, we don&#39;t. This one, actually, frustrates me. The common practice, is to report bugs via e-mail to the developers responsible for the project. I don&#39;t think I have to explain, why e-mail based issue tracking is bad.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Do you fix bugs before writing new code?&lt;/span&gt;&lt;br /&gt;Yes, we do. If we wouldn&#39;t fix bugs before writing new code - we wouldn&#39;t be able to make money. We actually rely on our projects being bug free. So yeah, we do fix bugs, before we write new code.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Do you have an up-to-date schedule?&lt;/span&gt;&lt;br /&gt;No, we don&#39;t. But we are trying to change this. In general, we don&#39;t have any schedules. It&#39;s kind of hard to make schedules for old projects, but for the new projects - we sometimes write schedules.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Do you have a spec?&lt;/span&gt;&lt;br /&gt;Yes, we do. I don&#39;t have anything to add - we have specs.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Do programmers have quiet working conditions?&lt;/span&gt;&lt;br /&gt;No, we don&#39;t. This isn&#39;t very annoying to me, because I work at home. Sometimes I do go to work to the office, however. When I do - it&#39;s not really quiet. All developers sit in one office, together with the administrator and the boss (not &lt;a href=&quot;http://pm-db.blogspot.com/2008/05/rant-open-source-is-not-secure.html&quot;&gt;that boss&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Do you use the best tools money can buy?&lt;/span&gt;&lt;br /&gt;Yes and No. See my &lt;a href=&quot;http://pm-db.blogspot.com/2008/05/rant-open-source-is-not-secure.html&quot;&gt;previous post&lt;/a&gt; about not using the best version control system.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Do you have testers?&lt;/span&gt;&lt;br /&gt;Sort of? I don&#39;t know if I can call them testers. They&#39;re actually the only users of our applications, and it&#39;s not in they&#39;re job descriptions to test the applications. But they do the tests, they report issues... Kinda like testers... I guess, they are testers, then.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Do new candidates write code during their interview?&lt;/span&gt;&lt;br /&gt;No, they don&#39;t. When I had my interview - I didn&#39;t have to write any code at all. I don&#39;t think there were changes in the hiring process since then. I could say something in defense, however. We don&#39;t really need them to write code, because we never hire unknown people - all of the developers hired so far were friends of someone who was already working for the company. You won&#39;t even get asked to come to an interview, otherwise. So, the company already knows, that the guy is capable of writing code.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Do you do hallway usability testing?&lt;/span&gt;&lt;br /&gt;No, we don&#39;t. But it&#39;s not really needed. Our company is the only user of the applications that our company makes. Because of that, we don&#39;t really need the hallway testing.&lt;br /&gt;&lt;br /&gt;So, what&#39;s the score? We have 3 yes&#39;es, 2 sort of&#39;s and 7 no&#39;s. Our score is 3. According to Joel:&lt;br /&gt;&lt;blockquote&gt;A score of 12 is perfect, 11 is tolerable, but 10 or lower and you&#39;ve got serious problems. The truth is that most software organizations are running with a score of 2 or 3, and they need &lt;i&gt;serious&lt;/i&gt; help, because companies like Microsoft run at 12 full-time.&lt;/blockquote&gt;&lt;br /&gt;Something, obviously, has to be done. I hope my boss will see this... ;)</description><link>http://pm-db.blogspot.com/2008/05/joel-test.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-3593446463335861113</guid><pubDate>Sun, 11 May 2008 04:57:00 +0000</pubDate><atom:updated>2008-05-16T18:31:47.031+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">open source</category><category domain="http://www.blogger.com/atom/ns#">rant</category><category domain="http://www.blogger.com/atom/ns#">sourcegear</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><category domain="http://www.blogger.com/atom/ns#">vault</category><title>Rant: Open Source is not secure</title><description>If you don&#39;t know, I have a &lt;a href=&quot;http://pm-db.blogspot.com/2008/04/i-have-job-now.html&quot;&gt;job&lt;/a&gt;. Now, my boss has problems with open source software. He says, that because it&#39;s source is available - everyone knows how to hack it. In other words - my boss thinks, that all open source software has security issues.&lt;br /&gt;&lt;br /&gt;Normally, I couldn&#39;t care less, what my boss thinks about it. However, due to his trust issues, programmers have productivity issues. Imagine that? Well, let me explain...&lt;br /&gt;&lt;br /&gt;Currently, the best version control system in the world is &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt;. It&#39;s an open source version control system. As explained in the &lt;a href=&quot;http://svnbook.red-bean.com/nightly/en/index.html&quot;&gt;Subversion Book&lt;/a&gt; - &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; uses the &lt;a href=&quot;http://svnbook.red-bean.com/nightly/en/svn.basic.vsn-models.html#svn.basic.vsn-models.copy-merge&quot;&gt;copy-modify-merge&lt;/a&gt; model. It&#39;s a great model, because there are no locked files, ever! Sure, you sometimes need to manually merge your changes, but that doesn&#39;t happen very often. Even when it does happen - there are wonderful tools to help you, like &lt;a href=&quot;http://tortoisesvn.tigris.org/TortoiseMerge.html&quot;&gt;TortoiseMerge&lt;/a&gt; (part of &lt;a href=&quot;http://tortoisesvn.tigris.org/&quot;&gt;TortoiseSVN&lt;/a&gt;). So it&#39;s not really a time waster.&lt;br /&gt;&lt;br /&gt;Now, as I said - &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; is open source. My boss doesn&#39;t like it, obviously. He thinks, that if we&#39;d use it - someone could hack into our code repository. So, the boss is forcing us to use &lt;a href=&quot;http://sourcegear.com/&quot;&gt;SourceGear&lt;/a&gt; &lt;a href=&quot;http://sourcegear.com/vault/index.html&quot;&gt;Vault&lt;/a&gt;. Now, the problem with it is that it uses the &lt;a href=&quot;http://svnbook.red-bean.com/nightly/en/svn.basic.vsn-models.html#svn.basic.vsn-models.lock-unlock&quot;&gt;lock-modify-unlock&lt;/a&gt; model. The problem with this model, especially in our case, is that it locks every file automatically, when you start editing it. Now, that operation, usually, takes from 10 to 20 seconds. Imagine that - you open a file, you just want to add a few lines of code, you navigate to the right place, hit ENTER to start adding new code and Visual Studio hangs for about 12 seconds... And that happens each time you open a new file to edit. It isn&#39;t the only problem with &lt;a href=&quot;http://sourcegear.com/vault/index.html&quot;&gt;Vault&lt;/a&gt;, but it certainly is the most annoying one. Another issue, worth mentioning, is that &lt;a href=&quot;http://sourcegear.com/vault/index.html&quot;&gt;Vault&lt;/a&gt;&#39;s documentation is very incomplete and doesn&#39;t cover some important topics.&lt;br /&gt;&lt;br /&gt;Now, what do I do? How do I convince my boss, that open source can be just as safe as closed source, commercial projects? I though about that and frankly - I have no idea...&lt;br /&gt;&lt;br /&gt;Maybe I should show him the &lt;a href=&quot;http://subversion.tigris.org/testimonials.html&quot;&gt;testimonials&lt;/a&gt; on &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; project page. I should also, tell him about the &lt;a href=&quot;http://www.collab.net/products/subversion/&quot;&gt;certified Subversion binaries&lt;/a&gt;, available from &lt;a href=&quot;http://www.collab.net/&quot;&gt;CollabNet&lt;/a&gt;. Pointing him to &lt;a href=&quot;http://www.wandisco.com/subversion/accesscontrol/&quot;&gt;Subversion Access Control&lt;/a&gt; from &lt;a href=&quot;http://www.wandisco.com/&quot;&gt;WANdisco&lt;/a&gt;, might also help.&lt;br /&gt;&lt;br /&gt;I don&#39;t know, I guess, the moral of my post is this: if you have a software company, be careful with your opinion, don&#39;t be religious about anything - it might be the one biggest thing slowing down your developers.&lt;br /&gt;&lt;br /&gt;Edit: I forgot to write about the other - closed source alternative to &lt;a href=&quot;http://www.wandisco.com/subversion/accesscontrol/&quot;&gt;Subversion&lt;/a&gt; that is just as nice (or so I&#39;ve heard). I&#39;m talking about &lt;a href=&quot;http://www.perforce.com/index.html&quot;&gt;Perforce&lt;/a&gt;. From what I have found on the web - &lt;a href=&quot;http://www.perforce.com/index.html&quot;&gt;Perforce&lt;/a&gt; might even be a better than &lt;a href=&quot;http://www.wandisco.com/subversion/accesscontrol/&quot;&gt;Subversion&lt;/a&gt; on some aspects. My boss should like it, because it&#39;s not open source. Well, if I fail to convince my boss to switch to &lt;a href=&quot;http://www.wandisco.com/subversion/accesscontrol/&quot;&gt;Subversion&lt;/a&gt;, I&#39;ll suggest &lt;a href=&quot;http://www.perforce.com/index.html&quot;&gt;Perforce&lt;/a&gt;.</description><link>http://pm-db.blogspot.com/2008/05/rant-open-source-is-not-secure.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-6096762945412165472</guid><pubDate>Mon, 07 Apr 2008 06:49:00 +0000</pubDate><atom:updated>2008-04-07T10:48:43.298+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">drawing</category><category domain="http://www.blogger.com/atom/ns#">inkscape</category><category domain="http://www.blogger.com/atom/ns#">software release</category><category domain="http://www.blogger.com/atom/ns#">vector graphics</category><title>Software Release: Inkscape 0.46</title><description>Few days ago, &lt;a href=&quot;http://www.inkscape.org/&quot;&gt;Inkscape&lt;/a&gt; &lt;a href=&quot;http://wiki.inkscape.org/wiki/index.php/ReleaseNotes046&quot;&gt;0.46&lt;/a&gt; was released. I used the older 0.45.1 release and I really liked it. But right now, I&#39;ll share my thoughts on the new release. So, here they are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The very first thing I noticed was &lt;span style=&quot;font-weight: bold;&quot;&gt;the new icons&lt;/span&gt;. Yes, it&#39;s not really an important improvement, but it surely looks good.&lt;/li&gt;&lt;li&gt;Second thing I noticed, was &lt;span style=&quot;font-weight: bold;&quot;&gt;the dockable tool windows&lt;/span&gt;. I think this is one very important improvement - you can&#39;t get lost in the zillions of open tool windows anymore.&lt;/li&gt;&lt;li&gt;Third thing was &lt;span style=&quot;font-weight: bold;&quot;&gt;the new drawing tools&lt;/span&gt;, here are the ones that got my attention:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;3D Box&lt;/span&gt; - well, I don&#39;t make three-dimensional illustrations, so it&#39;s not really important to me, but it surely is cool!&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Paint Bucket&lt;/span&gt; - now that&#39;s the tool I really like, because I won&#39;t have to make those paths by hand, anymore.&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Tweak&lt;/span&gt; - tweak tool is also very nice, it speeds up the work, when you need to tweak more than one path at the same time.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;There is a huge amount of other improvements, that I will not cover here. I&#39;ll just point you to the &lt;a href=&quot;http://wiki.inkscape.org/wiki/index.php/ReleaseNotes046&quot;&gt;Release Notes&lt;/a&gt;, that explain them all.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Unfortunately, I also have to mention one bug that I found after playing with Inkscape&#39;s new release for 10 minutes. I wanted to add some text to my illustration, and then I wanted to change the font - that didn&#39;t work. I don&#39;t really know why this is happening, but on my machine - the only way to change the font is to change it manually in SVG file. Other than that - I really love the new Inkscape.&lt;br /&gt;&lt;br /&gt;Once again, open source community has done a really great job. Don&#39;t wait - grab the new &lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=93438&amp;amp;package_id=99112&amp;amp;release_id=583320&quot;&gt;Inkscape 0.46&lt;/a&gt; and enjoy the power of vector graphics! ;)</description><link>http://pm-db.blogspot.com/2008/04/software-release-inkscape-046.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-4347809679121461769</guid><pubDate>Sun, 06 Apr 2008 11:01:00 +0000</pubDate><atom:updated>2008-04-06T14:08:15.847+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">job</category><category domain="http://www.blogger.com/atom/ns#">silence</category><title>I have a Job now!</title><description>Again, I have to apologize for the silence. It&#39;s becoming a habit, or something...&lt;br /&gt;&lt;br /&gt;I have a good reason this time. I have Job! It is my dream job, really. I&#39;ll get to make desktop applications in C#. Sure, it&#39;d be more interesting to make games, but I can&#39;t really complain - they gave me Visual Studio 2008 Professional, so I won&#39;t be struggling with the limitations of Express Editions. :P&lt;br /&gt;&lt;br /&gt;So, in my last post, I promised you something about subversion, python and other open source projects. Well, this time, I&#39;ll have to promise you something about C#. ;)</description><link>http://pm-db.blogspot.com/2008/04/i-have-job-now.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-4885582941178221400</guid><pubDate>Wed, 27 Feb 2008 14:35:00 +0000</pubDate><atom:updated>2008-02-27T16:40:31.772+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">silence</category><title>The Silence</title><description>Sorry for the long silent period. There were a lot of stuff in my life going on and I didn&#39;t have time to post updates.&lt;br /&gt;&lt;br /&gt;Hopefully, I&#39;ll be more active from now on. I still plan to make the god damn wizard (no, I didn&#39;t have time for it either). But before I do that, I will, most likely, post a few articles about subversion post/pre commit hooks, python and maybe some other open-source projects, that got my attention lately.</description><link>http://pm-db.blogspot.com/2008/02/silence.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-5763163259577430409</guid><pubDate>Sat, 24 Nov 2007 12:29:00 +0000</pubDate><atom:updated>2007-11-24T14:28:36.381+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">express</category><category domain="http://www.blogger.com/atom/ns#">microsoft</category><category domain="http://www.blogger.com/atom/ns#">software release</category><category domain="http://www.blogger.com/atom/ns#">visual c++</category><category domain="http://www.blogger.com/atom/ns#">windows sdk</category><title>Software Release: Visual Studio 2008</title><description>Yes! Finally, &lt;a href=&quot;http://msdn.microsoft.com/vstudio/&quot;&gt;Visual Studio 2008&lt;/a&gt; was released. I have to admit, that I downloaded &lt;a href=&quot;http://www.microsoft.com/express/&quot;&gt;Visual Studio 2008 Express Editions&lt;/a&gt; as soon as I found out about them. So from now on - it is the &lt;a href=&quot;http://pm-db.blogspot.com/2007/08/choosing-tools-integrated-development.html&quot;&gt;IDE of my choice&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I didn&#39;t have much time to test it yet, but I already noticed a significant performance increase. I&#39;m not really sure if it is the performance increase. &lt;a href=&quot;http://msdn2.microsoft.com/en-us/vstudio/bb964526.aspx&quot;&gt;Visual Studio 2005&lt;/a&gt;, even with the &lt;a href=&quot;http://pm-db.blogspot.com/2007/11/software-update-visual-studio-2005.html&quot;&gt;performance fix&lt;/a&gt; wasn&#39;t performing that well. So, if you are still hesitating - don&#39;t! Get the new version and enjoy it!&lt;br /&gt;&lt;br /&gt;There is one catch with the official &lt;a href=&quot;http://www.microsoft.com/express/vc/Default.aspx&quot;&gt;Visual C++ 2008 Express Edition&lt;/a&gt; release, though. In the &lt;a href=&quot;http://www.microsoft.com/express/support/faq/default.aspx&quot;&gt;FAQ&lt;/a&gt; it says that there are no restrictions on the express editions - you can create commercial applications free of charge. However, the Windows SDK version express editions install on your system is &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyId=58726ACA-8D84-4683-8959-BE0038DA7084&amp;amp;displaylang=en&quot;&gt;6.0A&lt;/a&gt; release. Now, this is very odd, because &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyId=58726ACA-8D84-4683-8959-BE0038DA7084&amp;amp;displaylang=en&quot;&gt;6.0A&lt;/a&gt; is the pre-release version. As a general rule with all Microsoft products&#39; pre-release versions - they are only meant for personal-use and testing purposes. So it is actually a mystery to me. I tried &lt;a href=&quot;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2448260&amp;amp;SiteID=1&quot;&gt;asking&lt;/a&gt; on &lt;a href=&quot;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=121&amp;amp;SiteID=1&quot;&gt;Windows SDK&lt;/a&gt; forum about this, and I was advised to get the version of SDK that isn&#39;t marked as pre-release, so I&#39;m passing this advice to everyone! You should really get the &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=4377f86d-c913-4b5c-b87e-ef72e5b4e065&amp;amp;displaylang=en&quot;&gt;Windows SDK 6.0&lt;/a&gt; release just to be on the safe path.&lt;br /&gt;&lt;br /&gt;And now, let&#39;s return to our own business. I started a series of articles about making a wizard for the Visual C++ 2005 Express Edition. Now, I don&#39;t use that version anymore. However, from what I know already about the Visual C++ 2008 Express Edition I can say, that I will be making the same kind of wizard for the new release. Note, that both editions are very similar, and wizard developed for 2008 will probably work with 2005 release as well (you&#39;ll just have to change a few strings in a few files). So, if you were waiting for that series of articles to finish - don&#39;t worry! I&#39;ll finish it! ;)</description><link>http://pm-db.blogspot.com/2007/11/software-release-visual-studio-2008.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-5660686361473628006</guid><pubDate>Mon, 12 Nov 2007 23:36:00 +0000</pubDate><atom:updated>2007-11-13T01:55:59.762+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">microsoft</category><category domain="http://www.blogger.com/atom/ns#">performance</category><category domain="http://www.blogger.com/atom/ns#">software update</category><category domain="http://www.blogger.com/atom/ns#">visual c++</category><title>Software Update: Visual Studio 2005 Performance Fix</title><description>Ah. This is one of the nicest things Microsoft could have done! If you used Visual C++ 2005 (or any earlier version of it) with large solutions and projects - then you definitely know, that sometimes IntelliSense would often slow down things. Sometimes the slow down would be so big, that you&#39;d have to turn off IntelliSense to be able to work on your project.&lt;br /&gt;&lt;br /&gt;I haven&#39;t tested this fix yet, but I think it&#39;s going to be good! :)&lt;br /&gt;And here are the links:&lt;br /&gt;&lt;a href=&quot;http://support.microsoft.com/kb/943969/en-us&quot;&gt;Microsoft&#39;s knowledge base article about the issue&lt;/a&gt;,&lt;br /&gt;&lt;a href=&quot;https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=9436&amp;amp;wa=wsignin1.0&quot;&gt;The actual fix download page&lt;/a&gt;,&lt;br /&gt;&lt;a href=&quot;http://blogs.msdn.com/vcblog/archive/2007/11/12/performance-improvements-in-visual-c.aspx&quot;&gt;A very nice VC++ Team Blog article giving more detailed explanation of the changes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Note, that you will have to sign in to your passport account before you get access to the download page.&lt;br /&gt;&lt;br /&gt;And once again - thank you Microsoft! :)</description><link>http://pm-db.blogspot.com/2007/11/software-update-visual-studio-2005.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-7033154055230009206</guid><pubDate>Mon, 12 Nov 2007 16:26:00 +0000</pubDate><atom:updated>2007-11-12T18:26:29.203+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">custom</category><category domain="http://www.blogger.com/atom/ns#">customization</category><category domain="http://www.blogger.com/atom/ns#">planning</category><category domain="http://www.blogger.com/atom/ns#">visual c++</category><category domain="http://www.blogger.com/atom/ns#">wizard</category><title>Customization: Custom Visual C++ Wizard - Part II</title><description>In the previous part of the series, I explained what I don&#39;t like about the default VC++ Project wizard. I also defined how those things should be fixed. So, by now, we have some requirements defined for our final wizard project. Let&#39;s continue planning our wizard.&lt;br /&gt;&lt;br /&gt;So, what kind of projects we will be making with this wizard? Well, the most basic option should be there to simply create the Solution. When creating solution, it should also create directory for the source code, and add the common headers there. Now, we are facing the first problem. Visual C++ Express Edition doesn&#39;t support Solution Directories (or solution files), which means, that we either have to create a dummy project that would contain those headers, or we will not see those files in Solution Explorer window. Personally, I prefer the first option. So, our empty solution will not really be an empty solution - it will have a dummy project (I&#39;ll call it &quot;Solution Project&quot;) and this project will contain a few header files.&lt;br /&gt;&lt;br /&gt;What else? Well, as I mentioned in the first part - I like to have all my projects as a set of libraries, so the next obvious project type we&#39;d want to generate is a Library. There are a three kinds of libraries I will want to generate. The only difference in those three will be the output file it generates. Now, if you remember the first part - I said I want four configurations (Debug Static, Debug Shared, Release Static and Release Shared). Basically, each configuration name describes perfectly, which C/C++ runtime the configuration will link to. I hope I don&#39;t have to explain, why linking to the same version of runtime is important across all projects in the solution... So, the three library kinds will be: Static Library, Shared Library and Mixed Library. You are probably wondering what the heck are those. Well, let me explain. In Static Library project, all four configurations will generate a static library (LIB file). In Shared Library project all configurations will generate a shared library (DLL file). In Mixed Library project, however, the both Static configurations will generate static, and the Shared configurations - shared library. In addition, when creating a Library project, I might want to create a Unit Test project for it too. Now, I know that not everyone likes to write unit tests, but I do, so I&#39;ll need this option.&lt;br /&gt;&lt;br /&gt;Finally, the last kind of project is an Application. I can think of two application types - Console Application and Windows Application. I think those are obvious.&lt;br /&gt;&lt;br /&gt;So what else can we plan? In the first part, I described what the directory structure should look like, but I didn&#39;t discuss naming issues. You see, when creating directories or naming files - there are a few things to be careful with. There are all kinds of special characters that you can not use in those names. Also, it is a bad idea in general to use paths with spaces in projects. So, whatever I enter as a project or solution name - it might not be possible to use them as the directory names and solution/project file names. So, the wizard could generate &lt;span style=&quot;font-style: italic;&quot;&gt;safe&lt;/span&gt; names for us. It could generate them, but it could also let us edit those names just in case we want that. Also, if I&#39;m creating a library called &quot;PM&#39;s Standard Library&quot; I don&#39;t really want to include headers from that library by prefixing &quot;pm_s_standard_library/&quot;. So, we will also need an &lt;span style=&quot;font-style: italic;&quot;&gt;abbreviated&lt;/span&gt; solution/project name.&lt;br /&gt;&lt;br /&gt;Having discussed all that, I think it&#39;s time to start designing the pages of our wizard. However, that&#39;s the thing we will talk about in the next part of this article series. Stay tuned! ;)</description><link>http://pm-db.blogspot.com/2007/11/customization-custom-visual-c-wizard_12.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-7583450155259151956</guid><pubDate>Wed, 07 Nov 2007 17:44:00 +0000</pubDate><atom:updated>2007-11-12T13:45:19.679+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">custom</category><category domain="http://www.blogger.com/atom/ns#">customization</category><category domain="http://www.blogger.com/atom/ns#">planning</category><category domain="http://www.blogger.com/atom/ns#">visual c++</category><category domain="http://www.blogger.com/atom/ns#">wizard</category><title>Customization: Custom Visual C++ Wizard - Part I</title><description>As I told you &lt;a href=&quot;http://pm-db.blogspot.com/2007/08/choosing-tools-integrated-development.html&quot;&gt;earlier&lt;/a&gt; - I am using &lt;a href=&quot;http://msdn2.microsoft.com/en-us/express/aa700735.aspx&quot;&gt;Microsoft Visual C++ 2005 Express Edition&lt;/a&gt;. Unfortunately, this version of Visual C++ has some limitations. One such limitation, is that you can not design custom project (or item) wizards with it and for it. However, a creative person such as me or you, might still figure out the way...&lt;br /&gt;&lt;br /&gt;Yes, that is true. I know how to add wizards. I will try to make one such custom wizard and in the process of making it - I will post articles about what I&#39;m doing.&lt;br /&gt;&lt;br /&gt;So. What is the first thing you should do, when making a wizard? Personally, when I figured out how wizards work - I started making one. Planning is for pussies, right? Wrong! Plan every single thing in your wizard. It is very frustrating, when you have to start over and over again.&lt;br /&gt;&lt;br /&gt;Ok, so let&#39;s start from the list of annoying things in the default (console project) wizard. Here is my list:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The default Debug and Release configurations.&lt;/li&gt;&lt;li&gt;Default settings in those Debug and Release configurations.&lt;/li&gt;&lt;li&gt;Solution and project directory structure.&lt;/li&gt;&lt;li&gt;Default generated code.&lt;/li&gt;&lt;/ol&gt;I&#39;d be interested to see your lists (it might give me ideas), so please - feel free to leave a comment. Thanks! Now, let&#39;s proceed.&lt;br /&gt;&lt;br /&gt;Here are the explanations of each item on my list:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I always break down my projects into small libraries. When I start developing those libraries - I never know if I&#39;ll want static library (LIB) or shared library (DLL). Also, I don&#39;t know which run-times I&#39;ll want to use in my final application (they can also be static and shared). So, it would be great if I could have a project with both. It means, that I want to start with four configurations: Debug Static, Debug Shared, Release Static and Release Shared. It doesn&#39;t really matter what kind of project I&#39;m making - I always want these configurations.&lt;/li&gt;&lt;li&gt;Now, when I&#39;m writing my code - I always set the warning level to the max (level 4). Whenever I create a project with the default project wizard - I spend 15 minutes or so going through Project settings. That is wrong! I want the wizard to set the correct values for me, so that I can create a project and start coding!&lt;/li&gt;&lt;li&gt;This is the tricky one. By default, Visual Studio solutions and projects have this directory structure:&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[solution]&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;top level solution directory;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[config]&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;each solution configuration gets it&#39;s own output directory;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[project]&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;project directory;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[config]&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;each project configuration gets it&#39;s own intermediate directory;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[project].vcproj&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;project file;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;*.cpp&lt;/span&gt;, &lt;span style=&quot;font-weight: bold;&quot;&gt;*.h&lt;/span&gt;, &lt;span style=&quot;font-weight: bold;&quot;&gt;*.rc&lt;/span&gt; and so on - &lt;span style=&quot;font-style: italic;&quot;&gt;source files are all in this directory as well;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[solution].sln&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;solution file.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Am I the only one concerned about the fact that intermediate files are placed in the subdirectory of the source code directory? I mean, when you hit &quot;Clean Solution&quot; - VC++ never cleans all of the files. There is always something left in that directory. So if you want to create a source code package (for whatever purposes), you have to manually delete those files. And the binaries? They are placed in separate directories in the top-level solution directory. Let&#39;s summarize. Here&#39;s how I imagine the perfect solution directory structure:&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[solution]&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;top level solution directory;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;bin&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;executables (EXE and DLL files);&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;lib&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;libraries (all LIB files - DLL export libraries and static libraries);&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;src&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;source directory;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[solution]&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;top level source directory (so that we can have includes like this: &quot;[solution]/[project]/[file].h&quot;);&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[project]&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;project directory;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[project].vcproj&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;project file;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;*.cpp&lt;/span&gt;, &lt;span style=&quot;font-weight: bold;&quot;&gt;*.h&lt;/span&gt;, &lt;span style=&quot;font-weight: bold;&quot;&gt;*.rc&lt;/span&gt; and so on - &lt;span style=&quot;font-style: italic;&quot;&gt;source files are all in this directory as well;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;*.h&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;some common configuration headers;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;tmp&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;intermediate files;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[config]&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;each project configuration gets it&#39;s own directory;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[project]&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;each project gets it&#39;s own intermediate directory;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;[solution].sln&lt;/span&gt; - &lt;span style=&quot;font-style: italic;&quot;&gt;solution file.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Seriously, is there anyone who uses that default code? I talked to a few coders I know - they all say that they always check &quot;Empty project&quot;! The code is just wrong. It could be so much more useful. Anyway, we will make a wizard that will add a lot of useful code for us (it will be preprocessor macros, mostly).&lt;/li&gt;&lt;/ol&gt;So. I have defined what I don&#39;t like about the default wizard and I&#39;ve defined how those things should be fixed (how they will work in my own custom wizard). This is it for today. The second part of the article series will follow shortly.</description><link>http://pm-db.blogspot.com/2007/11/customization-custom-visual-c-wizard.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-625654555243671018</guid><pubDate>Wed, 03 Oct 2007 22:11:00 +0000</pubDate><atom:updated>2007-10-04T10:59:58.374+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">compiler</category><category domain="http://www.blogger.com/atom/ns#">learn</category><category domain="http://www.blogger.com/atom/ns#">something obvious</category><category domain="http://www.blogger.com/atom/ns#">tools</category><category domain="http://www.blogger.com/atom/ns#">warning</category><title>Something Obvious: Learn Your Tools</title><description>Yes! Learn your tools. It&#39;s amazing how many wannabe programmers who are just starting aren&#39;t really willing to learn their tools. Now, by &lt;span style=&quot;font-style: italic;&quot;&gt;tools&lt;/span&gt; I mean tools like compiler. Usually, if the compiler gives them a warning - they would rather learn how to &lt;span style=&quot;font-style: italic;&quot;&gt;disable that warning&lt;/span&gt;, instead of learning &lt;span style=&quot;font-style: italic;&quot;&gt;how to fix the code&lt;/span&gt; so that the compiler wouldn&#39;t give the warning anymore.&lt;br /&gt;&lt;br /&gt;Let&#39;s say you are driving the car. Suddenly, on the cars panel, one of the lights starts flashing. You look at the light - it&#39;s flashing because you&#39;re out of gas. Now, what do you do? Do you disable the light so that it doesn&#39;t annoy you anymore, or do you fill the gas-tank?&lt;br /&gt;&lt;br /&gt;Same with programming. All compilers, these days, are pretty smart. They&#39;re pretty good at detecting &lt;span style=&quot;font-style: italic;&quot;&gt;smelly&lt;/span&gt; code. And when they do detect such code - they issue a warning. Now, compiler doesn&#39;t do that only to annoy you. It does that because it actually wants to help you! Compiler is your friend!</description><link>http://pm-db.blogspot.com/2007/09/something-obvious-learn-your-tools.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-2012853596387713791</guid><pubDate>Wed, 12 Sep 2007 21:11:00 +0000</pubDate><atom:updated>2007-09-13T00:15:47.990+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">documentation</category><category domain="http://www.blogger.com/atom/ns#">documentation generator</category><category domain="http://www.blogger.com/atom/ns#">doxygen</category><category domain="http://www.blogger.com/atom/ns#">natural docs</category><category domain="http://www.blogger.com/atom/ns#">tools</category><title>The Tools: Documentation generator</title><description>The tools I&#39;ve discussed so far have obvious use for every developer. This one, however is something different. Most programmers do not use any source code documentation generators. Heck, I started using one only a few weeks ago! I like it so far.&lt;br /&gt;&lt;br /&gt;So, what tools should you consider, when you&#39;re developing applications with C++? Well, the first one I thought of was &lt;a href=&quot;http://www.doxygen.org/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;doxygen&lt;/span&gt;&lt;/a&gt;. It is probably the most popular tool in the world. Most of the open source libraries use it. You want my own opinion? Well, it sure can parse C++ code, though it generates some stupid warnings occasionally. The actual documentation comments are ugly. I mean, really, writing commands like &lt;code&gt;\ref&lt;/code&gt; or &lt;code&gt;$ref&lt;/code&gt; is ugly. If you&#39;re reading &lt;span style=&quot;font-style: italic;&quot;&gt;The Code&lt;/span&gt;, and not &lt;span style=&quot;font-style: italic;&quot;&gt;The Documentation&lt;/span&gt; - the comments are very cryptic and hard to read. Another thing I should mention is that I really don&#39;t like that &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;doxygen&lt;/span&gt; doesn&#39;t let you customize the look of generated documentation. I would really love if it would let me fully customize the generated output (by supplying my own templates for class, function, member, template class and so on).&lt;br /&gt;&lt;br /&gt;Another tool I&#39;ve found was &lt;a href=&quot;http://www.naturaldocs.org/&quot;&gt;Natural Docs&lt;/a&gt;. Now, the first thing I want to say is that the documentation comments are great! It doesn&#39;t have any commands or tags. When you look at the source code - it just look like normal comments. However, the tool isn&#39;t perfect either. Its&#39; support for C++ language is far from perfect. On the web site, it says that the update in this area is planned, though. So, when they implement full support for C++ language - this tool will become the best tool. But right now it&#39;s barely usable. Also, just as &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;doxygen&lt;/span&gt;, Natural Docs doesn&#39;t let you customize the generated output. Oh, and the supported output formats are fewer.&lt;br /&gt;&lt;br /&gt;There were some other tools I&#39;ve looked at. Some of them look nice, some of them are awful, but none of them deserve a separate paragraph in this blog-post. Anyway, here&#39;s is the list of tools worth mentioning:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.doxygen.org/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;Doxygen&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.naturaldocs.org/&quot;&gt;Natural Docs&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://developer.apple.com/opensource/tools/headerdoc.html&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;HeaderDoc&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.xs4all.nl/%7Erfsber/Robo/robodoc.html&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;ROBODoc&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;There aren&#39;t that many tools that generate documentation from source code...&lt;br /&gt;&lt;br /&gt;So, what is my final word? I choose &lt;a href=&quot;http://www.doxygen.org/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;Doxygen&lt;/span&gt;&lt;/a&gt;. I will be keeping an eye on &lt;a href=&quot;http://www.naturaldocs.org/&quot;&gt;Natural Docs&lt;/a&gt;, but for now, I choose &lt;a href=&quot;http://www.doxygen.org/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;Doxygen&lt;/span&gt;&lt;/a&gt;.</description><link>http://pm-db.blogspot.com/2007/09/tools-documentation-generator.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-5622091382257781790</guid><pubDate>Sun, 02 Sep 2007 11:14:00 +0000</pubDate><atom:updated>2007-09-02T14:15:49.541+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code editor</category><category domain="http://www.blogger.com/atom/ns#">notepad</category><category domain="http://www.blogger.com/atom/ns#">notepad++</category><category domain="http://www.blogger.com/atom/ns#">source editor</category><category domain="http://www.blogger.com/atom/ns#">text editor</category><category domain="http://www.blogger.com/atom/ns#">tools</category><title>The Tools: Text and Source Code Editor</title><description>Although &lt;a href=&quot;http://pm-db.blogspot.com/2007/08/choosing-tools-integrated-development.html&quot;&gt;IDE&lt;/a&gt; is the main tool to edit the source code, in some cases, you might need a good text editor too. Sometimes you just need to edit some text files (readme, license or something else), in some cases, you might even want to edit the source code without firing the &lt;a href=&quot;http://pm-db.blogspot.com/2007/08/choosing-tools-integrated-development.html&quot;&gt;IDE&lt;/a&gt; - a good text editor with syntax highlight is very handy in such situations.&lt;br /&gt;&lt;br /&gt;Everyone could simply get away with &lt;a href=&quot;http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/win_notepad_whatis_intro.mspx?mfr=true&quot;&gt;Microsoft Notepad&lt;/a&gt;, although it&#39;s crappy if we talk about source code editing. The best free editor I&#39;ve used so far is &lt;a href=&quot;http://notepad-plus.sourceforge.net/&quot;&gt;Notepad++&lt;/a&gt;. It isn&#39;t all that great all by itself, but it has some plug-ins that turn it into a very good source code editor. Namely, the Function List, TextFX and Light Explorer plug-ins are great!</description><link>http://pm-db.blogspot.com/2007/09/tools-text-and-source-code-editor.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-1755438110868521858</guid><pubDate>Thu, 23 Aug 2007 21:20:00 +0000</pubDate><atom:updated>2007-08-24T00:26:00.828+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">perforce</category><category domain="http://www.blogger.com/atom/ns#">subversion</category><category domain="http://www.blogger.com/atom/ns#">svn</category><category domain="http://www.blogger.com/atom/ns#">tools</category><category domain="http://www.blogger.com/atom/ns#">tortoisesvn</category><category domain="http://www.blogger.com/atom/ns#">vcs</category><title>The Tools: Version Control System</title><description>&lt;span style=&quot;font-weight: bold;&quot;&gt;V&lt;/span&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;ersion&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;C&lt;/span&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;ontrol&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;S&lt;/span&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;ystem&lt;/span&gt; (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;VCS&lt;/span&gt;) is a must for every computer programmer, even if he&#39;s not working in a team. It is important for a coder, because coding and experimenting are inseparable sisters. Sometimes, experiments fail and you have to (or at least - you want to) go back to where you were three days ago. Usually, in such situations, a coder would get really frustrated because he doesn&#39;t have any backups. However, if you are using &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;VCS&lt;/span&gt; - you all of your backups. You jest check the log, figure out which revision do you need, and then you can easily roll back to that revision. I don&#39;t think I have to explain why it is a must when you&#39;re working in a team...&lt;br /&gt;&lt;br /&gt;So, what is the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;VCS&lt;/span&gt; of my choice? It&#39;s &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;SVN&lt;/span&gt;) + &lt;a href=&quot;http://tortoisesvn.tigris.org/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;TortoiseSVN&lt;/span&gt;&lt;/a&gt;. Yes, I have heard about &lt;a href=&quot;http://www.perforce.com/&quot;&gt;Perforce&lt;/a&gt;, and it is probably very good (because there was a lot of people who suggested it on various forums). However, Perforce is &lt;a href=&quot;http://www.perforce.com/perforce/price.html&quot;&gt;not free&lt;/a&gt; (you have to buy the commercial Perforce license if you want more than 2 users or 5 workstations) - although I&#39;m working alone, some people might join me in the future. Also, I don&#39;t really want to limit myself to open source projects - I might want to release some closed source projects as well. So, I just use the most popular free tool on earth.&lt;br /&gt;&lt;br /&gt;Well, actually, I didn&#39;t really choose &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;SVN&lt;/span&gt; - I already had it my computer (because of some open source projects in which I participate), so I&#39;m really familiar with it and I don&#39;t really want to install anything else.&lt;br /&gt;&lt;br /&gt;One thing to note. If you&#39;re worried that your computer might die one day - you can make backups of your &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;SVN&lt;/span&gt; repositories. Personally, I make one backup each week - I actually sleep better that way.</description><link>http://pm-db.blogspot.com/2007/08/choosing-tools-version-control-system.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-1561320431508646317</guid><pubDate>Thu, 23 Aug 2007 16:40:00 +0000</pubDate><atom:updated>2007-08-24T00:25:47.641+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">c++</category><category domain="http://www.blogger.com/atom/ns#">express</category><category domain="http://www.blogger.com/atom/ns#">microsoft</category><category domain="http://www.blogger.com/atom/ns#">tools</category><category domain="http://www.blogger.com/atom/ns#">visual c++</category><title>The Tools: Integrated Development Environment</title><description>&lt;span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;I&lt;/span&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;ntegrated&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;D&lt;/span&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;evelopment&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;E&lt;/span&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;nvironment&lt;/span&gt;&lt;/span&gt; (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;IDE&lt;/span&gt;) is probably the most important tool. It&#39;s the tool that you use to accomplish many things:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Managing the projects.&lt;/li&gt;&lt;li&gt;Managing build settings for your projects and individual files.&lt;/li&gt;&lt;li&gt;Code writing.&lt;/li&gt;&lt;li&gt;Building.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Debugging.&lt;/li&gt;&lt;/ul&gt;So, what &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;IDE&lt;/span&gt; do I choose? I choose &lt;a href=&quot;http://msdn2.microsoft.com/en-us/express/aa700735.aspx&quot;&gt;Microsoft Visual C++ 2005 Express Edition&lt;/a&gt;. Why you ask? Well, first of all - it&#39;s the best &lt;span style=&quot;font-weight: bold;&quot;&gt;free&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;IDE&lt;/span&gt; for my platform. I only code on Windows (though, I always think about portability while coding). I do not use the .NET features (C++/&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;CLI&lt;/span&gt;), but it still is the best tool. It takes a little time to set it up (I have to manually download the &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A&amp;displaylang=en&quot;&gt;Platform &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;SDK&lt;/span&gt;&lt;/a&gt; and &lt;a href=&quot;http://msdn2.microsoft.com/en-us/xna/aa937788.aspx&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;DirectX&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;SDK&lt;/span&gt;&lt;/a&gt;) but I think it&#39;s worth it.&lt;br /&gt;&lt;br /&gt;Before Microsoft released this great edition for free - I was using all sorts of other &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;IDEs&lt;/span&gt; and compilers and was never happy about them. The thing is - whatever &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;IDE&lt;/span&gt; you are using - it must not get in the way. It must be intuitive to use. Other &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;IDEs&lt;/span&gt; couldn&#39;t give me that. So, most of the times, I was using the free Microsoft Visual C++ 2003 .NET compiler (can&#39;t find the link anymore) and I was writing &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;makefiles&lt;/span&gt; &lt;span style=&quot;font-style: italic;&quot;&gt;by hand&lt;/span&gt; (that&#39;s right!). But when the free 2005 Express Edition came out - I pick it up very fast, because it was very intuitive. I didn&#39;t have to spend hours struggling to figure out how to properly configure everything - it just worked right after I installed it.&lt;br /&gt;&lt;br /&gt;As a last note, I&#39;d like to point out, that although &lt;a href=&quot;http://msdn2.microsoft.com/en-us/express/aa700735.aspx&quot;&gt;Microsoft Visual C++ 2005 Express Edition&lt;/a&gt; is stripped version (you can&#39;t use &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_14&quot;&gt;plugins&lt;/span&gt;), but it still has some extensibility features. One of them is that you can use the custom project wizards, and the other is that you can extend it with some external tools that it can run in the build process. If you think that these two are minor features that no one is using - you are wrong. After I experimented a little with them - I developed my own custom project wizards and I added some third party tools into the build process (the one I use the most is the &lt;a href=&quot;http://upx.sourceforge.net/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_15&quot;&gt;UPX&lt;/span&gt;&lt;/a&gt; tool to compress my release binaries and I can configure it just as I configure the C++ compiler settings - in project properties).</description><link>http://pm-db.blogspot.com/2007/08/choosing-tools-integrated-development.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-8365715626643545178</guid><pubDate>Wed, 22 Aug 2007 17:36:00 +0000</pubDate><atom:updated>2007-08-24T00:25:31.005+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">tools</category><title>The Tools: Intro</title><description>So, I decided that the first series of articles I&#39;m going to write is about the development tools. It is important to choose wisely. Basically, it isn&#39;t just about &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;choosing the tools that meets your needs&quot;&lt;/span&gt;. You must actually look forward and keep in mind that some time in the future your needs might change. If that happens, you might find yourself struggling with the limitation of the toolsor you might need to migrate your work to some other tools.&lt;br /&gt;&lt;br /&gt;Personally, I already have the tools set up and ready, but I want write about &lt;span style=&quot;font-style: italic;&quot;&gt;how&lt;/span&gt; and &lt;span style=&quot;font-style: italic;&quot;&gt;why&lt;/span&gt; I chose them instead of some other alternatives.</description><link>http://pm-db.blogspot.com/2007/08/choosing-tools-intro.html</link><author>noreply@blogger.com (Paulius Maruška)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-390342010149142339.post-975202282735276371</guid><pubDate>Mon, 20 Aug 2007 15:12:00 +0000</pubDate><atom:updated>2007-08-20T18:37:28.248+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">blog</category><title>Starting the blog</title><description>I was never eager to start my own &lt;span style=&quot;font-style: italic;&quot;&gt;blog&lt;/span&gt;. I always considered blogs as a waste of time and I always though that it is a real pain in the ass to maintain one. However, I have to agree, that it is, by far, the best way to publish and exchange &lt;span style=&quot;font-style: italic;&quot;&gt;ideas&lt;/span&gt;. Yes, ideas! Oh, how many times I had &lt;span style=&quot;font-style: italic;&quot;&gt;The Best Idea Ever&lt;/span&gt; and then next morning totally forgot about it. So here I am - starting my own blog, so that I could publish my ideas, respond to other bloggers and let people know that &lt;span style=&quot;font-weight: bold;&quot;&gt;I&lt;/span&gt; exist.&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left;&quot; src=&quot;http://1.bp.blogspot.com/_brf-F05QFx8/Rsm0F7_2meI/AAAAAAAAAAU/yGMXLY6icuA/s200/nuotrauka.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5100806067071654370&quot; border=&quot;0&quot; /&gt;My name is Paulius Maruška. I&#39;m from &lt;a href=&quot;http://en.wikipedia.org/wiki/Lithuania&quot;&gt;Lithuania&lt;/a&gt;. I am 24 years old. I&#39;m studying Informatics (something similar to Computer Science). If you are wondering how do I look - you can see my picture on the left. Yes, that is me. As you can see I&#39;m a nerdy looking guy. Oh and, before you ask - no, I don&#39;t have a girlfriend - I&#39;m a &lt;span style=&quot;font-style: italic;&quot;&gt;True Nerd&lt;/span&gt;! ;)&lt;br /&gt;&lt;br /&gt;What will be the content of this blog? Well, first of all - I love to write &lt;a href=&quot;http://en.wikipedia.org/wiki/C%2B%2B&quot;&gt;C++&lt;/a&gt; code. So you can expect a lot of stuff about it. You can also expect some random ramblings about something else. I often find myself pissed off by some stupid politicians or celebrities and I want to let everyone know what I think about them. But for the most part - it will be about programming.&lt;br /&gt;&lt;br /&gt;So, that&#39;s it for now. If you&#39;re a programmer like me, and you have your own blog somewhere - leave a comment, I promise I will bookmark it and I promise I&#39;ll check it out. Take care!</description><link>http://pm-db.blogspot.com/2007/08/starting-blog.html</link><author>noreply@blogger.com (Paulius Maruška)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_brf-F05QFx8/Rsm0F7_2meI/AAAAAAAAAAU/yGMXLY6icuA/s72-c/nuotrauka.jpg" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>