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

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