はてなキーワード: STRとは
/** * そっとうに。 * * そっとうにを置く。 * * @param string $str * @return string * @see <a href="http://vipsister23.com/archives/5204131.html">とある小学生が書いた詩が哲学的過ぎる件</a> */ function sottoUni($str) { return 'そっと' .PHP_EOL . $str.'に' .PHP_EOL .'うに' .PHP_EOL; } $arr = array('せなか','わたげ','たにま'); foreach($arr as $d) { echo sottoUni($d); }
Pythonの方が弄れる対象が多いのに、なんでウェブ系だとPHPの方が流行ってんだろ
端末からのテキスト処理も楽だし、数値計算周りのライブラリも充実しているのに
PHPが優遇されているのって歴史的な経緯以外に何か他の理由でもあるのか?
けどまぁ、情弱な文系SEが大半を占めているバカだらけの日本じゃ別にPHPで困ることもないか
数値計算や端末からのテキスト処理なんてWeb系じゃ大して使わないからなあ…
Pythonに関しては、ZopeさえコケていなければWebサーバ用LLとして大成功していたはずなのに、
Railsなんかが登場したおかげで、すっかり影が薄くなってしまいますた....
ってか、railsにインスパイアされたフレームワークって今じゃ幾らでもあるよね
djangoとかCakePHPとか。rubyってRoRを使いたいユーザを除くと、
pythonやPHPの方がユーザー数は圧倒的に多いと思うんだけど
本家のrailsって、他を遥かに越えるほど良いものなんだっけ?
44
Zopeが登場した当時、「RDB+PHPはもう古い、これからはOODB+ZopeがWebの中軸になる!」と
少なくとも自分はZopeからPythonという言語を知ったし、その時点でRubyは知らなかった
そして、その後のORM(RDB)+Railsの出現と華々しい革新性への注目は、誰もが知っているだろう
今でもZopeの開発は継続されてはいるが、結果的に当初の期待が大きく裏切られたという事実は動かしがたい
djangoとCakePHPについては実際に触っていないので憶測になるが、おそらく技術水準ではRailsと同等だろう
しかしRailsはRailsでコミュニティの活動が活発だし、その進化は異常に早い
Railsに何か致命的なトラブルが発生して開発が停滞する、あるいはdjangoやCakePHPから
何かのイノベーションが提示されでもされない限り、後発のdjangoやCakePHPがRailsに追いつくのは無理
Railsは決して技術的に完璧なWebフレームワークではないんだけどね....(たとえばSeaSideのような.... )
だからこそ「もしもZopeが....だったなら」という「たら・れば」感はPythonコミュニティの潜在認識になっている
C a k e P H P は う ん こ
CakePHP使ってんの?
可哀そうにw
でもやっぱりいつもの使い慣れたLL(Python/Ruby)で
Webサービスを書きたいってのがある
求人数は
Ruby on Rails>>>>>>>>Django
http://www.indeed.com/jobtrends?q=django%2Cruby+on+rails&l=
どういうことなの?
求人数が多いのはそのためだと思うよ
なんかのミスかと思ったがアメリカでもRuby on Railsは人気があるのかなあ・・・
Pythonのほうが使いやすいと思うのだがフレームワークはRailsが優位なんだろうか
Djangoは周辺ライブラリが微妙だし本体も鈍くさい感じがする。
でも、FlaskはSinatraより好きだから、Pythonが嫌いってわけではない。むしろ好き。
ただ、いざ作り始めるとやっぱりRailsが楽だなあってなって、Railsを使い続けている。
同感だ
同じように思っている人が他にもいて安心した
PHPはフレームワークが乱立しすぎているから、RailsをPHPで実装してみようというやつが出てきた。
それに比べてPythonは、Zopeというデファクトスタンダードが既に存在していたけど、
ただ、どうやってもRailsもどきがRailsを超えることはできないのは間違いない。
パクリはオリジナルを超えられない(キリッ って定型句だけど、
これってキリッって言いたいだけだと思う。
D言語って超えたって?
B言語って超えたって?
PHPで同じ事をできないわけではないだろうけど、Ruby on Railsほど簡潔にはできない
まあくだらねえWEBサービス作って喜んでる情弱は早く死ねって事だよ
そういう理由じゃなくてRailsのほうが単純に情報もプラグインも多いからでしょ
linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん
わざわざ不合理で不完全な言語を使うなんて
もしも
>linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん
真実であるのなら、今頃はdjangoの情報とプラグインが溢れかえっているはず
yumや、gdbとgnomeの拡張がpythonであるからといって、それをwebアプリでも使いたいと思う人は少ないというだけのこと。
ソースからインストールする必要があったとしても、web開発ではrubyを使いたいという人が多いというだけのこと。
というか、世界中のPythonプログラマが Remeber Zope!! を合い言葉に
打倒RailsたるWebフレームワークを開発しているはずだけど、
Railsも登場してから、かなりの年月が経過しているんだけどなぁ....
その間にもRailsはRails 3が登場して、REST/AJAXの強化等の進化が継続しているよ
Ruby では
ary.map {|x| x**2}
map(lambda x: x**2, ary)
となり、lambda の本体が1つの式では表現しきれなくなると
.....
と書き換える必要があります。
f = lambda x:(x and f(x-1)*x)or 1
RubyにはPythonのように「lambda本体は式でなければならない」という限定がありませんから、
f = lambda{|x|if x == 0 then 1 else x*f.call(x-1) end}
または
f = lambda{|x|x == 0 ? 1 : x*f.call(x-1)}
と書けます。lambda内でreturnが使えますから、書きたければ
f = lambda{|x|if x == 0 then return 1 else return x*f.call(x-1) end}
でもOKです。
348
これはPythonをdisっているように見せかけてRubyをdisっているのか? と一瞬思ってしまったw
だってRubyのほうが長くない?CLのfuncallみたいなcall()がちょっとうざいし…
そしてどっちもlambda式の中で束縛変数の名前で再帰可能、と
print [x*2+100 for x in [1,2,3,4,5] if x > 2 and x < 5]
暗号のように見える。
puts [1,2,3,4,5].select{|i| i > 2 and i < 5}.map{|i| i*2+100}
思考の流れと、コードの流れが一致しているので書きやすい。
map(lambda x: x*2+100, filter(lambda x: x > 2 and x < 5, [1,2,3,4,5]))
pythonて可読性が高いのをうたってる割にはそこいまいちだよね
Rubyの場合には、左から右へと無名関数がデータフローあるいは
関数型プログラミングに不慣れな初心者でも、参照透明性のあるコードが自然に書ける
プログラマにとって優しい or プログラミングの楽しさを教えてくれるのがRuby
それと比較すると、Pythonのコードは、関数型プログラミングというものが
いかに高度で難解なものであるかという事をもったいぶってプログラマに押し付ける
もしもPythonしか知らないプログラマであれば、関数型 = 難解 という印象を持つだろう
階乗計算くらいだと単純すぎて、ナゼ重要なのかが分かりづらいと思うのでコードで示す
result_list = source_list.map { |elem|
x = foo(elem.x) # ここが局所宣言を書く部分
x + y # 最後に評価された式の値が、無名関数のリターン値になる
}
Rubyでは、map等に与える無名関数の中で局所的な環境(クロージャ)が作られるから、
x = foo(...) のような代入文がいくつでも(= 複雑な処理でも)書ける
このポイントは、実用的なプログラムを関数型風で書こうとした時に、威力を発揮する
余計分かりづらくなった
高卒ドカタなんだろうなぁと可哀想になる
集合の表記に似せてることが分かるから
355
>map/filterはfor/ifと同じだと言っているだけだから、難解という印象は持たない。
関数型プログラミングに慣れた、あるいは得意な人であれば、そういった印象なんだろね
Rubyの魅力はこれから関数型プログラミングを学ぼうとする初心者、 あるいはそんな初心者へ教える立場から見た、優しさ or 分かりやすさなんだ
[1,4,3,2].sort.reverse.map{|x| x.to_s}.join('-')
Pythonだと読みにくい。
'-'.join(map(str, reversed(sorted([1,4,3,2]))))
Pythonでは思考の流れと一致しないばかりか、「カッコだらけ」のコードになると.....
カッコだらけのコードを分かりやすくする基本的な方法は静的単一代入じゃないか
Rubyのやり方は基本ではなく玄人のやり方だろ
Pythonでは組み込みの型でメソッドチェインはやって欲しくないな
似たようなコレクションtuple,deque,array,queue等にも同じメソッドが必要になってくるし。
372
外部のライブラリでも列挙可能なものは、たいていEnumerableモジュールをimportしてますね
Rubyユーザーは列挙可能なものはmapやselectできて当然だろって思ってる気がします
Pythonは「何かを便利に書くためのしわ寄せ」をはっきり寄せてくる
得意と不得意を言語レベルではっきり主張するのでメリケン好みと言えなくもない
Rubyは全方位になんとなく八方美人なので、全体的になんとなく書きやすくてなんとなくキモくて遅い
「書きにくいってことはその処理に向いてないってことだから諦めろ」を地で行く
無名関数が文を使うほど複雑なら名前を付けるのが Python 流と想像。
これを読みづらいと感じるのは、左から右に流れる
もしかしてアラビア語ネイティブな人からすると逆に読みやすいのか?
Rコンソールに一行ずつコマンドを入力してもいいけど、実際に使うにはテキストファイルにコマンドを書いて(ソースコード)一気に実行させる方が楽。
source('hogehoge.R')
hogehoge.Rというのがソースコードを書いたファイル(ソースファイル)の名前。
CRANという、CPANのパクリがある。膨大な数のライブラリがあるので、好きなものをインストールするには、
install.packages('hoge',dependencies=TRUE)
とするのが楽。
> あ<-1 > あ [1] 1
a<-1 b=2 1->a
どれでもいい。但し推奨されてるのは一番上。Rの人は「束縛」という言葉を使いたがる傾向があるけど、どっちでもいいと思う。
余談だけど、関数の引数の中で代入できる、しかもその値をそのあとの引数で使える。これ実は便利。
> sum(a<-1,a) [1] 2
> a [1] 1 > str(a) num 1 > summary(a) Min. 1st Qu. Median Mean 3rd Qu. Max. 1 1 1 1 1 1
最後のsummaryはRっぽい。strっていうのはstringではなくstructの略(だと思ってる)。Rの変数はいくらでも複雑な構造になり得るけど、そのときにぱっと見がわかるように構造を出力してくれる。
Rの基本はベクトル。
ベクトルの作り方はいくらでもあるけど、例示するのが早いでしょう。
> x<-1:3
> y<-c(TRUE, FALSE, TRUE)
> z<-c("a","b","c")
> x
[1] 1 2 3
> y
[1] TRUE FALSE TRUE
> z
[1] "a" "b" "c"
他にもいっぱいあるし、関数の返値がベクトルってこともよくある。
> runif(3) [1] 0.2200965 0.6391403 0.1089252
一様乱数を三個作った。
> x<-letters[1:5] > x [1] "a" "b" "c" "d" "e" > x[2] [1] "b" > x[4:5] [1] "d" "e" > x[c(1,3,5)] [1] "a" "c" "e"
こんな感じで、[]の中に添え字でアクセス。1-indexなので注意。2,3番目の例では添え字にもベクトルを使って、複数の要素に一気にアクセスしてる。
> x[3]<-"z" > x [1] "a" "b" "z" "d" "e"
でOK。
要望があれば続くかも。
str.charCodeAt(0) + str.charCodeAt(str.length-1) (str.charCodeAt(0) + str.charCodeAt(str.length-1)) * str.length
while (*key != '\0')
hashval += *key++;
do{
x = (x * 0x60 + *s - 0x20) % hashsize;
}while(*++s);
/* ハッシュ値算出ルーチン */ /* 各文字コードを左に3シフトしたものでXORをとり、 */ /* ハッシュテーブルのサイズで割った余りを返す */ int HashCalc( SearchData ) char *SearchData; { int HashValue; for ( HashValue = 0 ; *SearchData != '\0' ; ) HashValue ^= (int)*SearchData++ << 3; return( HashValue % HASHSIZE ); }
↓
<style type="text/css">dt{float:left;clear:left;width:10em;}</style>
<meta content="charset=Shift_JIS"/>
<script type="text/javascript"></p> <p>window.onload = init;</p> <p>var url = [</p> <p> "<a href="http://www.senkyo.metro.tokyo.jp/h19sangiin/san_kekka/h19san_hkai.html">http://www.senkyo.metro.tokyo.jp/h19sangiin/san_kekka/h19san_hkai.html</a>",</p> <p> "<a href="http://www.senkyo.metro.tokyo.jp/h17shugiin/sokuhou/7kaijyo_s.htm">http://www.senkyo.metro.tokyo.jp/h17shugiin/sokuhou/7kaijyo_s.htm</a>",</p> <p> "<a href="http://www.senkyo.metro.tokyo.jp/h17togisen/sokuhou/2kaijyo_s.htm">http://www.senkyo.metro.tokyo.jp/h17togisen/sokuhou/2kaijyo_s.htm</a>",</p> <p> "<a href="http://www.senkyo.metro.tokyo.jp/data/h16san_hkai.html">http://www.senkyo.metro.tokyo.jp/data/h16san_hkai.html</a>",</p> <p> "<a href="http://www.senkyo.metro.tokyo.jp/data/h15shu_hkai.html">http://www.senkyo.metro.tokyo.jp/data/h15shu_hkai.html</a>",</p> <p> "<a href="http://www.senkyo.metro.tokyo.jp/data/data01_01_03.html">http://www.senkyo.metro.tokyo.jp/data/data01_01_03.html</a>",</p> <p> "<a href="http://www.senkyo.metro.tokyo.jp/data/data01_02_05.html">http://www.senkyo.metro.tokyo.jp/data/data01_02_05.html</a>",</p> <p> "<a href="http://www.senkyo.metro.tokyo.jp/data/data03_04.html">http://www.senkyo.metro.tokyo.jp/data/data03_04.html</a>",</p> <p> "<a href="http://www.senkyo.metro.tokyo.jp/data/data01_05_05.html">http://www.senkyo.metro.tokyo.jp/data/data01_05_05.html</a>"</p> <p>];</p> <p>var base = "<a href="http://www.senkyo.metro.tokyo.jp/data/tokuhyo_23ku/">http://www.senkyo.metro.tokyo.jp/data/tokuhyo_23ku/</a>";</p> <p>var file = ["chiyoda","chuou","minato","shinjyuku","bunkyo",</p> <p> "taitho","sumida","koutho","sinagawa","meguro",</p> <p> "ohta","setagaya","shibuya","nakaono","suginami",</p> <p> "toshima","kita","arakawa","itabashi","nerima",</p> <p> "adachi","katushika","edogawa"];</p> <p>for(var i=0; i<23; i++){</p> <p> url.push(base + file[i] + "\.html");</p> <p>}</p> <p>var id = [</p> <p> "2007 参院比", "2005 衆院比", "2005 都議会", "2004 参院比", "2003 衆院比",</p> <p> "2001 参院比", "2001 都議会", "2000 衆院比", "1998 参院比", "1997 都議会"</p> <p>];</p> <p>var ku = [</p> <p> "千代田","中央","港","新宿","文京",</p> <p> "台東","墨田","江東","品川","目黒",</p> <p> "大田","世田谷","渋谷","中野","杉並",</p> <p> "豊島","北","荒川","板橋","練馬",</p> <p> "足立","葛飾","江戸川"</p> <p>];</p> <p>var regexku = new RegExp("(" + ku.join("|") + ")区");</p> <p>var iframe = [];</p> <p>var data = {};</p> <p>var parse = [ function(){</p> <p> var d = iframe[0].contentWindow.document;</p> <p> var td = d.getElementsByTagName("td");</p> <p> for(var i=0, l=td.length; i<l; i++){</p> <p> if(regexku.test(td[i].firstChild.nodeValue)){</p> <p> for(var j=0, e=td[i]; j<10; j++){</p> <p> e = e.nextSibling;</p> <p> }</p> <p> data[RegExp.$1 + "0"] = e.firstChild.firstChild.nodeValue.replace(/\.\d+/,"");</p> <p> }</p> <p> }</p> <p> show();</p> <p>}, function(){</p> <p> var d = iframe[1].contentWindow.document;</p> <p> var nobr = d.getElementsByTagName("nobr");</p> <p> for(var i=0, l=nobr.length; i<l; i++){</p> <p> if(regexku.test(nobr[i].firstChild.nodeValue)){</p> <p> for(var j=0, e=nobr[i].parentNode; j<4; j++){</p> <p> e = e.nextSibling;</p> <p> }</p> <p> data[RegExp.$1 + "1"] = e.firstChild.nodeValue;</p> <p> }</p> <p> }</p> <p> show();</p> <p>}, function(){</p> <p> var d = iframe[2].contentWindow.document;</p> <p> var nobr = d.getElementsByTagName("nobr");</p> <p> for(var i=0, l=nobr.length; i<l; i++){</p> <p> if(regexku.test(nobr[i].firstChild.nodeValue) && nobr[i].parentNode.tagName == "SPAN"){</p> <p> for(var j=0, e=nobr[i]; j<6; j++){</p> <p> e = e.parentNode;</p> <p> }</p> <p> var e2 = e.nextSibling.nextSibling.firstChild.childNodes[2].firstChild;</p> <p> var k = 0;</p> <p> data[RegExp.$1 + "2"] = 0;</p> <p> while(e2){</p> <p> if(e2.firstChild.firstChild.nodeValue.indexOf("公明党") != -1){</p> <p> data[RegExp.$1 + "2"] += parseInt(e2.parentNode.nextSibling.childNodes[k+2].firstChild.nodeValue.replace(",",""), 10);</p> <p> }</p> <p> e2 = e2.nextSibling;</p> <p> k++;</p> <p> }</p> <p> data[RegExp.$1 + "2"] = int2str(data[RegExp.$1 + "2"]);</p> <p> }</p> <p> }</p> <p> show();</p> <p>}, function(){</p> <p> var d = iframe[3].contentWindow.document;</p> <p> var td = d.getElementsByTagName("td");</p> <p> for(var i=0, l=td.length; i<l; i++){</p> <p> if(regexku.test(td[i].firstChild.nodeValue)){</p> <p> for(var j=0, e=td[i]; j<19; j++){</p> <p> e = e.nextSibling;</p> <p> }</p> <p> data[RegExp.$1 + "3"] = e.firstChild.firstChild.nodeValue.replace(/\.\d+/,"");</p> <p> }</p> <p> }</p> <p> show();</p> <p>}, function(){</p> <p> var d = iframe[4].contentWindow.document;</p> <p> var td = d.getElementsByTagName("td");</p> <p> var regexku2 = /(大田|世田谷|練馬|足立|江戸川)/;</p> <p> for(var i=0, l=td.length; i<l; i++){</p> <p> if(regexku.test(td[i].firstChild.nodeValue)){</p> <p> data[RegExp.$1 + "4"] = td[i].nextSibling.nextSibling.firstChild.nodeValue.replace(/\.\d+/,"");</p> <p> continue;</p> <p> }</p> <p> if(regexku2.test(td[i].firstChild.nodeValue)){</p> <p> data[RegExp.$1 + "4"] = (data[RegExp.$1 + "4"] || 0) </p> <p> + parseInt(td[i].nextSibling.nextSibling.firstChild.nodeValue.replace(",","").replace(/\.\d+/,""));</p> <p> }</p> <p> }</p> <p> for(var j=0; j<5; j++){</p> <p> data[ku[[10,11,19,20,22][j]]+"4"] = int2str(data[ku[[10,11,19,20,22][j]]+"4"]);</p> <p> }</p> <p> show();</p> <p>}, function(){</p> <p> var d = iframe[5].contentWindow.document;</p> <p> var td = d.getElementsByTagName("td");</p> <p> for(var i=0, l=td.length; i<l; i++){</p> <p> if(regexku.test(td[i].firstChild.firstChild.nodeValue)){</p> <p> for(var j=0, e=td[i]; j<10; j++){</p> <p> e = e.nextSibling;</p> <p> }</p> <p> data[RegExp.$1 + "5"] = e.firstChild.firstChild.nodeValue.replace(/\.\d+/,"");</p> <p> }</p> <p> }</p> <p> show();</p> <p>}, function(){</p> <p> var d = iframe[6].contentWindow.document;</p> <p> var td = d.getElementsByTagName("td");</p> <p> for(var i=0, l=td.length; i<l; i++){</p> <p> if(regexku.test(td[i].firstChild.firstChild.nodeValue)){</p> <p> for(var j=0, e=td[i]; j<7; j++){</p> <p> e = e.nextSibling;</p> <p> }</p> <p> data[RegExp.$1 + "6"] = e.firstChild.firstChild.nodeValue.replace(/\.\d+/,"").replace("-","0");</p> <p> }</p> <p> }</p> <p> show();</p> <p>}, function(){</p> <p> var d = iframe[7].contentWindow.document;</p> <p> var td = d.getElementsByTagName("td");</p> <p> for(var i=0, l=td.length; i<l; i++){</p> <p> if(regexku.test(td[i].firstChild.firstChild.nodeValue)){</p> <p> for(var j=0, e=td[i]; j<9; j++){</p> <p> e = e.nextSibling;</p> <p> }</p> <p> data[RegExp.$1 + "7"] = e.firstChild.firstChild.nodeValue;</p> <p> }</p> <p> }</p> <p> show();</p> <p>}, function(){</p> <p> var d = iframe[8].contentWindow.document;</p> <p> var td = d.getElementsByTagName("td");</p> <p> for(var i=0, l=td.length; i<l; i++){</p> <p> if(regexku.test(td[i].firstChild.firstChild.nodeValue)){</p> <p> data[RegExp.$1 + "8"] = int2str(td[i].nextSibling.firstChild.firstChild.firstChild.nodeValue);</p> <p> }</p> <p> }</p> <p> show();</p> <p>}, function(n){ return function(){</p> <p> var d = iframe[n+9].contentWindow.document;</p> <p> var td = d.getElementsByTagName("td");</p> <p> data[ku[n]+"9"] = 0;</p> <p> for(var i=0, l=td.length; i<l; i++){</p> <p> if((((td[i].firstChild || 0).firstChild || 0).nodeValue || "").indexOf("公明") == 0){</p> <p> data[ku[n]+"9"] += parseInt(td[i].parentNode.lastChild.firstChild.firstChild.nodeValue.replace(",",""));</p> <p> }</p> <p> }</p> <p> data[ku[n]+"9"] = int2str(data[ku[n]+"9"]);</p> <p> show();</p> <p>}}];</p> <p>function init(){</p> <p> for(var i=0; i<23; i++){</p> <p> var dl = document.createElement("dl");</p> <p> dl.appendChild(document.createTextNode("\n【" + ku[i] + "区における公明票】\n"));</p> <p> for(var j=0; j<10; j++){</p> <p> var dt = document.createElement("dt");</p> <p> var dd = document.createElement("dd");</p> <p> dt.innerText = id[j];</p> <p> dl.appendChild(dt);</p> <p> dl.appendChild(dd);</p> <p> }</p> <p> document.body.firstChild.appendChild(dl);</p> <p> }</p> <p> for(var i=0; i<32; i++){</p> <p> var e = document.createElement("iframe");</p> <p> iframe[i] = e;</p> <p> e.style.display = "none";</p> <p> if(i<9) var f = parse[i];</p> <p> else var f = parse[9](i-9);</p> <p> e.attachEvent("onload", f);</p> <p> e.src = url[i];</p> <p> document.body.appendChild(e);</p> <p> }</p> <p>}</p> <p>function show(){</p> <p> for(var i=0; i<23; i++){</p> <p> var dl = document.body.firstChild.childNodes[i];</p> <p> for(var j=0; j<10; j++){</p> <p> var dt = dl.childNodes[j*2+1];</p> <p> dt.innerText = id[j] + " " + (data[ku[i]+j] || "");</p> <p> dt.nextSibling.innerText = bar(data[ku[i]+j], j);</p> <p> }</p> <p> }</p> <p>}</p> <p>function int2str(num){</p> <p> return new String(num).split("").reverse().join("").replace(/(\d{3})/g,"$1,").split("").reverse().join("");</p> <p>}</p> <p>function bar(str, flag){</p> <p> str = str || "";</p> <p> if(str == "" || str.length < 5) return "";</p> <p> var num = parseInt(str.match(/\d+/)) + 1;</p> <p> var arrow = (flag == 2 || flag == 6 || flag == 9) ? " ←" : "";</p> <p> var _bar = new Array(num).join("|") + arrow;</p> <p> return _bar;</p> <p>}</p> <p></script>
よりそいプログラミングによりそってみる。
>int
>count_comma(const char* str) {
別に comma に限定する必要はないから、count_char にして、char 引数もう一つもとうよ。
>int
>count_comma(const char* str) {
> int ret;
ret って?count?じゃあ count って変数名のほうがいいよ。あと = 0 ね。
> for (ptr = str; *ptr != '\0'; ptr++) {
>
> }
ヌル文字最後にない場合どうすんだよ、おめー
> static const char COMMA = ',';
再利用性を高めようとする意識はいい。けど、後で関数単体で再利用できるように書けって。
> うるさい!だまってて!
すいません・・・
| タイトル | アーティスト | 再生回数 |
|---|---|---|
| ブラックアウト | 東京事変 | 566 |
| アララト | WHITE-LIPS | 522 |
| R.O.D. | やなぎなぎ | 490 |
| 強引niマイYeah〜 | 大槻ケンヂと絶望少女達 | 483 |
| Nowhere | FictionJunction YUUKA | 448 |
| 空想ルンバ | 大槻ケンヂと絶望少女達 | 445 |
| God knows... | 平野綾 | 387 |
| メロスのように -LONELY WAY- | AIRMAIL from NAGASAKI | 376 |
| だから涙をふいて… | 佐倉沙織 | 376 |
| 赤橙 | ACIDMAN | 368 |
| 未来への咆哮 | JAM Project featuring Kageyama Hironobu, Endoh Masaaki, Kitadani Hiroshi & Fukuyama Yoshiki | 332 |
| 明日へのBrilliant Road | Angela | 304 |
| Do you feel loved? | KOTOKO | 296 |
| Born On Judgment Day | Helloween | 292 |
| 鏡の中のアクトレス | 中原めいこ | 288 |
| Days of promise | SHIHO | 283 |
| PEARLS | Seatbelts | 271 |
| metamorphose | 高橋洋子 | 268 |
| STORM | JAM Project | 260 |
| 雪、無音、窓辺にて | 長門有希 | 260 |
| El Alma feat. SHINJI TAKEDA | Dragon Ash | 252 |
| まるい月 | fau. | 249 |
| 飛光 | ACIDMAN | 248 |
| 未完成協奏曲 (ロングヴァージョン) | 錦織健 | 247 |
| パノラマ -Panorama- | 水樹奈々 | 246 |
この表を作る方法は以下のとおり。Macユーザならすぐ出来る。
1.まず、デフォルトのスマートプレイリストのTop25を表示する。そしてiTunesでの情報表示を、上のバーを右クリックしてタイトル、アーティスト、再生回数のみにチェックする。
2.全体を選択。iTunes.txtというファイル名で保存する。UTF-8で。
3.次のソースコードをコピペして、iTunes_list.rbという名前でiTunes.txtを保存したのと同じフォルダに保存する。
f = open("iTunes.txt") printf "|*タイトル|*アーティスト|*再生回数|\n" f.each{|str| str = str.gsub(/\t/, "|") str = str.chop printf "|"+str+"|\n" }
4.ターミナルを立ち上げ、cdと打ち込んだ後にスペースを空けて、iTunes.txtとiTunes_list.rbが入っているフォルダを、ターミナルのウインドウにドラッグアンドドロップする。その後returnキー。
5.ruby iTunes_list.rbと打つと、はてな記法で表組されたテキストが出てくるので、これをはてダにコピペすればおk。
もしアルバム名なども表示したかったら、まずiTunesで表示したいヤツを出して選択してiTunes.txtにコピペ。そして最初のprintfのところを適宜書き換えればいい。
WinユーザもRubyを動かせる環境がそろってる人なら、すぐに出来ると思う。
さあ、みんなも再生回数晒してみようぜ。
FizzBuzz続き
Cにもlambdaがあればいいのに
#include <stdio.h> #include <unistd.h> #define FALSE 0 #define TRUE !FALSE typedef struct state_t { int state; int num; int max; int outputted; } state_t; typedef struct fsm_t { state_t *(*func)(struct fsm_t *, state_t *); int divider; char *str; } fsm_t; static state_t *fizzbuzz(fsm_t *, state_t *); static state_t *end_of_line(fsm_t *, state_t *); static state_t *cond(fsm_t *, state_t *); static state_t *succ(fsm_t *, state_t *); static fsm_t fsm[] = { { fizzbuzz, 3, "Fizz" }, { fizzbuzz, 5, "Buzz" }, { end_of_line, 0, NULL }, { cond, 0, NULL }, { NULL, 0, NULL }, }; static state_t *fizzbuzz(fsm_t *fsm, state_t *cur) { if ((cur->num % fsm[cur->state].divider) == 0) { printf("%s", fsm[cur->state].str); cur->outputted = TRUE; } return succ(fsm, cur); } static state_t *end_of_line(fsm_t *fsm, state_t *cur) { if (!cur->outputted) printf("%d", cur->num); puts(""); cur->outputted = FALSE; return succ(fsm, cur); } static state_t *cond(fsm_t *fsm, state_t *cur) { if (++cur->num > cur->max) return NULL; return succ(fsm, cur); } static state_t *succ(fsm_t *fsm, state_t *cur) { if (fsm[++cur->state].func == NULL) cur->state = 0; return cur; } int main(void) { state_t state = { 0, 1, 100, FALSE }; state_t *cur = &state; while ((cur = (*fsm[cur->state].func)(fsm, cur)) != NULL) ; return 0; }
http://anond.hatelabo.jp/20081026002746
ステートマシン大好きっ子としては書かずにいられない
もう少しがんばればforも無くせるな
fsmの中身ってDRYなの?的な話もあるだろうが,こんなもの他のプログラムで自動生成すればいいんだよ!(開き直り)
#include <stdio.h> static int process(unsigned char *str, int c) { if (str != NULL) puts(str); else printf("%d\n", c); return ++c % (3 * 5); } static int iter(int c) { return process(NULL, c); } static int fizz(int c) { return process("Fizz", c); } static int buzz(int c) { return process("Buzz", c); } static int fizzbuzz(int c) { return process("FizzBuzz", c); } static int (*fsm[])(int) = { fizzbuzz, iter, iter, fizz, iter, buzz, fizz, iter, iter, fizz, buzz, iter, fizz, iter, iter }; int main(void) { int i, state; for (i = state = 1; i <= 100; i++) { state = (*fsm[state])(i); } return 0; }
Thanks. 確かにそうなんだけど、putsだと勝手に改行が出力されてしまうので一ヶ所しか使えなかった。DRY、forなし、ifなし(:?使ってるのでインチキだけど)、main以外に関数なし風味。これで完成ということにして寝ます。
int main() { int fizz_buzz(int i, int limit) { int do_fizz_buzz(int num, int divisor, const char* str, int print) { return num % divisor == 0 ? do_fizz_buzz(num / divisor, divisor, str, 1) : (printf("%s", print ? str : ""), num); } do_fizz_buzz(do_fizz_buzz(i, 3, "Fizz", 0), 5, "Buzz", 0) == i ? printf("%d\n", i) : puts(""); return i++ == limit ? 0 : fizz_buzz(i, limit); } return fizz_buzz(1, 100); }
移植性の話は厳禁でw
さっきのはあまりに汚かったのでちゃんと書いたよ!!
static int do_fizz_buzz(int num, int rem, const char* str, int print) { if (num % rem == 0) { return do_fizz_buzz(num / rem, rem, str, 1); } if (print) printf("%s", str); return num; } int fizz_buzz(int num, int rem, const char* str) { return do_fizz_buzz(num, rem, str, 0); } int main(){ int i; for(i=1; i<=100; i++){ if(fizz_buzz(fizz_buzz(i, 3, "Fizz"), 5, "Buzz") != i) printf("\n"); else printf("%d\n", i); } return 0; }
どうでしょうか?>元増田
http://anond.hatelabo.jp/20081020045037
早速お返事有難う御座います!id:hiroyukiegamiです!
なるほど!前回
$Hamachiya2 = htmlspecialchars($_GET["data"], ENT_QUOTES); //←ここを追加$params = array('api_key' => 'フリッカーのAPIキー',
'method' => 'flickr.photos.search',
'text' => $Hamachiya2,
と$_GET のところ(入力)で何かしようとしてたけど
”レスポンスのコーナーのところ、htmlに変数埋め込んで echo してるとこ。”
が大事なんですね!勉強になります!
先生からの説明で
その際に注意すべきは、htmlの属性内(alt=ナントカとか、src=ナントカとか)に変数を埋め込んでいる場合は、ちゃんとクオートの類もエスケープする感じ?
とあって、うーんどういう意味だろうとグーグル先生に聞いてみたよ!
クオート(正確にはクォーロみたいですね!) ・・・ クォートとは、文字が通常有する特別な意味を奪うことである。
つまり”とか’の事ですね!勉強になります。
今回echoで実際に書き出している部分は
$query = $_GET["data"];echo "$query";
でした!
じゃぁ、ここをこうすればいいのかな??
$query = $_GET["data"];echo nl2br(htmlspecialchars($query, ENT_QUOTES));
http://php.benscom.com/manual/ja/function.nl2br.php
nl2br ・・・ nl2br()関数は、改行文字(\n、\r、\n\rなど)を
タグに置き換えます。
うーん、、、ではid:zapa氏の荒らしURLをみてみよう・・・。
http://flickr2.in/fli.html?data=%3Cscript%3Ejavascript%3Aalert(%27xss%27)%3B%3C%2Fscript%3E
id:Hamachiya2先生!全然解決されないよ(涙)
今回nl2brタグで改行を回避したけど・・・これじゃダメみたいですね・・・!
<script>javascript%3Aalert('xss')%3B<%2Fscript>
・・・!!!
先生!僕は大きな間違いをしていたようです!
htmlspecialcharsとかnl2brタグも大事だけど、、、これじゃ解決できないみたい!!!!
これって、どうしたらいいんですか!?ヘルプミー!!!
なんとか直さないと・・・。
どうにか解決方法はありますかね??
YourFileHostのCAPTCHA画像をなんとかするの続き。
その後、適当にいじったら、手元環境で1枚あたり25秒くらい→だいたい2.5秒くらいで判別できるようになった。このくらいなら使えるかな。
速度向上に一番効いたのは、Token#importで画像を比較しているところの修正。他は細かい手直し。
使い方は前のやつと変わってません。
あと、テストに100枚くらいCAPTCHA画像食わせてみたけど、とりあえず全部正しく判定できた。
カレントディレクトリ以下にある*.gifなCAPTCHA画像ファイルを適当に判別するスクリプト。動作確認用にどうぞ。
後述のdecaptcha.rbと同じディレクトリに適当に置いてchmod +xしてね。
#!/usr/local/bin/ruby $LOAD_PATH << File::dirname(File::expand_path($0)) require 'decaptcha' STDOUT.sync = true Dir.glob('*.gif').sort.each do |file| correct = File::basename(file, '.*') puts "Processing file: #{file}" start_time = Time.now ret = DeCAPTCHA.decode(file) elapsed = Time.now - start_time puts " Result: #{ret} (=> #{(correct == ret) ? "Ok" : "Fail"})" puts " Elapsed time: #{elapsed}" puts end
#!/usr/local/bin/ruby require 'rubygems' require 'gd2' require 'pp' # #= CAPTCHA画像解析モジュール # CAPTCHA画像ファイルを食わすとあら不思議、Stringが出てくるよ。 # YourFileHostのやつに対応。 # #== Usage # decoded_str = DeCAPTCHA.decode("some_captcha_image.gif") #=> String # 失敗したらnilが返る。 # module DeCAPTCHA DEBUG = false #=== CAPTCHA画像デコード # file:: 画像ファイル名のパス # method:: 未指定でよい。男は細かい事を気にするな。 # returns:: CAPTCHA画像解析結果(String) or nil (デコード失敗時) def self.decode(file, method = DeCAPTCHA::Site::YourFileHost) return method.new(file).decode end #= CAPTCHA画像デコード用クラス # このクラスのサブクラスはimport, tokenize, stream_parseメソッドの # 実装を含む必要がある。 class Site def initialize(file = nil) @pix = nil self.import(file) unless file.nil? end def decode return stream_parse(tokenize()) end end #= YourFileHostのCAPTCHA画像を解析するクラス class Site::YourFileHost < Site def import(file) @pix = PixelMatrix.new.import(file) return self end # importしたイメージ(PixelMatrix)から、文字と思わしきパターンを # 抽出して上下マージンを切り取ってArrayにして返す。 # returns:: Array of PixelMatrix def tokenize ret = [] state = :initial for x in 0...@pix.width case state when :initial if !@pix.vline_blank?(x) then state = :tokenize pixel = PixelMatrix.new(0, 0, true) ret << pixel redo end when :tokenize if @pix.vline_blank?(x) then state = :initial next end x0 = pixel.width for y in 0...@pix.height pixel[x0, y] = @pix[x, y] end else raise 'NOTREACHED' end end ret.map! {|token| Token.new.import(token.cutoff_vmargin!) } end # PixelMatrixのArrayを受け取り、数字を判別。 # tokens:: Array of PixelMatrix # returns:: String (判別結果) def stream_parse(tokens) rs = tokens.map {|x| x.guess.to_s }.join('') if rs.length != 4 then rs = nil if DEBUG then puts '- guess failed. dumping guess result of each token:' tokens.each_index do |i| print "##{i}:#{tokens[i].guess} " pp tokens[i].candidate end puts end end return rs end class Token @@digits = nil attr_accessor :candidate def initialize if @@digits.nil? then # 文字画像サンプルを作っておく @@digits = DIGITS_ASSOC.map {|digit| PixelMatrix.new(0, 0, true).import_array(digit) } end @candidate = Hash.new end # PixelMatrixを受け取り、文字画像サンプルと比較して # 一致率を計算しておく。 # pixel:: PixelMatrix # returns:: self def import(pixel) @@digits.each_index do |i| digit = @@digits[i] if (digit.width - pixel.width).abs > 4 or (digit.height - pixel.height).abs > 4 then @candidate[i] = -1 # サイズが違いすぎな場合、一致させない next end correct_bits = 0 enlarged_width = [digit.width, pixel.width ].max enlarged_height = [digit.height, pixel.height].max for y in 0...enlarged_height dy = (y.to_f / digit.height * enlarged_height).to_i py = (y.to_f / pixel.height * enlarged_height).to_i for x in 0...enlarged_width dx = (x.to_f / digit.width * enlarged_width).to_i px = (x.to_f / pixel.width * enlarged_width).to_i correct_bits += 1 if digit[dx, dy] == pixel[px, py] end end @candidate[i] = correct_bits * 100 / (enlarged_width * enlarged_height) end return self end # importのときの比較結果をもとに文字を推測 # returns:: Fixnum or nil(失敗時) def guess digit, ratio = @candidate.sort {|a, b| a.last <=> b.last}.last digit = nil if ratio < 0 or ratio < 65 return digit end end end #= 画素マトリックスクラス # 画像ファイルを食わせると、各ピクセル(画素)を2値(black(1) or white(0))に # 変換して、内部で保持する。 # 以後、Matrixクラスのような感じで個々の画素にアクセスできる。 class PixelMatrix BLACK = 1 WHITE = 0 attr_accessor :width attr_accessor :height # width:: 幅 # height:: 高さ # is_flexible:: 自動的に伸張するか def initialize(width = 0, height = 0, is_flexible = false) @matrix = Hash.new {|hash, key| hash[key] = Hash.new(WHITE)} @width, @height, @flexible = width, height, is_flexible end # file:: 画像ファイル名のパス # brightness_threshold:: 画素を黒とみなす閾値 (0 - 255, default: 0x40) # returns:: self (DeCAPTCHA::PixelMatrix) def import(file, brightness_threshold = 0x40) gd = GD2::Image.import(file) @width, @height = gd.width, gd.height self.each_with_axis do |x, y| color = gd[x, y] greyscale = (color.red + color.green + color.blue) / 3 self[x, y] = (greyscale > brightness_threshold) ? WHITE : BLACK end return self end def import_array(array) array.each_with_index do |str, y| str.split('').each_with_index do |c, x| self[x, y] = c.to_i end end return self end # PixelMatrixを画像ファイルとしてexport # file:: 新たに作る画像ファイル名のパス def export(file) gd = GD2::Image::IndexedColor.new(@width, @height) gd.palette << GD2::Color::WHITE gd.palette << GD2::Color::BLACK self.each_with_axis do |x, y| gd[x, y] = { WHITE => GD2::Color::WHITE, BLACK => GD2::Color::BLACK, }[self[x, y]] end gd.export(file) return self end # 指定された位置の画素を返す。 # returns:: PixelMatrix::BLACK(1) or WHITE(0) def [](x, y) if !@flexible and !in_range?(x, y) then raise RangeError end return WHITE if !@matrix.has_key?(y) # XXX: for optimize return @matrix[y][x] end # 画素に値を設定。 # returns:: PixelMatrix::BLACK(1) or WHITE(0) def []=(x, y, val) unless in_range?(x, y) then raise RangeError unless @flexible @width = (x >= @width) ? x + 1 : @width @height = (y >= @height) ? y + 1 : @height end @matrix[y][x] = val end def in_range?(x, y) ((0...@width) === x and (0...@height) === y) end # 指定された軸をもとに画素を走査し、Arrayに変換。 # 例えば、to_a(:vertical, 10) とすると、x == 10 な列を取り出して # Arrayにして返す。 # # axis:: 軸を指定 (:vertical または :horizontal) # pos:: 位置を指定。_axis_で指定した軸と直交する軸における位置を指定。 def to_a(axis, pos) {:vertical => lambda { (0...@height).map {|y| self[pos, y]} }, :horizontal => lambda { (0...@width).map {|x| self[x, pos]} }, }[axis].call end # returns:: Array def hline(y) self.to_a(:horizontal, y) end # returns:: Array def vline(x) self.to_a(:vertical, x) end # X軸方向に画素を走査。 # y:: どの位置で走査するか # returns:: 指定された軸の上にドットが存在: false, 無い: true def hline_blank?(y) return true if @matrix.has_key?(y) == false # XXX: for optimize for x in 0...@width return false if self[x, y] == BLACK end return true end # Y軸方向に画素を走査。 # x:: どの位置で走査するか # returns:: 指定された軸の上にドットが存在: false, 無い: true def vline_blank?(x) for y in 0...@height return false if self[x, y] == BLACK end return true end # 上下のマージンを削除した新しいPixelMatrixを返す。 # returns:: PixelMatrix def cutoff_vmargin pixel = PixelMatrix.new(0, 0, true) head = 0 tail = self.height - 1 head.upto(tail) do |y| if !self.hline_blank?(y) then head = y break end end tail.downto(head) do |y| if !self.hline_blank?(y) then tail = y break end end head.upto(tail) do |y| 0.upto(self.width - 1) do |x| pixel[x, y - head] = self[x, y] end end return pixel end # 自身の上下のマージンを削除する。cutoff_vmarginの破壊版。 # 速度稼ぎのために直接@matrixを触ったり、すこしずるをしている。 # 効率は、ほんの少しだけ速くなったような誤差の範囲のような感じ。 # returns:: self (PixelMatrix) def cutoff_vmargin! head = 0 tail = self.height - 1 head.upto(tail) do |y| if !self.hline_blank?(y) then head = y break end end tail.downto(head) do |y| if !self.hline_blank?(y) then tail = y break end @matrix.delete(y) if @matrix.has_key?(y) # XXX end if head > 0 then head.upto(tail) do |y| next if !@matrix.has_key?(y) # XXX @matrix[y - head] = @matrix.delete(y) # XXX end end self.height = tail - head + 1 return self end def each_with_axis for x in 0...@width for y in 0...@height yield(x, y) end end end end end class DeCAPTCHA::Site::YourFileHost::Token DIGITS_ASSOC = [ # 0 ["00000000011111110000000000", "00000001111111111110000000", "00000011111000001111000000", "00001111111100010011110000", "00011111100000110000111000", "00111111000000100001111000", "00111111110001000001111100", "01111111000010000011111110", "01111100000110000111111110", "01111111000100000111111110", "11111100001000001111111111", "11100000001000011111111111", "11111000010000011111111111", "11111000110000111111111111", "10000000100001111111111111", "01100001000001111111111110", "01100010000011111111111110", "01100010000111111111111110", "00111100000111111111111100", "00011100001111111111111000", "00001100011111111111111000", "00001111111111111111100000", "00000011111111111111000000", "00000000111111111100000000"], # 1 ["00001", "00111", "11111", "11111", "10001", "00001", "00001", "00001", "00001", "00001", "00001", "00001", "00001", "00001", "00001", "00001", "00001", "00001", "00001", "00001"], # 2 ["0000011111111110000000", "0001111111111111000000", "0011110000000010000000", "0110000000000100000000", "1100000000001100011110", "1000000000001000001111", "1000000000010000000111", "1000000000110001111111", "1000000000100001111111", "1000000001000000011111", "0100000011000001111111", "0011000010000111111110", "0011000110000001111110", "0000001100000111111100", "0000001000011111110000", "0000011000000111100000", "0000110000000000000000", "0000111111111111111111", "0001111111111111111110", "0011111111111111111100", "0011111111111111111100", "0111111111111111111000", "0111111111111111110000"], # 3 ["000000011111111110000000", "000001111111111111100000", "000011100000011111111000", "000111000000111111111000", "000110000001111111111100", "000100000001111111111100", "000100000011111111111100", "000110000111111111111000", "000010000111111111111000", "000000001111111111100000", "000000011111111111000000", "000000011111111110000000", "000000000000001100000000", "000000000000011100011100", "000000000000111000111110", "000000000000110000001110", "000000000001110001111111", "110000000011100011111111", "111000000111000000111110", "011100000110001111111100", "001111001110000111111000", "000011111100000011100000", "000000011000111000000000"], # 4 ["0000000000011", "0000000000011", "0000000000111", "0000000001111", "0000000001111", "0000000011111", "0000000111111", "0000000110111", "0000001100111", "0000011100111", "0000011000111", "0000110000111", "0001110000111", "0001100000111", "0011000000111", "0111000000111", "0111111111111", "1111111111111", "0000000000111", "0000000000111", "0000000000111", "0000000000111", "0000000000111"], # 5 ["000000001111111111111110", "000000011111111111111100", "000000111111111111111100", "000000111111111111111000", "000001111111111111110000", "000011100000000000000000", "000011011111111110000000", "000111111111111111000000", "001111100000000111000000", "001110000000000110001100", "000000000000000100011110", "000000000000001100000110", "000000000000011000011111", "000000000000011001111111", "000000000000110000011111", "000000000001100000111111", "110000000001100111111110", "011000000011000001111110", "011100000110000011111100", "001111000110011111111000", "000111111100001111110000", "000001111100000011000000", "000000001000011000000000"], # 6 ["000000000000000110000000", "000000010001111111111000", "000001110000011100111100", "000011100000011000001000", "000111000011111000000000", "001111000001110000000000", "001110000000111100000000", "011110001111111111100000", "011100000111000011110000", "011000000010000001111000", "011000011110000011111100", "010000111100000111111110", "100000001000000111111110", "100001111000001111111111", "000011110000011111111111", "000000100000011111111111", "000011100000111111111111", "001111000001111111111110", "000010000001111111111110", "001110000011111111111100", "000111000111111111111000", "000011111111111111110000", "000000111111111111000000", "000000000111111000000000"], # 7 ["0011111111111110001111", "0011111111111100000011", "0111111111111000000110", "1111111111111000111100", "1111111111110000001100", "0000000000000000011000", "0000000000000011111000", "0000000011000000110000", "0000001110000011100000", "0000011110001111100000", "0000111100000011000000", "0001111000000110000000", "0001111000111110000000", "0011110000001100000000", "0011110000001000000000", "0011100011111000000000", "0011000001110000000000", "0001000000110000000000", "0000000111100000000000", "0000000111000000000000", "0000000011000000000000", "0000001110000000000000", "0000001100000000000000"], # 8 ["0000000111111111110000000", "0000011111111111111100000", "0000001111100000011110000", "0000000001110000000111000", "0011000011111000000011100", "0011100001111100000011100", "0011110000001110000011100", "0001111000011111000111000", "0000111100000111101110000", "0000011110000001111100000", "0000001111000011111110000", "0000111111110000011111000", "0011110011111000001111100", "0111100001111100011111100", "0111000000111110000111110", "1111000000011111000000111", "1111000000001111100011111", "1111000000000011111000010", "0111100000000001111100000", "0011110000000000111110000", "0001111110000001111110000", "0000011111111111111000000", "0000000011111110000000000"], # 9 ["000000111111111110000000", "000001111111111111100000", "000111111111111001111000", "001111111111110000010000", "011111111111110000010000", "011111111111100000100000", "011111111111000001100000", "111111111110000001000111", "111111111110000010000001", "111111111100000110000111", "011111111000000100011111", "011111111000001000001111", "001111110000011000011111", "001111100000010001111110", "000111110000100000011110", "000001111111100000111110", "000000011111000111111100", "000000000010000001111100", "000000000110000001111000", "000100001100011111110000", "000111001100001111100000", "000011111000001111000000", "000000010000110000000000"], ] end __END__
最近、巷で噂の『 第3回日本ケータイ小説大賞:あたし彼女 』を読んでみた。
ケータイ小説といってもパソコンでも読むことは可能。(しかし絵文字は表示できない)
数ページ読み進めた所で思った。
本文を読む→次ページに進む→本文を読む→次ページに進む
これが結構なストレスになる。
1ページが短いので数秒で読み終わる。その度に改ページするのがめんどくさい。
とりあえず、50ページまで一気に取得する系。みたいな。
<html><body> <?php //表示するページ数を指定 for($i=300;$i<360;$i++){ $url = "http://nkst.jp/vote2/novel.php?auther=20080001&page=".$i; $con = @file_get_contents($url); //本文以外を削除する $con = eregi_replace("<a.href.*","",$con); eregi("<hr.*",$con,$array); $str = $str.$array[0]; } //表示 print $str; ?> </body></html>
でも実はPHPってあんまり触らないんだよね。
だからもっとうまいやり方があるんだろーなぁ。
補足大歓迎です。
みたいな。
Python2.5のときは、新スタイルクラスのインスタンスは辞書のキーとして必ず使用できたけど、Python 2.6ではそういうわけじゃなくなってるぽい。という話。
class TestClass(object): def __init__(self, i_name): self._name = i_name def __eq__(self, i_other): if not isinstance(i_other, TestClass): return False return self._name == i_other._name print 'object.__hash__ = ' + str(object.__hash__) print 'TestClass.__hash__ = ' +str(TestClass.__hash__)
上記のようなコードを実行したら、Python 2.5とPython 2.6で結果が違いました。
Python 2.5の場合の結果。
object.__hash__ = <slot wrapper '__hash__' of 'object' objects> TestClass.__hash__ = <slot wrapper '__hash__' of 'object' objects>
Python 2.6の場合の結果。
object.__hash__ = <slot wrapper '__hash__' of 'object' objects> TestClass.__hash__ = None
Python 2.6だと、objectクラスを継承すると、__hash__がNoneになっちゃってる。このままだと辞書のキーとして使えないね。objectを継承したクラスで__hash__を実装すれば、大丈夫みたい。
「ハッシュ値の計算方法 (2)」というページも参考になりそう。
http://namidame.2ch.net/test/read.cgi/news/1205255797/
Amazonほしい物リスト、個人情報漏れまくりで祭に発展|デジマガネット
このサービス、名前とメールアドレスのどちらかで検索することができるのだが、
このメールアドレスが曲者だ。率直に言おう。メールアドレスが分かれば
その人の本名を知ることができるのだ。
で、アフィとか貼ってるひとはアカウントからメルアドがばれて購入履歴がばれるに発展してるっぽ。
http://namidame.2ch.net/test/read.cgi/news/1205262805/1-100
これお届け先登録してあれば、その人のほしいものリストから商品をカートに入れると
あて先を登録した住所にできて、購入の最終確認までいけば住所確認できるぞ。
そんなわけでウイッシュリスト。あとはよろしく。
俺の購入履歴は素敵なほどまじめだ。
AmazonOK!
↓
伝説になったな。
今時Shift_JISでプログラミングするバカな奴はいないだろうけど折角まとめたので公開
| @ | [ | \ | ] | ^ | _ | ` | { | | | } | ~ | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 40 | 5B | 5C | 5D | 5E | 5F | 60 | 7B | 7C | 7D | 7E | |
| 81 | ー | ― | ‐ | / | \ | ?? | + | ?? | ± | × | |
| 82 | ・ | ・ | ・ | ・ | ・ | ・ | A | ・ | ・ | ・ | ・ |
| 83 | ァ | ゼ | ソ | ゾ | タ | ダ | チ | ボ | ポ | マ | ミ |
| 84 | А | Ъ | Ы | Ь | Э | Ю | Я | к | л | м | н |
| 85 | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
| 86 | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
| 87 | ?? | ?? | ?? | ?? | ・ | ?? | ?? | ・ | ・ | ・ | ?? |
| 88 | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
| 89 | 院 | 閏 | 噂 | 云 | 運 | 雲 | 荏 | 閲 | 榎 | 厭 | 円 |
| 8A | 魁 | 骸 | 浬 | 馨 | 蛙 | 垣 | 柿 | 顎 | 掛 | 笠 | 樫 |
| 8B | 機 | 擬 | 欺 | 犠 | 疑 | 祇 | 義 | 宮 | 弓 | 急 | 救 |
| 8C | 掘 | 啓 | 圭 | 珪 | 型 | 契 | 形 | 鶏 | 芸 | 迎 | 鯨 |
| 8D | 后 | 梗 | 構 | 江 | 洪 | 浩 | 港 | 砿 | 鋼 | 閤 | 降 |
| 8E | 察 | 纂 | 蚕 | 讃 | 賛 | 酸 | 餐 | 施 | 旨 | 枝 | 止 |
| 8F | 宗 | 充 | 十 | 従 | 戎 | 柔 | 汁 | 旬 | 楯 | 殉 | 淳 |
| 90 | 拭 | 深 | 申 | 疹 | 真 | 神 | 秦 | 須 | 酢 | 図 | 厨 |
| 91 | 繊 | 措 | 曾 | 曽 | 楚 | 狙 | 疏 | 捜 | 掃 | 挿 | 掻 |
| 92 | 叩 | 端 | 箪 | 綻 | 耽 | 胆 | 蛋 | 畜 | 竹 | 筑 | 蓄 |
| 93 | 邸 | 甜 | 貼 | 転 | 顛 | 点 | 伝 | 怒 | 倒 | 党 | 冬 |
| 94 | 如 | 納 | 能 | 脳 | 膿 | 農 | 覗 | 倍 | 培 | 媒 | 梅 |
| 95 | 鼻 | 票 | 表 | 評 | 豹 | 廟 | 描 | 府 | 怖 | 扶 | 敷 |
| 96 | 法 | 房 | 暴 | 望 | 某 | 棒 | 冒 | 本 | 翻 | 凡 | 盆 |
| 97 | 諭 | 夕 | 予 | 余 | 与 | 誉 | 輿 | 養 | 慾 | 抑 | 欲 |
| 98 | 蓮 | 麓 | 禄 | 肋 | 録 | 論 | 倭 | ・ | ・ | ・ | ・ |
| 99 | 僉 | 兌 | 兔 | 兢 | 竸 | 兩 | 兪 | 几 | 處 | 凩 | 凭 |
| 9A | 咫 | 喙 | 喀 | 咯 | 喊 | 喟 | 啻 | 嘴 | 嘶 | 嘲 | 嘸 |
| 9B | 奸 | 媼 | 媾 | 嫋 | 嫂 | 媽 | 嫣 | 學 | 斈 | 孺 | 宀 |
| 9C | 廖 | 彈 | 彌 | 彎 | 弯 | 彑 | 彖 | 悳 | 忿 | 怡 | 恠 |
| 9D | 戞 | 拏 | 拿 | 拆 | 擔 | 拈 | 拜 | 掉 | 掟 | 掵 | 捫 |
| 9E | 曄 | 杣 | 杤 | 枉 | 杰 | 枩 | 杼 | 桀 | 桍 | 栲 | 桎 |
| 9F | 檗 | 歇 | 歃 | 歉 | 歐 | 歙 | 歔 | 毬 | 毫 | 毳 | 毯 |
| E0 | 漾 | 濕 | 濬 | 濔 | 濘 | 濱 | 濮 | 炮 | 烟 | 烋 | 烝 |
| E1 | 瓠 | 畆 | 畚 | 畩 | 畤 | 畧 | 畫 | 痣 | 痞 | 痾 | 痿 |
| E2 | 磧 | 禺 | 秉 | 秕 | 秧 | 秬 | 秡 | 窖 | 窩 | 竈 | 窰 |
| E3 | 紂 | 綣 | 綵 | 緇 | 綽 | 綫 | 總 | 縵 | 縹 | 繃 | 縷 |
| E4 | 隋 | 膽 | 臀 | 臂 | 膺 | 臉 | 臍 | 艝 | 艚 | 艟 | 艤 |
| E5 | 蕁 | 藜 | 藹 | 蘊 | 蘓 | 蘋 | 藾 | 蛔 | 蛞 | 蛩 | 蛬 |
| E6 | 襦 | 觴 | 觸 | 訃 | 訖 | 訐 | 訌 | 諚 | 諫 | 諳 | 諧 |
| E7 | 蹇 | 躰 | 軆 | 躱 | 躾 | 軅 | 軈 | 轆 | 轎 | 轗 | 轜 |
| E8 | 錙 | 鐚 | 鐔 | 鐓 | 鐃 | 鐇 | 鐐 | 閔 | 閖 | 閘 | 閙 |
| E9 | 顱 | 饉 | 饅 | 饐 | 饋 | 饑 | 饒 | 驅 | 驂 | 驀 | 驃 |
| EA | 鵝 | 鷦 | 鷭 | 鷯 | 鷽 | 鸚 | 鸛 | 黠 | 黥 | 黨 | 黯 |
| EB | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
| EC | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
| ED | 纊 | 倞 | 偆 | 偰 | 偂 | 傔 | ?? | 垬 | 埈 | 埇 | ?? |
| EE | 犾 | 劯 | 砡 | 硎 | 硤 | 硺 | ?? | 葈 | 蒴 | 蕓 | 蕙 |
| EF | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
| F0 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| F1 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| F2 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| F3 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| F4 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| F5 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| F6 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| F7 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| F8 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| F9 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
| FA | ?? | ∵ | 纊 | 褜 | 鍈 | 銈 | 蓜 | 傔 | ?? | 僘 | 兊 |
| FB | 涖 | 犱 | 犾 | 猤 | ?? | 獷 | 玽 | 硺 | ?? | ?? | ?? |
| FC | 髜 | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
| 40 | 5B | 5C | 5D | 5E | 5F | 60 | 7B | 7C | 7D | 7E | |
| @ | [ | \ | ] | ^ | _ | ` | { | | | } | ~ |
# ちなみに「??」って表示されてるのはまー外字部分だしそんなに気にしなくていいかと
これらの文字コードには気をつけること。
特に2バイト目が5C(\)ものは要注意。
"や'と引っ付くのでまともにプログラミングできない。
print '予定表'; print "無能";
特にPerlの場合は文字列中に展開できる構文が多いのもあり、色々なエラーを出せるので注意が必要だ。
print qq[夕焼け小焼け]; # 「夕」の2バイト目でエラー print "警察24時!"; # @24という変数とみなされる
また、正規表現でも厄介な問題が起きまくるので注意すべし。
my $str = 'ダ'; print 'match' if $str =~ /_/; # マッチしちゃう
こういう様々な理由からShift_JISでプログラミングをしてはいけないわけだ。
だからUTF8を使うべきだ。UTF8が無理でもせめてEUC-JPのどちらかでプログラミングすることをオススメする。
まーEUC-JPはEUC-JPでShift_JISと一部文字コードが重なっているので正直扱いにくいのでやっぱりUTF8を強く推奨する。
$_POST = array_map('htmlspecialchars', $_POST);
$_GET = array_map('htmlspecialchars', $_GET);
$HTTP_COOKIE_VARS = array_map('htmlspecialchars', $HTTP_COOKIE_VARS);
//$_SERVER = array_map('htmlspecialchars', $_SERVER);
$_SERVER['HTTP_USER_AGENT'] = htmlspecialchars($_SERVER['HTTP_USER_AGENT']);
$_SERVER['PHP_SELF'] = htmlspecialchars($_SERVER['PHP_SELF']);
//改行コード→改行タグ
function del_tag($str) {
return $str = str_replace("\r\n", "<br>", $str);
}
$_POST = array_map("del_tag", $_POST);
$_GET = array_map("del_tag", $_GET);
$HTTP_COOKIE_VARS = array_map('del_tag', $HTTP_COOKIE_VARS);
$_SERVER['HTTP_USER_AGENT'] = del_tag($_SERVER['HTTP_USER_AGENT']);
$_SERVER['PHP_SELF'] = del_tag($_SERVER['PHP_SELF']);
//タブ除去
function del_tab($str) {
return $str = str_replace("\t", "", $str);
}
$_POST = array_map("del_tab", $_POST);
$_GET = array_map("del_tab", $_GET);
$HTTP_COOKIE_VARS = array_map('del_tab', $HTTP_COOKIE_VARS);
$_SERVER['HTTP_USER_AGENT'] = del_tab($_SERVER['HTTP_USER_AGENT']);
$_SERVER['PHP_SELF'] = del_tab($_SERVER['PHP_SELF']);
セキュリティ全然詳しくないだけども・・・
例えばこんな感じのファイルを置いてから、最初に
require 'secure.php';
そのファイルをincludeするように先頭に書いておくだけで、いろんなサニタイズとかを一気にやってくれるような仕組みってないのかな(SQLインジェクションとやらもちゃんと防げるようにして)。
http://anond.hatelabo.jp/20071021143442
その理由は知らないが、なければ作ればいいじゃないか。
class MyString(str): def length(self): return len(self)
というクラスを作って
string = MyString("Hello world") print string.count("o"), string.length()
とRubyライクにやれば
2 11
とでるよ。え、リストもlist.length()が使いたいって?それも簡単。
class MyList(list): def length(self): return len(self) l = MyList([1, 2, 3, 4, 5, 6]) l.length()
6
きちんと他のメソッドも使えるよ。
l[1:]
[2, 3, 4, 5, 6]
l.reverse() l
[6, 5, 4, 3, 2, 1]
ね。簡単でしょ。
Pythonは仕組みが統一されているものが多いので、いじりやすいのですよ。上の例のやつは組み込みのクラスオブジェクトとユーザー定義のクラスオブジェクトがおおむね統一されているからこそ簡単にできる。他にも関数なんかもほかのオブジェクトと同じオブジェクトなので、高階関数なんてもの簡単に作ることができて関数プログラミングぽくできる。例えば今はなきapply関数なんかは
def myApply(func, *args): return func.__call__(*args)
と定義できる。実際に
def sumUpThree(num1, num2, num3): return num1 + num2 + num3
でためしてみる。
myApply(sumUpThree, 1, 2, 3)
結果はちゃんと
6
とでる。将来廃止されそうなmap関数も簡単に定義できる。他にも複数の引数をもつ関数の部分適用のようなことを行う関数も次のように簡単に定義できる。
def partial(func, *oldArgs): def wrapper(*newArgs): return func.__call__(*(oldArgs + newArgs)) return wrapper
sum_1 = partial(sumUpThree, 1) sum_1(2, 3)
6
sum_1_5 = partial(sum_1, 5) sum_1_5(9)
15
sum_10_20 = partial(sumUpThree, 10, 20) sum_10_20(30)
60
こういう風に高階関数が簡単にできるのは関数がオブジェクトで関数の実行とはメソッドの呼び出しにすぎないからだ。以上のように組み込みオブジェクトとユーザー定義オブジェクトの差があまりないことや関数もオブジェクトであることに見られるようにPythonは仕組みが統一されていてシンプルだ。そのためひとつのことがわかれば他のこともわかることが多いし、簡単にいじることもできる。
だからなければpythonをいじればいいと思うよ。
最後にラムダ式信者のためにpartialをラムダ式を使って書いておく。
def partial(func, *oldArgs): return lambda *newArgs:func.__call__(*(oldArgs + newArgs))
やってしまった・・・。
方針:
package SixtyLinesTemplate; use strict; use warnings; our $VERSION = '0.01'; sub convert { return unless defined(my $str = shift); $str =~ s{&}{&}gso; $str =~ s{<}{<}gso; $str =~ s{>}{>}gso; $str =~ s{\"}{"}gso; $str; } sub include_template { my $tmpl = shift; my %c = %{+shift}; eval convert_template($tmpl); die $@ if $@; } sub convert_template { my $tmpl = shift; my $cache = $tmpl.'.cache'; return scalar do { open my ($FH) , $cache; local $/; <$FH> } if ( -f $cache && (stat($tmpl))[9] <= (stat($cache))[9] ); my $out = do { open my ($FH) , $tmpl; local $/; <$FH> }; $out =~ tr/()/\x28\x29/; $out =~ s/\[%\s*(foreach|if|unless|end)\s*(.+?)\s*{?\s*%\]/");".(lc($1) eq 'end' ? '} print q(' : "$1 $2 { print q(")/ige; $out =~ s/\[%(.+?)%\]/);print $1; print q(/g; $out =~ s/\[#(.+?)#\]/);print SixtyLinesTemplate::convert($1); print q(/g; $out = 'print q('.$out.');'; open my ($FH) , '>' , $cache; print $FH $out; $out; } 1;
サンプルコード:
use SixtyLinesTemplate; my $context = { 'title' => 'Example', 'list' => [10,'<A&B>'] }; SixtyLinesTemplate::include_template('template.tmpl',$context);
サンプルテンプレート:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>[# $c{title} #]</title> </head> <body> <h1>[# $c{title} #]</h1> <table> [% foreach my $i (0..@{$c{list}}-1) %] <tr bgcolor="[% $i % 2 ? '#FFCCCC' : '#CCCCFF' %]"> <td>[% $i %]</td> <td>[# $c{list}[$i] #]</td> </tr> [% end %] </table> </body> </html>
出力例:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Example</title> </head> <body> <h1>Example</h1> <table> <tr bgcolor="#CCCCFF"> <td>0</td> <td>10</td> </tr> <tr bgcolor="#FFCCCC"> <td>1</td> <td><A&amp;B></td> </tr> </table> </body> </html>
foreachんところが汚く見えるかもしれませんが、あれは添え字を取ろうとするとああなるんでご勘弁を。
普通にループするだけならforeach my $item (@$c{title}) でいけますゆえ。
あと存在しない変数とか使うと死んだり警告でたりするのでevalの前にno strictとno warningsをやった方がいいかもねぇ。
って何まじめに検証してんだ俺・・・orz
追記:
SixtyじゃなくてFortyだね。恥ずかし!
追追記:
でも&amp;の奴はちゃんと書いてるんだけども投稿すると勝手にエスケープされてしまってるんだよね。何でだろ?
ちなみにこのconvertの処理はCGI::Utilから拝借しました。
紅楼夢のなんか主観的な適当にそんなの気に食わないなら読まないほうがよろしい気分が落ち込んでも責任は取りませんと言うか取れるわけも無いし取りたくもない 18禁と言うか18以下がこんなの見てないでさっさと将来悲観して自殺でもしなさい大人になっても良いことは別にない サークル名 ペンネーム ホームページ 画像など 余計な一言の順 下に合同誌とかそんなの 東方紅楼夢 参加サークル一覧 (2007/09/14確定) *サークル名五十音順、 As-Zadkiel 鈴乃音彼方 http://www.geocities.jp/plastic_harmony/ http://www.geocities.jp/plastic_harmony/irasuto/Princess_patyu_a.jpg http://www.geocities.jp/plastic_harmony/doujinshi/C72_sample01.jpg http://www.geocities.jp/plastic_harmony/doujinshi/C72_sample05.jpg そこはかとなくというには激しく顔がおかしく見える全体的にバランスが微妙 Artistic Imitation 虹階、藍川樹 http://www.k5.dion.ne.jp/~triortre 「東方主従録 第弐節」でございます。もちろん、SSです。藍川さんの挿絵も当然入ります。 との事 EARNESTLY JET CITY 小嶋,佐々木,蒼雅 http://remiliareimu.seesaa.net/ http://remiliareimu.up.seesaa.net/image/pac.jpg http://remiliareimu.up.seesaa.net/image/1A1A1A1A1A1A1A1AQ.jpg http://remiliareimu.up.seesaa.net/image/1A1A1A1A1A1A1A1AP.jpg http://remiliareimu.up.seesaa.net/image/dakiiiiiiiiiiiiiiiiiiiiiiii.jpg 霊夢&霊夢 妄想Lunatic というエロゲ完成版で良いのかあと抱き枕?ブログなのはもうしょうがないけれど、分かりやすく情報を纏めて欲しいと常々 青 ヨハネ http://sangensei.okoshi-yasu.com/ http://sangensei.okoshi-yasu.com/img028.jpg http://sangensei.okoshi-yasu.com/img027.jpg http://sangensei.okoshi-yasu.com/img001.jpg http://sangensei.okoshi-yasu.com/img002.jpg http://sangensei.okoshi-yasu.com/img004.jpg http://sangensei.okoshi-yasu.com/img006.jpg 陰影のつけ方が強いのかその割には明るい方向が弱い感じ虹彩を増やすと良いかもしれないと思ったまあ上のほうにそう見える絵が多かったせいか 蒼空市場 蒼 http://www7a.biglobe.ne.jp/~aozora-market/ http://www7a.biglobe.ne.jp/~aozora-market/suwako01.jpg http://www7a.biglobe.ne.jp/~aozora-market/flan2.jpg http://www7a.biglobe.ne.jp/~aozora-market/yukarin2.jpg http://www7a.biglobe.ne.jp/~aozora-market/02.gif 青だの蒼だの逆にここは虹彩が激しすぎる感じ目に痛い色塗りに力入れてるんだろうけど髪の毛の線なんか細いけれど体の線を引くのは余り得意じゃなさそうまあ一枚絵が上手い人が描く漫画が面白いとも言わないそもそも上手いとも言わない 青空給食 コトブキ HPなしかな C72とかにでてたらしいです 蒼空の丘 蒼井さつき http://aoi-aozora.hp.infoseek.co.jp/ http://aoi-aozora.hp.infoseek.co.jp/illust/junk_toho/070413.jpg http://aoi-aozora.hp.infoseek.co.jp/illust/junk_toho/070116.jpg http://aoi-aozora.hp.infoseek.co.jp/illust/toho/060926.jpg http://aoi-aozora.hp.infoseek.co.jp/illust/toho/060626reimu.jpg 実に普通です間違いなく記憶に残りませんがこれからも地道にがんばってください 碧弐の伊呂波 伊造 http://homepage2.nifty.com/izou/ http://homepage2.nifty.com/izou/gallery/syotyuumimai2007.jpg http://homepage2.nifty.com/izou/gallery/natukomikansya.jpg http://homepage2.nifty.com/izou/gallery/ataisaikyou2.jpg http://homepage2.nifty.com/izou/gallery/sample013.jpg http://homepage2.nifty.com/izou/gallery/sample012.jpg カラーは結構アニメ調のポップな絵でそれなりと思いかけたけれど気のせいですねなれた構図以外だと崩れてる?というか目が気になってしょうがない あかい☆きつねあきの りょう http://www5.ocn.ne.jp/~red-fox/ http://www5.ocn.ne.jp/~red-fox/IMG/webryugi.jpg http://www5.ocn.ne.jp/~red-fox/IMG/akatukiww.jpg http://www5.ocn.ne.jp/~red-fox/IMG/koma_cut_format.jpg レミリア・スカーレット合同誌に参加します。 あかだのあおだの本当に多いなあと 紅い紅茶 KOKOA http://kokoacafe.sblo.jp http://kokoacafe.sakura.ne.jp/sblo_files/kokoacafe/image/DSC01855.JPG http://kokoacafe.sakura.ne.jp/sblo_files/kokoacafe/image/DSC01856.JPG 台湾とかの即売会?に出たとかどうとかその行動力は普通にすごいと思う。見習いたくはない絵・音楽・グッツどっちつかずの迷い道とのことで何を作るのかわかりませんそもそも更新がないけれど生きて帰ってきてるのか 紅いつけ物 えぬてい http://akaitsukemono.sakura.ne.jp/ http://akaitsukemono.sakura.ne.jp/reisen01.jpg http://akaitsukemono.sakura.ne.jp/yuyuko01.jpg http://akaitsukemono.sakura.ne.jp/lunachild01.jpg http://akaitsukemono.sakura.ne.jp/rumia-mahjong-01.jpg くっきりはっきり分かれた絵ですね画像大きいですねがんばってください AKACIA 銀一 http://bullish.fc2web.com/ http://bullish.fc2web.com/illustration/07080601.jpg http://bullish.fc2web.com/illustration/07080602.jpg http://bullish.fc2web.com/illustration/07080603.jpg http://bullish.fc2web.com/illustration/07080607.jpg http://bullish.fc2web.com/illustration/06080701.jpg http://bullish.fc2web.com/illustration/06080702.jpg 徒歩に似た匂いがするガチバトルですか絵自体は綺麗に見えたけれど頭身が高すぎる正直バトルとかいりませんから あかちょこ 紅乃 http://www.xn--l8jsy9c4k.jp/ 二人でやっているサークル?どちらも絵が微妙にのっぺりしている東方について欠片も触れたところのないページでハルヒだのなんだの言っていてとても不安です 紅の碧落 岳る 今まで活動など見つからないと言うか名前とかなんて読むんだこれたける?ダミーぽい AXEL7 羽瀬ななせ http://hase7se.ame-zaiku.com/ http://hase7se.ame-zaiku.com/media/yakumo01.jpg http://hase7se.ame-zaiku.com/media/udon03.jpg http://hase7se.ame-zaiku.com/media/myon01.jpg http://hase7se.ame-zaiku.com/media/aya01.jpg http://hase7se.ame-zaiku.com/media/sakuya01.jpg http://file.hase7se.blog.shinobi.jp/dfc32591.jpg http://file.hase7se.blog.shinobi.jp/db10b39b.jpg 過不足なく上手です言う事がない 浅香山黒板部 Nowell http://www.kokubanbu.com/ http://www.kokubanbu.com/image/top.jpg 東方紅楼夢参加決定しましたが、サイトが間に合ってないよ!完成予定は8月中ごろなので、もうしばらくお待ち下さい。 違う時の中を生きてる気がしてならない あさつき堂 うがつまつき http://asatsukido.moryou.com/index.html http://asatsukido.moryou.com/55.jpg http://asatsukido.moryou.com/58.jpg http://asatsukido.moryou.com/48.jpg 原作のままな絵を描いたことありますか?それっぽい感じを出そうとしすぎて違和感があるミッシングとか断章のグリムとかそれっぽいけれど中身の伴わないものに似ている あと棘とかで名前が出ていたような。絵板スレだったも知れないけれどようやく名前と絵が一致しました ACID CLUB EAST nagare http://acidclub.sakura.ne.jp/ http://acidclub.sakura.ne.jp/br6-hyousi.jpg http://acidclub.sakura.ne.jp/oh03.jpg http://acidclub.sakura.ne.jp/avsksample.jpg フラッシュとか作っているところですね壊れ系でキャラのイメージを固めた事もあって余り良い印象をもてない絵はまあ地味 az az http://az.que.jp/ http://az.que.jp/gift/giftrabel.jpg http://az.que.jp/imb_blog/20070917az1_kazehahuri.jpg http://az.que.jp/web/685.jpg http://img.toranoana.jp/popup_img/04/0010/13/02/040010130217-3p.jpg 何十年代なのか分からないけれど昔風カラー普通に描けば普通に上手い。4コマも結構好きでした中の人のことは知るものじゃないです坊主を嫌うとどうしても純粋に見れないもので本人と知り合いとかそういうのではないよ 後思案計画 地上屋 出てこないわけです AfternoonT 検索しようがない あまとう こよみ かなり検索しづらいですよ(^^ここら軒並みダミーサークルかと こよみとかどっかの漢字三文字を思い出すんだけれど あみだ屑佐野 さのこ http://amidakuzu.blogspot.com/ http://bp2.blogger.com/_wS1C6g9vYLc/Rt4vT8yX8DI/AAAAAAAAAHs/G7E_QmVA_DE/s1600-h/page.jpg http://bp0.blogger.com/_wS1C6g9vYLc/Rt4xLcyX8EI/AAAAAAAAAH0/FPucA9RxU3g/s1600-h/ã??šã????ã??¸ã????ã??¡ã??¤ã????.jpg http://bp0.blogger.com/_wS1C6g9vYLc/Rrh72AK6MpI/AAAAAAAAAG8/jlMxS8J13K8/s1600-h/æš‘ä¸??ã??Šè¦??è??žã????ã????ã????ã??°png.png http://bp1.blogger.com/_wS1C6g9vYLc/Rns2dFycoKI/AAAAAAAAADk/d9uhMXIO6YI/s1600-h/è????æ??¸ã????.jpg お上手で羨ましいほどにURLの文字列は転載防止のためかなひぐらしの漫画のどれかを描いていた人の絵とイメージが被る あめだまひとつぶ。 あめ。 以前から紅楼夢に参加しているようですHPはないのかな 歩いて行きまっしょい!! 遊歩道 http://aruite1024.web.fc2.com/ http://aruite1024.web.fc2.com/hinatyan.jpg http://aruite1024.web.fc2.com/misuti01.jpg http://aruite1024.web.fc2.com/misusenga.jpg 背景も描こうとするのは良いことだと思いますけれど立体感がありません角度の付いた絵はどれも首をかしげるようなものです中々これを修正するのは大変だと思いますが頑張ってくださいあと全体のバランスをたまに一旦眼を離して遠くから見直すと良いかとついでに男性と女性の描き分けの練習もどうぞ 歩いていく空想屋 アルマ ちょっとどうなのか判断できない あるふ??と めーり http://nagika.topaz.ne.jp/ http://nagika.topaz.ne.jp/gl/toho_000094.png http://nagika.topaz.ne.jp/books/cc071104.jpg ちょっと判断できない アンニュイ赤蛸 たこ http://takotakonet.sakura.ne.jp/ http://takotakonet.sakura.ne.jp/ilust/toho/ayyyy.jpg http://takotakonet.sakura.ne.jp/ilust/toho/sana.jpg まあいまさら何を言う事もない動きのある絵はまだ苦手なのか少し絵が硬くなったような平たく言えば下手になった気がする あん@らぼ しぐれM http://www.geocities.jp/nip_sigurem/ 今回は おすわりPOP Project とか言う事をやってます正直これは誰が喜ぶんだ 個人では何かをするつもりはないのか いーえむふぁんたずむ 間崎えいじ http://masaki-eiji.sakura.ne.jp/ http://masaki-eiji.sakura.ne.jp/2007/070903.jpg http://masaki-eiji.sakura.ne.jp/2007/070823.jpg http://masaki-eiji.sakura.ne.jp/2007/070821.jpg http://masaki-eiji.sakura.ne.jp/2007/070409.jpg http://masaki-eiji.sakura.ne.jp/2007/070419.jpg 何とも言えず微妙一番上は激しく誰てめ絵 生駒蓮華堂 生駒 忠治 以前のイベントに参加してた模様 石ろこ 石ろこ さりげなく付き合いのあるページは見つかりましたHPはないんでしょう多分 IZMIZM izna http://izmizm.sakura.ne.jp アレンジ いそため 秋野落葉 http://isotame.fc2web.com/ 何と言うかいきなりポップアップ開いたりこのサイトは行かない方が良いかもスパイウェアとかしこまれるかもね☆ と言うかなんでこのURLなんだ いのちのふるさと たぽ http://inofuru.fc2web.com http://f28.aaa.livedoor.jp/~inohuru/images/nitori.jpg http://f28.aaa.livedoor.jp/~inohuru/images/tilennrann.jpg 高校生の時に月姫の本を描いていた人ですいえ別に18禁だったよななんて思っていませんジャンプ系のネタを多用するギャグ漫画ばかり描いていた人です二次創作なのになんでわざわざ他の作品のキャラに置き換えるとか全然思ってません頑張って絵柄を似せてるなあとは思った 異文家めげぷ??莢 結構他のイベントに参加しているようです Imitation Room 野瀬裕一 http://www.imitationroom.com/ http://www.imitationroom.com/doujin/cm72/noface.jpg http://www.imitationroom.com/doujin/cm72/noface03.jpg 頑張ってください いよかん。 ほた。 http://hotaiyokan.blog86.fc2.com/ http://blog-imgs-10.fc2.com/h/o/t/hotaiyokan/563260402_132.jpg http://blog-imgs-10.fc2.com/h/o/t/hotaiyokan/20070908152626.jpg http://daruman.at.infoseek.co.jp/utage/utage5.jpg http://daruman.at.infoseek.co.jp/utage2/utage4.jpg あくが無いさっぱりした絵二次ネタに頼っていない感じがしてこういうのは好きですがちがちのシリアスはちょっとあれですが IncluDe ふぅりすと http://include.matrix.jp/ http://include.matrix.jp/image/junk163.jpg http://include.matrix.jp/image/junk161.jpg 絵柄と合っているのは知りませんががっちがちの18禁お好みでどうぞ interim 阿佐ヒナ http://fw-rise.sub.jp/east/ http://fw-rise.sub.jp/east/pwrigle.jpg http://fw-rise.sub.jp/east/pkaguya.jpg http://fw-rise.sub.jp/east/lettyw.jpg どれもこれも同じような顔と目に見えますけど割りと上手なのかな?塗りは綺麗で良いと思います WAVEDRIVE SIV http://www006.upp.so-net.ne.jp/ochadokoro/toho_ss_mc.htm アレンジはるのひとの絵だけください Watergate Ruin 伊関ミツハル http://watergateruin.iza-yoi.net/ http://watergateruin.iza-yoi.net/illust/circle-cut.jpg http://watergateruin.iza-yoi.net/Gallery/gallery1.jpg http://watergateruin.iza-yoi.net/Gallery/gallery2.jpg まあ反応しづらいくらい普通です頑張ってください WATER■DUCTS 名無さん http://untitled-774.hp.infoseek.co.jp/ http://untitled-774.hp.infoseek.co.jp/gazou/wd.JPG http://untitled-774.hp.infoseek.co.jp/gazou/205908.jpg 欠片もやる気が感じられない気がする今日この頃皆さんいかがお過ごしでもどうでも良いです絵板のほうには見れる絵はありますがご本人の絵なのか分からないのでのせませんでした絵板もそうだし、人を選びそうなサークルでしょうきっと ウサギてゐ☆ 因幡 どういう神経してればこういうサークル名とかつけるんでしょうね 牛半殺し まちょー http://honmagu.hp.infoseek.co.jp/ HPへのリンク間違ってる http://blog72.fc2.com/m/matyooo/file/iroiro.jpg 余りやる気はないようです 有造無造 鈴音 千葉耶 http://uzoumuzou.fc2web.com/ http://uzoumuzou.fc2web.com/image/messa-0708003-01.jpg だそうで 歌えない太平洋 夏那瀬秋穂 http://www.saturn.dti.ne.jp/~kanase/ http://www.saturn.dti.ne.jp/~kanase/YOYOGI_S.jpg http://www.saturn.dti.ne.jp/~kanase/CG/udonge3.jpg 何度もこういう風に纏めると面倒だと思うこともある何故本人は顔の平面差と目の大きさが気にならないのか気になっていても直せないのかまあそんな感じ 空木幽幻 saboten http://uturogi.hp.infoseek.co.jp/ http://uturogi.hp.infoseek.co.jp/niki/20070816_lumia_06.jpg http://uturogi.hp.infoseek.co.jp/niki/20070805_lumia_04.jpg http://uturogi.hp.infoseek.co.jp/niki/20070731_lumia_02.jpg http://uturogi.hp.infoseek.co.jp/niki/20070731_lumia_01.jpg http://uturogi.hp.infoseek.co.jp/niki/20070605_lumia_03.jpg http://uturogi.hp.infoseek.co.jp/niki/20070523_kataga_01.jpg http://uturogi.hp.infoseek.co.jp/niki/20070510_reimu_02.jpg それなりに上手かなあと思って上から見ていったら皆同じような表情で俺はもう少し他の形に行って見ても良いかもしれない 宇部ソフトウェア技術研究所 骨折飲料 http://www.fmp.jp/~kossetsu/ アレンジ 海鴎髭 シーガルって読むんですかね参加イベントは見つかりましたがHPはないようです多分 うみねこ亭 おしるこ http://uminekotewi.x0.com/ http://uminekotewi.x0.com/TOP20070908.jpg http://uminekotewi.x0.com/CG/B004/B004top20070908.jpg http://uminekotewi.x0.com/CG/A013/hina1.jpg あちこちイベント参加しまくってるようですね暇なのか時間を作り出してるのか絵は前からさほど上手くなっているような気もしませんが上手くなってるのかな塗りは綺麗になってきている気はします うらみち通り らじねす 紅楼夢の件が引っかかるくらいです ウルフルズ 卯月なんとか http://nan.babymilk.jp/ http://blog17.fc2.com/n/nantokasan/file/29.jpg http://blog17.fc2.com/n/nantokasan/file/28.jpg 上手いですよね手とかでも目が全部同じに見えるんですあと本の中で中の人を押し出すような内輪話とかいまいち Azure&Sands 鯛の小骨 http://bunbun-aya.ath.cx/~tainokobone/ アレンジ エヴァラ 若鶏 何処の焼肉のたれかと思いましたが参加暦も見つかりましたウェットにとんだ毒ギャグがミーのハートをガッチリキャッチですね らしいです A・L 殿様 http://tonosa.hp.infoseek.co.jp/altop.htm http://tonosa.hp.infoseek.co.jp/001.JPG http://tonosa.hp.infoseek.co.jp/015.JPG http://tonosa.hp.infoseek.co.jp/070321b.JPG 結構前からいる人な気がしますがぜんぜんですね上手くはなっているのだろうけれど致命的に絵が可愛くないというか人の絵が微妙 エカナテテ 若山摩知 http://ekanatete.web.fc2.com/ http://ekanatete.web.fc2.com/picture/info/eiyuuka3.jpg http://ekanatete.web.fc2.com/picture/hanken/070325-suika-jishin.jpg http://ekanatete.web.fc2.com/picture/info/sakuranbo.jpg 可愛いとは思うけれど目が変それ以外目に入らない えきたいきんぞく ぎんさん http://www7a.biglobe.ne.jp/~metal_over_man/ ここの人の同士らしいです同士ってなんだ SCN 葵 実樹 http://www.saikoroclub.net/ http://blog71.fc2.com/s/scn/file/kz1_jacket_01.jpg http://blog71.fc2.com/s/scn/file/kz_ss_10.jpg http://blog71.fc2.com/s/scn/file/kz_ss_06.jpg 東方サウンドノベル「空即是紫記??Emptiness in the True Memory.」 オリジナルサントラ「空即是紫記音源録?? ??TOHO TEMPEST EXTRA.」 この辺りの再販でしょう多分 NZKSTYLE bell 驚くほど何も出ない N' なにわうぐぅ Tシャツとか作ってるところかな言葉は悪いけど金のためにやってるようなサークルか F.m.l えだ 見つかりませんダミーっぽい MMD トキチ http://homepage2.nifty.com/MMD/ http://homepage2.nifty.com/MMD/070512top.jpg http://homepage2.nifty.com/MMD/060527.jpg 模型?ガレキ?フィギュア?まあ何でも良いけれど上のを見る限り余り上手いとは思えません更新が遅いので刮目してみるべきな可能性もありますが、まあほぼありえないでしょうあと趣味は個人の勝手で良いけれど、プロフィールにあんな写真があると引く MxM-Factory 水無月あくあ http://homepage2.nifty.com/~aqua/index.html http://homepage2.nifty.com/~aqua/poprumya.jpg http://aquaneko.cocolog-nifty.com/.shared/image.html?/photos/uncategorized/2007/08/11/koa.jpg http://aquaneko.cocolog-nifty.com/./photos/uncategorized/2007/08/06/oppatyu.jpg みすちー、るーみあ合同誌に参加したそうです 下手ではないかもしれないけれど上手でもない細部まで書き込むような絵柄ではないですね M.O.S K助スケ http://mo-sky.hp.infoseek.co.jp http://mo-sky.hp.infoseek.co.jp/imgl/natuerin.jpg http://mo-sky.hp.infoseek.co.jp/imgl/youm.jpg http://mo-sky.hp.infoseek.co.jp/imgl/aris.jpg http://mo-sky.hp.infoseek.co.jp/imgl/2007nenga.jpg パースかけたりして挑戦は良いことですでもそれより先に基本をしっかりこなしてください AREA TYS J-YMG http://areatys.mods.jp/ http://areatys.mods.jp/g/th10k01b.jpg http://areatys.mods.jp/g/10000cb.jpg http://areatys.mods.jp/j/alice_20070321.jpg 今後の予定なんですが、東方妖々夢をベースにした、荒唐無稽のバトル漫画を作成中です。GUNDOROWARZシリーズ第一部 デュエルウィザード第二部 高度1万2千フィートの幻想曲 第三部 冥界決闘シンドローム バトル漫画ですか画力と見せ方が伴わないと陳腐になると思いますけど適当に頑張ってください中の人は二人いるのかな 分かりづらいです画像小さいのは容量削減のためでしょうかね elista 宮野えりな http://el.rgr.jp/ http://el.rgr.jp/picture/sakuya.jpg http://el.rgr.jp/picture/yuyuko.jpg http://el.rgr.jp/picture/0815.png http://el.rgr.jp/picture/comic7.jpg 蛸に似ている黒さはないけれどそこはかとなく好きです LM らんさ http://l-m.s35.xrea.com/ http://l-m.s35.xrea.com/pro.jpg http://l-m.s35.xrea.com/comic/yuyu_to_flan.jpg http://l-m.s35.xrea.com/comic/metyahie_11.gif http://l-m.s35.xrea.com/comic/nattyan_01.gif http://l-m.s35.xrea.com/hikikomori/HDD.gif イラストよりは漫画畑でしょうか特に絵が上手くもなければ話が面白いとも言いませんがそこまで酷いネタもないし安定して見れる感じがします?引きこもりニートネタはもういりませんが LDI9r ドクシノ http://ldi9r.blog113.fc2.com/ http://blog-imgs-11.fc2.com/l/d/i/ldi9r/20070822214601.jpg やる気がないなら無理にページを作るなよと思う今日この頃自分にも当てはまって非常に墓穴 絵だけ見ると少し気になります AngelicQuasar 天音アマネ http://youzyo.net/ アレンジ angel slap 水無月 そうし http://angelslap.karou.jp/ http://angelslap.karou.jp/kokuchi/yuugikyou.jpg http://angelslap.karou.jp/kokuchi/yuugikyou2.jpg http://angelslap.karou.jp/gallery/mas/suika.jpg なのはの方へ行っていたらしいけれど帰ってきた模様三期は微妙らしいですね別に何の関係もありませんが絵はまあ上手くなってるんですかね分かりません水無月さん二人目ですねご家族でしょうか神無月さんもどこかのサークルにいましたね ANGELTYPE 猫描・ネジキリオ http://blackangel.under.jp/ http://angeltype.under.jp/natuotudesu.jpg http://angeltype.under.jp/tp_l.jpg http://angeltype.under.jp/reimu_tima.jpg http://angeltype.under.jp/bag_3.jpg サークル名が「BLACK†ANGEL」から「ANGELTYPE」にかわりました。 何を考えて名前変えるのか理解できないですカンバッチとか色々やってるところですね多分それなりに人気があるじゃないでしょうか EnHANCE HEART 六羽田 共 http://heart.sabax.jp/ http://heart.sabax.jp/youmu_0316b.jpg http://heart.sabax.jp/th_meikai0607p.gif http://heart.sabax.jp/th_sakuya0604c.jpg 上手ですね色々見ていると画像は結構見かけます線が鋭角的なのか柔らか味に欠ける気はします 軍艦の写真があってはじめてみたので絵よりそっちに興味がいや関係ないけれど 炎氷刺丸亭 炎氷刺丸 http://www.geocities.jp/enju1162/ http://www.geocities.jp/enju1162/y-color15.jpg http://www.geocities.jp/enju1162/coolier65.png http://www.geocities.jp/enju1162/tohocomic1.jpg 名前とか見る限り朱に交わればと言うか類友と言うか以前もこんなことを書いた気がするサークル代表者の名前は上記のものなのか絵を描いている人は別の人です 桜花月間 萩宮アルト http://www.aikis.or.jp/~kt373 SSに東方萃夢想カラーパレット多分SSの本でしょうか 大熊猫飯店 岡平 閑 http://kit.or.tp/~pandaza/ http://kit.or.tp/~pandaza/2007.jpg http://file.pandaza.blog.shinobi.jp/20070826.jpg http://file.pandaza.blog.shinobi.jp/mixi153.jpg ルーミア合同誌に参加しています! 下手ということはないけれど何か違和感をおぼえる絵頬のひげだかなんだか良く分からない物体と目辺り? O.P.E.N 阪木洋一 http://www.geocities.jp/ocean_sakaki/index.htm SSの本でしょうオリキャラに三次創作と良い印象を受けない作品紹介でした おしゃれどろぼう STR http://o-dorobou.main.jp http://o-dorobou.main.jp/top9.jpg http://o-dorobou.main.jp/070813.jpg http://o-dorobou.main.jp/070415.jpg http://o-dorobou.main.jp/tk6.jpg 垢抜けてない絵顔が平面的です office-φ 216 http://n216.com/nrszn リンク間違い↓で http://n216.com/hrszn/ http://n216.com/hrszn/img/nito_e1.jpg http://n216.com/hrszn/img/c_r.jpg http://n216.com/hrszn/img/exm_e1.png 頭が微妙にでかいのとどれもこれも同じような顔に見えるのを除けばそれなりに上手い気もします棘とか絵板とか絵茶とかHPとかmixiとかで色々問題起こしてるような人みたいですが絵とは関係ないからね おまんまんらんど( ゜д゜ ) 尊治 http://kuronisiki.web.fc2.com/ http://kuronisiki.web.fc2.com/atoti.jpg http://kuronisiki.sakura.ne.jp/top96.jpg http://kuronisiki.sakura.ne.jp/top58.jpg http://kuronisiki.sakura.ne.jp/top61.jpg http://kuronisiki.sakura.ne.jp/top77b.jpg エロの方に行くこと自体は特に何も思いませんけどキャラに合った頭身にしたほうが良いとは思うデフォルメ効いていないというべきかあとアレンジと言うか違う服にすると誰か分からないのはこの界隈の仕様か オムチキン 久林丼 http://www2.accsnet.ne.jp/~omelet75/index.htm http://omchicken.hp.infoseek.co.jp/cgi-bin/nicky/2007/mixi0816-1.jpg http://omchicken.hp.infoseek.co.jp/cgi-bin/nicky/2007/grp0803011539.thumb.jpg http://omchicken.hp.infoseek.co.jp/cgi-bin/nicky/2007/mixi0509.jpg http://www2.accsnet.ne.jp/~omelet75/gallery/th18.jpg それからやつきさん主催のミスティア合同誌にも漫画2pで参加しています。 顎が鋭角的になってきてるので丸みを覚えるようにすると良いんじゃないかなあいやどうでもいいけれどね 表参道まわりみち 静流 http://stormypetrel.sakura.ne.jp/ http://stormypetrel.sakura.ne.jp/itumikitoteka2.jpg http://stormypetrel.sakura.ne.jp/natuyasumikouhanno11.jpg 東方大学とか別に嫌いではないけれど余り行き過ぎるとアレだと思う長く続くと独自の方向へ行ってしまうのか当たり障りのないネタで続けるのが難しくなるものかな 普通に作っているお話など含め嫌いではないです Ortho-Para ねこいた http://orthopara.blog3.fc2.com/ http://blog3.fc2.com/o/orthopara/file/alfs11.jpg http://blog3.fc2.com/o/orthopara/file/siki.gif http://blog3.fc2.com/o/orthopara/file/20070717133611.jpg 雰囲気の出ている絵 暗めの色を良く使うのかな目が大きいせいかより目に見えるイラスト向き 漫画には余り向かない形でしょうかねえ ORANGE CIRCUS 如月ぽん http://jihad.suppa.jp/picture/circle/07th03_0.jpg http://jihad.suppa.jp/picture/circle/07th03_2.jpg 他の方のページからですが 以前に合同誌などを作ってるようです 18禁イラストを手がけたようで 今回は個人でしょうかね HPは合同誌を作ったサークルさんからもリンクもなかったので多分無いようです オレンジペコ 七瀬祐 http://www.orange-pekoe.net/ http://www.orange-pekoe.net/gallery/data/upfile/102-1.jpg http://www.orange-pekoe.net/gallery/data/upfile/89-1.jpg http://www.orange-pekoe.net/gallery/data/upfile/87-1.jpg http://www.orange-pekoe.net/gallery/magicalmini.jpg http://www.orange-pekoe.net/gallery/magicalsample2.jpg まあ頑張ってください出来れば頑張らないで消えてください ON/OFF ポポ http://onoff.michikusa.jp/index.html http://onoff.michikusa.jp/top/top.jpg http://onoff.michikusa.jp/image/jc3.jpg http://onoff.michikusa.jp/image/hc7.jpg まあ頑張って というかボボという人は画像一枚も無いですね東方の絵も多分無いイベント参加数が多い三人サークルでしょうか 音速走行 はるきち http://blogs.dion.ne.jp/sonicrun/ http://www.k5.dion.ne.jp/~sonicrun/LOVELOG_IMG/.jpg 死ぬほど忙しい日々なのかと思うほど更新が無い本作ってるんだからそんなこともないのだろうけど無理にHPを残しておく事はないと思う がーねっとすたー ねき 見つからないな Calm of Moon River 月凪聖 http://licht-sichel.hp.infoseek.co.jp/index.html http://licht-sichel.hp.infoseek.co.jp/garally/sakuya013.png http://licht-sichel.hp.infoseek.co.jp/garally/sakuya012.png http://licht-sichel.hp.infoseek.co.jp/garally/kouma007.png 平面的なのっぺり顔凹凸のない顔が流行でしょうかそんなわけないな 海運 こうば http://ffkaiura.hp.infoseek.co.jp/ http://ffkaiura.hp.infoseek.co.jp/2007meziroositopb.jpg http://ffkaiura.hp.infoseek.co.jp/0716catadioptrica.jpg http://ffkaiura.hp.infoseek.co.jp/494500hit.ysbuisyareimu.jpg 色々なところで名前を見ます 主に人には言えないようなところで話は良い話は良いと言われてますが 自分は読む前に絵で駄目な方です正直あちこちで宣伝して盛り上げてるのかと邪推するほど 快眠予報 緋月 優 http://u-akatuki.moe-nifty.com/ http://tridymite.sakura.ne.jp/throwlife/img/c72/5.gif 改行が多くて読みづらいブログしかもフレームに日付ごとまとまっていたりもしないからさらに辛いギャラリーもなくて読みたくも無い日記を読まされるのは乳酸がたまりそうで画像とかもなくてそちらは判断しかねます 鏡の中の弾 慧音ゆき http://keineyuki.fc2.com リンク