Hiding "Spam" (or "Ongewenste e-mail") label in Gmail (automatically created by Outlook 2010)

Submitted by Jochus on Sat, 16/03/2013 - 18:48 | Posted in: Windows
Posted in

On my Windows laptop, I'm using Outlook 2010 to fetch my Gmail account (IMAP). Gmail has its own spam folder + spam filter, and I configured Outlook to use the Gmail spam filter.

Nevertheless, Outlook always creates a second spam folder (in Dutch called: Ongewenste e-mail), which makes it complicated on other clients (or webclient) to know which one is the correct label.
I just learned you can hide labels in your webclient and/or IMAP clients by logging in into Gmail webaccount > Settings > Labels . I also marked some other labels to be hidden as well.

Importing a large SQL file in Microsoft SQL server 2008

Submitted by Jochus on Wed, 13/03/2013 - 23:17 | Posted in: Database
Posted in

  • Go to: Start -> Run -> Type cmd and press enter
  • Once the command line is on screen tell SQLCMD to import your database by doing something like this:
    sqlcmd -S [server instance name] -d [database name] -i [filename you want to import]
  • If you're not sure about the server instance name; simply open up SQL Server Management Studio and on the login screen take a note of the Server Name textbox as this is the value you need to use as the server instance name.
  • If you are trying to enter a lot of INSERT statements, don't forget to flush while inserting using the GO command (for example, after each 100 rows).

How to cleanup InnoDB storage

Submitted by Jochus on Mon, 11/03/2013 - 21:33 | Posted in: Database
Posted in


After deleting some tables/databases on my MySQL server, I noticed the ibdata1 file is never shrinking. After almost a year, my MySQL ibdata1 file became really too large.
More information on this issue: http://bugs.mysql.com/bug.php?id=1341.


  • Dump (e.g., with mysqldump) all databases into a .sql text file
    $ mysqldump -u root -p --all-databases > bigdump.sql
  • Drop all databases (except for mysql and information_schema)
  • Login to mysql and run 'SET GLOBAL innodb_fast_shutdown = 0;' (This will completely flush all remaining transactional changes from ib_logfile0 and ib_logfile1)
  • Shutdown MySQL
  • Add the following lines to /etc/my.cnf:
  • Delete ibdata* and ib_logfile*
  • Start MySQL
  • Import databases
    $ mysql -u root -p < bigdump.sql

How to get the data directory of MySQL

Submitted by Jochus on Thu, 07/03/2013 - 19:30 | Posted in: Database
Posted in

I manually installed MySQL on my Macbook Pro, but I didn't know where MySQL stores its data by default (it's not defined in /etc/my.cnf). You can ask this to MySQL using the following query:


This will result in something like this:

| Variable_name | VALUE                |
| datadir       | /var/lib/mysql/DATA/ |
1 ROW IN SET (0.00 sec)

How good is my wifi signal?

Submitted by Jochus on Wed, 06/03/2013 - 20:30 | Posted in: Mac
Posted in

While holding down the ⌥ key when clicking on the wifi icon, you can learn more about the strength of the current wifi connection.


RSSI or Received Signal Strength Indication can go from 0 to -100. Generally the higher (closer to 0) the better, and the closer to -100 the worse. In telecommunications, RSSI is a measurement of the power present in a received radio signal (cf. Wikipedia).

Transmit Rate

The number to pay much more attention to is the Transmit Rate. This value is the rate of which information is processed by a transmission facility. The transmit rate will drop if you have too much noise or interference or if you are too far away from the base station.

For reference:

0   - No connection
6   - Half 802.11b
11  - 802.11b
54  - 802.11g
130 - 802.11n on 2.4 Ghz
300 - 802.11n on 5.0 Ghz

Toekomst van de elektronische factuur

Submitted by Jochus on Thu, 28/02/2013 - 23:01 | Posted in: Onea
Posted in

Nu ik bijna een jaar voor Onea werk, ben ik meer en meer into eInvoicing aan het geraken. Een van de vragen die ik me onlangs stelde, was welke gegevens er verplicht aanwezig moeten zijn op een factuur. Deze gegevens liggen namelijk vast volgens art. 5 van het koninklijk besluit. Dit besluit is hier online te raadplegen.

Belangrijkste factuur gegevens:
  • Datum uitreiking van de factuur
  • Een opeenvolgend nummer dat wordt toegekend volgens één of meer reeksen
  • Het BTW-nummer van de leverancier of dienstverrichter
  • De naam of maatschappelijke benaming van de leverancier of dienstverrichter
  • Het adres van de administratieve of maatschappelijke zetel van de leverancier of dienstverrichter
  • De naam, het adres en het BTW-nummer van de cliënt
  • De datum waarop het belastbaar feit van de levering van de goederen of de dienstverrichting heeft plaatsgevonden of de datum van de incassering van de prijs of een deel ervan, voorzover die datum vastgesteld is en verschilt van de uitreikingsdatum van de factuur
  • De omschrijving van de goederen en of diensten alsmede hun eventuele hoeveelheid, dit dient de overheid toe te laten om het tarief van de verschuldigde belasting vast te stellen
  • De maatstaf van heffing, de eenheidsprijs, evenals eventuele betalingskortingen die niet begrepen zijn in de eenheidsprijs
  • De vermelding van de tarieven van de verschuldigde belasting en het totaalbedrag van de verschuldigde belasting uitgedrukt in de nationale munt van de lidstaat waar de goederen worden geleverd of de diensten worden verricht
  • Indien er een vrijstelling van BTW wordt aangevraagd, dient men duidelijk het artikel van de richtlijn ofwel het artikel uit de nationale wetgeving op te geven waarop men zich baseert om de vrijstelling te vragen of de belasting niet in rekening te brengen
Bevestiging, authenticiteit en integriteit

Verder legt de overheid ons 2 zaken op qua eInvoicing:

  • de cliënt dient akkoord te zijn met het ontvangen van een elektronische factuur
  • de authenticiteit van de herkomst en de integriteit van de inhoud van de elektronische factuur moet gegarandeerd zijn

Bij Onea hebben wij een product ontwikkeld dat aan deze voorwaarden voldoet. Ons product biedt nog een grote waaier aan mogelijkheden aan: central & legal archive, importing paper invoices & e-invoices, exporting invoices, expense handling & approving, straight through processing, workflow and matching.
Meer informatie is te vinden op http://www.onea.be/

Excel: automatic sheets wrapper (VBScript)

Submitted by Jochus on Tue, 26/02/2013 - 22:13 | Posted in: Windows
Posted in

I just found an old VBScript I wrote once for a friend who needed to merge different sheets from Excel into 1 big sheet. I can't remember all functional specifications, but the original XLS file was coming from a software package which was used to calculate sizes, measurements, ... in certain constructions of buildings. This software package was generating an XLS file with 50 sheets. But for statistical reasons, it would have been better to put it in 1 sheet. I just tested the script, and it's still working :-)

Option Explicit

' header
WScript.Echo "*******************************************"
WScript.Echo "* Automatic sheets merger *"
WScript.Echo "* *"
WScript.Echo "* Copyrighted: Jochen Hebrecht *"
WScript.Echo "*******************************************"

' configuration
Dim pagesize
pagesize = 700

' init: original XLS
Dim excel_orig, book_orig, sheet_orig
Set excel_orig=CreateObject("Excel.Application")

' init: new XLS
Dim book_new, excel_new, sheet_new
Set excel_new=CreateObject("Excel.Application")
set book_new=excel_new.Workbooks.add
set sheet_new=book_new.WorkSheets(1)

' get current dir
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

' start script
if ( WScript.Arguments.Count <> 2 ) Then
WScript.StdOut.writeline " Use: cscript automaticsheetmerger.vbs
Dim fso, msg
Set fso = CreateObject("Scripting.FileSystemObject")
Dim filespec

' delete old output if needed
filespec = WshShell.CurrentDirectory & "\" & WScript.Arguments(1)
If (fso.FileExists(filespec)) Then
End if

' create new file
filespec = WshShell.CurrentDirectory & "\" & WScript.Arguments(0)
If (fso.FileExists(filespec)) Then
Set book_orig=excel_orig.Workbooks.Open(filespec)

Dim start, einde, left, first_hit
start = 1
einde = 1
left = 0
first_hit = 0

' loop sheets
For each sheet_orig in book_orig.Worksheets
Wscript.Echo "Reading: " & sheet_orig.Name

' copy data

' measure size
Dim x_s, y_s
y_s = sheet_orig.UsedRange.Rows.Count
x_s = sheet_orig.UsedRange.Columns.Count

Dim current_size
current_size = 0
For each r in sheet_orig.UsedRange.Rows
current_size = current_size + r.RowHeight
WScript.Echo "current_size: " & current_size

' paste

' if no more space, put pagebreak
if first_hit = 1 And current_size > left Then
end if

WScript.Echo "start:" & start
Wscript.Echo "Range: A" & start & ":" & ConvertColumnNumberToLetter(x_s) & (start + y_s - 1 )
sheet_new.Range("A" & start & ":" & ConvertColumnNumberToLetter(x_s) & (start + y_s - 1)).Select

' calculate new space left
Dim r, i, sum
i = 1
sum = 0
For each r in sheet_orig.UsedRange.Rows
sheet_new.UsedRange.Rows(i + start - 1).Rowheight = sheet_orig.UsedRange.Rows(i).RowHeight
sum = sum + sheet_orig.UsedRange.Rows(i).RowHeight
i = i + 1

if current_size > left Then
left = sum mod pagesize
left = pagesize - left
left = left - sum
end if
WScript.Echo "left: " & left

' new start place
start = start + y_s + 1


first_hit = 1

' save & close
book_new.saveas(WshShell.CurrentDirectory & "/" & WScript.Arguments(1))
WScript.Echo " File: " & WScript.Arguments(0) & " does not exist!"
End If
End if

' converts the number of a column to the letter of the number
Function ConvertColumnNumberToLetter(ColumnNumber)
Dim IntegerResult, FractionalResult, Remainder, FirstLetter, SecondLetter
IntegerResult = ColumnNumber \ 26
FractionalResult = (ColumnNumber / 26) - IntegerResult
Remainder = ColumnNumber Mod 26
If IntegerResult = 0 Then
FirstLetter = ""
ElseIf IntegerResult = 1 And FractionalResult = 0 Then
FirstLetter = ""
ConvertColumnNumberToLetter = "Z"
Exit Function
ElseIf IntegerResult > 1 And FractionalResult = 0 Then
FirstLetter = Chr(64 + (IntegerResult - 1))
ConvertColumnNumberToLetter = FirstLetter & "Z"
Exit Function
FirstLetter = Chr(64 + IntegerResult)
End If
SecondLetter = Chr(64 + Remainder)
ConvertColumnNumberToLetter = FirstLetter & SecondLetter
End Function

Defining autoplay CD/DVD options in Windows 7

Submitted by Jochus on Tue, 26/02/2013 - 21:42 | Posted in: Windows
Posted in

I recently had the following issue: when I inserted a CD in my laptop, a default application was started. But I didn't want this application to startup - I just wanted Windows to ask me what I was willing to do with it.
The following instructions help you to reset this setting:

  • Click the Start button to view the Start Menu and then choose the Control Panel option
  • Click Autoplay
  • A new screen appears where you can change the default action of any content CD/DVD to Ask me every time

Differences in wireless security

Submitted by Jochus on Mon, 25/02/2013 - 23:10 | Posted in: Linux
Posted in

I just found this old article I've written down once when I was looking for a good wireless security setup. This article was written in Dutch, but I didn't want it to get lost, so I added it to my blog.




WEP staat voor Wired Equivalent Privacy en is een door de Institute of Electrical and Electronics Engineers 802.11 gespecificeerde methode om berichten die via een draadloze verbinding (Wi-Fi) worden verstuurd te versleutelen en maakt gebruik van de RC4-encryptie van RSA Security. De versleuteling vindt plaats tussen de twee NICs; de versleuteling geldt dus alleen voor zover de data "in de lucht hangt". Nadat de data ontvangen is, is het niet meer encrypted. Om gebruik te maken van WEP moeten de participerende NICs WEP aanzetten en een gelijke sleutel ingevoerd krijgen.

Bron: http://nl.wikipedia.org/wiki/WEP

  • Van de te verzenden data wordt een CRC32-checksum berekend. Deze checksum wordt achter de data geplakt.
  • Het nieuwe geheel (Data + CRC32(Data)) wordt de 'plaintext' genoemd. ('Plain', omdat dit stuk nog niet gecodeerd is en dus gewoon leesbaar.)
  • De keystream wordt als volgt berekend: keystream = RC4(IV, sleutel).
    • IV = initiële vectoren. Dit zijn een aantal willekeurige getallen die mogen, maar NIET moeten (volgens de IEEE WEP-specificaties), veranderen bij elk nieuw verzonden pakket.
    • sleutel = een afgesproken 'wachtwoord' dat gebruikt wordt, en door beide NIC's op voorhand gekend is.
  • Het pakket wordt samengesteld: Eerst worden de keystream en plaintext tezamen ge-XOR'd, en vervolgens wordt de IV voor het pakketje geplakt. Dan wordt het pakket verzonden.

Kort samengevat:

:pakket = IV + XOR(data + crc32(data), RC4(IV, sleutel))

Bron: http://nl.wikipedia.org/wiki/WEP

Persoonlijke mening

WEP is totaal niet veilig en kan in minder dan een seconde gekraakt worden. Dit komt vooral door de statische sleutel die in het algoritme gebruikt wordt. Bij deze raad ik dan WEP ook aan niemand aan.



Wi-Fi Protected Access (WPA) is een systeem om veilige draadloos draadloze netwerken (Wi-Fi) op te zetten en is ontwikkeld nadat onderzoekers een aantal zwakke plekken in WEP (Wired Equivalent Privacy) hadden gevonden. WPA is gebaseerd op een deel van de 802.11i-standaard van IEEE en bedoeld als tussenoplossing voor de problemen met WEP terwijl de nieuwe draadloze veiligheidsstandaard (802.11i) werd ontwikkeld. Certificatie van producten met WPA is begonnen in april 2003; de volledige 802.11i werd geratificeerd in juni 2004.


WPA kent 2 manieren van configureren: personal en enterprise. Enterprise vereist een authenticatieserver en wordt meer gebruikt in bedrijven. Personal kan je thuis gebruiken.

WPA lost eigenlijk het probleem van de WEP hoofding (de initialisatie vectoren IV) op en voorziet een betere beveiliging door gebruik te maken van het MIC (Messsage Integrity Check). Deze laatste maakt gebruik van het TKIP protocol (Temporal Key Integrity Protocol). Concreet wil dit zeggen dat WPA de sleutel automatisch aanpast (''rekeying'' genoemd). Dit proces gebeurt na een periode van X tijd of na X aantal pakketten verzonden te hebben = the rekey interval.

WPA maakt gebruikt van een passphrase, of ook wel de geheime code genomed die zowel moet ingevoerd worden op je router als op je computer. Vervolgens neemt TKIP het proces over en past dit de sleutel automatisch aan.

WPA is niet geklasseerd als een standaard, maar is eigenlijk een oplossing tussen WEP en WPA2 (zie verder)

Persoonlijke mening

Stuk veiliger dan WEP en zeker aan te raden!



WPA2 is de nieuwste beveiligings methode in de Wifi wereld. De ondersteuning is nog matig en WPA voldoet zeker nog aan de veiligheidsnorm voor de thuisgebruikers.

WPA2 is er net als WPA in 2 varianten, de Enterprice en de Personal.

De Personal variant werkt ook met een in te vullen wachtwoord zoals bij WPA, en de Enterprice variant werkt via een aparte authenticatie server.

WPA2 maakt gebruik van AES (Advanced Encyption Standard) een commercieël en overheids ondersteunde data pakket beveiliging.


AES is de nieuwe methode voor de bescherming van persoonlijke gegevens bij draadloze transmissies die wordt gespecificeerd in de IEEE 802.11i-standaard. AES-CCMP biedt een krachtigere coderingsmethode dan TKIP. Kies AES-CCMP als methode voor de gegevenscodering als een sterke bescherming van gegevens voor u van belang is.

Persoonlijke mening

WPA2 geniet mijn persoonlijke voorkeur wegens de sterke codering van AES. Toch echter 1 minpunt: een standaard Windows XP installatie kan niet omgaan met WPA2 en heeft nood aan deze update: http://www.microsoft.com/downloads/details.aspx?familyid=662BB74D-E7C1-…


MAC filtering

Definitie en werking

MAC adressen filteren is een beveiligingsmethode die vaak in combinatie met encryptie gebruikt wordt. Een MAC adres (ook wel 'hardware adres' of 'fysiek adres' genoemd) is een ingebakken adres dat uniek is voor elk netwerkapparaat. Het MAC adres is een hexadecimale code van twaalf tekens, bijvoorbeeld 00-C0-26-A9-42-F7. Deze code kan gebruikt worden om toegang tot het netwerk toe te zeggen of juist te blokkeren. In feite is het erg gemakkelijk.

Persoonlijke mening

In mijn ogen deftige beveiligingstechniek, alhoewel deze terug mooi kan omzeild worden door MAC-spoofing. MAC-spoofing? Dat is een techniek waar je toch die hexadecimale code kan aanpassen en je voordoen als iemand anders ...