ikautak.log

C/C++, Python, CUDA, Android, Linux kernel, Network, etc.

ファイルを分割するAndroidアプリ

f:id:trisection:20140119171204p:plain

SDカード内のファイルを2, 3MBくらいに分割したくて作った。
エクスプローラ系のアプリから共有 -> FileDiv で起動する。

続きを読む

gnumachのビルド

マイクロカーネルを触ってみたくてGNU Hurd調べてたら、GNU MachというIPCメカニズムの上で動いているようだ。
で、まずはGNU machのビルドから入ってみた。

続きを読む

読んだ本 「V字回復の経営」 「不本意な敗戦」

コマツの赤字事業部を再建したときの話を元にした、物語風の経営の本。
日本の終身雇用を支持しているようで、安易なリストラなどをせずに抜本的に改革していくのだが、うまくいきすぎだろう。 こういう本を読むとやっぱり自分に経営は無理だな。論理的なことばかりでないというか何というか。

不本意な敗戦 エルピーダの戦い

不本意な敗戦 エルピーダの戦い

エルピーダの元社長の本。 ニュースだけ見ていると、エルピーダを潰しておいて会社更生法後も社長を続けた人みたいな良くない印象があるが、外資の経験が長く技術にも明るい、日本にはあまりいなそうなすごい経営者だったようだ。

pythonでファイルの分割・結合

ファイルを分割・結合するスクリプト。

まず分割する方。ファイル名を渡すと .frac0 などを末尾につけたファイルに分割される。
分割サイズはとりあえず1MB。

#!/usr/bin/env python

import sys
import os.path


def bin_div(f, size=1024*1024):
    l = os.path.getsize(f)
    div_num = (l + size - 1) / size
    last = (size * div_num) - l

    b = open(f, 'rb')
    for i in range(div_num):
        read_size = last if i == div_num-1 else size
        data = b.read(read_size)
        out = open(f + '.frac' + str(i), 'wb')
        out.write(data)
        out.close()
    b.close()


if __name__=='__main__':
    if len(sys.argv) > 1:
        bin_div(sys.argv[1])

次に結合する方。.frac0などを除いたファイル名と分割数を渡すと結合した.outを作成する。

#!/usr/bin/env python

import sys


def bin_cat(f, num):
    out = open(f + '.out', 'wb')

    for i in range(num):
        frac = open(f + '.frac' + str(i), 'rb')
        out.write(frac.read())
        frac.close()
    out.close()


if __name__=='__main__':
    if len(sys.argv) > 2:
        bin_cat(sys.argv[1], int(sys.argv[2]))