11 1 / 2012

36 years later, printers are still wrong


So today I bought a printer. Not a big deal you would think, but I can remember having a lot of problems with printers since I first had one.
They’ve always been difficult to configure and you would usually get some troubles to get the driver to work correctly (well, this is an experience I had since Windows 95 - the first Windows OS I ever used). Eventually, the printer would just print some strange things instead of printing the requested document.

And let’s be honest : all printers I’ve had had the same kind of problems. All but one : a Brother DCP-750CW (all-in-one printer, scanner and copier). Configuring it to work over WiFi has been pretty easy and my MacOSX computer detected it. It’s also been quite easy to configure it on Windows. 

Since I’ve moved to London, I bought a new printer today : at first I wanted to buy a Brother one, but unfortunately I couldn’t find any at Currys. So I bought a HP Deskjet 3070A.
Do I regret it? No, not at the moment. It didn’t cost much (£49.99) does scanner, copier and printer. It seems to print things correctly at the moment and to copy correctly too (honestly, I’m not doing any photos or whatever, I just need a printer to print a few documents).

But come on HP! How comes that 36 years after the first inkjet printer was released you still didn’t get the process of setup right?! Setting-up this printer has been an horrible experience, even for me, though IT is my domain of expertise.

This is a WiFi printer, so after turning it on the first thing I did was to try to connect it to the network. Heading in the menu, going through everything there (the screen is pretty shitty because it cannot display enough thing at a time, but hey again, it is a pretty cheap printer), I couldn’t find a way to connect to my WiFi network. Sure, there is the option of using WPS but this is something I never do (and anyway the router doesn’t have any WPS button) but no way to select your SSID and enter a key.
HP : selecting an SSID and entering a key is the basic of connecting to WiFi. Virtually everyone who has been connecting a computer to WiFi understand and knows this concept.

And most important : I, as your customer, understand it. There’s no way you should force me into using this WPS thing that is now known as being insecure! Ok, to be 100% honest, it’s only been known for a few days but how dare you force me to use one way that is, in my opinion, a bad one?

So, after seeing that, I thought that there must be another way of setting things up. I then started reading the manual (yes! you read it right, I read a manual for a printer!), and figured out that the only way to setup the printer to connect to WiFi would be to install the software from the CD that was in the box!

Ok, so, printer vendors, let me state it clear : I do NOT want to install your crappy softwares on my computer. Installing a driver is fine, installing all your crap is not. I do not want hundreds of useless processes to start when my computer boots.

Ok, back to our story : I thought I would just install it and my troubles would come to an end. Unfortunately, I was wrong.

I inserted the disc in my mac running Lion, and started the installer and… TADA! The installer wouldn’t run on Lion stating that it only works for MacOS 10.6 or below.
Needless to say it was getting on my nerves.

I then went to the first URL I could find in the manual : http://www.hp.com/go/wirelessprinting and tried to find the drivers for my printer. Well unfortunately entering the name of my model did give me a beautiful “0 result”.

I had to search through Google to finally land on a page from another HP website where I’ve been able to download the software.

A bad day has to be bad until the end

Now you may ask “Ok but since the printer is not connected in any way to your computer, how is it going to help?”. Good point. Well, the thing is, HP has this technology that makes the printer create an adhoc WiFi network and your computer will then connect to it and send configuration information to the printer. While that seems like a good idea, it turned out to be a very very bad experience.

At the printer configuration point, I was informed that I would be disconnected from my current WiFi network while the computer connects to printer. Afterward, it did, and I was presenting with a screen asking me to wait. I did wait. But after a while, I decided to just quit the installer cause nothing was happening (or at least so it seemed).
I tried to turn my WiFi back to my network and… no network access anymore. It turns out that while doing his things, the installer created a “Location” in my Network Preferences and it kind of prevented me to connecting back to my network.

Fair enough. I decided to try the last solution hoping that it would work! This solution is to… rerun the installer but this time connect to the printer using… an USB cable! So, I took my laptop, moved it to my bed (my printer is on the other side of the room) and connected it to the printer. Please, read the last sentence again as it is very important. And guess what? It just worked! Well, kind of, I couldn’t get ePrint to be configured but anyway…
So, why did I say that one phrase was important? Cause when people buy a wireless printer, they do not expect to have to connect it close to the computer, and they do not always have a laptop. In fact : I couldn’t connect the printer close to my computer because I’m lacking a power plug. Thankfully, I did own a laptop.

So, HP, 36 years later, could you please looking at what a good competitor is doing and finally get that process to be fixed? Cause if you ever had screwed my father’s network configuration, I’m pretty sure I would have had a phone call stating that this printer is some crap and it even broke the computer. Not kidding there. Imagine how bad this experience can get for someone who doesn’t know anything about computers except from… well, just using them.

You’d better get this fixed, quick, cause even if your printers are cheap, anyone getting into the same troubles as me would just thing that your printers are not good (and I stress that this is not necessarily the case : now that it is set-up, I’m happy with it for the price I had to pay).

And to you, dear readers…

See you online!

02 8 / 2011

haXe 2: Beginner’s Guide book is published and on sale!

(Note that this is the mail I’ve sent to the haXe mailing-list. More to come about my feelings on the writing of the book in the next few days.)

Hello everyone!

This mail is a bit unusual and I hope everyone will be happy to read the news inside.
It is my great pleasure to announce that my new and first book “haXe 2: Beginner’s Guide” is now available!As the name implies, this is a guide to beginners.
Writing a book is not an easy task, but I enjoyed it and hope you will enjoy reading this book too.
As you may know, I’ve been coding with haXe since the very beginning and I have to say I have always enjoyed this language.Now, haXe is evolving pretty fast and more and more people and companies, with various ranges of skills, are using it to do lots of things such as website editors, games, or any other kind of applications.
haXe is gaining momentum and this book is a proof of it. By the way, I’d really like to thank Packt Publishing for their support. Now, let’s show them how much we appreciate it!
In the next weeks and months, haXe is certainly going to break the limits and extend to new horizons. With the new CPP target and NME, haXe will certainly be able to fill the gap that has been created by several OS’ and devices and I can’t express how excited I am because of this!
I’d like to thank each and everyone of you, newcomers and people who have been there from the beginning. You make it so exciting to be part of this community! Now, I’d like to thank Nicolas for sure, but also Franco. Thanks for always being OK to have a talk and share your ideas! Hugh for writing the CPP target although we had very few exchanges. Thanks to all the reviewers!

Also, thanks to Pimm Hogeling for writing the foreword of the book.
Thanks to everyone who has been participating in this community and let’s continue to make haXe and its eco-system better and better.
You can find the book here: http://www.packtpub.com/haxe-2-beginners-guide/book
Benjamin Dasnois

05 4 / 2010

Going untyped or Dynamic : the difference and how important it will be.


Most of my fellow haXe developers may think that untyped is just like a block of code where everything acts like Dynamic. Well, that’s false, and I’m gonna explain in this post what both of these things really are.

So first, untyped. Untyped is a keyword that acts on a block of code and basically, it just tells the compiler to get out of your way when it comes to typing. One could see that as temporarily deactivating the typing sub-system.

On the other hand, there’s the Dynamic type. Dynamic really *is* a type, it’s just that it has a special behavior. It’s behavior is that it has an infinite number of fields (accessible in reading) and all of these fields also are Dynamic. That’s the basic thing of Dynamics, after that there are all the other things such as implementing Dynamic but I’m not gonna describe everything here. The language reference is there to do that.

No, if I talk about it today, it’s because I’m pretty sure many haXe programmers have been using untyped blocks in their code instead of Dynamics (maybe because it’s easier to just write “untyped”), and that worked since most of the platforms we have in the official compiler today are dynamic.

So, this code will certainly work on JS/Flash/Neko and even PHP :

var s : String;
s = “Hello”; 
untyped s.something = 12;

But here, what we do want to achieve is really a Dynamic behavior (although that’s quite stupid to declare the variable as String, but that’s just for the sake of the example). So it would be better to write :

var s : String;
s = “Hello”;
var d : Dynamic;
d = s;
d.something = 12;

Well, we could have done it with a bit less lines but I wanted to keep things crystal clear. Here, we will achieve the same behavior as in the first example, but instead of just switching the typing system to off, we ask it to take care of making the code work. In the platforms we have in the compiler at the moment, that’s not a problem because they are dynamic (not C indeed but it’s pretty young in the compiler).

Now, the Java target is coming, and although I can’t say if it will ever make it into the official distribution I do hope so. And since Java is really a static language, one will have to use the Dynamic type as that will ensure that the compiler will take care of doing all the magic things for you.

Want more explanations? Have any questions or comment?

29 3 / 2010

haXe/Java is still there and it’s closer than ever!


Yes! That’s true! I’m still working on haXe/Java (to give you some news about the project I’m alone on it again because David had to leave due to free-time lacking, and some of my fellow haxers have offered to help so I know I can ask them if I have problems).

Not only am I still working on it, but I’m really back to it! You know, I was kind of disappointed because I had lots of difficulties with the Dynamic’s, but recently, someone brought a question to the mailing-list and Nicolas came to clarify things about what Dynamic’s are supposed to do or not. To put it shortly, Dynamic’s can be considered almost as “untyped” (still I suggest you read the thread).

Well, what that means is that I simplified my view on (and what I expected from) Dynamic’s and that’s going to make it way easier to implement them. Unfortunately, that also certainly means that java will be the platform with the poorer support for Dynamic’s.

Dynamic’s were needed in order to be able to implement anonymous objects (and typedefs up to some point).

So, now, haXe/Java is really closer to us than it has ever been!

See you soon!

14 3 / 2010

Training newbies : How a whole corporation may forget to go through simple things


As you may know, I’ve been a trainer in a well-known IT school in France. I’m now back in it as a student, and although I’ve been mainly teaching Linux Technologies, I’m still really interested in everything that’s related to training.

That’s when a student who’s a freshman told me something : in their C class they were asked to display a rotating cube in SDL. Ok, that may seem a classic to most of us, experienced developers, but that’s where the problem is.

The fact is, they had no course on SDL, and although there are several resources about it online, they are only in their first year, most of them had little to no-knowledge about programming before, and they are French people (meaning that English is not their native language with all the problem that can cause, especially to people not already really familiar with our vocabulary).

By the way, on top of the difficulties related to the SDL, there are the difficulties related to the mathematics.

We have forgotten that all these layers, that are of little difficulty on their own (each one), when added, represent a big difficulty for newbies.

So, I suggest that we should add a step, a step that’s pretty natural because let’s remember something : years before the apparition of 3D Games, we had 2D Games, and 2D is far easier to manage because most people interested in computers are used to working on a screen which is 2D, also, they are generally just out from High-School where you do work in 2D most of the time.

Also, it’s way easier for the mind to think in 2D (just because that’s one variable less and also because it allows to forget about the project problem).

So, what’s a good exercise, providing all the difficulties (such as managing rotations with some trigonometry) while avoiding 3D?

It’s simple and that’s an application we’re all used to see : a clock!

With a clock, you have to draw and you also have to manage rotations. So, that’s a good idea.

That was just a thought that I wanted to share.

See you soon!

Note : Here, I use the word “newbie” just in the sense of “new-comers”, nothing negative as it is sometimes implied on the Web.

04 3 / 2010

The Internet Explorer Nightmare


Today at work, I had to create one of these things I don’t like because I think they’re not really useable but the client wants… Today the “I don’t like that” thing is… a vertical news scroller!

So, it’s a pretty simple thing indeed… a block (typically a rectangle) and inside it some content going from bottom to top until everything has been seen then you put everything at the bottom and go up again….

So, apart from the script that makes things go up (and it’s a simple one once you remember about scrollHeight and offsetHeight), you have to set the overflow property of the container to “hidden” in the CSS.

Straight-forward and simple ? Well… not exactly! That’s working on Firefox, Chrome, Safari and IE8 but not on IE7 nor IE6…

In fact, IE7 and IE6 behave like if overflow wasn’t set to hidden… it seems it has something to do with hasLayout but hasLayout was “true”…

In fact, for the overflow property to work correctly, you should set the “position” property to “relative” (and you can leave top and left to 0, so that doesn’t mess with the position). And… TADA! It works!

Pretty easy… once you know it!

Too bad we still have to deal with those stupidities!

See you soon!

(by the way, sorry, still no podcast, but I promised it will come, and it will… I’m still waiting for some graphics :))

02 3 / 2010

The Podcast is coming


Just a quick note to tell everyone that I’m sorry for being late to publish the first Podcast. You know, it’s always the same thing : quite a lot of work, a bit ill (nothing bad, don’t worry), and the need to sleep… Not to say that the Olympic Games haven’t been of any help. ;)

I hope to be posting it tomorrow evening!

See you soon!

16 2 / 2010

Announcing the new haXe podcast serie.

15 2 / 2010

Why you shouldn’t put a contact form on your website.


Today at work I’ve been prospecting for a (web|communication)-agency. I came across several ones and I had to contact them.

That’s a pretty obvious and straight-forward thing. Well, at least it should be, because most of the time when calling you have difficulties to get to speak to someone who can help you (certainly because they are at a meeting).

But my point today is about contact forms included on websites. I came across several, and although that may seem pretty good for you because you can ask for some informations and have them for sure and also have them in a formatted way.

But the real problem is that mails sent by this way are not stored in your customer’s mailbox, making it difficult for him to track the conversation and have a trace of the contact.

So, one may argue that contact forms are also pretty good because they are a straightforward way to contact you without opening a mail application (yes some people do not have things correctly configured for mailto: links). That’s true, but that should never be the only possibility, nor should it “hide” your mail address.

I suggest to give both options and to present them with an equivalent sizing (i.e. : they should occupy the same space). Also, if the user choose to use the form, add a checkbox so that you can send him a copy of the mail for its archive.

That may seem a bit stupid, but trust me, even if I had a spreadsheet to follow my contacts, I sometime forgot to update it (I had some other things in mind) and the pain that comes with that can be avoided quite easily. And never forget : if you help me with my work, you’re already half way to get selected! ;-)

Any thoughts?

See you later!

18 1 / 2010

Bought a netbook : Acer Aspire One


Some weeks ago I bought a netbook. The reason was pretty simple : I have a macbook that I use both for my personal use and for school. So I have MacOSX on it, but being a web-developer and an IT student, I sometimes need to be able to do some testing on Windows. Add to that the fact that I’m the proud ashamed owner of Windows Mobile based phone and that I want to be able to develop for it and you’ve got the picture!

So I decided to buy a Acer Aspire One D250. It comes loaded with Windows 7 Starter Edition and Android.

First, let’s have a word about Windows 7 Starter Edition : it’s just a joke. Excuse me, but preventing the user from changing the wallpaper isn’t anything feature-based. Not being able to create a bridge between two network interfaces is much more one… so I upgraded to Windows 7 Professional as provided by MSDNAA account.

But enough talking about Windows.

So, what happened when I unboxed my netbook?

I turned it on and at my surprise, Windows was booting without me being presented with any LILO/GRUB screen to allow me to boot Androïd. I found out that there’s a Windows utility to “install” (or allow booting of) Androïd. That’s a bit strange but anyhow…

So, next thing, when you buy a computer loaded with an OS, you’re wanting your “restore CD”. Well, years before, they used to give it. Now you have to burn them…

But since a 10.1” wide-screen netbook, there’s no DVD-Drive. That’s normal… But the utility to create the discs won’t let me create an ISO image… no, it just keeps saying that it can’t create the restore discs since there’s no burner… You know they could at least let you create an image for you to put on an usb-drive or burn from another system, but no. Period.

Later I found a workaround by using the demo version of a software to create a virtual burner…

I also have to say that there’s a restore partition on the hard drive but come on, how well does it work if you screw up your partitions table or accidentally write on it? You’re just fucked.

That’s what makes you feel quite bad about a system that should be 100% embedded… it’s not well integrated and that made me feel like “We have a generic software to create restore discs, we just ship it on all computers”, period.

Tomorrow, I’m gonna talk about the Androïd system that comes with it.

See you online!