Personal website https://benkurtovic.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 9.1 KiB

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