謎[メモ]

3:02% /mnt/opt/altera/10.0/quartus/bin/quartus
/mnt/opt/altera/10.0/quartus/bin/quartus: line 74: /mnt/opt/altera/10.0/quartus/linux/quartus: No such file or directory
3:05% lat /mnt/opt/altera/10.0/quartus/linux/quartus

  • rwxr-xr-x 1 root root 249312 Oct 7 23:55 /mnt/opt/altera/10.0/quartus/linux/quartus

3:05% sh /mnt/opt/altera/10.0/quartus/linux/quartus
/mnt/opt/altera/10.0/quartus/linux/quartus: /mnt/opt/altera/10.0/quartus/linux/quartus: cannot execute binary file
3:05% /mnt/opt/altera/10.0/quartus/linux/quartus
zsh: no such file or directory: /mnt/opt/altera/10.0/quartus/linux/quartus

Debian wheezy/sidでQuartus II

Alteraの開発ツールはexternalを持ってきて必要なだけnetinstするほうが美しいのですが、
いかんせんどっかネットワークの設定まわりでこけます。
たぶんRHEL系に依存してるんだと思われます。不可解。

そこで、11.1_173_quartus_free_linux.shをおとします。3203561074byteとかあります。

そしてchmod +x 11.1(ryして実行。

Verifying archive integrity... とか出てまたされたあとに、unexpectedな&があると言われておちますね。
Uncompressing Quartus II Web Edition (Free).
ではでかいファイルを落としている最中にノイズでも入ったんでしょうか。
そういえばMD5とり忘れたし…

Hand Hackでインストーラを無理やり立ち上げ。

いいえ、違います。
./setup: 1: ./setup: Syntax error: "&" unexpected
のエラーをながめます。
そして、cd 11.1_173_quartus_free_linux
します。
vim setup
すると、#!/bin/sh
とかありますね。
そうです、どこかのある時点でsh(つーかdash)の仕様がかわったんじゃないですかね?

ちゃーわけで、#!/bin/zsh
とします。bashでもいいんでしょうが、zshにしたほうがキーストロークが1つ少ないです。

はい、./setupします。
あがったね。やったね。

またしてもhogeしてjtag debuggerをあげる。

はい、64bit版だとこんな問題が起きます。
usbblasterが認識されません。
そしてELF32だからよめねーよとか文句をいわれます。

そこで、udevかいて、fstabかいて、そしてっ

mv quartus/linux/jtagd quartus/linux64/jtagd
します。
なんてひどいhack!

任意長配列宣言の謎

int size; scanf("%d", &size); int hoge[size]; とか普通にできちゃうのか。。

http://twitter.com/#!/siritori/status/132506438760284160
ほう。
どんな実装なんだろうか。
pythonに飽きていたから、gccで-Sして読んでみた。
raxとか出てきやがった。
x64ェ…
そこで安定のARM.

.cpu arm7tdmi-s
.fpu softvfp
:
:
main:
stmfd sp!, {fp, lr} @まあここらへんはスタックの操作です。
add fp, sp, #4 @スタックポインタに4足してフレームポインタにしてます。
sub sp, sp, #8 @親スタックの保護です。
ldr r0, .L6 @scanf("%d"の%dの文字列
sub r1, fp, #8 @sp-4のアドレスをr1へ。sanfの&size
bl scanf
ldr r3, [fp, #-8] @さっきのr1の位置に返り値がきてるっぽい…からロード
mov r2, r3, asl #2 @左2シフトしてその値をr2へ。intなので順番とアドレスに4倍の差がある。
add r2, r2, #14
bic r2, r2, #7 @下3bitをクリア 何のために…? …☆
sub sp, sp, r2 @新しく☆で作った謎の範囲までをスタック範囲とする。
あとは、僕のかいたテストプログラムによるもの。hoge[size]全部を0でうめますん。
mov r2, sp
mov r1, r3
cmp r3, #0
beq .L4
mov r3, #0
mov r0, r3
.L3: @このループでスタック領域のアレをいじります。
str r0, [r2, #4]! @r0は今0な。
add r3, r3, #1
cmp r1, r3 @さっきのをしたからやっていって、おしまい…?
bne .L3
.L4:
sub sp, fp, #4
ldmfd sp!, {fp, lr}
bx lr
.L7:
.align 2
.L6:
.word .LC0
.size main, .-main
.section .rodata.str1.4,"aMS",%progbits,1
.align 2
.LC0:
.ascii "%d\000"
.ident "GCC: (Sourcery G++ Lite 2010.09-51) 4.5.1"

gitlabのインストール方法

https://github.com/gitlabhq/gitlabhq/wiki/Install
とかを参考に。
ubuntudebian でできるでしょう。
ただ、ruby 1.9.2が必要で、これはDebianだとsidにしかきてないんじゃないかなあ。


git clone git://github.com/gitlabhq/gitlabhq.git
cd gitlabhq/

#まずpipとか入れます。もしくは、pipをいれたくなかったら、easy_installもできます。
sudo apt-get install python-pip ruby1.9.3 #3なの注意
sudo pip install pygments

#もしくはeasy_installの場合。
sudo apt-get install python-setuptools
sudo easy_install pygments

#次にsqlをいれます。
sudo apt-get install libsqlite3-dev

#gemでいろいろいれます。
sudo gem install bundler
sudo bundle install

おおっと。
ここで、libxml2が入ってるにもかかわらずないといわれる。
ここをみて、 http://nokogiri.org/tutorials/installing_nokogiri.html
あ、libxml2-devじゃないといけないんじゃ…
ということで
sudo apt-get install libxslt-dev libxml2-dev
sudo gem install nokogiri
お、なんかいっぱいNo〜ってでてるけどはいったっぽい。
sudo bundle installを続けて叩く。
いろいろ入れられてるのが気にくわないけど気にしない。
すると今度はlinecache19がコケる。
なんでも、ruby1.9.3を入れたのに、1.9.2以上じゃないといやだとかぬかしている。

そこで
sudo gem1.9.3 install linecache19
する。コンパイルが遅い。
ここで、先のsudo gem install bundlerを見直した。
sudo gem1.9.3 install bundler
そこから、もう一度
sudo bundle install
おお、通った。

そこで、正解は
sudo gem1.9.3 install bundlerのようだ

次に、bundle installを平権限で実行。
bundle exec rake db:setup RAILS_ENV=production
ここらへんでちからつきた。
またこんど。

bundle exec rake db:seed_fu RAILS_ENV=production
usermod -a -G git username
echo "USERNAME ALL = (git) NOPASSWD: /bin/rm" | sudo tee -a /etc/sudoers

外からDjangoのadminのCSSがよみこまれない

http://www.kirishikistudios.com/?p=159
のような現象。
adminに入ってもCSSがよみこまれない。
Debian sidの場合は、base.css
21:45% find /usr |grep base.css
/usr/share/pyshared/django/contrib/admin/media/css/base.css
^C
らしいですよ。
/var/wwwがDocumentrootだとして、

mkdir /var/www/static/admin
cd /var/www/static
ln -s /usr/share/pyshared/django/contrib/admin/media/css/ admin/css

するとできた