Changeset 19430
- Timestamp:
- 09/17/08 16:33:52 (5 years ago)
- Location:
- docs/tokuhirom
- Files:
-
- 1 added
- 2 removed
- 3 modified
- 1 copied
-
20080827-microblogcon-jobqueue/assets/jquery-1.2.1.js (deleted)
-
20080827-microblogcon-jobqueue/img (deleted)
-
20080829-llfuture-codegolf (copied) (copied from docs/tokuhirom/20080827-microblogcon-jobqueue)
-
20080829-llfuture-codegolf/assets/jquery-1.2.6.js (added)
-
20080829-llfuture-codegolf/assets/presen.css (modified) (1 diff)
-
20080829-llfuture-codegolf/index.html (modified) (1 diff)
-
20080829-llfuture-codegolf/main.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
docs/tokuhirom/20080829-llfuture-codegolf/assets/presen.css
r18368 r19430 29 29 #topics pre { 30 30 padding-left: 4px; 31 font-size: 50%; 31 font-size: 80%; 32 background-color: #202010; 32 33 } 33 34 -
docs/tokuhirom/20080829-llfuture-codegolf/index.html
r18367 r19430 21 21 </div> 22 22 23 <script type="text/javascript" src="assets/jquery-1.2. 1.js"></script>23 <script type="text/javascript" src="assets/jquery-1.2.6.js"></script> 24 24 <script type="text/javascript" src="assets/presen.js"></script> 25 25 </body> -
docs/tokuhirom/20080829-llfuture-codegolf/main.txt
r18318 r19430 1 Queueueueueue 1 きみならどう書く? 2 〜横向きのピラミッドを作る〜 2 3 <div style="text-align: right"> 3 2008-08-27(Wed) MicroBlogCon#1 4 tokuhirom 4 2008-08-30(Sat) LL Future 5 松野徳大 6 MobileFactory Inc. 5 7 </div> 6 8 ---- 7 焦点。 8 Gearman/TheSchwartz と Q4M 9 <img src="assets/img/wassr.png" width="640" /> 10 【未承諾広告】wassr.jp 9 11 ---- 10 随時ツッコミ歓迎 11 (主に id:kazuhooku の) 12 INPUT: 4 12 13 ---- 13 Gearman 14 OUTPUT: 15 >|| 16 * 17 ** 18 *** 19 **** 20 *** 21 ** 22 * 23 ||< 14 24 ---- 15 client, gearmand, worker 25 Perl にしぼって 26 はなします 16 27 ---- 17 gearmand 18 - Gearman::Server 19 - pure perl 20 - binary protocol 21 - store jobs on memory 22 ---- 23 Gearman::Worker 24 - select(2) でまってるからリアルタイムだョ 25 ---- 26 Gearman::Client 27 - perl, ruby, python 28 ---- 29 Gearman::Client::Async 30 - Danga::Socket 31 - epoll(2)/kqueue(2)/select(2) 32 - 非同期に結果をうけとれる 33 - DJabberd 34 -- based on Danga::Socket 35 -- XMPP Server 36 ---- 37 用途 38 - Danga::Socket な鯖でブロッキング(DJabberd) 39 - ヒトコトを投稿したときのフック 40 ---- 41 フックでやること多すぎにつき 42 - IM に通知 43 - fav otsune 44 - リアルタイムで処理したいけど、Apache ではやるほどのこともない 45 ---- 46 TheSchwartz 47 ---- 48 - reliable job queue 49 - MySQL にがんばるの術 50 - インストール楽すぎる 51 ---- 52 reliable? 53 ---- 54 Yes! Gearman is not a reliable! 55 - 落ちちゃうときもある 56 - お茶目な存在 57 ---- 58 実装 59 - 1秒に一回ぐらい SQL うってジョブないかみてる 60 ---- 61 用途 62 - Feed の生成 63 - 画像ブログパーツのさくせい 64 - cron のスクリプト 65 - gearman → TheSchwartz 66 - etc. 67 ---- 68 Perl モジュールの読み込みおそいよー >< 69 そこで TheSchwartz 70 ---- 71 ポイント 72 - リアルタイム性がない 73 - 信頼できる男。MySQL 74 ---- 75 Q4M 76 ---- 77 持続的な非同期コミュニケーションのための 78 ミドルウェア 79 ---- 80 MySQL5.1 storage engine 81 ---- 28 冗長に。 82 29 >|| 83 while (1) { 84 SELECT queue_wait('queue'); # XXX block! 85 my @row = SELECT ROW * FROM queue or next; 86 # snip 30 my $n = <>; 31 for (1..$n) { 32 print'*' x $_, "\n" 33 } 34 for (reverse(1..$n-1)) { 35 print'*' x $_, "\n" 87 36 } 88 37 ||< 89 38 ---- 90 Q4Mでしかできないこと 91 - キューの (reliable) forward 92 - 特定のフィールドの条件を指定した conditional subscription 93 ってあたりになるのかなぁ 94 (id:kazuhooku 談) 39 >|| 40 * 41 ** 42 *** 43 **** 44 45 *** 46 ** 47 * 48 ||< 95 49 ---- 96 みんな Q4M つかえばいいよ! 50 *この時点でも 97 51 ---- 98 Q4M の欠点。 52 くりかえし 53 >|| 54 '*' x 3 => *** 55 ||< 99 56 ---- 100 インスコまんどいお >< 57 暗黙の $_ 58 >|| 59 print "$_\n" for 0..100; 60 ||< 101 61 ---- 102 That's all. 103 Thanks. 62 *55B 63 ---- 64 for をまとめる 65 >|| 66 print'*'x$_."\n" 67 for (1..$ARGV[0]) 68 ,reverse(1..$ARGV[0]-1) 69 ||< 70 Songmu さん 71 ---- 72 *51B 73 ---- 74 引数をキャッシュ 75 >|| 76 print'*'x$_."\n" 77 for 1..($z=pop) 78 ,reverse(1..$z-1) 79 ||< 80 Songmu さん 81 ---- 82 *47B 83 ---- 84 STDIN から 85 >|| 86 print'*'x$_."\n" 87 for 1..($n=<>) 88 ,reverse 1..$n-1 89 ||< 90 turugina さん 91 ---- 92 *43B 93 ---- 94 a!b!s! a!b!s! 95 >|| 96 print '*'x($n-abs($_))."\n" 97 for -($n=<>)..$n 98 ||< 99 wataken44 さん 100 ---- 101 *37B 102 ---- 103 デフォルト引数 104 >|| 105 print '*'x($n-abs)."\n" 106 for -($n=<>)..$n 107 ||< 108 Songmu さん 109 ---- 110 *最優秀賞 111 ---- 112 *39B 113 ---- 114 **2 !! 115 >|| 116 print '*'x$_."\n" 117 for split//,('1'x<>)**2 118 ||< 119 hogee さん 120 ---- 121 1 x <> 122 >|| 123 1 => 1 124 2 => 11 125 3 => 111 126 4 => 1111 127 5 => 11111 128 6 => 111111 129 7 => 1111111 130 ||< 131 ---- 132 >|| 133 1 ** 2 = 1 134 11 ** 2 = 121 135 111 ** 2 = 12321 136 1111 ** 2 = 1234321 137 11111 ** 2 = 123454321 138 111111 ** 2 = 12345654321 139 1111111 ** 2 = 1234567654321 140 ||< 141 ---- 142 **2 !! 143 >|| 144 print '*'x$_."\n" 145 for split//, ('1'x<>)**2 146 ||< 147 hogee さん 148 ---- 149 おばふろ。 150 0から8 151 ---- 152 なんで 0 から 8? 153 ---- 154 >|| 155 ("1"x9) **2 156 = 111111111**2 157 = 12345678987654321 158 ||< 159 ---- 160 >|| 161 ("1"x10) **2 162 = 1111111111**2 163 = 1234567900987654321 164 ||< 165 ---- 166 >|| 167 ('1'x<>)**2 168 = 1.23456789876543e+16 169 ||< 170 999999999999999 ヨリ大キイ 171 ---- 172 >|| 173 #define IVdf "ld" 174 ||< 175 This symbol defines the format string used for printing a Perl UV 176 as a signed decimal integer 177 >|| 178 sprintf(tmpbuf,"%"IVdf, (IV)SvIVX(sv)); 179 ||< 180 ---- 181 optimize 182 ---- 183 *37B 184 ---- 185 >|| 186 print'*'x$_."\n" 187 for ('1'x<>)**2 = ~/\d/g 188 ||< 189 hogee さん 190 ---- 191 発想の転換によりすばらしいコードに。 192 ---- 193 というわけで、 194 先生。 195 ダメ出しおねがいします
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)