先日、マヤ暦で言うところの人類滅亡の日に、JetBrainsが75%オフという破格のセールをしてくれていましたので
気になっていたPhpStormを買ってみました。
元々WebStormは買っていて、使い勝手は大体掴めていたので問題ないだろうと思っていたのですが
PHPファイルの関連付けがおかしいことになっていました。
なぜかPHPファイルがHtmlファイルとして扱われている?
色などおかしいことになっていて見づらかったのですが、設定箇所がいまいち分からなかったので調べてみました。
PhpStormのDeveloper Communityにで見つけたのでメモっておきます。
http://devnet.jetbrains.net/thread/433638
[File] > [Settings] > [File Types]
を開き、PHP filesのパターンに *.php を追加するとphpファイルとして扱ってくれるようになりました。
ごくごく簡単な設定なのに見つけられないとなんかもやっとしますね。
*.hphp とか *.php4 とかは初めからあるのに、何で *.php が登録されてなかったんだろう?
Eclipseは重いしNetBeansは何となく馴染まないなーということで、ここ数カ月はEmacsの設定をいろいろ学んで使っていたのですが、その設定が無駄になりそうな気もするw
2012年12月26日
2012年9月13日
Androidアプリを公開しました
Androidアプリを公開しました。
Eventer という名前です。
Google play
どんなアプリかと言うと
■概要
ATND beta、Zusaar、CONNAPASSで開催されているイベントを検索します
もうそれ以上でもそれ以下でも無い感じ
検索してお気に入りリスト的なものは作れます。
まだbeta版みたいな感じですが、とりあえず動くようになったのでリリースしました。
さてー、頑張ってアップデートしていこう。
とりあえず今後の目標は
って感じかなぁ。 思いついたらまた足していこう。
気になったところとかあれば、コメントなど頂けるとありがたいです。
ではではよろしくお願いします。
https://play.google.com/store/apps/details?id=com.shmrkm.eventer
Eventer という名前です。
Google play
どんなアプリかと言うと
■概要
ATND beta、Zusaar、CONNAPASSで開催されているイベントを検索します
もうそれ以上でもそれ以下でも無い感じ
検索してお気に入りリスト的なものは作れます。
まだbeta版みたいな感じですが、とりあえず動くようになったのでリリースしました。
さてー、頑張ってアップデートしていこう。
とりあえず今後の目標は
- UIをどうにかする
- 気になったイベントをシェア出来るようにする
- 全体的に挙動を安定させる
- JSONのパースにJPPとか使ってみる
って感じかなぁ。 思いついたらまた足していこう。
気になったところとかあれば、コメントなど頂けるとありがたいです。
ではではよろしくお願いします。
https://play.google.com/store/apps/details?id=com.shmrkm.eventer
2012年8月16日
[eclipse]Eclipse Junoが起動しない問題
原因は分からないけどEclipseの起動時にエラーが起きるようになったので解決策をメモ。
起動時のエラーログはこんな感じ。あれなところは消してます。
!SESSION 2012-08-16 18:33:53.745 -----------------------------------------------
eclipse.buildId=I20120608-1400
java.version=1.6.0_33
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=ja_JP
Framework arguments: -product org.eclipse.epp.package.java.product -keyring HOME/.eclipse_keyring -showlocation
Command-line arguments: -os macosx -ws cocoa -arch x86 -product org.eclipse.epp.package.java.product -keyring HOME/.eclipse_keyring -showlocation
!ENTRY org.eclipse.core.resources 2 10035 2012-08-16 18:33:55.167
!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
!ENTRY org.eclipse.equinox.preferences 4 2 2012-08-16 18:33:56.942
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.equinox.preferences".
!STACK 0
java.lang.ExceptionInInitializerError
at org.eclipse.wb.internal.core.preferences.PreferenceInitializer.initializeDefaultPreferences(PreferenceInitializer.java:50)
at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper$1.run(PreferenceServiceRegistryHelper.java:300)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.runInitializer(PreferenceServiceRegistryHelper.java:303)
at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.applyRuntimeDefaults(PreferenceServiceRegistryHelper.java:131)
at org.eclipse.core.internal.preferences.PreferencesService.applyRuntimeDefaults(PreferencesService.java:368)
at org.eclipse.core.internal.preferences.DefaultPreferences.applyRuntimeDefaults(DefaultPreferences.java:166)
at org.eclipse.core.internal.preferences.DefaultPreferences.load(DefaultPreferences.java:237)
at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:410)
at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences.java:663)
at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:805)
at org.eclipse.core.internal.preferences.AbstractScope.getNode(AbstractScope.java:38)
at org.eclipse.core.runtime.preferences.DefaultScope.getNode(DefaultScope.java:76)
at org.eclipse.ui.preferences.ScopedPreferenceStore.getDefaultPreferences(ScopedPreferenceStore.java:250)
at org.eclipse.ui.preferences.ScopedPreferenceStore.getPreferenceNodes(ScopedPreferenceStore.java:285)
at org.eclipse.ui.preferences.ScopedPreferenceStore.internalGet(ScopedPreferenceStore.java:475)
at org.eclipse.ui.preferences.ScopedPreferenceStore.getBoolean(ScopedPreferenceStore.java:387)
at org.eclipse.wb.internal.core.editor.describer.JavaSourceUiDescriber.isGUISource(JavaSourceUiDescriber.java:65)
at org.eclipse.wb.internal.core.editor.describer.JavaSourceUiDescriber.describe(JavaSourceUiDescriber.java:52)
at org.eclipse.core.internal.content.ContentTypeCatalog.describe(ContentTypeCatalog.java:218)
at org.eclipse.core.internal.content.ContentTypeCatalog.collectMatchingByContents(ContentTypeCatalog.java:190)
at org.eclipse.core.internal.content.ContentTypeCatalog.internalFindContentTypesFor(ContentTypeCatalog.java:403)
at org.eclipse.core.internal.content.ContentTypeCatalog.internalFindContentTypesFor(ContentTypeCatalog.java:450)
at org.eclipse.core.internal.content.ContentTypeCatalog.getDescriptionFor(ContentTypeCatalog.java:346)
at org.eclipse.core.internal.content.ContentTypeCatalog.getDescriptionFor(ContentTypeCatalog.java:360)
at org.eclipse.core.internal.content.ContentTypeMatcher.getDescriptionFor(ContentTypeMatcher.java:86)
at org.eclipse.core.internal.resources.ContentDescriptionManager.readDescription(ContentDescriptionManager.java:445)
at org.eclipse.core.internal.resources.ContentDescriptionManager.getDescriptionFor(ContentDescriptionManager.java:355)
at org.eclipse.core.internal.resources.File.internalGetCharset(File.java:246)
at org.eclipse.core.internal.resources.File.getCharset(File.java:207)
at org.eclipse.core.internal.resources.File.getCharset(File.java:194)
at org.eclipse.jdt.internal.core.util.Util.getResourceContentsAsCharArray(Util.java:1156)
at org.eclipse.jdt.internal.core.builder.SourceFile.getContents(SourceFile.java:79)
at org.eclipse.jdt.internal.compiler.ReadManager.run(ReadManager.java:173)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(SWT.java:4361)
at org.eclipse.swt.SWT.error(SWT.java:4276)
at org.eclipse.swt.SWT.error(SWT.java:4247)
at org.eclipse.swt.widgets.Display.error(Display.java:1068)
at org.eclipse.swt.widgets.Display.checkDevice(Display.java:621)
at org.eclipse.swt.graphics.Device.getSystemFont(Device.java:476)
at org.eclipse.jface.preference.PreferenceConverter.<clinit>(PreferenceConverter.java:84)
... 35 more
!ENTRY org.eclipse.osgi 4 0 2012-08-16 18:33:58.307
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.jface.preference.PreferenceConverter
at org.eclipse.ui.internal.themes.ThemeElementHelper.installFont(ThemeElementHelper.java:103)
at org.eclipse.ui.internal.themes.ThemeElementHelper.populateRegistry(ThemeElementHelper.java:59)
at org.eclipse.ui.internal.Workbench$27.runWithException(Workbench.java:1550)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3944)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3621)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2478)
at org.eclipse.ui.internal.Workbench.access$7(Workbench.java:2386)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:583)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:540)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
!ENTRY com.android.ide.eclipse.adt 4 0 2012-08-16 18:33:58.755
!MESSAGE parseSdkContent failed
!STACK 0
java.lang.NullPointerException
at com.android.ide.eclipse.adt.AdtPlugin.getDisplay(AdtPlugin.java:334)
at com.android.ide.eclipse.adt.AdtPlugin$7.run(AdtPlugin.java:1422)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
!SESSION 2012-08-16 18:40:39.117 -----------------------------------------------
eclipse.buildId=I20120608-1400
java.version=1.6.0_33
java.vendor=Apple Inc.
環境は以下。Windowsでも起こるのかな?
-----------------------------------------
OS: Max OSX 10.7.4
Eclipse: 4.2
plugin: ADT r20.0.2
-----------------------------------------
自分の環境だと、どうもGoogle先生のioschedをインポートして再起動すると起こるっぽい。他のプロジェクトはインポートしてないから分かんない。
起動時にエラーダイアログが表示されて
YOUR_WORKSPACE/.metadata/.log にログ出したよ みたいなことを言われます。
ログの内容は最下部に。
解決策を探したところstackoverflowにあった。
http://stackoverflow.com/questions/11310970/eclipse-juno-doesnt-start
解決方法は
YOUR_WORKSPACE/.metadata/.plugins/org.eclipse.core.resources/.snap
YOUR_WORKSPACE/.metadata/.log にログ出したよ みたいなことを言われます。
ログの内容は最下部に。
解決策を探したところstackoverflowにあった。
http://stackoverflow.com/questions/11310970/eclipse-juno-doesnt-start
解決方法は
YOUR_WORKSPACE/.metadata/.plugins/org.eclipse.core.resources/.snap
っていうファイルを消せば起動するようになります。
起動時のエラーログはこんな感じ。あれなところは消してます。
!SESSION 2012-08-16 18:33:53.745 -----------------------------------------------
eclipse.buildId=I20120608-1400
java.version=1.6.0_33
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=ja_JP
Framework arguments: -product org.eclipse.epp.package.java.product -keyring HOME/.eclipse_keyring -showlocation
Command-line arguments: -os macosx -ws cocoa -arch x86 -product org.eclipse.epp.package.java.product -keyring HOME/.eclipse_keyring -showlocation
!ENTRY org.eclipse.core.resources 2 10035 2012-08-16 18:33:55.167
!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.
!ENTRY org.eclipse.equinox.preferences 4 2 2012-08-16 18:33:56.942
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.equinox.preferences".
!STACK 0
java.lang.ExceptionInInitializerError
at org.eclipse.wb.internal.core.preferences.PreferenceInitializer.initializeDefaultPreferences(PreferenceInitializer.java:50)
at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper$1.run(PreferenceServiceRegistryHelper.java:300)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.runInitializer(PreferenceServiceRegistryHelper.java:303)
at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.applyRuntimeDefaults(PreferenceServiceRegistryHelper.java:131)
at org.eclipse.core.internal.preferences.PreferencesService.applyRuntimeDefaults(PreferencesService.java:368)
at org.eclipse.core.internal.preferences.DefaultPreferences.applyRuntimeDefaults(DefaultPreferences.java:166)
at org.eclipse.core.internal.preferences.DefaultPreferences.load(DefaultPreferences.java:237)
at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:410)
at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences.java:663)
at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:805)
at org.eclipse.core.internal.preferences.AbstractScope.getNode(AbstractScope.java:38)
at org.eclipse.core.runtime.preferences.DefaultScope.getNode(DefaultScope.java:76)
at org.eclipse.ui.preferences.ScopedPreferenceStore.getDefaultPreferences(ScopedPreferenceStore.java:250)
at org.eclipse.ui.preferences.ScopedPreferenceStore.getPreferenceNodes(ScopedPreferenceStore.java:285)
at org.eclipse.ui.preferences.ScopedPreferenceStore.internalGet(ScopedPreferenceStore.java:475)
at org.eclipse.ui.preferences.ScopedPreferenceStore.getBoolean(ScopedPreferenceStore.java:387)
at org.eclipse.wb.internal.core.editor.describer.JavaSourceUiDescriber.isGUISource(JavaSourceUiDescriber.java:65)
at org.eclipse.wb.internal.core.editor.describer.JavaSourceUiDescriber.describe(JavaSourceUiDescriber.java:52)
at org.eclipse.core.internal.content.ContentTypeCatalog.describe(ContentTypeCatalog.java:218)
at org.eclipse.core.internal.content.ContentTypeCatalog.collectMatchingByContents(ContentTypeCatalog.java:190)
at org.eclipse.core.internal.content.ContentTypeCatalog.internalFindContentTypesFor(ContentTypeCatalog.java:403)
at org.eclipse.core.internal.content.ContentTypeCatalog.internalFindContentTypesFor(ContentTypeCatalog.java:450)
at org.eclipse.core.internal.content.ContentTypeCatalog.getDescriptionFor(ContentTypeCatalog.java:346)
at org.eclipse.core.internal.content.ContentTypeCatalog.getDescriptionFor(ContentTypeCatalog.java:360)
at org.eclipse.core.internal.content.ContentTypeMatcher.getDescriptionFor(ContentTypeMatcher.java:86)
at org.eclipse.core.internal.resources.ContentDescriptionManager.readDescription(ContentDescriptionManager.java:445)
at org.eclipse.core.internal.resources.ContentDescriptionManager.getDescriptionFor(ContentDescriptionManager.java:355)
at org.eclipse.core.internal.resources.File.internalGetCharset(File.java:246)
at org.eclipse.core.internal.resources.File.getCharset(File.java:207)
at org.eclipse.core.internal.resources.File.getCharset(File.java:194)
at org.eclipse.jdt.internal.core.util.Util.getResourceContentsAsCharArray(Util.java:1156)
at org.eclipse.jdt.internal.core.builder.SourceFile.getContents(SourceFile.java:79)
at org.eclipse.jdt.internal.compiler.ReadManager.run(ReadManager.java:173)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(SWT.java:4361)
at org.eclipse.swt.SWT.error(SWT.java:4276)
at org.eclipse.swt.SWT.error(SWT.java:4247)
at org.eclipse.swt.widgets.Display.error(Display.java:1068)
at org.eclipse.swt.widgets.Display.checkDevice(Display.java:621)
at org.eclipse.swt.graphics.Device.getSystemFont(Device.java:476)
at org.eclipse.jface.preference.PreferenceConverter.<clinit>(PreferenceConverter.java:84)
... 35 more
!ENTRY org.eclipse.osgi 4 0 2012-08-16 18:33:58.307
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.jface.preference.PreferenceConverter
at org.eclipse.ui.internal.themes.ThemeElementHelper.installFont(ThemeElementHelper.java:103)
at org.eclipse.ui.internal.themes.ThemeElementHelper.populateRegistry(ThemeElementHelper.java:59)
at org.eclipse.ui.internal.Workbench$27.runWithException(Workbench.java:1550)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3944)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3621)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2478)
at org.eclipse.ui.internal.Workbench.access$7(Workbench.java:2386)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:583)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:540)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
!ENTRY com.android.ide.eclipse.adt 4 0 2012-08-16 18:33:58.755
!MESSAGE parseSdkContent failed
!STACK 0
java.lang.NullPointerException
at com.android.ide.eclipse.adt.AdtPlugin.getDisplay(AdtPlugin.java:334)
at com.android.ide.eclipse.adt.AdtPlugin$7.run(AdtPlugin.java:1422)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
!SESSION 2012-08-16 18:40:39.117 -----------------------------------------------
eclipse.buildId=I20120608-1400
java.version=1.6.0_33
java.vendor=Apple Inc.
2012年7月21日
[PHP]debug_backtrace() で処理を追いかける
便利なのによく忘れるのでメモ。
huga() called.
var_dump(debug_backtrace());
を記述すると
添え字の大きい方から順に処理されていきます。
file => 呼ばれるファイル
line => ファイル内の処理行
function => 呼ばれるメソッド名
class => クラス名
object => 対象のオブジェクト
type => -> が オブジェクトからの呼び出し、 :: はstatic での呼び出し。関数呼び出しは何も表示されない模様
args => 引数
これがあるのを忘れて、ついコードを追いかけてしまいます。
なんていう時間の無駄をしないようにしよう。
仕事でどこかの誰かが書いたか分からない、ドキュメントも無い俺俺フレームワークの面倒を見ることが多いのだけど
そういうものの処理を追いかける時に便利!
例えばこんな構造のコードがあったとします。
index.php にアクセスすると
class A のインスタンスを作成して
class B のstatic hoge を呼び出し
class C のhuga() を実行します。
・index.php
<?php
require_once("./classA.php");
require_once("./classB.php");
// index.php
$a = new A();
require_once("./classA.php");
require_once("./classB.php");
// index.php
$a = new A();
・classA.php
<?php
class A
{
public function A()
{
B::hoge();
}
}
・classB.php
<?php
class B
{
static function hoge()
{
print "hoge() called.";
}
}
・classC.php
<?php
class C
{
public function huga()
{
print "huga() called.";
}
}
この状態でindex.php にアクセスすると
huga() called.
とだけ表示されます。
もっと複雑に絡みあってくると、整備されていないととてもじゃないけど追いかけてられません。
そこで、hoge()メソッド内の
print "hoge() called."; の前に
var_dump(debug_backtrace());
を記述すると
実行結果がこうなります(配列を見やすいように整形してます)
array(3) {
[0]=> array(7) {
["file"]=> string(78) "DocumentRoot\classB.php"
["line"]=> int(7)
["function"]=> string(4) "huga"
["class"]=> string(1) "C"
["object"]=> object(C)#2 (0) { }
["type"]=> string(2) "->"
["args"]=> array(0) { }
}
[1]=> array(6) {
["file"]=> string(78) "DocumentRoot\classA.php"
["line"]=> int(7)
["function"]=> string(4) "hoge"
["class"]=> string(1) "B"
["type"]=> string(2) "::"
["args"]=> array(0) { }
}
[2]=> array(7) {
["file"]=> string(77) "DocumentRoot\index.php"
["line"]=> int(7)
["function"]=> string(1) "A"
["class"]=> string(1) "A"
["object"]=> object(A)#1 (0) { }
["type"]=> string(2) "->"
["args"]=> array(0) { }
}
}
huga() called.
添え字の大きい方から順に処理されていきます。
file => 呼ばれるファイル
line => ファイル内の処理行
function => 呼ばれるメソッド名
class => クラス名
object => 対象のオブジェクト
type => -> が オブジェクトからの呼び出し、 :: はstatic での呼び出し。関数呼び出しは何も表示されない模様
args => 引数
これがあるのを忘れて、ついコードを追いかけてしまいます。
なんていう時間の無駄をしないようにしよう。
2012年2月23日
Javascriptでformを作成してsubmitする方法
JavaScript内でformを動的に生成して、submitする方法のメモ
よく分からずにちょっとはまってしまいました。
書いてて思ったけど、このご時勢にわざわざページ遷移させる必要があるのか、とか
jsでformを作らないといけない理由は何だ?とか思ったけどどっかで需要もあるでしょう
ということで、たとえば
なんていうのをHTML側に書いて、このボタンを押したら動的にJSでパラメータを作ってsubmitするとします。
JS側で
なんていうコードを書いて実行したところ、Chromeさんでは上手くいきました。
ばんざい!おしまい!
としたかったのですが、どうもFirefoxで動いていない模様。
いろいろネットで情報を集めてるうちに
Firefoxはbody要素をきっちり指定してやらないと、formが効かないらしい
ということのようです
ということで、frmをsubmitする前に
こうすると、Firefoxでもちゃんと動きました。
Chromeが賢いのか、Firefoxがきっちりしてるのか。
ちなみにIEや他のでは見ていません。あしからず。
よく分からずにちょっとはまってしまいました。
書いてて思ったけど、このご時勢にわざわざページ遷移させる必要があるのか、とか
jsでformを作らないといけない理由は何だ?とか思ったけどどっかで需要もあるでしょう
ということで、たとえば
input id="submit" type="button" value="送信ボタン" />
なんていうのをHTML側に書いて、このボタンを押したら動的にJSでパラメータを作ってsubmitするとします。
JS側で
var frm = document.createElement("form");
var ipt1 = document.createElement("input");
frm.action = "js_submit2.php";
frm.method = "post";
ipt1.name = "val1";
ipt1.value = "111111";
frm.appendChild(ipt1);
frm.submit();
なんていうコードを書いて実行したところ、Chromeさんでは上手くいきました。
ばんざい!おしまい!
としたかったのですが、どうもFirefoxで動いていない模様。
いろいろネットで情報を集めてるうちに
Firefoxはbody要素をきっちり指定してやらないと、formが効かないらしい
ということのようです
ということで、frmをsubmitする前に
document.body.appendChild(frm);
を追加してやります。 frm.appendChild(ipt1);
document.body.appendChild(frm);
frm.submit();
こうすると、Firefoxでもちゃんと動きました。
Chromeが賢いのか、Firefoxがきっちりしてるのか。
ちなみにIEや他のでは見ていません。あしからず。
2012年2月20日
htaccessでSSLのみアクセス許可を出す
.htaccessでSSLでのアクセスのみを許可する方法
最低限これだけ書けば出来る模様
SSLRequireSSL
これがある状態でhttpでアクセスすると、403 You don't have permission to accessのエラーになります。
localhostのSSL対応していないサーバにこれを仕込んでおいたのを忘れてて
SSL対応させたらhttpアクセスが全然効かなくてはまってしまった・・
ちなみに、Apacheのエラーログにはこんなのが出ます。
failed, reason: SSL connection required
最低限これだけ書けば出来る模様
SSLRequireSSL
これがある状態でhttpでアクセスすると、403 You don't have permission to accessのエラーになります。
localhostのSSL対応していないサーバにこれを仕込んでおいたのを忘れてて
SSL対応させたらhttpアクセスが全然効かなくてはまってしまった・・
ちなみに、Apacheのエラーログにはこんなのが出ます。
failed, reason: SSL connection required
2012年2月15日
HTMLメモ 動的に要素を削除する
さすが飽き性というところで、すぐブログ書かなくなるなー。
さて、忘れそうなので個人メモ。
HTMLで動的なページを作っている時に
要素の作成、追加は
appendChild()で行えるが
要素の削除は
removeChild() で模様。
使い方は同様で()内にhtml Objectを入れてあげれば使えるみたい。
Titaniumでアプリ作る時にでも使いそうだから覚えておこう。
さて、忘れそうなので個人メモ。
HTMLで動的なページを作っている時に
要素の作成、追加は
appendChild()で行えるが
要素の削除は
removeChild() で模様。
使い方は同様で()内にhtml Objectを入れてあげれば使えるみたい。
Titaniumでアプリ作る時にでも使いそうだから覚えておこう。
2012年1月17日
Eclipseでapkに署名する方法
忘れがちなのでメモ。
EclipseでAndroidのapkに署名する方法
・ファイル -> エクスポート
・Android -> Export Android Applicationを選択
・プロジェクト名を入力 or 右のBrowserボタンから選択
No errors found. Click Next.と表示されたら次へ。
・鍵を選択 or 作成 (画面は新規作成)
EclipseでAndroidのapkに署名する方法
・ファイル -> エクスポート
・Android -> Export Android Applicationを選択
・プロジェクト名を入力 or 右のBrowserボタンから選択
No errors found. Click Next.と表示されたら次へ。
・鍵を選択 or 作成 (画面は新規作成)
登録:
投稿 (Atom)