-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
114 lines (71 loc) · 8.12 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Jenko: Words & Code</title>
<meta name="author" content="Ian Jenkins">
<!--[if lt IE 9]>
<script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link href="/assets/themes/jenko/css/reset.css" rel="stylesheet">
<link href="/assets/themes/jenko/css/pygments.css" rel="stylesheet">
<link href="/assets/themes/jenko/css/style.css?body=1" rel="stylesheet" type="text/css" media="all">
<link href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" rel="icon" type="image/x-icon" />
<link href='//fonts.googleapis.com/css?family=Crimson+Text:400,700,400italic' rel='stylesheet' type='text/css'>
<link href='//fonts.googleapis.com/css?family=Open+Sans:700,300' rel='stylesheet' type='text/css'>
<link rel="alternate" type="application/rss+xml" title="RSS" href="/atom.xml" />
<script src="/assets/themes/jenko/js/site.js"></script>
</head>
<body>
<div class="container">
<header>
<h1><a href="/">Jenko <small>Words & Code</small></a></h1>
</header>
<div class="content">
<article>
<header class="clearfix">
<span class="date">21 November 2022</span>
<h1><a href="/hacktoberfest/2022/11/21/hacktoberfest-checking-out">Hacktoberfest checking out</a></h1>
<span class="category"><a href="/categories.html#hacktoberfest-ref">hacktoberfest</a></span>
<span class="time">4 minutes and 20 seconds</span>
</header>
<p>The first <a href="https://hacktoberfest.com/">hacktoberfest</a> I took part in was 2015, you can <a href="https://www.boxuk.com/insight/archived-hacktoberfest-2015/">read more about my experience on the blog of where I used to work</a>. It was pretty novel back then and it felt like every pull request was a very minor step in the progress of open source. One thing that was missing was an easy way to check your progress so you could see how close you actually were to claiming a free t-shirt. That’s what gave me the idea to create a little checker app. It wasn’t complicated, just a small node app that used the Github API to look up how many PRs a specific username had created during the qualifying period of October. Back then, the rules were pretty simple, open 4 PRs on Github in October and you’ve qualified. Spammers and scammers weren’t so much around back then, so all the additional checks that are required nowadays weren’t needed back then.</p>
<p><img src="https://github.com/jenkoian/hacktoberfest-checker/raw/version2016/hacktoberfest-checker-2016.png" alt="The initial basic design" /></p>
<p>It got a little bit of interest from others taking part and I think it’s fair to say for a small part of that 2015 edition at least it was <em>the</em> way of checking your hacktoberfest progress. It was quite rewarding and exciting to lead a popular (popular being relative here, for me it was popular, I’m sure others it would barely be on their radar) open source project. One of the best aspects was seeing comments like <a href="https://github.com/jenkoian/hacktoberfest-checker/pull/7#issuecomment-148894994">this one</a>.</p>
<p><img src="https://user-images.githubusercontent.com/131355/203045926-4b555987-9332-44cd-a549-42e60882f06e.png" alt="" /></p>
<p>Year after year I updated the app with a fresh look and feel to match the underlying theme and I tried to introduce some new bit of technology each year, even if just a new CSS or JS framework so I could try and learn something new in the process. What started as an extremely simple node app with some basic front end JS and CSS is now a fully fledged <a href="https://reactjs.org/">React</a> app usig <a href="https://tailwindcss.com/">Tailwind CSS</a>. The React rewrite is particularly worth calling out, as I had expressed an interested in rewriting the app in React and <a href="https://github.com/jenkoian/hacktoberfest-checker/pull/333">someone submitted the most incredible PR</a> essentially doing all the work for me! It was great because it meant I could read through and understand the changes without undertaking the daunting task of having to start a big rewrite with no knowledge of React. Building upon this over the years has left me with a slightly above zero understanding of React, which is great.</p>
<p>The app started as an app hosted on the free tier on <a href="https://www.heroku.com/">Heroku</a>, this changed after a few years after I realised I was hosting this on a Digital Ocean competitor for an initiative organised by Digital Ocean. I reached out to them and they were only happy to give me some free credits to move over to <a href="https://www.digitalocean.com/">Digital Ocean</a>. The free credits ran out a year or two after than initial edition and although I’m sure they would have been more than happy to replenish them, I didn’t want go back cap in hand so have been paying the hosting for the last couple of years.</p>
<p>The cost isn’t a big deal, a bit annoying given the economic state of the world at the moment, but it’s not a massive amount. However, it’s the maintenance, support and frankly the motivation of keeping the app running that has led me to decide that…</p>
<p><strong>The hacktoberfest checker has come to the end of it’s life</strong></p>
<p>It’s only a month a year, but when it came around this year I was actually dreading having to give up some of my free time to dedicate to it. It’s not even that big of an upkeep, but still enough for it to become a distraction I could do without.</p>
<p>The other aspect to this is that the app is more or less superfluous now anyway, worse than that it’s not even accurate anymore. Digital Ocean has since built <a href="https://hacktoberfest.com/profile/">it’s own progress checker</a> and due to the spammers and scammers mentioned earlier have added more and more complexity to the rules, most of which we’ve added support for now, but some are extremely difficult/impossible, like Digital Ocean maintains a private list of repositories/users that are banned, also PRs have to be approved by Digital Ocean after a grace period which could be different for each PR, there’s also a maintainers reward which seems to be manually picked by Digital Ocean which we obviousy can’t add support for.</p>
<p>So although it was rewarding at first, the fact there is now a better and more accurate alternative, the fact I don’t look forward to October coming and the fact I could save a bit of money, means that now is a good time. The repository on Github has over 700 stars, by far the most I’ve ever had on any other repository I’ve open sourced, to which I’m extremely grateful for and I’m chuffed that it helped a few people get into open source. The website will be offline, probably by the time you are reading this and I’ll archive the repository.</p>
<p>Cheers!</p>
<p><a href="/hacktoberfest/2022/11/21/hacktoberfest-checking-out#disqus_thread">Add comment</a></p>
<p><a href="/archive.html">all posts</a></p>
</article>
</div>
</div> <!-- /container -->
<footer>
<article>
<span class="left"><a href="https://github.com/jenkoian/jenkoian.github.com" target="_blank">View on Github</a></span>
<span class="right">© Ian Jenkins 2022</span>
<br />
<span class="right"><a href="https://twitter.com/jenko" target="_blank">@jenko</a></span>
</article>
</footer>
<!--
-->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-39144556-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>