昼下がりグリッチ

今日もグリッチ

import Image,sys
from random import randint

file = sys.argv[1]
im = Image.open(file)

width,height = im.size
interval = 0

for h in range(height):
    if(interval == 0):
        interval = randint(0,height-1)
        rand_slide_x = randint(0,14)
        rand_slide_y = randint(0,4)
        slide_x = 0
        slide_y = 0
    else:
        interval -= 1

    slide_x += rand_slide_x
    slide_y += rand_slide_y

    for w in range(width):
        current = (w,h)
        new_h = h + slide_y
        new_w = w + slide_x
        if new_h >= height: new_h = h
        if new_w >= width: new_w = w
        src = (new_w,new_h)
        im.putpixel(current,im.getpixel(src))

im.show()
im.save("glitch091021.jpg")

1256101630

spim

グローバル変数の代入

    .data

    .globl src
src: .word 2001

    .globl dst
dst: .word 0

    .text
    .globl main
main:
    la $t0, src
    lw $s0, 0($t0)
    la $t1, dst
    sw $s0, 0($t1)
    li $v0, 0
    jr $ra

実行。printでメモリアドレスとか内容が表示されるので、runの前後で比較する。

$ spim
SPIM Version 7.4 of January 1, 2009
Copyright 1990-2004 by James R. Larus (larus@cs.wisc.edu).
All Rights Reserved.
See the file README for a full copyright notice.
Loaded: /opt/local/share/spim/exceptions.s
(spim) load "ls.as"
(spim) print dst
Data seg @ 0x10010004 (268500996) = 0x00000000 (0)
(spim) print src
Data seg @ 0x10010000 (268500992) = 0x000007d1 (2001)
(spim) run
(spim) print dst
Data seg @ 0x10010004 (268500996) = 0x000007d1 (2001)
(spim) print src
Data seg @ 0x10010000 (268500992) = 0x000007d1 (2001)

博龍軒

九大医学部からちょっと離れたとこにある。

1256074647

店内はちょっと豚骨臭い。

わんたんめんを注文。

1256074690

麺は平打ちの細麺でわりと好みだが、スープはちょっと豚骨の匂い、、、慣れれば美味しいのかな。

夕暮れグリッチ

そしたらベンジーあたしをグリッチで殴って

import base64,re
from random import randint

jpgfile = "/Users/kzfm/orig.jpg"
jpg_text = base64.encodestring(open(jpgfile,"rb").read())
glitched_text = ""
for c in jpg_text:
    if c == '0':
        glitched_text += str(randint(0,9))
    else:
        glitched_text += c
glitched_jpg = base64.decodestring(glitched_text)
open("glitched.jpg","wb").write(glitched_jpg)

1256026704

Jpeg においては DCT を施すために如何なる入力画像も 8x8 画素のブロックに分割されるらしいのでbase64エンコーディングしたのをいじってデコードすると8x8のブロックの単位でノイズが混じるっていう理解でいいのか。

参考

ProductName 無罪モラトリアム
椎名林檎
EMIミュージック・ジャパン / ¥ 3,059 (1999-02-24)
在庫あり。

PILでglitch

早朝グリッチ。PILのputpixelは遅いので、1.1.6からはim.loadを使えとのこと。

import Image,sys
from random import randint

file = sys.argv[1]
im = Image.open(file)

width,height = im.size
slide_x = 0
slide_y = 0
rand_slide_x = randint(0,14)
rand_slide_y = randint(0,4)

pix = im.load()
for h in range(height):
    slide_x += rand_slide_x
    slide_y += rand_slide_y

    for w in range(width):
        new_h = h + slide_y
        new_w = w + slide_x
        if new_h >= height: new_h = h
        if new_w >= width: new_w = w
        pix[w,h] = pix[new_w,new_h]

im.show()
im.save("glitch091020.jpg")

1255993806

そしてGlitch: Perfet Imperfectionsもポチッた

ProductName Glitch: Designing Imperfection

Mark Batty Publisher / 2839円 ( 2009-09-16 )


参考

ふくちゃん

そういえば、以前いったときにちゃんのつくとこ薦められたなぁとおもいつつ、ちゃんがつくからふくちゃんでいいかなと。

1255948171

でてきたラーメンはドロリ度少なめ、麺太め。替玉した。

1255948518

キクラゲとかは卓上にあるので好みでトッピング。

いけ麺

九大医学部近く

1255947882

言うまでもなく豚骨ラーメン。かためで。

1255947961

麺は細い(これは好み)。替玉しないとスープがツラクなってくるのだけど、九州の人はどうしてんだろうか?普通に残すのかな?

MIPS32エミュレータ

SPIM

macだと

sudo port install spim

でOK。

早速のhello world

      .data
msg:  .asciiz "Hello world.\n"

      .text
      .globl main

main:
      li   $v0, 4
      la   $a0,msg
      syscall
      jr   $ra

後半にスレッドとかノンブロッキングの話が出てくるらしいので楽しみ

自分の小さな「箱」から脱出する方法

amazonのレートちょっと高すぎちゃうかと。

ProductName 自分の小さな「箱」から脱出する方法
アービンジャー インスティチュート,金森 重樹,冨永 星
大和書房 / ¥ 1,680 ()
在庫あり。

箱の内、箱の外という表現を使って、自分の内側に閉じこもっているんじゃないかということを問うてみよう的な。読みやすいしそれなりに共感できるところが多い。

でも、一方で明確な二元論ってのはやっぱ気持ち悪いし、それよりも高い視点から見た場合に「まぁそういう気の持ちようも一つの選択肢としてあるよね」ぐらいに捉えておいたほうがいいのかもしれんなぁと。

個人的には「タオは笑っている」のほうが好き。

ProductName タオは笑っている (プラネタリー・クラシクス)
R・M・スマリヤン
工作舎 / ¥ 2,100 ()
在庫あり。

でびっと 博多店

何年かぶりの博多だが、日曜はラーメン屋が閉まりまくっていて開いてるとこを探して彷徨った。

で、辿り着いたでびっと

1255870252

豚ラーメン+煮卵

1255870301

普段だったら卵やめて替玉にしとけばよかった(と思うくらい麺は少なめ)けど、あんま食欲がなかったのでむしろこれくらいがベストだった。