Piepkleine projectjes waarvan het al dan niet de moeite is ze te publiceren.

Bike sharing (fietsdelen), of: mobiliteit, hoe kan het beter?

Door pinna_be op maandag 20 juni 2016 10:45 - Reacties (31)
Categorie: mini projects, Views: 2.512

Mobiliteit is een probleem in vrijwel elke stad en er wordt dan ook druk gezocht naar oplossingen hiervoor. We overlopen eerst even bestaande alternatieven om dan over te stappen op bike sharing, welke wel eens een echte oplossing zou kunnen zijn.

Fietsen: alvast een mooi verhaal

Fietsen is in de lage landen heel erg populair. BelgiŽ (in het bijzonder Vlaanderen) en Nederland hebben op Denemarken na het hoogste fietsgebruik in Europa. Zo leggen de gemiddelde Nederlander en Deen jaarlijks elk zo'n 900 kilometer af. De Vlaming legt 600 kilometer af, wat significant minder is, maar nog steeds een heel groot verschil tegenover andere Europeanen.

http://i.imgur.com/pJnjQj3.png

Het belang van fietsen is groot: je met de fiets verplaatsen heeft namelijk heel wat maatschappelijke ťn persoonlijke voordelen. Enkele persoonlijke voordelen zijn de volgende:
  • financieel: Fietsen is goedkoop. De aankoop- en onderhoudsprijs zijn relatief laag, en je moet niet betalen voor brandstof.
  • gezondheid: Fietsen is gezond. Door naar het werk te fietsen, krijg je elke dag je portie beweging
  • mobiliteit in de stad: In de stad ben je vaak sneller al fietsend (zeker tijdens de spitsuren), en hoef je niet te zoeken naar parkeerplaats.
Enkele maatschappelijke voordelen zijn:
  • milieuvriendelijk: Fietsen is goed voor het milieu. Je produceert geen uitlaatgassen, en een fiets is gemaakt van slechts enkele eenvoudige materialen, wat de impact op het milieu eveneens vermindert.
  • geen files: Hoe meer fietsers, hoe korter de autofiles.
  • gezondheidskosten: Een actieve burger is een gezondere burger, en een gezondere bevolking bespaart de maatschappij geld.
Er zijn ook nadelen aan fietsen: in bepaalde situaties is het nu eenmaal niet handig om de fiets te nemen. Zo vinden veel mensen het niet leuk om te fietsen als het regent. Ook kun je per fiets minder (zware) voorwerpen vervoeren.

Openbaar vervoer: Een even mooi verhaal, maar met een wrange nasmaak

De meeste voordelen van fietsen gelden ook voor het openbaar vervoer, behalve gezondheidsvoordelen.

http://i.imgur.com/dtuA1OH.jpg

Ondanks het gebrek aan gezondheidsvoordelen, is het openbaar vervoer nog steeds een goede concurrent van de fiets. Enkele bijkomende voordelen zijn:
  • Geen onderhoudskosten (voor de gebruiker): Je hoeft niet naar de fietsenmaker te gaan, maar enkel nog je abonnement te vernieuwen.
  • Geen risico op diefstal: Een fiets kan gestolen worden, een bus of tram moeilijker.
  • Flexibiliteit: Je hoeft geen rekening te houden met waar je fiets geparkeerd staat - je stapt op en af aan welke halte je maar wil.
  • Ruimere mobiliteit: Je bus- of treinabonnement is ook in andere steden geldig. Je bent dus niet gebonden aan je eigen regio.
Initieel bedenk ik me dat het openbaar vervoer best onderschat wordt en eigenlijk toch een fantastisch concept is. Toch blijf ik met een wrang gevoel zitten, want ook trein, tram en bus hebben nadelen die voor mij zwaar doorwegen:
  • Beperkt aanbod op daluren: wanneer je 's avonds of 's nachts op stap gaat, moet je op het uur letten zodat je die laatste bus of tram niet mist.
  • Relatief lage frequentie: Tenzij je in Parijs of Londen bent, moet je vaak wachten op je bus of tram of zelfs je planning aanpassen aan de (beperkte) vertrek- en aankomsturen.
  • Betrouwbaarheid: Weersomstandigheden, stakingen of technische problemen kunnen al eens aardig roet in het eten strooien.
  • Veiligheidsgevoel: Niet iedereen voelt zich (zeker in de grootsteden) altijd even veilig op het openbaar vervoer.
  • Verkeersvertraging: Bussen (en in mindere mate trams) staan net als auto's vaak in de file, met lange rijtijden en wachttijden tot gevolg.
  • Comfort en hygiŽne: Niet iedereen zit graag op een overvolle bus of tram. Weinig persoonlijke ruimte en een vreemde geur dragen niet bij tot een aangename ervaring.
  • Gebrek aan beweging: Achteraf moet je alsnog joggen of naar de gym om je dagelijkse portie beweging te krijgen.
.

Fiets delen of bike sharing: de oplossing?

Wanneer we fietsen en openbaar vervoer combineren tot bike sharing (fiets delen), verkrijgen we een systeem dat automatisch de voordelen van fietsen heeft, maar ook die van trein, tram en bus.

Een eenvoudig voorbeeld van bike sharing is de Nederlandse OV-fiets. In dit systeem kan je voor een lage prijs een fiets huren in verschillende stations in heel Nederland. Op deze manier wordt de gebruiksvriendelijke en gezonde mobiliteit van fietsen gecombineerd met de ruimere (geografische) spreiding van het openbaar vervoer. Ook onderhoud is vereenvoudigd: je kan je fiets op verschillende plaatsen gratis laten herstellen. Dit is al een gedeeltelijke oplossing: je bent nog steeds zelf verantwoordelijk voor het onderhoud van je fiets, maar niet langer financieel.

OV-fiets is al een geweldig initiatief, maar er zit nog veel meer potentieel in bike sharing systemen. Een optimaal bike sharing systeem zou aan volgende voorwaarden moeten voldoen:
  • Onderhoudsroutine: Fietsen moet vaak gecontroleerd en indien nodig hersteld worden in de fietsenstalling voordat ze door iemand worden gehuurd. De fietsen moeten dus steeds in goede staat zijn.
  • Dichte spreiding: Er moeten veel stations zijn waar je een fiets kan huren en parkeren, zodat gebruikers nooit lang moeten wandelen van een station naar hun bestemming.
    • Op deze manier is je fiets altijd veilig geparkeerd en hoef je je nooit zorgen te maken over diefstal
    • Hierdoor heb je ook de flexibiliteit van het openbaar vervoer, je hebt namelijk de mogelijkheid om te vertrekken vanop een andere plaats dan waar je eerder bent aangekomen.
  • Beschikbaarheid: Fietsen moeten 24/7 beschikbaar zijn in alle stations.
  • Lage kostprijs: Fietsen "huren" moet goedkoop zijn en de prijs mag niet afhangen van hoe vaak je een fiets gebruikt.
Een systeem dat bovenstaande principes toepast, heeft de voordelen van zowel het openbaar vervoer als van de fiets. Merk overigens ook op dat beide systemen goed compatibel zijn: naar je werk fietsen maar terugkeren met de bus omdat het regent is perfect mogelijk.

Deze ideeŽn zijn al geÔmplementeerd, zoals in het Antwerpse 'vťlo'-systeem. Voor een lage prijs (zo kost een jaarabonnement bijvoorbeeld 36 euro) kan je onbeperkt fietsen lenen voor een maximale duur van 30 minuten. Voor langere ritten kun je bijbetalen, maar de dertig minuten zijn ideaal voor afstanden in de stad.

http://i.imgur.com/jTZbxS6.jpg

Fiets delen of bike sharing: de uitdaging

In Antwerpen zijn duizenden mensen al overtuigd van dit concept en ondertussen gebruiken al 712 steden (met in totaal 37500 stations) een gelijkaardig systeem. Het succes van bike sharing is onbetwistbaar!

Maar de zoektocht naar perfectie is echter nog niet helemaal voorbij. De volgende uitdagingen zijn nog niet (helemaal) opgelost:
  • Je wil lege stations vermijden, omdat mensen dan moeten wandelen naar het volgende station om een fiets te lenen.
  • Je wil tevens ook volle stations vermijden, omdat mensen hun fiets niet meer kunnen plaatsen in die stations.
Beide uitdagingen vormen eigenlijk niet zo'n grote problemen, omdat er door de bovengenoemde voorwaarden altijd een station dichtbij is. Toch kan je merken dat voor een leeg (of vol) station staan voor gelijkaardige frustraties zorgt als wachten op een bus die te laat komt.

Door de manier waarop mensenstromen zich gedragen bestaat er geen triviale oplossing en is veel coŲrdinatie vereist. Informatica maakt met algoritmes een efficiŽnte coŲrdinatie mogelijk. Aan zulke computationele oplossingen wordt alvast gewerkt.

Een belangrijk deel van de oplossing bestaat ook uit het informeren van de gebruikers. Zoals gezegd zijn er heel veel fietsstations. Ik woon bijvoorbeeld op ongeveer 50 meter van een station (station A) en op ongeveer 70 meter van een ander station (station B). Als ik op voorhand zou weten welk station vol of leeg is, dan zou ik frustratie kunnen vermijden en eventueel rechtstreeks naar een ander station gaan. Hiervoor zou je bijvoorbeeld een goede applicatie kunnen gebruiken.

De applicatie zou natuurlijk meer dan enkel informatief moeten zijn en zou ook een actieve rol moeten spelen in de coŲrdinatie en routeplanning. Stel dat er in station A slechts 1 fiets staat en in station B nog 10 fietsen, dan is station B de beste optie. Ondanks het feit dat B iets verder af is, is het station toch interessanter, omdat je in station A veel kans hebt dat iemand voor je de laatste fiets neemt. Deze kansberekening moet accuraat zijn en rekening houden met algemene trends, waarvoor data-analyses nodig zijn.

http://pinna.be/veloapp/img/app.png

Ook de eigenlijke routeplanning zou een belangrijke rol innemen in de applicatie. Om gebruiksvriendelijk te zijn, moet de app minimale interactie vereisen. In de routeplanner moet je enkel je bestemming ingeven en al de rest beslist de applicatie automatisch. De applicatie stelt dan routes voor, rekening houdend met de tijdsduur en de beschikbaarheid van fietsen in het startstation en van lege plaatsen in het eindstation. Overigens moet de gebruiker het gedrag van de routeplanner kunnen instellen door de afweging te maken tussen laag risico (op gebrek aan fietsen of lege plaatsen) en snelle reistijd.

De applicatie komt er aan

De applicatie die ik hierboven beschrijf, ben ik momenteel aan het ontwikkelen en ik neem ermee deel aan een wedstrijd in Antwerpen. Het winnen van de wedstrijd zou me helpen deze app te ontwikkelen met een hoge kwaliteitsstandaard en de app te integreren in de diensten van bike sharing systemen (met vťlo als eerste "testplatform"). Om deze wedstrijd te winnen, moet ik echter stemmen vergaren.

Ik zou dan ook heel erg vriendelijk willen vragen of jullie even de moeite zouden willen nemen om op mijn project te stemmen. Het kost slechts 2 minuten tijd en je helpt er mij en dit project ongelooflijk hard mee! Op mijn website leg ik uit hoe je kan stemmen en leg ik het concept van de app ook nog even uit in een filmpje.

UPDATE: ik ben vergeten te melden dat je een tablet kan winnen door te stemmen. (jammer genoeg wordt er niet gespecifieerd welk merk/model) (in de comments geef ik een formule die het je eenvoudiger kan maken om de schiftingsvraag in te vullen)

Alvast bedankt om te stemmen en ik hoop dat je genoten hebt van deze blog!

Meltdown emergency chat

Door pinna_be op dinsdag 9 december 2014 10:22 - Reacties (12)
Categorie: mini projects, Views: 3.895

inleiding
Een goede vriend van mij is autistisch (asperger). Dit houdt in dat hij soms iets anders denkt dan een "gewone mens". Erger nog: soms "crasht" hij, en is hij niet altijd in staat om aan verbale communicatie te doen. Dit noemt hij Aspie meltdown.

het concept
Aangezien hij in zo'n meltdown het moeilijk heeft om hulp te vragen of iets dergelijks, aangezien hij niet kan praten op zo'n moment, heeft hij een appplicatie ontwikkeld die hem moet helpen om het uit te leggen aan iemand en toch te kunnen communiceren op een non-verbale manier.

de app
De app is zeer eenvoudig, het begint met een openingstekst waarin een korte uitleg staat van de situatie (namelijk dat hij in een meltdown zit en waar hij gevoelig voor is)
http://media.tumblr.com/7f4a07a99a990d5ff3189eb586dc4569/tumblr_inline_nfwf8sxb3R1t61ts8.png
Deze tekst kan je helemaal aanpassen in de instellingen, die je kan bereiken door op menu te drukken of door lang op de tekst te drukken.

Vanuit het homescreen kan je (zoals uitgelegd in de app) verdergaan naar een eenvoudig chatvenster. Hierin kan je dan chatten, zodat je kunt vragen naar specifiekere hulp.
http://media.tumblr.com/b9ac733fddef18815395722399038696/tumblr_inline_nfwfn4jNbv1t61ts8.png

tot slot
Om andere autistische mensen te helpen of mensen met een gelijkaardig probleem (de tekst is helemaal instelbaar), heeft hij besloten de app op de play store te zetten. Om die mensen te helpen, moeten ze wel bereikt worden. Ik schrijf deze blog dan ook mee ter promotie.

Dus: ken je iemand die deze app nuttig zou kunnen vinden of kan je hem zelf gebruiken. Deel/installeer deze app dan zeker. De app is gratis en vrij van reclame.

https://play.google.com/s...oendebusser.aspiemeltdown

Url naar de ontwikkelaar zijn Tumblr-pagina
http://jgamer-aspie.tumbl...4/meltdown-emergency-chat

TweakBlog API is releasewaardig

Door pinna_be op donderdag 10 april 2014 00:52 - Reacties (11)
Categorie: mini projects, Views: 5.246

inleiding

Zoals u misschien al had gelezen in mijn vorige blog, ben ik begonnen met een third-party api te schrijven voor tweakblogs. Dit was begonnen als een persoonlijk project (ik wilde enkel mijn blogs op mijn website zetten), maar er leek wel wat interesse voor te bestaan.

features

Met deze versie van de API kan je
  • Een lijst van recente tweakblogs ophalen (met blacklist/whitelist features)
  • Een lijst van een gebruiker's tweakblogs ophalen
  • Voor elke tweakblog een titel, een samenvatting, de auteur (momenteel niet echt de auteur, zie later), de inhoud en de reacties opvragen
Dingen die er misschien in de toekomst nog bijkomen:
  1. Een eficiŽnte manier van lokaal opslaan en uitlezen
  2. Een manier van reacties achterlaten
  3. de echte auteur opslaan, naast de "url-auteur"
  4. Eventuele suggesties van jullie
issues
  1. lokaal opslaan/uitlezen:
    Ik heb geen idee of ik dit via SQL moet doen (de "mooie" oplossing imo) of via een file-based manier. Via SQL vind ik het mooist en is het handigst voor eventuele zoekfuncties en dergelijke, anderzijds is een file-based versie draagbaarder (sql is niet vereist). Deze functie is wel essentieel voor mensen met een beperkte datatrafiek op hun webhost
  2. reacties achterlaten
    Dit is me na meermaals proberen niet gelukt. Het is niet zo simpel als gewoon het formulier overnemen, aangezien ik vermoed dat de beveiligingstoken die je meekrijgt rekening houdt met het ip die het opvraagt. Ik ben gestopt met het zoeken van manieren om dit te omzeilen, eerst en vooral omdat het voor mij niet essentieel is, maar vooral ook omdat het me echt niet lukte. Als iemand hier een manier voor kent of tijd heeft een beetje te reverse engineeren, laat het dan aub weten, ik denk dat het voor veel tweakers een meerwaarde zou kunnen zijn.
how to use

Een lijst van recente Tweakblogs ophalen:


code:
1
2
3
require_once "Folder/TweakBlog.php";
    
$list_of_tweakblogs = TweakblogAPI\TweakBlog::getTweakblogsLatest();



Werken met filters
  1. crŽer een blacklist of een whitelist

    code:
    1
    2
    3
    4
    
    require_once "Folder/TweakBlog.php";
                
    // laat tweakblogs van marcotm.tweakblogs.net niet toe
    $bw = new TweakblogAPI\BlackWhiteList(TRUE, array("marcotm") );


    OF

    code:
    1
    2
    3
    4
    
    require_once "Folder/TweakBlog.php";
                
    // laat enkel van pinna.tweakblogs.net of marcotm.tweakblogs.net toe
    $bw = new TweakblogAPI\BlackWhiteList(FALSE, array("marcotm", "pinna") );

  2. haal je lijst op

    code:
    1
    
    $list_of_tweakblogs = TweakblogAPI\TweakBlog::getTweakblogsLatest($bw);

Een lijst van iemand's tweakblogs ophalen


code:
1
2
3
4
require_once "Folder/TweakBlog.php";
    
// haal de blogs van pinna.tweakblogs.net op
$list_of_tweakblogs = TweakblogAPI\TweakBlog::getTweakblogsFrom( "pinna" );



Een aparte tweakblog ophalen


code:
1
2
3
4
require_once "Folder/TweakBlog.php";
    
// haal een specifiek blog van pinna.tweakblogs.net op
$tweakblog = new TweakblogAPI\Tweakblog("http://pinna.tweakblogs.net/blog/10130/update-tweakblog-api-01.html");



Standaard attributen van een blog ophalen


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
require_once "Folder/TweakBlog.php";
    
// haal een specifiek blog van pinna.tweakblogs.net op
$tweakblog = new TweakblogAPI\Tweakblog("http://pinna.tweakblogs.net/blog/10130/update-tweakblog-api-01.html");

// haal de titel op    
$titel = $tweakblog->getTitle();
// haal het tijdstip van plaatsen op
$tijdstip = $tweakblog->getTime();
// haal een korte beschrijving (= de eerste 400 karakters van de blog) op
$beschrijving = $tweakblog->getDescription();
// haal de inhoud van de blog op
$bloginhoud = $tweakblog->getBlog();
// haal de schrijver van de blog op (bvb pinna bij pinna.tweakblogs.net en dus niet pinna_be, de eigenlijke gebruikersnaam)
$auteur = $tweakblog->getAuthor();



Reacties


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
require_once "Folder/TweakBlog.php";
    
// haal een specifiek blog van pinna.tweakblogs.net op
$tweakblog = new TweakblogAPI\Tweakblog("http://pinna.tweakblogs.net/blog/10130/update-tweakblog-api-01.html");

// haal een lijst van reacties op
$reactions = $last_tb->getReactions();
    
// reacties standaard attributen
$reaction = reactions[0];
// haal de naam van de plaatser op
$plaatser = $reaction->getName();
// haal de inhoud van de reactie op
$inhoud = $reaction->getMessage();



installatie

Op github vind je de source code van het project. Je moet simpel weg de source files BlackWhiteList.php, TweakBlog.php, TweakBlogreaction.php ergens in een folder steken en dan hoef je enkel TweakBlog.php te includen/requiren.

extra opmerkingen

In de readme.md beschrijf ik hoe je een donatie kan doen. Dit is geen specifieke vraag naar donaties (ook geen afwijzing uiteraard), ik heb dit geplaatst op verzoek van iemand die onbekend wil blijven en iets wilde doneren.

Een andere manier om te steunen, is om de api te gebruiken om een alternatief tweakblogplatform op te zetten of om simpelweg je blog op je website te zetten en het me te laten weten. Dit kost je niks en je doet me er een groot plezier mee.

De inhouden van blogs krijg je zonder opmaak, enkel de htmltags die in de originele blog staan staan erin. In het algemeen lijken deze tags voldoende om een redelijk mooie blog weer te geven.

bugs en feature-requests

Je mag ze laten weten op een manier naar keuze. Opties zijn DM via tweakers, een mail, reactie onder deze blog, via github, ... . Ik probeer steeds te antwoorden en zal in het antwoord laten weten of ik het kan/wil implementeren. Hoe dan ook ben je vrij (leve opensource!) om mijn code te forken en aan te passen. Verder kan je ook steeds een commit sturen, als ze iets bijbrengt voeg ik ze mee toe. (vergeet ook zeker niet jezelf als author te vermelden als je iets meldenswaardig hebt gedaan).

UPDATE: Tweakblog API 0.1

Door pinna_be op donderdag 27 maart 2014 00:30 - Reacties (28)
Categorie: mini projects, Views: 6.654

update
Het project wordt nu gehost op github:
https://github.com/ThomasPinna/TweakblogApi
Dit moet nog een beetje geŲrganiseerd worden, maar het is alvast makkelijker bereikbaar en makkelijker updatebaar.
Ook zijn ondertussen de utf-8 charset in de testcase verholpen.

inleiding
Dit is de eerste blog waarin ik een klein projectje openbaar maak. Merk op dit is een klein projectje, eerder een fix voor iets dat ontbrak in mijn leven.

Dit projectje is ontstaan doordat ik zin had om mijn blogs ook op een andere manier te tonen dan enkel op tweakblogs.net en ik het stom zou vinden om de blogs te kopiŽren en bij elke wijziging/verbetering beide versies te moeten verbeteren. Bovendien was mijn kennis php / DOM al een beetje aan het vervagen en wilde ik iets klein doen om dit terug op te frissen.

Daarom heb ik een kleine api ontwikkelt die enkele dingen kan met tweakblogs.

features
Features
  • blogs opvragen van een bepaalde blogger
  • van een blog de content, titel en samenvatting opvragen
  • volledig in php, enige dependencies zijn: simplexml en DOMdocument (meestal standaard geÔnstalleerd)
Todo:
  • een lijst van reacties opvragen voor een bepaalde tweakblog ondertussen geÔmplementeerd
  • indien de titel/beschrijving niet bestaat, automatisch opvragen (nu wordt het uit de rss gepikt)
  • (indien ik erin slaag) een reactieformulier afdrukken dat de reactie toevoegt aan tweakblogs
  • blogs opvragen voor meerdere bloggers
  • recente blogs (met blacklist/whitelist features)
  • cache functionaliteit (tekst lokaal/in database opslaan)
howto use
Hier vind je een running example http://pinna.be/tweakers/output.html *, waarbij de hoofdingen in <h3> de commando's voorstellen en het resultaat eronder wordt weergegeven.
* opgelet, lelijke opmaak. Bovendien kan het voorbeeld verouderd zijn ik raad je aan de test op github te runnen. (ondertussen geen running example meer, maar een htmlbestandje met voorbeeldoutput)

Maar dus, je hebt een klasse die als volgt werkt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class TweakBlog {
        // construct a blog with the url to the blog
        function __construct($url);
        // sets a title
        public function setTitle($arg);
        // sets the description
        public function setDescription($arg);
        // get the title
        public function getTitle();
        //  get the description
        public function getDescription();
        // get the contents of the blog
        public function getBlog();
        // returns a list of TweakBlogs
        static public function getTweakblogs( $url_name );
        private $url;
        private $title;
        private $descrip;
    }



En je gebruikt hem als volgt:

code:
1
2
3
4
tb = TweakBlog::getTweakblogs( "pinna" )
    $tb[0]->getTitle();
    $tb[0]->getDescription();
    $tb[0]->getBlog();



Download + install
Download gewoon de php klasse hier http://pinna.be/tweakers/tweakblog_api_0.1.zip, pak de zip uit en include het php bestandje waar je het nodig hebt. Je kan de "installatie" testen door TestTweakBlog() op te roepen. (!!!generereert output)

Als bovenstaande link niet werk: hier een dropbox link: https://dl.dropboxusercon...689/tweakblog_api_0.1.zip (Ik heb enkele problemen met mijn webhost, iets met ddos

update:: je vind de source nu op github: https://github.com/ThomasPinna/TweakblogApi

extra?
Je mag de code vrij gebruiken/aanpassen, wat je maar wil, wel moet je mijn naam (ergens in de code) vermelden wanneer je je baseert op mijn code en het wil releasen. Als je er iets leuk mee hebt gedaan, laat dan zeker iets weten! Ik brand van nieuwsgierigheid, (en ben misschien weer een beetje overenthousiast).
Verder: Als je nog zaken geÔmplementeerd wil zien, laat zeker iets weten. Houd er wel rekening mee dat dit bedoeld is om een klein projectje te zijn, ik zal dus geen grootse Artificial intelligence dingen hierin verwerken. Ook bugs mag je zeker melden (als je wil zelfs met de fix erbij :p ).