Personal website https://benkurtovic.com/
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

index.html 9.1 KiB

10 år sedan
10 år sedan
10 år sedan
10 år sedan
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>