「Ascii」を含む日記 RSS

はてなキーワード: Asciiとは

2008-02-05

池田氏アクセスアップてこ入れ

はてなブックマークを叩いて煽る

http://b.hatena.ne.jp/entry/http://blog.goo.ne.jp/ikedanobuo/e/9ad59f1a7f3069cac4c09a84652fccbf

ブックマーク先のエントリーにて池田信夫氏が曰く、

サイバーリバタリアン」の第2回は、永遠テーマ実名匿名」論争である。当ブログでこういうテーマを扱うと、はてなブックマークがいつも大騒ぎになる。そこに群れるお子様たちは、匿名で悪口を書ける(しかも反撃されない)おもちゃを取り上げられるのがいやなのだ。既得権にしがみついて自立できない古い日本人の卑しさを、彼らも受け継いでいるわけだ。


「お子様」とか「古い日本人の卑しさ」とかの文言は、煽りでしょう。

エントリーの後半でgooIDでの自ブログコメントを是認されているのなら、はてなIDでのはてブコメントも是認されるはずでしょうに。それなのになぜ、asciiの記事のようにはてブ叩きをされるのか。

池田氏はてブ叩きって、以前も似たようなことを読んだことあって、それから議論が進んでいないので、定期的なルーチンワークに思える。

2007-11-13

スゲエな女性

いわばI/OマイコンASCII、TheComputer、TheBASIC、BASIC Magagine、POPCOM、コンプティーク、Oh!シリーズ、MagagineシリーズログインテクノポリスBEEPバックアップ活用テクニック、みたいなものか

2007-10-30

μsをusって書くのは普通なの?

さっき、時間の単位に「us」って書かれてたんで何の事かと思ったら、「μs」のことだったらしい

そういえばasciiしか使えない英語圏じゃ「μ」はどう表示してるんだろうね

2007-08-02

Re: プログラミング言語Cの凄い本を探している

エキスパートCプログラミング―知られざるCの深層 (Ascii books)

C実践プログラミング

このへんどうよ。両方とも出てすぐ読んだからよく覚えてないけど、かなりいい本で感動したということだけは覚えてる。今読んでも感動できるかどうかは知らんけどな。

それにしても今時「プログラミング言語C」と書いた君の誠実さに乾杯。「C言語」とか言い出したのって誰なんだろう。Wikipedia でも「Java (プログラミング言語)」の記事名を「Java言語」にしようなんて馬鹿げた議論がなされていたのを思い出した。

2007-07-11

もうあきらめた。

寝るよ。疲れた。おいらの睡眠時間を返せ…。寝る前にみるんじゃなかった。

http://www.maid-robo.com/masda/mairo.php

完成しなかったよ。

迷路ロジックは多分そこらへんをぐぐればいっぱいあるとおもうが

あえて独自で車輪の再発明をしてみた。

うんこくさいプログラムになってしまった。洗練さのかけらもない。

しかも完成していない。

誰か完成させておいて。

なにか二次元配列をつかいたかったのだけど、php配列ってよくわからないや。

んー。いけてないなーーー。。。。

これが俺の限界か…。

おやすみ。。。



<pre>
<?php

/**
http://anond.hatelabo.jp/20070711013155
迷路を作成するプログラムを書いてみましょう。
1BIT/PIXEL のビットマップで道と壁の幅は1PIXEL。
任意の解像度で出力できること。
入り口と出口があること。
実行毎に異なる迷路が生成されること。
それをASCIIテキストで出力すること。
ソースコードテキストで出力した迷路増田に投稿すること。
言語問わず。
期限無し。



出力例)
##########
..#...#...
#.#.#.##.#
#...#..#.#
#####.##.#
#...#.#..#
#.#.....##
##########
***/



define("MAP_X" ,10);
define("MAP_Y" ,10);
define("MAP_WALL" ,"■");
define("MAP_LINE" ," ");


// 塗り。
for ($y = 0 ;$y < MAP_Y  ; $y++) {
	for ($x = 0 ;$x < MAP_X  ; $x++) {
		$map[$y][$x] = MAP_WALL;
	}
}


// start pointの設定
if (rand(0,1)%2)  {
	$start_x = rand(1,MAP_X-2);
	$start_y = (MAP_Y-1)*rand(0,1);
} else {
	$start_x = (MAP_X-1)*rand(0,1);
	$start_y = rand(1,MAP_Y-2);
}
$map[$start_x][$start_y] = MAP_LINE;


$i=0;
$giveupcnt = 0;
$now_x = $start_x;
$now_y = $start_y;


while ($i < 40) {


	if ($giveupcnt > ((MAP_X-1)*(MAP_Y-1))) {
		break;
	}

	if (rand(0,1)%2)  {
		$rnd_x = rand(-1,1);
		$rnd_y = 0;
	} else {	
		$rnd_x = 0;
		$rnd_y = rand(-1,1);
	}

	$tmp_x = $now_x + $rnd_x;
	$tmp_y = $now_y + $rnd_y;

	// 壁だったらパス
	if ($tmp_x <= 0 || $tmp_x >= (MAP_X-1) ) {
		$giveupcnt++;
		continue;
	}
	if ($tmp_y <= 0 || $tmp_y >= (MAP_Y-1) ) {
		$giveupcnt++;
		continue;
	}

/**
print("@".($tmp_x) . "," . ($tmp_y)."<br>");
print(($tmp_x + $rnd_x) . "," . ($tmp_y + $rnd_y)."<br>");
print(($tmp_x + -1*$rnd_x) . "," . ($tmp_y + -1*$rnd_y)."<br>");
print(($tmp_x + -1*$rnd_y) . "," . ($tmp_y + -1*$rnd_x)."<br>");
***/

	// そこを掘ることにより他の壁とつながってしまうのであればパス
	if ($tmp_x > 0 &amp;&amp; $tmp_x < (MAP_X-1) &amp;&amp;
		$tmp_y > 0 &amp;&amp; $tmp_y < (MAP_Y-1) ) {

		if ($map[$tmp_x + $rnd_x][$tmp_y + $rnd_y] == MAP_LINE ||
			$map[$tmp_x + $rnd_y][$tmp_y + $rnd_x] == MAP_LINE ||
			$map[$tmp_x - $rnd_y][$tmp_y - $rnd_x] == MAP_LINE ) {
			$giveupcnt++;
			continue;
		}
	}


	// 適当なマス数掘り進んだところで壁際まできれてばゴールをつくる
	// 未実装


	$now_x = $tmp_x;
	$now_y = $tmp_y;

	$map[$now_x][$now_y] = MAP_LINE;
	$i++;

}


// 4方壁のところを起点に同じルールで通路をつくる



foreach ($map as $key => $value) {
	$value = join("",$value);
	print($value."<br>");
}

//print_r($map);


?>
</pre>

pre記法で書いたらトラバがとんでなかったので、追加。

http://anond.hatelabo.jp/20070711013155

2007-05-29

日記などの文章で「donmai」と自ら書く奴を下に見ている

「donmai」ってのは大体ASCII以外使えない環境などで、日本語ローマ字で伝えるときなどに使われると思っている。それを「コメントする気をなくすのです。donmai」などと日本語とともにローマ字を発動してる奴は、いつも三秒以内に文章表現力が低い奴だと見なしている。

他にも、「括弧の多様」などは下に見る。他にも書くくらいならお前は文章を推敲するべきだった。

俺はそんな感じでいつも増田コメントする気をなくすのですw

2007-04-13

ASPファイル受信

'/** Requestオブジェクトから受信したデータを取り出します。
' * @return byte配列を格納した連想配列を返します。
' */
Function getRequestItem()

  If Request.TotalBytes <= 0 Then
    getRequestItem = Null
    Exit Function
  End If

  Dim data
  Dim separator
  Dim dataArray
  Dim buffer
  Dim filePath
  Dim fileName
  Dim ix
  Dim stringIndex
  Dim myCrLf
  Dim items
  Dim itemName

  myCrLf = convertAsc(vbCrLf)
  Set items = Server.CreateObject("Scripting.Dictionary")

  data = Request.BinaryRead(Request.TotalBytes)
  data = LeftB(data, UBound(data) - 3) & myCrLf

  separator = MidB(data, 1, InStrB(1, data, myCrLf) + 1)

  dataArray = SplitB(data, separator)

  For ix = 2 To UBound(dataArray) Step 1
   '1行読み込み
    buffer = MidB(dataArray(ix), 1, InStrB(1, dataArray(ix), myCrLf) - 1)

   'アイテム名の取得
    stringIndex = InStrB(1, buffer, convertAsc("name="))
    If stringIndex > 0 Then
      itemName = convertUnicode(MidB(buffer, stringIndex + 6, InStrB(stringIndex, buffer, ChrB(34)) - stringIndex))
     Else
      itemName = ""
    End If

   'ファイル名の取得
    stringIndex = InStrB(1, buffer, convertAsc("filename="))
    If stringIndex > 0 Then
      filePath = MidB(buffer, stringIndex + 10, InStrB(stringIndex, buffer, ChrB(34)) - stringIndex)
      fileName = RightB(filePath, LenB(filePath) - LastInStrB(0, filePath, convertAsc("\")))
     Else
      fileName = ""
    End If

   'データ部の取得、改行コードの切り捨て
    buffer = RightB(dataArray(ix), LenB(dataArray(ix)) - InStrB(1, dataArray(ix), myCrLf & myCrLf) - 3)
    buffer = LeftB(buffer, LenB(buffer) - 2)

    items.Item(itemName) = parseBytes(buffer)
  Next

  Set getRequestItem = items
  Set items = Nothing

End Function

'/** 文字列の最後尾から指定文字を検索します。
' * @param Start 検索する開始文字位置を指定します。
' * @param String1 検索対象の文字列を指定します。
' * @param String2 検索する文字列を指定します。
' */
Function LastInStrB(ByRef Start, ByRef String1, ByRef String2)

  Dim ix
  Dim lastIndex
  Dim searchLength

  searchLength = LenB(String2)
  lastIndex = LenB(String1) - searchLength + 1
  If Start > 0 And Start < lastIndex Then
    lastIndex = Start
  End If
  For ix = lastIndex To 1 Step -1
    If MidB(String1, ix, searchLength) = String2 Then
      LastInStrB = ix
      Exit Function
    End If
  Next

  LastInStrB = 0

End Function

'/** アスキー文字列に変換します。
' * @param String 対象の文字列を指定します。
' */
Function convertAsc(Byref String)

  Dim ix
  Dim ascii

  ascii = ""
  For ix = 1 To Len(String) Step 1
    ascii = ascii & ChrB(AscB(Mid(String, ix, 1)))
  Next

  convertAsc = ascii

End Function

'/** Unicode文字列に変換します。
' * @param AscString 対象のアスキー文字列を指定します。
' */
Function convertUnicode(Byref AscString)

  Dim ix
  Dim unicode

  unicode = ""
  For ix = 1 To LenB(AscString) Step 1
    unicode = unicode & Chr(AscB(MidB(AscString, ix, 1)))
  Next

  convertUnicode = unicode

End Function

'/** バイナリ対応版Split関数です。
' * @param String 対象の文字列を指定します。
' * @param Delimiter 区切り文字を指定します。
' */
Function SplitB(Byref String, Byref Delimiter)

  Dim ix
  Dim lastIndex
  Dim searchLength
  Dim start
  Dim datas()
  Dim dataIndex

  dataIndex = 1
  start = 1
  delimiterLength = LenB(Delimiter)
  lastIndex = LenB(String) - delimiterLength + 1

 '最初から1文字ずつ繰り返します。
  For ix = 1 To lastIndex Step 1
   'データを比較します。
    If MidB(String, ix, delimiterLength) = Delimiter Then
     'データを取り出せたら配列に格納します。
      ReDim Preserve datas(dataIndex)
      datas(dataIndex) = MidB(String, start, ix - start)
      dataIndex = dataIndex + 1
      start = ix + delimiterLength
    End If
  Next

  SplitB = datas

End Function

'/** Byte配列を返す関数です。
' * @param data 対象のデータを指定します。
' */
Function parseBytes(Byref data)

  Const adLongVarBinary = 205
  Dim recordset

  If LenB(data) <= 0 Then
    parseBytes = CByte(0)
    Exit Function
  End If

  Set recordset = Server.CreateObject("ADODB.Recordset")
  recordset.Fields.Append "UpLoadBinary", adLongVarBinary, LenB(data)
  recordset.Open
  recordset.AddNew
  recordset.Fields("UpLoadBinary").AppendChunk data
  recordset.Update

  parseBytes = recordset.Fields("UpLoadBinary").Value
  recordset.Close
  Set recordset = Nothing

End Function

2007-04-04

http://anond.hatelabo.jp/20070404175210

ちなみに元ファイルはなに?

ファイルバイナリASCIIかによって圧縮って変わらなかったっけ?

その辺よく覚えてないけど

2007-02-22

実装ではなく趣旨を理解しよう

*{ margin : 0 }はもう古い!? | Emotional Web

はてなブックマーク - *{ margin : 0 }はもう古い!? | Emotional Web

はてなが酷い。

はじめに

base.cssとかcommon.cssとかを書いて読み込ませるのは、何のためだったか考えてみよう。古い新しいの問題じゃないと気づくだろうか。少なくとも、レンダリング時間なんて完全に後付けだと洞察できるはずだ(あなたたちはjs大好きだよね)。

さて、真っ新なとこからCSS書いてくとき、どんなデザインにしろほぼ毎回指定する要素が出てくる。a img{border:none;}とかhtml,body{margin:0; padding:0;}とかだ。それなら始めにa img{border:none;}とかを羅列したファイルを用意しておけば、余計な手間が省けるじゃないか。たぶん根本の動機はこんなとこだろう。

それがいつの間にかデフォルトで適用されるスタイルキャンセルするっていう方向へ迷走し、*{margin:0; padding:0;}なんて表現が生まれた。この指定は言うまでもなく有害で、著名なのはフォームのボタンが縮こまったり、liのネストが判別できないなどの副作用が生まれる。あまりにもすべてがキャンセルされるため、わざわざひとつずつ要素のスタイルを定義しなければならなくなって、ファイルサイズは増え可読性は下がり、冒頭で言うようにレンダリングにも時間が掛かるようになる。FireBugがない時代、この要素のスタイルはどのファイルのどの部分で指定されてるのか調べるのは本当に大変だった。*.cssgrepしたとしても、単にul li{}とか書かれてるのがカスケーディングしてたらお手上げ。

これらのデメリット認識したとき、はて*{margin:0; padding:0;}のメリットはなんだろうと考える。あ、特にないよね。じゃあやめよ。←いまここ

こんなのは実際にCSSを書いてたら気づくことだ。海外とか時代とか関係ない。元記事の趣旨は「*{margin:0;}は古い」じゃなくて「どんなCSSが効率的か Part2」だ。レンダリング重いから*{margin:0;}やめようなんてコピペ脳丸出しじゃ、いつまで経っても効率的なCSSなんぞ書けんよ。

 

原理主義者が「(例えば数十年後にリリースされた)UAがどんなスタイルを適用するかわからないので、最初にリセットするのは永続性完全性の観点から意味がある」と言うけども、未知のUA(というかデフォルトスタイル)まで考えてCSSを書くのはあまりに大変だ。それに、そんなことになれば、たぶん、compat.user.cssみたいなのが流行るはず。デフォルトスタイルに頼った表現がしょせん実装依存なのは認めるけど、ちょっと非現実的すぎるので、考慮から外させてもらう。俺はいま実務の話をしたいんだ。

 

じゃあどんなのがいいんだよ

で、元記事では、じゃあどんなCSSがいいのかって点がついで程度にしか触れられていないので、俺なりに考えてみた。

a img{border:none;}

これは外せない。aの中のimgにborder付けたいってほうがイレギュラーなので、わざわざa.logo img{border:1px solid #333;}なんて書き直すのも苦にならない。例外には手作業でもって対応すべき。

html,body{margin:0; padding:0;}

ほとんどの場合、隙間を空けたいよりも隙間を空けたくない。キャンパスはフルに使いたい。

印刷時にはそうでもないので、@media print {body{padding:1cm;}}なんてのがあってもいいけど、それはまた別の話。あとそういうのは印刷するユーザー側で指定すべきだとも思う。理想論だけど。

*{font-style:normal;}

lang="ja"な文章において斜体は不要。どうせあなたはemとかaddressとかにfont-style:normal;付けるんだから。

pre,code{font-family:monospace; white-space:pre;}

preやcodeがsans-serifだとイラっと来ますよね。

これは絶対やるな

やられるとイラっとくるもの。個人的。

body{font-family: "MS Pゴシック";}など

俺はページをメイリオヒラギノやM+ FONTやVLゴシックで見たいんだよ! お前の趣味押しつけんな! あと最後に一般名(sans-serifとか)くらい書け!

でもpre.2ch-ascii-art{font-family: "MS Pゴシック";}なんてのはやさしさが溢れていてとても好ましいと思う。部分的にfont-family指定するのは別にいいけど、全体のデフォルトフォントをいじられるのは不愉快でしかない。

pre{overflow:auto;/* or scroll */}

まあ仕方ないのはわかる。解決法も知らない。けどホイールスクロールしてるとき興味のないサンプルコードで引っかかるのはとてもムカつくんだ。俺は君のサイトが崩れてるかどうかより、いつも通りのスクロールに関心がある。

pre以外にグラフィック目的overflow:auto;を指定するのは論外。

まとめ。そうねえ。

CSSは個々人のスタイルを反映してるということでしかないんじゃないの」

「そうですね」

ログイン ユーザー登録
ようこそ ゲスト さん