forked from Chaospott/site
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
65a12a7d14
@ -21,6 +21,9 @@ Damit wird der Titel des Blogeintrags, das Datum der Veröffentlichung und die K
|
|||||||
#### Bilder
|
#### Bilder
|
||||||
Bilder für Blogeinträge werden unterhalb von Media in einem eigenen Verzeichnis (Jahr-MM-TT) abgelegt.
|
Bilder für Blogeinträge werden unterhalb von Media in einem eigenen Verzeichnis (Jahr-MM-TT) abgelegt.
|
||||||
|
|
||||||
|
<pre><code>~/site/media/jahr-mm-tt
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
Als erstes sollte man die Exif-Daten (z.B. Geoinformation) der Bilder entfernen.
|
Als erstes sollte man die Exif-Daten (z.B. Geoinformation) der Bilder entfernen.
|
||||||
|
|
||||||
Als erstes werden alle relevanten Metadaten entfernt. Dabei wird auch die „Rotation“ des Bildes entfernt.
|
Als erstes werden alle relevanten Metadaten entfernt. Dabei wird auch die „Rotation“ des Bildes entfernt.
|
||||||
@ -32,3 +35,7 @@ Ggf. muss das Bild gedreht werden, wenn es ohne die Metatags auf dem Kopf steht
|
|||||||
Der letzte Schritt setzt die Bilder auf eine einheitliche Breite.
|
Der letzte Schritt setzt die Bilder auf eine einheitliche Breite.
|
||||||
<pre><code>mogrify -resize "1140>" $Bild
|
<pre><code>mogrify -resize "1140>" $Bild
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
|
Wenn das Bild in der korrekten Größe und Ausrichtung vorliegt, kann es wie Folgt eingebunden werden.
|
||||||
|
<pre><code>![Quelle: Chaospott]({{ site.url }}/media/Jahr-MM-TT/$Bild.jpg)
|
||||||
|
</code></pre>
|
||||||
|
@ -34,12 +34,12 @@
|
|||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<li id="status_open">
|
<li id="status_open">
|
||||||
<a href="status.html" style="color:#5CB85C !important;">
|
<a href="/status.html" style="color:#5CB85C !important;">
|
||||||
Raum offen
|
Raum offen
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li id="status_closed">
|
<li id="status_closed">
|
||||||
<a href="status.html">
|
<a href="/status.html">
|
||||||
Raum geschlossen
|
Raum geschlossen
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
16
_posts/2015-03-22-cms-rheydt-espenstr.markdown
Normal file
16
_posts/2015-03-22-cms-rheydt-espenstr.markdown
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: "CMS in Rheydt"
|
||||||
|
date: 2015-03-22 23:42:00
|
||||||
|
categorie: CMS
|
||||||
|
---
|
||||||
|
Ende Januar hielten wir im Rahmen von „Chaos macht Schule“ einen Vortrag in einer kleinen Stadt am Niederrhein. In Rheydt haben wir über soziale Netzwerke gesprochen und damit die Projektwoche der [Gesamtschule Espenstraße](https://www.espenstrasse.squarespace.com/) unterstützt. Insgesamt diskutierten wir an zwei Tagen mit vier Klassen der 7. Jahrgangstufe über die Vor- und Nachteile von sozialen Netzwerken.
|
||||||
|
Unser Vortrag begann mit einer kurzen Vorstellung des Chaos Computer Clubs. Seit wann gibt es den CCC, was ist ein Hacker und was macht der eigentlich, während wir den ganzen Tag in der Schule hocken? Bei den Antworten der Schülerinnen und Schüler tauchte häufig die Kombination aus „einbrechen“, „Bank“ und „Daten klauen“ auf. Wir können uns natürlich nicht erklären, woher solche Vorstellungen kommen und versuchten an dieser Stelle das Bild des Hacker zu verbessern. Dies ist zwar innerhalb von zwei Stunden etwas utopisch, aber wenn am Ende des Tages die Vorstellung entsteht, dass Hacker ihre Skimaske nicht immer tragen, haben wir schon ein kleines Ziel erreicht.
|
||||||
|
|
||||||
|
Der Hauptteil des Vortrages beschäftigte sich mit sozialen Netzwerken. Zuerst überlegten wir, welche Hardware für den Betrieb und die Bereitstellung eines solchen Netzwerkes benötigt wird und wieviel Geld das wohl kostet. Wie groß das Rechenzentrum sein muss, damit die benötigten Computer darin Platz finden und wieviel Strom verbraucht wird, waren weitere Fragen, die wir gemeinsam mit den Schülerinnen und Schülern geklärt haben.
|
||||||
|
|
||||||
|
![Quelle: Chaospott]({{ site.url }}/media/2015-03-22/cms_rhyedt.jpg)
|
||||||
|
|
||||||
|
Im Anschluss an diese Überlegungen sammelten wir die Daten, welche der Nutzer in seinem Profil eintragen kann. Das fängt bei Name, Alter, Geschlecht an und hört bei Hobbies, Schullaufbahn und Lieblingsbuch auf. Diese Daten haben wir im Vorfeld auf kleine Kärtchen gedruckt und an die Schülerinnen und Schüler verteilt. Die Kärtchen wurden dann den Kategorien „Darf jeder sehen“ „Dürfen meine Eltern sehen“ „Dürfen meine Freunde und ich sehen“ und „Darf nur ich sehen“ zugeordnet. Name, Alter und Geschlecht tauchen vorwiegend in der ersten Kategorie auf und wurden als unproblematisch empfunden. Partybilder und Telefonnummer dürfen nur von Freunden gesehen werden. Das eigene Gewicht und der Inhalt des Chats ist in der Kategorie „Darf nur ich sehen“ gelandet.
|
||||||
|
|
||||||
|
Wie man diese Daten schützt und welche Einstellungen dafür bei sozialen Netzwerken angeklickt werden müssen, haben wir im letzten Teil des Vortrags erklärt bzw. vorgeführt.
|
8
_posts/2015-04-02-fnordtreff.markdown
Normal file
8
_posts/2015-04-02-fnordtreff.markdown
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: "fnordtreff"
|
||||||
|
date: 2015-04-02 17:42:23
|
||||||
|
categorie: fnordtreff
|
||||||
|
---
|
||||||
|
![Quelle: Chaospott]({{ site.url }}/media/2015-04-02/Fnord-treff.png)
|
||||||
|
Am 14. April findet der nächste fnordtreff im Cafe Nord statt. Los geht es dort um 19 Uhr. Die Adresse des Cafe Nord ist der [Viehofer Platz 1, 45127 Essen](http://www.openstreetmap.org/?mlat=51.46182&mlon=7.01383#map=19/51.46182/7.01383), am nördlichsten Teil der Essener Innenstadt. Die Gesprächsthemen reichen von Netzpolitik und Datenpannen zu Datenschutz und Hardwarebasteleien.
|
BIN
media/2015-03-22/cms_rhyedt.jpg
Normal file
BIN
media/2015-03-22/cms_rhyedt.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 366 KiB |
BIN
media/2015-04-02/Fnord-treff.png
Normal file
BIN
media/2015-04-02/Fnord-treff.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
34
status.html
34
status.html
@ -4,7 +4,7 @@ layout: default
|
|||||||
<script src="js/moment.js"></script>
|
<script src="js/moment.js"></script>
|
||||||
<script src="js/d3.min.js"></script>
|
<script src="js/d3.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
var timeFormat = '%Y-%m-%d %H:%M:%S';
|
var timeFormat = 'YYYY-MM-DD HH:mm:ss';
|
||||||
function toHHMMSS (sec_num) {
|
function toHHMMSS (sec_num) {
|
||||||
var hours = Math.floor(sec_num / 3600);
|
var hours = Math.floor(sec_num / 3600);
|
||||||
var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
|
var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
|
||||||
@ -54,14 +54,14 @@ layout: default
|
|||||||
var hourArray = [];
|
var hourArray = [];
|
||||||
while(hourStart < moment()) {
|
while(hourStart < moment()) {
|
||||||
|
|
||||||
if(hourArray[hourStart.weekday()] === undefined)
|
if(hourArray[hourStart.isoWeekday()] === undefined)
|
||||||
hourArray[hourStart.weekday()] = [];
|
hourArray[hourStart.isoWeekday()] = [];
|
||||||
|
|
||||||
if(hourArray[hourStart.weekday()][hourStart.hour()] === undefined)
|
if(hourArray[hourStart.isoWeekday()][hourStart.hour()] === undefined)
|
||||||
hourArray[hourStart.weekday()][hourStart.hour()] = 0;
|
hourArray[hourStart.isoWeekday()][hourStart.hour()] = 0;
|
||||||
|
|
||||||
if(moment.unix(openTimeArray[openTimeArrayIndex][1]) < hourStart && moment.unix(openTimeArray[openTimeArrayIndex][2]) > hourStart) {
|
if(moment.unix(openTimeArray[openTimeArrayIndex][1]) < hourStart && moment.unix(openTimeArray[openTimeArrayIndex][2]) > hourStart) {
|
||||||
hourArray[hourStart.weekday()][hourStart.hour()]++;
|
hourArray[hourStart.isoWeekday()][hourStart.hour()]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(moment.unix(openTimeArray[openTimeArrayIndex][2]) < hourStart && openTimeArray.length > openTimeArrayIndex + 1)
|
if(moment.unix(openTimeArray[openTimeArrayIndex][2]) < hourStart && openTimeArray.length > openTimeArrayIndex + 1)
|
||||||
@ -71,9 +71,9 @@ layout: default
|
|||||||
}
|
}
|
||||||
|
|
||||||
hourObjectArray = [];
|
hourObjectArray = [];
|
||||||
for(i=0;i<hourArray.length;i++) {
|
for(i=1;i<hourArray.length;i++) {
|
||||||
for(j=0;j<hourArray[i].length;j++) {
|
for(j=0;j<hourArray[i].length;j++) {
|
||||||
hourObjectArray[hourObjectArray.length] = {day:i,hour:j,value:hourArray[i][j]};
|
hourObjectArray[hourObjectArray.length] = {day:i-1,hour:j,value:hourArray[i][j]};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//end DA FOO!!
|
//end DA FOO!!
|
||||||
@ -92,9 +92,9 @@ layout: default
|
|||||||
$( "#space_closed_percent" ).width(percentClosed + '%');
|
$( "#space_closed_percent" ).width(percentClosed + '%');
|
||||||
|
|
||||||
if(openTimeArray.length > 0) {
|
if(openTimeArray.length > 0) {
|
||||||
longestTimeOpenStart = new Date(openTimeArray[Math.floor(openTimeArray.length - 1)][1] * 1000);
|
longestTimeOpenStart = moment.unix(openTimeArray[Math.floor(openTimeArray.length - 1)][1]);
|
||||||
longestTimeOpenEnd = new Date(openTimeArray[Math.floor(openTimeArray.length - 1)][2] * 1000);
|
longestTimeOpenEnd = moment.unix(openTimeArray[Math.floor(openTimeArray.length - 1)][2]);
|
||||||
$( "#longest_time_open td:last" ).html(toHHMMSS(openTimeArray[openTimeArray.length - 1][0]) + "h (" + longestTimeOpenStart.toLocaleFormat(timeFormat) + " - " + longestTimeOpenEnd.toLocaleFormat(timeFormat) + ")");
|
$( "#longest_time_open td:last" ).html(toHHMMSS(openTimeArray[openTimeArray.length - 1][0]) + "h (" + longestTimeOpenStart.format(timeFormat) + " - " + longestTimeOpenEnd.format(timeFormat) + ")");
|
||||||
|
|
||||||
if(openTimeArray.length % 2 !== 0)
|
if(openTimeArray.length % 2 !== 0)
|
||||||
$( "#median_time_open td:last" ).html(toHHMMSS(openTimeArray[Math.floor(openTimeArray.length / 2)][0]) + "h");
|
$( "#median_time_open td:last" ).html(toHHMMSS(openTimeArray[Math.floor(openTimeArray.length / 2)][0]) + "h");
|
||||||
@ -103,9 +103,9 @@ layout: default
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(closedTimeArray.length > 0) {
|
if(closedTimeArray.length > 0) {
|
||||||
longestTimeClosedStart = new Date(closedTimeArray[Math.floor(closedTimeArray.length - 1)][1] * 1000);
|
longestTimeClosedStart = moment.unix(closedTimeArray[Math.floor(closedTimeArray.length - 1)][1]);
|
||||||
longestTimeClosedEnd = new Date(closedTimeArray[Math.floor(closedTimeArray.length - 1)][2] * 1000);
|
longestTimeClosedEnd = moment.unix(closedTimeArray[Math.floor(closedTimeArray.length - 1)][2]);
|
||||||
$( "#longest_time_closed td:last" ).html(toHHMMSS(closedTimeArray[closedTimeArray.length - 1][0]) + "h (" + longestTimeClosedStart.toLocaleFormat(timeFormat) + " - " + longestTimeClosedEnd.toLocaleFormat(timeFormat) + ")");
|
$( "#longest_time_closed td:last" ).html(toHHMMSS(closedTimeArray[closedTimeArray.length - 1][0]) + "h (" + longestTimeClosedStart.format(timeFormat) + " - " + longestTimeClosedEnd.format(timeFormat) + ")");
|
||||||
|
|
||||||
if(closedTimeArray.length % 2 !== 0)
|
if(closedTimeArray.length % 2 !== 0)
|
||||||
$( "#median_time_closed td:last" ).html(toHHMMSS(closedTimeArray[Math.floor(closedTimeArray.length / 2)][0]) + "h");
|
$( "#median_time_closed td:last" ).html(toHHMMSS(closedTimeArray[Math.floor(closedTimeArray.length / 2)][0]) + "h");
|
||||||
@ -121,7 +121,7 @@ layout: default
|
|||||||
legendElementWidth = gridSize*2,
|
legendElementWidth = gridSize*2,
|
||||||
buckets = 9,
|
buckets = 9,
|
||||||
colors = ["#D9534E","#D47551","#D09453","#CCB054","#C6C856","#A8C458","#8CC059","#72BC5A","#5CB85C"],
|
colors = ["#D9534E","#D47551","#D09453","#CCB054","#C6C856","#A8C458","#8CC059","#72BC5A","#5CB85C"],
|
||||||
days = [ "Su","Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
days = [ "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su" ],
|
||||||
times = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"];
|
times = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"];
|
||||||
|
|
||||||
function showGraph (data) {
|
function showGraph (data) {
|
||||||
@ -198,7 +198,7 @@ layout: default
|
|||||||
<script>
|
<script>
|
||||||
$.getJSON("http://status.chaospott.de/status.json").done(function(data) {
|
$.getJSON("http://status.chaospott.de/status.json").done(function(data) {
|
||||||
|
|
||||||
var d = new Date(data.state.lastchange * 1000);
|
var d = moment.unix(data.state.lastchange);
|
||||||
|
|
||||||
var currentStreak = Math.floor(Date.now() / 1000) - data.state.lastchange;
|
var currentStreak = Math.floor(Date.now() / 1000) - data.state.lastchange;
|
||||||
|
|
||||||
@ -210,7 +210,7 @@ layout: default
|
|||||||
$( "#status" ).addClass('danger');
|
$( "#status" ).addClass('danger');
|
||||||
}
|
}
|
||||||
|
|
||||||
$( "#current_status_since td:last" ).html(d.toLocaleFormat(timeFormat));
|
$( "#current_status_since td:last" ).html(d.format(timeFormat));
|
||||||
|
|
||||||
setInterval(function(){
|
setInterval(function(){
|
||||||
currentStreak = Math.floor(Date.now() / 1000) - data.state.lastchange;
|
currentStreak = Math.floor(Date.now() / 1000) - data.state.lastchange;
|
||||||
|
Loading…
Reference in New Issue
Block a user