Web ベース統合開発環境 Nide が(・∀・)イイ!!

たまたま以下のページを見たのですが、ブラウザ統合開発環境 (IDE) になるというのは以前から興味があったジャンル。
実際、使いやすかったのでインストール方法等を書いてみる

Node.js向けのWebベースIDE「Nide 0.2」がリリース | OSDN Magazine


1. Node.js をインストール
Nide をインストールするには npm というコマンドパッケージが必要です。
npm は最新版の Node.js と同時にインストールされます。
以下から入手したインストーラを実行してください。

Node.js


2. Nide をインストール
Nideソースコードは以下のページから入手できます。

GitHub - coreh-deprecated/nide: Beautiful IDE for Node.js

github に依存したくないなら、左上の ZIP ボタンでソースコードをダウンロードできます。
ダウンロードしたフォルダ (Coreh-nide-xxxx) 内で以下のコマンドを実行します。

sudo npm install -g nide

これで Nide があなたの PC にインストールされます。


3. Nide プロジェクトを作成する
プロジェクト管理したいディレクトリで、以下のコマンドを実行すれば、Nide プロジェクトが構築されます。

nide init
    # ディレクトリ内に
    # .gitignore
    # .nide/
    # .npmignore
    # が作成されます。

一度構築した Nide プロジェクトがあるディレクトリでは、以後、以下のコマンドでプロジェクトを開くことができます。

nide

Nide は実行されるとローカルサーバ(http://localhost:8123)からプロジェクトにアクセスできます。
終了する際はローカルサーバを Ctrl + C で強制終了?

ちなみに JavaScript 以外の言語もカラーリングされます。
入力補完はできない模様。

V8 の RTLD_DEFAULT が見つからないビルドエラー

MacOSX 10.6 を使用。
JavaScript V8 エンジンを scons でビルドする際、以下のエラーが発生。

src/platform-macos.cc:500: error: 'RTLD_DEFAULT' was not declared in this scope
scons: *** [obj/release/platform-macos.o] Error 1
scons: building terminated because of errors.

問題のソースコード (v8/src/platform-macos.cc) を見てみると、

#include <dlfcn.h>

(略)

static void SetThreadName(const char* name) {
  // pthread_setname_np is only available in 10.6 or later, so test
  // for it at runtime.
  int (*dynamic_pthread_setname_np)(const char*);
  *reinterpret_cast<void**>(&dynamic_pthread_setname_np) =
    dlsym(RTLD_DEFAULT, "pthread_setname_np");
  if (!dynamic_pthread_setname_np)
    return;

  // Mac OS X does not expose the length limit of the name, so hardcode it.
  static const int kMaxNameLength = 63;
  USE(kMaxNameLength);
  ASSERT(Thread::kMaxThreadNameLength <= kMaxNameLength);
  dynamic_pthread_setname_np(name);
}

RTLD_DEFAULT/usr/include/dlfcn.h に定義されているけど、
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) のマクロ状態でないと読み込まれないようになっている。

#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
#define RTLD_NOLOAD	0x10
#define RTLD_NODELETE	0x80
#define RTLD_FIRST	0x100	/* Mac OS X 10.5 and later */

/*
 * Special handle arguments for dlsym().
 */
#define	RTLD_NEXT	((void *) -1)	/* Search subsequent objects. */
#define	RTLD_DEFAULT	((void *) -2)	/* Use default search algorithm. */
#define	RTLD_SELF	((void *) -3)	/* Search this and subsequent objects (Mac OS X 10.5 and later) */
#define	RTLD_MAIN_ONLY	((void *) -5)	/* Search main executable only (Mac OS X 10.5 and later) */
#endif /* not POSIX */
  • 対応策

むやみに _DARWIN_C_SOURCE を定義するのが嫌だったので、v8/src/platform-macos.cc の先頭に #define RTLD_DEFAULT ((void *) -2) のマクロを定義することにしました。

#define	RTLD_DEFAULT	((void *) -2)
#include <dlfcn.h>

(略)

その後、ビルドに成功しました。
ただ、プラットフォーム(OS バージョン)が変化すると RTLD_DEFAULT 定義が変更される恐れもあることをお忘れなく。

文字列を is 演算子で比較するのは危険

ascii 文字列は ==, is のどちらでも同じ結果を返します。
一方、unicode 文字列は is で比較した場合の結果が異なります

# ascii 文字列の比較
a = 'str'
b = 'str'
a == b
    >>> True
a is b
    >>> True

# unicode 文字列の比較
a = u'str'
b = u'str'
a == b
    >>> True
a is b
    >>> False
u'str' is u'str'
    >>> True

ドキュメンテーションによると、

演算子 is および is not は、オブジェクトの アイデンティティに対するテストを行います: x is y は、 x と y が同じオブジェクト を指すとき、かつそのときに限り真になります。

とあり、is 演算子インスタンス ID が同じかどうかを比較するようです。
Python では ascii 文字列は非オブジェクトで、unicode 文字列はオブジェクトと見なすべきなのでしょう。
同様に、数値非オブジェクトで、配列オブジェクト

【Macintosh】Minecraft のメモリ使用量を指定する

Wiki には Windows 版のやり方しかなかったので、Mac 版のメモリ指定方法を試みてみました。

よくある質問 - Minecraft Japan Wiki - アットウィキ

Windows:
java -Xms512m -Xmx3072m -jar Minecraft.exe


MacMinecraftバンドル構造は以下のようになっています。

Applications/
    Minecraft.app/
        Contents/
            Info.plist
            PkgInfo
            MacOS/
                JavaApplicationStub
            Resources/
                en.lproj/
                    InfoPlist.strings
                favicon.icns
                Java/
                    MinecraftLauncher.jar

Mac 版の場合、 /Applications/Minecraft.app/Contents/Resources/Java/MinecraftLauncher.jarJava 実行可能ファイルになります。

したがって、以下のコマンドをターミナル等で実行すればいいことになります。

java -Xms512m -Xmx3072m -jar /Applications/Minecraft.app/Contents/Resources/Java/MinecraftLauncher.jar 

最小使用量を -Xms1024m 等にすると、メモリ量の増加が ActivityMonitor ではっきり確認できます。

外部から Django プロジェクトのデータベースを操作する

Django プロジェクト(ディレクトリ)の外部にある Python コードから、Django アプリケーションのデータベースを操作します。


ドキュメンテーションにあるように、モデルをインポートする前に以下の手順を実行しておきます。

1. プロジェクトのパッケージを sys.path に追加します。
2. DJANGO_SETTINGS_MODULE 環境変数がプロジェクトの settings.py を指すように設定します。


この手順なしに、外部のコードが Djangomodels モジュールをインポートした場合、ImportError が発生します。

ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.


ここでは、プロジェクト django_project のアプリケーション app_name にモデル models.py が定義されているとします。

other.py(シンボリック・リンク等で django_project を参照)

/django_project
    __init__.py
    manage.py
    settings.py
    urls.py
    /app_name
        __init__.py
        models.py
        tests.py
        views.py


外部の Python コードは modelsインポートする前に以下の手順を踏んでください。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
# プロジェクトのパッケージを sys.path に追加する
sys.path.append('django_project.app_name')

import os
# 環境変数 DJANGO_SETTINGS_MODULE にプロジェクトの settings をセット
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_project.settings'

# Model モジュールをインポートする
from django_project.app_name import models

# データベースを操作可能になる
models.ModelXXX(name='xxx').save()  # 保存
models.ModelXXX.objects.all()  # 取得

kakoroku で保存したタイムシフト放送を NNDD で再生するときのテクニック

Windowskakorokuタイムシフト放送をダウンロードした後、MacNNDD で(むりやり)再生させるのですが、このときコメントが途中からしか流れない不具合にまみえます。

この回避方法として、NNDDInfoView にある「過去コメント」タグにて、「更新(ローカル)」を押します。

これでコメントが最初から流れるようになります。


                                                                                          • -
  • kakoroku

http://ameblo.jp/ysr7/entry-10636156973.html

  • NNDD

NNDD - ニコニコ動画専用ブラウザ - MineAP’s diary

ニコニコ動画の検索一覧に総合ポイントを表示するユーザスクリプト【NicoSearchPtsDisplay】

GreaseMonkey ユーザスクリプトFirefox, Chrome, Safari で動作確認)。


ニコニコ動画キーワードタグ 検索一覧に総合ポイントを表示します。
総合ポイントニコニコ大百科の計算式で算出されます。

  • 4 カラム 適用前

  • 4 カラム 適用後


  • 2 カラム 適用前

  • 2 カラム 適用後


  • 1 カラム 適用前

  • 1 カラム 適用後


インストールhttp://userscripts.org/scripts/source/119777.user.js
ダウンロードhttp://userscripts.org/scripts/show/119777


パーフェクトJavaScript (PERFECT SERIES 4)

パーフェクトJavaScript (PERFECT SERIES 4)