27 февраля в Стэнфорде состоялся второй по счету конкурс поэтов, пишущих стихи на различных языках программирования — Code Poetry Slam 1.1. В отличии от стихотворений, упоминавшихся в прошлой заметке, конкурс не зацикливается на стихах в общепринятом смысле этого слова, во главу угла ставится само выступление автора, то, как он преподносит свою историю.
В этом году победителем стали Hunter Bacot и Keshav Dimri, с программой на Ruby, выводящей последние твиты нескольких знаменитостей. Ключом к их победе стал не сам листинг программы, а выступление, содержащее в себе как отрывки из исходного кода, так и результаты парсинга Твиттера.
21st Century Prophecies by Hunter Bacot, Surrogate: Keshav Dimri
the_medium = "twitter"
require the_medium
medium = Twitter::REST::Client.new do |medium|
medium.consumer_key = "IXzkTsec7GrggycNufhPg"
medium.consumer_secret = "GdUEMDlFCQBcNRaDNTAYHP8J9kCZkRENJzhabJkumLg"
medium.access_token = "2339810605-vNyxp0y8HnNK4E1TqJsd2G9vx2qVUOPEe46Lcvc"
medium.access_token_secret = "DMWpehuD7Wb9DKkvSJlMqCQn3nCb3M4AnriIOCK1lhwEk"
end
virtues = []
virtues << medium.user("elonmusk").tweet.text
virtues << medium.user("KingJames").tweet.text
virtues << medium.user("Pontifex").tweet.text
virtues << medium.user("KimJongNumberUn").tweet.text
virtues << medium.user("Beyonce").tweet.text
virtues << medium.user("richardbranson").tweet.text
virtues << medium.user("god").tweet.text
# a moment of clarity
virtues << "\n#{Faraday.get("https://api.github.com/zen").body}"
File.open("prophets_manifesto.txt", "w") do |out|
virtues.each { |truth| out.puts truth }
end
system "open prophets_manifesto.txt"
Несколько других интересных произведений:
Capsized by Zak Kain, Surrogate: Christina Hall
.ocean {
color: cornflowerblue;
pitch: high;
overflow: visible;
}
.boat {
color: firebrick;
transform: rotate(94deg);
float: none;
}
.rescue-team {
visibility: visible;
}
.crew {
widows: none;
}
for every i, there is a stronger us by Charles Mulloy
#include
using namespace std;
class For_every
{
public:
void ngular(){cout << endl << "I";};
void que(){cout<<"f";};
void ng(){cout<<" w";};
void ghting(){cout << " d";};
void vidual(){cout << "e";};
void ving(){cout << "e";};
void on(){cout << " n";};
};
class there_is_a_stronger
{
public:
void t(){cout << "ot ";};
void _(){ cout << "hang ";};
void taining(){cout << endl << "together,";};
void ting(){ cout << "we will ";};
void tling(){cout<< "surely " << endl;};
void ed(){cout << "seperately" << endl;};
};
int main()
{
For_every i; there_is_a_stronger us;
/*I*/
/*s*/i.ngular(); /*un*/i.que();
/*try*/i.ng(); /*str*/i.ving(); /*f*/i.ghting();
/*ind*/i.vidual(); /*isolat*/i.on(); /*tr*/us.t(); /*foc*/us._();
/*s*/us.taining(); /*adj*/us.ting(); /*b*/us.tling();
/*victori*/us._(); /*f*/us.ed();
/*Us*/
}
Apache Code Errors by Aimee Norton
201 created
200 OK
100 continue
200 OK
303 see other
302 found
303 see other
409 conflict
403 forbidden
520 origin error
402 payment required
413 too large
303 see other
405 not allowed
417 expectation failed
423 locked down
502 bad gateway
307 redirect
204 no content
205 reset
305 use proxy
422 unprocessable entity
426 upgrade required
409 conflict
415 unsupported
429 too many requests
416 not satisfiable
417 failed
306 switched proxy
444 no response
449 retry
511 authenticate
301 moved permanently
401 unauthorized
506 variant negotiates
523 declined
406 not acceptable
451 illegal
599 timeout (unknown)
424 failed dependency
496 no certificate
423 locked away
598 timeout
598 timeout
С полным списком представленных произведений можно ознакомиться на официальном сайте.
А для особо заинтересовавшихся — видеоотчет.