<?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: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'><id>tag:blogger.com,1999:blog-2566239812530211359</id><updated>2025-08-22T19:12:19.227+02:00</updated><category term="personal"/><category term="windows"/><category term=".NET"/><category term="ACID"/><category term="active directory"/><category term="databases"/><category term="mysql"/><category term="naming"/><category term="postgresql"/><category term="processstartinfo"/><category term="project management"/><category term="random"/><category term="roaming profile"/><category term="swift"/><category term="vista"/><category term="work"/><category term="www2009 madrid conference"/><title type='text'>Bitter Olives</title><subtitle type='html'>The better kind</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-8724507070789783097</id><published>2009-04-25T14:57:00.002+02:00</published><updated>2009-04-25T15:21:57.185+02:00</updated><title type='text'>Collaborative coding</title><content type='html'>I would promote &lt;a href=&quot;http://www.secretgeek.net/open_code_sharing.asp&quot;&gt;this&lt;/a&gt; &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001257.html&quot;&gt;idea&lt;/a&gt; to a higher level than just &#39;snippet sharing&#39;. I can envision something called collaborative coding.&lt;br /&gt;&lt;br /&gt;Collaborative coding embraces the uniquely identified code snippets but enhances it with a timestamp of modification and user comments.&lt;br /&gt;&lt;br /&gt;Say,&lt;br /&gt;&lt;br /&gt;/* Calculates the fibonacci number for the parameter&lt;br /&gt;guid: {1c125546-b87c-49ff-8130-a24a3deda659}&lt;br /&gt;date: 2009-04-25 19:00&lt;br /&gt;comm: First version */&lt;br /&gt;&lt;br /&gt;int fibonacci(int n) {&lt;br /&gt;        if (n&lt;=2) return 1;&lt;br /&gt;        else return fibonacci(n-1)+fibonacci(n-2);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* Calculates the fibonacci number for the parameter&lt;br /&gt;guid: {1c125546-b87c-49ff-8130-a24a3deda659}&lt;br /&gt;date: 2009-04-25 19:25&lt;br /&gt;comm: Can&#39;t use recursion as my stack is too small, changed to an iterative version */&lt;br /&gt;&lt;br /&gt;int fibonacci(int n) {&lt;br /&gt;        if (n&lt;=2) return 1;&lt;br /&gt;        int j = 1; &lt;br /&gt;        int k = 1;&lt;br /&gt;        int ans = 0;&lt;br /&gt;        for (int i = 3; i &lt;= n; i++) {&lt;br /&gt;            ans = j + k;&lt;br /&gt;            j = k;&lt;br /&gt;            k = ans;&lt;br /&gt;        }&lt;br /&gt;        return ans;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Then tools can show diffs over time of the different versions of snippets, with comments (if available) and be made to push back the snippets to available repositories.&lt;br /&gt;&lt;br /&gt;You could actually end up having conversations in code. The identifier should identify function, and diff algorithms can show what has been changed and hopefully why.</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/8724507070789783097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/8724507070789783097' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/8724507070789783097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/8724507070789783097'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2009/04/collaborative-coding.html' title='Collaborative coding'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-2249869858505323113</id><published>2009-04-24T20:41:00.006+02:00</published><updated>2009-04-24T22:22:42.940+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="www2009 madrid conference"/><title type='text'>WWW2009</title><content type='html'>I was lucky enough to get funding to go (without having sent a paper nor being an active participant in the research community) to the last day of WWW2009 Madrid!&lt;br /&gt;&lt;br /&gt;Lucky indeed as I hadn&#39;t been before in such a global and well organized conference. I&#39;m sure there were some problems (the people in charge apologized in the closing ceremony) but I personally didn&#39;t see any.&lt;br /&gt;&lt;br /&gt;I went to the following talks:&lt;br /&gt;&lt;br /&gt;- Invited talk about web infrastructure by &lt;a href=&quot;http://investigacion.tid.es/pablorr/&quot;&gt;Pablo Rodríguez&lt;/a&gt; the Internet Scientific Director at Telefonica. He explained the problems current internet architecture which mainly consist of obsolete, generic protocols, where distribution is hard. He suggested to specialize protocols (where you route content, not hosts) and push things down a layer or two (where every router has a terabyte storage to do an akamai-for-the-people).&lt;br /&gt;&lt;br /&gt;- Invited talk about web search in web2.0 by &lt;a href=&quot;http://research.yahoo.com/Ricardo_Baeza-Yates&quot;&gt;Ricardo Baeza-Yates&lt;/a&gt;, VP of Research for Europe and Latin America at Yahoo!. He showed a pretty interesting summary of the recent research done by him and his team on searching text/images using mainly user generated content (tags, tags of objects in pictures). Summing up, using user generated content can enhance search results significantly.&lt;br /&gt;&lt;br /&gt;And some highlights from the papers presentations:&lt;br /&gt;&lt;br /&gt;- Social searching: &lt;a href=&quot;http://www.porqpine.com/&quot;&gt;Porqpine&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Synonym extraction: Ways to detect that queries like &quot;vaio 720 laptop&quot; and &quot;vaio 720&quot; are synonyms in an efficient way&lt;br /&gt;&lt;br /&gt;- &lt;a href=&quot;http://www2009.eprints.org/221/&quot;&gt;A framework to manage digital rights&lt;/a&gt;: Interesting idea, a good model to license, but sadly it requires everyone to use a centralized website and to download an extra application to access the actual content. It just doesn&#39;t pass the grandma test.&lt;br /&gt;&lt;br /&gt;- A reference implementation of the web coverage processing service standard, &lt;a href=&quot;http://www.rasdaman.com/&quot;&gt;Rasdaman&lt;/a&gt; (plus some web tools which use it to justify its presence on WWW)&lt;br /&gt;&lt;br /&gt;- Leveraging web search engines to query databases: A clever approach to enhance search results with structured database results, typically useful when searching for entities which are usually in structured DBs (movies, electronic devices and so on)&lt;br /&gt;&lt;br /&gt;- &lt;a href=&quot;http://developer.yahoo.com/yui/3/ &quot;&gt;YUI 3&lt;/a&gt;. I wasn&#39;t present at the talk, but looks nice&lt;br /&gt;&lt;br /&gt;All in all, it was a very good experience and I now have a CD with 215 pdf files to review (between papers and posters)... that&#39;s some hard work! If I manage to do any of it and see something worth, will comment on it. &lt;a href=&quot;http://www.flickr.com/photos/vinkovb/sets/72157617267695226/&quot;&gt;Pics here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/2249869858505323113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/2249869858505323113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/2249869858505323113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/2249869858505323113'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2009/04/www2009.html' title='WWW2009'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-5807479575854950089</id><published>2009-04-18T11:38:00.007+02:00</published><updated>2009-04-18T12:35:26.746+02:00</updated><title type='text'>Bach&#39;s passion</title><content type='html'>It&#39;s amazing how a good communicator can inspire. Especially a passionate communicator who shows how much he cares about the subject at hand. If you haven&#39;t seen this, you should: &lt;a href=&quot;http://video.google.com/videoplay?docid=6852841264192883219&quot;&gt;James Bach&#39;s talk&lt;/a&gt; @ Google.&lt;br /&gt;&lt;br /&gt;What I found really interesting is the combination of subjects he manages to make relevant for his field. We all should follow his lead and find inspiration and guidance from more than a single discipline.&lt;br /&gt;&lt;br /&gt;Learn, not just about technology, but about social sciences which make the technology relevant and also make the development of the technology easier. For example, if you could communicate better and understand people&#39;s limitations on what they can perceive, you would be able to gather better requirements, or capture bug reports more efficiently, or just develop humane software (*). Not to mention the applications outside the world of software (love life, friends, networking your career).&lt;br /&gt;&lt;br /&gt;In fact, this all points to aspiring to becoming a generalist, the more you can aprehend about different subjects the more you can then combine in different ways under different contexts. Current schooling does not aim to this, but &lt;a href=&quot;http://www.buccaneerscholar.com/blog/archives/31&quot;&gt;you can always take care of your education&lt;/a&gt; (in addition to or instead of the regular, your call). In the words of the great &lt;a href=&quot;http://www.arachnoid.com/&quot;&gt;Paul Lutus&lt;/a&gt; &quot;do not let your schooling interfere with your education&quot;.&lt;br /&gt;&lt;br /&gt;(*): More on humane software some day.</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/5807479575854950089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/5807479575854950089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/5807479575854950089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/5807479575854950089'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2009/04/bachs-passion.html' title='Bach&#39;s passion'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-7092702962242134370</id><published>2009-03-30T21:55:00.003+02:00</published><updated>2009-03-31T07:04:10.683+02:00</updated><title type='text'>The case against the case against everything buckets</title><content type='html'>Alex Payne writes a good piece about how &lt;a href=&quot;http://al3x.net/2009/01/31/against-everything-buckets.html&quot; title=&quot;The case against everything buckets&quot;&gt;everything buckets&lt;/a&gt; are awful. &lt;br /&gt;&lt;br /&gt;He defines everything buckets as applications where you can store every imaginable piece of data and then search over the RTF or PDF documents it generates. Or, in his own words:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;These applications claim to be “your outboard brain” or “your digital filing cabinet” or similar. They go by many names: Yojimbo, Together, ShoveBox, Evernote, DEVONthink. There may be differences in their implementation and appearance, but these applications are all of the same sinister ilk. They are Everything Buckets.&lt;/blockquote&gt;&lt;br /&gt;He then continues on how these kind of applications suck because they try to do many things at once and fail miserably at most if not all of them. Additionally, he says filesystems already have all the features that allow you to organize all the information you want (you can even have tags via symlinks, he stresses). There&#39;s no need to pay for these lousy implemented, do-many-things-wrongly apps.&lt;br /&gt;&lt;br /&gt;Computers like structured data and so filesystems are a good way to store hierarchical information without the need for expensive indexing tasks current operating systems usually perform (Spotlight, Beagle, and so on).&lt;br /&gt;&lt;br /&gt;This is all good and well, though there &lt;a href=&quot;http://209.85.229.132/search?q=cache:I3ykvHP_-mMJ:www.usemod.com/cgi-bin/mb.pl%3FHumaneInterface+filesystems+suck&amp;cd=6&amp;hl=en&amp;ct=clnk&amp;client=firefox-a&quot;&gt;are people who think&lt;/a&gt; &lt;a href=&quot;http://www.osnews.com/story/2762/The_New_BFS_Brendan_File_System_&quot;&gt;hierarchical filesystems suck&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Anyhow, even if everybody agreed that current filesystems are Sliced Bread 2.0, this well construed argument lacks a pretty important consideration, which is &lt;span style=&quot;font-weight:bold;&quot;&gt;people want the computer to organize their information for them&lt;/span&gt;, even if current applications blow. Alex is too quick in dismissing the concept, only because there is no good implementation of it.&lt;br /&gt;&lt;br /&gt;All these arguments could have well been used against web search 12 years ago, and I need not mention what happened to it. A good everything bucket would not prevent you to do work with your computer when you want to, nor would it corrupt its data, additionally it would cross reference the data and automatically insert what you throw at it into relevant buckets with little user input.&lt;br /&gt;&lt;br /&gt;Alex&#39;s advice is right in that, as of now, you are better trying to organize your information manually via the filesystem (YMMV), but he&#39;s wrong in that you will never be able to have a good everything bucket application, and even more wrong when he says everything buckets shouldn&#39;t exist.&lt;br /&gt;&lt;br /&gt;The need certainly exists. The fact that current individual personal computers suck at managing unstructured information and take too much time at creating structure from the chaos is merely accidental.&lt;br /&gt;&lt;br /&gt;Let us create a good Everything Bucket soon enough.&lt;br /&gt;&lt;br /&gt;UPDATE: As always, I arrive &lt;a href=&quot;http://al3x.net/2009/02/24/why-no-comments-more-everything-buckets.html&quot;&gt;late&lt;/a&gt; &lt;a href=&quot;http://8stars.org/a/2009/02/09/a-humble-case-against-everything-buckets/&quot;&gt;to&lt;/a&gt; &lt;a href=&quot;http://www.markbernstein.org/Feb09/EverythingBuckets.html&quot;&gt;the&lt;/a&gt; &lt;a href=&quot;http://log.scifihifi.com/post/76989703/everything-buckets&quot;&gt;party&lt;/a&gt;... and, of course, some people like current everything buckets. I still think they can and should do a lot better.</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/7092702962242134370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/7092702962242134370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/7092702962242134370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/7092702962242134370'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2009/03/case-against-case-against-everything.html' title='The case against the case against everything buckets'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-1976913612792163642</id><published>2009-03-09T14:42:00.003+01:00</published><updated>2009-03-09T15:37:26.348+01:00</updated><title type='text'>Excel Interop COMException HRESULT 0x800A03EC via C# (.NET 2.0)</title><content type='html'>Today I&#39;m writing some code to read Excel files via the interop assemblies. I was reusing working code and it suddenly started failing with a COMException which said the error code was HRESULT 0x800A03EC.&lt;br /&gt;&lt;br /&gt;I&#39;m using the following code:&lt;br /&gt;&lt;br /&gt;string excelLocation = @&quot;C:\test.xls&quot;;&lt;br /&gt;Microsoft.Office.Interop.Excel.Application _app = new Microsoft.Office.Interop.Excel.Application();&lt;br /&gt;&lt;br /&gt;Workbook wbook = _app.Workbooks.Open(excelLocation,&lt;br /&gt;    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,&lt;br /&gt;    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,&lt;br /&gt;    Type.Missing, Type.Missing, Type.Missing, Type.Missing);&lt;br /&gt;&lt;br /&gt;Worksheet sheet = (Worksheet)wbook.Sheets[1];&lt;br /&gt;&lt;br /&gt;/** rest of the code **/&lt;br /&gt;&lt;br /&gt;and I get the COMException in the line where I open the workbook.&lt;br /&gt;&lt;br /&gt;So, I open the file via regular Excel and I find out it finds the file somewhat corrupt, Excel tells me it had fixed some font and sheet name problems with the file and that if I want to make that fix permanent to save the file. I save the file and then the code works!&lt;br /&gt;&lt;br /&gt;But wait, this is not the proper solution if you want a truly automated processing of the files. Given that I don&#39;t control the Excel generation process I cannot fix the corruption on the source side of things, so I&#39;ll have to fix it on my side.&lt;br /&gt;&lt;br /&gt;I started to dig into the Open method parameters and found that the last parameter is suggestively called &#39;CorruptLoad&#39; so, the solution:&lt;br /&gt;&lt;br /&gt;string excelLocation = @&quot;C:\test.xls&quot;;&lt;br /&gt;Microsoft.Office.Interop.Excel.Application _app = new Microsoft.Office.Interop.Excel.Application();&lt;br /&gt;&lt;br /&gt;Workbook wbook = _app.Workbooks.Open(excelLocation,&lt;br /&gt;    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,&lt;br /&gt;    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,&lt;br /&gt;    Type.Missing, Type.Missing, Type.Missing, true);&lt;br /&gt;&lt;br /&gt;Worksheet sheet = (Worksheet)wbook.Sheets[1];&lt;br /&gt;&lt;br /&gt;/** rest of the code **/&lt;br /&gt;&lt;br /&gt;And that opens it without throwing an exception and gets all the data in the sheets, at least for this particular type of file corruption.</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/1976913612792163642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/1976913612792163642' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/1976913612792163642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/1976913612792163642'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2009/03/excel-interop-comexception-hresult.html' title='Excel Interop COMException HRESULT 0x800A03EC via C# (.NET 2.0)'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-2917672371313732693</id><published>2009-01-13T17:53:00.002+01:00</published><updated>2009-01-13T17:56:15.526+01:00</updated><title type='text'>Wondered this too?</title><content type='html'>I had always wondered why you only see 3 GB only. Usually simplifying explanations to you need 64 bits OS so see 4GB.&lt;br /&gt;&lt;br /&gt;Real explanation is &lt;a href=&quot;http://blogs.msdn.com/hiltonl/archive/2007/04/13/the-3gb-not-4gb-ram-problem.aspx&quot;&gt;here&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/2917672371313732693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/2917672371313732693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/2917672371313732693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/2917672371313732693'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2009/01/wondered-this-too.html' title='Wondered this too?'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-8375684971216820610</id><published>2008-12-20T16:51:00.003+01:00</published><updated>2008-12-20T17:06:29.781+01:00</updated><title type='text'>There is no hope</title><content type='html'>If one&#39;s to give any credibility to &lt;a href=&quot;http://hypnosis.home.netcom.com/iq_vs_religiosity.htm&quot;&gt;this study&lt;/a&gt;, then campaigns like &lt;a href=&quot;http://www.atheistcampaign.org/&quot;&gt;this one&lt;/a&gt; stand no chance at all to light up a fruitful dialogue.&lt;br /&gt;&lt;br /&gt;Nonetheless I&#39;m glad things like this are happening and the voice of the non believers is making itself heard next to the believers&#39; voice, who usually tend to shout way too loud for anything else to be heard.</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/8375684971216820610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/8375684971216820610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/8375684971216820610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/8375684971216820610'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2008/12/there-is-no-hope.html' title='There is no hope'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-3155506638051125520</id><published>2008-12-20T00:01:00.005+01:00</published><updated>2008-12-20T11:37:52.225+01:00</updated><title type='text'>Visual Programming Revisited</title><content type='html'>I find &lt;a href=&quot;http://subtextual.org&quot;&gt;Subtext&lt;/a&gt; (soon to be called &lt;a href=&quot;http://alarmingdevelopment.org/?p=177&quot;&gt;Juncture&lt;/a&gt;) highly interesting, the basic premise is true (we are restrained by text) and the solution looks like going in the right direction, as less work and easier reasoning are always welcome. I still wonder how will that extend to huge systems, but I&#39;m willing to let it pass for now.&lt;br /&gt;&lt;br /&gt;Check the &lt;a href=&quot;http://subtextual.org/subtext2.html  &quot;&gt;video&lt;/a&gt; on it and you&#39;ll be surprised. You might love it or hate it, but it will surprise you. That&#39;s just how it is with great ideas.&lt;br /&gt;&lt;br /&gt;You should also check Jonathan Edwards&#39; (the author of this experiment) blog, &lt;a href=&quot;http://alarmingdevelopment.org/&quot;&gt;Alarming Development&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/3155506638051125520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/3155506638051125520' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/3155506638051125520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/3155506638051125520'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2008/12/visual-programming-revisited.html' title='Visual Programming Revisited'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-8202871963521984376</id><published>2008-09-04T08:15:00.010+02:00</published><updated>2008-09-04T09:14:47.339+02:00</updated><title type='text'>Flames</title><content type='html'>As much as I hate the pussyfooting, heartwarmingly tender posture of the peace loving, criticism avoiding please don&#39;t shout and be quiet crowd:&lt;br /&gt;&lt;a href=&quot;http://itscommonsensestupid.blogspot.com/2008/09/why-shout-cant-we-just-talk.html&quot;&gt;&lt;br /&gt;When we do make mistakes, just point them out politely, there is no need to shout. &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and regardless of how much I love the tough, impolite, harsh and rough posture of the flaming crowd:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://blogging-harmful.blogspot.com/2008/09/ars-ignis.html&quot;&gt;The common refrain (enumerated in &quot;Why Shout?&quot;) is &quot;Can&#39;t we all just get along?&quot; The answer is no. No, we cannot. Indeed, every community I&#39;ve seen in which people &quot;just get along&quot; (usually through strict moderation) degenerates into a feel-good circlejerk devoid of any useful critique. You need only look at a place like DeviantArt to see this in action.&lt;br /&gt;&lt;br /&gt;The alternative to this is a community in which criticism is largely unmoderated, inevitably leading to scathing critiques and outright flames.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I think there is a third way.&lt;br /&gt;&lt;br /&gt;Disregarding the classical flame concept, which &lt;a href=&quot;http://en.wikipedia.org/wiki/Flaming_(Internet)&quot;&gt;by definition&lt;/a&gt; contains personal insults, I propose a new classification: &lt;br /&gt;&lt;br /&gt;a) &lt;a href=&quot;http://lkml.org/lkml/2007/4/25/492&quot;&gt;technical flames&lt;/a&gt;, where mistakes are pointed out in a rough or hostile manner with no time wasting for politeness (note that in the example the insults are given to the &lt;span style=&quot;font-weight:bold;&quot;&gt;technical contents&lt;/span&gt;, not to the person arguing for them) and &lt;br /&gt;&lt;br /&gt;b) &lt;a href=&quot;http://www.ultimateflame.com/&quot;&gt;personal flames&lt;/a&gt;, where no technical content is given. &lt;br /&gt;&lt;br /&gt;Couldn&#39;t a moderation system take care of the latter while allowing the former?&lt;br /&gt;&lt;br /&gt;I believe it could. It just needs the proper moderators. Of course there will be controversial content and you have to draw the line somewhere, but just by doing nothing when unsure, that is, by allowing the content stepping on the line, everything should be okay.&lt;br /&gt;&lt;br /&gt;I also believe it would be desirable. I&#39;d rephrase the &quot;there&#39;s no need to shout&quot; for &quot;there&#39;s no need to call somebody an idiot just because he is one&quot;. Just let the facts show him as one if you feel that kind of urge. It&#39;s harder, but a lot classier.</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/8202871963521984376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/8202871963521984376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/8202871963521984376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/8202871963521984376'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2008/09/flames.html' title='Flames'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-4250727730071152883</id><published>2008-09-01T16:11:00.002+02:00</published><updated>2008-09-01T16:13:32.698+02:00</updated><title type='text'>So true</title><content type='html'>&lt;a href=&quot;http://feeds.raganwald.com/~r/raganwald/~3/365285243/thats-where-change-is-possibilities-you.html&quot;&gt;This&lt;/a&gt;  is so true. The original source is less interesting, and in my opinion it reads better without the original context.&lt;br /&gt;&lt;br /&gt;What are you doing to be above it?</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/4250727730071152883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/4250727730071152883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/4250727730071152883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/4250727730071152883'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2008/09/so-true.html' title='So true'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-4553026119372443816</id><published>2008-09-01T12:11:00.005+02:00</published><updated>2008-09-01T20:13:02.130+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="databases"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="naming"/><category scheme="http://www.blogger.com/atom/ns#" term="postgresql"/><category scheme="http://www.blogger.com/atom/ns#" term="project management"/><title type='text'>Naming inconsistencies</title><content type='html'>Look at this, forget everything else you know about these commands or the products behind them and think for a while:&lt;br /&gt;&lt;br /&gt;root@parrot:~# my&lt;tab&gt;&lt;br /&gt;myisamchk                   mysqlaccess                 mysql_client_test_embedded  mysqldumpslow               mysqlimport                 mysqlshow                   mysqltestmanager-pwgen      myisam_ftdump               mysqladmin                  mysql_convert_table_format  mysql_explain_log          mysql_install_db            mysql_tableinfo             mysql_tzinfo_to_sql         myisamlog                   mysqlbinlog                 mysqld                      mysql_find_rows             mysqlmanager                mysqltest                   mysql_upgrade               myisampack                  mysqlbug                    mysqld_multi                mysql_fix_extensions        mysqlreport                 mysqltest_embedded          mysql_upgrade_shell         mysql_print_defaults        mysqlcheck                  mysqld_safe                 mysql_fix_privilege_tables  mysql_secure_installation   mysqltestmanager            mysql_waitpid               mysql                       mysql_client_test           mysqldump                   mysqlhotcopy                mysql_setpermission         mysqltestmanagerc           mysql_zap&lt;br /&gt;&lt;br /&gt;root@parrot:~# pg&lt;tab&gt;&lt;br /&gt;pg                pg_ctlcluster      pg_dump            pg_lsclusters      pgrep              pg_upgradecluster  pg_createcluster   pg_dropcluster     pg_dumpall         pg_maintenance     pg_restore&lt;br /&gt;(pg and pgrep are not postgresql related)&lt;br /&gt;&lt;br /&gt;Same things happen if you start looking at the command line options (try mysqldump --help and pg_dump --help). &lt;br /&gt;&lt;br /&gt;So, which one is easier to use? Which one makes more sense? What does this tell you about the two projects? ($)&lt;br /&gt;&lt;br /&gt;To me, it says one has organized, well thought, planned development, which transpires the whole product, even to the user interfaces. The other one has haphazard, randomly planned development, which probably percolates from the user interfaces to the code (*), or viceversa.&lt;br /&gt;&lt;br /&gt;I&#39;m not saying this demonstrates MySQL as an inferior product. I&#39;m saying this demonstrates MySQL is less organized, cares less about user interfaces and probably is less organized in a lot of other areas as well. I cannot be sure about that, but it sure is the impression it gives to me.&lt;br /&gt;&lt;br /&gt;Of course this is not privative to the MySQL project, same naming inconsistencies plague &lt;a href=&quot;http://www.tnx.nl/php.html#names&quot;&gt;PHP&lt;/a&gt;, for instance. &lt;br /&gt;&lt;br /&gt;I guess what I&#39;m really trying to say here is that you must take care about all pieces of a project, the more care you take, the better it will look and the easier will be to make it as good as it looks. &lt;br /&gt;&lt;br /&gt;What impression is your project giving?&lt;br /&gt;&lt;br /&gt;($): Of course one single fact cannot tell the whole story, so please apply standard disclaimers.&lt;br /&gt;(*): I must confess I haven&#39;t looked at mysql&#39;s code so I cannot know.</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/4553026119372443816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/4553026119372443816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/4553026119372443816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/4553026119372443816'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2008/09/naming-inconsistencies.html' title='Naming inconsistencies'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-1526384206896896652</id><published>2008-08-31T11:15:00.003+02:00</published><updated>2008-08-31T12:38:18.719+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="processstartinfo"/><category scheme="http://www.blogger.com/atom/ns#" term="vista"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Win32Exception error code 267 &quot;The directory name is invalid&quot;</title><content type='html'>I&#39;m currently working on an &quot;Automated Run As&quot; tool. Its goal is helping admins which, like me, have to give users a means to execute one or two programs as Administrator and would like to do so without having to surrender an admin&#39;s password.&lt;br /&gt;&lt;br /&gt;So, I&#39;m developing on Vista and I just whipped up a small proof of concept prototype, that&#39;d run calc.exe as a different user, using ProcessStartInfo and Process. This worked fine when I executed it as myself (a rather pointless exercise, I must admit), but when I created a new user and tried to run it as him, I stumbled upon a Win32Exception complaining that the directory name is invalid, native error code 267. I was instsantly baffled, as I knew of no supplied directory name that could be invalid. I then tested the code on an XP machine and it worked!&lt;br /&gt;&lt;br /&gt;I started googling on it to no avail, many reports of that error but no conclusive solution, or on different contexts. Finally, after a while it dawned on me, I wasn&#39;t specifying the WorkingDirectory property of the ProcessStartInfo class, as soon as I added the lines&lt;br /&gt;&lt;br /&gt;            FileInfo fileInfo = new FileInfo(path);&lt;br /&gt;            startInfo.WorkingDirectory = fileInfo.DirectoryName;&lt;br /&gt;&lt;br /&gt;to my code, it was allowed to run code as different than logged in user.&lt;br /&gt;&lt;br /&gt;As to why, I haven&#39;t looked deep enough yet, I think that it may have something to do with default values of the property or with default behavior when it is not specified, plus default permissions (which were tightened on Vista, if I&#39;m not mistaken).&lt;br /&gt;&lt;br /&gt;Do *you*, my non existent reader, know why?</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/1526384206896896652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/1526384206896896652' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/1526384206896896652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/1526384206896896652'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2008/08/win32exception-error-code-267-directory.html' title='Win32Exception error code 267 &quot;The directory name is invalid&quot;'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-8236126283817120983</id><published>2008-08-22T20:01:00.007+02:00</published><updated>2008-08-25T11:35:27.952+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="active directory"/><category scheme="http://www.blogger.com/atom/ns#" term="roaming profile"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Moving from a Workgroup based network to an Active Directory one</title><content type='html'>Back from vacation! I spent this week (yes, you read that correctly) migrating our 10 machine workgroup based network to an Active Directory setup. Despite the long time taken I must confess it was not too painful, as most of that time was spent first designing the user/group/permission setup I wanted to enforce in our network (previously everyone was an admin and we had a mess on the network) then reconfiguring the damn application we have to run on all the machines and waiting for data to move, machines to reboot and so on. I learned more about Windows this week than in my previous 15 years working with computers (mainly on Linux :-)), I honestly didn&#39;t want to know that much.&lt;br /&gt;&lt;br /&gt;First the good news, I used a Windows Server 2003 (x64) as a server and all our machines are XP Pro so there was much pain avoided. I&#39;ve read that in an heterogeneous or bigger setup lots of issues arise.&lt;br /&gt;&lt;br /&gt;So, the steps I followed and stones I had to kick were, roughly:&lt;br /&gt;&lt;br /&gt;1) Configure Windows Server 2003 DNS, making it serve a fake domain just for AD, thus avoiding to configure zone transfers between our ISP&#39;s DNS and this server. Also I make this DNS to cache our ISP&#39;s one for the clients to be able to navigate normally.&lt;br /&gt;&lt;br /&gt;2) Configure Active Directory, define shares and some other stuff, the wizard is fine for that. Afterwards define the groups and users you&#39;ll use.&lt;br /&gt;&lt;br /&gt;3) Configure each machine network connection to use the Windows Server&#39;s DNS.&lt;br /&gt;&lt;br /&gt;4) Go on each machine to System, Computer Name, Change, pick Domain and put the name of the domain. It&#39;ll ask you the password of a Domain Admin so the machine can be added. Reboot and the machine&#39;s now a member of the domain!&lt;br /&gt;&lt;br /&gt;5) I wanted for each user to be able to log on on any machine and carry his profile with him, so I learned about and configured Roaming Profiles. This is done by first defining a share that&#39;ll store profiles and having write permissions for the users&#39; group, let&#39;s say \\server\profiles. Then you must log on to the machine as an administrator (and also a DIFFERENT account than the one you want to copy) to copy the profile of the user of the machine by going to System, Advanced, User Profiles and click the button and then &quot;Copy To&quot; for the profile you&#39;re interested in. On the popup we select the share we created plus the username, for instance, \\server\profiles\jdoe and in the lower part of the popup we can tell which domain user can use this profile, in this case jdoe@domain.local. Then wait for the data to move to the share. Afterwards configure the account on the domain controller to use the profile located on \\server\profiles\jdoe (This is under the Profile tab, if I remember correctly)&lt;br /&gt;&lt;br /&gt;Caveat: When the Copy To button is grayed out it means that the account the profile belongs to is either logged on or a process is running with that account&#39;s credentials (this last one took me a while to figure out). &lt;br /&gt;&lt;br /&gt;6) Now we can test the profile works by logging out of the admin account and logging in as the domain user in the machine. &lt;br /&gt;&lt;br /&gt;Okay, so, what&#39;s next? We have all the machines in the domain and the roaming profiles set up. Why have them in the domain if we won&#39;t use it, no? So&lt;br /&gt;&lt;br /&gt;7) Define and configure the Global Policy. This is too huge to get into details but basically you can configure here everything from registry access to installed software to firewall setup to password policies for all the machines in the domain AND for individual users (which would override the machine&#39;s one if they are both set up for the same parameters). To do this it is recommended to download the Global Policy Management Console (GPMC) which can be downloaded &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=0a6d4c24-8cbd-4b35-9272-dd3cbfc81887&quot;&gt;here&lt;/a&gt;, and a relatively good reference is &lt;a href=&quot;http://technet2.microsoft.com/WindowsServer/f/?en/library/b9cb929b-4c2f-4754-ad31-d154bb8105771033.mspx&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Caveats: It needs .NET Framework 1.1 and it only works on 32 bit machines. Good news is it can be used from any machine in the domain logged in as administrator. Also you must remember to activate  the policy with the command gpupdate /force on each machine you want the policy to get activated right now as opposed to when it reboots or somebody logs off and on&lt;br /&gt;&lt;br /&gt;8) Test your applications, see if you need extra rules on the firewall or permissions on the folders, etc. &lt;br /&gt;&lt;br /&gt;Pending issues:&lt;br /&gt;a) Remote software installation (ie, not needing the msi supported by the Global Policy) or else how to convert any app to a GPO usable msi. &lt;br /&gt;&lt;br /&gt;b) Write a tool to run programs as different accounts without sharing the administrator password. &lt;br /&gt;&lt;br /&gt;c) Find out about controlling a user&#39;s session without having him log off from the machine, all I&#39;ve managed so far is to use remote desktop to log off the user, which is not nice, sometimes I&#39;d like to enter her own session.&lt;br /&gt;&lt;br /&gt;Phew, that was quite a bit of information :-)&lt;br /&gt;&lt;br /&gt;Hope this helps somebody.</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/8236126283817120983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/8236126283817120983' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/8236126283817120983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/8236126283817120983'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2008/08/moving-from-workgroup-based-network-to.html' title='Moving from a Workgroup based network to an Active Directory one'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-710541324192722338</id><published>2008-07-30T13:26:00.005+02:00</published><updated>2008-08-22T21:13:43.836+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ACID"/><category scheme="http://www.blogger.com/atom/ns#" term="work"/><title type='text'>ConBLUcurrenEScy</title><content type='html'>If you can read the title then you know what I&#39;m talking about. &lt;br /&gt;&lt;br /&gt;We use an application which allows many machines to log in with the same user. This application automatically saves changes on a database table and &quot;locks&quot; stuff in a boolean column called locked from the same table (ie, no native locks are actually used). I bet you can imagine the potential for disaster this combination allows.&lt;br /&gt;&lt;br /&gt;So, I&#39;ve been pretty much the last hour very busy trying to manually restore the state of a corrupted database. I see you, my non existent reader, immediately asking things like:&lt;br /&gt;&lt;br /&gt;a) Why didn&#39;t you restore a backup, moron?&lt;br /&gt;b) Do you know squat about ACID?&lt;br /&gt;c) Do you, in general, have a clue at all, asshole?&lt;br /&gt;&lt;br /&gt;a.- Because backups are done nightly and the lost work was from this morning. (This reminds me &lt;br /&gt;I should set up some transaction log backups so as to lose at most 15 or 30 minutes, have to buy more hard drives!)&lt;br /&gt;b.- I have no control over the application, sadly. I must report these bugs and hope they fix them. Proprietary world hell...&lt;br /&gt;c.- I have to!&lt;br /&gt;&lt;br /&gt;Well, current disaster is: some values disappear as the application loads values from the DB at startup, does changes locally in memory, then saves upon exit or at regular intervals. Two users sharing credentials doing this and only the last to exit will get its values saved.&lt;br /&gt;&lt;br /&gt;Of course I&#39;m telling people not to use the same credentials, but we all know how we are so that&#39;s not a safe solution.&lt;br /&gt;&lt;br /&gt;I really hope there is some reason besides &#39;users should not share credentials&#39; for all this nonsense.&lt;br /&gt;&lt;br /&gt;For my future reference, I must use: &lt;br /&gt;&lt;br /&gt;&quot;SELECT * FROM scInfoTbl WHERE father NOT IN (SELECT cId FROM scInfoTbl)&quot;&lt;br /&gt;&lt;br /&gt;to find which cs are orphans. Orphans kill the application, as it is not ready to handle &lt;br /&gt;an orphan c (crashes with a NPE).&lt;br /&gt;&lt;br /&gt;As you can deduce, scInfoTbl defines a tree of c, with the father column pointing to the parent leaf (or root) of the tree. Of course a leaf cannot be an orphan, so why check it? Grr...</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/710541324192722338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/710541324192722338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/710541324192722338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/710541324192722338'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2008/07/conblucurrenescy.html' title='ConBLUcurrenEScy'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-6879265476667735990</id><published>2008-07-29T20:41:00.006+02:00</published><updated>2008-08-22T21:14:36.697+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="personal"/><category scheme="http://www.blogger.com/atom/ns#" term="swift"/><title type='text'>Saving a swift</title><content type='html'>A friend found a baby common swift on the ground, he let us have it and now we are on a quest to try and save it. These beasts are quite wonderful, they fly for months in a row, only touching the ground to breed like once a year. Saving this chick will probably be very hard as they are quite sensitive to human fungi and bacteria and they can&#39;t damage their wings or feathers in the least.&lt;br /&gt;&lt;br /&gt;Anyhow first step for tomorrow morning: see if we can find the proper food (crickets, wax moth larvaes, bee drones) here in Madrid.&lt;br /&gt;&lt;br /&gt;I&#39;m going to document the process and put some pictures. Hopefully all will go well and we&#39;ll see how he flies away in 4 or 5 days or so. If not, we at least informed ourselves and did what we could.&lt;br /&gt;&lt;br /&gt;PS: &lt;a href=&quot;http://www.commonswift.org&quot;&gt;This site&lt;/a&gt; seems to be a wonderful place to  learn about this amazing bird.</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/6879265476667735990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/6879265476667735990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/6879265476667735990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/6879265476667735990'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2008/07/saving-swift.html' title='Saving a swift'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2566239812530211359.post-7903682244654440834</id><published>2008-07-29T18:21:00.002+02:00</published><updated>2008-08-22T21:14:07.313+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="personal"/><category scheme="http://www.blogger.com/atom/ns#" term="random"/><title type='text'>Hey!</title><content type='html'>Hello folks.&lt;br /&gt;&lt;br /&gt;It&#39;s known that the only way to get better at something is by doing it. So, this is my first (in truth, like my fourth, but let&#39;s pretend for literary sake) attempt at getting better at expressing written thoughts.&lt;br /&gt;&lt;br /&gt;Sadly, another requirement to express better thoughts in writing is to have thoughts in the first place and in that department I&#39;m kind of lacking. My mind is so quiet I&#39;m the envy of zen practitioners. But, going back to the first phrase, this will serve me to practice thinking as well.&lt;br /&gt;&lt;br /&gt;Speaking of thoughts, I wonder, will any people get here without any publicity at all, if so, how?  Why are you reading this? Would you like to comment? Need I publicize this to get an audience? Please, leave me a note saying how did you end up here.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;See you, probably after holidays... or before, who knows.&lt;br /&gt;&lt;br /&gt;PS: Thanks niq for the blog&#39;s name :-)</content><link rel='replies' type='application/atom+xml' href='http://bitterolives.blogspot.com/feeds/7903682244654440834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2566239812530211359/7903682244654440834' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/7903682244654440834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2566239812530211359/posts/default/7903682244654440834'/><link rel='alternate' type='text/html' href='http://bitterolives.blogspot.com/2008/07/hey.html' title='Hey!'/><author><name>Locivars Vonvik</name><uri>http://www.blogger.com/profile/13540150672840232652</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp2.blogger.com/_622V0ntdeXs/SI9gKPJRxyI/AAAAAAAAADk/lUtL0Z8S2VQ/S220/drago-retiro-segovia+238.JPG'/></author><thr:total>1</thr:total></entry></feed>