Jul 102011
 

Une pierre
deux maisons
trois ruines
quatre fossoyeurs
un jardin
des fleurs

et un raton laveur

une douzaine d’huitres un citron un pain
un rayon de soleil
une lame de fond
six musiciens
une porte avec son paillasson
un monsieur décoré de la légion d’honneur

et un autre raton laveur

un sculpteur qui sculpte des Napoléon
la fleur qu’on appelle souci
deux amoureux sur un grand lit
un receveur des contributions
une chaise trois dindons
un ecclésiastique un furoncle
une guepe
un rein flottant
une écurie de courses
un fils indigne deux frères dominicains
trois sauterelles un strapontin
deux filles de joie un oncle Cyprien
une Mater dolorosa trois papas gateaux deux chèvres de
Monsieur Seguin
un talon Louis XV
un fauteuil Louis XVI
un buffet Henri II deux buffets Henri III trois buffets
Henri IV
un tiroir dépareillé
une pelote de ficelle trois épingles de sureté un monsieur
agé
une Victoire de Samothrace un comptable deux aides-
comptables un homme du monde deux chirurgiens
trois végétariens
un cannibale
une expédition coloniale un cheval entier une demi-pinte
de bon sang une mouche tsé-tsé
un homard à l’américaine un jardin à la francaise
deux pommes à l’anglaise
un face-à-main un valet de pied un orphelin un poumon
d’acier
un jour de gloire
une semaine de bonté
un mois de Marie
une année terrible
une minute de silence
une seconde d’inattention
et…

cinq ou six ratons laveurs

May 102011
 

I just moved into a new apartment where the AT&T reception is, well, atrocious. Still, I like AT&T, so I’m dragging my feet to switch to Verizon (or something else).

Today, I spoke in live chat to some AT&T employee. I believe the name was Monica Garnett but I could be wrong — and it probably doesn’t matter. My issue was that I didn’t seem to have a mailbox for my phone number. She says my data plan is unsupported for smart phones.

… Wait, what? I’ve been using this data plan for over a year with this phone. Maybe I never got voicemail, but who cares! It WORKED. I had unlimited text and unlimited data. Now, yes, I know, this plan had been removed and AT&T wasn’t offering it anymore, but I am an existing customer, I get the perk of keeping that, right?

… No. I was told I could switch to their 200Mb/month or 2Gb/month plan, which I did, but what I wasn’t told is that THESE PLANS DO NOT INCLUDE MESSAGING.

Now, I want to fix this. I got screwed by a company, big whoop, whatever, I’ll just limit myself a little. THE WEBSITE DOES NOT GIVE ME REASONABLE OPTIONS. I can get unlimited text, or unlimited text with any mobile-to-mobile calling, or 1000 texts.

I could pay $15 for 200 megs and $10 for 1000 texts, and then I’d have $25 — which is, $5 less than unlimited data and unlimited texts. Huh. NO.

I could pay $25 for 2Gb and $10 for 1000 texts, or $20 for unlimited texts. So .. $35 or $45? NO.

Seriously? So I have to pay MORE now to have LESS than I used to have? Well, goodbye, AT&T. Guess who’s going to go say hi to another phone service provider tomorrow?

Feb 052011
 

Scrivener is a wonderful OSX app for writing basically anything you want (novels, plays, theses, etc). There’s a beta out for Windows. As it turns out, they’re actually developing it using the Qt toolkit.

The Windows Beta runs on WINE, if you do a bit of work. I am getting all my information from a Lifehacker tip, just rewriting it and adding some more information for those who don’t know enough.

  • Install WINE — version 1.3.5 or higher.
  • Download winetricks
    $ wget http://winetricks.org/winetricks
  • I also recommend installing the ‘cabextract’ tool, as indicated in the previous link.
  • run winetricks and install the following runtime libraries:
    $ sh winetricks vcrun2008 vcrun6 quartz dotnet20
  • I did not need to do this, but the link also recommends downloading qsvg.dll and qtsvg.dll and copying them to your ~/.wine/drive_c/windows/system32 directory. I’m not actually sure where to find these, and installing Scrivener created a qsvg4.dll file.
  • Finally, install and run the Beta.

Let me know if you run into any issues following these instructions.

Jan 272011
 

Table of contents for Getting started with a programming language

  1. Ruby

First, get Ruby. Install it as explained on the website. Once you’re more comfortable with it, in a few weeks, you can check out RVM. Not now though – you’d just confuse yourself.

The two important command-line tools are going to be “irb” and “ruby”. For development, you will be able to use tools like emacs, vim, Jetbrains Rubymine, or Eclipse. Ruby support is quite widespread.

Create a temporary directory and get cozy inside.

Right off the bat, how would you write a test?
You would create a file called “my_test.rb” (It is a good naming convention, ‘something_test.rb’).

require 'test/unit'
class MyTest < Test::Unit::TestCase
def test_addition_is_not_broken
assert_equal(10, 5+5)
end
  def test_addition_is_not_broken_but_i_am
    assert_equal(10, 5)
  end
end

A couple of things of note:

  • “require” is how you load external libraries.
  • The test class name (“SomethingTest”) is a convention. Follow it and avoid pain.
  • The test method name also follows a convention : “test_” . Again, follow it and avoid pain.
  • Indentation is two spaces by convention. Follow, Avoid.
  • Parentheses for method calls are optional, but it’s good form to put parentheses if there are two or more arguments to a method. Also, parentheses will save you if the parser has issues parsing. Remember that.

To run that, you would simply call “ruby my_test.rb” and see one test succeed and one test fail.

How would you write a simple program?
Create a file called “myprog.rb” and put the following inside:

def palindromize input
  input.reverse
end

puts "Give me something and we'll see if it's a palindrome!"
input = gets.chomp
puts palindromize(input)

This would be run, like the test, with “ruby myprog.rb”
Some things to note:

  • “gets.chomp” — Ruby, by default, captures the return key being pressed. Chomp is necessary to remove that special character.
  • Did you notice how I put parentheses around “palindromize(input)” ? It’s so that both the Ruby parser and human readers stay sane when reading the code.

Things of note:

Ruby documentation: http://ruby-doc.org/, http://ruby-doc.org/core — that will get you started. The documentation is excellent until you get to some arcane features — so not to worry, for now.

Wanna talk to people? You can go to http://www.ruby-forum.com/ (Ruby big names, such as David Black, JEG2 and even Matz, the creator of the language) are active there, and everyone is nice. You can also go to the Freenode server on IRC, channel #ruby.

Let me know if you think I could add things to this tutorial or if you have questions!

Jan 272011
 

Hello, and welcome to a blog series about programming languages. The goal is to explain how to get started in a few quick steps : install, write a simple test, write a simple program. Hopefully, just enough information to get you started without getting in your way.

I recommend you try your chops with http://projecteuler.net – fun algorithm implementation. A good way to learn a programming language.

When talking to people, please remember How to Ask Questions the Smart Way.

Nov 182010
 

So, a friend of mine made a reservation on the same two JetBlue flights as me: 119, JFK-MSY, Nov. 10, 2010, and 120, MSY-JFK, Nov. 14, 2010. So far, so good. We get to JFK, I get my boarding pass swimmingly through one of the machines – but she gets a message that she needs to talk to someone. So, we do.

Now, let’s go back in time a little. My friend, a French citizen and resident, was organizing a large trip. She made her reservations on September 25h, 2010 – approximately two months before the flight. On October 18th, 2010, her phone died. She was in Canada at the time, without budget to get it repaired or get a new one. She did, however, have easy and unfettered access to the Internet. That’s approximately a month after the reservation. The evening before the flight (November 9th, 2010), she was with me, and received an email from JetBlue saying to do check-in automatically from home, like other companies do, and I received one just like it.  I, however, don’t believe in printers, so there was no place to print the boarding pass. We therefore did not follow this course of action.

Now that this is out of the way… We talk to JetBlue employees, who, of course, have their hands bound and are powerless to do anything but tell us the following:

“The seat was reserved, but the payment did not go through. The notes on this ticket say that numerous attempts were made to call the person and rectify the situation.”

So now, I ask you: really? THREE WHOLE WEEKS WENT BY before her phone died. She never received such a call. If calls were indeed made, did no one notice that the calls were going straight to voicemail? Did no one ponder the fact? How come no one tried to (GASP) send an email?

You know – I can forgive that. Weakness in the process and workflow. Those can be fixed. No worries. Let’s just pay for the ticket now. Right?

WRONG. The seat is available, because reserved for her, but if she wants to board now, it’s not the ~$220 that it was then, it is now ~$830. Yes. It’s approximately four times as expensive. The choices were for her to take a cab back to my apartment and twiddle her thumbs for four days or for me to pay for her seat. If you think I forgot an option – I didn’t. She could not afford to pay that amount.

Now.. I have just opened a complaint with JetBlue. The result of the complaint will determine whether this post stays up or not, and whether I actively discourage people (my company, my professional network, my friends, and their respective networks) from using JetBlue.

———————

Edit: JetBlue answered. Their original response was “Oh, sorry you guys screwed up, here’s $100 dollars to be nice to you”. Well, essentially. It was phrased, of course, politely and a bit differently, but that was the essence.

So I replied and told them in no uncertain terms that it was, indeed, them who fucked up, and gave them a few ideas as to how they could have handled the process differently to avoid the fuck-up. I also told them that I had a worldwide extensive network of social and professional contacts and I would launch a crusade against JetBlue if I didn’t get my money back.

… Yes, I used the word crusade. Yes, I smiled when I wrote that.

A few hours later, I got another message from them refunding the extra cost – so the seat only cost the original fare instead of 2.5x the price. I’m not going to start my crusade. I’m pretty happy about that, because I wasn’t sure what the karmic debt would be, on their side and mine. And, of course, my friend still has the $100 credit they put on her JetBlue account, since they probably can’t take that back.

I’m pretty sure we’re still going to avoid JetBlue in the future, but as far as what YOU should do.. It’s up to you :)

Oct 182010
 

The Master had been clear on this point – the room was treated so the five physical senses would be useless. When Scott asked how, the Master laughed and told him it was magic. Scott had chuckled and shaken his head. Clearly, no point in arguing – not today’s knowledge.

Scott blinked and the test began. He relaxed and extended his consciousness into the ground below him and around him. He knew his limit well: no more than a five-foot radius around him. This meant that by the time he felt the opponent, it would be almost too late. Almost. The Master was sometimes annoyingly cl-

Scott flinched and his hips spun him around, hands flying up in an open, receptive guard position. An intrusion into the five-foot radius. It was almost like a physical blow to his solar plexus. He had felt the opponent. His mind started to rush through all the things he knew to do, and yet within an imperceptible lapse of time, his trained body took over with a quick, soft breath out.

The wind suddenly started to blow, and Scott mentally took notice of it. Wind in a room that had been magically sealed of the physical senses? He wasn’t supposed to feel that. The blow he took under the floating ribs on the left side actually lifted him off the ground and sent him flying a few feet before landing hard on his pelvis. His mind had stopped and time hadn’t. Fuck. Everything to start again. Actually… Scott realized he was still connected to Earth and could feel the opponent coming in. He stood up with a quick, hot breath that helped him expand Water and Air towards the other, feeling for the intent to strike, feeling for the movement, for the breath, for life.

Gotcha.

Connected, the movement became absolutely unimportant. For approximately half of one long, endless and yet very short second, everything in the room became one. When Scott’s breath ended, the opponent was on the ground, stuck in a joint lock.

“What’s with the wind,” Scott asked.

“Oh, just making sure your mind was in the right place.”

“Hardy har-har, Master.”

May 112010
 

If you happen to use Gentoo on a Notebook, you may already know this. If not..

At the time of this writing, If you have a Poulsbo video card (another craptastic Intel invention) do _not_ upgrade to xorg-server 1.7. Stay on 1.6.5-r1 or whatever you have. If you upgrade, xorg will just refuse to work for you, and downgrading is kind of a pain.

If you have upgraded already, then here’s what to do:

http://bugs.gentoo.org/show_bug.cgi?id=290679#c4

After doing this, you’ll need to also mask >xorg-server-1.6.5-r1, then re-install the old xorg-server, and finally re-emerge everything you have installed from the category x11-drivers.

Have fun!

May 102010
 

Funny how, when I’m busy, I stop updating this blog, isn’t it.

I’m learning a good amount on HTTP, Perl (specifically CGI) and working on using TDD with Ruby/Rails: it’s a mindset.

Regarding martial arts, sensei helped me figure out that my punches are all wrong, and the issue has been traced to lower back muscles. Thankfully, I’ve got tons of subway time now, so I can practice standing. For those of you who don’t study martial arts… That last sentence is not a joke.

On an unrelated note: I always enjoy the fact that ‘martial arts’ is commonly mistyped as ‘marital arts’. I knew the two were similar (*grin*), but some sentences are downright hilarious.

Apr 222010
 

On Monday, April 26th, I am starting a new job at Cyrus Innovation. It may well be fair that I am starting a new career – it’s a hop, skip and jump for me. I’m switching from Systems Administration / Tech Support / Hell desk (not a typo, sadly) to Development / Programming.

I am very much looking forward to it. It means a hobby/job switch: I will now do sysadmin stuff as a hobby, and programming as a full-time job. We’ll see how it works out :)

I remember looking up to the early programmers in awe – they were wizards, and their skill probably couldn’t be equaled, reached, or even, likely, attempted. Then came Ruby. There will always be master hackers – but with Ruby, and its community, it seems that everything is easily at hand. People care about making code elegant and accessible. Things which would take lines and lines of codes in other languages are usually between one and four lines. It’s powerful. And it’s not difficult. The most arcane and powerful elements of the language are … Accessible. The code doesn’t get in the way of the mental gymnastics.

I’m sure I’ll be using other languages – it’s a good way to grow, after all – and I look forward to it. Finally: a place where I can, and will, always be learning.