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:

SHOW VARIABLES LIKE 'datadir';

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

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/

Difference between NAS, SAN & DAS

Submitted by Jochus on Thu, 28/02/2013 - 08:02 | Posted in: Linux
Posted in


I'm always confused when people talk about NAS, SAN or DAS. I just found this interesting comment on serverfault.com:


First it is best to define the difference between a block device and filesystem. This is easier grasped if you are familiar with UNIX because it makes an objective distinction between the two things. Still the same applies to Windows.

  • A block device is a handle to the raw disk.
    • Such as /dev/sda for a disk or /dev/sda1 for a partition on that disk.
  • A filesystem is layered on top of the block device in order to store data. You can then mount this.
    • Such as mount /dev/sda1 /mnt/somepath.

With those terms in mind it's then easier to see the distinction between the following.

  • DAS is a block device from a disk which is physically [directly] attached to the host machine.
    • You must place a filesystem upon it before it can be used.
    • Technologies to do this include IDE, SCSI, SATA, etc.
  • SAN is a block device which is delivered over the network.
    • Like DAS you must still place a filesystem upon it before it can used.
    • Technologies to do this include FibreChannel, iSCSI, FoE, etc.
  • NAS is a filesystem delivered over the network.
    • It is ready to mount and use.
    • Technologies to do this include NFS, CIFS, AFS, etc.

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
"
Else
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
fso.DeleteFile(filespec)
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
sheet_orig.Activate
sheet_orig.UsedRange.Select
excel_orig.Selection.Copy

' 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
Next
WScript.Echo "current_size: " & current_size

' paste
sheet_new.Activate

' if no more space, put pagebreak
if first_hit = 1 And current_size > left Then
sheet_new.HPageBreaks.Add(sheet_new.Rows(start))
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
sheet_new.Paste

' 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
Next

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

' new start place
start = start + y_s + 1

WScript.Echo

first_hit = 1
Next

' save & close
book_new.saveas(WshShell.CurrentDirectory & "/" & WScript.Arguments(1))
book_new.close
excel_new.quit
book_orig.close
excel_orig.quit
Else
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
Else
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.

Versleutelingsmethodes

WEP

Definitie

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

Werking
  • 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.

WPA

Definitie

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.

Werking

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

Definitie

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.

Werking

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-…

Toegangsmethodes

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 ...

Configuring wireless networks with WPA2 security on old Ubuntu installations

Submitted by Jochus on Sun, 24/02/2013 - 10:32 | Posted in: Linux
Posted in

I just found this old article I've written down once to configure wireless networks with WPA2 security on old Ubuntu installations. As of today, WPA2 is supported out-of-the-box by the latest versions of Ubuntu. This article was written in Dutch, but I didn't want it to get lost, so I added it to my blog.
  • Installeer wpa-supplicant
  • $ sudo aptitude install wpasupplicant

  • Controleer dat je draadloze netwerkkaart goed ondersteund wordt. Door onderstaande commando's uit te voeren, zou je netwerkkaart moeten herkend zijn. Bij errors => verder zoeken om draadloze netwerkkaart te configureren
  • $ iwconfig && iwlist scan

  • Ga naar /etc/network/interfaces en pas de code voor jouw draadloze netwerkinterface aan:
  • auto eth1
    iface eth1 inet dhcp
    wpa-driver wext
    wpa-ssid <YOUR_SSID_HERE>
    wpa-ap-scan 1
    wpa-proto RSN
    wpa-pairwise CCMP
    wpa-group CCMP
    wpa-key-mgmt WPA-PSK
    wpa-psk <YOUR_KEY_HERE>

auto eth1

  • Jouw netwerkkaart (kan ook wlan0, rausb0, ra0, ... zijn)

iface eth1 inet dhcp

  • Een IP-adres wordt geleverd door de DHCP-server

wpa-driver

  • Dit is de WPA-driver voor jouw kaart. wext is een generische driver die toepasbaar is als je met ndiswrapper werkt. Laat dit standaard staan. Je kan ook andere drivers selecteren

* hostap = Host AP driver (Intersil Prism2/2.5/3)
* atmel = ATMEL AT76C5XXx (USB, PCMCIA)
* wext = Linux wireless extensions (generic)
* madwifi = Atheros
* wired = wpa_supplicant wired Ethernet driver

wpa-ssid

  • Jouw network SSID (zonder quotes!)

wpa-ap-scan

* 1 = Broadcast van ESSID
* 2 = Verborgen broadcast van ESSID

wpa-proto

* WPA = WPA
* RSN = WPA2

wpa-pairwise & wpa-group

* TKIP = TKIP encryptiealgoritme als onderdeel van de WPA standaard
* CCMP = AES encryptiealgoritme als onderdeel van de WPA2 standaard

wpa-key-mgmt

* WPA-PSK = Authenticatie van voorafgesproken sleutel (zie verder!!!)
* WPA-EAP = Authenticatie via een 'enterprise authentication server'

  • Nu moeten we nog onze WPA key omzetten naar een hash waarde zodat deze niet letterlijk blijft staan in onze config file
  • $ wpa_passphrase <your_essid> <your_ascii_key>

  • Dit levert zoiets als
  • network={
       ssid="test"
       #psk="12345678"
       psk=fe727aa8b64ac9b3f54c72432da14faed933ea511ecab15bbc6c52e7522f709a
    }

  • De hex_key waarde die je naast psk vindt, moet je onder wpa-psk zetten van het /etc/network/interfaces bestand
  • Herstart je netwerk
  • $ sudo /etc/init.d/networking restart

Setting up a splash image on Ubuntu 11.10 (oneiric) and Grub 1.99

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

Choosing a Grub background image

  • You can pick an image yourself, or you can use one of the default Grub images:
    $ sudo aptitude install grub2-splashimages
  • Once installed, the images are located in the /usr/share/images/grub folder

Installing splash Images

  • Check your version of Grub (this blogpost was tested with Grub 1.99):
    $ grub-install -v
  • Open /etc/default/grub with a text editor an add the following line:
    GRUB_BACKGROUND=/path/to/your/image 
  • Update GRUB to incorporate the image into the menu:
  • $ sudo update-grub

Changing text colors

  • To add menu_color_normal and/or menu_color_highlight values when using a splash image
  • Open /etc/grub.d/05_debian_theme as root
  • Find the following lines:
  • if [ -z "${2}" ] && [ -z "${3}" ]; then
        echo "  true"
    fi

  • Change the entry to the following, replacing 'color1' and 'color2' to the desired colors. Leave /black as is!
  • if [ -z "${2}" ] && [ -z "${3}" ]; then
        # echo "  true"
        echo "    set color_highlight=color1/color2"
        echo "    set color_normal=color1/black"
    fi

  • Save the file and run update-grub

Setting up Samba on a Linux installation

Submitted by Jochus on Fri, 22/02/2013 - 23:21 | Posted in: Linux
Posted in

I just found this old article I've written down once to configure Samba on a Linux installation. This article was written in Dutch, but I didn't want it to get lost, so I added it to my blog.

Installatie Samba

  • Installatie pakket
  • $ sudo aptitude install samba

  • Ga naar /etc/samba/smb.conf en pas volgende wijzingen toe:
  • Toegang tot werkgroep:
  • # Change this to the workgroup/NT-domain name your Samba server will part of
       workgroup = MSHOME

  • Netwerknaam computer:
  • # server string is the equivalent of the NT Description field
       server string = %h server (Samba, Ubuntu)

  • Sharen van de home folder:
  • # Un-comment the following (and tweak the other settings below to suit)
    # to enable the default home directory shares.  This will share each
    # user's home directory as \\server\username
    [homes]
       comment = Home Directories
       browseable = yes
     
    # By default, \\server\username shares can be connected to by anyone
    # with access to the samba server.  Un-comment the following parameter
    # to make sure that only "username" can connect to \\server\username
    # This might need tweaking when using external authentication schemes
    ;   valid users = %S
     
    # By default, the home directories are exported read-only. Change next
    # parameter to 'yes' if you want to be able to write to them.
       writable = yes

  • Toevoegen gebruiker aan SMB PASSW DB:
  • $ sudo smbpasswd -a jochus
    New SMB password:
    Retype new SMB password:

  • Herstart Samba
  • $ sudo /etc/init.d/samba restart

Installatie SMBFS

  • Verder wil ik ook mijn windows-server data schijf kunnen mounten. Er zijn hiervoor 2 mogelijkheden. Ofwel gebruik je een commandline tooltje als ''smbclient'', ofwel ga je data schijf mounten alsof het echte harde schijven zijn
  • Installeer smbfs
  • $ sudo aptitude install smbfs

  • Om andere gebruikers de map te kunnen mounten, moeten we deze ook rechten geven
  • $ sudo chmod u+s /usr/bin/smbmnt /usr/bin/smbumount

  • Maak een mount point aan
  • $ sudo mkdir /mnt/data

  • Om aan de schijf te kunnen geraken moeten we inloggen met Windows credentials
  • $ sudo nano /etc/samba/user

  • Vul in
  • USERNAME
    PASSWORD

  • Voor de veiligheid
  • $ sudo chmod 0600 /etc/samba/user

  • Voeg aan /etc/fstab het volgende toe:
  • //server/share   /mnt/data   smbfs   credentials=/etc/samba/user,rw,uid=bob   0   0

  • Mounten gaat nu via:
  • $ mount /mnt/data