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

10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
9 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  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: bitshift
  15. langs: Python + SQL + Web
  16. started: March 2014
  17. description: A <a href="http://bitshift.it/">semantic search engine</a> for source code
  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: crater
  23. langs: C + Assembly
  24. started: March 2015
  25. incomplete: yes
  26. 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
  27. others:
  28. - name: tfdclerk
  29. langs: JavaScript
  30. started: August 2015
  31. incomplete: yes
  32. 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
  33. - name: oriadnos
  34. repo: VjiaoBlack/Oriadnos
  35. langs: C
  36. started: May 2014
  37. 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
  38. - name: mal-decimal-scores
  39. langs: JS
  40. started: May 2014
  41. description: A Chrome extension that gives you finer control over <a href="http://myanimelist.net">MyAnimeList.net</a> scores
  42. - name: BAJA
  43. repo: stuycs-softdev-fall-2013/proj3-6-BAJA
  44. langs: Python + Web
  45. started: Jan 2014
  46. 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
  47. - name: omnithinker
  48. repo: stuycs-softdev-fall-2013/proj2-pd6-04-omnithinker
  49. langs: Python + Web
  50. started: Nov 2013
  51. description: An <a href="http://softdev-server.stuycs.org:6004/">online brainstorming tool</a> that displays relevant information from the web in a sidebar
  52. - name: databanks
  53. repo: VjiaoBlack/databanks
  54. langs: C
  55. started: Nov 2013
  56. description: A simple database with a terminal-based interface for notekeeping
  57. - name: terminvaders
  58. repo: VjiaoBlack/terminvaders
  59. langs: C
  60. started: Oct 2013
  61. 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>
  62. - name: starlorn
  63. repo: Hypersonic/Starlorn
  64. langs: Java
  65. started: May 2013
  66. description: A <a href="//en.wikipedia.org/wiki/Shoot_'em_up">shoot 'em up</a> game with a sweet upgrade system and randomized levels
  67. - name: goldfish
  68. langs: Java
  69. started: Jan 2013
  70. description: A simple <a href="//en.wikipedia.org/wiki/Conway's_Game_of_Life">Game of Life</a> implementation in Java
  71. - name: cellar-strider
  72. repo: Hypersonic/Cellar-Strider
  73. langs: Python
  74. started: June 2012
  75. description: A pseudo-<a href="//en.wikipedia.org/wiki/Roguelike">roguelike</a> game with a YAML-based level system
  76. - name: func-smash
  77. langs: Python
  78. started: April 2012
  79. description: A library that tries to generate random Python functions using Markov chains
  80. - name: lobo
  81. langs: NetLogo
  82. started: Dec 2011
  83. 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'
  84. - name: git-repo-updater
  85. langs: Python
  86. started: June 2011
  87. description: A console script that allows you to easily pull to multiple git repositories at once
  88. - name: earwig.github.io
  89. langs: Web
  90. started: June 2011
  91. description: The site you're viewing right now in source code form
  92. - name: music-quizzer
  93. langs: Python
  94. started: May 2011
  95. 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
  96. ---
  97. <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 programming language theory, compilers, and operating systems, and I've done a lot of work with databases and text analysis. Want to chat? Contact me at <a href="mailto:ben.kurtovic@gmail.com">ben.kurtovic@gmail.com</a>.</p>
  98. <div id="links">
  99. <div>GitHub<br /><a href="//github.com/earwig">earwig</a></div
  100. ><div>Freenode<br /><a href="http://webchat.freenode.net/?channels=%23%23earwig">Earwig</a></div
  101. ><div>Wikipedia<br /><a href="//en.wikipedia.org/wiki/User:The_Earwig">The Earwig</a></div
  102. ><div>Twitter<br /><a href="//twitter.com/the_earwig">@the_earwig</a></div
  103. ><div>LinkedIn<br /><a href="//linkedin.com/in/benkurtovic">benkurtovic</a></div
  104. ><div>PGP Key<br /><a href="http://pgp.mit.edu:11371/pks/lookup?search=0x8A19649AE8DBB515&amp;fingerprint=on&amp;op=index">E8DBB515</a></div>
  105. </div>
  106. <table id="work">
  107. <tr>
  108. <td>
  109. <h2>Projects</h2>
  110. <p>A look at what I've been up to for the past few years:</p>
  111. <h3>Highlights</h3>
  112. <ul class="work-list">
  113. {% for project in page.projects["highlights"] %}
  114. <li>
  115. <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 />
  116. <span class="subtitle">{{ project.description }}</span>
  117. </li>
  118. {% endfor %}
  119. </ul>
  120. <h3>Other work</h3>
  121. <ul class="work-list">
  122. {% for project in page.projects["others"] %}
  123. <li>
  124. <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 />
  125. <span class="subtitle">{{ project.description }}</span>
  126. </li>
  127. {% endfor %}
  128. </ul>
  129. </td>
  130. <td>
  131. <h2>Posts</h2>
  132. <div id="tags">
  133. Tags:
  134. {% comment %} Based on code from Christian Specht at http://stackoverflow.com/a/24744306/2712951 {% endcomment %}
  135. {% 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 %}
  136. {% assign sorted = tags | split: "|" | sort | reverse %}
  137. {% for tag in sorted %}
  138. {% assign items = tag | split: "#" %}
  139. <span data-tag="{{ items[1] }}" class="tag">{{ items[1] | replace: " ", "&nbsp;" }}&nbsp;<span class="subtitle">({{ items[2] }})</span></span>
  140. {% endfor %}
  141. </div>
  142. <ul id="post-list" class="work-list">
  143. {% for post in site.posts %}
  144. <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>
  145. {% endfor %}
  146. <li id="null-post" data-tags="" style="display: none;"><i>No posts with these tags</i></li>
  147. </ul>
  148. </td>
  149. </tr>
  150. </table>
  151. <script>
  152. var disqus_shortname = 'earwig';
  153. var disqus_title = '{{ page.title }}';
  154. var disqus_url = '{{ site.url }}{{ page.url }}';
  155. var disqus_developer = 1;
  156. (function () {
  157. var s = document.createElement('script'); s.async = true;
  158. s.type = 'text/javascript';
  159. s.src = '//' + disqus_shortname + '.disqus.com/count.js';
  160. (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(s);
  161. }());
  162. </script>