Compare commits

..

11 commits

Author SHA1 Message Date
lorin
1ca83a4891
Update main.yml 2021-04-05 00:02:09 +02:00
lorin
cfa8e9c2ba
stable nixos channel 2021-04-04 23:52:09 +02:00
Lorin Werthen
45555f4a20
Merge branch 'master' of github.com:ZeusWPI/zeus.ugent.be into nixos-travis-build 2021-04-04 23:12:23 +02:00
Lorin Werthen
20c1e79fd6
Merge branch 'nixos-travis-build' of github.com:ZeusWPI/zeus.ugent.be into nixos-travis-build 2021-04-04 22:26:19 +02:00
Lorin Werthen
c1bac787fa
add ulem.sty 2021-04-04 22:26:07 +02:00
lorin
b96e91db41
Merge branch 'master' into nixos-travis-build 2021-04-04 22:17:01 +02:00
Lorin Werthen
6a72f36c4b
simplify travis.yml 2021-04-04 22:02:05 +02:00
Lorin Werthen
1292603a18
test caching 2021-04-04 22:00:30 +02:00
Lorin Werthen
fab2bd1223
enable caching 2021-04-04 22:00:30 +02:00
Lorin Werthen
1a527bb2a4
.travis.yml updates 2021-04-04 22:00:30 +02:00
Lorin Werthen
f5a5a47fde
nix kind of deployment 2021-04-04 22:00:30 +02:00
115 changed files with 85 additions and 2459 deletions

View file

@ -25,8 +25,11 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job # Steps represent a sequence of tasks that will be executed as part of the job
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: cachix/install-nix-action@v13 - name: Checkout submodules
run: git submodule update --init --recursive
- name: Install Nix
uses: cachix/install-nix-action@v13
with: with:
nix_path: nixpkgs=channel:nixos-unstable nix_path: nixpkgs=channel:nixos-20.09
- run: "nix-shell --run 'nanoc --env=prod'" - name: Build site
- run: "nix-shell --run 'nanoc --env=prod check --deploy'" run: "nix-shell --run 'nanoc --env=prod'"

View file

@ -1,2 +0,0 @@
nodejs 14.15.4
ruby 3.0.0

View file

@ -1,28 +1,13 @@
language: ruby language: nix
bundler_args: --without development,nanoc
# Travis' own submodule update is broken somehow # Travis' own submodule update is broken somehow
git: git:
submodules: false submodules: false
# Cache the nix store (See https://nixos.wiki/wiki/Nix_on_Travis)
cache: cache:
apt: true directories:
bundler: true - $HOME/nix.store
# Cache nanoc directories
# NEVER MIND LOL
# directories:
# - output
# - tmp
addons:
apt:
packages:
- texlive-generic-recommended
- texlive-latex-base
- texlive-math-extra
- texlive-xetex
- lmodern
branches: branches:
only: only:
@ -32,26 +17,22 @@ notifications:
slack: slack:
secure: tej68wbYns4DYg488iz+4ncU3/CHJvG/5c1qntGcEjti6vZp24atuH32BzNMY+gqa5ftZtcRfqIiJ0I0tkbiFWEDzjSk89bgjG4sgwXq1gMqi/Fj4bqEpjU5m7QLa786q4UfYyTF+srca1fHPLVS5REdGjRr2wxX+bcFnTRxreGCIrlNdWhoZPPJyS37R4RR9k+l5ZWZnqWgUN6bD448O8EzMRVRWoUSxQcJ6+u4QLpinEvem4iXe+WcHOyFfsNmavxGGMMpkOSed/tzA1l+gNpl224qOJl3yAk2qrGi4N6SOnSkeJFfUO5RzX56KDC/tcCL1oJpamhDmzDvRrbDNnCjSriv+g+PkXEjiwBF/tkZwIe7nMKyc9QF698Zvdgb6Ffbq21obsRnkkddkxijthdbUKMAIREPQuU7pXRL4ykPkBeB5GkNjPlErOooxvUHvQEVElJ8NMD4ychQqW6relaYJ0W0uy0QMvrtS+cHkpprZAOZzWLa3AdEOvD50kiS2hDhJway5JHJg/LMl3I6XVVMx6fNGdNWBcezeCqkDZM+nuMJqgAtQ+Tz8bwrHLCJgS5u0lQq/MbrDkYdpmmzvA5LXxn2SpjfOAlgiFKnSIwKSuuuwzW/zCEGdPo1pfBba2VfYAN4y1l863j5ph+eMtlHf7JG8mzIWTo3k+Jx8lQ= secure: tej68wbYns4DYg488iz+4ncU3/CHJvG/5c1qntGcEjti6vZp24atuH32BzNMY+gqa5ftZtcRfqIiJ0I0tkbiFWEDzjSk89bgjG4sgwXq1gMqi/Fj4bqEpjU5m7QLa786q4UfYyTF+srca1fHPLVS5REdGjRr2wxX+bcFnTRxreGCIrlNdWhoZPPJyS37R4RR9k+l5ZWZnqWgUN6bD448O8EzMRVRWoUSxQcJ6+u4QLpinEvem4iXe+WcHOyFfsNmavxGGMMpkOSed/tzA1l+gNpl224qOJl3yAk2qrGi4N6SOnSkeJFfUO5RzX56KDC/tcCL1oJpamhDmzDvRrbDNnCjSriv+g+PkXEjiwBF/tkZwIe7nMKyc9QF698Zvdgb6Ffbq21obsRnkkddkxijthdbUKMAIREPQuU7pXRL4ykPkBeB5GkNjPlErOooxvUHvQEVElJ8NMD4ychQqW6relaYJ0W0uy0QMvrtS+cHkpprZAOZzWLa3AdEOvD50kiS2hDhJway5JHJg/LMl3I6XVVMx6fNGdNWBcezeCqkDZM+nuMJqgAtQ+Tz8bwrHLCJgS5u0lQq/MbrDkYdpmmzvA5LXxn2SpjfOAlgiFKnSIwKSuuuwzW/zCEGdPo1pfBba2VfYAN4y1l863j5ph+eMtlHf7JG8mzIWTo3k+Jx8lQ=
before_install: before_install:
- wget https://github.com/jgm/pandoc/releases/download/2.10.1/pandoc-2.10.1-1-amd64.deb - sudo mkdir -p /etc/nix
- sudo dpkg -i pandoc-2.10.1-1-amd64.deb - echo "substituters = https://cache.nixos.org/ file://$HOME/nix.store" | sudo tee -a /etc/nix/nix.conf > /dev/null
- echo 'require-sigs = false' | sudo tee -a /etc/nix/nix.conf > /dev/null
- openssl aes-256-cbc -K $encrypted_6059a4f451fd_key -iv $encrypted_6059a4f451fd_iv - openssl aes-256-cbc -K $encrypted_6059a4f451fd_key -iv $encrypted_6059a4f451fd_iv
-in id_rsa.enc -out deploy_key -d -in id_rsa.enc -out deploy_key -d
- mv deploy_key ~/.ssh/id_rsa - mv deploy_key ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa
- echo -e "[zeus.ugent.be]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC87/Q3H8f7ghmA+iCtKGaNyk0fx3Z36Xrn+eGv8a4pD7MXeu6Uwr0aN5HnkcbRWXFtMwnAU3ptoP90vH7qu99w=\n[herbert.ugent.be]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGLnJMh2DgqpVnHxOmeV6KffvzZGEVfniq0NFHRGZoL4f7Uc8xeG9gn3cc7lCL02F9LwWZNwR4gSqhGt/RK2S54=\n[git.zeus.gent]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGLnJMh2DgqpVnHxOmeV6KffvzZGEVfniq0NFHRGZoL4f7Uc8xeG9gn3cc7lCL02F9LwWZNwR4gSqhGt/RK2S54=\n" >> ~/.ssh/known_hosts - echo -e "[zeus.ugent.be]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC87/Q3H8f7ghmA+iCtKGaNyk0fx3Z36Xrn+eGv8a4pD7MXeu6Uwr0aN5HnkcbRWXFtMwnAU3ptoP90vH7qu99w=\n[herbert.ugent.be]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGLnJMh2DgqpVnHxOmeV6KffvzZGEVfniq0NFHRGZoL4f7Uc8xeG9gn3cc7lCL02F9LwWZNwR4gSqhGt/RK2S54=\n[git.zeus.gent]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGLnJMh2DgqpVnHxOmeV6KffvzZGEVfniq0NFHRGZoL4f7Uc8xeG9gn3cc7lCL02F9LwWZNwR4gSqhGt/RK2S54=\n" >> ~/.ssh/known_hosts
- git submodule update --init --recursive --remote - git submodule update --init --recursive --remote
# Repo for newer Node.js versions
- curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
# Repo for Yarn
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv D101F7899D41F3C3
- echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
- sudo apt-get update -qq
- sudo apt-get install -y -qq yarn nodejs
- nodejs -v
- yarn
script: script:
- bundle exec nanoc --env=prod - nix-shell --run 'nanoc --env=prod'
- bundle exec nanoc --env=prod check --deploy - nix-shell --run 'nanoc --env=prod check --deploy'
after_success: after_success:
- chmod +x ./deploy.sh - chmod +x ./deploy.sh
- ./deploy.sh - nix-shell --run './deploy.sh'
before_cache:
- mkdir -p $HOME/nix.store
- nix copy --to file://$HOME/nix.store -f default.nix buildInputs

2
Rules
View file

@ -25,8 +25,6 @@ preprocess do
ignore_old_content('blog', 'events', 'about/verslagen') if development? ignore_old_content('blog', 'events', 'about/verslagen') if development?
update_blog_attributes update_blog_attributes
convert_tags('Blog')
convert_tags('Events')
create_yearly_items('Blog') create_yearly_items('Blog')
create_yearly_items('Events') create_yearly_items('Events')
create_tagly_items('Blog') create_tagly_items('Blog')

View file

@ -1,735 +0,0 @@
// Code below modified from https://github.com/arhs/iban.js
/*
The MIT License (MIT)
Copyright (c) 2013-2017 ARHS Developments SA
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
function electronicFormat(iban) {
return iban.replace(/[^a-zA-Z0-9]/g, '').toUpperCase();
}
// Code below modified from https://github.com/derhuerst/sepa-payment-qr-code
/*
Copyright (c) 2018, Jannis R
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
const SERVICE_TAG = 'BCD'
const VERSION = '002'
const CHARACTER_SET = 1
const IDENTIFICATION_CODE = 'SCT'
const assertNonEmptyString = (val, name) => {
if ('string' !== typeof val || !val) {
throw new Error(name + ' must be a non-empty string.')
}
}
const defaults = {
currency: 'EUR'
}
var generateQrCode = data => {
if (!data) throw new Error('data must be an object.')
data = Object.assign(Object.create(null), defaults, data)
// disabled, we will check this ourselves
// if (isValidIBAN(data.payeeIBAN)) throw new Error('data.payeeIBAN must be a valid IBAN.')
assertNonEmptyString(data.name, 'data.name')
if ('bic' in data) assertNonEmptyString(data.bic, 'data.bic')
if ('number' !== typeof data.amount) throw new Error('data.amount must be a number.')
if (data.amount < 0.01 || data.amount > 999999999.99) {
throw new Error('data.amount must be >=0.01 and <=999999999.99.')
}
if ('purposeCode' in data) {
assertNonEmptyString(data.purposeCode, 'data.purposeCode')
}
if ('structuredReference' in data) {
assertNonEmptyString(data.structuredReference, 'data.structuredReference')
}
if ('unstructuredReference' in data) {
assertNonEmptyString(data.unstructuredReference, 'data.unstructuredReference')
// todo: validate <=140 chars
}
if (('structuredReference' in data) && ('unstructuredReference' in data)) {
throw new Error('Use either data.structuredReference or data.unstructuredReference.')
}
if ('information' in data) {
assertNonEmptyString(data.information, 'data.information')
}
return [
SERVICE_TAG,
VERSION,
CHARACTER_SET,
IDENTIFICATION_CODE,
data.bic, // todo: validate 8/11 chars
data.name, // todo: validate <=70 chars
electronicFormat(data.iban),
data.currency + data.amount.toFixed(2),
data.purposeCode || '',
data.structuredReference || '',
data.unstructuredReference || '',
data.information || ''
].join('\n')
}
// Code below copied from https://github.com/davidshimjs/qrcodejs
/*
The MIT License (MIT)
---------------------
Copyright (c) 2012 davidshimjs
Permission is hereby granted, free of charge,
to any person obtaining a copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/**
* @fileoverview
* - Using the 'QRCode for Javascript library'
* - Fixed dataset of 'QRCode for Javascript library' for support full-spec.
* - this library has no dependencies.
*
* @author davidshimjs
* @see <a href="http://www.d-project.com/" target="_blank">http://www.d-project.com/</a>
* @see <a href="http://jeromeetienne.github.com/jquery-qrcode/" target="_blank">http://jeromeetienne.github.com/jquery-qrcode/</a>
*/
var QRCode;
(function () {
//---------------------------------------------------------------------
// QRCode for JavaScript
//
// Copyright (c) 2009 Kazuhiko Arase
//
// URL: http://www.d-project.com/
//
// Licensed under the MIT license:
// http://www.opensource.org/licenses/mit-license.php
//
// The word "QR Code" is registered trademark of
// DENSO WAVE INCORPORATED
// http://www.denso-wave.com/qrcode/faqpatent-e.html
//
//---------------------------------------------------------------------
function QR8bitByte(data) {
this.mode = QRMode.MODE_8BIT_BYTE;
this.data = data;
this.parsedData = [];
// Added to support UTF-8 Characters
for (var i = 0, l = this.data.length; i < l; i++) {
var byteArray = [];
var code = this.data.charCodeAt(i);
if (code > 0x10000) {
byteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18);
byteArray[1] = 0x80 | ((code & 0x3F000) >>> 12);
byteArray[2] = 0x80 | ((code & 0xFC0) >>> 6);
byteArray[3] = 0x80 | (code & 0x3F);
} else if (code > 0x800) {
byteArray[0] = 0xE0 | ((code & 0xF000) >>> 12);
byteArray[1] = 0x80 | ((code & 0xFC0) >>> 6);
byteArray[2] = 0x80 | (code & 0x3F);
} else if (code > 0x80) {
byteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6);
byteArray[1] = 0x80 | (code & 0x3F);
} else {
byteArray[0] = code;
}
this.parsedData.push(byteArray);
}
this.parsedData = Array.prototype.concat.apply([], this.parsedData);
if (this.parsedData.length != this.data.length) {
this.parsedData.unshift(191);
this.parsedData.unshift(187);
this.parsedData.unshift(239);
}
}
QR8bitByte.prototype = {
getLength: function (buffer) {
return this.parsedData.length;
},
write: function (buffer) {
for (var i = 0, l = this.parsedData.length; i < l; i++) {
buffer.put(this.parsedData[i], 8);
}
}
};
function QRCodeModel(typeNumber, errorCorrectLevel) {
this.typeNumber = typeNumber;
this.errorCorrectLevel = errorCorrectLevel;
this.modules = null;
this.moduleCount = 0;
this.dataCache = null;
this.dataList = [];
}
QRCodeModel.prototype={addData:function(data){var newData=new QR8bitByte(data);this.dataList.push(newData);this.dataCache=null;},isDark:function(row,col){if(row<0||this.moduleCount<=row||col<0||this.moduleCount<=col){throw new Error(row+","+col);}
return this.modules[row][col];},getModuleCount:function(){return this.moduleCount;},make:function(){this.makeImpl(false,this.getBestMaskPattern());},makeImpl:function(test,maskPattern){this.moduleCount=this.typeNumber*4+17;this.modules=new Array(this.moduleCount);for(var row=0;row<this.moduleCount;row++){this.modules[row]=new Array(this.moduleCount);for(var col=0;col<this.moduleCount;col++){this.modules[row][col]=null;}}
this.setupPositionProbePattern(0,0);this.setupPositionProbePattern(this.moduleCount-7,0);this.setupPositionProbePattern(0,this.moduleCount-7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(test,maskPattern);if(this.typeNumber>=7){this.setupTypeNumber(test);}
if(this.dataCache==null){this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);}
this.mapData(this.dataCache,maskPattern);},setupPositionProbePattern:function(row,col){for(var r=-1;r<=7;r++){if(row+r<=-1||this.moduleCount<=row+r)continue;for(var c=-1;c<=7;c++){if(col+c<=-1||this.moduleCount<=col+c)continue;if((0<=r&&r<=6&&(c==0||c==6))||(0<=c&&c<=6&&(r==0||r==6))||(2<=r&&r<=4&&2<=c&&c<=4)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}},getBestMaskPattern:function(){var minLostPoint=0;var pattern=0;for(var i=0;i<8;i++){this.makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(this);if(i==0||minLostPoint>lostPoint){minLostPoint=lostPoint;pattern=i;}}
return pattern;},createMovieClip:function(target_mc,instance_name,depth){var qr_mc=target_mc.createEmptyMovieClip(instance_name,depth);var cs=1;this.make();for(var row=0;row<this.modules.length;row++){var y=row*cs;for(var col=0;col<this.modules[row].length;col++){var x=col*cs;var dark=this.modules[row][col];if(dark){qr_mc.beginFill(0,100);qr_mc.moveTo(x,y);qr_mc.lineTo(x+cs,y);qr_mc.lineTo(x+cs,y+cs);qr_mc.lineTo(x,y+cs);qr_mc.endFill();}}}
return qr_mc;},setupTimingPattern:function(){for(var r=8;r<this.moduleCount-8;r++){if(this.modules[r][6]!=null){continue;}
this.modules[r][6]=(r%2==0);}
for(var c=8;c<this.moduleCount-8;c++){if(this.modules[6][c]!=null){continue;}
this.modules[6][c]=(c%2==0);}},setupPositionAdjustPattern:function(){var pos=QRUtil.getPatternPosition(this.typeNumber);for(var i=0;i<pos.length;i++){for(var j=0;j<pos.length;j++){var row=pos[i];var col=pos[j];if(this.modules[row][col]!=null){continue;}
for(var r=-2;r<=2;r++){for(var c=-2;c<=2;c++){if(r==-2||r==2||c==-2||c==2||(r==0&&c==0)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}}}},setupTypeNumber:function(test){var bits=QRUtil.getBCHTypeNumber(this.typeNumber);for(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=mod;}
for(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=mod;}},setupTypeInfo:function(test,maskPattern){var data=(this.errorCorrectLevel<<3)|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<6){this.modules[i][8]=mod;}else if(i<8){this.modules[i+1][8]=mod;}else{this.modules[this.moduleCount-15+i][8]=mod;}}
for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<8){this.modules[8][this.moduleCount-i-1]=mod;}else if(i<9){this.modules[8][15-i-1+1]=mod;}else{this.modules[8][15-i-1]=mod;}}
this.modules[this.moduleCount-8][8]=(!test);},mapData:function(data,maskPattern){var inc=-1;var row=this.moduleCount-1;var bitIndex=7;var byteIndex=0;for(var col=this.moduleCount-1;col>0;col-=2){if(col==6)col--;while(true){for(var c=0;c<2;c++){if(this.modules[row][col-c]==null){var dark=false;if(byteIndex<data.length){dark=(((data[byteIndex]>>>bitIndex)&1)==1);}
var mask=QRUtil.getMask(maskPattern,row,col-c);if(mask){dark=!dark;}
this.modules[row][col-c]=dark;bitIndex--;if(bitIndex==-1){byteIndex++;bitIndex=7;}}}
row+=inc;if(row<0||this.moduleCount<=row){row-=inc;inc=-inc;break;}}}}};QRCodeModel.PAD0=0xEC;QRCodeModel.PAD1=0x11;QRCodeModel.createData=function(typeNumber,errorCorrectLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectLevel);var buffer=new QRBitBuffer();for(var i=0;i<dataList.length;i++){var data=dataList[i];buffer.put(data.mode,4);buffer.put(data.getLength(),QRUtil.getLengthInBits(data.mode,typeNumber));data.write(buffer);}
var totalDataCount=0;for(var i=0;i<rsBlocks.length;i++){totalDataCount+=rsBlocks[i].dataCount;}
if(buffer.getLengthInBits()>totalDataCount*8){throw new Error("code length overflow. ("
+buffer.getLengthInBits()
+">"
+totalDataCount*8
+")");}
if(buffer.getLengthInBits()+4<=totalDataCount*8){buffer.put(0,4);}
while(buffer.getLengthInBits()%8!=0){buffer.putBit(false);}
while(true){if(buffer.getLengthInBits()>=totalDataCount*8){break;}
buffer.put(QRCodeModel.PAD0,8);if(buffer.getLengthInBits()>=totalDataCount*8){break;}
buffer.put(QRCodeModel.PAD1,8);}
return QRCodeModel.createBytes(buffer,rsBlocks);};QRCodeModel.createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r<rsBlocks.length;r++){var dcCount=rsBlocks[r].dataCount;var ecCount=rsBlocks[r].totalCount-dcCount;maxDcCount=Math.max(maxDcCount,dcCount);maxEcCount=Math.max(maxEcCount,ecCount);dcdata[r]=new Array(dcCount);for(var i=0;i<dcdata[r].length;i++){dcdata[r][i]=0xff&buffer.buffer[i+offset];}
offset+=dcCount;var rsPoly=QRUtil.getErrorCorrectPolynomial(ecCount);var rawPoly=new QRPolynomial(dcdata[r],rsPoly.getLength()-1);var modPoly=rawPoly.mod(rsPoly);ecdata[r]=new Array(rsPoly.getLength()-1);for(var i=0;i<ecdata[r].length;i++){var modIndex=i+modPoly.getLength()-ecdata[r].length;ecdata[r][i]=(modIndex>=0)?modPoly.get(modIndex):0;}}
var totalCodeCount=0;for(var i=0;i<rsBlocks.length;i++){totalCodeCount+=rsBlocks[i].totalCount;}
var data=new Array(totalCodeCount);var index=0;for(var i=0;i<maxDcCount;i++){for(var r=0;r<rsBlocks.length;r++){if(i<dcdata[r].length){data[index++]=dcdata[r][i];}}}
for(var i=0;i<maxEcCount;i++){for(var r=0;r<rsBlocks.length;r++){if(i<ecdata[r].length){data[index++]=ecdata[r][i];}}}
return data;};var QRMode={MODE_NUMBER:1<<0,MODE_ALPHA_NUM:1<<1,MODE_8BIT_BYTE:1<<2,MODE_KANJI:1<<3};var QRErrorCorrectLevel={L:1,M:0,Q:3,H:2};var QRMaskPattern={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var QRUtil={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:(1<<10)|(1<<8)|(1<<5)|(1<<4)|(1<<2)|(1<<1)|(1<<0),G18:(1<<12)|(1<<11)|(1<<10)|(1<<9)|(1<<8)|(1<<5)|(1<<2)|(1<<0),G15_MASK:(1<<14)|(1<<12)|(1<<10)|(1<<4)|(1<<1),getBCHTypeInfo:function(data){var d=data<<10;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)>=0){d^=(QRUtil.G15<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)));}
return((data<<10)|d)^QRUtil.G15_MASK;},getBCHTypeNumber:function(data){var d=data<<12;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)>=0){d^=(QRUtil.G18<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)));}
return(data<<12)|d;},getBCHDigit:function(data){var digit=0;while(data!=0){digit++;data>>>=1;}
return digit;},getPatternPosition:function(typeNumber){return QRUtil.PATTERN_POSITION_TABLE[typeNumber-1];},getMask:function(maskPattern,i,j){switch(maskPattern){case QRMaskPattern.PATTERN000:return(i+j)%2==0;case QRMaskPattern.PATTERN001:return i%2==0;case QRMaskPattern.PATTERN010:return j%3==0;case QRMaskPattern.PATTERN011:return(i+j)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case QRMaskPattern.PATTERN101:return(i*j)%2+(i*j)%3==0;case QRMaskPattern.PATTERN110:return((i*j)%2+(i*j)%3)%2==0;case QRMaskPattern.PATTERN111:return((i*j)%3+(i+j)%2)%2==0;default:throw new Error("bad maskPattern:"+maskPattern);}},getErrorCorrectPolynomial:function(errorCorrectLength){var a=new QRPolynomial([1],0);for(var i=0;i<errorCorrectLength;i++){a=a.multiply(new QRPolynomial([1,QRMath.gexp(i)],0));}
return a;},getLengthInBits:function(mode,type){if(1<=type&&type<10){switch(mode){case QRMode.MODE_NUMBER:return 10;case QRMode.MODE_ALPHA_NUM:return 9;case QRMode.MODE_8BIT_BYTE:return 8;case QRMode.MODE_KANJI:return 8;default:throw new Error("mode:"+mode);}}else if(type<27){switch(mode){case QRMode.MODE_NUMBER:return 12;case QRMode.MODE_ALPHA_NUM:return 11;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 10;default:throw new Error("mode:"+mode);}}else if(type<41){switch(mode){case QRMode.MODE_NUMBER:return 14;case QRMode.MODE_ALPHA_NUM:return 13;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 12;default:throw new Error("mode:"+mode);}}else{throw new Error("type:"+type);}},getLostPoint:function(qrCode){var moduleCount=qrCode.getModuleCount();var lostPoint=0;for(var row=0;row<moduleCount;row++){for(var col=0;col<moduleCount;col++){var sameCount=0;var dark=qrCode.isDark(row,col);for(var r=-1;r<=1;r++){if(row+r<0||moduleCount<=row+r){continue;}
for(var c=-1;c<=1;c++){if(col+c<0||moduleCount<=col+c){continue;}
if(r==0&&c==0){continue;}
if(dark==qrCode.isDark(row+r,col+c)){sameCount++;}}}
if(sameCount>5){lostPoint+=(3+sameCount-5);}}}
for(var row=0;row<moduleCount-1;row++){for(var col=0;col<moduleCount-1;col++){var count=0;if(qrCode.isDark(row,col))count++;if(qrCode.isDark(row+1,col))count++;if(qrCode.isDark(row,col+1))count++;if(qrCode.isDark(row+1,col+1))count++;if(count==0||count==4){lostPoint+=3;}}}
for(var row=0;row<moduleCount;row++){for(var col=0;col<moduleCount-6;col++){if(qrCode.isDark(row,col)&&!qrCode.isDark(row,col+1)&&qrCode.isDark(row,col+2)&&qrCode.isDark(row,col+3)&&qrCode.isDark(row,col+4)&&!qrCode.isDark(row,col+5)&&qrCode.isDark(row,col+6)){lostPoint+=40;}}}
for(var col=0;col<moduleCount;col++){for(var row=0;row<moduleCount-6;row++){if(qrCode.isDark(row,col)&&!qrCode.isDark(row+1,col)&&qrCode.isDark(row+2,col)&&qrCode.isDark(row+3,col)&&qrCode.isDark(row+4,col)&&!qrCode.isDark(row+5,col)&&qrCode.isDark(row+6,col)){lostPoint+=40;}}}
var darkCount=0;for(var col=0;col<moduleCount;col++){for(var row=0;row<moduleCount;row++){if(qrCode.isDark(row,col)){darkCount++;}}}
var ratio=Math.abs(100*darkCount/moduleCount/moduleCount-50)/5;lostPoint+=ratio*10;return lostPoint;}};var QRMath={glog:function(n){if(n<1){throw new Error("glog("+n+")");}
return QRMath.LOG_TABLE[n];},gexp:function(n){while(n<0){n+=255;}
while(n>=256){n-=255;}
return QRMath.EXP_TABLE[n];},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(var i=0;i<8;i++){QRMath.EXP_TABLE[i]=1<<i;}
for(var i=8;i<256;i++){QRMath.EXP_TABLE[i]=QRMath.EXP_TABLE[i-4]^QRMath.EXP_TABLE[i-5]^QRMath.EXP_TABLE[i-6]^QRMath.EXP_TABLE[i-8];}
for(var i=0;i<255;i++){QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]]=i;}
function QRPolynomial(num,shift){if(num.length==undefined){throw new Error(num.length+"/"+shift);}
var offset=0;while(offset<num.length&&num[offset]==0){offset++;}
this.num=new Array(num.length-offset+shift);for(var i=0;i<num.length-offset;i++){this.num[i]=num[i+offset];}}
QRPolynomial.prototype={get:function(index){return this.num[index];},getLength:function(){return this.num.length;},multiply:function(e){var num=new Array(this.getLength()+e.getLength()-1);for(var i=0;i<this.getLength();i++){for(var j=0;j<e.getLength();j++){num[i+j]^=QRMath.gexp(QRMath.glog(this.get(i))+QRMath.glog(e.get(j)));}}
return new QRPolynomial(num,0);},mod:function(e){if(this.getLength()-e.getLength()<0){return this;}
var ratio=QRMath.glog(this.get(0))-QRMath.glog(e.get(0));var num=new Array(this.getLength());for(var i=0;i<this.getLength();i++){num[i]=this.get(i);}
for(var i=0;i<e.getLength();i++){num[i]^=QRMath.gexp(QRMath.glog(e.get(i))+ratio);}
return new QRPolynomial(num,0).mod(e);}};function QRRSBlock(totalCount,dataCount){this.totalCount=totalCount;this.dataCount=dataCount;}
QRRSBlock.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];QRRSBlock.getRSBlocks=function(typeNumber,errorCorrectLevel){var rsBlock=QRRSBlock.getRsBlockTable(typeNumber,errorCorrectLevel);if(rsBlock==undefined){throw new Error("bad rs block @ typeNumber:"+typeNumber+"/errorCorrectLevel:"+errorCorrectLevel);}
var length=rsBlock.length/3;var list=[];for(var i=0;i<length;i++){var count=rsBlock[i*3+0];var totalCount=rsBlock[i*3+1];var dataCount=rsBlock[i*3+2];for(var j=0;j<count;j++){list.push(new QRRSBlock(totalCount,dataCount));}}
return list;};QRRSBlock.getRsBlockTable=function(typeNumber,errorCorrectLevel){switch(errorCorrectLevel){case QRErrorCorrectLevel.L:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+0];case QRErrorCorrectLevel.M:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+1];case QRErrorCorrectLevel.Q:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+2];case QRErrorCorrectLevel.H:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+3];default:return undefined;}};function QRBitBuffer(){this.buffer=[];this.length=0;}
QRBitBuffer.prototype={get:function(index){var bufIndex=Math.floor(index/8);return((this.buffer[bufIndex]>>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i<length;i++){this.putBit(((num>>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);}
if(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));}
this.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];
function _isSupportCanvas() {
return typeof CanvasRenderingContext2D != "undefined";
}
// android 2.x doesn't support Data-URI spec
function _getAndroid() {
var android = false;
var sAgent = navigator.userAgent;
if (/android/i.test(sAgent)) { // android
android = true;
var aMat = sAgent.toString().match(/android ([0-9]\.[0-9])/i);
if (aMat && aMat[1]) {
android = parseFloat(aMat[1]);
}
}
return android;
}
var svgDrawer = (function() {
var Drawing = function (el, htOption) {
this._el = el;
this._htOption = htOption;
};
Drawing.prototype.draw = function (oQRCode) {
var _htOption = this._htOption;
var _el = this._el;
var nCount = oQRCode.getModuleCount();
var nWidth = Math.floor(_htOption.width / nCount);
var nHeight = Math.floor(_htOption.height / nCount);
this.clear();
function makeSVG(tag, attrs) {
var el = document.createElementNS('http://www.w3.org/2000/svg', tag);
for (var k in attrs)
if (attrs.hasOwnProperty(k)) el.setAttribute(k, attrs[k]);
return el;
}
var svg = makeSVG("svg" , {'viewBox': '0 0 ' + String(nCount) + " " + String(nCount), 'width': '100%', 'height': '100%', 'fill': _htOption.colorLight});
svg.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink");
_el.appendChild(svg);
svg.appendChild(makeSVG("rect", {"fill": _htOption.colorLight, "width": "100%", "height": "100%"}));
svg.appendChild(makeSVG("rect", {"fill": _htOption.colorDark, "width": "1", "height": "1", "id": "template"}));
for (var row = 0; row < nCount; row++) {
for (var col = 0; col < nCount; col++) {
if (oQRCode.isDark(row, col)) {
var child = makeSVG("use", {"x": String(col), "y": String(row)});
child.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#template")
svg.appendChild(child);
}
}
}
};
Drawing.prototype.clear = function () {
while (this._el.hasChildNodes())
this._el.removeChild(this._el.lastChild);
};
return Drawing;
})();
var useSVG = document.documentElement.tagName.toLowerCase() === "svg";
// Drawing in DOM by using Table tag
var Drawing = useSVG ? svgDrawer : !_isSupportCanvas() ? (function () {
var Drawing = function (el, htOption) {
this._el = el;
this._htOption = htOption;
};
/**
* Draw the QRCode
*
* @param {QRCode} oQRCode
*/
Drawing.prototype.draw = function (oQRCode) {
var _htOption = this._htOption;
var _el = this._el;
var nCount = oQRCode.getModuleCount();
var nWidth = Math.floor(_htOption.width / nCount);
var nHeight = Math.floor(_htOption.height / nCount);
var aHTML = ['<table style="border:0;border-collapse:collapse;">'];
for (var row = 0; row < nCount; row++) {
aHTML.push('<tr>');
for (var col = 0; col < nCount; col++) {
aHTML.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:' + nWidth + 'px;height:' + nHeight + 'px;background-color:' + (oQRCode.isDark(row, col) ? _htOption.colorDark : _htOption.colorLight) + ';"></td>');
}
aHTML.push('</tr>');
}
aHTML.push('</table>');
_el.innerHTML = aHTML.join('');
// Fix the margin values as real size.
var elTable = _el.childNodes[0];
var nLeftMarginTable = (_htOption.width - elTable.offsetWidth) / 2;
var nTopMarginTable = (_htOption.height - elTable.offsetHeight) / 2;
if (nLeftMarginTable > 0 && nTopMarginTable > 0) {
elTable.style.margin = nTopMarginTable + "px " + nLeftMarginTable + "px";
}
};
/**
* Clear the QRCode
*/
Drawing.prototype.clear = function () {
this._el.innerHTML = '';
};
return Drawing;
})() : (function () { // Drawing in Canvas
function _onMakeImage() {
this._elImage.src = this._elCanvas.toDataURL("image/png");
this._elImage.style.display = "block";
this._elCanvas.style.display = "none";
}
// Android 2.1 bug workaround
// http://code.google.com/p/android/issues/detail?id=5141
if (this._android && this._android <= 2.1) {
var factor = 1 / window.devicePixelRatio;
var drawImage = CanvasRenderingContext2D.prototype.drawImage;
CanvasRenderingContext2D.prototype.drawImage = function (image, sx, sy, sw, sh, dx, dy, dw, dh) {
if (("nodeName" in image) && /img/i.test(image.nodeName)) {
for (var i = arguments.length - 1; i >= 1; i--) {
arguments[i] = arguments[i] * factor;
}
} else if (typeof dw == "undefined") {
arguments[1] *= factor;
arguments[2] *= factor;
arguments[3] *= factor;
arguments[4] *= factor;
}
drawImage.apply(this, arguments);
};
}
/**
* Check whether the user's browser supports Data URI or not
*
* @private
* @param {Function} fSuccess Occurs if it supports Data URI
* @param {Function} fFail Occurs if it doesn't support Data URI
*/
function _safeSetDataURI(fSuccess, fFail) {
var self = this;
self._fFail = fFail;
self._fSuccess = fSuccess;
// Check it just once
if (self._bSupportDataURI === null) {
var el = document.createElement("img");
var fOnError = function() {
self._bSupportDataURI = false;
if (self._fFail) {
self._fFail.call(self);
}
};
var fOnSuccess = function() {
self._bSupportDataURI = true;
if (self._fSuccess) {
self._fSuccess.call(self);
}
};
el.onabort = fOnError;
el.onerror = fOnError;
el.onload = fOnSuccess;
el.src = "data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="; // the Image contains 1px data.
return;
} else if (self._bSupportDataURI === true && self._fSuccess) {
self._fSuccess.call(self);
} else if (self._bSupportDataURI === false && self._fFail) {
self._fFail.call(self);
}
};
/**
* Drawing QRCode by using canvas
*
* @constructor
* @param {HTMLElement} el
* @param {Object} htOption QRCode Options
*/
var Drawing = function (el, htOption) {
this._bIsPainted = false;
this._android = _getAndroid();
this._htOption = htOption;
this._elCanvas = document.createElement("canvas");
this._elCanvas.width = htOption.width;
this._elCanvas.height = htOption.height;
el.appendChild(this._elCanvas);
this._el = el;
this._oContext = this._elCanvas.getContext("2d");
this._bIsPainted = false;
this._elImage = document.createElement("img");
this._elImage.alt = "Scan me!";
this._elImage.style.display = "none";
this._el.appendChild(this._elImage);
this._bSupportDataURI = null;
};
/**
* Draw the QRCode
*
* @param {QRCode} oQRCode
*/
Drawing.prototype.draw = function (oQRCode) {
var _elImage = this._elImage;
var _oContext = this._oContext;
var _htOption = this._htOption;
var nCount = oQRCode.getModuleCount();
var nWidth = _htOption.width / nCount;
var nHeight = _htOption.height / nCount;
var nRoundedWidth = Math.round(nWidth);
var nRoundedHeight = Math.round(nHeight);
_elImage.style.display = "none";
this.clear();
for (var row = 0; row < nCount; row++) {
for (var col = 0; col < nCount; col++) {
var bIsDark = oQRCode.isDark(row, col);
var nLeft = col * nWidth;
var nTop = row * nHeight;
_oContext.strokeStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;
_oContext.lineWidth = 1;
_oContext.fillStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;
_oContext.fillRect(nLeft, nTop, nWidth, nHeight);
// 안티 앨리어싱 방지 처리
_oContext.strokeRect(
Math.floor(nLeft) + 0.5,
Math.floor(nTop) + 0.5,
nRoundedWidth,
nRoundedHeight
);
_oContext.strokeRect(
Math.ceil(nLeft) - 0.5,
Math.ceil(nTop) - 0.5,
nRoundedWidth,
nRoundedHeight
);
}
}
this._bIsPainted = true;
};
/**
* Make the image from Canvas if the browser supports Data URI.
*/
Drawing.prototype.makeImage = function () {
if (this._bIsPainted) {
_safeSetDataURI.call(this, _onMakeImage);
}
};
/**
* Return whether the QRCode is painted or not
*
* @return {Boolean}
*/
Drawing.prototype.isPainted = function () {
return this._bIsPainted;
};
/**
* Clear the QRCode
*/
Drawing.prototype.clear = function () {
this._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height);
this._bIsPainted = false;
};
/**
* @private
* @param {Number} nNumber
*/
Drawing.prototype.round = function (nNumber) {
if (!nNumber) {
return nNumber;
}
return Math.floor(nNumber * 1000) / 1000;
};
return Drawing;
})();
/**
* Get the type by string length
*
* @private
* @param {String} sText
* @param {Number} nCorrectLevel
* @return {Number} type
*/
function _getTypeNumber(sText, nCorrectLevel) {
var nType = 1;
var length = _getUTF8Length(sText);
for (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {
var nLimit = 0;
switch (nCorrectLevel) {
case QRErrorCorrectLevel.L :
nLimit = QRCodeLimitLength[i][0];
break;
case QRErrorCorrectLevel.M :
nLimit = QRCodeLimitLength[i][1];
break;
case QRErrorCorrectLevel.Q :
nLimit = QRCodeLimitLength[i][2];
break;
case QRErrorCorrectLevel.H :
nLimit = QRCodeLimitLength[i][3];
break;
}
if (length <= nLimit) {
break;
} else {
nType++;
}
}
if (nType > QRCodeLimitLength.length) {
throw new Error("Too long data");
}
return nType;
}
function _getUTF8Length(sText) {
var replacedText = encodeURI(sText).toString().replace(/\%[0-9a-fA-F]{2}/g, 'a');
return replacedText.length + (replacedText.length != sText ? 3 : 0);
}
/**
* @class QRCode
* @constructor
* @example
* new QRCode(document.getElementById("test"), "http://jindo.dev.naver.com/collie");
*
* @example
* var oQRCode = new QRCode("test", {
* text : "http://naver.com",
* width : 128,
* height : 128
* });
*
* oQRCode.clear(); // Clear the QRCode.
* oQRCode.makeCode("http://map.naver.com"); // Re-create the QRCode.
*
* @param {HTMLElement|String} el target element or 'id' attribute of element.
* @param {Object|String} vOption
* @param {String} vOption.text QRCode link data
* @param {Number} [vOption.width=256]
* @param {Number} [vOption.height=256]
* @param {String} [vOption.colorDark="#000000"]
* @param {String} [vOption.colorLight="#ffffff"]
* @param {QRCode.CorrectLevel} [vOption.correctLevel=QRCode.CorrectLevel.H] [L|M|Q|H]
*/
QRCode = function (el, vOption) {
this._htOption = {
width : 256,
height : 256,
typeNumber : 4,
colorDark : "#000000",
colorLight : "#ffffff",
correctLevel : QRErrorCorrectLevel.H
};
if (typeof vOption === 'string') {
vOption = {
text : vOption
};
}
// Overwrites options
if (vOption) {
for (var i in vOption) {
this._htOption[i] = vOption[i];
}
}
if (typeof el == "string") {
el = document.getElementById(el);
}
if (this._htOption.useSVG) {
Drawing = svgDrawer;
}
this._android = _getAndroid();
this._el = el;
this._oQRCode = null;
this._oDrawing = new Drawing(this._el, this._htOption);
if (this._htOption.text) {
this.makeCode(this._htOption.text);
}
};
/**
* Make the QRCode
*
* @param {String} sText link data
*/
QRCode.prototype.makeCode = function (sText) {
this._oQRCode = new QRCodeModel(_getTypeNumber(sText, this._htOption.correctLevel), this._htOption.correctLevel);
this._oQRCode.addData(sText);
this._oQRCode.make();
this._el.title = sText;
this._oDrawing.draw(this._oQRCode);
this.makeImage();
};
/**
* Make the Image from Canvas element
* - It occurs automatically
* - Android below 3 doesn't support Data-URI spec.
*
* @private
*/
QRCode.prototype.makeImage = function () {
if (typeof this._oDrawing.makeImage == "function" && (!this._android || this._android >= 3)) {
this._oDrawing.makeImage();
}
};
/**
* Clear the QRCode
*/
QRCode.prototype.clear = function () {
this._oDrawing.clear();
};
/**
* @name QRCode.CorrectLevel
*/
QRCode.CorrectLevel = QRErrorCorrectLevel;
})();

View file

@ -1,78 +0,0 @@
function regenerateQR() {
let username_field = document.getElementById('tabtopup-username');
let amount_field = document.getElementById('tabtopup-amount');
let qr_container = document.getElementById("tabtopup-qrcode");
let amountUnparsed = amount_field.value;
let username = username_field.value;
username_field.classList.remove('is-danger');
amount_field.classList.remove('is-danger');
qr_container.textContent = '';
let message_container = document.getElementById('tabtopup-message');
if (username == '') {
message_container.textContent = 'Please fill in username.';
username_field.classList.add('is-danger');
return;
}
else if (!(/^[a-z0-9A-Z\-_.]+$/.test(username))) {
message_container.textContent = 'Are you sure that ' + username + ' is your username? Most usernames only contain letters and numbers. If you\'re not sure what your username is, feel free to contact the board.';
username_field.classList.add('is-danger');
return;
} else if (amountUnparsed == '') {
message_container.textContent = 'Please fill in amount.';
amount_field.classList.add('is-danger');
return;
} else {
message_container.textContent = '';
}
let amount = parseFloat(document.getElementById('tabtopup-amount').value.replace(',', '.'));
message_container.textContent = username + ' will top up for ' + amount.toFixed(2) + ' euro. It might take a couple of days before this arrives on your Tab.';
let message = 'TAB ' + username;
if (message.length >= 80) {
message_container.textContent = 'Username too long.';
username_field.classList.add('is-danger');
return;
}
if (amount <= 0) {
message_container.textContent = 'Amount should be at least 0.01 euro (but preferably more of course).';
amount_field.classList.add('is-danger');
return;
}
let qr_data = generateQrCode({
name: 'Zeus WPI',
iban: document.getElementById('banknumber').textContent,
amount: amount,
unstructuredReference: message,
information: 'Zeus WPI Tab',
});
new QRCode(qr_container, {
text: qr_data,
width: 256,
height: 256,
correctLevel: QRCode.CorrectLevel.M
});
return;
}
window.onload = function() {
document.getElementById('tab-qr-button').addEventListener('click', function(event) {
event.preventDefault();
let modal = document.querySelector('.modal');
let html = document.querySelector('html');
modal.classList.add('is-active');
html.classList.add('is-clipped');
modal.querySelector('.modal-background').addEventListener('click', function(e) {
e.preventDefault();
modal.classList.remove('is-active');
html.classList.remove('is-clipped');
});
});
document.getElementById('tabtopup-username').addEventListener('input', regenerateQR);
document.getElementById('tabtopup-amount').addEventListener('input', regenerateQR);
regenerateQR();
}

View file

@ -1,9 +0,0 @@
---
title: Java-bot project.
created_at: 29-03-2001
---
Alle leden en geinteresseerden mogen meewerken aan het in Java programmeren van een irc-bot. Mail junk@zeus.rug.ac.be".
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,9 +0,0 @@
---
title: Linuxlessen online.
created_at: 03-12-2000
---
De lessen kunnen nu ook [gedownload](http://web.archive.org/web/20010303211508/http://www.zeus.rug.ac.be/linuxles.shtml#download) worden.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,8 +0,0 @@
---
title: Data Linuxlessen gekend!
created_at: 01-12-2000
---
Zeus WPI geeft terug Linuxlessen! Er zijn dit keer 4 lessen voorzien, met onder meer Linux-installatie en configuratie voor de beginnende gebruiker. Voor de gevorderde gebruiker hebben we enkele uiteenzettingen over firewalling, routing, samba, ... Om je in te schrijven volstaat een mailtje naar lessen@zeus.rug.ac.be met een vermelding van je naam, de les en het aantal aanwezige personen! Voor meer informatie ga je naar de [lessenpagina](http://web.archive.org/web/20001208193800/http://www.zeus.rug.ac.be:80/pub.shtml).
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,9 +0,0 @@
---
title: Nieuwe lessen in het verschiet.
created_at: 01-03-2001
---
Er worden terug lessen gegeven. Deze keer gaan ze over PHP, firewalling, ... Meer info volgt binnenkort.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,9 +0,0 @@
---
title: Mirrors bijgewerkt tijdens de vakantie
created_at: 01-10-2000 10:00
---
De mirrors van Zeus WPI (ftp.zeus.rug.ac.be) werden in de vakantie goed onderhouden, en verschillende nieuwe zaken werden toegevoegd of ge-updated. Zo hebben we ondermeer Debian 2.2 staan en Tucows met de nieuwe layout. We proberen altijd de recenste versies van alles te vinden. Indien iets ontbreekt aarzel dan zeker niet om ons te contacteren, zodat we onze diensten altijd kunnen uitbreiden naar de wensen van onze gebruikers.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,22 +0,0 @@
---
title: ZEUS WPI geeft PHP lessen.
created_at: 30-03-2001
---
Op 18, 25 april en 2, 9 mei geven we PHP lessen. Een niet te missen kans voor alle webmasters onder jullie. Meer info volgt binnenkort.
De Linux lessen kunnen nu ook [gedownload](http://web.archive.org/web/20010331094024/http://www.zeus.rug.ac.be:80/lessen/linuxles.shtml#download) worden.
_Update 01/05/2001_
Op 18, 25 april en 2, 9 mei geven we PHP lessen. Een niet te missen kans voor alle webmasters onder jullie. De lessenreeks is nu reeds halfweg. De teksten en de voorbeelden zijn beschikbaar via onderstaande link.
[Meer info, de teksten en de voorbeelden...](http://web.archive.org/web/20010429044958/http://www.zeus.rug.ac.be/lessen/phples.shtml)
_Update 19/05/2001_
De lessen van 2000-2001 zijn achter de rug. De lessenreeks over PHP oogste veel bijval. De lessen werden toegelicht met programmavoorbeelden en uitvoerige lesnota's. Je kan de lesnota's en de source-codes van de voorbeelden afhalen van de zeus-site.
[Meer info, de teksten en de voorbeelden...](http://web.archive.org/web/20010519194513/http://www.zeus.rug.ac.be:80/lessen/phples.shtml)
_Noot van de archivaris: de datum van deze blogpost en zijn updates is een schatting._

View file

@ -1,10 +0,0 @@
---
title: "ZEUS WPI's security pagina."
created_at: 31-03-2001
---
Er is gebleken dat er een grote nood is aan enkele webpagina's met uitleg over het hoe en waarom van security (of beveiliging voor de fanatiekelingen onder u). Vooral het hoe bleek een probleem te zijn.
Op de [security pagina](http://web.archive.org/web/20010331094024/http://www.zeus.rug.ac.be/security/) vindt u meer uitleg.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,8 +0,0 @@
---
title: Nieuwe site Zeus WPI
created_at: 02-10-2000
---
Vanaf vandaag is de nieuwe site van Zeus WPI online. De layout is grondig veranderd, maar de inhoud is ongeveer gelijk gebleven (alles wat er vroeger was is nu ook nog terug te vinden), en enkele nieuwe zaken werden toegevoegd. Dit is een eerste stap in de richting waarin we dit jaar willen gaan. We kiezen voor vernieuwing, en naar aanleiding van het 10-jarig bestaan van Zeus zullen nog andere dingen volgen. Hou ons in de gaten!
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,9 +0,0 @@
---
title: De Zeus t-shirts.
created_at: 02-12-2000
---
Ben jij een grafisch genie? Kun je overweg met een tekenpakket? Voel je je geroepen om het Zeus t-shirt te ontwerpen? Aarzel dan niet en ontwerp voor ons een t-shirt met het gekende [Zeus-logo](http://www.zeus.rug.ac.be/logos/logozeus.jpg). Ontwerpen kun je mailen naar ons [keurteam](mailto:tshirts@zeus.rug.ac.be). Na overleg met het bestuur wordt de mooiste/origineelste uit gekozen.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,10 +0,0 @@
---
title: Foto's van de verjaardag online!
created_at: 11-05-2001
---
Op 23 april vierde Zeus zijn 10-jarig bestaan met een korte receptie en een lange after-party in de BoomBoom. De foto's zijn te bezichtigen op onze site. Jammer genoeg zijn deze niet beschikbaar van buiten het RUGnet.
[Meer foto's...](http://web.archive.org/web/20031009082128/http://zeus.rug.ac.be/~jonas/)
_Noot van de archivaris: de datum van deze blogpost en zijn updates is een schatting._

View file

@ -1,13 +0,0 @@
---
title: Zeus dankt de lesgevers van de installatieles...
created_at: 28-11-2001
---
Hierbij willen we Bernard Grymonpon, Frank Louwers en Rudy Gevaert danken voor hun inzet voor de [installatieles](http://web.archive.org/web/20020802193359/http://www.zeus.rug.ac.be:80/pub.shtml). Alsook danken we de talrijke aanwezigen.
Als ook willen we onze verontschuldigingen aanbieden aan de aanwezigen, voor de ietwat hectische les. Dit kwam omdat Bernard de dag zelf past wist dat hij de les ging geven. Tom die de les normaal ging geven was geveld door de griep.
Na de les hebben we de X-server ook aan de praat gekregen (wat tijdens de les niet lukte), we gebruikten een verkeerde driver. Maw inspecteer uw hardware voor je begint te installeren.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,9 +0,0 @@
---
title: Blok
created_at: 26-05-2002
---
De examens staan voor de deur, dus dit academiejaar houden we het, wat de lessen betreft, voor bekeken.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,14 +0,0 @@
---
title: Latex les !
created_at: 01-03-2002
---
LaTeX is een taal waarmee men gemakkelijk documenten van hoge kwaliteit kan produceren. De kwaliteit slaat vooral op: het invoegen van wiskundige tekst op eenvoudige manier in een document, het maken van thesissen, het opstellen van brieven.
Kortom LaTeX is het vervangmiddel voor tekstverwerkingprogramma's als Word die doen wat je niet wilt, LaTex doet wat jij wilt.
De lessen gaan door op donderdag 07/03 en dinsdag 12/03, telkens op 18h30 in auditorium A0 in gebouw S9 van de campus Sterre.
Een gratis cursus tijdens de les ? Stuur een mailtje naar lessen@zeus.rug.ac.be.
_Noot van de archivaris: de aanmaakdatum van dit evenement is een schatting._

View file

@ -1,9 +0,0 @@
---
title: ZEUS WPI zoekt nieuwe leden
created_at: 01-10-2001
---
Ben je een nieuwe student, heb je interesse in de informatica? Word dan [lid](http://web.archive.org/web/20011127170659/http://www.zeus.rug.ac.be:80/newlid.shtml) van Zeus.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,9 +0,0 @@
---
title: Zeus geeft linuxles.
created_at: 27-11-2001
---
Op dinsdag 20/11 en 27/11 geven we terug Linuxles. Meer info op de [lessen](http://web.archive.org/web/20020802193359/http://www.zeus.rug.ac.be:80/pub.shtml)pagina.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,9 +0,0 @@
---
title: ZEUS WPI geeft PHP lessen
created_at: 13-03-2001
---
Op 15,18,22 en 25 april geeft ZeusWPI een lessenreeks over PHP.
_Noot van de archivaris: de datum van deze blogpost en zijn updates is een schatting._

View file

@ -1,8 +0,0 @@
---
title: Onze lang verwachte C-lessen
created_at: 10-02-2003
---
Vanaf woensdag 19/2 begint Geert Vernaeve aan zijn legendarische C-cursus. 4 inleidingslessen leiden je in in de wondere wereld van programmeren in C. Heb je altijd al willen helpen aan een van die Open Source (sorry.. Vrije) projecten, of wil je verder kijken dan je java-neus lang is, schrijf je dan in op lessen at zeus.ugent.be . Als je een gedrukte cursus wenst (meer info [hier](http://web.archive.org/web/20030321012833/http://www.zeus.rug.ac.be:80/c.shtml)), vergeet dat ook niet te vermelden in je mailtje.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,24 +0,0 @@
---
title: Externe bereikbaarheid
created_at: 08-07-2003
author: Olivier Verhoogen
---
Hallo!
Zoals sommigen onder jullie wel al gehoord, gemerkt en/of op
bovennatuurlijke wijze aangevoeld hebben is Zeus vanaf heden ook van
buiten (R)UGnet bereikbaar. We gaan bovendien tijdens de zomermaanden
(hoezo 2e zit?) serieus aan onze setup sleutelen zodat we het komende
academiejaar kunnen starten zoals het een werkgroep informatica betaamt.
Het is uit veiligheidsoverwegingen voorlopig wel niet mogelijk nieuwe
connecties van op een zeus-machine naar buiten te starten.
Het zal nog even wachten zijn op koele dingen als CVS respositories, MySQL
databases en dergelijke meer. Het is ondertussen wel weer mogelijk om op
de conventionele manier PHP te gebruiken.
Enjoy!
Het admin team,
Het bestuur.

View file

@ -1,9 +0,0 @@
---
title: FreeBSD cvsup mirror
created_at: 02-02-2003
author: Kenneth
---
Op hermes.rug.ac.be is nu tevens een cvsup mirror te vinden van FreeBSD. Mensen die FreeBSD gebruiken kunnen hun sources dus syncen via hermes.rug.ac.be; via ftp zijn tevens de packages te vinden. Je kunt die dus beter via hermes downloaden ipv de mastersites nog extra te belasten.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,8 +0,0 @@
---
title: Nieuw hardwareproject
created_at: 23-11-2002
---
Een netwerkje van oude computers ineenknutselen.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,9 +0,0 @@
---
title: Kernel-les
created_at: 15-03-2003
---
Download [hier](http://web.archive.org/web/20030528113017/http://www.zeus.rug.ac.be:80/kernel_introductie.pdf) de les over de linux-kernel, gegeven door Bart De Schuymer.
Meer info op zijn [project-page](http://web.archive.org/web/20030801141805/http://zeus.rug.ac.be/~bdschuym/) (RUGnet intern).
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,8 +0,0 @@
---
title: Listserver
created_at: 22-11-2002
---
Ja die werkt terug!
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,9 +0,0 @@
---
title: Interessante mailinglists
created_at: 20-03-2003
---
Onlangs werden bij Zeus twee nieuwe mailinglists opgericht, nl. help@zeus.rug.ac.be en announce@zeus.rug.ac.be. Hoe u kan inschrijven leest u [hier](http://web.archive.org/web/20030502094002/http://www.zeus.rug.ac.be/mailinglists.shtml).
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,8 +0,0 @@
---
title: Zeus Mirror
created_at: 21-11-2002
---
Onze mirror is nu ook bereikbaar via rsync.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,8 +0,0 @@
---
title: O'reilly reviews
created_at: 24-11-2002
---
O'reilly heeft ons een tijdje terug 4 boeken opgestuurd om te [reviewen](http://web.archive.org/web/20021124131950/http://www.zeus.rug.ac.be:80/reviews/). Dit is nu gebeurd. Bedankt aan O'reilly en de reviewers.
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,8 +0,0 @@
---
title: Zeus Projecten Pagina
created_at: 20-11-2002
---
De zeus projecten pagina is geactualiseerd naar 2002-2003, zie [Projecten](http://web.archive.org/web/20021207222624/http://www.zeus.rug.ac.be/projects.shtml).
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,8 +0,0 @@
---
title: Overleven op RUGnet
created_at: 30-09-2002
---
"Overleven op RUGnet" is nu ook [on-line](http://web.archive.org/web/20021004042945/http://www.zeus.rug.ac.be/overleven/) te raadplegen!
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,10 +0,0 @@
---
title: Zeus en voyeurisme
created_at: 17-03-2003
---
Is er momenteel iemand in de Zeuskelder? Ga ik er niet voor een gesloten deur staan? Zit je ook soms met die prangende vragen, vooraleer je naar de kelder komt, dan bestaat daar nu een handige oplossing voor. Er hangt nl. een webcam in de kelder, die om de paar seconden een beeldje doorstuurt, waarop je kan ziet wat er bij Zeus momenteel aan de hand is. De beelden kan je bekijken op [NaN's homepagina](http://www.zeus.rug.ac.be/~kris/zeus.jpg) (RUGnet intern).
En aan iedereen die van plan is de Zeuskelder leeg te komen halen: We're watching you!
_Noot van de archivaris: de datum van deze blogpost is een schatting._

View file

@ -1,8 +0,0 @@
---
title: Generieke gelukwensen
created_at: 24-12-2003
author: Olivier Verhoogen
---
Ik zou namens het bestuur en de admin alle leden (en de toevallige meekijkers ook wel) een vrolijk kerstfeest en een gelukkig nieuwjaar willen toewensen. Of vertaald naar de minder gelukkigen onder ons: een voorspoedige blok en een geslaagde eerste examenperiode!

View file

@ -1,9 +0,0 @@
---
title: LaTeX-lessen
created_at: 15-10-2003
author: Kenneth
---
Op maandag 27 oktober en maandag 3 november om 18u, geeft Gaspard 2 lessen over LaTeX. Dus als je meer wil weten over deze professionele typesetting-language, kom dan zeker af naar auditorium A0, S9, Campus De Sterre. Stuur vooraf wel even een mailtje naar lessen@zeus.UGent.be, met de vermelding of je een gedrukte cursus wil. Tot dan.
Update: De nieuwe cursus staat nu ook online. Je kan hem vinden onder publicaties.

View file

@ -1,9 +0,0 @@
---
title: PHP lessen
created_at: 01-04-2004
author: Rudy Gevaert
---
Zeus geeft nog es les.
De vier eerste maandagen na de paasvakantie, dat zijn 19 en 26 april en 3 en 10 mei, geeft Simkin 4 PHP-lessen, telkens om 18.00u. Wil je komen stuur dan een mailtje naar lessen @ zeus . ugent . be.

View file

@ -1,9 +0,0 @@
---
title: Les, les en nog eens les
created_at: 07-03-2004
author: Kenneth
---
Op 18 maart om 19.00 geeft Mattias Campe een introductie tot het IM-protocol **Jabber**.
In samenwerking met de Werkgroep Vrije Software van het VTK gaat er nog een les door over **Mandrake** op 22 maart, een **GNU/Linux**-introductieles op 25 maart, en een **LaTeX**-les op 22 april.
De vier eerste maandagen na de paasvakantie tenslotte, dat zijn 19 en 26 april en 3 en 10 mei, geeft Simkin 4 **PHP**-lessen, telkens om 18.00u.

View file

@ -1,11 +0,0 @@
---
title: Gent OntgroenD
created_at: 08-10-2003
author: Olivier Verhoogen
---
Op dit eigenste moment gaat er in zaal Kunstzicht in resto Overpoort een mega verenigingenshowofftoestand door. Natuurlijk is ook Zeus WPI vertegenwoordigd! Voor die arme mensen die hier al de fun moeten missen hebben we rap een webcampaginaatje in elkaar gefoefeld.
In zoverre Lieven zijn macje het niet nog eens begeeft kan je live meevolgen op ons [kassa IP](http://overes15.ugent.be/). NaN heeft ook een paar snapshots genomen met de digicam van zijn nonkel. Die zijn te bezichtigen op zijn (nieuwe) [site](http://web.archive.org/web/20031128075228/http://www.zeus.ugent.be/~kris/gallery/view_album.php?set_albumName=gentontgroend&page=1).
UPDATE (1650CEST): Het vat is af... dus we zijn voort.

View file

@ -1,25 +0,0 @@
---
title: Zeus T-shirts!
created_at: 01-09-2003
author: Olivier Verhoogen
---
Weledelgeboren leden van de Werkgroep Publieke Informatica,
Na veel (en af en toe ook wel wat minder) geduld staat het er eindelijk
toch van te komen: er worden opnieuw Zeus T-Shirts gedrukt!
Origineel als we zijn kiezen we voor een zwart shirt met langs voor een
klein Zeus logo en langs achter de reeds welbekende adminspotting tekst
(zo niet: zie www.adminspotting.org). De om en bij volledige gelijkenis
met de vorige editie shirts berust hierbij uiteraard geheel op toeval.
Zie je het wel zitten om je kleerkast aan te vullen met een (of meerdere)
shirts van je favoriete werkgroep? Schrijf dan snel per gewenst exemplaar
8 euro over op rekeningnummer 979-9937065-02. Vermeld in de mededeling
duidelijk je loginnaam, het gewenste aantal shirts alsook de gewenste
maten (M, L of XL).
Ik plaats de bestelling in de week van 22 september dus zie dat je
overschrijving uiterlijk tegen dan is voltrokken. Met een beetje geluk
krijg je dan je eigenste exempla(a)r(en) al op de eerste ledenvergadering.

View file

@ -1,10 +0,0 @@
---
title: Updates
created_at: 16-02-2004
author: Kenneth
---
Een nieuw semester, nieuwe gewoontes. De nieuwe openingstijden van de kelder vind je onder Kelderpermanenties.
Ook zijn er nieuwe versies beschikbaar van onze XHTML/CSS en LaTeX-lessen. Nog steeds te vinden onder Publicaties.

View file

@ -1,8 +0,0 @@
---
title: Webcam online
created_at: 30-10-2003
author: Kenneth
---
De webcam is terug online! Ons nerdzijn is hier te bewonderen. Het is de bedoeling de boel volledig streaming te maken als project.

View file

@ -1,11 +0,0 @@
---
title: Website Update
created_at: 19-04-2004
author: Kenneth
---
De site onderging een kleine update. Enkele van de wijzigingen:
- er is een nieuwe categorie toegevoegd: in het fotoboek kunt u foto's bekijken van voorbije Zeus-activiteiten
- bij publicaties kunt u nu ook de cursus over de Linux kernel downloaden
- de verslagen zijn up-to-date gebracht

View file

@ -1,9 +0,0 @@
---
title: lessen XHTML / CSS
created_at: 08-11-2003
author: Kenneth
---
Op woensdag 3 en 10 **en 16** december organiseert Zeus lessen over XHTML en CSS. Kijk snel op de [lessenpagina](http://web.archive.org/web/20031124172524/http://zeus.rug.ac.be:80/index.php?include=lessen).

View file

@ -1,15 +0,0 @@
---
title: C-lessenreeks & Linux kernel les
created_at: 15-03-2005
author: Lieven
---
Programmeurs en aspirant-programmeurs opgelet!
Op **21 en 23 maart** en op **11 april** leert gnorkende guru Geert Vernaeve ons in drie keer het fijne van de **programmeertaal C**. Om daarna onze kunde eens aan de praktijk te toetsen vertelt Bart De Schuymer ons op **13 april** wat meer over de binnenkant van de **linux kernel**.
We beginnen telkens om **19u00 in auditorium A0**. Dat is als vanouds op campus De Sterre in gebouw S9 op het gelijkvloers.
Beide lesgevers voorzien een **begeleidende cursus**. Wil je een gedrukt exemplaar? Mail dan op voorhand even naar clessenreeks at zeus.ugent.be . Je kopie ligt dan klaar bij het begin van de eerste les. De kostprijs zal hoogstens de drukkosten evenaren.
[klik hier om de affiche in PDF-formaat te downloaden](http://web.archive.org/web/20050513102651/http://www.zeus.ugent.be/~simkin/affiches/affiche-c.pdf)

View file

@ -1,11 +0,0 @@
---
title: Studenten Tegen Softwarepatenten
created_at: 21-05-2005
author: Wim De Smet
---
Volgende week woensdag (25 mei) vindt er een algemene actie plaats tegen softwarepatenten, georganiseerd door studenten van de verschillende universiteiten. Bij zeus steunen we dit natuurlijk van harte.
Voor zij die geinteresseerd zijn in iets te doen op die dag, kijk voor meer info op:<br>
[http://wiki.vrijschrift.org/StudentenTegenSoftwarePatenten](http://web.archive.org/web/20050830053612/http://wiki.vrijschrift.org/StudentenTegenSoftwarePatenten)

View file

@ -1,9 +0,0 @@
---
title: "Activiteiten deze week: poolen en les debian Package Management"
created_at: 07-03-2006
author: Wim De Smet
---
Dinsdag 07/03 gaan de leden van Zeus poolen. Hierbij een kleine herinnering aan de ingeschreven leden om vanavond aanwezig te zijn aan de Stars and Stripes.
Verder komt woensdag 08/03 Luk Claes ons wat uitleg doen over packages in Debian: hoe zitten ze in elkaar, hoe maak je ze zelf, vragensessie, ... De les gaat door in Auditorium A0 in de Sterre S9 om 19:30. Be there.

View file

@ -1,7 +0,0 @@
---
title: Onderhoud servers Zeus
created_at: 16-05-2006
author: Wim De Smet
---
De servers van Zeus zullen di 16 mei tussen 18:00 en 23:00 in onderhoud zijn dus er zal slechts beperkte functionaliteit zijn tijdens deze periode.

View file

@ -1,11 +0,0 @@
---
title: Details nieuwe softwareprojecten zeus
created_at: 28-10-2005
author: Wim De Smet
---
Programmeurs en aspirant-programmeurs opgelet!
Zoals op de ledenvergadering besloten (het verslag komt er hopelijk binnenkort aan) zullen enkele gezamenlijke projecten onder zeusleden gelanceerd worden. Momenteel is er nog geen streepje code en enkel een nieuwe mailinglist: projecten AT zeus dot ugent.be. [Schrijf je in](https://lists.zeus.ugent.be/cgi-bin/mailman/listinfo/projecten) en hopelijk kunnen we dan binnenkort aan het eerste project beginnen (dat zou een jabberbotje zijn in python geschreven).
Binnenkort komt naast die website nog een subversion repository. (info over subversion [hier](http://web.archive.org/web/20070214144045/http://subversion.tigris.org/)) Misschien ook interessant voor projectjes die de arme studenten onder ons moeten maken. Laat ons iets weten op de projecten mailinglist als je zin hebt om mee te doen.

View file

@ -1,10 +0,0 @@
---
title: Stroompanne in de kelder
created_at: 29-05-2006
author: appel
---
De voeding van timmy (een van onze desktop pc's in de Zeus kelder) heeft de geest gegeven,
hij zag het leven niet meer zitten en nam zo de helft van onze kelder met zich mee naar de duisternis.
Onze excuses voor de lange stroompanne, maar wegens het verlengde weekend konden wij het probleem niet verhelpen.
Alles zou nu terug normaal moeten werken.

View file

@ -1,9 +0,0 @@
---
title: Zeus Webcam terug operationeel
created_at: 06-12-2005
author: Wim De Smet
---
Vanaf vandaag is de zeus webcam weer beschikbaar via de link onder "Intern" of [klik hier](http://web.archive.org/web/20070214092156/http://zeus.ugent.be:2080/index.php?menu_item=54).

View file

@ -1,9 +0,0 @@
---
title: "Webdev-Lessenreeks: De Pagina"
created_at: 28-12-2005
author: Lieven
---
Zoals beloofd heb ik [een aantal links, voorbeeldjes en het cursusmateriaal](http://web.archive.org/web/20070730125059fw_/http://zeus.ugent.be:2080/index.php?module=webpage&action=view&i_id=124) van de voorbije webdev-lessenreeks online geplaatst.
Veel plezier ermee, en Happy Coding!

View file

@ -1,33 +0,0 @@
---
title: "De webdev reeks van Zeus: XHTML, CSS en PHP"
created_at: 24-11-2005
author: Wim De Smet
---
We openen een leeg tekstbestand en overlopen de hele weg naar je eigen stek op het Internet. Heb je dus altijd al wel eens een website willen maken... of kan een grondige heropfrissing van je skills geen kwaad? Kom dan zeker eens kijken! Voorkennis is niet vereist.
Wanneer? Waar? Hoe?
De lessen gaan door op 29 november en op 1, 7, 8, 13 en 15 december. We starten telkens om 20u, in auditorium A0. Dat is op campus De Sterre in gebouw S9 op het gelijkvloers.
Voor de liefhebbers worden er gedrukte cursussen voorzien. Had je graag een exemplaar van onze XHTML/CSS- of PHP-cursus bemachtigd, stuur dan op voorhand een mailtje naar cursus at zeus.UGent.be. (Geef wel duidelijk aan welke van beide cursussen je juist wil.) Voor leden zijn de cursussen gratis, voor de anderen zal de kostprijs niet groter zijn dan de drukkosten.
_Hieronder vind je een overzicht van de onderwerpen die we in elke les zullen behandelen. Elke les staat zoveel mogelijk op zichzelf. Je krijgt dus hopelijk zo min mogelijk dingen te horen die je eigenlijk al weet._
**Les1**: XHTML
Allereerst zien we hoe we de concrete inhoud van onze webpagina op een gestructureerde manier kunnen uitdrukken.
**Les2**: CSS
Dan leren we de lay-out eigenschappen bepalen waarmee de verschillende componenten van onze site - zoals de verschillende blokken tekst, het menu en dergelijke meer - juist zullen worden weergegeven.
**Les3**: PHP: Inleiding tot programmeren
Voor we uitleggen hoe je wat meer dynamische inhoud aan je pagina kan toevoegen geven we eerst nog een snelcursus programmeren.
**Les4**: PHP: Hot Topics
We behandelen kort de installatie van het nodige om op je eigen PC dynamische sites te kunnen bekijken. Daarna gaan we in op een aantal courante onderwerpen zoals het werken met invoervelden, het benaderen van databanken en dergelijke meer.
**Les5**: PHP: Learn-by-example
Om wat gewend te raken aan het programmeren van websites behandelen we een aantal korte voorbeelden.
**Les6**: PHP: Een uitgewerkte case
Tot slot kijken we naar een wat groter en meer realistisch voorbeeld van een website in zijn geheel.

View file

@ -1,15 +0,0 @@
---
title: Hier zijn we weer...
created_at: 06-12-2006
author: Thomas Meire
---
We weten het, we weten het: het was stil op de site, te stil. Stilte voor de storm?
Een storm zit er niet meteen aan te komen, maar we hebben toch niet stilgezeten de laatste tijd. Er bleven nog wat subsidies van vorig jaar over die op moesten, en daarmee werden 2 nieuwe workstations gekocht om ons machinepark uit te breiden: bebe (een MacMini - inclusief een splinternieuw 19" tft-scherm) en Jesus (een amd64). Sinds cartman gepromoveerd werd tot nfs-server, bleven alleen timmy en chef over als workstation. Het was dus hoog tijd voor uitbreiding 😉
Aanwisten zijn allemaal tof en geestig, maar die bakjes moeten geconfigureerd worden ook. En van die gelegenheid zullen we gebruikmaken om de volledige structuur van ons machinepark te herbekijken. We zouden dit op de volgende adminavond doen, en deze zou ergens in de komende week vallen (11/12 tot 15/12). We moeten juist nog eens kijken welke dag het best past voor de meesten onder ons.
Naast onze alledaagse geekie bezigheden, willen we ons natuurlijk ook outen als sociaal begaafde wezens. Vandaar dat we ook nog eens een pool- of ribbetjes-avond zullen organiseren. Liefst nog voor de kerstvakantie, anders zal het waarschijnlijk pas na de examens vallen. En aangezien de komende week de enige lesweek is, is het misschien het gemakkelijkst om het ook in die week te doen? Misschien eerst adminnen en daarna ons buikje rond eten?
Hoedanook, lieve vrienden, laat uw stem horen en vertel ons wanneer je vrij bent om te adminnen/eten/poolen via "bestuur AT zeus.ugent.be". De definitieve data zullen zeker nog tijdig op de site gepost worden, so stayed tuned for more...

View file

@ -1,13 +0,0 @@
---
title: Mail op je zeus-account...
created_at: 28-02-2007
author: Thomas Meire
---
Blijkbaar zijn er sinds de laatste adminavond enkele problemen met de e-mail. Dit is grotendeels te wijten aan het feit dat niet alle taken reeds uitgevoerd zijn.
Mensen met problemen kunnen ssh-en naar zeus.ugent.be, en daarna verder ssh-en naar kenny. Op kenny kan je dan nog je mail raadplegen aan de hand van pine of mutt. Indien je onlangs je paswoord veranderd hebt, en je imap gebruikt om je mail te bekijken, dien je je oude wachtwoord nog in te geven.
Mensen met andere problemen kunnen altijd mailen naar admin at zeus.ugent.be .
Maandag (05/02/2007) is er een adminavond en gaan we proberen een nieuwe mailserver in gebruik te nemen.

View file

@ -1,7 +0,0 @@
---
title: Zeus netwerk problemen
created_at: 18-04-2007
author: Wim De Smet
---
Vlak voor het weekend vorige week is een gateway gecrasht vanwege een slechte videokaart. Hierdoor waren de website e.a. stukken van onze infrastructuur een aantal dagen onbereikbaar. De problemen zouden nu moeten opgelost zijn, onze excuses voor enige overlast.

View file

@ -1,11 +0,0 @@
---
title: Overleven op het UGentNet
created_at: 18-12-2006
author: Thomas Meire
---
In 2002 brachten we voor het eerst de gids "Overleven op het UGentNet" uit, in samenwerking met de faculteit Bio-Ingenieurswetenschappen. Deze gids verschaft de UGent-student alle nodige informatie om gebruik te maken van alles wat het computernetwerk van de UGent te bieden heeft.
De voorbije jaren werd de gids onderhouden en bijgewerkt door Gaspard Lequeux en David De Wolf. Vanaf vandaag staat de meest recente versie terug op onze website, onder [Publicaties](https://zeus.ugent.be/index.php?menu_item=23). Deze zal vanaf nu ook permanent bijgewerkt worden, en volgend jaar verschijnt waarschijnlijk weer een gedrukte versie die verspreid zal worden over verschillende faculteiten en universitaire gebouwen.
Veel plezier ermee:
[Overleven op UGentNet](http://web.archive.org/web/20070702045236/https://zeus.ugent.be:2443/index.php?module=webpage&action=view&i_id=128)

View file

@ -0,0 +1,6 @@
---
title: ThermiLAN -- AFGELAST
created_at: 12-03-2007
---
Lanparty in samenwerking met het VTK en het WiNA

View file

@ -1,11 +0,0 @@
---
title: Ubuntu CD's
created_at: 14-12-2006
author: Thomas Meire
---
Deze zomer hadden we een aantal ubuntu cd's besteld om linux te verspreiden op de unif. Uiteindelijk was het zo ver: de cd'tjes zijn uitgedeeld aan de 1ste bachelors informatica. Dit semester is er helaas geen tijd meer voor een introductie tot linux, maar verwacht je er volgend semester maar aan - een datum is nog nader te bepalen.
Er zijn nog cd'tjes over, dus mensen die nog eentje willen, moeten maar eens langskomen in de kelder, of mailen naar bestuur at zeus.ugent.be . De cd'tjes zullen ook beschikbaar zijn op de introductieles.
(De cd's bevatten versie 6.06 LTS. Dit is niet de meest recente versie, maar wel de meest recente versie met Long Term Support (LTS), een langere ondersteuningstijd dus.)

View file

@ -1,13 +0,0 @@
---
title: Webcam terug operationeel...
created_at: 11-10-2006
author: Thomas Meire
---
Nadat de webcam een heel eind buiten strijd geweest is, staat hij nu weer op zijn beide benen. Het is nog niet de flashy flash-versie die appel voor ogen had, maar - and I quote relix - "de vrouwen kunnen ons nu toch al weer zien".
Voor de gluurders onder ons, cammie staat nog altijd op zijn zelfde plaatsje.
Have fun with it!
EDIT 14/10/1006:
Na heel wat geklooi met de firewalls van de gateways en een browser met de initialen IE, kan iedereen eindelijk genieten van bewegende webcambeelden, zelfs Operanen...
En mocht er nog een browser zijn waarin het niet werkt, laat het me dan weten via webmaster AT zeus.ugent.be

View file

@ -1,103 +0,0 @@
---
title: "De geschiedenis in met Zeus"
created_at: 10-05-2021
description: "den nostaligschen tour op met Zeus"
author: "Niko Strijbol"
---
Wie onze site bezoekt heeft nu een hoop leesvoer bijgekregen: de evenementen en blog gaan nu terug tot het jaar 2000!
In deze blog staat kort wat/hoe er toegevoegd is, en daarna wat leuke dingen over het Zeus van weleer.
## Wat en hoe?
De eerste zin zei het al: de blog en evenementen zijn aangevuld tot het academiejaar 2000-2001.
Omdat er in die tijd nog geen onderscheid was tussen blog en evenement, zijn enkel de blogposts die één-op-één overeenkwamen met een evenement ook zo toegevoegd.
Blogposts die meerdere evenementen beschrijven zijn nog steeds een blogpost.
De meeste informatie is afkomstig van de [Wayback Machine](http://web.archive.org/) (❤️ Wayback Machine).
Het is vooral een kwestie van te bepalen onder welke domeinnaam de informatie staat. Gelukkig heeft Zeus er al een aantal gehad (waardoor de kans dat een bepaalde pagina ergens opgeslagen is groter wordt):
- `zeus.ugent.be` - Dé domeinnaam (al is dat nu meer en meer `zeus.gent`). Eerste snapshot op dit domein dateert van [**8 mei 2003**](http://web.archive.org/web/20030508164101/http://www.zeus.ugent.be/).
- `zeus.rug.ac.be` - Basically hetzelfde als hiervoor, toen de UGent nog de RUG (Rijksuniversiteit Gent) was. Het eerste snapshot hier is van [**5 oktober 1999**](http://web.archive.org/web/19991005232153/http://www.zeus.rug.ac.be/).
- `student.rug.ac.be/zeus` - Het webadres van Zeus bij de Dienst StudentenActiviteiten. Hier is het oudste snapshot genomen op [**15 februari 1998**](http://web.archive.org/web/19980215073116/http://www.student.rug.ac.be/zeus/).
Hoewel het oudste snapshot dus 15 februari 1998 is, werken de meeste foto's niet in dat snapshot om een of andere reden (met uitzondering van dit [logo](http://web.archive.org/web/19990202142442/http://student.rug.ac.be/zeus/pics/zeus_k1.gif), het oudste logo van Zeus dat ik gevonden heb).
Het oudste, deftig werkend snapshot is dat van 5 oktober 1999.
De eerste versies van de website met nieuws op de startpagina verschijnen rond het jaar 2000; vanaf dan zijn alle gevonden gegevens overgezet (er zijn er [een aantal](http://web.archive.org/web/19990913001946/http://www.zeus.rug.ac.be/hotnews.shtml) van 1999, maar onze huidige site heeft moeite met 1999, dus dat zal voor een andere keer zijn).
Dat overzetten gebeurde handmatig: uiteindelijk heeft dat twee of drie uurtjes in beslag genomen, waarschijnlijk minder lang dan als ik daar een script voor zou geschreven hebben. Waar mogelijk zijn de links vervangen door links naar de Wayback Machine, zodat de context van de blogposts en evenementen zo goed mogelijk bewaard bleef.
Een klein deel van de evenementen komt ook uit de archieven van de [mailinglijst voor de leden](https://lists.zeus.ugent.be/pipermail/leden/).
De archieven lopen van 2003 tot 2015, en zijn ook altijd interessant om te lezen (ze bevatten in het begin vooral het soort aankondigingen dat nu gebeurt via Mattermost).
## Waarom?
Enerzijds omdat het leuk is als er gearchiveerde data bestaat en ik, zoals iedereen, thuis zit en dus wat tijd had.
Anderzijds kan het nut hebben: oud-leden uit die tijd kijken misschien graag vol nostalgie terug (naar bv. [het bezoek aan een brouwerij](<%= @items['/events/05-06/brouwerijbezoek.md'].path %>)).
Nieuwere leden willen misschien inspiratie opdoen over hoe het er vroeger aan toe ging.
Spoilers:
- sommige dingen veranderen (over [PHP](<%= @items['/blog/00-01/php-lessen.md'].path %>) [zal](<%= @items['/blog/03-04/les-2.md'].path %>) [waarschijnlijk](<%= @items['/blog/05-06/webdev.md'].path %>) niet snel nog eens les gegeven worden)
- andere zijn wat verloren geraakt (de [traditionele](<%= @items['/events/03-04/ribben.md'].path %>) [Ribbetjesavond](<%= @items['/events/02-03/ribben.md'].path %>) wordt nu soms anders ingevuld)
- nog andere zaken blijven hetzelfde (zoals het [verkiezen van een nieuw bestuur](<%= @items['/events/05-06/ledenvergadering-3.md'].path %>) of [cammie](<%= @items['/blog/02-03/voyeur.md'].path %>), die [af en toe](<%= @items['/blog/05-06/webcam.md'].path %>) werkt).
## Intermezzo: DSA is een Zeusproject?
Een nog ouder snapshot vinden we van de [homepage van de Dienst StudentenActiviteiten](http://web.archive.org/web/19971222130916/http://student.rug.ac.be/), van 22/12/1997.
Omdat veel leden van Zeus bij DSA werk(t)en heb je waarschijnlijk de _running gag_ al wel gehoord: "DSA is een Zeusproject".
Nu, wat staat er onderaan de pagina van de DSA in 1997?
> Deze pagina werd ontwikkeld en is onderhouden door ZEUS
🤔
## Wat is Zeus?
We kijken terug naar wat Zeus toen was, om te vergelijken met Zeus in haar huidige vorm.
Herkennen we onszelf daar nog in?
De [geschiedenispagina op de oudste snapshots](http://web.archive.org/web/19980221043915/http://student.rug.ac.be:80/zeus/history.shtml) is nog exact hetzelfde als onze huidige geschiedenispagina, zij het dat de nieuwe versie wat aangevuld is.
Dit is dus niet bijster interessant.
Interessanter is de pagina [_Wat is Zeus WPI?_](http://web.archive.org/web/19980221043835/http://student.rug.ac.be:80/zeus/infozeus.shtml), waarvan we enkele fragmenten kunnen bekijken:
> Zeus WPI staat voor Zeus Werkgroep Informatica. Deze werkgroep richt zich tot alles wat met informatica te maken heeft. [...] Het grootste doel van Zeus WPI is het grote publiek bekend maken met alles wat informatica aangaat.
Zeus WPI werd gesticht in 1991, en heette toen nog Zeus Werkgroep Publieke Informatica. De volledige levenswandel van de werkgroep bestaat ook samengevat. [...]
We kunnen leren dat in 1998 de W**P**I al achterhaald was, zoals het nu nog steeds is.
> We hebben verschillende doelstellingen binnen Zeus WPI. Een algemeen doel is altijd het helpen van de informaticaleek en de informaticafreak op ieder vlak. Daar dit wel een heel complexe en grote zaak is hebben we enkele kleinere doelstellingen opgesteld:
Het verspreiden van de verschillende nieuwste shareware programma's die nuttig kunnen zijn voor de studenten en personeelsleden van de universiteit. (Hier speelt natuurlijk onze FTP-server een belangrijke rol).
Het helpen van de beginnende internetgebruikers aan de RUG. (We bieden verschillende folders aan zoals het alom bekende overleven op RUGnet)
Het geven van raad aan iedereen die er nodig heeft.
Sinds kort houden we er ook nog andere taken op na, zoals het onderhouden van verschillende webservers aangesloten op RUGnet.
Het laatste stukje op deze pagina is nog het meest veranderd: Zeus biedt namelijk geen mirrors meer aan en staat niet meer in voor de distributie van software of cursussen (ook het organiseren van lessen gebeurt nog slechts sporadisch).
Andere dingen zoals het geven van raad aan eender wie de kelder binnenwandelt gebeurt nog steeds.
## Zelf rondsnuisteren
Er zijn nog interessante pagina's op die snapshots:
- [De mirrors](http://web.archive.org/web/20000608202730/http://www.zeus.rug.ac.be/mirrors.shtml), als je eens wilt zien wat je allemaal kon downloaden van Zeus
- [De leden](http://web.archive.org/web/20000608171826/http://www.zeus.rug.ac.be/members.shtml) (toen nog met [proefleden](http://web.archive.org/web/20000608171826/http://www.zeus.rug.ac.be/newlid.shtml))
- [Het machinepark van Zeus in 2000](http://web.archive.org/web/20000122025113/http://www.zeus.rug.ac.be:80/machinepark.shtml) (64 MB RAM, met 14 GB HDD voor de "Webserver, mailserver, ftpserver en backup name server voor subnet.")
- [T-shirts van Zeus is een oude traditie](http://web.archive.org/web/20000615204502/http://www.zeus.rug.ac.be/tshirts.shtml)
- [Het Zeus-logo in 3D](http://web.archive.org/web/20000922221222/http://www.zeus.rug.ac.be/logo.jpg)
Nog een kleine tip als je zelf door de historische sites aan het grasduinen bent: als je op [deze versie van de website](http://web.archive.org/web/20070128094936/http://zeus.ugent.be/) komt, zul je merken dat alle links op de pagina er zo uitzien:
[`http://web.archive.org/web/20070214092156fw_/http://zeus.ugent.be:2080/index.php?menu_item=8&PHPSESSID=a91c46ab8fe8622e78359a92d9ed53ba`](http://web.archive.org/web/20070214092156fw_/http://zeus.ugent.be:2080/index.php?menu_item=8&PHPSESSID=a91c46ab8fe8622e78359a92d9ed53ba)
Deze links bestaan echter niet in de Wayback Machine, maar geen probleem: als je de `PHPSESSID` verwijdert uit de URL, is de kans groot dat de link wel opgeslagen is:
[`http://web.archive.org/web/20070214092156fw_/http://zeus.ugent.be:2080/index.php?menu_item=8`](http://web.archive.org/web/20070730123958fw_/http://zeus.ugent.be:2080/index.php?menu_item=8)
Vergeet tot slot niet dat er voorheen ook al heel wat historische informatie over Zeus op onze site stond:
- [Alle besturen ooit](<%= @items['/about/oud-bestuur.erb'].path %>)
- [De volledige geschiedenis, geheel met tijdlijn](<%= @items['/about/historiek.erb'].path %>)

View file

@ -39,45 +39,9 @@ contact_links:
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css" /> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"></script> <script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"></script>
<script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"></script> <script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"></script>
<%= asset :js, 'epcqr' %>
<%= asset :js, 'tabtopup' %>
<% end %> <% end %>
<div id="tabtopupmodal" class="modal">
<div class="modal-background"></div>
<div class="modal-content">
<div class="modal-card">
<header class="modal-card-head">
<p class="modal-card-title">Top up Tab with EPC QR code</p>
</header>
<section class="modal-card-body">
<div style="height: 256px"><div id="tabtopup-qrcode"></div></div>
<p id='tabtopup-message'></p>
<div class="field">
<label class="label" for="tabtopup-username">Zeus username:</label>
<div class="control has-icons-left">
<input id="tabtopup-username" type="text" class="input" placeholder="j" name="tabtopup-username">
<span class="icon is-small is-left">
<%= fa :user, fw: true %>
</span>
</div>
<p class="help">This is not necessarily the same as your Mattermost username, contact the board if you forgot your username</p>
</div>
<div class="field">
<label class="label" for="tabtopup-amount">Amount (euro):</label>
<div class="control has-icons-left">
<input id="tabtopup-amount" type="text" step="0.01" class="input" value="5.0" name="tabtopup-amount">
<span class="icon is-small is-left">
<%= fa :euro, fw: true %>
</span>
</div>
</div>
</section>
</div>
</div>
</div>
<div class="content"> <div class="content">
<h1 class='title is-1 has-text-centered'>Contact us</h1> <h1 class='title is-1 has-text-centered'>Contact us</h1>
<h2 class='subtitle is-4 has-text-centered has-text-weight-light'>bleep bloop</h2> <h2 class='subtitle is-4 has-text-centered has-text-weight-light'>bleep bloop</h2>
@ -123,15 +87,12 @@ contact_links:
<h1 class='title has-text-centered'>Pay us</h1> <h1 class='title has-text-centered'>Pay us</h1>
<hr/> <hr/>
<p id='banknumber' class='is-size-5'> <p id='banknumber' class='is-size-5'>
BE03 7340 5456 0384 BE32 9799 9370 6502
</p> </p>
<p class='is-size-5'> <p class='is-size-5'>
<b>Please use the message <wbr>"TAB&nbsp;<em>&lt;username&gt;</em>" when manually topping up your Tab balance</b> <b>Please use the message "TAB <em>&lt;username&gt;</em>" when toppping up your Tab balance</b>
</p> </p>
<a id="tab-qr-button" class="button"> <a class='button' href='https://zeus.ugent.be/tab/'>
<%= fa :qrcode, fw: true %> Top up Tab balance
</a>
<a class='button' href='https://tab.zeus.gent' target='_blank'>
<%= fa :euro, fw: true %> Use Tab <%= fa :euro, fw: true %> Use Tab
</a> </a>
</div> </div>
@ -185,11 +146,10 @@ contact_links:
</p> </p>
</div> </div>
</div> </div>
<!-- Embedded map --> </div>
<div style="z-index: 0" class="map-wrapper box">
<!-- Embedded Google Maps -->
<div class="map-wrapper box">
<%= render '/partials/_map.erb', location: "Zeus WPI" %> <%= render '/partials/_map.erb', location: "Zeus WPI" %>
</div> </div>
</div>
</div> </div>

View file

@ -1,10 +0,0 @@
---
title: Ledenvergadering Belangrijk!
created_at: 10-10-2000
time: 17-10-2000 19:00
location: Galglaan, campus de Sterre
---
Alle leden en mogelijkst geintresseerde nieuwe leden worden vriendelijk uitgenodigd op de ledenvergadering van Zeus WPI. Deze gaat door op 17 oktober 2000 in de Galglaan (campus de Sterre) om 19:00. Alle nieuwe leden worden verzocht te komen! Indien je niet kan komen, laat het ons weten.
_Noot van de archivaris: de aanmaakdatum van dit evenement is een schatting._

View file

@ -1,13 +0,0 @@
---
title: Zeus gaat bowlen.
created_at: 01-11-2001
time: 14-11-2001 18:30
location: De Brug
---
Op 14 november gaan we samen met de OAK bowlen. Voor meer informatie of inschrijvingen stuur je een mailtje naar Milena.
We vertrekken om 18.30u stipt MET de FIETS vanaf De Brug (verzamelen om 18.20u!!!) richting bowling De Meibloem (Meibloemstraat 18).
_Noot van de archivaris: de aanmaakdatum van dit evenement is een schatting._

View file

@ -1,15 +0,0 @@
---
title: 15 mei = Ledenvergadering !!!
created_at: 01-05-2002
time: 15-05-2002 18:00
location: Cage-gebouwen
---
Op woensdag 15 mei om 18h is er een ledenvergadering. Deze zal doorgaan in het Cage complex (Galglaan).
Tijdens deze vergadering zullen we o.a. de bestuurs-functies voor volgend jaar bespreken. Het is dus belangrijk dat alle leden aanwezig zijn !
Mensen die interesse hebben om volgend jaar in het bestuur van Zeus te zitten (ook bestuursleden van nu die hun 'mandaat' willen vernieuwen) sturen best een mailtje naar bestuur@zeus.rug.ac.be met eventueel een motivatie (ja reeds voor de vergadering)
_Noot van de archivaris: de aanmaakdatum van dit evenement is een schatting._

View file

@ -1,11 +0,0 @@
---
title: Volgende ledenvergadering.
created_at: 01-11-2001
time: 12-11-2001 18:00
location: Cage-gebouwen
---
Maandag 12 november om 18uur is er een ledenvergadering in de Cage-gebouwen. De [projecten](http://web.archive.org/web/20011127170659/http://www.zeus.rug.ac.be:80/projects.shtml) van dit semester worden besproken.
_Noot van de archivaris: de aanmaakdatum van dit evenement is een schatting._

View file

@ -1,16 +0,0 @@
---
title: Anti spam les
created_at: 01-03-2002
time: 27-03-2002 18:30
location: Auditorium A0, S9
locationlink: $s9
---
18h30, gebouw S9 campus de Sterre, audiotorium A0. Inschrijven verplicht!
Hoef je geen nieuwe lening? Interesseert een hypotheek je niet? Geen behoefte aan porno? Tevreden met de omvang van je lichaam en haar onderdelen en prestaties? Geen interesse in aandelen, superaanbiedingen, manieren om ongeloofijk snel stinkend rijk te worden etc?
Indien je antwoorden op bovenstaande vragen voornamelijk "ja"zijn en je toch voortdurend gebombardeerd wordt met emails die je dat alles en nog veel meer proberen aan te smeren, dan heb je al kennis gemaakt met het fenomeen dat "spam"genoemd wordt. [Meer info](http://web.archive.org/web/20020402151005/http://www.zeus.rug.ac.be:80/pub.shtml)
_Noot van de archivaris: de aanmaakdatum van dit evenement is een schatting._

View file

@ -1,37 +0,0 @@
---
title: Zeus eet ribbetjes
created_at: 22-04-2003
time: 29-04-2003 19:30
location: Gekroonde Hoofden
locationlink: Gekroonde Hoofden, Ghent Belgium
---
Het is weer zover, Zeus gaat terug eens *ribbetjes* eten. Dit op
*dinsdag 29 april*. In de *gekroonde hoofden* te Gent.
En dit om 19u30.
Als je meewilt gelieve te reageren naar mij (rudy at zeus) met in de
subject:
ribbetjes X
Waarbij X het aantal personen is die je wenst mee te brengen
(inclusief jezelf). Hoe meer zielen hoe meer vreugde. Als ge een
lief/vriend hebt, breng die dan eens mee.
In de gekroonde hoofden kun je naast ribbetjes ook nog andere dingen
eten. Keus genoeg! Twee jaar geleden zijn we al eens geweest en
waren we met een stuk of 15 geloof ik.
De ribbetjes zijn a volente en je hebt keuze uit 4 smaken:
- van de chef (is pikant)
- honing
- zoetzuur
- en nog iets waarvan ik het niet meer weet.
Kostprijs ongeveer 13 euro geloof ik. Dus daarvoor moet je het niet
laten, eet desnoods twee dagen niets want het is A VOLENTE!
Tot dan!

View file

@ -1,11 +0,0 @@
---
title: ANTI-Spamles
created_at: 09-05-2003
time: 13-05-2003 18:00
location: Auditorium A2, S9
locationlink: $s9
---
Als je wil weten hoe de spammers te werk gaan, hoe ze proberen te verbergen vanwaar hun emails komen en waar hun websites gehost worden en wat je er tegen kan doen, dan is de cursus "Spam: wat doe ik eraan?" zeker iets voor jou. We bekijken hoe het SMTP protocol (dat gebruikt wordt om mails te versturen) werkt en hoe je emails moet traceren, wat open relays en proxy's zijn en hoe ze misbruikt worden door spammers, hoe web pagina's door spammers gecodeerd worden en manieren om ze te ontcijferen, etc.
De les gaat door op dinsdag 13 mei, om 18.00, en dit in auditorium A2, S9, Capus Sterre (en dus niet op de eerder aangekondigde datum). Zoals steeds is iedereen welkom. Als je wil komen, mail dan even naar lessen@zeus.rug.ac.be, en vermeld erbij of je een gedrukte cursus wilt

View file

@ -1,12 +0,0 @@
---
title: "ZeusWPI presents: Richard Stallman"
created_at: 10-02-2003
time: 09-05-2007 19:00
location: Auditorium A1 - S9
locationlink: $s9
---
Update: De voordracht van RMS werd goed gesmaakt door de aanwezigen. Foto's van de voordracht zijn te vinden op: [http://cage.rug.ac.be/~gvernaev/stallmanzeus](http://web.archive.org/web/20050506174605/http://cage.ugent.be/~gvernaev/stallmanzeus/) en hier - Geïnteresseerden kunnen [deze](http://web.archive.org/web/20070630085501/http://www.researchoninnovation.org/patent.pdf) interessante pdf-file eens lezen, die RMS vermeldde in zijn speech.
Richard Stallman (RMS) will be giving a speech on the danger of software patents. - Richard Stallman geeft voor Zeus WPI een voordracht over de gevaren van gepatenteerde software. - [More info](http://web.archive.org/web/20040521070955/http://studwww.rug.ac.be/~rgevaert/rmsaffiche.pdf).
Iedereen die geïnteresseerd is is welkom; inschrijven hoeft niet. - Everybody is invited; no reservation required.

View file

@ -1,9 +0,0 @@
---
title: Bowling
created_at: 02-10-2003
time: 29-10-2003 19:00
location: Therminal
locationlink: $therminal
---
Op 29 oktober gaan we bowlen. Verdere details volgen later nog.

View file

@ -1,10 +0,0 @@
---
title: Les GNUPG
created_at: 23-02-2004
time: 01-03-2004 18:00
location: Auditorium A1, S9
locationlink: $s9
---
Op maandag 1 maart, van 18 tot 20u organiseert Zeus een les GNUPG, met aansluitende keysigning party. Deze gaat door in auditorium A1, gebouw S9, campus de Sterre. Als je komt, stuur dan even een mailtje naar lessen@zeus.ugent.be.

View file

@ -1,22 +0,0 @@
---
title: Ledenvergadering II
created_at: 17-02-2004
time: 25-02-2004 18:30
location: De Brug
---
Een nog onbevlekt tweede semester ligt voor de boeg... Hoog tijd dus om
tussen pot en pint de komende activiteiten op een rijtje te zetten.
Zouden we niet nog eens ribbetjes gaan eten? Of op FOSDEM gaan
kijken? Wat van de geruchten dat er een jabber server zou worden
opgezet? En zouden de T-Shirts eindelijk gearriveerd zijn?
Misschien moesten we eens onze stoute schoenen aantrekken en op
kroegentocht gaan... Of op FreeEDEM (www.freeedem.org) naar Rudy's
voordracht over GLMS gaan luisteren.
Zou het niet tof zijn om een les te organiseren over GPG? Of over
Jabber? En zouden we onze PHP-les niet nog eens van stal halen?
U hoort het allemaal, volgende week WOENSDAG 25 FEBRUARI 2004, om
1830hrs in de BRUG.

View file

@ -1,8 +0,0 @@
---
title: Ledenvergadering
created_at: 02-10-2003
time: 14-10-2003 19:00
location: De Brug
---
Op dinsdag 14 oktober om 19.00u houden we in De Brug onze eerste ledenvergadering van het nieuwe Zeusjaar. Er wordt gekozen voor de Brug vanwege de nabijgelegen cafeetjes (na de vergadering dus). Alle leden: be there! By the way, Zeus zal ook aanwezig zijn op Gent Ontgroent op 8 oktober. Kom eens langs in studentenresto leden: be there!

View file

@ -1,16 +0,0 @@
---
title: zeus etentje
created_at: 10-04-2004
time: 29-04-2004 19:00
location: Amadeus
locationlink: Plotersgracht 8, 9000 Gent
---
Zoals jaarlijks gaan we weer eens gezamenlijk bouffen met zeus. Deze
keer een iets hoogstaander menu dan op de kroegentocht. (cfr.
http://www.zeus.ugent.be/~kris/stuff/zeus-kroegentocht-260304/sany0038.jpg)
We gaan opnieuw ribbetjes eten zoals vorig jaar, maar deze keer bij
Amadeus. Dit gaat door op donderdag 29 april.
Om te kunnen inschatten hoeveel plaatsen we moeten reserveren had ik
graag een mailtje gekregen van voordien of je komt.

View file

@ -1,8 +0,0 @@
---
title: Zeus bowlt!
created_at: 3-11-2004
time: 3-11-2004 19:00
location: Meibloemstraat 18-20
---
Vanavond stunten we met zware dingen in bowlinghal "de Meibloem" (Meibloemstraat 18-20). De colonne per fiets vertrekt om 18u30 aan de Brug. Afspraak omstreeks 19u00 ter plaatse.

View file

@ -1,21 +0,0 @@
---
title: Lezing Dr. Leslie Lamport
created_at: 31-10-2004
time: 17-11-2004 18:00
location: S9
locationlink: $s9
---
Zeus presenteert:
> Dr. Leslie Lamport<br>
> Thinking for Programmers
Wanneer: woensdag 17 november, 18.00 uur<br>
Waar: Campus "De Sterre", Gebouw S9, Krijgslaan 281, Gent
GRATIS TOEGANG
Abstract: "There is a very effective software development tool that is not used nearly enough--the brain. The many impediments to its proper use devised by computer scientists can be overcome."
De affiche kan je [hier](http://web.archive.org/web/20041115180039/http://zeus.ugent.be/~tiemelijn/tests/affiche_leslie.pdf) bekijken.

View file

@ -1,16 +0,0 @@
---
title: Ledenvergadering
created_at: 17-02-2005
time: 24-02-2005 20:00
location: De Brug
---
Yo!
Nu de eerste examenperiode alweer achter ons ligt en we weer volop van het vrije leven kunnen genieten lijkt geen moment beter geschikt om uit te doeken te doen wat Zeus deze semester allemaal te bieden heeft.
Stop daarom aanstaande donderdag 24 februari 2005 om 2000hrs even met repetitief de 'Mijn resultaten'-pagina op Minerva te herladen en zak af naar Studentenhuis "De Brug"! De ledenvergadering zal doorgaan in de Fotoklas op de tweede verdieping (neem bij het binnenkomen de eerste paar trappen, ga dan rechts door de glazen deur en pak daar verder de trap omhoog).
Uiteraard is het bestuur niet verantwoordelijk voor het gebeurlijke afzakken naar de Deffoo en de daaropvolgende overmatige consumtie van houten koppen.
Tot dan!

View file

@ -1,10 +0,0 @@
---
title: Ledenvergadering
created_at: 08-10-2004
time: 12-10-2004 19:00
location: De Brug
---
Het eerste weekje academiejaar zit er weer ver op. Hoog tijd dus om nog eens een ledenvergadering op poten te zetten. Kom als eerste te weten wat we dit jaar allemaal gaan uitsteken: Zal er zowaar een cultuur pre^H^H^H verantwoordelijke zijn? Zal er gedweild worden in de kelder? En zal ik het weer 3 uur rekken voor we een pint gaan drinken? Dit en andere zaken van levensbelang hoor je allemaal nu dinsdag 12 oktober om 1900hrs. Afspraak aan de ingang van studentenhuis "De Brug" (Sint Pietersnieuwstraat 45).
**Update**: Zoals beloofd volgt hier een korte wegbeschrijving voor de eerste bachelors. Als je er even het [kaartje](http://web.archive.org/web/20041130073516/http://www.zeus.ugent.be/~simkin/stpietersplein.png) bijneemt (dank aan mappy.com) zie je onderaan het Sint-Pietersplein. Het lelijke kruisje poogt het adviescentrum voor studenten (waar je je bent gaan inschrijven) aan te geven. De Sint-Pietersnieuwstraat loopt op de kaart ongeveer recht naar boven. Studentenhuis "De Brug" is huisnummer 45.

View file

@ -1,13 +0,0 @@
---
title: Onderonsje over Python
created_at: 03-05-2005
time: 10-05-2005 19:00
location: Zeus-kelder
locationlink: $kelder
---
Aanstaande **dinsdag 10 mei** vertelt Wim ons over zijn learning experience met **de programmeertaal Python**.
Python is een **eenvoudige, object-geörienteerde en geïnterpreteerde taal**. Samen met talen als Ruby en Perl begint hij steeds meer zijn intrede te doen als **hoge niveau taal voor een breed scala aan toepassingen** -- gaande van webtoepassingen tot desktop applicaties.
We hopen tegen volgend academiejaar een volwaardige Python les(senreeks) klaar te stomen. Voorlopig houden we het echter eerder low profile: afspraak in de **Zeus bunker** om **1900hrs**.

View file

@ -1,17 +0,0 @@
---
title: Zeus eet ribbetjes
created_at: 29-04-2005
time: 11-05-2005 19:00
location: Amadeus
locationlink: Plotersgracht 8, 9000 Gent
---
Ook dit jaar gaan we er uit met een hippe spetterende **ribbetjes-eet activiteit**. We trekken hiervoor weerom naar restaurant **Amadeus**, en dit op **woensdag 11 mei** om **1900hrs**.
Het restaurant is gelegen in het pittoreske patershol, meerbepaald in de **Plotersgracht 8-10**. Wie zich niet zo zeker voelt in het ontwarren van het middeleeuws stratennetwerk en over een **fiets** beschikt kan zich ook om **1830hrs** met zijn rijtuig naar de ingang van **studentenhuis "De Brug"** begeven. Iemand van het bestuur zal dan van daaruit de weg leiden.
Na het eetfestijn trekken we uiteraard nog eens de binnenstad in voor een afterdrinkje of twee drie vier.
Ben je verkocht? Stuur dan vlug een mailtje naar bestuur at zeus.UGent.be om te laten weten dat je komt! Vermeld ook de grootte van je entourage, zodat we de uitbater een idee kunnen geven van het aantal gegadigden.
Tot dan!

View file

@ -1,11 +0,0 @@
---
title: "Dinsdag 16 mei: adminavond"
created_at: 10-05-2006
time: 16-05-2006
location: Zeus-kelder
locationlink: $kelder
---
Het wordt weer eens tijd om alles onder handen te nemen eer de examens beginnen en het jaar voorbij is. Dus volgende dinsdag zullen we de services migreren en een aantal andere dingen tot voltooiing brengen die op de vergadering besproken zijn.
Alle leden zijn welkom om eens te komen kijken wat er allemaal bekokstoofd wordt. Breng gerust iets te eten of te drinken mee om de hongerige admins te voederen. Geen vingers tussen de tralies steken!

View file

@ -1,12 +0,0 @@
---
title: "Brouwerijbezoek: Zeus goes Bosteels"
created_at: 08-11-2005
time: 21-11-2005 13:00
location: Brouwerij Bosteels in Buggenhout
---
Maandag 21 november is het zover: Zeus' eerste brouwerijbezoek. We trekken naar brouwerij Bosteels in Buggenhout, bekend van Kwak, Tripel Karmeliet, 't Zelfde en DeuS: Brut des Flandres. Regelmatige winnaar op de World Beer Cup en World Beer Championships.
We verzamelen om 13 uur in de inkomhal van station Gent-Sint-Pieters. Wees op tijd, treinen wachten niet! De terugkomst wordt geschat rond 18 uur. -26 jarigen betalen 9 euro voor brouwerijbezoek en reiskosten (heen en terug). De rest betaalt zijn eigen ticket + 3.50 euro voor het brouwerijbezoek.
Als je wilt meegaan, stuur dan een mail naar bestuur at zeus.ugent.be waarin je aangeeft met hoeveel personen je zal zijn (lidmaatschap niet verplicht), en hoeveel daarvan op de Zeus Go Pass willen staan. Schrijf je zo snel mogelijk in, want de plaatsen zijn beperkt!

View file

@ -1,10 +0,0 @@
---
title: "FOSDEM 2006"
created_at: 21-02-2006
time: 25-02-2006 09:15
location: Station Gent-Sint-Pieters
---
Naar aloude gewoonte gaat Zeus dit jaar weer naar FOSDEM. We vertrekken deze zaterdag met de trein van 09u22 uit Gent en verzamelen om 09u15 op het perron. Een kleine tegemoetkoming in de prijs van het ticket zal voorzien worden, mits u meespoort op onze go pass. Voor zeus niet-leden, laat eens weten of je met ons mee wilt rijden op bestuur at zeus.ugent.be zodat we weten hoeveel externen er ongeveer meegaan.
Meer informatie over FOSDEM op [http://www.fosdem.be/](https://archive.fosdem.org/2006/)

View file

@ -1,12 +0,0 @@
---
title: Eerste ledenvergadering 2006
created_at: 15-02-2006
time: 20-02-2006 19:00
location: De Brug
---
Een nieuw semester is weer begonnen, tijd voor een tweede ledenvergadering. De eerste ledenvergadering van dit jaar gaat door op maandag 20 februari, om 19u, in studentenhuis De Brug. Alle leden zijn uitgenodigd en worden daar verwacht. Aspirant-leden zijn zoals altijd welkom.
We zullen vooral de verschillende adminprojecten (o.a. migratie van diensten) bespreken en de status van huidige softwareprojecten. Verder zijn er verschillende leden geinteresseerd in de implementatie van een aantal nieuwe projecten en zal daar dus ruim aandacht aan besteed worden. Als laatste kijken we ook even vooruit naar het nieuwe jaar, meer bepaald polsen we even naar kandidaten voor het bestuur van volgend jaar.
Alvast tot maandag!

View file

@ -1,18 +0,0 @@
---
title: Laatste ledenvergadering 2005-2006
created_at: 01-05-2006
time: 09-05-2006 19:00
location: De Therminal
locationlink: $therminal
---
De examens komen er weer aan en het is dus tijd om onze laatste ledenvergadering te organiseren.
Dingen op de agenda:
- admin troubles
- last minute activiteiten
- status van de subsidies
- verkiezing nieuw bestuur.
De vergadering zal van start gaan dinsdag 9 mei om 19u15 in studentenhuis de Therminal, gelieve vanaf 19u aan de ingang te verzamelen.

View file

@ -1,14 +0,0 @@
---
title: Eerste ledenvergadering
created_at: 08-10-2004
time: 12-10-2004 19:00
location: De Brug
---
Het is weer zover: een nieuw jaar, een nieuw bestuur en (hopelijk) nieuwe leden. Alle huidige leden en aspirant-leden worden dan ook verwacht op de eerste ledenvergadering. Deze keer gaat de ledenvergadering door op woensdag 19 oktober om 19u30 in studentenhuis De Brug. De zaal zal later nog bekend gemaakt worden.
Weet je studentenhuis De Brug niet zijn, [hier is een kaartje](http://web.archive.org/web/20070731123411/http://endymion.ugent.be/~simkin/stpietersplein.png). Als je er even het kaartje bijneemt (dank aan mappy.com) zie je onderaan het Sint-Pietersplein. Het lelijke kruisje poogt het adviescentrum voor studenten (waar je je bent gaan inschrijven) aan te geven. De Sint-Pietersnieuwstraat loopt op de kaart ongeveer recht naar boven. Studentenhuis "De Brug" is huisnummer 45.
Kun je deze keer spijtig genoeg niet komen maar wil je toch lid worden? Laat ons iets weten op bestuur at zeus.ugent.be en we spreken eens af in de S9.
**Update**: De vergadering gaat door in de zaal "Raad van Bestuur" op het gelijkvloers om 19u30. Een (iets beter) kaartje vind je [hier](http://zeus.ugent.be/~kromagg/debrug.png). (bovenaan plateau, onderaan sint-pietersplein, de "blauwe bol" duidt De Brug aan)

View file

@ -1,22 +0,0 @@
---
title: Zeus Adminavond
created_at: 04-03-2007
time: 05-03-2006 19:00
location: Zeus-kelder
locationlink: $kelder
---
Morgen, maandag 5 maart, is er weer een adminavond.
De (lange) avond begint rond 19u, omdat we nogal wat werk moeten verrichten.
Op de planning staan onder andere:
de mail in orde brengen (m.a.w. kenny weg),
de mailinglists in orde brengen (cfr. mail),
de sites allemaal op mephisto onder een nieuwe account (data wel op cartman),
nieuwe gateways installeren,
drivers van jesus in orde brengen,
timmy eens goed nakijken,
wendy (de printer) van naam veranderen en kijken of hij/zij een beetje betrouwbaar is,
...
Het is duidelijk dat dit een hoop werk zal zijn en daarom zou het handig dat zoveel mogelijk volk morgen naar de kelder afzakt!

View file

@ -1,22 +0,0 @@
---
title: Adminavond donderdag 14 december
created_at: 11-12-2006
time: 14-12-2006 19:00
location: Zeus-kelder
locationlink: $kelder
---
Kwestie van de activiteiten eens vooraf aan te kondigen: **nu donderdag adminavond!**
We verwachten de admins en geïnteresseerde leden rond 19 uur in de kelder.
Op de planning staat een volledige herorganisatie van ons netwerkje en herinstallatie van een aantal servers.
Bezoekers mogen ons steeds komen voeden.
UPDATE 14/12:
* 20:25 :: Maarten is ldap aant het installeren op cartman, Ken installeert Dapper Drake op timmy en Bart is bezig butters te herinstalleren. Tom speelt met bébé en Christophe & David houden een intiem onderonsje in het pc-lokaal van de S9 😉.
* 22:45 :: Timmy is volledig geherinstalleerd, weliswaar na een harddiskwissel. Kevin heeft ons ondertussen vervoegd en heeft zich over de configuratie van de website ontfermd. Maarten heeft ondertussen de ldap naar cartman overgezet.
* 1:06 :: Maarten is erin geslaagd de ldap succesvol over te zetten naar cartman. Alle logins gebeuren nu via cartman en shelly is dus overbodig. Timmy is nu wel helaas wat weerspannig. Butters is geconfigureerd als gateway en bijna klaar om ingeschakeld te worden. Choksondik werd eveneens geherinstalleerd. Zeus.ugent.be zou in principe rechtsreeks naar mephisto kunnen wijzen (ipv. de omweg via Kenny), maar list.zeus.ugent.be werkt nog tegen: de files daarvoor staan alleen op kenny (we kunnen daardoor niet alle http zomaar naar mephisto zenden). Garisson is nu de default ssh-server. Wanneer je inlogt, word je nu dus verwelkomd door garisson ☺️ En nu is 't gedaan met de adminavond! Slaapwel...

View file

@ -1,19 +0,0 @@
---
title: "FOSDEM 24/02/2007"
created_at: 22-02-2007
time: 24-02-2007 09:00
location: Station Gent-Sint-Pieters
---
Zeus WPI gaat ook dit jaar weer naar Fosdem. Fosdem staat voor Free and Open Source Software Developer's European Meeting. 2 dagen lang kan je presentaties en discussies bijwonen over verschillende projecten en thema's.
Onderwerpen die aan bod komen:
- Security
- Desktop Applications
- Development and Languages
- Kernel
- Web
- Internet Services
Wil je ook meegaan, kom dan zaterdag 24 februari om 9:00 naar de vertrekhal van het sint pietersstation. Vertrek je liever van ergens anders maar ga je toch graag mee, laat het ons dan weten door te mailen naar bestuur at zeus.ugent.be en dan kunnen we afspreken om elkaar in Brussel te ontmoeten. Meer info kan je vinden op [http://www.fosdem.org/](https://archive.fosdem.org/2007/). Hopelijk tot dan!

View file

@ -1,12 +0,0 @@
---
title: Eerste ledenvergadering
created_at: 11-10-2006
time: 11-10-2006 19:00
location: Therminal
locationlink: $therminal
---
Het nieuwe academiejaar is weer van start gegaan en dus ook het nieuwe Zeus jaar. Deze woensdag (11/10/2006, vandaag dus) is het de allereerste ledenvergadering van het jaar. Deze zal plaatsvinden om 19u in De Therminal, vergaderzaal 2. Bij deze is iedereen uitgenodigd en hopen wij dat zoveel mogelijk mensen komen opdagen.
Wat er zoal gedaan zal worden: nieuwe bestuur voorstellen (voor diegene die ons nog niet kennen), activiteiten bespreken, ... Uiteraard zal dit opgevolgd worden door een goede pint (of iets anders) !
Vele groeten, en hopelijk tot daar.

View file

@ -1,18 +0,0 @@
---
title: Ledenvergadering 21/02
created_at: 20-02-2007
time: 21-02-2007 19:00
location: kot van onze venetiaanse voorzitter Willem
---
Nu het nieuwe semester alweer een weekje bezig is, en we allemaal uitgerust zijn door de nieuwe vakantie, wordt het weer eens tijd om een ledenvergadering op touw te zetten.
Op de agenda zullen onder andere de volgende puntjes staan:
* Adminnen: go where no man has gone before (lees: afwerken van wat we vorig semester uitgespookt hebben)
* Fighting the [SPAM]
* Komende activiteiten: FOSDEM, Brouwerijbezoek, ribbetjesavond, lessen,...
* Subsidies (Wat te doen met...)
* ...
We spreken af op woensdag 21 februari op het kot van onze venetiaanse voorzitter Willem (St-Pietersnieuwstraat nr 216) om 19u00. Wie te laat is krijgt geen koekje. Wie op tijd is ook niet, tenzij er iemand koekjes meebrengt. Achteraf wordt er afgezakt naar het stamcafé.

View file

@ -1,14 +0,0 @@
---
title: ThermiLAN in samenwerking met Wina en VTK -- AFGELAST--
created_at: 18-03-2007
time: 23-03-2007
location: De Therminal
locationlink: $therminal
---
EDIT: Spijtig genoeg moet ik jullie melden dat Thermilan toch niet zal doorgaan door o.a. het zeer lage aantal inschrijvingen. Sorry voor de mensen die toch nog wilden komen. Alvast bedankt voor jullie begrip.
Het is enkelen van jullie misschien al opgevallen dat Zeus WPI dit jaar samen met Wina en VTK een LAN party organiseert. Deze zal doorgaan op 23 - 24 - 25 maart 2007 in de Therminal en biedt plaats aan 60 gamers. Je moet wel je eigen PC meebrengen, de LAN party gaat niet door in PC-zalen. Inschrijven kan nog steeds. Meer informatie vindt je op http://student.ugent.be/thermilan .
Ben je niet echt een gamer (zoals ik) dan is het misschien het ideale moment om samen te komen en te spelen met Linux, software schrijven, ....
Hopelijk tot dan!

View file

@ -1,56 +0,0 @@
---
title: "OpenTTD-avond"
description: Een spel met treinen. Geen ervaring nodig!
created_at: 05-04-2021
header_text_background: true # grijze achtergrond op headertekst, beetje leesbaarder
time: 10-04-2021 20:00
end: 11-04-2021 00:00
location: Online via Jitsi
banner: https://zeus.ugent.be/zeuswpi/Db32PEN0.jpg
tags:
- Gaming
---
In [OpenTTD](https://www.openttd.org/) ben je de baas van je eigen transportbedrijf. Vervoer
goederen en passagiers met camions en bussen, schepen en vliegers … en vooral treinen! Leg een veel
te complex **spoornetwerk** aan met seinen overal, of maak het zo efficiënt en overzichtelijk
mogelijk. Begin megalomane projectjes te bouwen tot je geld op is en elke gemeente je haat, of zorg
voor een gezond financieel beleid waar de NMBS zelfs niet van kan dromen. Jij beslist!
**Datum**: Zaterdag 10 april
**Tijd**: 20:00 tot middernacht
**Locatie**: Online, via Jitsi, coördinatie in het kanaal ~openttd op [onze Mattermost](https://mattermost.zeus.gent/zeus/channels/openttd).
- Om **20 uur** geeft Midgard een **stoomcursus** in het OpenTTD'en zodat dit event **toegankelijk is
voor iedereen**.
- Om **20.20 uur** wordt de server **gestart** en kun je je eerste busje laten rijden.
- Het einde is voorzien rond **middernacht**. Er zullen pauzes gehouden worden om elkaars
netwerk te bewonderen, de proviand bij te vullen en eens te kijken op de kaart wat de volgende
verbinding is die je wil bouwen.
In OpenTTD-termen is dit een ultrakorte sessie, dus een groot netwerk uitbouwen zal niet lukken.
Deze avond is wel perfect om het spel even uit te proberen en natuurlijk gezellig samen te spelen.
Je kan ook met meerdere vennoten één bedrijf besturen. Jullie kunnen dan de taken verdelen en
sneller bouwen. Het is ook ideaal om iemand met minder ervaring te pairen met doorwinterde spelers.
## Voorbereiding
Installeer [OpenTTD 1.10.3](https://cdn.openttd.org/openttd-releases/1.10.3/) en zorg dat je
het programma kan opstarten. Belangrijk: je hebt **echt versie 1.10.3** nodig, de multiplayer van
OpenTTD is niet compatibel tussen verschillende versies.
- Voor Linux: kijk eens of 1.10.3 niet toevallig in je repo's zit. Indien niet: voor Debian en Ubuntu
zijn er .deb's voorzien; op andere distro's zul je helaas vanaf source moeten builden. Spring
gerust binnen in ~openttd op onze Mattermost, we zijn meer dan bereid je hierbij te helpen.
- Voor Windows: je kunt kiezen tussen een installer (.exe) en een portable applicatie (.zip), en je
architectuur (32-bit/64-bit/ARM).
Enkele nuttige instellingen om alvast te controleren:
- *Settings → Interface → General → Close window on right-click: On*.
- *Settings → Interface → Construction → Default rail type: Last available*.

View file

@ -1,21 +0,0 @@
---
title: "HOT-OSM-avond"
description: Kaarten aanvullen voor gebieden in nood!
created_at: 05-04-2021
header_text_background: true # grijze achtergrond op headertekst, beetje leesbaarder
time: 17-04-2021 20:00
end: 17-04-2021 23:45
location: Online via Jitsi
banner: https://zeus.ugent.be/zeuswpi/hNEFmIkM.svg
tags:
- mapping
---
Digitale kaarten zijn in ons leven niet meer weg te denken, maar wist je dat miljoenen mensen leven in gebieden waar nog geen goeie kaarten beschikbaar zijn? Deze avond gaan we samen zo'n ontbrekende kaart aanvullen met OpenStreetMap. De doorwinterde OSM'ers binnen Zeus maken je wegwijs in het bewerken van OpenStreetMap, maar uiteraard ook in hoe je die data dan zelf kan gebruiken. En pietervdvn beantwoordt met veel plezier al je obscure vragen over routeplanning - 't is tenslotte zijn job.
We gaan werken met de [task manager](https://tasks.hotosm.org/) van het [Humanitair OpenStreetMap-Team](https://www.hotosm.org/). HOT werkt samen met organisaties die ter plekke hulp verlenen, zoals Artsen zonder Grenzen, en kunnen zo aangeven waar betere kaarten hoognodig zijn.
We starten om 20u met een uitleg rond de tooling zodat ook absolute starters kunnen meedoen. Iedereen kan daarna zelf aan de slag en er zijn meerdere ervaren personen aanwezig die je kunnen helpen bij vragen of onduidelijkheden.
Alvast tot dan!

View file

@ -0,0 +1,12 @@
---
title: "Humanitarian mapping"
description: met HotOSM
created_at: 17-03-2021
time: 10-04-2021
location: online
soon: true
tags:
- OSM
---
# TODO nog niet vastgelegd

View file

@ -0,0 +1,12 @@
---
title: Game Jam
description: Een interessante uitdaging
created_at: 02-03-2021
time: 02-04-2021
location: online
soon: true
tags:
- Gaming
---
# TODO nog niet vastgelegd

View file

@ -0,0 +1,12 @@
---
title: Lightning talks
description: Wist je dat...
created_at: 02-03-2021
time: 17-04-2021 19:00
location: Auditorium A0, S9
soon: true
tags:
- Talk
---
# TODO, nog niet vastgelegd

View file

@ -1,32 +0,0 @@
---
title: "Game-jam: Ludum dare 48"
description: Maak je eigen game in de befaamde Ludum Dare!
created_at: 13-04-2021
header_text_background: true # grijze achtergrond op headertekst, beetje leesbaarder
time: 24-04-2021 10:00
end: 27-04-2021 03:00
location: Online via Gathertown
banner: https://zeus.ugent.be/zeuswpi/0ObPfWlv.png
tags:
- gaming
- programmeren
---
In het weekend van 24-27 april gaat de [Ludum Dare 48 Game-jam](https://ldjam.com/events/ludum-dare/48) door. Kom samen met Zeus meedoen en maak je eigen game in 72 uur!
Op een game-jam maak je individueel of in groep een eigen game in een bepaalde tijd over een bepaald thema die aan het begin van het event wordt meegedeeld. Deze wordt daarna vaak beoordeeld door een jury of je de andere deelnemers. Deze jam duurt 72u, efficiënt werken en je game tot een core idee behouden is dus belangrijk! Perfect om je programmeer en design skills eens op de proef te stellen.
De game-jam is vrij toegankelijk voor iedereen. Meer info kan je vinden op: [https://ldjam.com/events/ludum-dare/rules](https://ldjam.com/events/ludum-dare/rules)
Kom zeker ook op onze Mattermost ([chat.zeus.gent](https://chat.zeus.gent)) in het kanaal [~game-jam](https://mattermost.zeus.gent/zeus/channels/game-jam) voor meer info en een plaats voor al je vragen. Hier kan je ook zoeken om eventueel een team te vorm.
## Belangrijkste informatie
- Je kan individueel of als team meedoen. Het is aangeraden om maximum met 4 in een team te zitten zodat de communicatie makkelijk blijft.
- Het event van Zeus gaat door op [gather.town](https://gather.town/app/JS21cqBEgQFi2qzy/zeus_doet_ludumdare-48). Er zijn verschillende kleinere tafels waar je met je team aan kan zitten. Er is ook een centrale grotere tafel waar je kunt gaan als je met andere groepen wilt babbelen of het niet erg vind gestoord te worden.
- Het Zeus event (in Gathertown) begint om 10u op zaterdag. Ludum Dare opent al om 3u 's ochtends, maar we raden aan om met een goede nachtrust te beginnen en pas om 10u samen met de rest erin te vliegen. De begeleiders zijn pas vanaf 10u aanwezig.
- Schrijf je zeker in op [ldjam.com/events/ludum-dare/48](https://ldjam.com/events/ludum-dare/48) zodat je je game ook kan uploaden.
- Meer info of vragen kan je stellen in Mattermost in het kanaal ~game-jam, ook gedurende de game-jam.
- Elke avond (zaterdag, zondag en maandag) om 21u spreken we voor een uurtje af aan de groepstafel (niet verplicht) om elkaar te vertellen en te tonen wat we al bereikt hebben. Zo kan iedereen van elkaar volgen waar ze mee bezig zijn en eens feedback krijgen.
- Post zeker in [~game-jam](https://mattermost.zeus.gent/zeus/channels/game-jam) ook work in progress en dergelijke. Feedback en reflectie is altijd goed!
- Extra swag points voor referenties naar Zeus in je game ;)
Op het einde van de game-jam worden de games verzameld en gedeeld op Mattermost en in een blog post. Zo kan de Zeus community ook eens je epic games bekijken!

View file

@ -1,47 +0,0 @@
---
title: "Lightning Talks - At Home Edition"
description: Boeiende bite-sized talks van je favorite Zeusers!
created_at: 13-04-2021
header_text_background: true # grijze achtergrond op headertekst, beetje leesbaarder
time: 03-05-2021 19:30
end: 03-05-2021 23:00
location: Online via Jitsi
banner: https://zeus.ugent.be/zeuswpi/_zwUbo1w.png
tags:
- talk
---
De legendarische bliksembabbels zijn dit jaar terug met de At Home Edition. Deze editie stellen Zeusers voor waarmee ze bezig zijn in deze thuisblijftijden. We geven jullie dit jaar acht sprekers die elk 15 minuten het beste van zichzelf zullen geven, en nadien nog 5 minuten krijgen om eventuele vragen te beantwoorden.
## Livestream
De talks worden gelivestreamed online via Teams: [Livestream link](https://teams.microsoft.com/l/meetup-join/19%3ameeting_OTQ2ODNiZGItNDQxZC00OWYwLWJiZmEtMTUwZTQzMTc0Zjg4%40thread.v2/0?context=%7b%22Tid%22%3a%22d7811cde-ecef-496c-8f91-a1786241b99c%22%2c%22Oid%22%3a%223c6c3904-e18e-48e7-9b8a-7723b5284dd3%22%2c%22IsBroadcastMeeting%22%3atrue%7d&btype=a&role=a).
Het is niet nodig om Teams te hebben om te kunnen kijken. De link is publiek toegankelijk en kan ook in de browser geopend worden. Heb je problemen om de livestream te openen? Open dan de link in een private window van je webbrowser en kies "anoniem deelnemen".
Na elke talk begeeft de spreker zich naar Jitsi, waar aanwezigen vragen online kunnen stellen. Dit gaat door op [meet.jit.si/LightningTalks2021](https://meet.jit.si/LightningTalks2021). Ook de vragen worden gelivestreamed via [Teams](https://teams.microsoft.com/l/meetup-join/19%3ameeting_OTQ2ODNiZGItNDQxZC00OWYwLWJiZmEtMTUwZTQzMTc0Zjg4%40thread.v2/0?context=%7b%22Tid%22%3a%22d7811cde-ecef-496c-8f91-a1786241b99c%22%2c%22Oid%22%3a%223c6c3904-e18e-48e7-9b8a-7723b5284dd3%22%2c%22IsBroadcastMeeting%22%3atrue%7d&btype=a&role=a). Het is dus enkel nodig om in Jitsi te zitten als je vragen wil stellen.
Merk op: indien er technische problemen zijn voor het streamen met Teams, zal de Jitsi link als back-up gebruikt worden.
## Onderwerpen
**Timo Dewaele**
Unsupervised gedragsmonitoring: deep learning met sensordata
**Pieter Vander Vennet**
OpenStreetMap: de ins en outs van data ophalen uit OSM
**Lorin Werthen**
PlanetWars, maar dan diep geleerd
**Arne Bertrand**
Microservices en SPARQL: Linked Data in de praktijk
**Nicky Vandeghinste**
De weg naar mentaal welzijn
**Wout Schellaert**
Hoe altijd net niet genoeg punten halen op de Google Hashcode
**Jeroen De Clerck**
Van AutoCAD tot Zaagsel: een snel overzicht van meubelmakelarij
**Jasper Devreker**
Devreker v NetTalk: domeinkapers kapen

Some files were not shown because too many files have changed in this diff Show more