﻿Hope that it works and I'll be ready to change the world ;-) [okrueger]
 
Test by piotrz :)
junheider is Top Posting this file�people hate this on mailing lists.

Flex committers can use this file to check their svn access.
"I love work; it fascinates me; I can sit and watch it for hours." -- Jerome K. Jerome
It is COLD today in Boston!  But today it is hot and humid!
It is RAINY today in Seattle!
Apathy - i could take it or leave it.
s9tpepper was here.

rduartes wrote this here:
(you have to listen to this being recited by Douglas Campbell in Loreena McKennit's Lullaby song)

Oh for a voice like Thunder, and a tongue to drown the voice of war,
When the soul is driven to madness,
WHO CAN STAND ?
When the souls of the oppressed fight in the troubled air that rages,
WHO CAN STAND ?
When the whirlwind of fury comes from the throne of GOD,
WHO CAN STAND ?
Testing CR-LF on commit / only this line was changed.
When the frowns of his countenance drive the nations together,
WHO CAN STAND?
When sin claps his broad wings over the battle, and sails rejoicing in the flood of death,
When the souls are torn to everlasting fire, and fiends of Hell rejoice upon the slain,
Oh who can stand?
Oh who has caused this?
Oh who can answer at the throne of God?
The Kings and Nobles of the land have done it,
Hear it not Heaven,
Thy Ministers have done it !

William Blake

Surfing on sine waves is the only way to get through life - mschmalle

A dyslexic man walks into a bra. - Tink

Dear diary: Jackpot. -Glen Quagmire (via jonbcampos)

"In Soviet Russia, code debug you" - peterelst

"Programming is 10% science, 20% ingenuity, and 70% getting the ingenuity to work with the science." - akpetteroe

"Oh, God help us. We're in the hands of engineers." -Ian Malcom (via sdelamater)

"Any fool can criticize, condemn and complain and most fools do" Benjamin Franklin (via espenskogen)

"Experience is a dear teacher, and only fools will learn from no other." Ben Franklin (via frishy)

"A foolish consistency is the hobgoblin of little minds" Ralph Waldo Emerson (via jmclean)

"Money is only important to those who don't have any" (via quetwo)

"Beware the young doctor and old barber" (Ben Franklin)

The World was all before them, where to choose
Thir place of rest, and Providence thir guide:
They hand in hand with wandring steps and slow,
Through Eden took thir solitarie way.
(John Milton, last lines of Paradise Lost, via gordonsmith)

"We can do so much more. We can save this world... with the right leadership." (Adrian Veidt, Ozymandias in Watchmen Graphic Novel, via carlosrovira)

Testing from another computer Frédéric Thomas (fthomas).

It's a trap!

Checking to see if I'm able to push this back to origin.

Me too.  Woot.

mamsellem git commit first try (2013/09/29)

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. (Brian Kernighan)

Testing, testing (jfernandes)

I'll just leave this here... --chrsmrtn

Hello from joshtynjala!

ello from Michael Schmalle

Did it work? I won't get my hopes up. (May 30, 2015) -kmg ..

My git commit (yishayw).

First commit (Sept 7 , 2016).
I wish I was composed entirely of acoustic vibrations. Then I would finally be 'of sound mind and body'. (gregdove)