rails new hoge
とすると
`expand_path': non-absolute home
というエラーが出てしまって「Windowsだしなあ。」と諦めかけてたけど、このhomeというのは環境変数のHOMEのことらしく、確かにcygwinを使う時のためにHOMEに /cygdrive/ から始まる値を入れてたのを思い出したので環境変数 HOME を削除してみたら動いた。
ちなみに irb もHOMEに入ってる値によっては動かないらしい。
参考 `expand_path': non-absolute home
http://devnet.jetbrains.com/thread/437313
wxPythonを使って頑張って作ったGUIをPythonが入ってないPCの人も使えるようにするのにpy2exeで変換したら見た目が変わってしまった(古い?TK?)のでその対処法。
必要なファイル Microsoft.VC90.CRT.manifest
msvcm90.dll
msvcp90.dll
msvcr90.dll
の4つのファイルが必要。自分の環境だとPython 2.7 Portableを入れたフォルダに全部入っていたので、Py27MSdllsというフォルダをsetup.pyと同じ階層に作って全部入れました。
Microsoft.VC90.CRT.manifest の中で示されてるdllのバージョンが合ってるかどうか確認する。
違ってたら適宜修正する。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><br>
<!-- Copyright (c) Microsoft Corporation. All rights reserved. --><br>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><br>
<noInheritable/><br>
<assemblyIdentity<br>
type="win32"<br>
name="Microsoft.VC90.CRT"<br>
<s>version="9.0.21022.8"</s>
<span style=color:red;>version="9.0.30729.6161"</span><br>
processorArchitecture="x86"<br>
publicKeyToken="1fc8b3b9a1e18e3b"<br>
/><br>
<file name="msvcr90.dll" /> <file name="msvcp90.dll" /> <file name="msvcm90.dll" /><br>
</assembly><br>
setup.py setup.pyを書き換えて用意したこれらのファイルを読み込むように変更する。
# -*- coding: utf-8 -*-<br>
#<br>
# setup.py<br>
<br>
from distutils.core import setup<br>
import py2exe<br>
import glob<br>
<br>
<br>
class Target(object):<br>
""" A simple class that holds information on our executable file.
作業目的 さくらのVPSで自動ダウンロードしてるNHKの語学講座が大量になってきて容量が馬鹿にならなくなってきたので
mp3で出力されたものをm4aに変換しようとNeroAAC Encoderのインストール作業メモ。
インストール方法 まず
コマンドラインツールをここからダウンロードしてくる。
http://www.nero.com/enu/company/about-nero/nero-aac-codec.php
wgetで直接取ってくるなら
$ wget http://ftp6.nero.com/tools/NeroAACCodec-1.5.1.zip
圧縮ファイルを展開して
$ unzip ~/NeroAACCodec-1.5.1.zip -d neroaac
実行権限を付加
$ chmod +x ./neroaac/linux/neroAac*
んで、動作を確認
$ ./neroaac/linux/neroAacEnc
************************************************************* * * * Nero AAC Encoder * * Copyright 2009 Nero AG * * All Rights Reserved Worldwide * * * * Package build date: Feb 18 2010 * * Package version: 1.5.4.0 * * * * See -help for a complete list of available parameters.
画面遷移無しでファイルのアップロードしようと思ったらiframeを使った技とかややこしい情報が色々出てきて、なかなかやりたいことに辿りつけなかったのでメモ。
やりたい事と条件 ・ajaxなテキストファイルのアップロード
・テキストをRubyで編集して返す
・画面遷移せずに結果を表示
・IEは諦める。
必要最低限のコード まずHTMLを用意
ajaxupload.html
`
<script type="text/javascript" src="ajaxupload.js" charset="utf8"></script><br>
textarea{height:80%;width:100%;}
` つぎにjavascript
ajaxupload.js
`
$(function(){ $("#upload").click(function(){ var file = $("#file")[0].files[0]; var reader = new FileReader(); reader.readAsText(file, 'UTF-8'); reader.onload = showFile; }); function showFile(event) { $.ajax({ type: "POST", url: "ajaxupload.rb", data: { filedata:event.target.result} }).done(function(msg) { $("#output").html(msg); }); } }); ` んで何か処理をするRubyのスクリプト。ここではファイルの中身をそのまま返してるだけ。(パス名は適宜変更してください。)
ajaxupload.rb
`
#!P:\Dropbox\bin\RailsPortable\App\Rails\bin\ruby.exe require "
Lispを書いてると、他の言語でもapplyを使いたくなる。
そしてPythonにもapplyがあったので早速喜んで使ってたら引数の数がおかしいというエラーメッセージに困らされた。
基本的なapplyの使い方 `
def hoge(word): print word apply(hoge,"A") ` とまあこんな感じ使うわけです。
文字列を引数にできない。 ところがこの引数の”A”を”ABC”に変えるだけでエラーになる。
`
Traceback (most recent call last): File "", line 9, in TypeError: hoge() takes exactly 1 argument (3 given) ` どうやら文字列を渡すと文字数分だけの引数を渡したと解釈されてしまうらしい。
解決策 さて、解決方法ですがタイトルにもあるように廃止された関数なのでもう使っちゃダメらしい。
引数 function は呼び出しができるオブジェクト (ユーザ定義 および組み込みの関数またはメソッド、またはクラスオブジェクト) でなければなりません。args はシーケンス型でなくてはなりません。 function は引数リスト args を使って呼び出されます; 引数の数はタプルの長さになります。オプションの引数 keywords を与える場合、 keywords は文字列のキーを持つ辞書で なければなりません。これは引数リストの最後に追加されるキーワード 引数です。 apply() の呼び出しは、単なる function(args) の呼び出しとは異なります。 というのは、apply() の場合、引数は常に一つだから です。*apply() は function(*args, *keywords) を 使うのと等価です。 上のような “拡張された関数呼び出し構文” は apply() と全く等価なので、必ずしも apply() を使う必要はありません。
cygwinでちゃんとHOMEの環境変数を設定してるのに ~/.bash_profileが読み込まれなかったのでその時の対処法。
問題点 結局問題だったのはbashを立ち上げた時に出てくるこのエラーメッセージを無視してたのが原因でした。
Your group is currently “mkpasswd”.
This indicates that your gid is not in /etc/group and your uid is not in /etc/passwd.
The /etc/passwd (and possibly /etc/group) files should be rebuilt. See the man pages for mkpasswd and mkgroup then, for example, run
mkpasswd -l [-d] > /etc/passwd
mkgroup -l [-d] > /etc/group
Note that the -d switch is necessary for domain users.
/etc/passwd を確認してみると、確かに今使ってるWindowsでのユーザ名が表示されていない。いつもcygwinのフォルダは上書きし続けて使ってるのでインストール時に既に /etc/passwd があった場合に自動更新されないみたいですね。
無料のオンライン大学Courseraについてはこちらを見てください。
【TED】 Coursera創業者による「オンライン教育が教えてくれること」 | IDEA*IDEA
http://www.ideaxidea.com/archives/2012/09/ted_coursera.html
このCourseraで"An Introduction to Interactive Programming in Python"という面白そうな授業があったので登録してみました。プログラミング経験がほとんどない人向けの講座だそうなのですが、英語のハンデもあるのでちょうどいいかと思って初めて見ました。まだ受講は受け付けていますが、10月15日からの講座なのでPythonの勉強を始めてみたい方はお早めに。
受講方法 まず[コース一覧][1]から受講したいコースを選びます。
受講したいコースがあったら"sign up"から登録します。
で名前とメールアドレス、それにパスワードを入力。
ここで入力する名前が証明書などに残るので本名を入力しましょう。
ポップアップでメッセージと"Go to class"という表示が出てくるのでクリックして次へ。
ここでHonor Code[敬意を持って守る規定]への同意を求められるのでよく読んで同意しましょう。
一つのアカウントのみ登録します。
宿題、クイズそれに試験を独力で行います。
宿題、クイズそれに試験の答えを誰にも教えません。
不誠実に成績を改鼠しません。
コースのホーム画面に飛びます。既に開始されてるコースなのでまずは溜まってるAnnouncementsから見ていきましょう。上に行くほど新しいお知らせなので一番下から読んでいきます。
どういう風に進んでいくか。 ここからは何を受講するかによっても変わってくると思うので参考程度に読んでください。
・毎週2セクションごと進む。
・週の開始は土曜日の朝。(アメリカ時間?)
・土曜日の朝に50~150行程度で作れるミニプロジェクトが割り当てられるので、それを次の土曜日の午後までに提出する。
・そして次の日曜日から水曜日の間に生徒間で相互添削を行う。
・相互添削で自分の評価をもらうためには最低5つを行わなければならない。
・毎週6~10個程度の短いレクチャーの動画を見る。
・クイズが週2回、でミニプロジェクトが1回。
・プログラミング環境は http://www.codeskulptor.org/ を使う。
レクチャーのビデオを見る 左上の[Video Lectures]からレクチャーが見れます。この講座をどのように進めていくかと、この講座でどのようなものが作れるかの説明があります。基本的な動作をするゲームが作れるので面白そう。
英語は自分にはまだちょっと難しいですが、字幕を[CC]でつけて見ることもできるし、テキストやSRTファイルでダウンロードして読むこともできます。
動画プレイヤーのVLCなら0.8倍速などのように音の高低を変化させずに再生速度を変えれますし、SRTファイルをそのまま再生中の動画にDrag & Dropするだけで字幕を表示できるのでオススメです。
他にも面白そうな講座はたくさんありますので、どんな講座があるかだけでも眺めてみると良いんじゃないでしょうか。
Course Catalog | Coursera
https://www.coursera.org/courses
Vimの初期設定ではインデント幅が8で広すぎるので2に変更したかったけども、設定方法を見ると
~/.vim/indent/$filetype.vim
と各ファイルタイプごとに変更する方法しか紹介されてなかったけどもダメ元で
~/.vimrc
に
set tabstop=2 shiftwidth=2 softtabstop=2
と追加したら変更できたみたい。どちらが流儀的には正しんだろうか?
Windowsの頃は秀丸→xyzzyで移行して、何をするにもxyzzyを使っていたのですが悲しいことにMacにはxyzzyがありません。
Emacsならあるので触ってみましたが、まだVimの方がとっつきやすそうだったのでVimメインのテキストエディタとして使っています。
テキスト操作が思い通りできないだけでたまるストレスは想像した以上でした。ムキーーーーーーーーーー!!!!!
Vimの設定方法 さて、Vimは標準ではステータスバーに文字コードと改行コードを表示してくれないのでホームフォルダの下に vi ~/.vimrc と設定ファイルを作り(Vimの起動時に自動的に読み込まれます。)そこに
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P
と書いて保存。Vimを再起動します。
これでステータスバーに文字コードが表示されるようになりました。
参考 GVIMのステータスラインに文字コードと改行文字の種別を表示する。
Windows で使ってて、Mac に代替のソフトもなくて困ってたら「そうだ、Wine があるじゃないか!」と思い出したので今インストールしてる。
— Tetsu (@ironsand) July 31, 2012
と思いたち Wine のインストールをしました。
Wine ってなに? Wine を知らない人に説明しておきますと、Unix 系の OS で Windows のソフトが動いちゃうという非常に便利なソフトです。
説明終わり。
インストール方法 “Mac Wine"で Google 検索するとどうやら亜種がいっぱいあるらしいので、日本語の情報は全て無視して英語圏で情報を探って見ることにしました。
Installing Wine on Mac OS X
http://www.davidbaumgold.com/tutorials/wine-mac/
ここがわかりやすそうだったのでこのサイトの説明通りインストールします。
最後まで設定を終えて
$ sudo port install wine
を意気揚々と打ったら案の定エラーでコケました。よくあることですね。
エラーメッセージを見ると
Warning: The Command Line Tools for Xcode don’t appear to be installed
と、出てます。XCode を入れててもコマンドラインツールは勝手にはいってくれないようですね。XCode を開いて Preference から Download を選択してインストールしましょう。
自分の環境の場合はこれで何かがたくさんダウンロードとインストールされて来ました。これできっとインストールは成功してると信じたいです。(これを書いてる時はまだターミナルが動いてます。)
まだダメだった時 なんかまたエラーが出てしましました…。うう。
port definition が古いと怒られる MacPorts がこんなエラー吐いてたのでそっちも対処してみました。