Goede service is toch niet zo moeilijk.

Door josvane op zondag 18 januari 2015 12:42 - Reacties (20)
Categorie: -, Views: 5.117

Je koopt spullen in een winkel, en helaas komt het wel eens voor dat er iets kapot gaat. Zoals gewoonlijk krijg je dan garantie. Zoals ik geleerd heb op school en ook toe pas in mijn eigen bedrijf is een klant die met een garantie "claim" komt een mooie tool om marketing toe te passen.

We moeten dit natuurlijk niet overdrijven, maar het is gewoon een feit dat een goede klachtenafhandeling klanten bind. Slechte afhandeling onthouden we blijkbaar beter dan een goede, maar daarin tegen zijn we ook zo eerlijk te zeggen als een zaak iets netjes afhandelt. De uitzondering daar gelaten natuurlijk.

Deze week heb ik ervaring op gedaan met de V&D, die hebben nog wat te leren, en verzuipen volgens mij in procedures. Het kwam mij in ieder geval over als het zo moeilijk mogelijk maken.

Wij hebben on-line een jas gekocht voor mijn dochter, waarvan de rits na 2 maanden de geest heeft gegeven. Dit kan gebeuren, maar is veel te snel. Omdat we hem on-line gekocht hebben nemen we telefonisch contact op met de V&D. We krijgen daar te horen dat we hiervoor de jas moeten inleveren in één van hun winkels, waarna het verder afgehandeld wordt. Wat de afhandeling zou worden wist de medewerker niet, Krijgen we een nieuwe, wordt ie ingenomen en gerepareerd. Je zou het 1e verwachten omdat de arbeid voor het vervangen van de rits waarschijnlijk duurder is dan de inkoopsprijs nieuwe jas. Nog los van de vraag of de kleermaker de goed rits heeft.

Nu zit de V&D gelukkig niet ver weg, maar goed je koopt on-line met een rede, voor mij niet alleen de prijs maar ook het gemak. Eenmaal in de V&D krijgen we een ander verhaal te horen, omdat de jas gedragen is mogen ze hem niet innemen, maar mogen we hem zelf laten maken bij een kleermaker.

De reparatie wordt dan wel betaald door de V&D, dit betekent alleen dat je dan nog een keer naar winkel moet om de bon te laten zien, waarna je deze kosten vergoed krijgt. Mag ik dan ook mijn uren en brandstof declareren. (Natuurlijk niet)

Het geheel doet mij overkomen als een manier om het de klant het zo lastig mogelijk te maken in de hoop dat ze het opgeven, want stel dat de reparatie niet boven de 15 euro uitkomt ga ik twijfelen of ik wel terug moet gaan. Met brandstof e.d. ben ik het alweer kwijt.

Wat mij betreft heeft de marketing en service afdeling hier nog wat te leren.

Ik zal vertellen hoe ik het doe.
- Een klant belt op dat één van mijn geleverde producten problemen heeft.
- Middels een aantal vragen bepalen wat het probleem exact is en bespreken wat we doen.
- Als het product terug moet sturen wij een UPS label voor af halen.
- Het product wordt gerepareerd of vervangen.
- We sturen het product weer terug.

In geen van deze stappen heeft de klant van te voren kosten of extra handelingen te verrichten anders dan het inpakken.

Mocht het product door foutief gebruik kapot zijn gegaan dan herkennen we dat wel, als ik twijfel ga ik dat in ieder geval niet met de klant uitzoeken. We handelen dit dan normaal af. (we registreren die twijfel natuurlijk wel).

Tot op heden (op 2 handen te tellen in 5 jaar) heeft dit goed gewerkt, we staan bij veel klanten gewoon bekend als een bedrijf met goede service.

Simpele vraag
Waarom kan de V&D dit niet?

Wachtwoorden opslaan

Door josvane op zaterdag 27 september 2014 14:47 - Reacties (10)
Categorie: -, Views: 4.137

Voor mijn bedrijf zijn wij op dit moment bezig bepaalde processen te professionaliseren.
Dit betekent dat wij voor onze klanten een portal beschikbaar willen maken waarin een aantal zaken geregeld "kunnen" worden.

Zo is het uiteindelijk ook de bedoeling dat klanten hun instellingen aan kunnen passen van het toestel.
Hier doet zich gelijk een beveleigingsprobleem voor. Om het tegen het VoiP platform te communiceren en settings door te geven moeten we het device wachtwoord beschikbaar hebben.

Dit betekent dat we geen versleuteling kunnen doen die niet omkeerbaar. Omdat ik mij verantwoordelijk voel, en dat volgens de contracten ook moet, ben ik op zoek hoe ik dit het beste op kan lossen.

Nu heb ik wel enige kennis van programmeren maar niet voldoende om hier een weloverwogen keus in te maken.

Ik ben dus benieuwd wat de best practice is om hier mee om te gaan, en wil de ingewonnen informatie gebruiken om uiteindelijk in gesprek te gaan met de personen die dit moeten bouwen.

Waar bemoeit xs4all zich mee

Door josvane op maandag 05 november 2012 15:54 - Reacties (30)
Categorie: -, Views: 7.110

Deze blog is voornamelijk om mijn frustratie jegens xs4all te uiten. (Misschien niet goed maar wel lekker)

Een relatie van mij, te weten een basissschool krijgt van xs4all een speciaal tarief en hebben daarom een verbinding van xs4all. Vanochtend wordt ik gebeld dat ze geen internet hebben, surfen naar www.xs4all.nl werkte dan weer wel.

We doorlopen een aantal tests en concluderen dat het bij xs4all moet liggen, de school neemt contact op met xs4all en noemt de postcode en huisnummer en vermelden tevens de naam van de school, dit omdat er in hetzelfde gebouw een andere contractant zit welke ook gebruik maakt van xs4all.

De verbinding wordt nagezien en er wordt geconstateerd door de xs4all medewerker dat de verbinding in orde is, en het een lokaal probleem is.

De school meldt zich vervolgens weer bij mij en ik ga onderzoek op locatie doen. Ik koppel het modem los van het LAN en hang er direct mijn laptop aan. Hetzelfde probleem doet zich voor.
Na controle in de Cisco kom ik weer tot de conclusie dat het bij xs4all ligt. DNS werkt namelijk volledig en kan diverse websites gewoon resolven, maar niet bezoeken.

We nemen volgens opnieuw contact met xs4all en vermelden opnieuw postcode, huisnummer en naam. Wederom krijg ik te horen met de verbinding is niks mis. In een ingeving vraag ik om het ip waarna hij kijkt, en rara hij kijkt naar verbinding van de andere contractant. Maar hij blijft wel bij zijn mening dat de verbinding in orde is. Ik wijs hem op mijn resultaten met traceroute en maak hem duidelijk dat het in hun netwerk ergens blijft hangen. Hij besluit mij vervolgens door te verbinden met een 2e lijns medewerker.

Wederom een tijd in de wacht en het hele verhaal voorgelegd. Wat blijkt ze zijn vanwege abuse geblokkeerd. De klant heeft een mailtje gehad op de account mailbox en is per direct geblokkeerd.

Wat een irritante functie is dit zeg, de xs4all diensten laten werken, en internet afkappen. We betalen toch voor een verbinding van een bepaalde bandbreedte en wat daar over heen gaat is toch niet voor hun zorg, laat staan dat het een rede is om een school af te sluiten van internet.

Is er dan niemand die bedenkt dat een school van tegenwoordig met smartboarden e.d. afhankelijk is van internet. Wat zou xs4all hiermee willen bereiken.

Een mail laten sturen naar systeembeheer is niet mogelijk, terwijl die verantwoordelijk is voor de het netwerk. Het blijft een feit dat er ergens een geïnfecteerde pc staat in het netwerk die het veroorzaakt en dat moet opgelost worden, maar de oplossing van xs4all is zo resoluut.

Tot zover mijn frustratie over de veiligheidsdienst van xs4all.

Omschakelen van Windows naar Mac

Door josvane op maandag 01 oktober 2012 13:39 - Reacties (24)
Categorie: -, Views: 5.896

Helaas heeft de backlight van mijn uit 2009 stammende laptop het begeven. Gelukkig heb ik voor deze laptop een dock, dus voor op de zaak is hij nog prima te gebruiken.

Al langere tijd wou ik iets wat snel, licht en niet al te groot is. Ik heb dus ook al langere tijd de macbook air in de gaten gehouden. Uiteindelijk is hier dus ook de keus op gevallen, en tot op heden ben ik dus ook tevreden over mijn keuze.

Maar voordat je onder OSX alles werkend heb valt toch niet helemaal mee. Eerlijkheid biedt mij te zeggen dat ik dit ook niet echt uitgezocht heb van te voren. Office voor Mac een TS client spreken voor zich, maar de overige applicaties heb ik nauwelijks naar gekeken. Keepass is beschikbaar onder mac.

Toch blijken er nog wel wat hobbels te nemen.

Keepass
Het openen van mijn Keepass file lukte niet, na wat onderzoek blijkt dat keepassx niet geschikt is voor kdbx files. Simpel exporteren naar kdb was gelukkig voldoende.

Putty
Hier heb ik nog geen relaxed programma voor gevonden, onder windows gebruik ik putty. Nu zit er in osx terminal van waaruit we kunnen SSH'en, maar ssh icm een ppk key lukt mij nog niet.

[notepad++]
Vervangen voor textwrangler, lijkt mij prima. Ik heb er nog niet mee gewerkt maar we gaan het zien.

Overige apps
Voor de overige apps heb ik vmware fusion geïnstalleerd met daarin windows 7 virtueel, ik heb gewoon een aantal applicaties die het alleen doen onder windows. Dit draait prima.

Tot zover de door mij veel gebruikte programma's nu nog wat over hardware.
Zoals gezegd moest het een licht en niet al te grote laptop worden. Die voorwaarden is wat mij betreft aan voldaan. Het opstarten van de laptop gaat erg snel, wel duurt het lang voordat ik mijn wachtwoord mag intoetsen. Het duurt zeker 5 seconden voordat ik ook echt kan typen. Reeds gemaakte toets aanslagen wordt niet op gereageerd.

Het verlichte toetsenbord is erg prettig, daarnaast voelt het geheel stevig aan. De accuduur is prima, ik kan gewoon 1 dag per lading werken.

De touchpad werkt erg goed, het scrollen is even wennen. Dit omdat het in windows precies andersom gaat.

[b]het grote gemis[b]
De rechte muisknop en de DEL toets.De rechtermuisknop is met behulp van control toch wel, dit is even wennen maar ik wist dat osx maar een knop heeft. Je merkt echter nu pas hoe vaak je deze gebruikt.
De del knop heeft gewoon geen vervanger, ik hoop maar dat hij het met een volledig toetsenbord wel doet.

Voor de rest ga ik wel merken wat ik nog allemaal tegen kom en tot zover mijn relaas over mijn macbook air.

Verder met PHP

Door josvane op dinsdag 07 augustus 2012 00:07 - Reacties (13)
Categorie: -, Views: 5.191

Naar aanleiding van mijn vorige post Seo vriendelijk met PHP heb ik een boek gekocht, en wel deze. link

Tegerlijkertijd heb ik mij ook verdiept in PDO, wat met onder andere met het prepare statement een hoop doet om sql injecties e.d. te voorkomen.

In de vorige post werd ik gewezen op het gebruik van globals (in negatieve zin), een zoektocht op internet met gevolg. De 1e opzet heb ik inmiddels werkend. Voor mij gevoel is de aanroep naar de DB goed. De connectie wordt eenmalig opgebouwd e.d.

De query's kan ik volgens mij beter, alleen vindt ik daar verschillende meningen over en niet alle varianten krijg ik werkend.

Vanuit de testFunction wordt de connectie met de DB gemaakt. Vervolgens moet ik de gehele query ook naar de Database class sturen, vervolgens zou ik eigenlijk al extra waardes mee moeten zenden om een verschil te kunnen maken tussen single row of een array.

Eigenlijk wil ik de query en de prepare statement in de testFunction zelf houden, of is dit de beste manier en moet ik inderdaad dit zo laten. Graag jullie mening daarover of wellicht een oplossing. Als dit met een bepaalde php term op te lossen is hoor ik die graag, dan ik daarop verder zoeken.

Waarom een blog en geen topic
De reden dat ik het in een blog plaats is omdat het een vervolg is op mijn vorige topic, en ik een blog uiteindelijk beter vindt voor kennisdeling



PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
// Example of a Singleton Database class
class Database
{
    // Store the single instance of Database
    private static $m_pInstance;
    private $db_con;

    // Private constructor to limit object instantiation to within the class
    private function __construct() 
    { 
        $DBserver         = 'localhost';
        $DBusername         = 'username';
        $DBpassword        = 'password';
        $DBdatabase        = 'database';
        
        try
        {
            $this->db_con = new PDO('mysql:host='$DBserver . ';dbname=' . $DBdatabase . ';charset=UTF-8'$DBusername$DBpassword);
            $this->db_con->setAttribute(PDO::ATTR_PERSISTENTtrue);
            $this->db_con->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
        }
        catch ( PDOException $e ) 
        {
            print "Error!: " . $e->getMessage () . "\n" ;
            die () ;
        }
    }

    // Getter method for creating/returning the single instance of this class
    public static function getInstance()
    {
        if (!self::$m_pInstance)
        {
            self::$m_pInstance = new Database();
        }

        return self::$m_pInstance;
    }
    
    // Test function to simulate a query
    public function query($query)
    {
        $statement = $this->db_con->prepare($query);
        $statement->execute();
        $row = $statement->fetch(); // Use fetchAll() if you want all results, or just iterate over the statement, since it implements Iterator
        return $row;
    }
    
}

// Wrap the test code in a function 
class user
{
    function testFunction()
    {
        // Get the single instance of the Database class using the gettor 
        // method we created.  Then call it's query method to output some text
        $db = Database::getInstance();
        print '<pre>';
        print_r($db->query("select * from jstl_cms_menu where is_link = '1'"));
        print '</pre>';
    }
}

// Start the test
$user = new user();
$user->testFunction();

// After running this script you will see that the constructor was only called
// once, showing that only one instance of the class was created.

?>