From 5d31563d239d40824b5f312f4fa48aa267964bb6 Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Sun, 26 Oct 2014 14:53:49 +0100 Subject: Added a start for a project page/portfolio. --- CV/index.html | 2 +- Projects/dmp.markdown | 11 + Projects/hssb.markdown | 0 Projects/index.html | 16 +- Projects/leakindexer.markdown | 45 + _config.yml | 13 +- _includes/dmp.markdown | 14 - _includes/footer.html | 3 +- _includes/header.html | 34 +- _layouts/default.html | 6 +- _layouts/project.html | 8 + _plugins/IncludeProjectTag.rb | 32 + _plugins/ProjectGenerator.rb | 28 + assets/dmp.png | Bin 0 -> 9357 bytes assets/hssb.png | Bin 0 -> 21026 bytes assets/leak.png | Bin 0 -> 109410 bytes css/main.css | 188 - css/syntax.css | 60 - public/bootstrap/css/bootstrap-theme.css | 442 ++ public/bootstrap/css/bootstrap-theme.css.map | 1 + public/bootstrap/css/bootstrap-theme.min.css | 5 + public/bootstrap/css/bootstrap.css | 6203 ++++++++++++++++++++ public/bootstrap/css/bootstrap.css.map | 1 + public/bootstrap/css/bootstrap.min.css | 5 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20335 bytes .../fonts/glyphicons-halflings-regular.svg | 229 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 41280 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23320 bytes public/bootstrap/js/bootstrap.js | 2114 +++++++ public/bootstrap/js/bootstrap.min.js | 6 + public/css/main.css | 191 + public/css/syntax.css | 60 + 32 files changed, 9437 insertions(+), 280 deletions(-) create mode 100644 Projects/dmp.markdown create mode 100644 Projects/hssb.markdown create mode 100644 Projects/leakindexer.markdown delete mode 100644 _includes/dmp.markdown create mode 100644 _layouts/project.html create mode 100644 _plugins/IncludeProjectTag.rb create mode 100644 _plugins/ProjectGenerator.rb create mode 100644 assets/dmp.png create mode 100644 assets/hssb.png create mode 100644 assets/leak.png delete mode 100755 css/main.css delete mode 100644 css/syntax.css create mode 100644 public/bootstrap/css/bootstrap-theme.css create mode 100644 public/bootstrap/css/bootstrap-theme.css.map create mode 100644 public/bootstrap/css/bootstrap-theme.min.css create mode 100644 public/bootstrap/css/bootstrap.css create mode 100644 public/bootstrap/css/bootstrap.css.map create mode 100644 public/bootstrap/css/bootstrap.min.css create mode 100644 public/bootstrap/fonts/glyphicons-halflings-regular.eot create mode 100644 public/bootstrap/fonts/glyphicons-halflings-regular.svg create mode 100644 public/bootstrap/fonts/glyphicons-halflings-regular.ttf create mode 100644 public/bootstrap/fonts/glyphicons-halflings-regular.woff create mode 100644 public/bootstrap/js/bootstrap.js create mode 100644 public/bootstrap/js/bootstrap.min.js create mode 100755 public/css/main.css create mode 100644 public/css/syntax.css diff --git a/CV/index.html b/CV/index.html index 6b1a29c..c1c291a 100644 --- a/CV/index.html +++ b/CV/index.html @@ -3,5 +3,5 @@ layout: default ---
- My Curriculum Vitea is available as pdf: here + My Curriculum Vitae is available as pdf: here
diff --git a/Projects/dmp.markdown b/Projects/dmp.markdown new file mode 100644 index 0000000..9e3232f --- /dev/null +++ b/Projects/dmp.markdown @@ -0,0 +1,11 @@ + +The projects was started by me because I didn't like the fact that most crossplatform media player solutions didn't have a way to import other peoples librairies. DAAP shares are not widely supported and often a real pain to setup. So I set out to build a media player focussed on a shared library between connected clients and shared playlists. + +As a couple of my sub-goals I was going to learn gui programming and master some techniques and libraries. For example; I use Boost.Asio for network communication and timers. This library takes some getting used to when you use the asynchronous calls. Another library I use and learned during this project is Boost.Fusion which can adapt c++ structs to become iterable and allows for some primitive reflection. I use this to generate the views for my model. + +Ofcourse GUI programming is one of the challanges aswell, I'm using the crossplatform Qt GUI library for this. Gui programming has some really interesting problems to solve that take a different approach that I normally would take. Gui programming always tend to become inheritence heavy instead of template heavy, and notifiying the gui of changes in a generic way is still something I haven't fully figured out yet. + +That being said the project is coming along nicely and I have a crude working program as we speak. It still needs lots of work before it is finished though. And being a single person project does not help either. + +Here is a (at the time of writing already) outdated demo of the software. +{% include video.html ogv='../assets/dmpdemo.ogv' webm='../assets/dmpdemo.webm' mp4='../assets/dmpdemo.mp4'%} diff --git a/Projects/hssb.markdown b/Projects/hssb.markdown new file mode 100644 index 0000000..e69de29 diff --git a/Projects/index.html b/Projects/index.html index 3227526..60a88e9 100644 --- a/Projects/index.html +++ b/Projects/index.html @@ -1,12 +1,14 @@ --- layout: default -projects: - - name: dmp - file: dmp.markdown --- -{% for project in page.projects %} - {% capture text %}{% include {{project.file}} %}{% endcapture %} - {{ text | markdownify }} +{% for project in site.projects %} +
+
+
{{project.name}}
+
+ + + +
{% endfor %} - diff --git a/Projects/leakindexer.markdown b/Projects/leakindexer.markdown new file mode 100644 index 0000000..4f65cb7 --- /dev/null +++ b/Projects/leakindexer.markdown @@ -0,0 +1,45 @@ + +This was my first project I ever did. +It was during my first year in computing science. +I had no prior knowledge of programming besides a introductory course in C++. +But when the opportunity arose during a security lecture I just had to grab it. +The security teacher was befriended with a research Journalist Huub Jasper. +He wanted an easy way to search trough the Wikileaks documents that just got leaked at the time. +So he asked our Security professor if he knew some students that might be interested. +The following lecture he asked the whole lecture room who was interested and 5 people raised their hands. +Erik Boss, [Sjors Gielen], Rik Harink, Nick Overdijk and Dennis Brentjes (me). + +The project was pretty time intensive and I had to learn a lot and be quick on my feet as I was the least knowledgeable member of the group at the time. +But in the long run this project was a fun and wonderful experience. +The cooperation with the Research Journalists was refreshing. +In a way they are power-users of search machines, but they don't necessarily know how to express their power-user needs. +This became obvious when we started testing the first versions of the software with small group of researchers. +Some of them compared this to another search engine called Lexus Nexus and highlighted missing features. +Some of these features were then implemented by us. + +The project culminated in the [VVOJ][] [Legebeke Legaat 2011][] where Huub Jaspers presented this product to a large group of Dutch of research Journalist. +We also hosted a small workshop on the site which unfortunately was planned alongside other interesting talks and therefore didn't attract that many people. +But the research tool did come up during a discussion panel with some prominent editors of the Dutch press. +The discussion was focused on how to disclose the information contained in the Wikileaks documents now this search engine exists. +The documents were un-redacted, and could pose serious threats to the people disclosed in those documents. +Huub Jasper explained that only other journalists that approached him, VPRO or Argos would get access. +This was decided by Huub Jasper in the beginning of our project. +Although other public search engines did exists it was a matter of principle to not disclose possibly dangerous information. +Also the added capabilities to search for dates and geo-coordinates made him decide to make it publicly available. + +But looking back at this project we could have done things differently. +All things considered we used standard search engine techniques like reversed indexes. +We were able to do full text search, search for dates and date ranges and even tried our hand on geo-coordinates. +The search engine tailored to the needs of these particular researchers. +The problem though is that we had no idea how to process these relatively large datasets. +We kept everything in memory which was barely possible. +So the system stopped scaling after the Iraqi and Afghanistan war-logs were added. + +Nowadays we should be able to solve these problems or even use and extend a standard search engine system like Xapian. +Something we didn't find when looking for standard solution when we begun with this project. + +The logo was created by Erik Boss + +[Sjors Gielen]: http://sjorsgielen.nl/ +[VVOJ]: http://www.vvoj.nl/ +[Legebeke Legaat 2011]: http://www.vvoj.nl/2011/10/24/programma-legebeke-legaat-2011/ diff --git a/_config.yml b/_config.yml index f6c441e..976cfc4 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,17 @@ name: brentj.es markdown: redcarpet -pygments: true +highlighter: pygments paginate: 5 paginate_path: "Blog/page:num" + +projects: + - name: Wikileaks leak indexer + file: leakindexer.markdown + thumbnail: /assets/leak.png + - name: DMP + file: dmp.markdown + thumbnail: /assets/dmp.png + # - name: HS Soundboard + # file: hssb.markdown + # thumbnail: /assets/hssb.png diff --git a/_includes/dmp.markdown b/_includes/dmp.markdown deleted file mode 100644 index 8eb08b6..0000000 --- a/_includes/dmp.markdown +++ /dev/null @@ -1,14 +0,0 @@ -DMP -=== - -The projects was started by me because I didn't like the fact that most crossplatform media player solutions didn't have a way to import other peoples librairies. DAAP shares are not widely supported and often a realy pain to setup. So I set out to build a media player focussed on a shared library between connected clients and shared playlists. - -As a couple of my sub-goals I was going to learn gui programming and master some techniques and libraries. For example; I use Boost.Asio for network communication and timers. This library takes some getting used to when you use the asynchronous calls. Another library I use and learned during this project is Boost.Fusion which can adapt c++ structs to become iterable and allows for some primitive reflection. I use this to generate the views for my model. - -Ofcourse GUI programming is one of the challanges aswell, I'm using the crossplatform Qt GUI library for this. Gui programming has some really interesting problems to solve that take a different approach that I normally would take. Gui programming always tend to become inheritence heavy instead of template heavy, and notifiying the gui of changes in a generic way is still something I haven't fully figured out yet. - -That being said the project is coming along nicely and I have a crude working program as we speak. It still needs lots of work before it is finished though. And being a single person project does not help either. - -Here is a (at the time of writing already) outdated demo of the software. -{% include video.html ogv='../assets/dmpdemo.ogv' webm='../assets/dmpdemo.webm' mp4='../assets/dmpdemo.mp4'%} - diff --git a/_includes/footer.html b/_includes/footer.html index f7a0c64..0c444d7 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -1,7 +1,8 @@ -