<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: michelemauro</title>
    <description>The latest articles on Forem by michelemauro (@michelemauro).</description>
    <link>https://forem.com/michelemauro</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F52189%2F5c688491-3ef8-4bb9-8eae-40ea708f0fec.jpeg</url>
      <title>Forem: michelemauro</title>
      <link>https://forem.com/michelemauro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/michelemauro"/>
    <language>en</language>
    <item>
      <title>5 things you may may want to know before an Event Sourcing project</title>
      <dc:creator>michelemauro</dc:creator>
      <pubDate>Mon, 18 Nov 2019 10:18:57 +0000</pubDate>
      <link>https://forem.com/michelemauro/5-things-you-may-may-want-to-know-before-an-event-sourcing-project-2b5b</link>
      <guid>https://forem.com/michelemauro/5-things-you-may-may-want-to-know-before-an-event-sourcing-project-2b5b</guid>
      <description>&lt;p&gt;I recenlty spoke at the &lt;a href="https://devfestvenice.com/"&gt;Google DevFestVeneto 2019&lt;/a&gt;, in Venice last saturday.&lt;/p&gt;

&lt;p&gt;Here are my slides: I'll follow with a more detailed writeup of my experiences. Enjoy!&lt;/p&gt;

&lt;p&gt;&lt;iframe src="//www.slideshare.net/slideshow/embed_code/key/7USJsaZrCFUXWj" alt="7USJsaZrCFUXWj on slideshare.net" width="100%" height="450"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>eventsourcing</category>
      <category>cqrs</category>
      <category>slides</category>
      <category>techtalks</category>
    </item>
    <item>
      <title>I'm thinking about taking over an abandoned GitHub project: what is your advice?</title>
      <dc:creator>michelemauro</dc:creator>
      <pubDate>Wed, 16 Oct 2019 07:38:44 +0000</pubDate>
      <link>https://forem.com/michelemauro/i-m-thinking-about-taking-over-an-abandoned-github-project-what-is-your-advice-1pl3</link>
      <guid>https://forem.com/michelemauro/i-m-thinking-about-taking-over-an-abandoned-github-project-what-is-your-advice-1pl3</guid>
      <description>&lt;p&gt;I'm asking for the collective DEV wisdom about how to proceed in a situation I'm getting into.&lt;/p&gt;

&lt;p&gt;At work, I may be interested in using a small tool to add it to the development toolset (I won't be more specific for now; it's not that important). We are talking about a little library, a port from a similar library in another language; nothing fancy. The project is a Java/Groovy mix (with a bit of Kotlin for fun 🤔), and is Apache licensed.&lt;/p&gt;

&lt;p&gt;The original GitHub project seem to be abandoned: no updates in 2 years, no answer to issues. Moreover, the project is actually broken (even for a 0.2 release): since a critical subproject is not properly published, you can't depend on this tool altoghether without downloading it and compiling it yourself. So, in this current state, the tool is not even readily usable.&lt;/p&gt;

&lt;p&gt;I've spent a few hours on the repository, breaking it into subprojects, clearing up and updating dependencies, build scripts and tests. Now I have more or less the same code (I may have added an obvious missing piece, too) splitted in four repos, with clean builds and passing test, and with current dependencies. What now?&lt;/p&gt;

&lt;p&gt;The plan I had in mind was like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add notes on the README about what I have done, clearly stating code history and original copyrights&lt;/li&gt;
&lt;li&gt;Change organization to something I have control over, leaving the original package structure as is&lt;/li&gt;
&lt;li&gt;Publish a 0.3 release, with the original name but in the new organization, so it's clear that the code is mostly the same, but doesn't come from the same author&lt;/li&gt;
&lt;li&gt;Add comments in the original repo's issues pointing to my repositories&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Any suggestions? would you do anything differently?&lt;/p&gt;

</description>
      <category>help</category>
      <category>github</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Atlassian sunsetting mercurial support in BitBucket</title>
      <dc:creator>michelemauro</dc:creator>
      <pubDate>Fri, 23 Aug 2019 20:51:49 +0000</pubDate>
      <link>https://forem.com/michelemauro/atlassian-sunsetting-mercurial-support-in-bitbucket-2ga9</link>
      <guid>https://forem.com/michelemauro/atlassian-sunsetting-mercurial-support-in-bitbucket-2ga9</guid>
      <description>&lt;p&gt;&lt;em&gt;(I didn't expect to start writing here with a text like this. But since I'm looking for longer opinions that those that can be found on twitter, I thought it would be a good place to start, and a good topic to talk about.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The headline came to me via whatsapp from an ex-colleague: &lt;a href="https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket"&gt;Atlassian sunsetting mercurial support in BitBucket&lt;/a&gt;. That was really a hard hit.&lt;/p&gt;

&lt;p&gt;For those who don't know, &lt;a href="https://www.mercurial-scm.org/"&gt;Mercurial&lt;/a&gt; was one of the first really distributed Distributed Version Control System that really took traction: it was started in 2005, and it is still heavily used: Mozilla, Vim and OpenJDK are some high-profile projects that host multiple years of development, and millions of lines of code in hg repositories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I started using Mercurial before git ever became mainstream,&lt;/strong&gt; and because I was working with some colleagues outside the main office: we needed to collaborate on the same sources and, in that setting, we couldn't reach our central CVS. The ease of use of passing around "boundles" of commits, the simple commands and the almost impossibility of losing history made it possible to work for many months without even a central server, just passing files via skype. &lt;/p&gt;

&lt;p&gt;It was no match for what Git was at that time (early 2007): something Linus whipped up in a couple of weeks, not too stable, still optimized for the Linux use case and adventurous to use outside of it. Mercurial was already stable, well supported on windows, too, with a clear and well-thought model that was easy to understand and use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Twelve years later,&lt;/strong&gt; git is still &lt;a href="https://www.infoq.com/news/2019/08/git-2-23-switch-restore/"&gt;making releases with new commands to clarify and simplify some use cases&lt;/a&gt;, while Mercurial releases are about &lt;a href="https://www.mercurial-scm.org/wiki/WhatsNew"&gt;technology updates and new features&lt;/a&gt;. You can easily find (and probably need) tons of tutorials on how to use git and how to understand its peculiar concepts (like &lt;a href="https://dev.to/unseenwizzard/learn-git-concepts-not-commands-4gjc"&gt;of course the excellent one here on DEV&lt;/a&gt;); meanwhile, every colleague I exposed to mercurial never needed any special training nor never lost work because of a detached head or a push in the wrong branch, no matter its previous level of expertise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Finally, in the last three-four years&lt;/strong&gt;, the "GitOps" methods fueled the exponential growth of Git integrations, and we're now stuck in VHS land. Atlassian, of course, has a bottom line to keep in check and finally came to the conclusion that BitBucket is supporting one VCS too many, and the one used by "1% of the users" has to go. The irony of BitBucket being the first commercial solution for Mercurial is, of course, only adding sadness to this story.&lt;/p&gt;

&lt;p&gt;The options that Atlassian proposes are really underwhelming: a yet-to-be automated conversion service, some self-hosted pointers (&lt;a href="https://heptapod.net/blog.html#first-article"&gt;Heptapod&lt;/a&gt; and &lt;a href="https://kallithea-scm.org/"&gt;Kallithea&lt;/a&gt; seem to be the most interesting; but they are a far cry from a supported commercial service with more than 10 years of experience), or do-it-yourself. &lt;strong&gt;And don't expect to keep PRs, comments, issues, metadata:&lt;/strong&gt; no export path for them, nor conversion of project structure. &lt;strong&gt;When Atlassian pulls the plug in mid-2020, they'll be gone.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's a sad, sad turn of the story that will harm a really good project, a true Betamax of the VCS space.&lt;/p&gt;

&lt;p&gt;I wish however to thank a lot the original BitBucket team, that in 2008 believed in Mercurial and started its journey. Atlassian, while can be understood as a business entity, is still struggling in executing major moves like these while minimizing bad publicity and juggling worse karma; &lt;a href="https://twitter.com/agile_memes"&gt;meme writers&lt;/a&gt; will just have more things to poke fun at.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Of course, the main lesson here is&lt;/strong&gt;, for the n-th time, &lt;strong&gt;be careful what you put on a cloud service&lt;/strong&gt;. And you, what do you have on a cloud service? what part of the information about your projects (issues, discussions, decisions, permissions, people) &lt;strong&gt;will you be able to offload, reuse and recycle if your current provider pulls the plug on its service or part of it?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>mercurial</category>
      <category>rant</category>
      <category>git</category>
    </item>
  </channel>
</rss>
