2012/04/29

OS Xでインストール

Set up Git and Mercurial (Mac OSX)

  2012/04/29

普段使わないコマンドをすぐ忘れてしまうシリーズ(汗)

yoo グループに www-data ユーザ(Debianでいう Apacheユーザ)を追加する場合、

# usermod -G yoo www-data

グループ追加の確認

# cat /etc/group yoo:x:1000:www-data

vigr コマンドで直接 /etc/group を書き換える方法もありですが、探したり何か消してしまったりとかちょっとリスキーかも。

  2012/04/29

Debianで Apacheの場合、/etc/apache2/mods-available から /etc/apache2/mods-enabled にシンボリックリンクをはるが、そのコマンドを良く忘れてしまうのでメモ。 (手動でコマンドをうつのもいいですが・・・)

mod-rewriteを有効にする場合は、

a2enmod rewrite

シンボリックリンクはいかのように張られている

rewrite.load -> ../mods-available/rewrite.load

  2012/04/23

Lavishという Rails製のデザインフレームワークを試そうと思ったら Rails3 でscript/rails server できずにハマリしました。

どうやらXcodeのバージョンで、Ruby on Railsの挙動が異なるみたいです。

/Users/yoo/src/lavish/config/initializers/session_store.rb:3: syntax error, unexpected ':', expecting $end (SyntaxError)

そもそも、Rails3 x Ruby1.9.2 のちゃんと構築をしていないので怒られながらメモ

rvmのインストール

rvm(Rubyバージョン管理)が入っていなかったのでインストール

$ sudo gem install rvm

でうまくいかないので、

$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

.bash_profile に書き込み

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

確認したらbashの読み込み

source ~/.bash_profile

※複数ターミナルを起動していると誤動作するので、全てのターミナルで再ログインが安全

※追記 MBAでやったら上記の方法でうまくいかなかったので、一旦Homebrewを削除、再インストールして「Installing RVM」を参照にした。

$ curl -L get.rvm.io | bash -s stable $ source ~/.rvm/scripts/'rvm'

rvmの環境確認・構築

とりあえず rvmの環境確認をする。

rvm requirements

どうやらXcode4.3 は根本的にruby 1.9.3が必要みたいです。

Xcode 4.3+ users - please be warned - only ruby-1.9.3-p125+ is partially supported - in case of any compilation issues: * downgrade to Xcode 4.1 * uninstall Xcode and install osx-gcc-installer

$ rvm get latest $ rvm pkg install readline $ rvm install 1.9.3 --with-openssl-dir=$rvm_path/usr

Rubyのバージョン確認

$ ruby -v ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]

ImageMagickのインストール

bundle install をしようとしたら「ImageMagick」でコケます。

$ bundle install An error occured while installing rmagick (2.13.1), and Bundler cannot continue. Make sure that `gem install rmagick -v '2.13.1'` succeeds before bundling.

rmagick がないのか?と思いきや、

$ gem install rmagick

してもエラーになる。

どうやらHomebrewを利用しているので、ImageMagickをインストールするがうまくいかないようです。 ネットで「RMagick のインストールでコケる問題」や「MacでImageMagick+RMagickを使う」などを参考にゴニョゴニョしてみる。

brew の問題確認

$ brew doctor Warning: Your compilers are different from the standard versions for your Xcode. If you have Xcode 4.3 or newer, you should install the Command Line Tools for Xcode from within Xcode's Download preferences. Otherwise, you should reinstall Xcode. Warning: Your Xcode is configured with an invalid path. You should change it to the correct path. Please note that there is no correct path at this time if you have *only* installed the Command Line Tools for Xcode. If your Xcode is pre-4.3 or you installed the whole of Xcode 4.3 then one of these is (probably) what you want: sudo xcode-select -switch /Developer sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

Xcode4.3で Developerが削除されたとかの関係(?)、そして gemsのパスも変わっているみたいです。 念のため、Xcode4.3 の仕様どおりのパスにした。

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

また、rvm/gemsのパスも異なる模様。

/Users/ユーザ名/.rvm/gems/

以上の事から、imagemagickの再インストールをしてみる。

$ brew uninstall little-cms $ brew install little-cms $ brew uninstall imagemagick $ brew install -f imagemagick --disable-openmp

1番のポイントは「-f imagemagick --disable-openmp」とすることでした(多分)。

あとは、rmagickのパーミッションやオーナーの問題(権限がない場合)もありました。

sudo chown -R ユーザ名 rmagick-2.13.1

そんなこんなで、rmagick をインストール

$ gem install rmagick $ bundle install

できた!ってことで「Lavish」でBootstrapをつくってみた。 Lavish

このブログもデザイン含めてGWに作り直したいと思いますが、時間あるかなぁ。。

  2012/04/23

Xcode & Vimユーザ待望のVimプラグイン「XVim」がGitHubに公開されています。 インストーラはここにあるようです。

早速インストールしてみましたが、Xcode起動すると勝手にVimモードになり、基本的な動作は問題ない模様。

コマンドはエディタの下に表示されます。 XVim これで、Vimユーザは更に快適に(?)

  2012/04/20

画像処理に使えるUIImageのTips10個」を参考に、UIImage のカラーを変更してみます。 UIimageのカラーを変更する場合、UIImageからピクセルを取得し新たな画像を作成してやります。

サンプル

任意の red値でカラーを変更する。

- (UIImage *)changeRImage:(UIImage *)image red:(CGFloat)value {
    CFDataRef cfDataRef = CGDataProviderCopyData(CGImageGetDataProvider(image.CGImage));
    NSData* pixelData = (__bridge NSData*) cfDataRef;
    unsigned char* bitmap = (unsigned char *)[pixelData bytes];
    CGFloat width = image.size.width;
    CGFloat height = image.size.height;
    
    for(int i = 0; i < [pixelData length]; i += 4) {
        CGFloat _value = bitmap[i] + value;
        if (_value > 255) _value = 255;
        bitmap[i] = _value;
        bitmap[i+1] = bitmap[i+1];
        bitmap[i+2] = bitmap[i+2];
        bitmap[i+3] = bitmap[i+3];
    }
    CGDataProviderRef dataProviderRef = CGDataProviderCreateWithData(NULL, bitmap, width*height*4, NULL);
    CGImageRef result = CGImageCreate(image.size.width, image.size.height, 8, 32, width*4, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaLast, dataProviderRef, NULL, 0, kCGRenderingIntentDefault);
    UIImage *newImage = [[UIImage alloc] initWithCGImage:result];
    
    CGImageRelease(result);
    //CFRelease(dataProviderRef);
    
    return newImage;
}

UIImage から CFDataRef を作成し、bytes を取得するとビッチマップデータになります。 ※ARCを利用する場合は、CFDataRef と NSData のキャストでブリッジしてやる必要があり

ビットマップのRGBAは、for文の通り「+4」ステップで取得し、ピクセル値を変更してやります。

後は、CGDataProviderCreateWithData() などでごにょごにょして UIImage を作成します。

またアルファチャンネルとマスクでカラー変更する方法が「Bezelボタンを作る[12]画像をグレースケールで表示する(その2) 」に記載されていました。

グレースケールサンプル

- (UIImage *)grayscale:(UIImage *)image {
    CGRect rect = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
    
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
    CGContextRef alphaContext = CGBitmapContextCreate(nil, image.size.width, image.size.height, 8, 0,
                                                      colorSpace, kCGImageAlphaOnly);
    CGContextDrawImage(alphaContext, rect, [image CGImage]);
    CGImageRef alphaImage = CGBitmapContextCreateImage(alphaContext);
    CGContextRelease(alphaContext);
    
    CGContextRef context = CGBitmapContextCreate(nil, image.size.width, image.size.height, 8, 0,
                                                 colorSpace, kCGImageAlphaNone);
    CGContextDrawImage(context, rect, [image CGImage]);
    CGImageRef grayScaleImage = CGBitmapContextCreateImage(context);
    CGContextRelease(context);
    
    UIImage* grayScaleUIImage = [UIImage imageWithCGImage:
                                 CGImageCreateWithMask(grayScaleImage, alphaImage)];
    
    CGImageRelease(grayScaleImage);
    CGImageRelease(alphaImage);
    CGColorSpaceRelease(colorSpace);

    return grayScaleUIImage;
}

  2012/04/17

Zipファイルを解凍するには、「ZipArchive」を使うのが手っ取り早いと思います。

llibzライブラリ

ZipArchiveを利用するには、「llibz.1.2.5.dylib」が必要があります。 ZipArchive

ARC対策

ZipArchive はARC版がありませんので ARC対象からはずす必要があります。 ARCでプログラムする場合は、「ARC未対応のファイルを利用する」を参照して下さい。

サンプル

Documents ディレクトリの test.zipを解凍してみるサンプルです。 「UnzipOpenFile」と「UnzipFileTo」してやるだけで非常にシンプルです。

- (void)archiveContents {
    NSString *documentDirectory = [self documentDirectoryPath];
    NSFileManager* fileManager = [NSFileManager defaultManager];
    NSString *contentsPath = [NSString stringWithFormat:@"%@/%@", documentDirectory, @"test.zip"];

    ZipArchive  *archiver = [[ZipArchive alloc] init];
    if ([fileManager fileExistsAtPath:contentsPath]) {
        [archiver UnzipOpenFile:zipPath];
        BOOL isAchived = [archiver UnzipFileTo:documentDirectory overWrite:YES];
        if (isAchived) {
        } else {
        }
        [archiver UnzipCloseFile];
    } else {
    }
}

  2012/04/12

iOS5でARC対応になって便利になったが、他のライブラリでARC対応になってないと利用できない。 例えば、ZipArchiveのライブラリを利用しようとした時にビルドエラーになってしまう。

以下の設定をする事で、ビルド時にARCの対象をはずすことができる。

-fno-objc-arc

arc

  2012/03/30

久々に、Eclipseを開いたら Androidプロジェクトがビルドできない。 原因は自分はDeveloperフォルダに Android SDKを入れていたので、Xcode のアップデートをした時に根こそぎ削除された事によるもの。 (OSX も Lion にしたのもあるか?)

幸いゴミ箱を空にしなかったので、Developerフォルダを戻して Eclipseを再起動してみる。 しかし、

Your Project contains error s please fix them before running your application

プロジェクトクリーンしてもダメです。

色々面倒くさそうなので EclipseをHelios から Indigoに、Android SDKも最初からセットアップする事に。 しかし、それでも解決しない。 こうなると何かの設定が残ってるしか考えられないので調べたら、 your applicationエラー の記事を見つけた。 「debug.keystoreの有効期限切れ」が原因で、debug.keystoreを削除するだけだったというオチでした。 debug.keystore 感謝。

あと、自分で有効期限設定できるみたいです。 [Android][SDK]祝 Androider1周年

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 1800 -dname "CN=Android Debug,O=Android,C=US"

  2012/03/05

UITextView を直接入力する場合、【option】とリターンで改行するが、コーディングで直接入力する場合は、

【option】+ 【¥】

でバックスラッシュを入力する。

これは例文です。\n改行しました。

pngファイルの軽量化
Google DriveのIconを再起的に削除
php-markdownでバニラPHPなコードブロック処理
laravel-ffmpeg を使う
2021年版 Ubuntu + certbot + Let's Encrypt でサーバ証明書設定
GihHub のデフォルトでない master ブランチを checkout する
マルチログインで未認証のリダイレクト
Homebrew で Redis をインストール
CSS だけでスムーズスクロール
EC-CUBE4 で Gmail の smtp を利用する
Amazon Linux 2 の amazon-linux-extras とは
UNIQUE カラムのバリデーションで自分自身を除外して更新
フォーム有効期限切れで Page Expired をリダイレクト
ログを日付でローテーションやクリアや削除
Homebrew で PHP8.0 から PHP7.4 にダウングレード
Big sur で zsh 移行と Homebrew アップグレード
Mac に minikube をインストール
途中から .gitignore に追加する
Larevel 6.x から Laravel 8.x にバージョンアップ
Composer で Allowed memory size (メモリ不足)エラー
Blade でカスタムクラスを利用する
git push git pull にブランチ指定せずに実行する
git pull や git push できなくなったとき
Docker のコンテナからホストOS に接続
Mac で ローカル IP アドレス(ipv4)のみを表示する
ホストOS から Docker の MySQLコンテナに接続
caching_sha2_password のエラー
node-config で環境設定ファイルを利用する
rootパスワードを初期化(再設定)する
Git から clone したときのエラー対処
Mac に MySQL をインストール
Mac に PostgreSQL をインストール
Laravel 環境構築 - Mac ネイティブ編
Firebase 入門 - Firebase とは
Firebase 入門 - CLI インストールとデータベースの設定
AWS 無料枠(t2.micro)で容量とメモリエラー
Cloud9 を起動する -初心者編-
gcloud で GCEインスタンスを起動してみる
AWS CLI と jq でインスタンス一覧を整形して表示
React と Laravel7 のプロジェクトを作成する
Homebrewインストール-2020年版
3直線で囲まれた範囲塗りつぶし
PuLP で線形最適化問題を解く
カスタムのペジネーションを作る
node-sass を使って sass をコンパイルする
Log ファサードでSQLログを分離して書き出す
いちから始める Docker - 複数のコンテナを使う - (2020年)
いちから始める Docker - docker-compose を使う - (2020年)
AWS ECR を使ってみる
Laravel7 でマルチ認証