-3
\$\begingroup\$

I made a joke the other day and sent it to some friends. One replied back "I love the irony!" and I looked at it and realized there was some irony in it. But that wasn't the irony she saw - the irony she was was the punchline of the joke, which wasn't ironic in the slightest.

And it got me thinking about a certain other instance that isn't ironic at all. And I have to admit, I love that song.

Have you read it's lyrics before? They're so deep!

An old man turned ninety-eight
He won the lottery and died the next day
It's a black fly in your Chardonnay
It's a death row pardon two minutes too late
And isn't it ironic... don't you think

It's like rain on your wedding day
It's a free ride when you've already paid
It's the good advice that you just didn't take
Who would've thought... it figures

"Mr. Play It Safe" was afraid to fly
He packed his suitcase and kissed his kids goodbye
He waited his whole damn life to take that flight
And as the plane crashed down he thought
"Well isn't this nice..."
And isn't it ironic... don't you think

It's like rain on your wedding day
It's a free ride when you've already paid
It's the good advice that you just didn't take
Who would've thought... it figures

Well life has a funny way
Of sneaking up on you
When you think everything's okay
And everything's going right
And life has a funny way
Of helping you out when
You think everything's gone wrong
And everything blows up in your face

A traffic jam when you're already late
A no-smoking sign on your cigarette break
It's like ten thousand spoons when all you need is a knife
It's meeting the man of my dreams
And then meeting his beautiful wife
And isn't it ironic...don't you think
A little too ironic...and, yeah, I really do think...

It's like rain on your wedding day
It's a free ride when you've already paid
It's the good advice that you just didn't take
Who would've thought... it figures

Life has a funny way of sneaking up on you
Life has a funny, funny way of helping you out
Helping you out

You know what I could really use? I could use a program that would spit out these lyrics. But, just like how this song has nothing ironic in it, you also will not be permitted to use anything ironic in your submission. That means no upper or lowercase i, r, o, n, or c may appear in your program.

The program requires no input, and will output the exact text in the quote. Newlines included, but any trailing whitespace is accidental and you should ignore that. Any punctuation is required.

The usual loopholes are obviously disallowed, and since this is code golf, the lowest score wins.

What would be ironic would be if the restrictions on this make any submission automatically longer than the actual dump of the text.

\$\endgroup\$
2
  • \$\begingroup\$ You are not using spaces consistently after "..." - for example there's both "And isn't it ironic... don't you think" and "And isn't it ironic...don't you think" \$\endgroup\$ Jun 1, 2015 at 23:40
  • \$\begingroup\$ By the way, it looks like Alanis Morissette was born on the 1st of June :) \$\endgroup\$ Jun 1, 2015 at 23:50

3 Answers 3

4
\$\begingroup\$

CJam, 922 bytes

0000000: 226d24ae 76dd5d8d d392ac33 f8d0411a e39f4a4d e06683df  "m$.v.]....3..A...JM.f..
0000018: 111b4840 812cd834 74417bdd 80a53e6d 7d821401 8dcca95d  ..H@.,.4tA{...>m}......]
0000030: b89cfb35 4cbab681 8c9388f1 671a4716 4cc4dbb7 bd140682  ...5L.......g.G.L.......
0000048: fe99dbee 429084d0 cd8b1a5e c9b45ad9 84a46cf6 ca92db54  ....B......^..Z...l....T
0000060: bd3946ba 8f1da9d6 7459e9bc 5b355308 11ca8980 93b89bc1  .9F.....tY..[5S.........
0000078: c99970a0 62095d5c 22775afc 9186a457 e560be57 f8802b5e  ..p.b.]\"wZ....W.`.W..+^
0000090: b6d1673a 2801fcca de4aa5f4 dcc1467c 85c2753b 34830614  ..g:(....J....F|..u;4...
00000a8: 98a450c1 0000f7a2 054164dd 03f7b0e1 fcbddaad 65fc061e  ..P......Ad.........e...
00000c0: e3f6ca3f 989db84b fe839256 cdfa77b6 faf437e4 4af60f6b  ...?...K...V..w...7.J..k
00000d8: 4264eabc 7aaceec4 ca8d4bfd 8b9b5c39 fa15d96a 0c36187e  Bd..z.....K...\9...j.6.~
00000f0: 5c220d89 e135beda 1c3b7ea8 1c5a76e5 7c26f929 a5405b1f  \"...5...;~..Zv.|&.).@[.
0000108: 81e4e48c 06139775 66c6d8f1 7be3f55f 70e11e2d f8e68407  .......uf...{.._p..-....
0000120: acce45d9 7b45864b 5c227ffe 3511097f f4df5fec 9fa51d02  ..E.{E.K\"..5....._.....
0000138: ed188eb4 d5f659f0 86ed7ef7 e4fb3d2c ab9b290b 648116db  ......Y...~...=,..).d...
0000150: 50793fea 1aea5dc7 35e40f94 85e8e923 76427675 838b930b  Py?...].5......#vBvu....
0000168: d41f5717 b4da8b45 04319e95 dea4c038 f7a31746 b0c2e427  ..W....E.1.....8...F...'
0000180: 48b7f974 a1a86a11 f1333294 349685f4 c2c19cf3 c2f72aef  H..t..j..32.4.........*.
0000198: e1960cd2 beee3eb0 283f0780 08af8afc 1758b3ca 289f3400  ......>.(?.......X..(.4.
00001b0: 44ede560 ada22ae4 b047cd0f 38c386ca 156544c7 9d1b0f8f  D..`..*..G..8....eD.....
00001c8: fa1a78bc add29de3 d164b548 19a7e766 7ff7a0d7 048b4a97  ..x......d.H...f......J.
00001e0: 5fe076cf ae5c2224 ab1cf23b 54e50911 35775489 deb0c744  _.v..\"$...;T...5wT....D
00001f8: 50958144 c6e5edc8 e72f8bd2 f6ead64d 37d6858a 05838c65  P..D...../.....M7......e
0000210: ddee157c 20a993da 5f2a3366 263d38ed 0e2f39ea 15862e7b  ...| ..._*3f&=8../9....{
0000228: e66426e8 eeb5e1d0 b3a69187 e576c185 c5d818fd 76a933b2  .d&..........v......v.3.
0000240: 1ea9b31a 20030048 81ea5c22 f6ba7e2c 9ab81f9e 5a9802f1  .... ..H..\"..~,....Z...
0000258: 1413edac dbc87a36 94c5a59c d80efd5f 36f70ee5 e6e8c40f  ......z6......._6.......
0000270: c27b3feb 99b18b1c bbe32b4c b080056d 5082ed6c 20135c11  .{?.......+L...mP..l .\.
0000288: 6098307e 9105f9c1 98fbef3c 7c18af20 e3d26dee e551c95b  `.0~.......<|.. ..m..Q.[
00002a0: c438dbd5 08ac18e9 53ee9db8 a9df7950 502e1077 efc23f28  .8......S.....yPP..w..?(
00002b8: fb3e7dee 2d254c2d 5fbd2a47 e0215ace 8a3b06f7 68bd9692  .>}.-%L-_.*G.!Z..;..h...
00002d0: 83e782c9 0f9827a0 0ad637ca d316ceaa 1c35aff6 d14d4024  ......'...7......5...M@$
00002e8: cd5a59b6 30f97e6c 18c6088e 07c17673 3a0b58b1 9bdde15b  .ZY.0.~l......vs:.X....[
0000300: a6f1cad0 ca8e3e8f bb8ffb60 e44867ea eb4a7d57 bebcb540  ......>....`.Hg..J}W...@
0000318: 7d37712d cc16dd7b 0e5b33f4 03dabc21 fae78a91 8df8eac6  }7q-...{.[3....!........
0000330: 3f231dd0 4b6b5c22 c5f1ae77 bc99c3b2 eb96bbf6 da7ab52b  ?#..Kk\"...w.........z.+
0000348: bdf913c6 e55f54cb 105015f2 c76d3cc4 2227ff2c 224b5451  ....._T..P...m<."'.,"KTQ
0000360: 50452232 662d5f65 6c2b2d66 23323435 62343362 220e2426  PE"2f-_el+-f#245b43b".$&
0000378: 2b303132 45474c4d 50515354 575b5d22 34666d32 352c2761  +012EGLMPQSTW[]"4fm25,'a
0000390: 662b2b66 3d27712f 292a                                 f++f='q/)*

The above is a reversible xxd dump. The source code contains way to many unprintable characters for the online interpreter...

The source code is generated by the following program:

q"

It's like rain on your wedding day
It's a free ride when you've already paid
It's the good advice that you just didn't take
Who would've thought... it figures

":X/Xa+'q*"^N$&+012EGLMPQSTW[]"4fm25,'af++f#43b245b'ÿ,"KTQPE"2f-_el+-f=`"'ÿ,\"KTQPE\"2f-_el+-f#245b43b\"^N$&+012EGLMPQSTW[]\"4fm25,'af++f='q/)*"

Here, ^N represents the control character with code point 14.

Verification

$ LANG=en_US
$ xxd -r -ps > gen.cjam <<< 71220a0a49742773206c696b65207261696e206f6e20796f75722077656464696e67206461790a49742773206120667265652072696465207768656e20796f7527766520616c726561647920706169640a497427732074686520676f6f6420616476696365207468617420796f75206a757374206469646e27742074616b650a57686f20776f756c642776652074686f756768742e2e2e20697420666967757265730a0a223a582f58612b27712a220e24262b30313245474c4d50515354575b5d2234666d32352c2761662b2b66233433623234356227ff2c224b545150452232662d5f656c2b2d663d602227ff2c5c224b545150455c2232662d5f656c2b2d6623323435623433625c220e24262b30313245474c4d50515354575b5d5c2234666d32352c2761662b2b663d27712f292a22
$ cjam gen.cjam < song | grep -i IRONIC
$ cjam gen.cjam < song | wc -c
922
$ cjam <(cjam gen.cjam < song) | md5sum - song
3b1a473c910233d91d0e283a43cbcab2  -
3b1a473c910233d91d0e283a43cbcab2  song

Explanation

The code starts by placing a string of characters (the encoded song) on the stack.

'ÿ,        e# Push the string of all characters with code points below 255.
"KTQPE"2f- e# Push "IRONC" by subtracting 2 from each code point.
_el+       e# Concatenate with the lowercase counterparts.
-          e# Remove these characters from the string.
f#         e# Replace each character from the encoded song by its index in this string.
245b43b    e# Convert the resulting array of integer from base 245 to base 43.
"^N$&+012EGLMPQSTW[]\"4fm
           e# Subtract 4 from each code point.
25,'af++   e# Append the lower case letters from a to y to that string.
f=         e# Replace each integer in the base 245 array by the corresponding character.
'q/        e# Split the result at all occurrences of 'q'.
)*         e# Pop the last string (chorus) and insert it between the remaining chunks.
\$\endgroup\$
4
  • \$\begingroup\$ How did you go about creating this? \$\endgroup\$
    – corsiKa
    Jun 2, 2015 at 1:52
  • \$\begingroup\$ @corsiKa: I've edited my answer. \$\endgroup\$
    – Dennis
    Jun 2, 2015 at 5:47
  • 1
    \$\begingroup\$ i only count 179 bytes. Is something missing? \$\endgroup\$ Jun 2, 2015 at 6:09
  • \$\begingroup\$ @steveverrill: Whoops. Looks like I compressed the wrong file (not sure which). Thanks for letting me know. \$\endgroup\$
    – Dennis
    Jun 2, 2015 at 6:18
3
\$\begingroup\$

Ironic, Java, 4009 bytes, 312.49% 256.82% size of original.

publ\u0069\u0063 \u0063lass \u0049\u0072\u006F\u006e\u0069\u0063{publ\u0069\u0063 stat\u0069\u0063 v\u006F\u0069d ma\u0069\u006e(St\u0072\u0069\u006eg[]a\u0072gs){System.\u006Fut.p\u0072\u0069\u006et("A\u006e \u006Fld ma\u006e tu\u0072\u006eed \u006e\u0069\u006eety-e\u0069ght\\u006e"+"He w\u006F\u006e the l\u006Ftte\u0072y a\u006ed d\u0069ed the \u006eext day\\u006e"+"\u0049t's a bla\u0063k fly \u0069\u006e y\u006Fu\u0072 \u0043ha\u0072d\u006F\u006e\u006eay\\u006e"+"\u0049t's a death \u0072\u006Fw pa\u0072d\u006F\u006e tw\u006F m\u0069\u006eutes t\u006F\u006F late\\u006e"+"A\u006ed \u0069s\u006e't \u0069t \u0069\u0072\u006F\u006e\u0069\u0063... d\u006F\u006e't y\u006Fu th\u0069\u006ek\\u006e"+"\\u006e"+"\u0049t's l\u0069ke \u0072a\u0069\u006e \u006F\u006e y\u006Fu\u0072 wedd\u0069\u006eg day\\u006e"+"\u0049t's a f\u0072ee \u0072\u0069de whe\u006e y\u006Fu've al\u0072eady pa\u0069d\\u006e"+"\u0049t's the g\u006F\u006Fd adv\u0069\u0063e that y\u006Fu just d\u0069d\u006e't take\\u006e"+"Wh\u006F w\u006Fuld've th\u006Fught... \u0069t f\u0069gu\u0072es\\u006e"+"\\u006e"+"\"M\u0072. Play \u0049t Safe\" was af\u0072a\u0069d t\u006F fly\\u006e"+"He pa\u0063ked h\u0069s su\u0069t\u0063ase a\u006ed k\u0069ssed h\u0069s k\u0069ds g\u006F\u006Fdbye\\u006e"+"He wa\u0069ted h\u0069s wh\u006Fle dam\u006e l\u0069fe t\u006F take that fl\u0069ght\\u006e"+"A\u006ed as the pla\u006ee \u0063\u0072ashed d\u006Fw\u006e he th\u006Fught\\u006e"+"\"Well \u0069s\u006e't th\u0069s \u006e\u0069\u0063e...\"\\u006e"+"A\u006ed \u0069s\u006e't \u0069t \u0069\u0072\u006F\u006e\u0069\u0063... d\u006F\u006e't y\u006Fu th\u0069\u006ek\\u006e"+"\\u006e"+"\u0049t's l\u0069ke \u0072a\u0069\u006e \u006F\u006e y\u006Fu\u0072 wedd\u0069\u006eg day\\u006e"+"\u0049t's a f\u0072ee \u0072\u0069de whe\u006e y\u006Fu've al\u0072eady pa\u0069d\\u006e"+"\u0049t's the g\u006F\u006Fd adv\u0069\u0063e that y\u006Fu just d\u0069d\u006e't take\\u006e"+"Wh\u006F w\u006Fuld've th\u006Fught... \u0069t f\u0069gu\u0072es\\u006e"+"\\u006e"+"Well l\u0069fe has a fu\u006e\u006ey way \\u006e"+"\u004Ff s\u006eeak\u0069\u006eg up \u006F\u006e y\u006Fu\\u006e"+"Whe\u006e y\u006Fu th\u0069\u006ek eve\u0072yth\u0069\u006eg's \u006Fkay \\u006e"+"A\u006ed eve\u0072yth\u0069\u006eg's g\u006F\u0069\u006eg \u0072\u0069ght\\u006e"+"A\u006ed l\u0069fe has a fu\u006e\u006ey way \\u006e"+"\u004Ff help\u0069\u006eg y\u006Fu \u006Fut whe\u006e\\u006e"+"Y\u006Fu th\u0069\u006ek eve\u0072yth\u0069\u006eg's g\u006F\u006ee w\u0072\u006F\u006eg \\u006e"+"A\u006ed eve\u0072yth\u0069\u006eg bl\u006Fws up \u0069\u006e y\u006Fu\u0072 fa\u0063e\\u006e"+"\\u006e"+"A t\u0072aff\u0069\u0063 jam whe\u006e y\u006Fu'\u0072e al\u0072eady late\\u006e"+"A \u006e\u006F-sm\u006Fk\u0069\u006eg s\u0069g\u006e \u006F\u006e y\u006Fu\u0072 \u0063\u0069ga\u0072ette b\u0072eak\\u006e"+"\u0049t's l\u0069ke te\u006e th\u006Fusa\u006ed sp\u006F\u006F\u006es whe\u006e all y\u006Fu \u006eeed \u0069s a k\u006e\u0069fe\\u006e"+"\u0049t's meet\u0069\u006eg the ma\u006e \u006Ff my d\u0072eams\\u006e"+"A\u006ed the\u006e meet\u0069\u006eg h\u0069s beaut\u0069ful w\u0069fe\\u006e"+"A\u006ed \u0069s\u006e't \u0069t \u0069\u0072\u006F\u006e\u0069\u0063...d\u006F\u006e't y\u006Fu th\u0069\u006ek\\u006e"+"A l\u0069ttle t\u006F\u006F \u0069\u0072\u006F\u006e\u0069\u0063...a\u006ed, yeah, \u0049 \u0072eally d\u006F th\u0069\u006ek...\\u006e"+"\\u006e"+"\u0049t's l\u0069ke \u0072a\u0069\u006e \u006F\u006e y\u006Fu\u0072 wedd\u0069\u006eg day\\u006e"+"\u0049t's a f\u0072ee \u0072\u0069de whe\u006e y\u006Fu've al\u0072eady pa\u0069d\\u006e"+"\u0049t's the g\u006F\u006Fd adv\u0069\u0063e that y\u006Fu just d\u0069d\u006e't take\\u006e"+"Wh\u006F w\u006Fuld've th\u006Fught... \u0069t f\u0069gu\u0072es\\u006e"+"\\u006e"+"L\u0069fe has a fu\u006e\u006ey way \u006Ff s\u006eeak\u0069\u006eg up \u006F\u006e y\u006Fu\\u006e"+"L\u0069fe has a fu\u006e\u006ey, fu\u006e\u006ey way \u006Ff help\u0069\u006eg y\u006Fu \u006Fut\\u006e"+"Help\u0069\u006eg y\u006Fu \u006Fut");}}

Instructions:

Place in file named: Ironic.java
Compile with: javac Ironic.java
Run with: java Ironic

\$\endgroup\$
5
  • 3
    \$\begingroup\$ Ummm... its not code-bowling :P \$\endgroup\$
    – Optimizer
    Jun 1, 2015 at 22:33
  • 4
    \$\begingroup\$ @Optimizer How ironic :P \$\endgroup\$ Jun 1, 2015 at 22:34
  • 1
    \$\begingroup\$ I have to admit, simply replacing them with their unicode counterparts seems a tad... unoriginal ≈p \$\endgroup\$
    – corsiKa
    Jun 1, 2015 at 22:35
  • 4
    \$\begingroup\$ Ironically, the bowling answer is currently the best golfed \$\endgroup\$ Jun 1, 2015 at 22:38
  • 1
    \$\begingroup\$ You can save 8 bytes by renaming a\u0072gs to a \$\endgroup\$
    – Ypnypn
    Jun 1, 2015 at 23:33
1
\$\begingroup\$

PHP, 956 Bytes

compressed string -> base64 encoded -> replacement of not allowed chars

<?=((gz.(k&m).(J^"$").flate)((base64_de.(k&g).(j|g).de)((st.(v&z).t.(v&z))("3VTBbtswDL37K4h)em]zD8EuK7BhA3}}dmQs2lIt<4FE1fPfj5TTpg2y+zAgh1h6e]zvkdIhAU)HMyaQmhM5S(G=_A8U=</dV4KFd)sT=BahvAImBy4}0BYT/=ZwuHaP)l)A4=<x]2(IK4QEK9)MXzxmxyldMI5QPG=e4[S2QBaG{aQqVE(YIaJQd9Ay}aQ7ga(/z(]0+/0eFK9LyqzlQ5q6jTSG<S(j1u=z2YW)(2]8qG3IpKDg1JK]B_t7J)(Y(d2qW}Lbk{Z_ZHaA7jX0p[+4VXyp=)0GZw}EJ+qePWs8[T}jEs9VIz{=q]gIY81Uum73Pe/hZ8QVHgWe)KAdLKhyBpW_GbKFZTGf[Dg[1Y)(pQbpsV(Legql][e]4EpTdlypdQaD]L)Wz5HU7Jw0<4GM1x=u2}fYemmJ4mbvFDE=9BmLVwLHSwL/7qDbPV{M5/DF2DV7Ul+7/6YpzWALym[TUV[a[)+1+zFASYSTyay]s3Ll3L=t/}Be9SLY31GV8aTHLJhPqyMbQ34P/m/FPMWTIY2)q7QUul+3K42sTVs09fGq]l47X}_pfbt1A/bUdQeQjMMQe]jB+=JwvgS8XTVI/FBmbqZLG(8[68{ImfTew1Hx04e+(qUWb_EZLSfmVLY(qMmamU=ks6J+p6Tet6MzkVg=66Y9{TzAvIJT7_k0T2IUbygbvS[hlTDU(Iux3B7A6/k7qEa=S{01eUep0]tY(f09PIKWjPpK{d6{6Pa/P7XfbsyQ=XhjYK+h959PXE2dP<afvv8A",["("=>K&G,")"=>k&g,"<"=>K&M,"<"=>k&m,"["=>j^"$","]"=>J^"$","{"=>J|G,"}"=>j|g,"="=>V&Z,_=>v&z]))));

Try it online!

\$\endgroup\$
2
  • \$\begingroup\$ strtr has 2 rs. \$\endgroup\$
    – Artyer
    May 12, 2017 at 12:10
  • \$\begingroup\$ @Artyer Thank you upgraded \$\endgroup\$ May 12, 2017 at 12:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.