Showing posts with label Slimmer Werken. Show all posts
Showing posts with label Slimmer Werken. Show all posts

Saturday, May 15, 2010

DropBox voor het delen van bestanden

Wij gebruiken op meerdere PC's het programma KeePass om onze wachtwoorden bij te houden. Vaak liepen de verschillende bestanden uit elkaar. Het helpt ook niet om het bestand centraal op de (locale) fileserver te hebben staan als je het nodig hebt terwijl je onderweg bent.

Nu gebruik ik DropBox. Het is gratis (tot 2 GB). Je laadt een klein programmatje dat een eigen folder aanmaakt die gesynchroniseerd wordt met een persoonlijke folder op het web. Door op meerdere PC's het programma naar dezelfde folder op het web te wijzen hebben alle PC's precies de zelfde bestanden. KeePass staat nu op alle PC's en haalt zijn bestand van de locale folder, die via DropBox verbonden is met het centrale web bestand. En wat als je nu eens geen internet hebt? Dan staan de laatste versies van de bestanden nog steeds op je eigen PC in de folder van DropBox.

Excel Macro's en Functies voor blokken met tekst

Ik werk vaak met diverse text of database bestanden waarbij de gegevens niet eenvoudig te splitsen zijn omdat er b.v. spaties voor en achter de gegevens staan of omdat de gebruikersnamen aan elkaar geplakt zijn waarbij ik alleen de hoofdletter van de voor en achternaam kan gebruiken om de namen weer uit elkaar te halen b.v. JanPeterBalkenende moet zijn Jan Peter Balkenende. Ook heb ik soms bestanden waar lege regels in zitten. Natuurlijk kan je, nadat je een extra kolom met oplopende nummers hebt toegevoegd om de oorspronkelijke volgorde terug te krijgen, het geheel sorteren en dan de lege rijen eruit halen, maar een macrotje doet dat wel zo snel. De meeste varianten pas ik regelmatig even aan aan de wens van dat moment, dus zijn deze maco's niet lang het zelfde bij mij. Om ze aan je eigen bibliotheek toe te voegen kun je op [Alt]+[F11] drukken om de VBA editor te openen.

Hier is een overzicht van de verschillende functies:














Sorry for the image of the table, adding a table in html caused some funny behaviour by blogger.


Here are some Macro's and functions which over time I found, modified or wrote my self to manipulate text blocks. Most of them are to split text strings e.g. to split a string on Caps turns JanPeterBalkenende in Jan Peter Balkenende. I often modify these functions as needed.

Again to add these, open your VBA editor by pressing [Alt]+[F11] and select [Alt]+[F8] to select the Macro's or use the "Function" button before the edit line and select "User Created" functions.

====Start of Macro Section======
Sub RemoveSpaces()
' Keyboard Shortcut: Ctrl+Shift+T
' Use Ctrl+Shift+T to Trim all SPACES in a selection, You must assign the Ctrl+Shit+WhateverLetter your self
' by using [Alt] + [F8] in Excel, select the macro and then press Options
For Each r In Selection
a = r.Address
r.Value = Evaluate("Trim(" & a & ")")
Next
End Sub
'=====
Sub DeleteBlankRows()
'Deletes the entire row within the selection if the ENTIRE row contains no data.
Dim i As Long
'We turn off calculation and screenupdating to speed up the macro.
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
'We work backwards because we are deleting rows.
For i = Selection.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
Selection.Rows(i).EntireRow.Delete
End If
Next i
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub
'=====
Function CommaBeforeEveryCap(S As String) As String
'RobertVanDeMaan > Robert,Van,De,Maan
Dim X As Long
CommaBeforeEveryCap = S
For X = Len(CommaBeforeEveryCap) To 2 Step -1
If Mid(CommaBeforeEveryCap, X, 1) Like "[A-Z]" Then
CommaBeforeEveryCap = Left(CommaBeforeEveryCap, X - 1) & "," & Mid(CommaBeforeEveryCap, X)
End If
Next
End Function
'=====
Function SwapOnFirstCap(S As String) As String
'RobertVanDeMaan > VanDeMaan,Robert
Dim X As Long
SwapOnFirstCap = S
For X = 2 To Len(SwapOnFirstCap) Step 1
If Mid(SwapOnFirstCap, X, 1) Like "[A-Z]" Then
SwapOnFirstCap = Mid(SwapOnFirstCap, X) & "," & Left(SwapOnFirstCap, X - 1)
X = Len(SwapOnFirstCap)
End If
Next
End Function
'=====
Function CommaBeforeFirstNum(S As String) As String
'RobertVanDeMaan123 > RobertVanDeMaan,123
Dim X As Long
CommaBeforeFirstNum = S
For X = 2 To Len(CommaBeforeFirstNum) Step 1
If Mid(CommaBeforeFirstNum, X, 1) Like "[0-9]" Then
CommaBeforeFirstNum = Left(CommaBeforeFirstNum, X - 1) & "," & Mid(CommaBeforeFirstNum, X)
X = Len(CommaBeforeFirstNum)
End If
Next
End Function
'=====
Function CommaBeforeFirstCap(S As String) As String
'RobertVanDeMaan > Robert,VanDeMaan
Dim X As Long
CommaBeforeFirstCap = S
For X = 2 To Len(CommaBeforeFirstCap) Step 1
If Mid(CommaBeforeFirstCap, X, 1) Like "[A-Z]" Then
CommaBeforeFirstCap = Left(CommaBeforeFirstCap, X - 1) & "," & Mid(CommaBeforeFirstCap, X)
X = Len(CommaBeforeFirstCap)
End If
Next
End Function
'=====
Function RemoveBeforeLastDot(S As String) As String
'RobertVanDeMaan.com > com
Dim Y As Long
RemoveBeforeLastDot = S
For Y = Len(RemoveBeforeLastDot) To 1 Step -1
If Mid(RemoveBeforeLastDot, Y, 1) Like "." Then
RemoveBeforeLastDot = Mid(RemoveBeforeLastDot, Y + 1)
Y = 1
End If
Next
End Function
'=====
Function RemoveAfterLastDot(S As String) As String
'RobertVanDeMaan.com > RobertVanDeMaan
Dim Y As Long
RemoveAfterLastDot = S
For Y = Len(RemoveAfterLastDot) To 2 Step -1
If Mid(RemoveAfterLastDot, Y, 1) Like "." Then
RemoveAfterLastDot = Left(RemoveAfterLastDot, Y - 1)
Y = 1
End If
Next
End Function
'=====
Function CommaForLastSpace(S As String) As String
'Robert Van De Maan > Robert Van De, Maan
Dim Y As Long
CommaForLastSpace = S
For Y = Len(CommaForLastSpace) To 2 Step -1
If Mid(CommaForLastSpace, Y, 1) Like " " Then
CommaForLastSpace = Left(CommaForLastSpace, Y - 1) & "," & Mid(CommaForLastSpace, Y)
Y = 1
End If
Next
End Function
'=====
Function CommaForFirstSpace(S As String) As String
'Robert Van De Maan > Robert, Van De Maan
Dim X As Long
CommaForFirstSpace = S
For X = 2 To Len(CommaForFirstSpace) Step 1
If Mid(CommaForFirstSpace, X, 1) = " " Then
CommaForFirstSpace = Left(CommaForFirstSpace, X - 1) & "," & Mid(CommaForFirstSpace, X)
X = Len(CommaForFirstSpace)
End If
Next
End Function
'=====
Function CommaForSecondSpace(S As String) As String
'Robert Van De Maan > Robert Van, De Maan
Dim X As Long, MyCount As Long, Occurence As Long
CommaForSecondSpace = S
Occurence = 2
MyCount = 0
For X = 2 To Len(CommaForSecondSpace) Step 1
If Mid(CommaForSecondSpace, X, 1) = " " Then
MyCount = MyCount + 1
If MyCount = Occurence Then
CommaForSecondSpace = Left(CommaForSecondSpace, X - 1) & "," & Mid(CommaForSecondSpace, X)
X = Len(CommaForSecondSpace)
End If
End If
Next
End Function
'=====
Sub ClearTextToColumns()
'Once you used text to columns, Excel remembers this and performs this action on ANY text data that you paste into the spreadsheet.
'To stop this behaviour, you need to reset the text to columns settings.
On Error Resume Next
If IsEmpty(Range("A1")) Then Range("A1") = "XYZZY"
Range("A1").TextToColumns Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=False, _
Semicolon:=False, _
Comma:=False, _
Space:=False, _
Other:=False, _
OtherChar:=""
If Range("A1") = "XYZZY" Then Range("A1") = ""
If Err.Number <> 0 Then MsgBox Err.Description
End Sub

======End of Macro Section=====

Friday, May 14, 2010

Sneller werken en sorteren met AutoHotKey


AutoHotKey is een programma dat eigenlijk op geen enkele PC zou mogen ontbreken. Dit omdat het zoveel zaken eenvoudiger en vooral sneller kan maken. Het nadeel van AutoHotKey is dat het vaak enige tijd kost om het script aan te passen aan je eigen behoeften.

Je kunt AutoHotKey heel goed gebruiken als je heel vaak een paar standaard antwoorden gebruikt. In dat geval kun je hele blokken tekst oproepen door het intypen van een codewoord (kijk maar bij ::mvg in het script) of door een tekstblok aan een toetscombinatie te koppelen (b.v. Ctrl Y).

Nadat je AutoHotKey ginstalleerd hebt zie je een letter H in een groen vlakje in de Taskbar. Door met je rechter muistoets op het icoontje te drukken kun je het standaard script bestand openen. Hieronder heb ik een bestandje dat ik zelf gebruik. Ik heb een paar zaken weggelaten of ingekort. Voor mij zijn de belangrijkste zaken die ik iedere dag gebruik de volgende:

De rechter [Alt] toets op mijn Dell Latitude E6500 is nu een extra [Del] toets geworden.
De rechter [Ctrl] toets is nu een extra [Insert] toest, voornamelijk voor FreeMind.
De [Windows] + [Spatie] combinatie start een nieuwe Google pagina.
De [Ctrl] + [Shift] + V plakt de informatie uit het klembord als tekst alleen, zonder formatering.
De [Ctrl] + [Shift] + $ om het Euro-teken (€) te krijgen.
En [Ctrl] + [Shift] + D om de huidige datum en tijd in documenten en bestandsnamen te plaatsen.

Daarnaast gebruik ik de vele afkortingen, waarvan ik er maar een paar in de lijst laat zien als voorbeeld.

Omdat ik ook veel met het sorteren van tabellen werk heb ik ook een paar scriptjes om b.v. Outlook adressen die door een ; gescheiden worden en waarvan de achternaam eerst staat met een comma en dan pas de voornaam, om te zetten naar de voornaam eerst en dan de achternaam in een tabel vorm.

Of om een kleine tabel op het klembord snel te sorteren en alle dubbele eruit te gooien.

Kijk maar of je er wat aan hebt.

P.s. Ik heb over tijd van zoveel verschillende plaatsen voorbeelden gebruikt dat ik het niet allemaal weet terug te vinden.

Hier is een voorbeeld van wat sommige toetscombinaties doen nadat je de bron hebt gekopieerd:

=============================================
Sorteer en verwijder dubbele gegevens (kopieëer de bron met [Ctrl]+c
Bron

adlg akrg'dig'dag d
adrjkyue;ihgnd f e'jgadrg e
adlg akrg'dig'dag d
eoittoeitjrdteie5toiiere4t e[ rie5t 9u5ty-]5y
adlg akrg'dig'dag d
54y45oyiy 45e5t4e5y wrept 5t veptvqetpjiw
adlg akrg'dig'dag d
ki8rin ubyuca v vm lqecqq/q
adlg akrg'dig'dag d
5 v4j5yj4o5iy6juoy 45y 45y 45p v45

[Ctrl]+[Shift]+U (dit wordt d.m.v. "plakken" geplaatst)
5 v4j5yj4o5iy6juoy 45y 45y 45p v45
54y45oyiy 45e5t4e5y wrept 5t veptvqetpjiw
adlg akrg'dig'dag d
adrjkyue;ihgnd f e'jgadrg e
eoittoeitjrdteie5toiiere4t e[ rie5t 9u5ty-]5y
ki8rin ubyuca v vm lqecqq/q

==============================================
Gegevens met spaties voor en achter de tekst opschonen
Bron

' adlg akrg'dig'dag d
adrjkyue;ihgnd f e'jgadrg e
' eoittoeitjrdteie5toiiere4t e[ rie5t 9u5ty-]5y
' 54y45oyiy 45e5t4e5y wrept 5t veptvqetpjiw
ki8rin ubyuca v vm lqecqq/q
' 5 v4j5yj4o5iy6juoy 45y 45y 45p v45

[Ctrl]+[Shift]+T
adlg akrg'dig'dag d
adrjkyue;ihgnd f e'jgadrg e
eoittoeitjrdteie5toiiere4t e[ rie5t 9u5ty-]5y
54y45oyiy 45e5t4e5y wrept 5t veptvqetpjiw
ki8rin ubyuca v vm lqecqq/q
5 v4j5yj4o5iy6juoy 45y 45y 45p v45

==============================================
Email gegevens in een lijst plaatsen
Bron

abc@xyz.com; def@xyz.com; ghi@xyz.com; jkl@xyz.com; mno@xyz.com; pqr@xyz.com

[Ctrl]+[Shift]+I
abc@xyz.com
def@xyz.com
ghi@xyz.com
jkl@xyz.com
mno@xyz.com
pqr@xyz.com

==============================================
Email adressen uit een lijst, d.m.v. ; aan elkaar rijgen.
Bron

abc@xyz.com
def@xyz.com
ghi@xyz.com
jkl@xyz.com
mno@xyz.com
pqr@xyz.com

[Ctrl]+[Shift]+I
abc@xyz.com; def@xyz.com; ghi@xyz.com; jkl@xyz.com; mno@xyz.com; pqr@xyz.com;

==============================================




=====AutoHotKey Script=====

;This is a block of often used abbreviations that I want to expand (in EVERY application)
;In case you temporarily don't want this, you can either suspend autohotkey or type the abbreviation
;with a space somewhere in the abbreviation, when you later remove the space, the abbreviation will not be expanded.
::adm::administration
::afd::afdelingen
::afh::afhankelijk van
::b v::bij voorbeeld
::bv::b.v.
::d m v::door middel van
::i p v::in plaats van
::i v m::in verband met
::incl::inclusief
::ipv::i.p.v.
::ivm::i.v.m.
::ism::in samenwerking met
::mgr::manager
::mgrs::managers
::mgt::management
::mw::medewerker
::mws::medewerkers

::=<::{ASC 8804} ; type equal and less than sign, didn't use <= as this can be used to create left arrow ::>=::{ASC 8805} ; type more than sign and the equal sign , didn't use => as this can be used to create right arrow
::+/-::{ASC 0177} ; type +/- sign
::=/-::{ASC 0177} ; type +/- sign ; to make it easier, not having to press the Shift key for the plus sign.

::mvg::Met vriendelijke groet,{Enter}{Enter}Robert Ilbrink{Enter}{Enter}http://nl.linkedin.com/in/robertpilbrink{Enter}

; [Windows Key] + [Space] = Open Google in new tab in your default browser
#space::Run www.google.com

;I use the RIGHT ALT key on my DELL Latitude E6500 as a delete key.
;Special line in case the Dutch/NL international Keyboard keyboard is selected in the language bar.
;i don't like it when the Delete key is located so far away to the right top part of the keyboard.
LControl & RAlt::Send {DEL}

;I use the RIGHT ALT key on my DELL Latitude E6500 as a delete key
;Now the Standard Line for the US Keyboard keyboard in the language bar.
RAlt::Send {DEL}

;Use the Right Control Button as my Insert button on my DELL Latitude E6500.
;I use the insert key a lot with e.g. FreeMind or Xmind, used to own MindManager in 1996...
RControl::Send {Insert}

;[Ctrl]+[Shift]+$ = € an alternative could have been ::$$::€ , You need two $$ to get one €...
LControl & $::Send €

;[Ctrl]+[Shift]+" = ", Since I often use the Dutch languagebar settings to quickly write characters like é and à, writing a single " requires you to type the " and a {Space} because the Dutch language setting will use the " in combination with a letter to turn it into a special character. Bij using a {Space} after the " it knows that only the " is required. Pressing [Ctrl] + [Shift] + " will give me a double quote without having to type an extra [Space]
LControl & "::Send, {SHIFTDOWN}'{SHIFTUP}{SPACE}

;[Ctrl]+[Shift]+D = Paste Date & Time
;In various documents and filenames I want to be able to quickly insert the current date and time. Does roughly the same as [Ctrl] + ; in Excel.
^+D::
FormatTime, CurrentDateTime,, yyyyMMdd-HHmm
SendInput %CurrentDateTime%
return

;[Ctrl]+[Shift]+V = Paste Text Only, remove all formatting before pasting text
;This is what it all started. In certain Office 2007 applications,
;I could no longer easily write simple VBA macro's to paste text values only. No it is one script with
;the same behaviour throughout ALL applications.....(except for Evernote as Evernote also uses this combination)
^+v::
bak = %clipboard%
clipboard = %bak%
Send ^v
return

;Sub-routine to strip funny characters, used in the sorting function
REMOVECHAR:
AutoTrim,Off
StringCaseSense,On
StringReplace,string,string,–,-,All ;emdash
StringReplace,string,string,´,',All
StringReplace,string,string,’,',All
StringReplace,string,string,©,(C),All
StringReplace,string,string,“,",All ;left quote
StringReplace,string,string,”,",All ;right quote
StringReplace,string,string,®,(R),All
StringReplace,string,string,¼,1/4,All
StringReplace,string,string,½,1/2,All
StringReplace,string,string,¾,3/4,All
StringReplace,string,string,™,TM,All
StringReplace,string,string,«,<<,All StringReplace,string,string,»,>>,All
StringReplace,string,string,„,",All
StringReplace,string,string,•,-,All ;bullet
StringReplace,string,string,…,...,All
Return

^+U:: ; [Ctrl]+[Shift]+U (Unsorted)
;Column Sorting & Unique Filter
;YOU must first place the unsorted list in the clipboard [Ctrl]+c.
;then move cursor to where you want to paste the sorted and Unique data and type [Ctril]+[Shift]+U.
string = %clipboard%
Gosub,REMOVECHAR ;remove if you don't want santized values
Sort,string,C U
clipboard := string
Send ^v
return

^+T:: ; CTRL-SHIFT+T (Trim)
;Trim whitespace at the START AND END of every line in a block of text
;First place the block of text in the clipboard [Ctrl]+c
;Move to where you want to paste the trimmed text and press [Ctrl]+[Shift]+T
;You have to loop through every line.
;The standard behaviour is to only remove the spaces in front of the first line and after the last line
;In excel, I use the age old CaseConvert macro from Chip Pearson to do this....
textblock = %clipboard% ; Copy clipboard to var. textblock
clipboard = ; clear clipboard
Loop, parse, textblock, `n, `r ; loop through text block
{
string = %A_LoopField% ; copy current line of text to var. string
string := RegExReplace( string, "(^\s+)|(\s+$)") ; remove pefix & suffix spaces
clipboard = %clipboard%%string%`r`n ; glue current line at the end of your clipboard
}
Send ^v
return

^+M:: ; CTRL-SHIFT+M (Mail)
; Mail...take every email address in a block of text and separate each line in the block with ;
; First YOU must place the block of text in the clipboard [Ctrl]+c
; Move to where you want to paste the adjusted text and press [Ctrl]+[Shift]+M
; The standard behaviour is to remove the first and last spaces in each line and to end each line with a ;
; If you have multiple addresses per line you have to replace the [Space] or other character with a ;
; Instead of many lines in the block, you will get one very long line with ; as separators.
textblock = %clipboard% ; Copy clipboard to var. textblock
clipboard = ; clear clipboard
Loop, parse, textblock, `n, `r ; loop through text block
{
string = %A_LoopField% ; copy current line of text to var. string
string := RegExReplace( string, "(^\s+)|(\s+$)") ; remove pefix & suffix spaces
clipboard = %clipboard% %string%; ; glue current line/string at the end of your clipboard
}
Send ^v
return

^+I:: ; CTRL-SHIFT+I (iMail)
; Mail...take every email address in a block of text and separate each address as a line
; First YOU must place the block of text in the clipboard [Ctrl]+c
; Move to where you want to paste the adjusted text and press [Ctrl]+[Shift]+M
textblock = %clipboard% ; Copy clipboard to var. textblock
clipboard = ; clear clipboard
Loop, parse, textblock, `n, `r ; loop through text block
{
string = %A_LoopField% ; copy current line of text to var. string
StringReplace,string,string,;,`r`n,All
clipboard = %clipboard% %string%`r`n ; glue current line at the end of your clipboard
}
textblock = %clipboard%
clipboard = ; clear clipboard
Loop, parse, textblock, `n, `r ; loop through text block
{
string = %A_LoopField% ; copy current line of text to var. string
string := RegExReplace( string, "(^\s+)|(\s+$)") ; remove pefix & suffix spaces
clipboard = %clipboard%%string%`r`n ; glue current line at the end of your clipboard
}
Send ^v
return

^+O:: ; [Ctrl]+[Shift]+O
;Swap list of strings around comma... Clinton, Bill becomes Bill Clinton
;YOU must first place the list in the clipboard [Ctrl]+c.
;then move cursor to where you want to paste the list and type [Ctril]+[Shift]+O.
Textblock = %clipboard%
clipboard = ; clear clipboard
Loop, parse, textblock, `n, `r ; loop through text block
{
CurrentString = %A_LoopField% ; copy current line of text to var. CurrentString
StringGetPos, pos, CurrentString,`,
if pos >= 0
{
length1 := pos
length2 := pos + 2
StringLen, length, CurrentString
StringMid, StringOnLeft, CurrentString, 1, %length1%
StringMid, StringOnRight, CurrentString, %length2%, %length%
StringOnRight := RegExReplace( StringOnRight, "(^\s+)|(\s+$)") ; remove pefix & suffix spaces
}
clipboard = %clipboard%%StringOnRight% %StringOnLeft%`r`n ; glue current line at the end of your clipboard
}
Send ^v
return


;======================================
;Commented out instructions that I don't use anymore
;
;LControl & !::Send Dit is een test met een{ENTER}nieuwe regel voor de volgende tekst{ENTER}en een derde regel.
;
; [Linker Control] + < = =< , srews up sizing of selected text in Word ;LControl & <::send {ASC 8804} ; [Linker Control] + > = => , srews up sizing of selected text in Word
;LControl & >::send {ASC 8805}

; [Linker Control] + + = +/- , screws up zooming with Ctrl +
;LControl & +::send {ASC 0177}

=====Einde AutoHotKey Script=====

Tuesday, January 12, 2010

Het delen van aantekeningen


Dit artikel verscheen eerder op mijn Management, Learning & Development blog.

Misschien bestaat mijn volgende idee al ergens en heb ik het nog niet gevonden of heeft de Apple
iSlate, die over een paar dagen uitkomt, deze functionaliteit.

Vroeger maakte je tijdens de colleges aantekeningen in de marge van je boek, syllabus of dictaat of in een los notitieboek.

Met eReaders en de nieuwe Tablet computers die continue in verbinding staan met het internet ontstaan prachtige mogelijkheden om informatie met elkaar te delen.

Boeken en collegedictaten zullen de komende jaren steeds vaker electronisch aangeboden worden. Op dit moment is het werken met eReaders echter vaak nog beperkend om verschillende redenen.
  • De meeste eReaders werken met zelf ontwikkelde en beschermde document types waardoor uitwisseling vaak onmogelijk is, tenzij de bescherming gekraakt wordt zoals bij de Kindle.
  • Vaak kunnen documenten alleen maar gelezen worden en niet veranderd
  • Vaak kunnen er geen notities bij het document geplaatst worden
Zelf aantekeningen maken
De eerste stap wordt volgens mij dat gebruikers binnenkort zelf gemakkelijk notities kunnen maken in de documenten die ze op dat moment lezen. Dat is soms nu al mogelijk, maar nog niet op een standaard manier en vaak is het nog omslachtig. Zo zou een student bij het lezen van een boek of collegedictaten zelf notities kunnen maken, ongeveer zoals je al jaren in MS Word een zin
of een woord kunt markeren en daar dan een notitie bij kunt maken, maar dan meer op de manier zoals ze in de video laten zien. Want je wilt meer vrijheid dan die oude MS Word notities, en ook gemakkelijk handschrift, formules, tekeningen, audio, video of animaties toe kunnen voegen.

Aantekeningen delen en beoordelen
Leuk, dan heb jij, jouw eigen aantekeningen. Het wordt pas echt interessant als je die notities met elkaar kunt delen. Als je online zou kunnen zien wie er nog meer notities hebben gemaakt voor dit document. Je kunt dan, afhankelijk van de waarderingscijfers die anderen aan die
notities gegeven hebben, bijvoorbeeld de best gewaardeerde notities op het gebied van:
  • Meest duidelijke uitleg
  • Beste aanvulling op het onderwerp
  • Beste nieuwe ideeën naar aanleiding van het onderwerp
  • Meest controversiële notities
  • etc.
Je kiest dan b.v. om alleen notities te zien uit dit college jaar, of alleen die met tekeningen en je kiest de categorie "Meest duidelijke uitleg". Dan selecteer je de 5 best scorende auteurs en je ziet aan de zijkant van je collegedictaat de tientallen labels van die 5 auteurs. Je zou ook een bepaald hoofdstuk of een alinea kunnen markeren waar je wat meer over wilt weten en alleen de notities over dat onderwerp kunnen opvragen.

Automatische feedback voor docenten
Op deze manier delen studenten hun kennis en krijgen docenten en hoogleraren feedback over de manier waarop onderwerpen anders beschreven kunnen worden.

Standaard API
Een universele standaard, om dit voor elkaar te krijgen is heel belangrijk. Op zich hoeft het document zelf niet eens beschreven of veranderd te worden want de notities wil je los van het document kunnen beheren. Ik denk dat er een goede wereldwijde standaard nodig is waarbij in b.v. een XML document bijgehouden wordt waar precies staat waar in het document iedere notitie thuis hoort, welke document versie het betreft en welke andere gegevens bij de notitie horen, zoals formules, foto's, filmpjes, animaties, etc. Op deze manier kun je de notities van verschillende medestudenten aan jouw document toevoegen of zo weer weglaten. Ook is het belangrijk dat een notitie die gemaakt is op een MAC Tablet op een Google PC, XO-3 (zie foto hiernaast) of een Windows PC gebruikt kan worden en omgekeerd.

Waardering en commentaar
Belangrijk is dat er ook een "rating" (waarderings-) systeem in zit zodat anderen de notities kunnen beoordelen. Docenten zullen zelf ook waarderingen willen geven en notities willen kunnen toevoegen, b.v. een waarschuwing over een verkeerde of ongebruikelijke uitleg, zonder de oorspronkelijke noties zelf te kunnen aanpassen. Het onderdrukken, weghalen of censureren van notities lijkt mij geen goed idee zolang anderen er commentaar op kunnen hebben en het naar boven of naar beneden kunnen stemmen.

PubSub, Publish/Subscribe
Daarnaast hoop ik dat de gepubliceerde notities als een soort RSS of TwitterFeed beschikbaar gesteld worden zodat er snel op nieuwe ontwikkelingen gereageerd kan worden waardoor waardevolle notities snel gevonden worden en controversiële of gewoon foute notities snel van een waarschuwingslabel voorzien kunnen worden.

Niet alleen documenten, ook video's
Het idee hier is dat je een soort schil om een bestaand document maakt waarbij je commentaren van verschillende mensen kunt zien rondom een deel van de tekst. Omdat er ook steeds meer video's zijn van colleges, zou je dit concept ook kunnen gebruiken voor b.v. video. Als je naar een video kijkt en je hebt commentaren ingeschakeld kun je op bepaalde momenten de commentaren zien die anderen op dat punt in de video hebben. B.v. een ander uitleg over het zelfde thema of een toevoeging. Doordat het commentaar als een schil om het origineel zit, hoef je de video (of een andere bijdrage) zelf niet te veranderen.

Kijk ook even naar de video (boven) om het Gizmodo filmpje te zien over Microsoft's visie op Tablet Computing uit 2009. De Tablet die Microsoft in Januari 2010 lanceerde lijkt echter niet op de tablet uit het filmpje.

Sunday, December 20, 2009

Verbetering van zoekresultaten


Als schrijver op twee blogs zie ik dat veel bezoekers die via een zoekmachine komen (99% via Google) vaak niet naar het juiste artikel gestuurd worden en daardoor meteen afhaken. Zoekmachines zoeken niet in de afzonderlijke blog artikelen maar indexen vaak de hele blog in een keer. Hierdoor kunnen de gezochte termen uit meerdere artikelen komen. Als gevolg daarvan krijgt de gebruiker in de zoekresultaten een link naar één van de artikelen in de blog. Of die link naar het "juiste" artikel verwijst is vaak een kwestie van geluk hebben en vaak gaat dat mis. In de meeste gevallen verwijst de link in de zoekresultaten echter naar de hoofdpagina van de blog.

Het probleem
In een bericht op de Google support site heb ik een voorstel gedaan. Als de zoekopdracht meerdere zoektermen bevat, worden die zoektermen in de regels eronder vet afgedrukt. Zo zocht er laatst iemand naar "snomed CT alternatieven". Op mijn innovatie blog staat een artikel over SNOMED CT* én een artikel over software alternatieven voor bekende programma's. De gebruiker was volgens mij op zoek naar eventuele alternatieven voor SNOMED omdat dit systeem gelicenceerd is. Het zoekresultaat geeft echter een link naar het artikel over software alternatieven en niet naar het artikel over SNOMED CT. Dit schijnt een bekend probleem te zijn.
Dit is het oude resultaat:

Robert's Technologie en Innovatie blog: Software alternatieven vinden

De website geeft alternatieven voor Windows, Mac en Linux. ... Slimme electriciteitsmeters ·SNOMED CT en kleurcodering van medicijnen ... ilbrinkinnovatie.blogspot.com/.../software-alternatieven-vinden.html

Waarom er ook iets tussen staat over slimme elektriciteitsmeters is mij een volslagen raadsel. Ik heb wel iets geschreven over die dingen maar in deze zoekopdracht horen ze echt niet thuis.

Voorstel:
Een paar dagen geleden heb ik naar Google toe een voorstel gedaan. Ik weet niet of mijn voorstel al "jaren" bekend is of niet. Het voorstel is: plaats als er meerdere zoekwoorden zijn, links in elk van de gevonden woorden. Het ziet er dan zo uit:

Robert's Technologie en Innovatie blog: Software alternatieven vinden

De website geeft alternatieven voor Windows, Mac en Linux. ... Slimme electriciteitsmeters ·SNOMED CT en kleurcodering van medicijnen ... ilbrinkinnovatie.blogspot.com/.../software-alternatieven-vinden.html

De vet geschreven woorden zijn nu links naar de artikelen waar ze in voor komen.

De gebruiker kan nu zelf kiezen welk woord in het zoek resultaat het belangrijkste is en waar de link naar toe leidt.

Hoe we het probleem bij plaatjes gaan oplossen is nog niet duidelijk. Bijna alle zoek resultaten op plaatjes komen op de hoofd pagina's van mijn blogs uit en niet zoals je zou willen op het specifieke artikel zelf.

Eigenlijk wel gek dat Google zelfs haar eigen blogs niet eens goed, artikel voor artikel, indexeert.

* SNOMED CT is een methode om de registratie van medische gegevens te vereenvoudigen en te standardiseren waardoor gegevens gemakkelijker vergeleken kunnen worden, ziekenhuis resultaten vergeleken kunnen worden en ook onderzoeken op grote schaal (regionaal, landelijk, internationaal) gedaan kunnen worden.

Wednesday, December 16, 2009

Lange bestandsnamen inkorten, How to shorten long file names


Als ik via Juice podcasts download zitten er vaak bestanden bij met een gigantisch lange naam. Het laatste deel van de bestandsnaam zijn tracking markers. Mijn MP3 spelers (allemaal iRivers) kunnen die extreem lange bestandsnamen niet aan. Het gevolg is dat ze als er een lange bestandsnaam op staat die iRivers continue in een reboot loop komen. Dan moet ik ze weer even via de USB kabel aansluiten om de lange bestandsnamen in te korten.

Die bestanden zien er dan ongeveer zo uit:
PodcastBestand_nvb_20091207174750_nva_200912081757.mp3
met heel veel "nva" en "nvb" referenties.

Sinds enige tijd gebruik ik nu FileNameFixer. Dit programmatje kun je instellen op een vaste directory en een maximale bestandslengte. Nadat alle MP3 bestanden in één directory zijn verschoven (bij Juice in het [Preferences]-[Advanced] gedeelte met het volgende script: move "%f" "C:\Podcasts\TempFiles\") laat ik eerst FileNameFixer zijn werk doen alvorens een batch scriptje te draaien die alle podcasts op de zelfde geluidssterkte zet. Dat scriptje ziet er zo uit:

"C:\Program Files\MyPrograms\mp3gain.exe" /r /d -4 /c /p C:\Podcasts\TempFiles\*.mp3
Move /Y C:\Podcasts\TempFiles\*.mp3 C:\Podcasts\LevelledFiles\
Move /Y C:\Podcasts\TempFiles\*.* C:\Podcasts\RemainingFiles\
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState

De eerste regel start het programma mp3gain in command line mode en loopt alle zojuist gedownloade podcasts door om ze allemaal het zelfde geluidsniveau te geven. Daarna worden alle MP3 bestanden gekopieerd naar LeveledFiles en alle overige files (meestal video bestanden of PDF's) naar RemainingFiles. Het laatste commando zet de PC in slaap. Soms gebruik ik op de laatste regel: shutdown.exe -s -f als ik de PC na afloop wil laten afsluiten.

UPDATE: Omdat ik alles via een script wilde laten werken heb ik het inkorten van lange bestandsnamen als DOS script uitgewerkt. Ga naar het volgende artikel om te lezen hoe je dit automatisch in DOS kunt doen: Podcast-manipulatie-script

Cutting long podcast file names.
Some podcasts have long tracking postfixes in their file names which makes my iRivers contstanly reboot. A few months ago, I added an extra step in my download procedure.
I download the podcasts with Juice and within Juice I automatically copy all the files to one central directory (in Juice [Preferences]-[Advanced] add the following script: move "%f" "C:\Podcasts\TempFiles\"). Then I use FileNameFixer to automatically cut the long file names to a maximum length of 60 characters (with a default directory of C:\Podcasts\TempFiles and a default file length of 60). Ater that I run the script above to make sure all audio levels are the same, as I hate these huge variations in recording levels between different podcasts. After processing the mp3 files, the mp3's are copied to LeveledFiles and the remaining files (mostly video and pdf's) are copied to RemainingFiles. The last command line puts the PC in suspend (sleep) mode as I often run the mp3gain script at night.

UPDATE: Since I want to run everything in a script, I created a DOS script to automatically reduce long file names to a fixed maximum length. To read more about this script follow this link: Podcast manipulation script

Wednesday, June 24, 2009

SYDI houdt je PC en netwerk configuratie bij


Documentatie over PC instellingen en netwerk configuratie zijn meestal verouderd.

Een paar jaar geleden heb ik wel een jaar lang aan mijn toenmalige netwerk administrator gevraagd om de netwerk administratie bij te werken. Toen dit na een jaar nog niet gedaan was heb ik het uitbesteed aan een uitzendkracht. Het was een lastige opgave die enorm veel tijd in beslag nam en zoals te verwachten was de documentatie nat een paar maanden alweer verouderd.

SYDI kan je daarbij helpen. SYDI (Script Your Documentation Instantly) heeft verschillende programmatjes (scripts) die de configuratie informatie in een MS word bestand of in een XML bestand plaatsen. Op een eenvoudige laptop kwam dat neer op een 21 pagina's tellend document waarin werkelijk alles stond wat je maar zou willen weten van die PC. Het document genereren duurde ongeveer 5 minuten.

Thursday, April 16, 2009

Gemak dient de mens


Acceptgiro snel, eenvoudig en zonder fouten betalen.

Telebankieren gaat gemakkelijk maar ten opzichte van jaren geleden moet je wel meer zélf doen. Vroeger nam je de acceptgirokaart, tekende je deze en stuurde hem op naar de bank. Tegenwoordig moet je zelf de gegevens van de acceptgiro lezen en invoeren op de website van de bank als je wilt betalen.

Niet handig en geeft soms frustratie.
Ik weet niet hoe het anderen vergaat maar ik loop af en toe aan tegen kleine frustraties waarbij b.v. een postbank nummer niet geaccepteerd wordt omdat je er dan weer een "P" voor moet plaatsen of dat de 16 cijferige transactiecode niet geaccepteerd wordt omdat er soms minder dan 16 cijfers op de acceptgiro staan. Zeker met dit laatste heb ik iemand anders een tijd geleden enorm lang zien stoeien.

Fouten kosten geld
Dit is niet alleen lastig voor de gene die de acceptgiro wil betalen ook voor de ontvanger is het lastig want als er kleine fouten in de betalingsopdracht staan kan het soms veel geld en tijd kosten om dit uit te zoeken. Ik zie verschillende mogelijkheden om dit anders te doen.

Zet de transactie alvast klaar.
Bij iDeal wordt de transactie in real-time klaargezet terwijl dit voorbeeld niet real-time is.
Je geeft de leverancier nog steeds geen toestemming om automatisch geld van je rekening over te schrijven maar de leverancier mag wel een transactie voor jou klaarzetten bij jouw bank. Je krijgt van de bank een email dat er één of meerdere transacties klaar staan, die je alleen maar hoeft te bevestigen. Om het voor de eindgebruiker gemakkelijk te maken zou bij de klaargezette betalingsopdracht ook een PDFje kunnen zitten van de factuur. Dan hoeft de klant niet eerst tussen de papieren facturen te zoeken. Tussen de banken en de leveranciers zal een standaard gegevensformaat moeten worden afgesproken om de betalingsopdracht te kunnen voorbereiden. Je zou hierbij kunnen denken aan een variant van het xml formaat zoals er ook al het xbrl formaat bestaat.

Cashflow inzicht.
Als ze het fraai doen zet de leverancier de transactie ruim van te voren klaar maar wel geagendeerd, zodat als je de transactie vandaag goedkeurt, deze toch pas twee dagen voor de betalingstermijn wordt uitgevoerd. Het zou helemaal fraai zijn als de bank dan een soort korte termijn cashflow overzicht kan laten zien aan de klant waarbij je kunt zien wanneer (normaal gesproken) het salaris binnen komt en welke uitgaven er nu al op welke dagen gepland staan.

De 2e, minder fraaie oplossing: Stuur een xml bestand naar de eindgebruiker.
De leveranciers en de banken ontwikkelen een soort transactie xml protocol. Als er iets moet worden betaald stuurt de leverancier (zelf direct of via een email van de bank als je je email niet aan derden wilt geven) een xml bestand naar de klant waarin alle voor de transactie benodigde gegevens staan. Als je wil betalen gebruik je het xml bestand om de acceptgiro gegevens automatisch en correct in te vullen. Deze oplossing is veel minder elegant dan de eerste.

Wednesday, March 18, 2009

Laagdrempelig samenwerken met Etherpad


Laagdrempelig op afstand samenwerken aan een tekst.

Samenwerken
Etherpad is een website waar je met meerdere mensen tegelijkertijd aan een tekst kunt werken zonder ingewikkelde programma's te hoeven te installeren. Het is basic in de zin dat het alleen om de tekst gaat, niet over de opmaak of over eventuele plaatjes.

Simpel
Je hoeft er niets voor te installeren en het draait op verschillende browsers (IE, FireFox, Chrome, etc.). Als gebruiker ga je naar de site van Etherpad. Daar kun je een document starten. Je krijgt dan een URL voor jouw document deze URL geef je dan via email, ICQ, IM, Skype, etc. door aan de anderen. Iedereen die mee doet opent de URL en kan meteen zien wat de anderen schrijven.

Niet beveiligd
De URL blijft actief en het document blijft erop staan ook als je de website verlaat. Je kunt dus dagen later terug gaan naar jouw URL en de tekst weer ophalen. De tekst die je geschreven hebt kan dus potentieel door iedereen (die jouw URL weet te vinden) gelezen worden. De kans erop is niet groot maar als je iets schrijft waarvan je liever hebt dat het later door iemand gevonden wordt, kun je het beste de eind tekst uit je browser naar je lokale tekstverwerker kopieëren én daarna de tekst op de website wissen. Als iemand (of een zoekmachine) jouw URL vindt staat er geen tekst meer op die URL.

Teleconferentie
Naast het samen opmaken van een tekst kun je het ook gebruiken om een teleconferentie te ondersteunen door de thema's en de opmerkingen c.q. besluiten al tijdens de teleconferentie op te schrijven zodat ze voor alle deelnemers meteen zichtbaar zijn.

Update: december 2009, Etherpad overgenomen door Google
Omdat veel gebruikers van Google Wave klaagden dat het samenwerken aan een document via Etherpad véél beter ging dan in Google Wave, heeft Google besloten Etherpad te kopen. Na de overname heeft Google Etherpad (tijdelijk) gesloten. Door de storm aan protesten van Etherpad gebruikers heeft Google, tot nader orde, Etherpad weer open gesteld. Als de Etherpad functionaliteit in Wave is opgenomen en de broncode van Etherpad is gepubliceerd zal Google Etherpad uit de lucht halen. Maar dan kun je of met Google Wave of via een Open Source oplossing toch met Etherpad blijven werken.