If you are anything like me, you have access to a ton of different servers and usually 10 sessions open at once.
If you are anything like me, you have experienced executing a command meant for a staging server on a production machine when under pressure.
The only problem was that when I made that error, that specific webserver was being used to give a presentation to the management and it broke the site...
September 07, 2017
June 29, 2016
Docker for OSX: Lotsa "wows", couple "ohws"
So I finally got the chance to experiment a bit with the new RC of docker for OSX.
July 17, 2015
How StackOverflow is encouraging laziness
First of all: this post is purely opinion based.
I have no hard evidence to stave my claims and they are based solely on my own observations over the years.
If you were doing Pascal or Delphi at that time you could obtain a copy of SWAG (not what it means now! It stands for SourceWare Archive Group). This was a downloadable, self-sustained library containing a huge amount of code snippets to help you with solving a lot of common issues. The last version was from '97 (am I that old already?).
The SWAG was my personal bible for several years and I learned so much from it.
Thinking of it: I still have my Ralph Brown Interrupt List book laying around somewhere, clocking in at several kilograms.
Just to say that: We had to figure out things for ourselves.
You had to learn and practice a lot - which was good - but it slowed things down.
Everyone was forced to invent wheels and so on.
resource of information. And there were all these other people looking into the same thing and writing articles about them. A miracle!
So awesome!
Wanted to know something? Ask Google, someone probably already did that or could at least help you. You even had a couple specialised sites like Experts-Exchange. If you knew how, you could always get to the answers without paying :o)
Then around 2010 I discovered StackOverflow and wow, what a joy. Still practicing what I've learned all those years ago I turned to it often, but didn't feel the need to register or participate.
Eventually my competitive side caught up and I decided to jump in and register.
Even after that I've been more of a reader than a replier, so I didn't gain much reputation over the years. But because I was spending more time on the site I started noticing some things.
Initially the biggest part of the questions were very challenging and about serious problems and so on. Sure there were the easier/starter questions, but they were posed only once (or quickly shut down with a duplicate label if not).
Over the course of the last years that changed.
I started to notice that questions became more trivial, stupid even.
Often they could be solved by a 3 second trip to Google or a glance at the documentation.
Also the number of repeat questions has been steadily going up.
For example: The last 2 months I've noticed a question about "Headers already sent" in PHP 5 or 6 times.
Initially it drove people into participation. Competitive behaviour has always been there and always will be. It was simply the best solution to get the site going.
Fortunately the people answering questions back then were serious about providing the world with a great programming resource. They were awesome in their answers and vigorous in their cleanup of junk questions.
With the big influx of new people - Everyone can program remember? - that has been changing.
Instead of flagging questions as duplicate (and thus trying to teach newcomers on how to correctly use the site) you had people jumping on the easy questions and answering them.
The question already had an accepted answer even before it could be flagged, all for that little gift that is more reputation.
This seems to result in lazier and lazier programmers in my opinion.
Well it's not just SO, I have noticed a big trend towards "doing as little as possible" the last couple of years, but still.
People come and ask one of those idiotic questions - something they could've solved themselves with about a minute of effort - and actually expect an answer and having their work done for them.
Not only that: Often after they get a reply they would continue asking more in the comments before handing out the accepted flag, mor than once unrelated to the original question.
I've witnessed a couple occasions where people answering were asked to write the entire piece of code.
The worst thing is, current responder behaviour on the site actually encourages this. People do answer and do write that code. We shouldn't be! We should be asking the OP things like:
Not provide them with an easy way out! That only encourages them the next time!
In my opinion the original purpose of Stack Overflow is about trying to educate your fellow developer. Teach them, mold them, help them grow, guide them towards becoming a better developer.
Unfortunately it seems most people are thinking about their own reputation.
We are slowly losing the fight to laziness people, it's time to do something about that!
Don't answer, help them discover a solution themselves by guiding them.
Don't go for the easy 15 points, as hard as that is.
And for those only wanting the reputation?
In my opinion there should be an "answered a lazy question" kind of penalty.
If your answer gets flagged for that 3 or more times you would lose double the reputation that you gained with it.
I have no hard evidence to stave my claims and they are based solely on my own observations over the years.
A bit of history...
Before the internet was available for everyone, developers were forced to figure out things on their own. Sure there were bulletin boards, but one had to be able to access them. Books as well, but you had to have money for those. You could xerox some pages from a friend or colleagues' book if you knew someone. An ancient form of piracy!If you were doing Pascal or Delphi at that time you could obtain a copy of SWAG (not what it means now! It stands for SourceWare Archive Group). This was a downloadable, self-sustained library containing a huge amount of code snippets to help you with solving a lot of common issues. The last version was from '97 (am I that old already?).
The SWAG was my personal bible for several years and I learned so much from it.
Thinking of it: I still have my Ralph Brown Interrupt List book laying around somewhere, clocking in at several kilograms.
Just to say that: We had to figure out things for ourselves.
You had to learn and practice a lot - which was good - but it slowed things down.
Everyone was forced to invent wheels and so on.
Let there be internet!
Then the internet came and it changed our lives. Suddenly you had this vast and unlimitedresource of information. And there were all these other people looking into the same thing and writing articles about them. A miracle!
So awesome!
Wanted to know something? Ask Google, someone probably already did that or could at least help you. You even had a couple specialised sites like Experts-Exchange. If you knew how, you could always get to the answers without paying :o)
Then around 2010 I discovered StackOverflow and wow, what a joy. Still practicing what I've learned all those years ago I turned to it often, but didn't feel the need to register or participate.
Eventually my competitive side caught up and I decided to jump in and register.
Even after that I've been more of a reader than a replier, so I didn't gain much reputation over the years. But because I was spending more time on the site I started noticing some things.
Initially the biggest part of the questions were very challenging and about serious problems and so on. Sure there were the easier/starter questions, but they were posed only once (or quickly shut down with a duplicate label if not).
Over the course of the last years that changed.
I started to notice that questions became more trivial, stupid even.
Often they could be solved by a 3 second trip to Google or a glance at the documentation.
Also the number of repeat questions has been steadily going up.
For example: The last 2 months I've noticed a question about "Headers already sent" in PHP 5 or 6 times.
Sigh
Thinking about this I realised that this whole reputation thing is a double edged sword.Initially it drove people into participation. Competitive behaviour has always been there and always will be. It was simply the best solution to get the site going.
Fortunately the people answering questions back then were serious about providing the world with a great programming resource. They were awesome in their answers and vigorous in their cleanup of junk questions.
With the big influx of new people - Everyone can program remember? - that has been changing.
Instead of flagging questions as duplicate (and thus trying to teach newcomers on how to correctly use the site) you had people jumping on the easy questions and answering them.
The question already had an accepted answer even before it could be flagged, all for that little gift that is more reputation.
This seems to result in lazier and lazier programmers in my opinion.
Well it's not just SO, I have noticed a big trend towards "doing as little as possible" the last couple of years, but still.
People come and ask one of those idiotic questions - something they could've solved themselves with about a minute of effort - and actually expect an answer and having their work done for them.
Not only that: Often after they get a reply they would continue asking more in the comments before handing out the accepted flag, mor than once unrelated to the original question.
I've witnessed a couple occasions where people answering were asked to write the entire piece of code.
The worst thing is, current responder behaviour on the site actually encourages this. People do answer and do write that code. We shouldn't be! We should be asking the OP things like:
- What have you tried?
- Have you looked at your logs for an error message?
- Did you take a look at the documentation?
- ...
Not provide them with an easy way out! That only encourages them the next time!
In my opinion the original purpose of Stack Overflow is about trying to educate your fellow developer. Teach them, mold them, help them grow, guide them towards becoming a better developer.
Unfortunately it seems most people are thinking about their own reputation.
We are slowly losing the fight to laziness people, it's time to do something about that!
So?
So... next time you see one of those questions:Don't answer, help them discover a solution themselves by guiding them.
Don't go for the easy 15 points, as hard as that is.
And for those only wanting the reputation?
In my opinion there should be an "answered a lazy question" kind of penalty.
If your answer gets flagged for that 3 or more times you would lose double the reputation that you gained with it.
October 13, 2014
Shell scripts with admin privileges in Keyboard Maestro
I try to automate a lot of things using Keyboard Maestro and some things are accomplished using shell scripts. For example I have a couple macros that, when I arrive at a client, get triggered by a connect to their wireless network and set up routing, start some apps etc.
Now you probably know that modifying the routing table requires root privileges and if you trigger a shell script that requires SUDO the normal way, you get one of these:
Nice innit?
There are some messy ways we can solve this, like for example adding the script file name to the sudoers-file as a command that does not require a password. If you are like my, you won't like this approach. I really don't want to do this for each and every script I plan on adding.
Now you probably know that modifying the routing table requires root privileges and if you trigger a shell script that requires SUDO the normal way, you get one of these:
Nice innit?
There are some messy ways we can solve this, like for example adding the script file name to the sudoers-file as a command that does not require a password. If you are like my, you won't like this approach. I really don't want to do this for each and every script I plan on adding.
The Solution
More like a solution. There are multiple paths here. I can't think of a way to have a console script popup a dialog on a Mac to get the password. Perhaps we could abuse some kind of mac-compatible ssh-askpass thing to accomplish this, but then you have the password and you'd still have to get the script to re-execute as root..
So, AppleScript perhaps?
Since AppleScript can be interactive and you can tell it to run applications with administrator privileges, it seems like a good idea to just have some kind of sudo'ing script that triggers our shell script.
Turns out this is a lot easier to do than expected:
Just fire up your applescript editor and type in this little thingy:
on run argv
set script to (item 1 of argv)
do shell script script with administrator privileges
end run
Save the script as sudo.scpt (or whatever you prefer)
So this little gem will actually popup a regular password dialog and then execute whatever shell script you specified as its first argument with admin privileges. In your shell script you just use sudo in front of your commands and it will work.
And in Keyboard Maestro?
Adding this to Keyboard Maestro is not that hard either. You can just use the "Execute Shell Script" action (not AppleScript!) as we will type in a full command line with arguments here. An AppleScript is ran by using osascript so that's what we start with:
And that's it basically.
You can press the Try button. You'll get a password prompt and then your shell script will be triggered. Obviously you should modify everything to your needs.
Steve out.
October 06, 2014
MacOS and multiple (concurrent) Vagrant boxes
Are you running more than one Vagrant box concurrently, forcing you to resort to port numbers for correct working?
I am, and it's been annoying me for quite a while. Every of my sites has its own specific VirtualBox VM. Sometimes I might work on more than one at a given time (eg 2 sites communicating with each other via an API) so keeping them on the default ports and then only using 1 at a time wasn't a real solution.
So I decided to spend some time on the matter and see what I could trump up.
As it turns out... a lot!
I am, and it's been annoying me for quite a while. Every of my sites has its own specific VirtualBox VM. Sometimes I might work on more than one at a given time (eg 2 sites communicating with each other via an API) so keeping them on the default ports and then only using 1 at a time wasn't a real solution.
So I decided to spend some time on the matter and see what I could trump up.
As it turns out... a lot!
April 02, 2013
HP K850 & F*ing expiring cartridge(s)
From joy...
A couple years ago I really needed an inktjet capable of printer A3 and preferably having separate cartridges for the colours. After some looking around I chose for the Hewlett Packard K850 with duplex module and network functionality. I was really happy about it and it server me well. A lot of paper went through that one...... to hate!
Unfortunately I ran into some nasty stuff: Expiring cartridges. It seems that HP built in an enforced expiry date into the cartridges. And because I didn't use the inkjet enough to empty out cartridges I ran into this. Twice!Now if you know what a standard HP cartridge costs, imagine having to buy 4 different onces. They go for about 40€ per piece in Belgium.
The first time this happened I wasn't very angry about it since they were almost empty. I looked for a solution, found none at first glance and decided to just replace them.
Unfortunately I do not use the printer as much anymore. So today I fired it up, printed a diagnostics page, did a head cleaning and then fired up my normal print-job. Imagine my anger when the stupid printer refused to print. I received the famous "Printer cartridge expired, please replace". Well, I wasn't going to replace 4 perfectly full cartridges, no matter how much HP whines about "aging ink and damaging your printer". The decision should always be the customers, not the manufacturer! It seems I also have one of the few models that does not allow the user to override this. *sigh*
and back to "joy".
So I started browsing the web. So many frustrated people with the same issue. I figured out that the driver sends the date to the printer using the "@PJL SET TIMESTAMP"-command. Knowing that on a Mac, the printer drivers can be found under /Library/Printers/, I opened up my Terminal and did an "ag" for TIMESTAMP in the /Library/Printers/hp/ folder. To my surprise I got 2 hits in a single file:
/Library/Printers/hp/cups/Inkjet.driver/Contents/Resources/XMLData/Data/PDLData.xml
An XML, this must be my lucky day! Would HP be so careless as to store the entire communication protocol in an external file?
This being a system file, I "sudo vi'ed" it and did a search. Both where "@PJL SET TIMESTAMP"-commands. So I just changed the TIMESTAMP into something else (in my case I simply replaced a letter with an X). After saving the file and rebooting (don't know if that is required), my printer is now happily spewing out pages again, with the "expired cartridges" as it has no idea anymore about what date it actually is.
I decided however that I will not be buying new ink for this printer. When the cartridges are depleted I will get rid of the printer and never buy HP again.
March 08, 2013
No explanation required...
I guess this needs no further explanation besides a "sigh":
switch ($month) {
case '01':
$maand = 'Januari';
break;
case '02':
$maand = 'Februari';
break;
case '03':
$maand = 'Maart';
break;
case '04':
$maand = 'April';
break;
case '05':
$maand = 'Mei';
break;
case '06':
$maand = 'Juni';
break;
case '07':
$maand = 'Juli';
break;
case '08':
$maand = 'Augustus';
break;
case '09':
$maand = 'September';
break;
case '10':
$maand = 'Oktober';
break;
case '11':
$maand = 'November';
break;
case '12':
$maand = 'December';
break;
}
switch ($month) {
case '01':
$maand = 'Januari';
break;
case '02':
$maand = 'Februari';
break;
case '03':
$maand = 'Maart';
break;
case '04':
$maand = 'April';
break;
case '05':
$maand = 'Mei';
break;
case '06':
$maand = 'Juni';
break;
case '07':
$maand = 'Juli';
break;
case '08':
$maand = 'Augustus';
break;
case '09':
$maand = 'September';
break;
case '10':
$maand = 'Oktober';
break;
case '11':
$maand = 'November';
break;
case '12':
$maand = 'December';
break;
}
December 18, 2012
Ticketing & Locking
We provide services to facilitate communication between us and our distributors. This application is called "contacts". Any contact request can only be updated by one party at a time (it is locked while someone has the page open), but the person who logged the question is always able to view the request.
Today I received a mail about an issue with the locking system. Our customer was told that their contact request was under treatment by themselves and that they could not update it while someone else was editing.
After spending a while trying to figure out under which circumstances a contact was locked and unlocked and not being able to find anything (seriously) wrong with it I looked a bit further.
Turns out that the column in the table that stores who locked the contact contained the name of the user instead of the (expected) user-id.
The fun part was this: This column was limited to 20 characters and the users' name was longer than that. The result? A concatenated string and the comparison that goes wrong everywhere, considering the actual contact owner and the person who locked the request as 2 different ones.
Welcome to the world of non-programmers writing code.
Today I received a mail about an issue with the locking system. Our customer was told that their contact request was under treatment by themselves and that they could not update it while someone else was editing.
After spending a while trying to figure out under which circumstances a contact was locked and unlocked and not being able to find anything (seriously) wrong with it I looked a bit further.
Turns out that the column in the table that stores who locked the contact contained the name of the user instead of the (expected) user-id.
The fun part was this: This column was limited to 20 characters and the users' name was longer than that. The result? A concatenated string and the comparison that goes wrong everywhere, considering the actual contact owner and the person who locked the request as 2 different ones.
Welcome to the world of non-programmers writing code.
October 04, 2012
The life of a Fixer #2
PHP: How to convert a date into a different format
$timestamp = explode(' ',$transaction['datetime']); // 2008-04-28 17:40:19
$date = explode('-',$timestamp[0]);
$date = $date[2].'/'.$date[1].'/'.$date[0];
$time = substr($timestamp[1],0,5);
$datetime = $date.' '.$time; // 28/04/2008 17:40
Tada!
Javascript: Drag and drop with different processes
So we have a callback function for a drag and drop script that was found on the web somewhere and we have a box called IN where we can drop "products" on.
Some of the thoughts we have during development of "this solution":
- Of course we write a single function of about 400 lines of code, it's cooler that way.
- We need to check the drop target as it needs to have a specific ID, so we do some getElementById magic.
- Oh crap, now we also need an OUT box. We have a couple issues here... The drop box for that one has a different ID (a '2' was appended, obviously!). Also: sometimes we have to show a prompt and the text there needs to be different. Conclusion: We can't possibly re-use the code from the other box! Let's just copy/paste all 400 lines and make a different function (ah and of course, add a '2' to the name).
- Hmm crap... The customer seems to work with internet explorer. The one line of code that checks the drop target does not work there. Easy fix! Let's just take the entire javascript file, copy it into a "script-ie.js" file. And presto, we include that one if the customer has IE. Modifying 4 functions every time? No problem!
- Hmm we appear to have 2 kinds of products. The ones that need to go through the ERP system and products that remain local to the shop. How do we handle that? Simple! We just add an asterisk before the name to indicate the difference. Actually we thought about this a lot, since there are way less local products, we show the asterisk for those. Our customers won't wonder at all what a "* name of the hardware" is (no there aren't any footnotes at the end of the page).
- So now we have to ask a serial number for some of the products. How do we indicate that? Yes of course, you guessed it already! We just add another asterisk, but AFTER the product name! We cant do 2 before the name, how would we know which one stands for what? You silly! So yeah... "*I'm a local product and I need a serial*". It's gotta be clear what this means, no?
The life of a Fixer
Intro
So, for those of you who don't already know: I've recently stepped into my own business fulltime. I work as a freelancer for a company that has outsourced me to another company as a consultant. (Yeah complicated, I know).In that company ("the client") I'm taking care of all the internally used PHP applications. Internally I'm what they refer to as "a fixer" and boy that expression holds some serious truth.
Most of the tools were originally written by non-developers (basically by anyone that had some web-experience and needed some kind of tool to get something done) and unfortunately it shows.
Now mind you, they are doing everything humanly possible to clean all this up, I wouldn't be here if they weren't. So in no way do these posts say negative things about the company as a whole, this is just about the legacy they have to deal with on a daily basis. I consider it my mission to improve their code while I'm maintaining it, but unfortunately it will take a while.
And... ?
Well as you might already suspect, I've been working there for a month now and I used up my "WTF!?" quota for the next 5 years. Which is why I figured I might as well share some stuff with the world :-)
Unfortunately I've missed a lot of good ones already, perhaps I'll recall enough details one day to still post them, but I'm sure there's more than enough stuff remaining :-)
A lot of these assume you know a thing or 2 about web development, which is why I'm putting them all under nerdy and webdev (and definitely WTF!).
Why not The Daily WTF you might ask? I don't want to fill up their news queue for the next year ;-)
Here we go!
A very urgent ticket was created yesterday. When arriving on the target site whilst not being logged in, you would get an error after logging in there. (Invalid template).
Some investigating later we determined that the user was correctly redirected to the login form if still anonymous, but that the redirect back to the originating page seemed to lose the query parameters.
This of course resulted in the described error, as the target page did not know what article to show.
Easy fix right? Figure out where the access check is done and make it include the query string as well. Mind you, for once this actually was the problem! Unfortunately as with everything I encounter here, there's more!
The code that did the check was in the actual target file. Not an included file, not a class... the actual source file. I'm pretty sure this will cause "oh shit" thoughts in every developers' head.
So we have an "isAuthorized"-function and a piece of regular code below, with a lot of MM_ prefixes (ah MacroMedia Dreamweaver stuff... nostalgia!).
A search later (a lot of doubting on whether I should actually do that) it turns out that the same snippet (function AND regular code) is copy/pasted into every one of the 253 entry scripts.
The allocated budget is limited to just this one fix, so there's no fixing the rest... So we log a "problem ticket" about the 252 other cases (that have the same bug but aren't currently considered an issue). If the customer ever approves that ticket we'll handle those. 'til then it's 252 pieces of buggy code!
See you on the one ;-)
June 07, 2012
Hurray voor de CBPL! (en in your face stad Mechelen)
Since this post is local to Belgium and more specific Mechelen, I'm going to write it in Dutch. My apologies to the English speaking folks following my blog (if any ;-) )
Waarover gaat het?
Vlak nadat ik een bouwvergunning aanvroeg in Mechelen om renovaties te doen aan mijn woonst, begon ik van een hoop bedrijven van bouwmaterialen geadresseerde reclame te krijgen. Elke dag zat er wel een ander stuk in mijn bus. Ik heb zelf een hartsgrondige hekel aan reclame, er kleven niet voor niets 2 NEE stickers op mijn brievenbus (wat de ronddragers overigens nog steeds niet tegenhoud).
Kun je niets tegen beginnen, toch?
Toen de vloed aan reclame niet stopte besloot ik om een klacht in te dienen tegen Stad Mechelen bij de CBPL (Commissie voor de Bescherming van de Persoonlijke Levenssfeer). Zo'n praktijken kunnen gewoon niet meer.
Na ettelijke maanden over en weer mailen (want snel zijn ze helaas niet) en de nodige bewijsstukken (reclame dus) over te maken, heb ik vandaag dan toch een brief gekregen die mij hoop geeft.
De CBPL heeft heel deze zaak heel grondig opgevolgd. Ze heeft de stad Mechelen meermaals om verantwoording gevraagd (met 2 herinneringsbrieven tussendoor wegens geen antwoord). Uiteindelijk is Mechelen dan toch in beweging gekomen en daar heb ik vandaag verslag van gekregen.
Wat dan?
Sta me toe een deel van de brief openbaar te maken:
Geachte heer,
Ik verwijs hierbij naar mijn e-mail d.d. 31 januari 2012 waarin ik u beloofde u op de hoogte te brengen van het antwoord van de Stad Mechelen.
Na het versturen van twee herinneringsbrieven aan de stad Mechelen heeft de Commissie op 23 mei 2012 een antwoord ontvangen.
Uit hun antwoord blijkt dat bij de controle van de verwerking van de persoonlijke gegevens, na de beslissing van het College van burgemeester en schepenen, de gegevens worden doorgegeven aan het Kadaster en aan het Nationaal Instituut voor statistiek. De gegevens worden ook doorgegeven aan zogenaamde "niet-relevante" instantie (Belgacom, Bouwkroniek, BTW, Confederatiebouw, Electrabel, Pidpa, Polder). Dit systeem is blijkbaar al vele jaren een gewoonte.
Naar aanleiding van het schreven van de Commissie heeft het College van burgemeester en schepenen beslist dat er geen gegevens meer worden doorgegeven aan niet-relevante instanties.
W00t zou ik zo zeggen! Ik heb er zelf niets meer aan, moet me nog altijd van al die adreslijsten zien te krijgen, maar aan de toekomstige bouwvergunnings-aanvrager: You're welcome! :-)
Ik weet niet waarom ze het al jaren zo doen, maar het hoort gewoon niet. Ik heb letterlijk weken aan een stuk 3 tot 4 stukken reclamedrukwerk per dag gekregen.
January 20, 2012
MacOS Lion: Slow Disk?
In September I bought a brand new iMac with 8GB RAM and a regular harddisk. Even though it should've been a work horse, it wasn't. The CPU itself was never really loaded, but everything that required disk access seemed to be ULTRA SLOW. When the disk was under heavy load, the swiping between desktops would just hang halfway a slide and so on.
I guess I don't have to mention that, given the price of one of those Macs, this was extremely frustrating.
It even annoyed me up to the point that I actually called Apple to ask how much it would cost me to add an SSD. Unfortunately the price tag (about 800 euro's) was a bit too steep for my wallet. Apparently the back cover of the iMac has different configurations as well and if you buy a Mac with a regular disk alone, it has no bracket to mount the SSD. So its not SSD + hours but also the price of a new back cover. So people: Think before you buy! An SSD is a really good investment and it will cost you half that price when you add it right at the start.
Anyway, back to the point: I recently found this little post on one of the mac boards about that issue. Since I had Quicksilver installed, I thought like: Eureka! Nothing else had worked before. The minute I disabled it it became apparent that that was indeed the root cause of the extremely slow disk! The Mac now behaves as I would expect it.
So people if you run Lion: Don't use Quicksilver!
I guess I don't have to mention that, given the price of one of those Macs, this was extremely frustrating.
It even annoyed me up to the point that I actually called Apple to ask how much it would cost me to add an SSD. Unfortunately the price tag (about 800 euro's) was a bit too steep for my wallet. Apparently the back cover of the iMac has different configurations as well and if you buy a Mac with a regular disk alone, it has no bracket to mount the SSD. So its not SSD + hours but also the price of a new back cover. So people: Think before you buy! An SSD is a really good investment and it will cost you half that price when you add it right at the start.
Anyway, back to the point: I recently found this little post on one of the mac boards about that issue. Since I had Quicksilver installed, I thought like: Eureka! Nothing else had worked before. The minute I disabled it it became apparent that that was indeed the root cause of the extremely slow disk! The Mac now behaves as I would expect it.
So people if you run Lion: Don't use Quicksilver!
December 09, 2011
iFit - Another follow up.
Since it's been a while, I decided to write a bit of a follow up on the iFit module as there have been some developments.
The classical music
I recently found out with some help from Amanda (@IFit Live Support) that getting rid of that pesky song is as easy as connecting the module to your PC and going into the "Audio" folder on the drive. In there you'll find a file called "test.mp3". Delete it (or move it to somewhere on your PC for safekeeping) and let the silence engulf you!
The not posting to Facebook
A new firmware was released recently that apparently takes care of this issue. So far I have done 2 workouts and both were correctly finalized (mail + facebook post).
What's still wrong?
I still have to press the iFit or "My Training" buttons a zillion times before I get the new workout, it keeps suggesting the last done workout. The best way to get to the new workout seems to be to remove the safety key again, put it back and try again.
Also the shutdowns seem to have stopped too. The only shutdown is if I let the machine idle for 10 minutes or so. Seems that the way the iFit asks for a shutdown is not the way the machine likes it, as it requires a power cycle to get it started again.
Maps?
I have to admit I didn't try the maps feature anymore since it caused so much issues last time, but perhaps I should and let you all know how it went. Now that I don't have to sit through that entire song anymore it doable.
Maps?
I have to admit I didn't try the maps feature anymore since it caused so much issues last time, but perhaps I should and let you all know how it went. Now that I don't have to sit through that entire song anymore it doable.
Signing off.
Still Alive!
Hi!
(This is a pretty long one. If you want to take away anything of this and just skip the junk, start reading at "So?" :) )
It's been a while since my last post but rest assured, I'm still here :)
Been somewhat busy lately, but wanted to take some time to tell you about a couple of my anxieties the last couple of weeks.
Usually when I go on a vacation, with my food addiction and all, I come back a couple of kg's heavier. When there is a buffet for example, I've always felt the urge to taste everything, every evening. A 3kg heavier return trip from a 2 weeks vacation? Very plausible.
So yeah, queue a week to Turkey followed by a week in Romania for work. Since I have been doing so well lately I was pretty scared about both weeks. Didn't wanna break the flow ya'know?
New mindset?
Luckily it turned out that my need for all these things is not really there anymore. Somehow I managed to change my thinking process into a realistic one. Lately, when I look at something sweet that I used to be very fond of I'm always thinking: This is probably about X calories. To get rid of that many calories I have to abuse my treadmill about this long. Is it worth it? And somehow the answer is "naah!" most of the time.
The cool thing is that when I decide it is, I consciously will take a much smaller portion than I used to. I just eat it a lot slower. This way the enjoyment lasts a lot longer than the bigger portion (which usually got swallowed in one piece).
Turkey
The week in Turkey went pretty well food wise. Ate a lot of vegetables from the buffet and tasted a lot of the local dishes, but in moderation. I checked out the dessertbuffet every day but couldn't usually find something that I liked very much so most of the time I returned without anything. And of course I made a ton of pictures (take a look if you are interested).
Not having my treadmill wasn't so bad since we were walking around all the time.
The netto result of our trip to Turkey? -900gr after 8 days. So despite of the different food with lots and lots of olive oil still managed to lose almost my average loss in a week. Moderation works!
Romania
The week to Romania was a bit worse, as I've been working there the entire week. Not much movement there. I really don't like to run outside. In Belgium this is mainly because of my bad knees. But the idea of running around in Romania, hmm no I'd rather not.
Unfortunately the food there is not nearly as good as Turkey and because we usually order out it's hard form me to try to get something healthy every time. I ate a pizza while we were there, albeit a small one and so on.
On the flights to and from they seduced me with one thing I still really like: Snickers! Both meals included a little one (like 1/4th of the regular size). I ate them both but by choice, not by "forced behavior".
So?
I'm starting to realize that I feel less and less "obliged" to eat something just because it's there. In my entire history with weight problems this is something I never managed before. In my opinion this is the single most important thing that everyone who wants to loose weight needs to accomplish first.
But how?
The reason for this is twofold:
First, I'm extremely lucky to have someone who is in the same situation and who fully supports me. I don't think I would been able to get here without the support of my girlfriend in all this.
Secondly: Because I gave myself a frame of reference to compare against! I know how hard I have to workout to get rid of 100kcals. Before all this I never even cared. Knowing this helps you think about something you are about to put in your mouth. That in turn gives you the power to say no.
So what about diets then?
Pfuh, away with them as far as I'm concerned. They do way more damage than good. My girlfriend has been in that situation. She tried a lot of the diets out there. The end result was that the weight she gained back after the diet stopped was all fat and nearly no muscle. That really sucks, because she did lose a lot of muscle mass during.
The end result of all that is that she has had a way harder time than I did to hang in there. She needed to gain more muscle first before she could burn enough energy to lose weight. Of course all the medication she was getting during did no good either.
Luckily we have one of those scales that measures the muscle-% versus the fat-%. This is by no means an exact science, but it showed enough difference every weigh-in for her to continue. I'm happy to be able to say that she's now at a point were she is also starting to lose weight.
But if you take everything into consideration you realize there is no such thing as a quick-fix-diet to lose weight permanently. Anything that involves food supplements, pills, whatever is bound to fail in the long run.
The only thing that works is changing your eating habits and to make sure you get plenty of workout.
Will this last for me? I don't know, I guess time will tell. But I'm doing it like this since about September and so far I've lost 14kg! Since we're not dieting, we also don't feel that we need to indulge once in a while and the cravings have almost absent (or perfectly manageable) as well.
Before/After(during) picture. Ignore the pink in the before picture (it was taken at "Race for the Cure", a breast cancer awareness event) and for the during picture, the just-out-of-bed-head:
(This is a pretty long one. If you want to take away anything of this and just skip the junk, start reading at "So?" :) )
It's been a while since my last post but rest assured, I'm still here :)
Been somewhat busy lately, but wanted to take some time to tell you about a couple of my anxieties the last couple of weeks.
Usually when I go on a vacation, with my food addiction and all, I come back a couple of kg's heavier. When there is a buffet for example, I've always felt the urge to taste everything, every evening. A 3kg heavier return trip from a 2 weeks vacation? Very plausible.
So yeah, queue a week to Turkey followed by a week in Romania for work. Since I have been doing so well lately I was pretty scared about both weeks. Didn't wanna break the flow ya'know?
New mindset?
Luckily it turned out that my need for all these things is not really there anymore. Somehow I managed to change my thinking process into a realistic one. Lately, when I look at something sweet that I used to be very fond of I'm always thinking: This is probably about X calories. To get rid of that many calories I have to abuse my treadmill about this long. Is it worth it? And somehow the answer is "naah!" most of the time.
The cool thing is that when I decide it is, I consciously will take a much smaller portion than I used to. I just eat it a lot slower. This way the enjoyment lasts a lot longer than the bigger portion (which usually got swallowed in one piece).
Turkey
The week in Turkey went pretty well food wise. Ate a lot of vegetables from the buffet and tasted a lot of the local dishes, but in moderation. I checked out the dessertbuffet every day but couldn't usually find something that I liked very much so most of the time I returned without anything. And of course I made a ton of pictures (take a look if you are interested).
Not having my treadmill wasn't so bad since we were walking around all the time.
The netto result of our trip to Turkey? -900gr after 8 days. So despite of the different food with lots and lots of olive oil still managed to lose almost my average loss in a week. Moderation works!
Romania
The week to Romania was a bit worse, as I've been working there the entire week. Not much movement there. I really don't like to run outside. In Belgium this is mainly because of my bad knees. But the idea of running around in Romania, hmm no I'd rather not.
Unfortunately the food there is not nearly as good as Turkey and because we usually order out it's hard form me to try to get something healthy every time. I ate a pizza while we were there, albeit a small one and so on.
On the flights to and from they seduced me with one thing I still really like: Snickers! Both meals included a little one (like 1/4th of the regular size). I ate them both but by choice, not by "forced behavior".
So?
I'm starting to realize that I feel less and less "obliged" to eat something just because it's there. In my entire history with weight problems this is something I never managed before. In my opinion this is the single most important thing that everyone who wants to loose weight needs to accomplish first.
But how?
The reason for this is twofold:
First, I'm extremely lucky to have someone who is in the same situation and who fully supports me. I don't think I would been able to get here without the support of my girlfriend in all this.
Secondly: Because I gave myself a frame of reference to compare against! I know how hard I have to workout to get rid of 100kcals. Before all this I never even cared. Knowing this helps you think about something you are about to put in your mouth. That in turn gives you the power to say no.
So what about diets then?
Pfuh, away with them as far as I'm concerned. They do way more damage than good. My girlfriend has been in that situation. She tried a lot of the diets out there. The end result was that the weight she gained back after the diet stopped was all fat and nearly no muscle. That really sucks, because she did lose a lot of muscle mass during.
The end result of all that is that she has had a way harder time than I did to hang in there. She needed to gain more muscle first before she could burn enough energy to lose weight. Of course all the medication she was getting during did no good either.
Luckily we have one of those scales that measures the muscle-% versus the fat-%. This is by no means an exact science, but it showed enough difference every weigh-in for her to continue. I'm happy to be able to say that she's now at a point were she is also starting to lose weight.
But if you take everything into consideration you realize there is no such thing as a quick-fix-diet to lose weight permanently. Anything that involves food supplements, pills, whatever is bound to fail in the long run.
The only thing that works is changing your eating habits and to make sure you get plenty of workout.
Will this last for me? I don't know, I guess time will tell. But I'm doing it like this since about September and so far I've lost 14kg! Since we're not dieting, we also don't feel that we need to indulge once in a while and the cravings have almost absent (or perfectly manageable) as well.
Before/After(during) picture. Ignore the pink in the before picture (it was taken at "Race for the Cure", a breast cancer awareness event) and for the during picture, the just-out-of-bed-head:
November 04, 2011
Minus 9!
I'm really pushing myself hard to only use the scale once a week. For me that day is usually Saturday morning. This morning however, I couldn't wait... I stepped on the scale and waited and it told me 121kgs. To be sure I turned it off again, stepped on it: 121kg.
Woah!
For me that pretty much means -9kg since we started eating healthy. Put in context that means that it is the first time I'm around the 120kg barrier in about 2 years. For me this is a big thing. Passing that barrier will be even bigger.
What is even more awesome is that we aren't actually following a diet or whatever. We just decided that we had enough of our unhealthy lifestyle of soda and take-out food. Drinking plenty of water, eating healthy and some extra workouts.
It's amazing for me that in those 2 short months I learned to appreciate vegetables again and my food portions have shrunk significantly as well.
See you on the other side of 120!
PS: For the doomsayers: I fully realize that it won't be going as smoothly the rest of the way, but as long as it does? You don't hear me complaining. If I start to lose less weight I'm gonna work harder, its that easy :)
Tata.
October 29, 2011
iFit Live - The Review
I have now owned the iFit Live for 5 workouts already so I figured a small review is in order. For those just tuning in: I use it together with my NordTrack T20.0 treadmill.
The Good
I try to always start with the goog things first and for the iFit there are many.
The Bad
The Possible Improvements
The Good
I try to always start with the goog things first and for the iFit there are many.
- The ability to do workouts that have been created by professional trainers: Awesome. As I already mentioned in one of my other posts I am really bad when it comes to setting goals. I tend to be too lazy and make it too easy for myself. A professional workout being delivered to my treadmill forces me to bite through my self-pity and just do it!
- The maps functionality: Wow :) I mean come on, being able to design routes of events you want to participate in and so on. Really nice.
- Total solution: It is clear that iFit wants to profile itself as an all around solution to help you get in control of your own life. It gives you the tools to track your food and weight and all related things.
- Facebook integration: Nothing gives me more energy than a friend who encourages your workout by being able to respond on your facebook and that reaction appearing on your treadmills display as if it were the most normal thing in the world.
The Bad
- The issues with the treadmill turning of at random points. This is now solved by locking my wireless network into a single channel. I'm not really happy about it, as I think that the ability of the airport devices (and all other apple devices) to be able to relocate to a new wifi channel when the old one is not optimal is awesome. But I guess I'll live. Don't ask me how I figured out that this feature was the culprit, I'm not even sure myself :P (more details)
- Getting the entire thing to work. Don't know how or what I did wrong and perhaps the above issue is related, but it took me a shitload of effort to get the entire thing working. After more than an hour in the treadmill I still had no users (I have an account with 2 users but the treadmill always showed me the main login). When it finally worked I could not find out how to add a specific workout to my program. I managed to find a page once where the workouts had the "+ Add workout" button, but after that, nothing more to e seen in my account.
It took me a while to figure out that all it needed was a logout/login to get the workout to be displayed on my dashboard and the rest to show up. Or perhaps I did that re-login just at the right time and the site was very slow? Nevertheless this process took 3+ hours. - The classical music. Who's brilliant idea was this? Seriously! The first time your treadmill starts playing classical music on its own it has a bit of a "wow" feeling but after 15 times it gets REALLY annoying. Is this really the only way to convey "I'm currently loading data" to the customer?
My GF and I usually do our workouts back to back. It turns out that the treadmill is being turned of after 5 minutes of inactivity. I don't know if this is done by the iFit module or the treadmill itself. Anyway, if it turns off like this, the only way to get it back on after that is to power-cycle. So everytime we leave on the treadmill for each other and the other one is a bit too late, I get to hear the fancy tune again. - Also, the first workout I did turned out to be the wrong one. It made me do the "Get Fit #1" first while I wanted "Weight Loss #1". Seems that this can be solved by going back to the "Home" section and pressing the "My Trainer" button again on the treadmill. It then appears to re-download some data and decides that it should now use the other workout.
The Possible Improvements
- Treat all your customers equally. What I mean by that is this: if you offer the possibility to switch between imperial and metric, be consistent and do it everywhere. Don't convert back to imperial internally because for someone who uses metric it is really annoying to see that if you enter your length as 184cm it is displayed as 182.7cm the next time. I understand that in the States it is rounded to an inch, but we use cm's and I don't like to be smaller all of a sudden. The site displays numbers in metric fine. The workout summary mail gives the impression it was added hastily afterwards (by displaying the numbers in imperial but giving you a conversion between brackets) and both the "measurements applet" and your facebook app don't even support metric. My GF would really like to use the measurement applet but we can't convert everything to inches.
A lot of people who follow me on facebook don't have a clue on how to convert miles to km's.
Small piece of advice from the web-developer in me: Store the numbers as they are in your database. Keep them in metric for metric users and in imperial for imperials. Just determine what unit name to add behind it when you output instead of re-caculating things. - If this is my treadmill's fault then I apologize, but it seems that a lot of the encouraging voice samples ("Come on, you can do it! You are changing your body right now!") have a couple of silent seconds at the end. On my treadmill this manifests as: your music stops, the sample plays and then you get to enjoy silence from 0 to sometimes 5 seconds. Getting my energy to workout from my music this is somewhat annoying.
- The navigation on the site is really unclear to me. My GF and I only discovered by accident that you could edit the current weight by going to the Goals page and then use the breadcrumbs to navigate "up" to the other pages. Up is quoted because it is displayed as being a navigational path, but actually it isn't.
- Sharing maps. As was pointed out to me on the iFit facebook page it is not possible to share running routes. Since it takes a lot of time and effort to draw your own it would be nice if this was possible.
I will definitely keep using the iFit as despite the aforementioned things, but fixing these will increase my happiness level for sure.
Just my $0.02 :)
I'm becoming iFitter!
So this morning I finished workout #2 in the iFit Weight loss program (level 4).
I did workout 1 yesterday. On their site, the workout looks like this:
I did workout 1 yesterday. On their site, the workout looks like this:
The blocks with the white lines are the inclination of the treadmill. Top of the image is an inclination of 10%. The black line is the speed which, at its peak, is 7.7kph.
Workout 2 looks like this:
I realized today that not only are they switching between speed and endurance training, but they also change the main form of training between workout. The first one was more oriented towards speed, whilst the second one was more inclination.
For fun, I weighed myself yesterday before and after the workout and the diference was 800gr! This means that I sweat out nearly a complete kg during the workout. Wowza :)
As a sidenote: I am now at -7.3kg from the starting point.
I will not be adding more images, as I'm sure people at iFit won't like this :)
October 28, 2011
Running across the world
Ever since we have the treadmill, I've been checking out that iFit functionality and last week Friday I decided to just order their live module. The idea of being able to do workouts designed by professional trainers, or run a specific route after you click it together on Google Maps, it just spoke to me. Like I said a couple times already, I love running, but if I get to set my own goals I am way to gentle to myself. So I need someone to kick my ass and force me to push through.
Today the module was delivered and I thought I was ready for loads of extra fun.
Unfortunately that's not what happened. The setup seemed to be going great, although it's pretty obvious the product is made for people running windows on their computer. I do not however since a while.
Placing the module in the treadmill, I finally managed to get it to find both Sandy's and my account. Messing around on their website to try to get one of those programs activated so I could do it. I thought it was okay and after doing the first one I realized it made me do the first step in the "Get Fit" program instead of the "Losing Weight".
On top of that the module has made my treadmill crash a couple times already. Can you imagine that? :)
I don't know how this is going to end but at this point it is NOT looking good for that iFit thing.
Update: While trying to analyse what could cause the crashes at random moments I came to the conclusion that perhaps the automatic radio channel selection functionality of my Airport network was to blame. Please don't ask me for the flow-process on how I got there, I honestly can't even tell you. Anyway, it seems that I was right. I disabled the automatic switching to the best channel and locked it down. The module hasn't crashed since.
Today the module was delivered and I thought I was ready for loads of extra fun.
Unfortunately that's not what happened. The setup seemed to be going great, although it's pretty obvious the product is made for people running windows on their computer. I do not however since a while.
Placing the module in the treadmill, I finally managed to get it to find both Sandy's and my account. Messing around on their website to try to get one of those programs activated so I could do it. I thought it was okay and after doing the first one I realized it made me do the first step in the "Get Fit" program instead of the "Losing Weight".
On top of that the module has made my treadmill crash a couple times already. Can you imagine that? :)
I don't know how this is going to end but at this point it is NOT looking good for that iFit thing.
Update: While trying to analyse what could cause the crashes at random moments I came to the conclusion that perhaps the automatic radio channel selection functionality of my Airport network was to blame. Please don't ask me for the flow-process on how I got there, I honestly can't even tell you. Anyway, it seems that I was right. I disabled the automatic switching to the best channel and locked it down. The module hasn't crashed since.
October 24, 2011
Going, going, gone!
Short update: the treadmill is awe-some! It took me a bit of messing around to get it to stop slipping (or however its called when the belt shifts) but since then it's been working really nice. Both my GF and myself have used it every day so far. I try to run at the very least 2.5km a day. So happy to realize that even with the extra padding, I still love to run on a treadmill. Good thing, as it wasn't the smallest of investments someone can make.
October 22, 2011
Treadmill!
I've always liked running since I started working out. At my lowest weight I ran on a treadmill 3 times a week for an hour and a half. I'm one of the few persons I know that actually likes running on a treadmill as opposed to outside. The fact that I can completely zone out during a workout and just focus on myself and the awesome music I'm listening to at that point, yeah it's what makes it fun for me.
Well that and the fact that I have bad knees (mainly due to my weight) and that I sometimes get sick of it all of a sudden and just want to be able to press the stop button and retry another time.
The thing that bothered me most about using the treadmill at the gym however, was that you actually have to pack your bag and drive there and back etc. What a time waster!
All of this makes that owning my own treadmill has been the first and foremost thing on my wish-list the last 5 years.
About a week ago I was browsing through it and when I saw it, I told my girlfriend about this. To my amazement she responded that she also likes to run and would love to start doing it again. But with the winter coming up, she liked the idea of having a treadmill. We decided to invest in one together and after a number of hours looking on the internet it was decided that we would go for the NordicTrack T20.0. Since you have to keep in mind a lot of things when purchasing one (frequency of use, weight of the user, strength of the motor, width of the belt etc), we wanted to get a good one to start with.
The T20 can carry up to 160kg and has a belt of 51cm wide. The motor is 3HP so enough for semi professional running.
And the best of all: It was delivered today!
Unfortunately it was an extremely big and heavy box (100kgs). The delivery dude helped me put it in the hallway and then told me to have fun and left. Normally he wasn't even allowed to assist me so far.
The battle against the box started. Since there was no way I would ever get the box out of the hallway in one piece (and believe me, I tried), I finally had to open it up and get everything out in pieces.
I'm going to save you all from the story to get it assembled but it suffices to say that it is standing in my living room, being happy. Not for long though, this thing will be tortured beyond belief pretty soon!
Ow and by the way: I lost 6kg already.
Well that and the fact that I have bad knees (mainly due to my weight) and that I sometimes get sick of it all of a sudden and just want to be able to press the stop button and retry another time.
The thing that bothered me most about using the treadmill at the gym however, was that you actually have to pack your bag and drive there and back etc. What a time waster!
All of this makes that owning my own treadmill has been the first and foremost thing on my wish-list the last 5 years.
About a week ago I was browsing through it and when I saw it, I told my girlfriend about this. To my amazement she responded that she also likes to run and would love to start doing it again. But with the winter coming up, she liked the idea of having a treadmill. We decided to invest in one together and after a number of hours looking on the internet it was decided that we would go for the NordicTrack T20.0. Since you have to keep in mind a lot of things when purchasing one (frequency of use, weight of the user, strength of the motor, width of the belt etc), we wanted to get a good one to start with.
The T20 can carry up to 160kg and has a belt of 51cm wide. The motor is 3HP so enough for semi professional running.
And the best of all: It was delivered today!
Unfortunately it was an extremely big and heavy box (100kgs). The delivery dude helped me put it in the hallway and then told me to have fun and left. Normally he wasn't even allowed to assist me so far.
The battle against the box started. Since there was no way I would ever get the box out of the hallway in one piece (and believe me, I tried), I finally had to open it up and get everything out in pieces.
I'm going to save you all from the story to get it assembled but it suffices to say that it is standing in my living room, being happy. Not for long though, this thing will be tortured beyond belief pretty soon!
Ow and by the way: I lost 6kg already.
Subscribe to:
Posts (Atom)





