Personal website https://benkurtovic.com/
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

10 лет назад
10 лет назад
8 лет назад
10 лет назад
7 лет назад
9 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
8 лет назад
10 лет назад
10 лет назад
9 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. ---
  2. layout: base
  3. title: Home
  4. projects:
  5. highlights:
  6. - name: mwparserfromhell
  7. langs: Python + C
  8. started: May 2012
  9. description: An easy-to-use and outrageously powerful Python parser for <a href="//mediawiki.org/">MediaWiki</a> wikicode
  10. - name: earwigbot
  11. langs: Python
  12. started: April 2009
  13. description: A modular robot that edits <a href="//en.wikipedia.org/">Wikipedia</a> and interacts with people over <a href="//en.wikipedia.org/wiki/Internet_Relay_Chat">IRC</a>, with <a href="//github.com/earwig/earwigbot-plugins">a separate repository for plugins</a>
  14. - name: crater
  15. langs: C + Assembly
  16. started: March 2015
  17. description: An emulator for the <a href="https://en.wikipedia.org/wiki/Sega_Game_Gear">Sega Game Gear</a>, with an included <a href="https://en.wikipedia.org/wiki/Zilog_Z80">Z80</a> assembler/disassembler
  18. - name: copyvios
  19. langs: Python + Web
  20. started: July 2009
  21. description: A <a href="//tools.wmflabs.org/copyvios">copyright violation detector</a> for Wikipedia articles running on <a href="//tools.wmflabs.org/">Wikimedia Labs</a>
  22. - name: bitshift
  23. langs: Python + SQL + Web
  24. started: March 2014
  25. description: A <a href="http://bitshift.it/">semantic search engine</a> for source code
  26. others:
  27. - name: calefaction
  28. langs: Python + Web
  29. started: December 2016
  30. description: A corporation manager and dashboard for <a href="https://www.eveonline.com/">EVE Online</a>
  31. - name: kgrader
  32. langs: Ruby
  33. started: March 2016
  34. description: A code autograder for student homework submissions
  35. - name: gravity
  36. repo: EnacheB/Gravity
  37. langs: C++
  38. started: November 2015
  39. description: A multiplayer top-down orbital space shooter
  40. - name: tfdclerk
  41. langs: JavaScript
  42. started: August 2015
  43. incomplete: yes
  44. description: An English Wikipedia <a href="https://en.wikipedia.org/wiki/Wikipedia:User_scripts">user script</a> to automate common <a href="https://en.wikipedia.org/wiki/Wikipedia:Templates_for_discussion">templates for discussion</a> operations, including closures and relisting
  45. - name: oriadnos
  46. repo: VjiaoBlack/Oriadnos
  47. langs: C
  48. started: May 2014
  49. description: A 3D maze exploration game written from scratch using matrix manipulation code, <a href="//en.wikipedia.org/wiki/UV_mapping">UV texture mapping</a>, <a href="//en.wikipedia.org/wiki/Z-buffering">z-buffering</a>, and simple lighting
  50. - name: mal-decimal-scores
  51. langs: JS
  52. started: May 2014
  53. description: A Chrome extension that gives you finer control over <a href="http://myanimelist.net">MyAnimeList.net</a> scores
  54. - name: BAJA
  55. repo: stuycs-softdev-fall-2013/proj3-6-BAJA
  56. langs: Python + Web
  57. started: Jan 2014
  58. description: A <a href="http://softdev-server.stuycs.org:6680/">hacking game</a> featuring multiple simulated websites, tied together by messages sent to the player from a mysterious individual using a fake email client
  59. - name: omnithinker
  60. repo: stuycs-softdev-fall-2013/proj2-pd6-04-omnithinker
  61. langs: Python + Web
  62. started: Nov 2013
  63. description: An <a href="http://softdev-server.stuycs.org:6004/">online brainstorming tool</a> that displays relevant information from the web in a sidebar
  64. - name: databanks
  65. repo: VjiaoBlack/databanks
  66. langs: C
  67. started: Nov 2013
  68. description: A simple database with a terminal-based interface for notekeeping
  69. - name: terminvaders
  70. repo: VjiaoBlack/terminvaders
  71. langs: C
  72. started: Oct 2013
  73. description: A terminal-based multiplayer arcade game with a client&ndash;server model inspired by <a href="//en.wikipedia.org/wiki/Space_Invaders">Space Invaders</a>
  74. - name: starlorn
  75. repo: Hypersonic/Starlorn
  76. langs: Java
  77. started: May 2013
  78. description: A <a href="//en.wikipedia.org/wiki/Shoot_'em_up">shoot 'em up</a> game with a sweet upgrade system and randomized levels
  79. - name: goldfish
  80. langs: Java
  81. started: Jan 2013
  82. description: A simple <a href="//en.wikipedia.org/wiki/Conway's_Game_of_Life">Game of Life</a> implementation in Java
  83. - name: cellar-strider
  84. repo: Hypersonic/Cellar-Strider
  85. langs: Python
  86. started: June 2012
  87. description: A pseudo-<a href="//en.wikipedia.org/wiki/Roguelike">roguelike</a> game with a YAML-based level system
  88. - name: func-smash
  89. langs: Python
  90. started: April 2012
  91. description: A library that tries to generate random Python functions using Markov chains
  92. - name: lobo
  93. langs: NetLogo
  94. started: Dec 2011
  95. description: 'Logo Bolo: a re-envisioning of <a href="//en.wikipedia.org/wiki/Bolo_(video_game)">the classic tank game</a> by Stuart Cheshire in NetLogo'
  96. - name: git-repo-updater
  97. langs: Python
  98. started: June 2011
  99. description: A console script that allows you to easily pull to multiple git repositories at once
  100. - name: earwig.github.io
  101. langs: Web
  102. started: June 2011
  103. description: The site you're viewing right now in source code form
  104. - name: music-quizzer
  105. langs: Python
  106. started: May 2011
  107. description: A <a href="//en.wikipedia.org/wiki/Tk_(framework)">Tk</a>-based program that can help you prepare for your music final with randomly-generated listening quizzes
  108. ---
  109. <p id="bio">I'm a software developer and <a href="//en.wikipedia.org/">Wikipedian</a> currently studying computer science at the <a href="//illinois.edu/">University of Illinois at Urbana&ndash;Champaign</a>. I'm interested in operating systems, networking, and security, and I've done a fair bit of work with databases and parsers. Want to chat? Contact me at <a href="mailto:ben.kurtovic@gmail.com">ben.kurtovic@gmail.com</a>.</p>
  110. <div id="links">
  111. <div>GitHub<br /><a href="//github.com/earwig">earwig</a></div
  112. ><div>Freenode<br /><a href="http://webchat.freenode.net/?channels=%23%23earwig">Earwig</a></div
  113. ><div>Wikipedia<br /><a href="//en.wikipedia.org/wiki/User:The_Earwig">The Earwig</a></div
  114. ><div>Twitter<br /><a href="//twitter.com/benkurtovic">@benkurtovic</a></div
  115. ><div>LinkedIn<br /><a href="//linkedin.com/in/benkurtovic">benkurtovic</a></div
  116. ><div>PGP Key<br /><a href="http://pgp.mit.edu:11371/pks/lookup?search=0x8A19649AE8DBB515&amp;fingerprint=on&amp;op=index">E8DBB515</a></div>
  117. </div>
  118. <table id="work">
  119. <tr>
  120. <td>
  121. <h2>Projects</h2>
  122. <p>A look at what I've been up to for the past few years:</p>
  123. <h3>Highlights</h3>
  124. <ul class="work-list">
  125. {% for project in page.projects["highlights"] %}
  126. <li>
  127. <a class="underlined" href="//github.com/{% if project.repo %}{{ project.repo }}{% else %}earwig/{{ project.name }}{% endif %}">{{ project.name }}</a> <span class="subtitle"><i>({{ project.langs }} // started {{ project.started }}{% if project.incomplete %}<span class="incomplete"> // in development</span>{% endif %})</i></span><br />
  128. <span class="subtitle">{{ project.description }}</span>
  129. </li>
  130. {% endfor %}
  131. </ul>
  132. <h3>Other work</h3>
  133. <ul class="work-list">
  134. {% for project in page.projects["others"] %}
  135. <li>
  136. <a class="underlined" href="//github.com/{% if project.repo %}{{ project.repo }}{% else %}earwig/{{ project.name }}{% endif %}">{{ project.name }}</a> <span class="subtitle"><i>({{ project.langs }} // started {{ project.started }}{% if project.incomplete %}<span class="incomplete"> // in development</span>{% endif %})</i></span><br />
  137. <span class="subtitle">{{ project.description }}</span>
  138. </li>
  139. {% endfor %}
  140. </ul>
  141. </td>
  142. <td>
  143. <h2>Posts</h2>
  144. <div id="tags">
  145. Tags:
  146. {% comment %} Based on code from Christian Specht at http://stackoverflow.com/a/24744306/2712951 {% endcomment %}
  147. {% capture tags %}{% for tag in site.tags %}{{ tag[1].size | plus: 10000 }}{{ tag[1].first.date | date: "%Y%m%d" }}#{{ tag[0] }}#{{ tag[1].size }}{% unless forloop.last %}|{% endunless %}{% endfor %}{% endcapture %}
  148. {% assign sorted = tags | split: "|" | sort | reverse %}
  149. {% for tag in sorted %}
  150. {% assign items = tag | split: "#" %}
  151. <span data-tag="{{ items[1] }}" class="tag">{{ items[1] | replace: " ", "&nbsp;" }}&nbsp;<span class="subtitle">({{ items[2] }})</span></span>
  152. {% endfor %}
  153. </div>
  154. <ul id="post-list" class="work-list">
  155. {% for post in site.posts %}
  156. <li data-tags="{{ post.tags | join: "|" }}">{{ post.date | date: "%b %-d, %Y" }}: <a class="underlined" href="{{ post.url }}">{{ post.title }}</a><br /><span class="subtitle">{{ post.description }}<br />{{ post.tags | join: ", " }} &middot; {% if post.draft %}<span class="draft">Draft</span>{% else %}<a href="{{ post.url }}#disqus_thread" data-disqus-identifier="{{ post.id }}"></a>{% endif %}</span></li>
  157. {% endfor %}
  158. <li id="null-post" data-tags="" style="display: none;"><i>No posts with these tags</i></li>
  159. </ul>
  160. </td>
  161. </tr>
  162. </table>
  163. <script>
  164. var disqus_shortname = 'earwig';
  165. var disqus_title = '{{ page.title }}';
  166. var disqus_url = '{{ site.url }}{{ page.url }}';
  167. var disqus_developer = 1;
  168. (function () {
  169. var s = document.createElement('script'); s.async = true;
  170. s.type = 'text/javascript';
  171. s.src = '//' + disqus_shortname + '.disqus.com/count.js';
  172. (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(s);
  173. }());
  174. </script>