七行プログラミング (452レス)
七行プログラミング http://medaka.5ch.net/test/read.cgi/php/1036141603/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
308: SevenLines の中の人 [sage] 04/04/16 12:18 ID:??? ダメ出しが無いようなので 7telnetd (>>300) と Unit7 (>>305) を載せました。 (個人的な)TODO: 7ch と 7thread の転載体裁整え > Store7 > 7vote 128 氏もライセンス GPL にしちゃっていいんでしょか? ご自身のサイトをお持ちでそちらで公開されるなら、SevenLines から リンクさせてもらいますよと言ってみるテスト。 http://medaka.5ch.net/test/read.cgi/php/1036141603/308
309: Store7.pm [sage] 04/04/19 14:35 ID:??? 縮め。 package Store7;use base Exporter;use Symbol;sub E{$_=pop;s/['\\]/\\$&/g;"'$_'"} @EXPORT=($S=store,$R=retrieve);$L=lock_;@EXPORT_OK=($S.'_fd',"fd_$R",$L.$S,$L.$ R);sub D{local($_,$")=(ref(my$f=pop),',');/^S/?E$$f:/^A/?"[@{[map{D($_)}@$f]}]" :/^H/?"{@{[map{E($_),D($f->{$_})}keys%$f]}}":E$f}$M='}sub ';$P='print$f D pop;1 ';($E,$C,$F,$G)=qw|local$/;(eval<$f> ,close$f eval{flock$f {$f=pop;|;$O='{open( $f=gensym,$m.pop)||die if$m="';eval qq/sub $R$O<
;";$E$C)[0]$M$L$R$O<";$F,1};$E$C )[0]$M fd_$R$G$E)[0]$M$S$O>";$P$C$M$L$S$O>";$F,2};$P$C$M$S\_fd$G$P}/;$VERSION=1 http://medaka.5ch.net/test/read.cgi/php/1036141603/309
310: SevenLines の中の人 [sage] 04/04/21 09:33 ID:??? 7ch と 7thread を GPL でパッケージング & Store7 を載せました。 README の変更等ありましたら作業用 uploader の方へお願いします。 http://medaka.5ch.net/test/read.cgi/php/1036141603/310
311: おうら [] 04/05/12 22:12 ID:3q/C0Ti+ リファーを残さずにリダイレクト。JavaScript Off でも動作可能なコード #! /bin/ksh # リダイレクト if [ "$QUERY_STRING" ]; then echo "Pragma: no-cache Refresh: 0; URL=QUERY_STRING\n"; exit; fi # エラー出力 echo "Content-Type: text/html\nPragma: no-cache\n\n<html><head> </head><body>\nリンク先を指定して下さい\n</body></html>" リファーについて参考にしたページ ttp://www.teria.com/~koseki/memo/referrer/ http://medaka.5ch.net/test/read
.cgi/php/1036141603/311
312: おうら [sage] 04/05/12 22:16 ID:??? うぐぅ。上のコード URL=QUERY_STIRNG に $ が抜けてました。 URL=$QUERY_STRING と見て下さい。 http://medaka.5ch.net/test/read.cgi/php/1036141603/312
313: 7vote [sage] 04/05/12 22:40 ID:??? 仕様変更無しでザッと縮め。 use CGI":all";*P=*param;charset$c='EUC-JP';chdir V;($F)=P(f)=~/^(\d+)$/;if(open F,"+<$F"){eval{flock F,2};$t=<F>;/\t/and$D{$`}=$'+0while<F>;($n=P(n))?$D{$n}||= 1:($v=P(v))&&$D{$v}++,seek(F,0,0),print F"$t\n",map"$_\t$D{$_}\n",keys%D if request_method=~PO}$L{$K[$i++]}=$_ for radio_group(v,[@K=sort{$D{$b}<=>$D{$a}} keys%D]);put header,start_html(-Title,$t,encoding,$c,lang,ja),h1($t),startform, table({},Tr[map{td["$L{$_}(
$D{$_})",hr{width,$D{$_}}]}@K]),hr,p(textfield(n), hidden(f,$F),submit),endform,end_html ・hr のグラフは微妙。 ・既に存在する選択肢への投票は、選択肢自体をクリックできた方がより直感的か? http://medaka.5ch.net/test/read.cgi/php/1036141603/313
314: nobodyさん [sage] 04/05/15 10:22 ID:??? open(IN, $ARGV[0].".txt");@lines = <IN>;close(IN); foreach $line (@lines) {if( $line =~ / [a-z0-9]{32}/ ){$hash .= $line;}} open(OUT, ">hash".$ARGV[0].".txt"); print OUT $hash;close(OUT); WinnyBBS の内容を全部コピペ。テキストファイルに保存。 ↓ その中からハッシュを摘出。テキストファイルに出力。 http://medaka.5ch.net/test/read.cgi/php/1036141603/314
315: nobodyさん [sage] 04/05/15 14:15 ID:??? >>314 perl -ne "/ [0-9a-z]{32}/ && print" in.txt > out.txt grep " [0-9a-z]\{32\}" in.txt > out.txt http://medaka.5ch.net/test/read.cgi/php/1036141603/315
316: nobodyさん [] 04/06/11 10:54 ID:iPrFu4uN # 最近、下がり気味なので保守ついでに package BEncode7;use base Exporter;@EXPORT=qw/bencode bdecode/;sub bencode($){ my$i=pop;ref$i eq'HASH'?"d@{[join('',map{bencode($_).bencode($i->{$_})}keys%$i) ]}e":ref$i eq'ARRAY'?"l@{[join('',map{bencode($_)}@$i)]}e":$i=~/^([+-]?\d+)$/? "i${i}e":length($i).":$i"}sub bdecode{local$_=pop;(/^d(.+)e$/s)?{bdecode($1)}:( /^l(.+)e$/s)?[bdecode("$1")]:(s/^i?([+-]?\d+)e//)?(int("$1"),bdecode($_)):( /^(\d+)/&&s/\d+\:(.{$1})//s)?(
"$1",bdecode($_)):undef}7 Convert::BEncodeの7行版。bittorrent等で使われているフォーマット。 http://medaka.5ch.net/test/read.cgi/php/1036141603/316
317: nobodyさん [sage] 04/06/13 17:48 ID:??? >>316 それだとテスト (001_basic.t) 通らないから、 オリジナルからザックリ縮め直してみたよ。 package Bencode7;use strict;use bytes;use base"Exporter";*bencode=*E=sub{no locale;my$i=pop;ref$i eq"HASH"?join("","d",map(E($_).E($i->{$_}),sort keys%$i), "e"):ref$i eq"ARRAY"?join("","l",map(E($_),@$i),"e"):$i=~/^\d+$/?"i${i}e": length($i).":$i"};sub D{my$c=pop;my$i=shift@{$c};$i=~/d/?do{my%h;while(($i= shift@{$c})ne"e"){unshift@{$c},$i;my$k=D($c);$h{$k}=D($c)}
\%h}:$i=~/l/?do{my@l; while(($i=shift@{$c})ne"e"){unshift@{$c},$i;push@l,D($c)}\@l}:$i=~/i/?do{my$n; $n.=$i while($i=shift@{$c})ne"e";$n}:$i=~/\d/?do{my$n="";do{$n.=$i}while($i= shift@{$c})=~/\d/;my$l="";$l.=shift@{$c}for 1..$n;$l}:$c}sub bdecode{D[pop=~ /./gs]}our($VERSION,@EXPORT_OK)=qw(0.01 bencode bdecode) http://medaka.5ch.net/test/read.cgi/php/1036141603/317
318: nobodyさん [] 04/07/14 16:53 ID:I7yo4p0b お題。 ttp://www.webclap.com/ 6行くらいにはなると思う。 http://medaka.5ch.net/test/read.cgi/php/1036141603/318
319: nobodyさん [age] 04/07/14 23:00 ID:??? ム板より http://pc5.2ch.net/test/read.cgi/tech/1051703369/699-700 こういうのはperlとかのが得意そうだったので。 http://medaka.5ch.net/test/read.cgi/php/1036141603/319
320: nobodyさん [sage] 04/07/15 21:20 ID:??? while($act ne "ガッ"){ print "ぬるぽ\n"; $act = <STDIN>; chomp($act); } print "撃退\n"; sleep(1); http://medaka.5ch.net/test/read.cgi/php/1036141603/320
321: nobodyさん [sage] 04/07/24 18:39 ID:??? これってphpじゃだめなん? http://medaka.5ch.net/test/read.cgi/php/1036141603/321
322: nobodyさん [sage] 04/07/24 18:52 ID:??? >>321 個人的には WebPlog らしいお題なら言語は何でも いいと思うけど。てかこんなんはやった者勝ちかと。 http://medaka.5ch.net/test/read.cgi/php/1036141603/322
323: nobodyさん [sage] 04/07/24 20:08 ID:??? とりあえずPHP5+SQLiteな一行掲示板。フォーム部分は分離させた。 <form action=bbs.php method=post>名前:<input type=text name=n>一言:<input type=t ext name=t size=60><input type=submit value=送信></form> <? $d=sqlite_open('l');$n=$_POST['n'];if(!@sqlite_query($d,'SELECT * FROM b;')){ sqlite_query($d,'CREATE TABLE b(n,t,d);');}$t=$_POST['t'];$z=date("Y/m/d H:i:s") ;if($n!=''&&$t!=''){$s="INSERT INTO b(n,t,d) VALUES(\"$n\",\"$t\",\"$z
\");";sqli te_query($d,$s);}print "<hr>";$r=sqlite_query($d,"SELECT * FROM b ORDER BY d DES C");$c=0;while(($a=sqlite_fetch_array($r))&&$c<50){print htmlspecialchars($a['n' ]).":".htmlspecialchars($a['t'])."[".$a['d']."]<br><hr>\n";$c++;}sqlite_close($ d); ?> DBファイルとテーブル勝手に作る方式。新着順、50件まで(ただしDBからは消してない)。 読みにくいけどSQLiteの使い方の勉強に…ならんか。 http://medaka.5ch.net/test/read.cgi/php/1036141603/323
324: nobodyさん [sage] 04/07/24 20:14 ID:??? >>318 ちなみにそれ、アクセス解析機能もつけるのか? http://medaka.5ch.net/test/read.cgi/php/1036141603/324
325: nobodyさん [sage] 04/07/25 13:12 ID:??? >>323 GJ! http://medaka.5ch.net/test/read.cgi/php/1036141603/325
326: nobodyさん [sage] 04/07/26 14:27 ID:??? 人ほとんどいないなここ(´・ω・`) Web拍手PHP版(記録側)。例によってフォームは分離。 <form method="post" action="webclap.php" target="clap"> <input type="hidden" name="m" value="c">ついでに一言。 <input type="text" name="t" size=40> <input type="submit" value="拍手を送る"></form> <? if($_POST['m']=='c'){$n=file("l");$d=date("Ymd");$h=date("H");$b=split(",",$n [0]);$a=file("t");echo $a[array_rand($a)];if($b[0]!=$d){$i=0;$x="$d,1
,";while($i ++<24){if($i==$h+1)$x.="1,";else$x.="0,";}array_unshift($n,"$x\n");}else{$b[1]++ ;$b[$h+2]++;$x="";$i=-1;while($i++<count($b)-2)$x.="$b[$i],";$n[0]="$x\n";if(cou nt($n)>14)array_pop($n);}$f=fopen("l","w");while(count($n)>0)fputs($f,array_shif t($n));fclose($f);$t=$_POST['t'];if($t!=""){$m=file("m");$f=fopen("m","w");array _unshift($m,"$d,$t\n");if(count($m)>200)array_pop($m);while(count($m)>0)fputs($f ,array_shift($m));fclose($f);}} ?> ごめん、8行になってしまた。取得ログは1
4日分で1時間単位ごとの記録アリ、 一言メッセージは200件まで保存。動かす前にl,m,tとそれぞれ空ファイル作ってくだされ。 tには拍手ボタン押した後に表示するHTMLを一行で叩き込んで。 複数行にするとランダムでどの行か選んで表示します。一行の長さの制限はわからん。 だれか7行に縮めてくれ。俺はもうだめだ(´Д⊂ http://medaka.5ch.net/test/read.cgi/php/1036141603/326
327: nobodyさん [age] 04/07/26 20:37 ID:??? ためしにkaiseki.php作ったら12行になったΛ||Λダメポ 活気ないのでage http://medaka.5ch.net/test/read.cgi/php/1036141603/327
328: 7clap [sage] 04/07/26 23:10 ID:??? オリジナルから仕様を極力変えない方向で10行。 #!/usr/local/bin/perl use CGI":all";charset$c=Shift_JIS;param(k,$k=1+param k);($w=escapeHTML(param w) )=~s/\x0D\x0A|[\x0A\x0D]/br/eg;sub d{($h,$d,$m,$y)=(localtime(time-86400*pop))[ 2..5];$g=($y+1900).sprintf"%02d"x2,$m+1,$d}($C,$M,$L,$T,$I,$S,$E,@M)=<DATA>; open L,">$L";eval{flock L,2};open C;d>(@c=<C>)[-1]?(@c<14||shift@c,@l=((0)x25, "\n")):(($g,@l)=split/<>/,pop@c);$l[$h+1]++;$l[0]++;open C,"
>$C";print C@c,join "<>",$g,@l;d(14);open M;@m=grep$g<=$_,<M>;open M,">$M";print M@m,""ne$w&&d."<>$ h<>$w<>\n";put header,start_html(-Title,$T,lang,ja,encoding,$c),($k<10?(p($M[ rand@M]),startform,p(hidden(k),submit$S),p($I,br,textfield w,'',50,50),endform) :p$E),end_html;__END__ ./log.dat ./mes.dat ./lock.dat web拍手送信完了 ついでに一言あればどうぞ (拍手だけでも送れます) もっと送る 沢山の拍手を有り難うございました! 拍手が送信されました。ありがとうございました!
拍手が送信されました。ありがとうございますた! 拍手が送信されました。ありがとさ〜ん! http://medaka.5ch.net/test/read.cgi/php/1036141603/328
329: nobodyさん [sage] 04/07/29 22:33 ID:??? >>323 >>326 PHPって関数名の途中に空白文字入っても動くの? http://medaka.5ch.net/test/read.cgi/php/1036141603/329
330: nobodyさん [sage] 04/07/30 11:49 ID:??? >>329 行末改行は79文字で切ったものなんで、動かす場合は繋げて。 http://medaka.5ch.net/test/read.cgi/php/1036141603/330
331: nobodyさん [sage] 04/07/30 14:27 ID:??? あぁ、「そのまま動く」ってのが明文化されてないわけね…。 >>330 「560byte」プログラミングじゃなくて「7行」なので、79文字 一杯々々使いたかったら、コードの順番入れ替えたりして 調整してね。 http://medaka.5ch.net/test/read.cgi/php/1036141603/331
332: nobodyさん [sage] 04/07/30 23:12 ID:??? あと2chの仕様だが、コード中に半角スペースが2コ以上連続する時は 半角スペースを に置換する 行の最後に半角スペースが付くので、実行する時には注意する http://medaka.5ch.net/test/read.cgi/php/1036141603/332
333: nobodyさん [あ] 04/08/04 20:11 ID:??? age http://medaka.5ch.net/test/read.cgi/php/1036141603/333
334: 7clap [sage] 04/08/06 15:30 ID:??? あと一行半。 #!/usr/local/bin/perl use CGI":all";charset$c=Shift_JIS;param(k,$k=1+param k);($w=escapeHTML(param w) )=~tr/\x0A\x0D//d;($C,$M,$L,$E,@M)=<DATA>;open L;eval{flock L,2};@l=((0)x26," ");sub d{($s,$m,$h,$d,$m,$y)=localtime(time-pop);$l[0]=($y+1900).sprintf"%02d"x 2,$m+1,$d}open C;d>(@c=<C>)[-1]?@c<14||shift@c:(@l=split/<>/,pop@c);$l[$_]++for $h+2,1;open C,">$C";print C@c,join"<>",@l;d 1209600;open M;@m=grep$l[0]<=$_,<M
> ;open M,">$M";print M@m,""ne$w&&d."<>$h<>$w<>\n";put header,start_html(lang,ja, encoding,$c),$k<10?(p($M[rand@M]),startform,p(hidden(k),submit Clap),p(Comment, textfield w),endform):p$E,end_html;__END__ ./log.dat ./mes.dat >./lock.dat 沢山の拍手を有り難うございました! 拍手が送信されました。ありがとうございました! 拍手が送信されました。ありがとうございますた! 拍手が送信されました。ありがとさ〜ん! http://medaka.5ch.net/test/read.cgi/php/1036141603/334
335: nobodyさん [sage] 04/08/07 07:38 ID:??? >319 全然要求満たしてないけど、叩き台に。 C/C++用、inputは余計なコード書いてないヘッダファイルのみ #!/usr/bin/perl -Pn /^namespace\s*(\w+)/ && ($ns=$1); /\#include\s*[<"](.+)[">]/ && push(@inc, $1); /^class\s+(\w+)\s*\:?/ && push(@cls, $1); /(([\w\s\*]+)(\w+)\s*\((.+)\))/ && push(@memf, $1); # メンバ関数 /(([\w\s\*]+)(\w+));/ && push(@memv, $1); # メンバ変数 END{ print join("\n", $., $ns, "@inc","@cls","@memf", "@memv"),"\n" } JAVAはリフレクションが
あるし、classファイルのフォーマットも公開されてるので 別のアプローチでやってみると面白いかも知れない。(javapやClassBrowserが既にあるけど) http://medaka.5ch.net/test/read.cgi/php/1036141603/335
336: nobodyさん [あ] 04/08/11 09:29 ID:??? age http://medaka.5ch.net/test/read.cgi/php/1036141603/336
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 116 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
アボンOFF
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.028s