<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Codebucket</title>
    <description>Hey, I’m David Sn. 18 years old, turns caffeine and pizza into code.
Also previously known as Codebucket.
</description>
    <link>https://www.codebucket.de/blog/</link>
    <atom:link href="https://www.codebucket.de/blog/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Sat, 16 Jun 2018 13:29:47 +0200</pubDate>
    <lastBuildDate>Sat, 16 Jun 2018 13:29:47 +0200</lastBuildDate>
    <generator>Jekyll v3.7.3</generator>
    
    <item>
      <title>Google Code-in 2017 and the Future</title>
      <description>
        <![CDATA[<p><img src="https://www.codebucket.de/blog/images/2018-01-17.jpg" width="500" height="320" alt="Google Code-in 2017 and the Future" /></p>]]>
        &lt;p&gt;Today I am writing my final task for Google Code-in 2017, which is the blog post you are currently going to read on. Some of you may also know that last year I also participated in Google Code-in 2016 (which you can &lt;a href=&quot;https://www.codebucket.de/blog/contest/2017/01/05/google-code-in-2016.html&quot;&gt;read about here&lt;/a&gt;) and that this time it was my very last participation. Now after I’ve finished writing this blog post, my mentors will review it and then they will pick the finalists and Grand Prize Winners in the next days.&lt;/p&gt;

&lt;p&gt;But does it mean that I will stop contributing to Wikimedia? &lt;strong&gt;Or to open-source?&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;lets-start-off-from-the-beginning&quot;&gt;Let’s start off from the beginning&lt;/h2&gt;
&lt;p&gt;In the last year’s post I said that I will definitely participate in the next Google Code-in. Unfortunately, the situation at my school got out of my control and things went badly. This also meant that my parents weren’t so happy about the whole situation which was caused by my participation. I still can remember them telling me that they won’t sign any parental consent if I don’t get the situation at school until then on control.&lt;/p&gt;

&lt;p&gt;But I didn’t gave up, because after all everything is possible, no matter how challenging it is. So I went away from any kind of open-source contributions in March and started to make up all the bad grades to get the situation under control until the end of the school year. And guess what? I did it, because I not only wanted to take part again in open-source contributions and Google Code-in 2017, but I also wanted to show everyone that I will make it to the next class, regardless of what I am doing beside the school life. It also teached me a lot when it comes to organizing your life, which may be also useful a lot when programming on a large project!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/H6ZlXzC.png&quot; alt=&quot;My activity on GitHub over the past year&quot; class=&quot;image fit&quot; /&gt;&lt;br /&gt;
&lt;em&gt;As you can see, my GitHub activity was close to none between March and July&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Then on 20th October someone at school asked me if I gonna be participating in Google Code-in again and that was the moment I woke up, as I was then trying to keep my grades good enough at school so my parents would let me participate in the contest. So I started to look up on which organizations are taking part in Google Code-in 2017 and after some time I made the final decision: &lt;strong&gt;&lt;a href=&quot;https://www.wikimedia.org/&quot;&gt;Wikimedia&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;but-why-wikimedia-again-and-not-another-organization-thinking&quot;&gt;But why Wikimedia again and not another organization? :thinking:&lt;/h3&gt;
&lt;p&gt;This has many reasons, one of which is the community I liked from last year. It’s very lovely over there, there are plenty volunteers who were working daily on various Wikimedia projects, like MediaWiki or the Wikipedia app for example. They put every free time and effort into endless CRs to improve services everyone of us uses regularly on the Internet and they do it all for free. Without volunteers like them we couldn’t have the platform we access the knowledge to our research purposes and share it with others. For me working with them on tasks they’ve mentored makes it all kinda special, as I am using Wikipedia myself regularly and it always served me well.&lt;/p&gt;

&lt;p&gt;In the end it is this special atmosphere that you could feel on the &lt;strong&gt;#wikimedia-dev&lt;/strong&gt; IRC channel, where people have always been helpful and helped you on every question or problem you were stuck on.&lt;/p&gt;

&lt;h2 id=&quot;so-how-was-the-contest&quot;&gt;So how was the contest?&lt;/h2&gt;
&lt;p&gt;To be honest, beyond all the good atmosphere and lovely community on IRC, the last 50 days have been very exhausting for me. The biggest problem for me was mostly the time difference between mine and the mentor’s timezone, which resulted in sleepless nights and a broken sleep pattern. On some days I couldn’t even talk normally because I was overtired. It also had an effect on the performance and quality of my patches, so I had repeatedly overlooked something while sending a task or misunderstood it completely. But fortunately my mentors had an understanding for this and I quickly made follow-up patches to add missing things.&lt;/p&gt;

&lt;p&gt;This time I wanted to focus more on keeping up with the community by talking with others on IRC and helping them on Phabricator. I quickly noticed that there is no dedicated channel for smalltalks, which also &lt;a href=&quot;https://phabricator.wikimedia.org/T181738#3800489&quot;&gt;got attention by &lt;strong&gt;Albert221&lt;/strong&gt; and &lt;strong&gt;andre__&lt;/strong&gt;&lt;/a&gt;. So I created a group on Telegram (&lt;a href=&quot;https://t.me/wikimediagci&quot;&gt;@wikimediagci&lt;/a&gt;) where we could spam and talk about anything we want without any public logging. You can still join us if you want, we’re still active there and you can ask us anything about Wikimedia or Google Code-in.&lt;/p&gt;

&lt;blockquote&gt;
  &quot;Open-source never sleeps&quot; ~ Albert221, on #wikimedia-dev, 2k17
&lt;/blockquote&gt;

&lt;p&gt;Having that quote in mind I completed &lt;strong&gt;32 tasks (including this one)&lt;/strong&gt; and the majority of them were from Code and Research/Documentation category. Here’s a summary of some of the bigger tasks I’ve done:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Kiwix mobile app on Android: Implement a SwipeRefershLayout to improve our UI&lt;br /&gt;
&lt;a href=&quot;https://github.com/kiwix/kiwix-android/pull/297&quot;&gt;https://github.com/kiwix/kiwix-android/pull/297&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Create a Phabricator backend for python-social-auth&lt;br /&gt;
&lt;a href=&quot;https://github.com/python-social-auth/social-core/pull/169&quot;&gt;https://github.com/python-social-auth/social-core/pull/169&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Fix Mobile infobox styles to work well with multiple column infobox rows&lt;br /&gt;
&lt;a href=&quot;https://phabricator.wikimedia.org/T168716&quot;&gt;https://phabricator.wikimedia.org/T168716&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;MediaWiki “Echo” extension: Help tooltip in preferences should be accessible&lt;br /&gt;
&lt;a href=&quot;https://phabricator.wikimedia.org/T54711&quot;&gt;https://phabricator.wikimedia.org/T54711&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Support Wordmark in Internet Explorer 8 in MediaWiki’s MinervaNeue skin (advanced task)&lt;br /&gt;
&lt;a href=&quot;https://phabricator.wikimedia.org/T166684&quot;&gt;https://phabricator.wikimedia.org/T166684&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Screenshot Commons Android app in Polish pl-PL/German de-DE&lt;br /&gt;
&lt;a href=&quot;https://github.com/commons-app/apps-android-commons/issues/960&quot;&gt;https://github.com/commons-app/apps-android-commons/issues/960&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;MediaWiki’s Timeline extension error messages should not use the deprecated HTML tag &amp;lt;tt&amp;gt;&lt;br /&gt;
&lt;a href=&quot;https://phabricator.wikimedia.org/T182968&quot;&gt;https://phabricator.wikimedia.org/T182968&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Add tabindex to MediaWiki’s Special:Upload page&lt;br /&gt;
&lt;a href=&quot;https://phabricator.wikimedia.org/T25238&quot;&gt;https://phabricator.wikimedia.org/T25238&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Score extension: Generalize wording of audio formats in the code&lt;br /&gt;
&lt;a href=&quot;https://phabricator.wikimedia.org/T183753&quot;&gt;https://phabricator.wikimedia.org/T183753&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Find alternatives to TiMidity++ and compare performance&lt;br /&gt;
&lt;a href=&quot;https://phabricator.wikimedia.org/T181897&quot;&gt;https://phabricator.wikimedia.org/T181897&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Make scores output MP3 files&lt;br /&gt;
&lt;a href=&quot;https://phabricator.wikimedia.org/T181875&quot;&gt;https://phabricator.wikimedia.org/T181875&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Replace assertRaises with assertRaisesRegex in Pywikibot&lt;br /&gt;
&lt;a href=&quot;https://phabricator.wikimedia.org/T154281&quot;&gt;https://phabricator.wikimedia.org/T154281&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also tried not to select repetitive tasks like last year because they were not requiring much interaction with the mentors, which was not my intention as I wanted to &lt;strong&gt;learn new things&lt;/strong&gt; by talking with different mentors.&lt;/p&gt;

&lt;h2 id=&quot;final-words&quot;&gt;Final words&lt;/h2&gt;
&lt;p&gt;I would like to thank everyone from Wikimedia who was involved in Google Code-in, to AKlapper (&lt;a href=&quot;https://www.mediawiki.org/wiki/User:AKlapper_(WMF)&quot;&gt;Andre Klapper&lt;/a&gt;), FlorianSW (&lt;a href=&quot;https://www.mediawiki.org/wiki/User:Florianschmidtwelzow&quot;&gt;Florian Schmidt&lt;/a&gt;), Jayvdb (&lt;a href=&quot;https://www.mediawiki.org/wiki/User:John_Vandenberg&quot;&gt;John Vandenberg&lt;/a&gt;), Reedy (&lt;a href=&quot;https://www.mediawiki.org/wiki/User:Reedy&quot;&gt;Sam Reed&lt;/a&gt;) and SSethi (&lt;a href=&quot;https://www.mediawiki.org/wiki/User:SSethi_(WMF)&quot;&gt;Srishti Sethi&lt;/a&gt;) for organizing all tasks and the participation in GCI, it was a good time with you all again!&lt;/p&gt;

&lt;p&gt;Also I want to thank &lt;strong&gt;andre__, Ebe123, bawolff, d3r1ck, FlorianSW, framawiki, jayvdb, jdlrobson, Legoktm, Kelson, mhutti1, MtDu, Niharika, Nikerabbit, tonythomas, Xqt, Zppix&lt;/strong&gt; in alphabetical order for their effort in mentoring me, answering my questions and solving my problems I had struggled when writing code through all those different tasks. I learned so many new things from everyone of you, you are the real heroes of Wikimedia and you do what you are pasionate about, which is contributing to open-source. I will really miss the times with you on IRC at &lt;strong&gt;#wikimedia-dev&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;And thanks to some fellow students, to &lt;strong&gt;Albert221&lt;/strong&gt; (from Poland), &lt;strong&gt;Phantom42&lt;/strong&gt; (from Ukraine) and &lt;strong&gt;refeed&lt;/strong&gt; (from Indonesia), it was a fun time joking around with you or helping each other on IRC, I hope to see you again soon! :hugs:&lt;/p&gt;

&lt;p&gt;Lastly I also want to thank a lot my IT teacher, &lt;strong&gt;Andrzej Dyrek&lt;/strong&gt;, for bringing Google Code-in to my attention and convincing my parents to let me take part last year. Also for telling my teachers that they shouldn’t expect me being prepared for classes. I’m very grateful for what he did for me during the contest.&lt;/p&gt;

&lt;p&gt;And of course a big thanks to my parents (and my dog) for supporting me everytime, motivating me in bad days and allowing me to take part in Google Code-in 2016 and 2017! :heart:&lt;/p&gt;

&lt;h3 id=&quot;and-what-about-the-future&quot;&gt;And what about the future?&lt;/h3&gt;
&lt;p&gt;Now you may say that I will stop contributing to Wikimedia and you might be true. In fact I still have some tasks on my todo list which I want to complete in all peace. I will also be around on IRC and Gerrit when someone needs help understanding a change I did or when some change is related to mine in a CR. But aside of Wikimedia, I have also other open-source projects to work on.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/CcTUQ27.png&quot; alt=&quot;What's up with the Lawnchair development?&quot; class=&quot;image fit&quot; /&gt;&lt;br /&gt;
&lt;em&gt;Everyone from the Lawnchair team is busy with other stuff, including me.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Many projects like &lt;a href=&quot;https://lawnchair.info&quot;&gt;Lawnchair Launcher&lt;/a&gt; have been paused during Google Code-in and people are already asking when a next update will be released, so I want to get those projects back alive. Apart from that, I will continue contributing to MediaWiki and Kiwix whenever I find time and bugs to fix!&lt;/p&gt;

&lt;p&gt;That’s all for now, Google Code-in 2017 is now over and I hope some of my readers will take part next time!&lt;/p&gt;

&lt;p&gt;You can read my previous blog posts about Google Code-in:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.codebucket.de/blog/contest/2017/12/24/google-code-in-beginners-guide.html&quot;&gt;Google Code-in Beginners Guide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.codebucket.de/blog/contest/2017/01/05/google-code-in-2016.html&quot;&gt;Google Code-in 2016&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;This work is licensed under a &lt;a href=&quot;http://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International License&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

      </description>
      <pubDate>Wed, 17 Jan 2018 17:37:00 +0100</pubDate>
      <link>https://www.codebucket.de/blog/contest/2018/01/17/google-code-in-2017-and-the-future.html</link>
      <guid isPermaLink="true">https://www.codebucket.de/blog/contest/2018/01/17/google-code-in-2017-and-the-future.html</guid>
      
      
      <category>contest</category>
      
    </item>
    
    <item>
      <title>Google Code-in Beginners Guide</title>
      <description>
        <![CDATA[<p><img src="https://www.codebucket.de/blog/images/2017-12-24.jpg" width="500" height="320" alt="Google Code-in Beginners Guide" /></p>]]>
        &lt;p&gt;This year I’m taking part in Google Code-in for the second and last time, as some of you might have already noticed that I will be 18 years old next year. However, it doesn’t keep me from sharing my experiences I gathered last year in this post, especially useful tips for newcomers who might want to join Google Code-in during this Christmas season. This guide is not only for Google Code-in beginners, but open-source in general.&lt;/p&gt;

&lt;p&gt;Note: I won’t go here in detail on how the contest works, for that I suggest &lt;a href=&quot;https://developers.google.com/open-source/gci/how-it-works&quot;&gt;reading this page&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;1-registration&quot;&gt;1. Registration&lt;/h2&gt;
&lt;p&gt;The entire contest is hosted by Google and takes place online from 28 November to 17 January. But before you register, you should get an overview of the &lt;a href=&quot;https://developers.google.com/open-source/gci/resources/contest-rules&quot;&gt;general contest rules&lt;/a&gt;. Then you can proceed to the &lt;a href=&quot;https://codein.withgoogle.com/student-signup/&quot;&gt;sign up form&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Keep in mind that the entire contest runs on &lt;a href=&quot;https://codein.withgoogle.com/dashboard/&quot;&gt;the dashboard&lt;/a&gt;, especially your tasks and communication with your mentors, so creating a bookmark for faster access wouldn’t be a bad idea. :wink:&lt;/p&gt;

&lt;h3 id=&quot;fill-out-your-parental-consent-online&quot;&gt;Fill out your parental consent online!&lt;/h3&gt;
&lt;p&gt;Last year I made a mistake by assuming that the online verification process will not work. That’s why I decided to let my parents fill out the classic way, by printing out the parental consent and letting them sign those papers in order to scan them back and send it onto the dashboard for verification.&lt;/p&gt;

&lt;p&gt;And guess what? I had to redo everything as my parents had signed it wrongly, so in the end I just wasted 3 days on such a dumb thing, ugh. That’s why I went with the online verification method this year and I was surprised how fast it went, my parental consent got accepted 2 hours after completing my first task, yay!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: Online verification is much more faster and reliable than offline, you will thank me later.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;dont-use-fake-identities&quot;&gt;Don’t use fake identities&lt;/h3&gt;
&lt;p&gt;I know, some of you might be concerned about your privacy, and some of you might probably contribute anonymously under a pseudonym. But for Google Code-in it’s important to use your real identity! Don’t worry, you can at least decide how your name should show up in the public on the dashboard, so you can use your pseudonym. And if you don’t want to receive anything from Google, then you can also use a spam account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: Use your real identity, will cause less problems for verification.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;find-tasks-to-your-wanted-skills&quot;&gt;Find tasks to your wanted skills&lt;/h3&gt;
&lt;p&gt;I still remember looking for my first job today. In the beginning I was a bit shocked by the large number of available tasks, but then I realized that there are filter options. And then I chose a beginner’s task for the beginning to familiarize myself with the organization I have “chosen”. Because each organization uses different tools, such a beginner’s task helped me to install and understand the use of these tools.&lt;/p&gt;

&lt;p&gt;But then I wanted to do a normal task and started looking for tasks in my programming languages I already knew. The point behind it was that I can train my existing knowledge and learn new things. And that’s how I do it this year again, sometimes I look for simple tasks and sometimes difficult ones that challenge me and force me to think more deeply about a solution. That’s actually the more fun part of the contest in my opinion, you can’t always expect a task being done as you thought it would be before picking it.&lt;/p&gt;

&lt;p&gt;And yes, I do like challenging myself, just like last year. :muscle:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: Search for tasks that suit your needs and knowledge and don’t fear the unknown.&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;2-communication&quot;&gt;2. Communication&lt;/h2&gt;
&lt;h3 id=&quot;different-types-of-messaging-methods&quot;&gt;Different types of messaging methods&lt;/h3&gt;
&lt;p&gt;If you have decided not to stick to one organization then the chances that you will face this problem are very high. While you can expect most of organizations on Google Code-in to communicate via IRC, not everyone is using the same bug tracker. Some of them might use GitHub issues, some on the other side might use Phabricator. And some could even use JIRA as a bug tracking platform. Not to mention other alternatives like GitLab. :joy:&lt;/p&gt;

&lt;p&gt;Jokes aside, you probably see what I’m trying to explain. The point is, you should &lt;em&gt;always&lt;/em&gt; check what the organization does use for communication and their guidelines on how to manage open issues. Most organizations put some notes in their task descriptions on the dashboard, so students know how to contribute.&lt;/p&gt;

&lt;p&gt;When it comes to online chat, I think &lt;a href=&quot;https://en.wikipedia.org/wiki/Etiquette_in_technology&quot;&gt;the etiquette&lt;/a&gt; should be clear enough to everyone, right? :wink:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: Always read the task description twice, you will see the requirements at the bottom of the description.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;cloud-irc-vs-irc-bouncer-and-why-its-good&quot;&gt;Cloud IRC vs. IRC bouncer and why it’s good&lt;/h3&gt;
&lt;p&gt;You might also noticed in the meantime that all the messages which have been sent in that time are gone when closing the IRC client. And sadly, this is not a bug, it’s actually how IRC works. However, there are solutions on how to avoid that situation in the future: IRC bouncer (&lt;a href=&quot;https://wiki.znc.in/ZNC&quot;&gt;ZNC&lt;/a&gt;) or cloud IRC webclient (&lt;a href=&quot;https://thelounge.github.io/&quot;&gt;“The Lounge”&lt;/a&gt;)&lt;/p&gt;

&lt;h4 id=&quot;which-is-better-for-me&quot;&gt;Which is better for me?&lt;/h4&gt;
&lt;p&gt;It depends. Both options require you to have a Linux VPS in order to host it yourself. But you can also host it on a Raspberry Pi! ZNC should work on every Raspberry Pi beginning with the model B+, while “The Lounge” will only work with the Raspberry Pi 2 or higher since Node.js requires a lot of RAM.&lt;/p&gt;

&lt;p&gt;Basically “The Lounge” is the easiest one to setup in my opinion, just download the deb package from &lt;a href=&quot;https://github.com/thelounge/lounge/releases&quot;&gt;GitHub&lt;/a&gt;, install and launch it in the background, that’s it. Now you only need to finish the installation by opening the address of your VPS in a browser of your choice and following the steps on the IRC network setup page.&lt;/p&gt;

&lt;p&gt;However, if you want to install ZNC then I recommend you &lt;a href=&quot;https://wiki.znc.in/ZNC&quot;&gt;checking out their wiki&lt;/a&gt;, it has everything you will need to get ZNC installed on your server and configured to your own needs.&lt;/p&gt;

&lt;h4 id=&quot;what-are-you-using-personally&quot;&gt;What are you using personally?&lt;/h4&gt;
&lt;p&gt;I am using both, “The Lounge” as my IRC client and ZNC as fallback if the client goes offline for whatever reason.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: Install it if you have a Linux VPS or a Raspberry Pi (or other board), especially if you want to be online 24/7.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;patience-is-very-important&quot;&gt;Patience is very important&lt;/h3&gt;
&lt;p&gt;There is nothing more to say than a good old idiom:&lt;/p&gt;
&lt;blockquote&gt;
  Speech is silver, but silence is golden
&lt;/blockquote&gt;

&lt;p&gt;Keep in mind that your mentors are also humans who eventually leave their computers to sleep, work/school or study. Also they might be in different timezones and have different holidays than you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: Mentors have up to 36 hours time to review your submission, don’t worry.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;try-to-ping-only-when-its-really-necessary&quot;&gt;Try to ping only when it’s really necessary&lt;/h3&gt;
&lt;p&gt;Generally it’s not wrong to ask your mentor first when you are stuck with your task, however sometimes a quick search on Google could have helped you too. I rather keep pinging my mentors only in a situation when I don’t understand the task description or when I am unsure about my current solution, so I can discuss with them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: Uncle Google is your best friend :wink:&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;3-contributions&quot;&gt;3. Contributions&lt;/h2&gt;
&lt;h3 id=&quot;issue-trackers-in-common&quot;&gt;Issue trackers in common&lt;/h3&gt;
&lt;p&gt;When working with code you will mostly find your task details on an issue tracker like GitHub or Phabricator, but also tasks in outreach or quality assurance will be done on those as well. Usually you will find a link to their issue tracker in the task description and the sign up on those is also very easy, just make sure you use the same e-mail address as on Google Code-in during the registration, it will make things easier for your mentors.&lt;/p&gt;

&lt;p&gt;Also you should claim your task on the issue tracker, so other contributors won’t work on that unnecessarily. I already had a situation where a friend messaged me on IRC that he was already working on that issue, but he didn’t know that because I hadn’t claimed the task. (Greetings to you, Albert221!)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: Issue trackers are the main platform for communication with other contributors.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;setting-up-git-properly&quot;&gt;Setting up git properly&lt;/h3&gt;
&lt;p&gt;It’s the most important tool when working with code, no matter which organization, it’s used on most open-source project worldwide. Without git it would be nearly impossible to work simutanously on the same code without having to copy and paste everytime someone updated a file you have changed too.&lt;/p&gt;

&lt;p&gt;It basically keeps a track of every change you have done, so it immediately knows which changes in files needs to be applied in order to have your local code updated with the remote repository and vice versa for other people’s changes. Also it allows maintainers to review your changes, so they can decide if your change will work with the other code or not and they can give you comments so you can improve your change in order to have the change accepted. And they can also easily revert your change when it was causing some trouble later.&lt;/p&gt;

&lt;p&gt;That’s why you should also setup your git properly, which means your commits will include the right author information. To do this, you need to execute the following 2-3 commands if you never done that:&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git config --global user.name &quot;&amp;lt;YOUR DISPLAYNAME&amp;gt;&quot;
# Example: git config --global user.name &quot;David Sn&quot;

git config --global user.email &quot;&amp;lt;YOUR E-MAIL ADDRESS&amp;gt;&quot;
# Example: git config --global user.email &quot;divad.nnamtdeis@gmail.com&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If you are required to provide your change on Gerrit:&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git config --global gitreview.username &quot;&amp;lt;YOUR GERRIT USERNAME&amp;gt;&quot;
# Example: git config --global gitreview.username &quot;Divadsn&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: With great power comes great responsibility, that’s why it’s important to setup git properly.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;always-look-up-commit-message-guidelines&quot;&gt;Always look up commit message guidelines&lt;/h3&gt;
&lt;p&gt;The commit message plays an important role. They are the first thing other people will see of your commit. You should write your commit messages in English and in the imperative as simple as possible, as if you would instruct someone to your change.&lt;/p&gt;

&lt;p&gt;The first line of the commit message is known as the subject, in which you describe your change in few words. Then you can describe your change in detail if it is necessary. Here is an example:&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Fix tooltip accessibility for screen readers

By adding an additional aria-label attribute to the tooltip,
we can ensure that every tooltip will be accessible
for accessibility tools like screen readers.

Works with Echo extension, but I am not sure if there
are extensions who are using the original-title attribute.

Tested with ChromeVox on Chrome 62.0.3202.94.

Bug: T54711
Change-Id: I19500c4e8ccbdcb8288b9c2299a29b3f8a31639d
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: You commit messages should describe your changes easy and understandable for everyone, like Tl;dr.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;document-every-change-for-reviewers&quot;&gt;Document every change for reviewers&lt;/h3&gt;
&lt;p&gt;Try to write comments to every new piece of code you have written, it will make it much more easier for your mentors to review your changes, which will also result in a faster review response time. Also it helps other contributors to understand your decisions on why you have done it in a particular way. You should also avoid commenting obvious things on the other side like why 2 plus 2 equals 4, but in situations where you have done something unusual, like casting an object to a string for example.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: Commenting your code does help others in understanding your intentions.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;discuss-every-change-and-explain-your-idea&quot;&gt;Discuss every change and explain your idea&lt;/h3&gt;
&lt;p&gt;Do not hesitate to discuss with your mentors if you feel that the issue is somewhere else. Sometimes it can happen that your task has already been solved or needs to be solved in a different way. If you are sure, then explain your point of view on how the task should be solved and give an example on how to solve it in a different way so that the reported problem doesn’t come up. And as always, keep calm and wait until your mentor has figured out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tl;dr: Feel free to discuss your changes with others, maybe you can convince them. :wink:&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;4-final-words&quot;&gt;4. Final words&lt;/h2&gt;
&lt;p&gt;No matter how many tasks you have solved, the idea of Google Code-in is to introduce you to the amazing world of open-source and you should have fun doing your work for open-source. At the end you should be proud of yourself, that you have believed in yourself and learned so many new things. And I know that some of you are probably very keen on the grand prize, but I can only tell you one thing: &lt;strong&gt;quality counts above all, not quantity.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Even when you have not won a prize, you are still a winner and your prize is the knowledge you gained during the contest. And yes, I do look like someone who has already gained enough of knowledge, but I have also gained new knowledge last year and even this year, you can never learn enough.&lt;/p&gt;

&lt;p&gt;I’m happy to see how new students are interested in free and open-source software, since my classmates are completely uninterested in computer science, even though they are in a class with computer science. :unamused:&lt;/p&gt;

&lt;p&gt;Merry Christmas and wish you best luck! :christmas_tree:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This work is licensed under a &lt;a href=&quot;http://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International License&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

      </description>
      <pubDate>Sun, 24 Dec 2017 03:50:00 +0100</pubDate>
      <link>https://www.codebucket.de/blog/contest/2017/12/24/google-code-in-beginners-guide.html</link>
      <guid isPermaLink="true">https://www.codebucket.de/blog/contest/2017/12/24/google-code-in-beginners-guide.html</guid>
      
      
      <category>contest</category>
      
    </item>
    
    <item>
      <title>March, the 24th</title>
      <description>
        <![CDATA[<p><img src="https://www.codebucket.de/blog/images/2017-11-03.jpg" width="500" height="320" alt="March, the 24th" /></p>]]>
        &lt;p&gt;I know that many of you will not care about this blog post anyway. No matter if it was on the timeline or posted somewhere in a group, some will even certainly not think about it. These are the prejudices and first impressions of my person that are stuck in your head. But is it the right way to avoid a person like that?&lt;/p&gt;

&lt;h2 id=&quot;the-feeling-of-always-being-excluded&quot;&gt;The feeling of always being excluded&lt;/h2&gt;
&lt;p&gt;I was never one of those who followed the latest trends and was normal like everyone else. I always had my other passions and was usually far ahead of the others. It all began when I started reading comics in kindergarten, while everyone else was still playing with toy cars. And every time I laughed at one part of the comic book, the others looked at me silly and thought I was an abnormal person. So yes, already here I was indirectly excluded, but I felt comfortable with it.&lt;/p&gt;

&lt;p&gt;Then I started going to primary school, but the habits haven’t changed. I was still ahead of everyone else, for example, I was able to read and write flawlessly in first grade while the other “normal” ones were just beginning. Nevertheless, I could hardly make friends with anyone, because they already noticed my “weirdness”. However, they lacked a reason to laugh at me, so they couldn’t exclude me without a reason.&lt;/p&gt;

&lt;p&gt;But since I wasn’t on the same level with them, they started pushing me into the so-called bullying corner. While it was very annoying for me, it was funny for them to see how I was freaking out. That was then the final moment when I made my final bad impression for the rest of primary school, it was only a matter of time.&lt;/p&gt;

&lt;h2 id=&quot;when-others-remember-you-when-they-need-help&quot;&gt;When others remember you when they need help&lt;/h2&gt;
&lt;p&gt;It’s a common thing nowadays that someone is approaching me all of a sudden, whether male or female, doesn’t matter. And it’s quite obvious for me that they mostly only approach me for help. But the way they do it is just bothering. Instead of coming straight to the question, they try to pretend we’re good friends.&lt;/p&gt;

&lt;h3 id=&quot;so-what-am-i-supposed-to-do-in-a-situation-like-this&quot;&gt;So what am I supposed to do in a situation like this?&lt;/h3&gt;
&lt;p&gt;If I didn’t answer, then they would consider it as being unfriendly, which then would again make a bad impression on them. And if I refuse to answer their question, then they will start questioning my knowledge.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.someecards.com/someecards/usercards/MjAxMy1hNDBlYWU1ODMyZWY2NjAz.png&quot; alt=&quot;I open a text and mentally respond then forget to actually respond.&quot; class=&quot;image&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Of course, some of you will say that it’s actually good that other people ask you for help. And some would also say that it was an attempt to get in contact with me. But what if all of a sudden I wouldn’t live on this world anymore? Would they only notice it when they needed help from me again? Or would they not even notice and pretend like they never met me?&lt;/p&gt;

&lt;p&gt;Or more importantly, will they never find the solution for their problem? I think that in the age of the Internet, looking for a solution to a problem shouldn’t be such a difficult task, it’s just a 5 minute search though.&lt;/p&gt;

&lt;h2 id=&quot;life-sucks-without-friends&quot;&gt;Life sucks without friends&lt;/h2&gt;
&lt;p&gt;When looking back on my life, I would actually say that right now I don’t have any friend at my place right now who I could speak to. It doesn’t mean that I have no friends at all, I just don’t have anyone to hang out with after school. And I miss that lack of a person a lot, especially in difficult times right now.&lt;/p&gt;

&lt;p&gt;Back when I was living in Berlin I had my best friend Damian with whom I spent almost every weekend. I met him in first grade during primary school and we have been talking about Nintendo games ever since. He has always helped me in difficult times and defended me from any trouble. And with the look into the past I realize it only now how grateful I am to him for that. We also went to the same high school together and stayed best friends even after several arguments.&lt;/p&gt;

&lt;p&gt;But then I decided to move out of Berlin 2 years ago and everything changed. I moved to Krakow in Poland, hoping for better education and perhaps other friends. Since I was enrolled in Germany one year earlier than my peers in Poland, I was added to a class with people from the 90s generation. And to be honest, it was a good time with them if it weren’t for the hard math that forced me to change classes.&lt;/p&gt;

&lt;p&gt;In the end I had to repeat the class either, because I was supposed to go into a class with my peers from the 00s, where I actually should belong to…&lt;/p&gt;

&lt;h2 id=&quot;the-generation-gap-is-real&quot;&gt;The generation gap is real&lt;/h2&gt;
&lt;p&gt;Many people will disagree with me, but I can clearly say that it is happening right now. I feel like my classmates don’t know how to have fun, instead they prefer to play online. I am currently attending a dance course and am very disappointed to see that there is hardly any of the first and second year students this year, not like the year before when most dancers were second graders. They don’t realize what they’re really losing, as a lot of girls value it when a boy can dance. (Ok, I’m gonna probably end up killing myself for that last sentence :joy:)&lt;/p&gt;

&lt;p&gt;But this is not just about gender relations, it’s also about social life in groups. While 20 years ago you couldn’t do anything at home, nowadays in times of the Internet age, you can do a lot more at home than outside. It is sad to see that nowadays people rather meet online after school than going to eat and talk for example. And no, it doesn’t affect the whole generation, but the majority, and I still believe that there are people on this planet I could be friends with. Indeed there are some, but unfortunately friends at a distance are not the same as friends at my place, like &lt;a href=&quot;https://deletescape.me&quot;&gt;Till&lt;/a&gt; from Switzerland or &lt;a href=&quot;https://christopherkardas.me&quot;&gt;Chris&lt;/a&gt; from Austria. (Greetings from Kraków!)&lt;/p&gt;

&lt;h2 id=&quot;when-people-leave-you-for-no-reason&quot;&gt;When people leave you for no reason&lt;/h2&gt;
&lt;p&gt;I told my ex “girlfriend” that I am going to a psychologist, a day later she rejected me. But instead of telling me that directly, she told me that she is not ready. Sadly after that day we never had any contact again. What conclusion should I get from that? You then start looking for the reason, but you fall into a endless loop. But time is ticking on and months go by, but you can’t find the answer to your question.&lt;/p&gt;

&lt;p&gt;And yeah, I guess you will say I should forget about her and keep looking forward, but it is not easy as it seems to be. You still might want to learn from your mistakes, so you don’t accidentally repeat it with the next girl.&lt;/p&gt;

&lt;h3 id=&quot;a-loss-of-contact-is-never-nice&quot;&gt;A loss of contact is never nice&lt;/h3&gt;
&lt;p&gt;This is one of several examples of how such relationship breakdowns can lead to psychological problems if you’ve done it wrongly. And sometimes people tie themselves too tightly to a person with great hopes. But that doesn’t have to mean the end of the world unless, of course, the person talks badly about you. However, it is best not to give up, but to look ahead, because as they say in German: you will find friends in need.&lt;/p&gt;

&lt;h2 id=&quot;so-why-should-i-care-about-anyone&quot;&gt;So why should I care about anyone?&lt;/h2&gt;
&lt;p&gt;Because no one cares, right?&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/unH9laYkWNI&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;


      </description>
      <pubDate>Fri, 03 Nov 2017 23:50:00 +0100</pubDate>
      <link>https://www.codebucket.de/blog/thoughts/2017/11/03/march-the-24.html</link>
      <guid isPermaLink="true">https://www.codebucket.de/blog/thoughts/2017/11/03/march-the-24.html</guid>
      
      
      <category>thoughts</category>
      
    </item>
    
    <item>
      <title>My Story about Lawnchair Launcher</title>
      <description>
        <![CDATA[<p><img src="https://www.codebucket.de/blog/images/2017-10-25.jpg" width="500" height="320" alt="My Story about Lawnchair Launcher" /></p>]]>
        &lt;p&gt;You may have probably already heard about &lt;a href=&quot;https://lawnchair.info&quot;&gt;“Lawnchair”&lt;/a&gt; from several Android news sites or blog posts. It’s an open-source launcher based on &lt;a href=&quot;https://android.googlesource.com/platform/packages/apps/Launcher3&quot;&gt;Launcher3&lt;/a&gt; which brings Google Now and dozens of settings to help personalize your home screen on every device. You also might have read about &lt;a href=&quot;https://deletescape.ch&quot;&gt;Till Kottmann&lt;/a&gt;, the creator behind the launcher, but not about the rest of the team behind Lawnchair Launcher.&lt;/p&gt;

&lt;h2 id=&quot;let-the-story-begin&quot;&gt;Let the story begin…&lt;/h2&gt;
&lt;p&gt;The story started back in June 2017 when a friend hit me up with a link to a new launcher which he was saying:&lt;/p&gt;
&lt;blockquote&gt;
  It is the perfect launcher! 1:1 Pixel Launcher, but with customization options &lt;br /&gt;
  You have to try it, you will surely like it! :wink:
&lt;/blockquote&gt;

&lt;p&gt;And yes, indeed, I’ve begun to love it. For me the switch wasn’t a huge deal tho, as I’ve already used the &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.google.android.apps.nexuslauncher&quot;&gt;Pixel Launcher&lt;/a&gt; from Google before. But despite all of this, I started to love the launcher, especially for additional features like the support of icon packs or blur for example.&lt;/p&gt;

&lt;p&gt;Then after using it for a while I noticed some issues and missing features (like the weather in the Google pill), so I’ve submitted them as a request to &lt;a href=&quot;https://deletescape.ch&quot;&gt;Till Kottmann&lt;/a&gt;, the main developer of Lawnchair. He immediately replied to my request and promised me to add them as soon as possible. Two weeks later, he released &lt;a href=&quot;https://github.com/Deletescape-Media/Lawnchair/releases/tag/1.0.1063&quot;&gt;build v1.0.1063&lt;/a&gt; with a ton of new features, including the aforementioned Google pill weather widget.&lt;/p&gt;

&lt;h2 id=&quot;the-moment-of-attention&quot;&gt;The moment of attention&lt;/h2&gt;
&lt;p&gt;It was in August 2017, when Till wanted to release Lawnchair to the Google Play Store, but realized that &lt;a href=&quot;https://t.me/lawnchairchannel/175&quot;&gt;someone have stolen his listing&lt;/a&gt; with the same package name. When he knew he would need help from Google, he contacted me immediately to explain the situation to me, as he knew that I could help him in getting contact to Google and solving the legal issue. I was abroad at this time for 2 weeks school of English, but it was not a problem for me to call people in different offices at Google around to world in order to solve his issue.&lt;/p&gt;

&lt;h3 id=&quot;so-were-you-successful-thinking&quot;&gt;So, were you successful? :thinking:&lt;/h3&gt;
&lt;p&gt;Sadly, after many calls, a friend explained to me that it’s impossible to solve that over the phone or by e-mail and that the best chance would be to go to the Google office in Zurich, as Till is from Switzerland. But unfortunately Till has not yet found time to go to Zurich, so they had to find another solution…&lt;/p&gt;

&lt;h2 id=&quot;my-part-in-the-lawnchair-team&quot;&gt;My part in the Lawnchair team&lt;/h2&gt;
&lt;p&gt;After my “success” in helping them with their legal issue, I started contributing to Lawnchair on GitHub by answering to open issues and completing the wiki with new FAQ entries, like giving answer to &lt;a href=&quot;https://github.com/Deletescape-Media/Lawnchair/wiki/FAQ/474329417b04ddbcaa0e8d9496b3f2c742685d58&quot;&gt;why the weather widget is showing different information than Google Now&lt;/a&gt;. I also &lt;a href=&quot;https://github.com/Deletescape-Media/Lawnchair/commit/7df7bd15eafc86b57ac2f77e578bd52b55461383#diff-1a1c3dd142f76a5fad803a0c52839881&quot;&gt;added an issue template&lt;/a&gt; to help new people in submitting their bug reports to the Lawnchair team. With the time tho I was more interested in actual contributions to the code itself, so I started reviewing the code and to fix reported bugs.&lt;/p&gt;

&lt;p&gt;This was the moment I started to became finally a part of the Lawnchair team. :heart:&lt;br /&gt;
Here is a sample of the contributions I did in the meanwhile:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Deletescape-Media/Lawnchair/pull/715&quot;&gt;Add support for animated clock icon on MIUI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Deletescape-Media/Lawnchair/pull/756&quot;&gt;Add option in preferences to animate alternative clock apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Deletescape-Media/Lawnchair/pull/813&quot;&gt;Unicode insensitive comparison in All Apps search&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Deletescape-Media/Lawnchair/pull/819&quot;&gt;Remove whitespace from query when searching&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/Deletescape-Media/Lawnchair/commit/580ffcbccd6056da9b9bf27f2a0235dd4713f116&quot;&gt;Fix derped regex&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I would like to thank here &lt;a href=&quot;https://github.com/Rawi666&quot;&gt;Rawi666&lt;/a&gt; for his contributions and the help he offered, it was nice to talk with you!&lt;/p&gt;

&lt;h2 id=&quot;a-new-solution-had-to-be-found&quot;&gt;A new solution had to be found&lt;/h2&gt;
&lt;p&gt;It was still a hot topic since August 2017 and people kept spamming those requests on GitHub and Telegram along, so we had to overthink our current versioning system.&lt;/p&gt;

&lt;p&gt;After a long discussion we came up with the idea to slowly move our deployment to the Google Play Store, while also changing the package name, so our old listing will be available again. No sooner said than done, I began to &lt;a href=&quot;https://github.com/Deletescape-Media/Lawnchair/pull/835&quot;&gt;massively change the necessary files&lt;/a&gt; and prepare my &lt;a href=&quot;https://storage.codebucket.de/&quot;&gt;private S3 storage for new uploads&lt;/a&gt; so we could release our first alpha version to the Play Store as soon as possible.&lt;/p&gt;

&lt;p&gt;On October the 14th we were &lt;a href=&quot;https://twitter.com/lawnchairapp/status/919293171330310144&quot;&gt;happy to celebrate our first alpha version&lt;/a&gt; on the Google Play Store. We already hit 50.000 downloads with around 30.000 active users, and the trend is rising. :tada:&lt;/p&gt;

&lt;h2 id=&quot;so-whats-next&quot;&gt;So, what’s next?&lt;/h2&gt;
&lt;p&gt;It doesn’t feel like it’s the end, but more like the beginning of a new chapter. We have still a lot of work to do before we release the final version. But since most of the team members are back in school or work, the final release will take some time. And as we promised, Lawnchair is and remains free of charge, no pro version or additional in-app purchase required! If you like our work, then consider buying the &lt;a href=&quot;https://play.google.com/store/apps/details?id=ch.deletescape.donut&quot;&gt;donut donation&lt;/a&gt; app, it helps us among other things with the maintenance costs for the hosting for example.&lt;/p&gt;

&lt;p&gt;In the end, I would like to thank &lt;a href=&quot;https://deletescape.ch&quot;&gt;Till Kottmann&lt;/a&gt; and &lt;a href=&quot;https://christopherkardas.me&quot;&gt;Christopher Kardas&lt;/a&gt; for their support, you guys gave me actually motivation to do something. Also a big thanks goes to the rest of the team, you all are amazing! :hugs:&lt;/p&gt;

      </description>
      <pubDate>Wed, 25 Oct 2017 19:44:00 +0200</pubDate>
      <link>https://www.codebucket.de/blog/open-source/2017/10/25/my-story-about-lawnchair-launcher.html</link>
      <guid isPermaLink="true">https://www.codebucket.de/blog/open-source/2017/10/25/my-story-about-lawnchair-launcher.html</guid>
      
      
      <category>open-source</category>
      
    </item>
    
    <item>
      <title>Google Code-in 2016</title>
      <description>
        <![CDATA[<p><img src="https://www.codebucket.de/blog/images/2017-01-05.jpg" width="500" height="320" alt="Google Code-in 2016" /></p>]]>
        &lt;p&gt;Over the past month I have been participating in Google Code-in (#gci2016) and it has been a great journey for me! It is all about &lt;a href=&quot;https://en.wikipedia.org/wiki/Free_and_open-source_software&quot;&gt;FOSS&lt;/a&gt; development, and all of the challenges and skills involved. I discovered it through a recommended &lt;a href=&quot;http://m4tx.pl/en/2014/05/google-code-in-2013-grand-prize-trip/&quot;&gt;blog post&lt;/a&gt; written by m4tx, a graduated student from my school who participated in 2013. After reading his blog post, I got motivated to follow his workflow and chose to do tasks for Wikimedia. So after studying the contest rules, I signed up for the contest and got my first task started.&lt;/p&gt;

&lt;p&gt;I already had &lt;a href=&quot;https://github.com/codebucketdev?tab=overview&amp;amp;from=2016-12-01&amp;amp;to=2016-12-31&quot;&gt;some experiences&lt;/a&gt; in contributing to free open-source software development, so tools like Git or Gerrit weren’t anything new for me. Also I had got a look 2 years ago as a intern in closed-source software development, where version control using Git was heavily used to work together in team. But I never was able to collaborate with others on a project of a such scale like Wikimedia was.&lt;/p&gt;

&lt;h3 id=&quot;wait-do-you-mean-wikipedia-or-isnt-this-a-typo-confused&quot;&gt;Wait, do you mean Wikipedia or isn’t this a typo? :confused:&lt;/h3&gt;
&lt;p&gt;No. The Wikimedia Foundation is the non-profit organization behind Wikipedia, Wiktionary, Wikiquote and other wiki projects, while MediaWiki is the software that powers all of these sites. &lt;a href=&quot;https://www.mediawiki.org/wiki/Differences_between_Wikipedia,_Wikimedia,_MediaWiki,_and_wiki&quot;&gt;Click here&lt;/a&gt; to read more about the differences between Wikipedia, Wikimedia, MediaWiki, and wiki.&lt;/p&gt;

&lt;h2 id=&quot;how-was-my-experience-with-wikimedia&quot;&gt;How was my experience with Wikimedia?&lt;/h2&gt;

&lt;p&gt;At the beginning I was a little bit confused of the fact that they host the code on &lt;a href=&quot;https://gerrit.wikimedia.org/r/&quot;&gt;Gerrit&lt;/a&gt; and fill bug reports on &lt;a href=&quot;https://phabricator.wikimedia.org/&quot;&gt;Phabricator&lt;/a&gt;, instead of doing that on GitHub. So the first thing that I did, is adding a &lt;a href=&quot;https://www.mediawiki.org/w/index.php?title=Gerrit/Tutorial&amp;amp;diff=2299207&amp;amp;oldid=2275142&quot;&gt;small note&lt;/a&gt; to the Gerrit/Tutorial page on MediaWiki for future contributors like me. :smile:&lt;/p&gt;

&lt;p&gt;Setting up the development environment using &lt;a href=&quot;https://www.mediawiki.org/wiki/MediaWiki-Vagrant&quot;&gt;MediaWiki-Vagrant&lt;/a&gt; was an easy task and done within 2 hours on my old laptop, on which I installed Ubuntu 16.10 beforehand. Also, I decided to setup an IRC bouncer to be always up-to-date with conversations in the IRC channels while I’m away. For that purpose I simply installed &lt;a href=&quot;http://wiki.znc.in/ZNC&quot;&gt;ZNC&lt;/a&gt; on my VPS, setup the IRC network and joined some channels. Now I can connect my IRC client to my VPS, instead to Freenode and close it without missing any interesting conversations or messages, nice!&lt;/p&gt;

&lt;p&gt;After that, I began my work by selecting my first task. I decided to skip maybe the beginner tasks, as they weren’t challenging enough for me. :stuck_out_tongue_winking_eye: So I ended up with picking up a small task, to warmup, which said &lt;a href=&quot;https://phabricator.wikimedia.org/T131424&quot;&gt;“WikidataPageBanner when using page images generated API renders badly cropped images”&lt;/a&gt;. It was a nice feel to submit &lt;a href=&quot;https://gerrit.wikimedia.org/r/#/c/324775/&quot;&gt;my first patch&lt;/a&gt; to Gerrit for review, as I didn’t know what feedback to expect from my mentors. After my change got merged and the task on GCI was approved, I claimed more and more tasks, as my goal was to finish one task every 2 days. I wrote code in PHP and JavaScript, with each change improving (or sometimes destroying) some parts of the MediaWiki related projects like &lt;a href=&quot;https://www.mediawiki.org/wiki/Category:Extensions&quot;&gt;extensions&lt;/a&gt; or the core itself. And with time to time I learned to get more familiar with the &lt;a href=&quot;https://en.wikipedia.org/wiki/Application_programming_interface&quot;&gt;APIs&lt;/a&gt;, I began to understand where to look and how to search for the things I needed. With that knowledge I was able to complete my tasks faster and better.&lt;/p&gt;

&lt;p&gt;Yes, you could say that I motivated myself to keep going, but it was definitely worth doing that. :muscle:&lt;br /&gt;
Here is a sample of the tasks I did:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://gerrit.wikimedia.org/r/328563&quot;&gt;Replaced wrong message-key used in NewsletterDiffEngine.php&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gerrit.wikimedia.org/r/329773&quot;&gt;Removed deprecated class ImageGallery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gerrit.wikimedia.org/r/330184&quot;&gt;Added ability to configure the web service endpoint&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gerrit.wikimedia.org/r/325097&quot;&gt;Improved code readability in Quiz extension by reformatting code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these tasks had one or more mentors assigned and nearly every mentor I worked with at Wikimedia was nice and helpful. I would like to thank AKlapper (&lt;a href=&quot;https://www.mediawiki.org/wiki/User:AKlapper_(WMF)&quot;&gt;Andre Klapper&lt;/a&gt;), Reedy (&lt;a href=&quot;https://www.mediawiki.org/wiki/User:Reedy&quot;&gt;Sam Reed&lt;/a&gt;), FlorianSW (&lt;a href=&quot;https://www.mediawiki.org/wiki/User:Florianschmidtwelzow&quot;&gt;Florian Schmidt&lt;/a&gt;), Mvolz (&lt;a href=&quot;https://www.mediawiki.org/wiki/User:Mvolz&quot;&gt;Marielle Volz&lt;/a&gt;), Jdlrobson (&lt;a href=&quot;https://www.mediawiki.org/wiki/User:Jdlrobson&quot;&gt;Jon Robson&lt;/a&gt;) and many other WMF employees along with volunteer contributors; you guys are doing amazing work for community! I spent my best time of my life during the contest when working with Wikimedia and I decided to keep up contributing to MediaWiki as volunteer in my free time. :heart:&lt;/p&gt;

&lt;h2 id=&quot;will-i-participate-next-year&quot;&gt;Will I participate next year?&lt;/h2&gt;

&lt;p&gt;Sure, &lt;strong&gt;yes, I will&lt;/strong&gt;! Taking all my experience I’ve got over the last month I can only recommend everyone who is reading this to take part in next year’s Google Code-in. It let’s you feel important, because you get to code real-life things and be a part of the community that power some highly used piece of software.&lt;/p&gt;

&lt;p&gt;P.S. You can still jump into GCI 2016 before 13th January 2017, so go ahead and take a look inside! :wave:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This work is licensed under a &lt;a href=&quot;http://creativecommons.org/licenses/by-sa/4.0/&quot;&gt;Creative Commons Attribution-ShareAlike 4.0 International License&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

      </description>
      <pubDate>Thu, 05 Jan 2017 22:41:00 +0100</pubDate>
      <link>https://www.codebucket.de/blog/contest/2017/01/05/google-code-in-2016.html</link>
      <guid isPermaLink="true">https://www.codebucket.de/blog/contest/2017/01/05/google-code-in-2016.html</guid>
      
      
      <category>contest</category>
      
    </item>
    
    <item>
      <title>Hello World!</title>
      <description>
        <![CDATA[<p><img src="https://www.codebucket.de/blog/images/2016-11-08.jpg" width="500" height="320" alt="Hello World!" /></p>]]>
        &lt;p&gt;I’m so happy to introduce you my new website. It’s not about the fancy cool effects, it is not about shiny design, it’s purely about the content that I would like to share with you. After a long time of working with Java, PHP and JavaScript programming languages and tools like Git I found out that It gives me a massive pleasure to share my knowledge, so I decided to run this blog.&lt;/p&gt;

&lt;h2 id=&quot;technically-about-this-website&quot;&gt;Technically about this website&lt;/h2&gt;

&lt;p&gt;This is a static website generated by amazing tool called &lt;a href=&quot;http://jekyllrb.com&quot;&gt;Jekyll&lt;/a&gt;, the blog-aware static site generator. I’m always interested in learning new, interesting technologies, plus I’ve been thinking about refreshing my site for some time, which gave me the perfect excuse to install Ruby and fire it up.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://jekyllrb.com/img/logo-2x.png&quot; alt=&quot;Jekyll Logo&quot; class=&quot;image fit&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I’m drawn to Jekyll as it seems to hit a sweet spot for me due to the following features:&lt;/p&gt;

&lt;h3 id=&quot;markdown&quot;&gt;Markdown&lt;/h3&gt;

&lt;p&gt;I love &lt;a href=&quot;https://en.wikipedia.org/wiki/Markdown&quot;&gt;Markdown&lt;/a&gt;. Markdown is a lightweight markup language with a simple, unobtrusive syntax. It looks great and is easily readable in its plain text form but is also easily converted into HTML. I find that I am using Markdown more and more every day.&lt;/p&gt;

&lt;p&gt;Jekyll posts and pages can be written in Markdown format as well as HTML. Markdown is also compatible with HTML, so if you ever get some “widget” code that you want to embed on your site you don’t need to convert it in any way - just copy and paste the code in and mix the two together.&lt;/p&gt;

&lt;h3 id=&quot;static-site-generation&quot;&gt;Static site generation&lt;/h3&gt;

&lt;p&gt;Previously I’ve used &lt;a href=&quot;https://www.blogger.com&quot;&gt;Blogger&lt;/a&gt; and &lt;a href=&quot;https://wordpress.org&quot;&gt;WordPress&lt;/a&gt; to manage my site. Blogger and the hosted offerings of WordPress are ok, but they just don’t give me the flexibility I feel I need to be able to modify my templates and get my site running exactly how I want - there’s always some kind of restriction. This led me to hosting WordPress, which required a LAMP style stack on a server somewhere which, while not exactly a problem, was an overhead that I could do without.&lt;/p&gt;

&lt;p&gt;Jekyll generates static sites. It processes your pages, posts and templates and produces simple output in the form of HTML files, allowing you to serve them up from almost any kind of web server. &lt;a href=&quot;https://httpd.apache.org&quot;&gt;Apache&lt;/a&gt;, &lt;a href=&quot;https://www.lighttpd.net&quot;&gt;Lighttpd&lt;/a&gt; and &lt;a href=&quot;https://www.nginx.com&quot;&gt;Nginx&lt;/a&gt; are all welcome here, or you could just upload your files to an Amazon S3 bucket and serve them directly from there… &lt;em&gt;Jekyll doesn’t care&lt;/em&gt;.&lt;/p&gt;

&lt;h3 id=&quot;github-pages&quot;&gt;GitHub pages&lt;/h3&gt;

&lt;p&gt;Jekyll is used by GitHub for their &lt;a href=&quot;https://pages.github.com&quot;&gt;GitHub Pages&lt;/a&gt; feature. This allows you to create or push a Git repository with your Jekyll site to them, which they will then build and host &lt;em&gt;for free&lt;/em&gt;. You can use a github.io address or your own domain name. This is perfect for me, as it allows me to develop my site and write content locally whilst being able to maintain it from anywhere with an internet connection. People can also fork my code and set up their own site easily and they can raise bugs, feature requests and even submit their own fixes &amp;amp; features if they choose to.&lt;/p&gt;

&lt;h3 id=&quot;simple-flexible-templating&quot;&gt;Simple, flexible templating&lt;/h3&gt;

&lt;p&gt;Jekyll uses the &lt;a href=&quot;http://liquidmarkup.org&quot;&gt;Liquid&lt;/a&gt; library for templating. This is extremely easy to learn and so far seems fairly capable, especially with the filters that Jekyll supports natively. It has its quirks, but I have not yet come across something which I haven’t been able to do.&lt;/p&gt;

&lt;h3 id=&quot;syntax-highlighting&quot;&gt;Syntax highlighting&lt;/h3&gt;

&lt;p&gt;Jekyll includes support for syntax highlighting of code snippets, which may come in handy for me, though I will probably lean more towards embedding &lt;a href=&quot;https://gist.github.com&quot;&gt;GitHub Gists&lt;/a&gt; instead.&lt;/p&gt;

      </description>
      <pubDate>Tue, 08 Nov 2016 20:51:00 +0100</pubDate>
      <link>https://www.codebucket.de/blog/general/2016/11/08/hello-world.html</link>
      <guid isPermaLink="true">https://www.codebucket.de/blog/general/2016/11/08/hello-world.html</guid>
      
      
      <category>general</category>
      
    </item>
    
    <item>
      <title>Welcome to Jekyll!</title>
      <description>
        <![CDATA[<p><img src="https://www.codebucket.de/blog/images/2016-11-06.jpg" width="500" height="320" alt="Welcome to Jekyll!" /></p>]]>
        &lt;p&gt;You’ll find this post in your &lt;code class=&quot;highlighter-rouge&quot;&gt;_posts&lt;/code&gt; directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run &lt;code class=&quot;highlighter-rouge&quot;&gt;jekyll serve&lt;/code&gt;, which launches a web server and auto-regenerates your site when a file is updated.&lt;/p&gt;

&lt;p&gt;To add new posts, simply add a file in the &lt;code class=&quot;highlighter-rouge&quot;&gt;_posts&lt;/code&gt; directory that follows the convention &lt;code class=&quot;highlighter-rouge&quot;&gt;YYYY-MM-DD-name-of-post.ext&lt;/code&gt; and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.&lt;/p&gt;

&lt;p&gt;Jekyll also offers powerful support for code snippets:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;print_hi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Hi, &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;print_hi&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;'Tom'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#=&amp;gt; prints 'Hi, Tom' to STDOUT.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Check out the &lt;a href=&quot;http://jekyllrb.com/docs/home&quot;&gt;Jekyll docs&lt;/a&gt; for more info on how to get the most out of Jekyll. File all bugs/feature requests at &lt;a href=&quot;https://github.com/jekyll/jekyll&quot;&gt;Jekyll’s GitHub repo&lt;/a&gt;. If you have questions, you can ask them on &lt;a href=&quot;https://talk.jekyllrb.com/&quot;&gt;Jekyll Talk&lt;/a&gt;.&lt;/p&gt;


      </description>
      <pubDate>Sun, 06 Nov 2016 03:11:00 +0100</pubDate>
      <link>https://www.codebucket.de/blog/jekyll/2016/11/06/welcome-to-jekyll.html</link>
      <guid isPermaLink="true">https://www.codebucket.de/blog/jekyll/2016/11/06/welcome-to-jekyll.html</guid>
      
      
      <category>jekyll</category>
      
    </item>
    
  </channel>
</rss>
