したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

管理人の独り言(プログラミング関連)

1みみず★:2008/08/10(日) 23:28:15
あまりにもプログラミングの内容が増えすぎた。
よって隔離スレの中を更に隔離。

556774さん:2008/10/10(金) 05:46:44 ID:CENbthlg0
空行とかコメントとか、コピペとか一杯あるけれども、626行ぐらいだそうです。

557774さん:2008/10/10(金) 05:49:09 ID:CENbthlg0
>>553は以下のように呼ぶ。
項目は一杯あるけれども、殆ど未実装。
-----
ShowPopup([
{
str: "大きさを指定して再生",
func: function(){

}
},
{
str: "Sleipnirで開く",
func: function(){
w.open(video_url);
}
},
{
str: "編集",
func: function(){

}
},
{
str: "削除",
func: function(){

}
},
{
str: "リロード",
func: function(){
w.location.reload(true);
}
}
], x, y, "s_popup");

558774さん:2008/10/10(金) 16:01:19 ID:CENbthlg0
管理機能を付けないといけないけれども眠たいから取り敢えず寝る。練る。

559774さん:2008/10/10(金) 16:13:16 ID:CENbthlg0
全体の5%も出来てない。
678行。17.2 KB (17,616 バイト)。文字符号化方式はUTF-8(BOM付き)。

560774さん:2008/10/10(金) 16:23:47 ID:CENbthlg0
document.cookie の覚え書き - Ci.nsIZIGOROu - Mozilla 拡張機能勉強会
http://moz-addon.g.hatena.ne.jp/ZIGOROu/20081001/1222845305
-----
複数の値の書き込みは出来ないんだ・・・

561774さん:2008/10/10(金) 16:35:17 ID:CENbthlg0
JOI2006模擬試験2 問題3@C++ lizanの指摘により書き直し(46) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081009/1223560919

562774さん:2008/10/11(土) 08:45:53 ID:CENbthlg0
JOI2008本選 問題1@C++(44) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081010/1223646925

563774さん:2008/10/11(土) 09:55:58 ID:CENbthlg0
シャープ変数(sharp variables) - FAX
http://d.hatena.ne.jp/brazil/20060901/1157079631

564774さん:2008/10/11(土) 16:41:11 ID:CENbthlg0
JOI2008本選 問題2@C++(39) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081011/1223694845

565774さん:2008/10/11(土) 20:16:05 ID:CENbthlg0
TopCoder
http://pc11.2ch.net/test/read.cgi/tech/1177344510/

566774さん:2008/10/11(土) 22:18:25 ID:CENbthlg0
>>564
ソートしながら比較する方法は思いつかないなあ。
自分で思いついたとしたら凄いし、他のところで見たとしたらそれを俺が読みたい。

567774さん:2008/10/11(土) 22:19:02 ID:CENbthlg0
>>564>>566
後で読む
重要
文字列比較

568774さん:2008/10/12(日) 10:25:14 ID:CENbthlg0
開成高2年の保坂君が「金」 国際情報五輪 - MSN産経ニュース
http://sankei.jp.msn.com/life/trend/080822/trd0808221324004-n1.htm

569774さん:2008/10/12(日) 10:51:03 ID:CENbthlg0
JOI2008本選 問題3@C++(31) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081012/1223772143
-----
頭良い!
まず、一番目に0点を入れて、後ろに全てのデータを配列に置く。で、ソート。
一番最初に0があるので、それはその回は投げないということである。
で、次にそのデータを全てそれぞれ足した、配列を用意する。
で、ソート。
これで、二回投げたときに得られる全ての値を得られる。
よって、次に最大の値から一つの値を引いて、それを超えない値を探す。
で、一つ上の行を二回投げたときに得られる全ての値について演算すると上のようになると。
素晴らしい。

だけれども4つの時にしか利用できないのが玉に瑕。
ま、そのときは再帰的呼び出しで何とかなるからいいや。

570qnighy:2008/10/12(日) 11:02:55 ID:R6/9FCOo0
リンクされているようなので説明を補足させてもらいます。
>>569
日記のほうにも追記しましたが、実は本選終了後に解説された公式の解答です・・・
>>564
これは自分で思いつきました。本選当日はJavaで組みましたが、今回はC++です。

571774さん:2008/10/12(日) 11:03:12 ID:CENbthlg0
JOI2006模擬試験2 問題4@C++(30) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081012/1223776259
----
違う問題を見ながらソースを見ていたから、悩んだし。
頭いいなあ。本当に。此れで俺より二つ下だから困る。

572774さん:2008/10/12(日) 12:06:21 ID:CENbthlg0
>>570
あっ、態々来てくださるとは感動です><

公式の解答ですか。
だけれども、ちゃんとソースにちゃんと起こすのは凄いです。

自分はC++な人なんですが、自分で構造体を作ってそれをvectorで格納して
std::sortで並び替える発想は全然浮かびませんorz...
>>564のソースは見た瞬間、「これ時間かかるんじゃね?」とか思ってましたが、自分の部屋で考えていたら、
sortする間に段々似た文字列が集まってくるから、効率的に比較が出来るということに気が付いて、
すげえ天才だとか思ってました。(バブルソートとかで実装されていたら駄目ですがwww)
ポテンシャルが違いすぎますorz....

573774さん:2008/10/12(日) 12:09:19 ID:CENbthlg0
Amazon.co.jp: Robert Sedgewick: 本
http://www.amazon.co.jp/%E6%9C%AC/s?ie=UTF8&rh=n%3A465610%2Cp_27%3ARobert%20Sedgewick&field-author=Robert%20Sedgewick&page=1
-----
値段たけえwwwwwwwwwwwwwwwww

574774さん:2008/10/12(日) 12:15:04 ID:CENbthlg0
相手のサイトに書き込まないのは、俺が小心者だから。
俺プギャーwww

575774さん:2008/10/12(日) 17:28:02 ID:CENbthlg0
高校生サーバー管理者の考察日誌 - CNET Japan
http://japan.cnet.com/blog/isidai/

576774さん:2008/10/12(日) 17:29:57 ID:CENbthlg0
JOI2006模擬試験2 問題5@C++(25) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081012/1223799878

577774さん:2008/10/12(日) 17:52:23 ID:CENbthlg0
JOI 2006 模擬試験2 問題5解説
http://www.ioi-jp.org/joi/2005/2006-m2-prob_and_sol/2006-m2-t5-review.html
-----
あれ、ヤバいな。数学の問題すら分からなくなっている。
CとHについての関係は分かっているが、最後の二行の意味が分からない。まあいいか。

578774さん:2008/10/12(日) 17:54:17 ID:CENbthlg0
今更ながら、解説間違っているだろwwwww

579774さん:2008/10/12(日) 17:55:05 ID:CENbthlg0
>さて,上述の (n + r - mn - 1) ! / {(n - 1) ! × (r - mn) !} は n+r-1Cr に等しい.
凄いね!凄いね!物凄く大きくなったね!

580774さん:2008/10/12(日) 18:00:28 ID:CENbthlg0
>さて,この問題は条件 0≦a_i≦r を m≦a_i≦r に変えたものであるが,b_i = a_i + m とおくと条件は 0≦b_i≦r (i = 1, ..., n), b_1 + ... + b_n = r - mn と同値である.よって,n+r-mn-1Cr-mn が求める箱の個数である.
この発想はないわ・・・
まあ、考えれば当たり前なんだけれどもね。数式の上で操作するとちょっと俺の頭がオーバーフロー。

今更ながら、やっぱりリファラーはあんまり残さないほうが良いかなとか思ったり、思わなかったり。
まあ、此れが俺のブックマークみたいなものだから、仕方ないといえば仕方ないが。

581774さん:2008/10/12(日) 18:01:46 ID:CENbthlg0
つまり、初めにmn個をm個ずつ、n種類のビーズに割り振っておいて、残りについて行っているだけなんだけれども。
数学の組み合わせを復習しておく必要性があるな。

582774さん:2008/10/12(日) 18:03:41 ID:CENbthlg0
やっぱり、他人のソースを見ると、とても勉強になる。
それが自分より年下とか、年上とか関係なくて、やっぱりその技術だけを純粋に見るべきである。
でもすげえええええええ

583774さん:2008/10/12(日) 18:06:14 ID:CENbthlg0
まあ俺的には、平凡などっかの私立の中学とか高校とかに行っていない分際で、どこらへんまで行けるのかなということだ。
孤独って辛いね。誰とも競わずに。
まあ、それが俺の好みでないわけではないが、他のものと比較した事が無いので分からないっていう。

584774さん:2008/10/12(日) 23:18:52 ID:CENbthlg0
図書館に行ってアルゴリズム系の本を借りてこようとしたら案の定置いてなかったので、暗号の本を借りた。
ハッシュ関数とか、そこらへんの知識があったんだけれども、全部読んで電子書名の意義とかが理解できた。
電子署名は、自分でこの文章の正当性とか、自分で書きましたとか言うことをを保障しますという印である。
だから、自分が信頼している人の署名が付いた文章とか、その公開鍵とかは信用しても大丈夫という考え方、
そんな方法があるらしい。 PGPというのも、そんな考え方で実装されているとか、書かれていたように思う。
やっぱり、暗号とかのアルゴリズムは一般に公開されているものを改変せずに利用したほうが、安全である、
ということを再確認した。

585774さん:2008/10/13(月) 09:19:49 ID:CENbthlg0
JavaScriptで画像の本来の幅と高さを取得する - inamenaiの日記
http://d.hatena.ne.jp/inamenai/20081011/p1
-----
小技っぽいな。
後者の方法の方が俺的によさげ。

586774さん:2008/10/13(月) 10:17:26 ID:CENbthlg0
ニコニコ動画のマイリストの奴2%ぐらい出来た。

587774さん:2008/10/13(月) 10:19:50 ID:CENbthlg0
掲示板用アップローダー - sub_chon_uljp00053.png ダウンロード
http://www6.uploader.jp/dl/sub_chon/sub_chon_uljp00053.png.html

588774さん:2008/10/13(月) 10:23:36 ID:CENbthlg0
一番苦労しなくても良い所で苦労している気がする。

上のナビゲーターで表示されている部分から左右それぞれ三つ分を表示するようにしているのだが、1ページにあるときは右側三つしか表示されないので、合計4つの箱が出来る。
しかし、四ページ目に行くと、合計七つの箱が出来る。
此れだと左右のボタンを連打するときに場所がずれて嫌だなあと。
だから何とかしたいのだが、効率の良い(ソースの行数的に)方法が思いつかない・・・

589774さん:2008/10/13(月) 10:27:28 ID:CENbthlg0
ナビゲーターを作るだけでこんなにもソースがあるって言う。
---
function CreateNavi(){
var p = d.createElement("p");
p.className = "pagelink";
p.align = "center";

//戻る
if(page == 1){
p.appendChild(d.createTextNode("<"));
}else{
var a = d.createElement("a");
a.href = "javascript:void(0);";
a.onclick = function(){
self.Show(page - 1);
}
a.innerText = "<";
a.className = "prevpage";
AddMenuToElement(a);
p.appendChild(a);
}
p.appendChild(d.createTextNode(" "));

//prev 戻る
var i;
for(i = -3; i < 0; i++){
if(page + i >= 1){
var a = d.createElement("a");
a.href = "javascript:void(0);";
with({i: i}){
a.onclick = function(){
self.Show(page + i);
};
}
a.className = "pagelink_off";
a.innerText = page + i;
AddMenuToElement(a);
p.appendChild(a);
}
}


//current
var span = d.createElement("span");
span.className = "pagelink_on";
span.innerText = page;
AddMenuToElement(span);
p.appendChild(span);

//next 進む
var i;
for(i = 1; i <= 3; i++){
if(page + i <= maxpage){
var a = d.createElement("a");
a.href = "javascript:void(0);";
with({i: i}){
a.onclick = function(){
self.Show(page + i);
};
}
a.className = "pagelink_off";
a.innerText = page + i;
AddMenuToElement(a);
p.appendChild(a);
}
}

//進む
p.appendChild(d.createTextNode(" "));
if(page == maxpage){
p.appendChild(d.createTextNode(">"));
}else{
var a = d.createElement("a");
a.href = "javascript:void(0);";
a.onclick = function(){
self.Show(page + 1);
}
a.innerText = ">";
a.className = "nextpage";
AddMenuToElement(a);
p.appendChild(a);
}

return p;

function AddMenuToElement(a){
if(maxpage == 1) return;

a.oncontextmenu = function(){
var e = w.event;
var x = canvas.scrollLeft + e.clientX;
var y = canvas.scrollTop + e.clientY;
ShowPopup([{
str: "指定ページへ移動",
func: function(){
var ret = w.parseInt(w.prompt(["何ページ目?(1〜", maxpage,")"].join(""), ""));
if(!isNaN(ret)){
self.Show(ret);
}
},
},
{
str: "初めのページへ移動",
func: function(){
self.Show(1);
},
disabled: page == 1 ? true : false
},
{
str: "最後のページへ移動",
func: function(){
self.Show(maxpage);
},
disabled: page == maxpage ? true : false
}], x, y, "s_popup");

return false;
}
}
}

590774さん:2008/10/13(月) 10:32:44 ID:CENbthlg0
と、言うことで、もうちょっとソースを減らす。

591774さん:2008/10/13(月) 10:46:17 ID:CENbthlg0
すっきり!
-----
function CreateNavi(){
var p = d.createElement("p");
p.className = "pagelink";
p.align = "center";

//戻る
p.appendChild(MakeArrow(true));
p.appendChild(d.createTextNode(" "));

p.appendChild(MakePageList(1, maxpage));

//進む
p.appendChild(d.createTextNode(" "));
p.appendChild(MakeArrow(false));

return p;

function MakePageList(s, e){
var base = d.createElement("span");
var i;
for(i = s; i <= e; i++){
if(i == page){
var span = d.createElement("span");
span.className = "pagelink_on";
span.innerText = page;
AddMenuToElement(span);
base.appendChild(span);
}else{
var a = d.createElement("a");
a.href = "javascript:void(0);";
with({i: i}){
a.onclick = function(){
self.Show(i);
};
}
a.className = "pagelink_off";
a.innerText = i;
AddMenuToElement(a);
base.appendChild(a);
}
}

return base;
}

function MakeArrow(prev){
if(prev){ //前
if(page == 1){
return d.createTextNode("<");
}else{
var a = d.createElement("a");
a.href = "javascript:void(0);";
a.onclick = function(){
self.Show(page - 1);
}
a.innerText = "<";
a.className = "prevpage";
AddMenuToElement(a);
return a;
}
}else{
if(page == maxpage){
return d.createTextNode(">");
}else{
var a = d.createElement("a");
a.href = "javascript:void(0);";
a.onclick = function(){
self.Show(page + 1);
}
a.innerText = ">";
a.className = "nextpage";
AddMenuToElement(a);
return a;
}
}
}

function AddMenuToElement(a){
if(maxpage == 1) return;

a.oncontextmenu = function(){
var e = w.event;
var x = canvas.scrollLeft + e.clientX;
var y = canvas.scrollTop + e.clientY;
ShowPopup([{
str: "指定ページへ移動",
func: function(){
var ret = w.parseInt(w.prompt(["何ページ目?(1〜", maxpage,")"].join(""), ""));
if(!isNaN(ret)){
self.Show(ret);
}
},
},
{
str: "初めのページへ移動",
func: function(){
self.Show(1);
},
disabled: page == 1 ? true : false
},
{
str: "最後のページへ移動",
func: function(){
self.Show(maxpage);
},
disabled: page == maxpage ? true : false
}], x, y, "s_popup");

return false;
}
}
}

592774さん:2008/10/13(月) 10:49:42 ID:CENbthlg0
掲示板用アップローダー - sub_chon_uljp00054.png ダウンロード
http://www6.uploader.jp/dl/sub_chon/sub_chon_uljp00054.png.html
-----
こんな表示方法もありかと思った。

593774さん:2008/10/13(月) 11:24:44 ID:CENbthlg0
けっこうソースがシンプルになった。
良かった良かった。
----
var begin, last;
if(maxpage <= 7){
begin = 1; last = maxpage;
}else{
if(page <= 3){
begin = 1; last = 7;
}else if(page >= maxpage - 3){
begin = maxpage - 6; last = maxpage;
}else{
begin = page - 3; last = page + 3;
}
}
p.appendChild(MakePageList(begin, last));

594774さん:2008/10/13(月) 11:31:23 ID:CENbthlg0
IEPanelExで、コンテキストメニューの表示も文字列の選択も出来なくすると、IEぽくなくなる。
いい感じ。

595774さん:2008/10/13(月) 11:32:03 ID:CENbthlg0
選択できなくなると情報のコピーとかが出来なくなるので、URLとタイトルをコピーできるようにした。

596774さん:2008/10/13(月) 11:48:05 ID:CENbthlg0
U.N.オーエンは管弦楽なのか? - 最終鬼畜オーケストラ
http://www.nicovideo.jp/watch/sm4915337

597774さん:2008/10/13(月) 11:51:52 ID:CENbthlg0
後は、削除と編集を何とかすれば、使い物にはなるだろう。
完成度が3%ぐらいになった。

598774さん:2008/10/13(月) 12:19:03 ID:CENbthlg0
JOI2006模擬試験1 問題5@C++(未完)(19) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081013/1223866809

599774さん:2008/10/13(月) 18:13:26 ID:CENbthlg0
JOI2008予選 問題1@C(15) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081013/1223881846
---
番兵法か・・・
なるほど。

600774さん:2008/10/13(月) 18:34:04 ID:CENbthlg0
そうだ!
今適当に書いている、ニコニコ動画のマイリストの管理の奴に、マイリストのマイリストの機能を付けよう!

601774さん:2008/10/13(月) 20:54:00 ID:CENbthlg0
ちゃっちゃと削除機能を付けた。
なんか今日だけで随分と進んだ。
面倒だと思っていたので、そこを避けて進んでいたが、実際にやってみると簡単なもんだ。
削除をしてもまだ、画面に即反映という風にはなっていない。これはどうしようもないかもしれない。
現状画面の更新間隔を1000smにしているので、もうちょっと長く出来るようにするかな。
まあ、削除の処理とリストの処理は分けわけするべきなので、もうちょっと設計を考えたほうが良いかもしれない。

602774さん:2008/10/14(火) 14:34:23 ID:CENbthlg0
削除機能でタグの管理を全く念頭に置いていなかった。
まあ、作っているときからタグの処理面倒くせー、とか思っていたので後から対応しよう。
実は、自分のマイリストにもタグを付けてないので、実際に試してどのように保存されているかを調べなければ。

603774さん:2008/10/14(火) 16:30:04 ID:CENbthlg0
おっおっおwww
開発中に仕様を変更するとかニコニコ動画自重汁。
ナビゲーターにCSSが適応されなくなってびびっただろう。

604774さん:2008/10/14(火) 16:34:07 ID:CENbthlg0
はぁ。
書き直しか・・・

605774さん:2008/10/14(火) 16:37:50 ID:CENbthlg0
三行修正して正しく表示されるようになった。

606774さん:2008/10/14(火) 18:44:40 ID:CENbthlg0
JOI2008予選 問題3@C++(12) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081013/1223893215
「Silverlight 2」、米国時間の14日にダウンロード提供開始 | エンタープライズ | マイコミジャーナル
http://journal.mycom.co.jp/news/2008/10/14/003/index.html
---
僕の今には有用性が分かりません。

607774さん:2008/10/14(火) 19:33:54 ID:CENbthlg0
あっ。
開発中に今までのマイリストガ消えた・・・
バックアップとってなかった俺涙目wwwwww
絶対完成させてやる。

608774さん:2008/10/15(水) 11:26:59 ID:CENbthlg0
JOI2008予選 問題5@C++(7) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081014/1223981320
JOI2008予選 問題6@C++(5) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081014/1223988441

609774さん:2008/10/15(水) 13:20:12 ID:CENbthlg0
IEPanelExって、中で外部のJavaScriptを読み込めば、使用している本人が更新しなくても表示方法とかを変更出来るよね。
問題は何処にそのスクリプトをおくかだけれども。

610774さん:2008/10/15(水) 13:42:13 ID:CENbthlg0
削除しようとした動画以外が消えて笑ったwww
まあ、今色々なところ弄くっているから仕方ないけれども。

611774さん:2008/10/15(水) 14:59:22 ID:CENbthlg0
取り敢えず、タグも考慮に入れた削除を実装完了した。
物凄く時間がかかった。
JavaScriptの恐ろしさをある意味で知った。
本当に予想外のところから参照があった。
-----
this._DeleteTag = function(n, id){ //n:タグ削除する動画のmylistのインデックスかオブジェクト, id:削除するタグのid
if(typeof(n) != "number"){
var i, len, vid = n.id;
for(i = 0, len = mylist.length; i < len; ++i){
if(mylist[i].id == vid){
break;
}
}
if(i == len) return; //そんな動画無い
n = i;
}

var i, len = mylist[n].tags.length;
for(i = 0; i < len; ++i){
if(mylist[n].tags[i] == id){
mylist[n].tags.splice(i, 1);
break;
}
}

if(i == len) return; //そんなタグ無い

var j, len, flag = true;

out:
for(j = 0, len = mylist.length; j < len; ++j){
if(j != n){
var k, tlen;
for(k = 0, tlen = mylist[j].tags.length; k < tlen; ++k){
if(mylist[j].tags[k] == id){
flag = false;
break out;
}
}
}
}

if(flag){
var k, tlen;
for(k = 0, tlen = tag.length; k < tlen; ++k){
if(tag[k].id == id){
tag.splice(k, 1);
break;
}
}
}
};

612774さん:2008/10/15(水) 15:02:28 ID:CENbthlg0
単純化すると、以下のようなことが起こっていた。
-----
var a = [0, 1, 2, 3, 4];
var b = a;
b[0] = 3;
alert(a); //[3, 1, 2, 3, 4];
-----
ぐはあ。
此れが、配列の中に収められているオブジェクトの中の配列だったから気づくのに時間がかかった。
という事で、削除される可能性のある前に
a.concat([]);してコピーするようにした。

613774さん:2008/10/15(水) 15:03:43 ID:CENbthlg0
this._Deleteはこんな感じになった。
-----
this._Delete = function(l){
var id = l.id;

var i, len;
for(i = 0, len = mylist.length; i < len; ++i){
if(mylist[i].id == id){
break;
}
}

//タグを全て削除
var j, len, l_tags = l.tags.concat([]); //ここでl.tagsをコピーしておかないとthis._DeleteTag内で変更される可能性がある
for(j = 0, len = l_tags.length; j < len; ++j){
this._DeleteTag(i, l_tags[j]);
}

mylist.splice(i, 1);
};

614774さん:2008/10/15(水) 18:41:57 ID:CENbthlg0
日本語技術資料のダウンロード
http://www.intel.com/jp/download/
-----
探すの疲れた。

615774さん:2008/10/16(木) 16:11:40 ID:CENbthlg0
JOI2008本選 問題4@C++(-5) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081015/1224068881
JOI2007予選 問題1@C(-9) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081015/1224074337
JOI2007予選 問題2@Perl(-10) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081015/1224075312

616774さん:2008/10/16(木) 16:32:22 ID:CENbthlg0
ブログとかで配信しているRSSは全文を配信していない。
大抵、続きを読むが出るところまでか、前何文字とかそんな風である。
前者の場合は、ブログの管理人が続きを読む機能を知らないで使っていれば、全文と同じである。
だが、後者の場合はほぼ確実に全文ではなくなる。
どちらにせよ全文を表示できない可能性が十分にあるので、あまり美味しくない。
つまりどうせならばRSSリーダーで全文を読みたい、保存したい。と言うことだ。

さて、どうすれば良いか。
RSSにはそのページへのパーマリンクがまず含まれている。
よって、そのページに行けば確実に全文が含まれているだろう。
そして、大抵のサイトではデザインが同じはずなので、何処の要素に本文の全文があるかが分かれば良い。
つまり、サイトごとに何か要素を指すものを作ればいいわけである。(これはXPathでも良いし、独自の方法でも良い。)
しかし、その情報を一体どのように入手するか、保存するかが問題である。

これにはもう前例があって、AutoPagerizeやLDRize等で利用しているSiteInfoという手が一番美味しいと思っている。
つまり、使用者全員で作る巨大データベースと言うことである。
これならば個人が参照方法を考えなくても良くなるし、負担が減るであろう。

実はまず、この全文受信したいと思っている要望時点に問題があって、全文を手に入れるには必ず一時サイトに接続しなければいけないという問題である。
その本文を読まないのに、そのページを取得しに行く。そしてそのサーバーに負担がかかる。
まあ、此れには全文を保存するキャッシュサーバーを用意するという手が考えられる。
ある意味でのプロキシである。
まあ、そのプロキシは誰が設置するんだという問題があるだろうが、それはどうにもならない問題である。
よって、この計画は駄目であるということだ。

617774さん:2008/10/16(木) 16:38:37 ID:CENbthlg0
もともと俺には書くスキルがないから大丈夫だけれど。

618774さん:2008/10/16(木) 18:58:48 ID:CENbthlg0
STL Algorithm 詳解
http://www.wakhok.ac.jp/~sumi/stl/manual/man_algorithm.html

619774さん:2008/10/16(木) 19:04:43 ID:CENbthlg0
>upper_bound()は、lower_bound()とよく似ています。upper_bound()の場合には、 指定した値より"大きい"の要素が最初に現れる位置を返します。つまり「以上」と「大きい」の違いです。これは言い換えると、ソート状態を崩さずに値を挿入できる最後の位置を返すということになります。
>lower_bound()は、指定した値"以上"の要素が最初に現れる位置を返します。この位置は、現在のソート済みの状態を崩すことなく、指定した値を挿入できる最初の位置になります。

>ある値と一致する範囲の一番最初を返す- lower_bound()
>ある値と一致する範囲の一つ後ろを返す- upper_bound()

微妙に表現が違う・・・

620774さん:2008/10/17(金) 05:59:43 ID:CENbthlg0
うん、下の方が表現が正しい。

lower_bound()しか試してないけれども、存在しない値は指定しないほうがいいみたい。
存在しない値の場合は、その次を指すみたい。
だから、0〜10の配列で-1を指定すると0の場所が返る。
まあ、そんな感じ。

621774さん:2008/10/17(金) 06:01:26 ID:CENbthlg0
でも本当は
std::binary_search(v.begin(), v.end(), 5);
みたいにして、存在するかどうかを確かめてやったほうが良い。

622774さん:2008/10/17(金) 17:39:54 ID:CENbthlg0
std::binary_search()がlower_bound()を使って実装されていたwwwwww

623774さん:2008/10/17(金) 17:53:10 ID:CENbthlg0
ブラッディー・マンデイの分散コンピューティングで、お前には出来ないだろうと言われた、という話があった。
で、その人の答えは超最小モデルならば出来るということだそうです。

確かに俺でも出来そうだな。
パイプでプロセス同士を繋いで分散させて何かを計算させればいいわけだ。
実際に実装するにはどうすればいいだろうか・・・
親を作って、子を作る。
で、全部にデータ送って待つ。で、データが返ってきたらまだ処理していないデータを送る。
まあ、此れの無限ループと。そういうことですね。

これを拡張したのが、ということですか。

624774さん:2008/10/17(金) 22:19:11 ID:CENbthlg0
黄金比 - 素人がプログラミングを勉強するブログ
http://d.hatena.ne.jp/javascripter/20081017/1224241834
---
フィボナッチ数列の二項間の比は、黄金比φに収束する。
-----
JOI2007予選 問題4@C++(-18) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081017/1224248155

625774さん:2008/10/17(金) 22:20:00 ID:CENbthlg0
でも黄金比使うんだったら、ハードコートすれば良いだろ・・・
常識的に考えて。
-----
Geekなぺーじ : 優秀なプログラマを雇う方法
http://www.geekpage.jp/blog/?id=2008/10/17/3

626774さん:2008/10/18(土) 17:37:56 ID:CENbthlg0
JOI2007予選 問題5@C++(-20) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081017/1224250213
JOI2007予選 問題6@C++(-21) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081017/1224251063

627774さん:2008/10/18(土) 21:04:07 ID:CENbthlg0
ファイルサイズの取得方法
http://homepage3.nifty.com/mmgames/c_guide/q_filesize.html

628774さん:2008/10/18(土) 21:05:58 ID:CENbthlg0
世界最小のEXEを作ってみたい!

629774さん:2008/10/19(日) 17:52:34 ID:CENbthlg0
JOI2008本選 問題5@C++(-31) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081019/1224379072
---
絶対無理だな

630774さん:2008/10/19(日) 18:23:18 ID:CENbthlg0
>>629
解読終了。

素晴らしい。
説明しろといわれても説明できません><
だけれども、理解できた。これは素晴らしい。

631774さん:2008/10/19(日) 18:24:03 ID:CENbthlg0
>>629
タグでも付けておこうww
重要
これはすごい

632774さん:2008/10/19(日) 18:25:51 ID:CENbthlg0
数え方に感動。
こういう風にスタックを使うのか・・・

633774さん:2008/10/20(月) 18:55:58 ID:CENbthlg0
FILE *fp = fopen("test.txt", "wb");
char *s = "やらないか?";
fwrite(s, strlen(s), 1, fp);
fclose(fp);

fp = fopen("test.txt", "rb");

fseek(fp, 0, SEEK_END);
fpos_t pos = 0;
fgetpos(fp, &pos);

fseek(fp, 0, SEEK_SET);

FILE *out = fopen("test_out.txt", "wb");

fpos_t pos4 = pos >> 2;
int mod = pos && 0x00000003;
for(fpos_t i = 0; i < pos4; ++i){
unsigned int p;
fread(&p, sizeof(p), 1, fp);
p ^= 0xF0F0F0F0;
fwrite(&p, sizeof(p), 1, out);
}
for(int i = 0; i < mod; ++i){
unsigned char p;
fread(&p, sizeof(p), 1, fp);
p ^= 0xF0;
fwrite(&p, sizeof(p), 1, out);
}

fclose(out);
fclose(fp);

return 0;

634774さん:2008/10/20(月) 20:40:00 ID:CENbthlg0
The GNU MP Bignum Library
http://gmplib.org/
----
多倍長計算。

635774さん:2008/10/20(月) 21:00:16 ID:CENbthlg0
SVG2Phun
http://www.geocities.jp/int_real_float/svg2phun/SVG2Phun.html

636774さん:2008/10/20(月) 22:10:34 ID:CENbthlg0
取り敢えずソートを変更できるようにしてみたのだ!

637774さん:2008/10/20(月) 22:11:17 ID:CENbthlg0
タグの一覧も表示してみたのだがまだおまけの段階です。

638774さん:2008/10/20(月) 23:49:06 ID:CENbthlg0
よし。タグでの絞り込みも実装できた。
削除もちゃんと働いている。
後は、削除時やタグ編集時の即更新処理だけである。
急激に実用度が上がったwww

639774さん:2008/10/20(月) 23:49:57 ID:CENbthlg0
全体で1100行ほどのソースになった。

640774さん:2008/10/21(火) 00:24:47 ID:CENbthlg0
 今日の時点での - Kei_9 なげやりにっき
http://d.hatena.ne.jp/Kei_9/20081020/1224510600

641774さん:2008/10/21(火) 00:42:07 ID:CENbthlg0
httpsプロトコルでもURIにパスワードとか含めたら、簡単に読まれそうだなと思っていたのだがそうではないみたい。
httpsというのはhttp + SSLということである。
で、此れは、httpで通信する前にSSLという規約で鍵を交換。
そしてhttp通信はSSLを通して通信すると。

つまり、httpのリクエスト自体がもう暗号化されているのでURLに含めても安全というわけ。
漸く安心してURLにパスワードが書けるようになりましたとさ。

まあ、POSTメソッドもリクエストに載せるから安全ではないという風に思っていたのだが、やっぱりそこまでアホじゃないよねw

642774さん:2008/10/21(火) 00:42:20 ID:CENbthlg0
SSLじゃないかもwwwwwwww

643774さん:2008/10/22(水) 22:38:54 ID:CENbthlg0
JOI2006模擬試験1 問題1@Python(-48) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081022/1224676107
JOI2006模擬試験1 問題1@Java(-47) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081022/1224676108
JOI2006予選1 問題1@C++(-50) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081022/1224678188
JOI2006予選1 問題1@Java(-52) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081022/1224678951
JOI2006予選1 問題1@Ruby(-53) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081022/1224679935
JOI2006予選1 問題1@Perl(-54) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081022/1224680790

644774さん:2008/10/24(金) 18:17:53 ID:CENbthlg0
JOI2006予選 問題2@C++(-60) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081023/1224767145
JOI2006予選 問題1@C++(簡潔になったよ!)(-58) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081023/1224761884
JOI2006模擬試験1 問題5@Python(-57) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081023/1224761601

645774さん:2008/10/24(金) 19:30:58 ID:CENbthlg0
ウノウラボ Unoh Labs: シェルの仕組み(前編)
http://labs.unoh.net/2008/10/post_126.html

646774さん:2008/10/25(土) 17:05:27 ID:CENbthlg0
JOI2006予選 問題3@Perl(-65) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081024/1224853021
JOI2006予選 問題4@C++(-66) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081024/1224856862

647774さん:2008/10/25(土) 19:57:45 ID:CENbthlg0
ちょwwwwwwwwwwwwwwwwwww
コンパイラにバグ発見wwwwwwwwwwwwwwwwwwwwwwwww
VC++駄目だなwwwwwwwwwwwwwwww

648774さん:2008/10/28(火) 21:53:40 ID:CENbthlg0
?URL - URLに合い言葉認証
http://nazourl.com/
-----
base64した内容をURLに入れる。
でパスワードを適当に入れる。
これでファイル置き場になるんじゃね?

649774さん:2008/10/28(火) 22:04:34 ID:CENbthlg0
駄目だ。
base64にしても半角全角が保存されない。
それに、大きすぎるとサーバーエラーになってしまうようだ。
もうだめぽ。

650774さん:2008/10/29(水) 21:10:18 ID:CENbthlg0
Sleipnirでfavicon.icoをとりに行くときに、User-Agentを指定させない方法は
0x000649B4の52を55に変えればよいみたい。

651774さん:2008/10/29(水) 21:10:49 ID:CENbthlg0
今のバージョン情報

===========================================================
Sleipnir Version: 2.8.2 クライアント情報
Unicode Edition (Number. 2802401)
-----------------------------------------------------------

■ マシン
OS: Windows XP Home Edition Service Pack 3 (build 2600) (Japanese)
IE(Trident): 7.0.5730.13
CPU: 1 of INTEL (Intel(R) Pentium(R) M processor 1.73GHz)
RAM: 502MB (159MB Free)
FlashPlayer: 9.0.124.0
FireWall: Trend Micro Personal Firewall

■ 有効なプラグイン
CapMail: 0.0.4
FaviconCleaner: 0.1.5
FormResize: 0.1.1
Glanchip: 1.0.2
Hatena Bookmarker: 1.1.3
Headline-Reader Plugin: 1.3.2
Headline-Ticker (Dock ver.): 1.0.6
JIT Actions: 0.0.1
JIT Actions OpenLinkGecko: 0.0.1
JIT Actions SetClientTopMost: 0.0.1
Launch Extension: 0.1.0
Link Panel: 1.1.2
MemoPeta: 0.0.2
Mini Clock: 0.0.4
MixChain: 1.2.3
Mosa (Open ALPHA): 0.1.6
OpenLinkExtension: 0.1.2
RSS Bar Panel: 1.3.3
SafeBrowsing Extension: 0.2.0
Sagittarius Dock: 0.3.0
SeaHorse: 1.1.2
ShootingStar Panel: 0.1.0
ShowPanel Action: 0.0.1
SkinConnection: 1.0.0
SkyPalette: 1.0.3
SnapCrab: 1.1.5
SuperDrag Extension: 1.0.7
UserAction Extension: 1.0.1
UserDefinedTools: 1.0.0

■ 使用中のスキン
Lantana: 0.0.1
===========================================================

652774さん:2008/11/01(土) 18:13:06 ID:CENbthlg0
COM作るときは、objbase.hをインクルードすればいいのかな?

653774さん:2008/11/01(土) 18:22:02 ID:CENbthlg0
正直IUnknownを継承するのはC++上での意味上の問題であり、実際には特に意味はない。

654774さん:2008/11/01(土) 18:50:25 ID:CENbthlg0
よく使うASM命令ベスト100位に説明つけてみた(7/10) - KENJI’S BLOG
http://d.hatena.ne.jp/kenjiaiko/20081101/1225481451

655774さん:2008/11/01(土) 20:25:41 ID:CENbthlg0
Sleipnirのfxプラグインに俺の超適当プラグインを潜入させることに成功。
これで、弄くりまくれる。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板