MoyaSystem

もやしです。

JavaScript の console.log で菱型を書く

いつの間にか食レポじゃなくなっていた『俺の食べログ』さんで面白そうな問題があったので。www.2dgod.com function diamond(length) { const height = 2 * length - 1; const width = height; const halfline = (width + 1) / 2; const space = ' '; const …

PHPで1行FizzBuzz

PHP

array_map(function($e){$arr=["FizzBuzz","Fizz","Buzz", $e];echo $arr[ceil(($e%3)/2) + 2 * ceil(($e%5)/4)];}, range(1, 100)); 適当な関数があれば変数宣言も省けそうなのだが。

Quick sort, Merge sort and Heap sort in PHP

PHP

PHPUnit の setUp関数と setUpBeforeClass 関数の違い

PHP

PHPUnit の setUp 関数について勘違いしていた。 setUp 関数は、クラス内のテストケースそれぞれについて、開始前に1回ずつ起動する。インスタンスのプロパティの初期化に用いるとよい。 一方、setUpBeforeClass 関数は、クラスをインスタンス化する前に1度…

CSS の text-decoration 要素の設定値

css

設定値は6つあり、主な設定値は、overline、underline、line-through の3つ。 <span style='text-decoration: overline'>overline</span>出力: overlineいつつかうんだ?これ。 <span style='text-decoration: underline'>underline</span>出力: underline <span style='text-decoration: line-through'>line-through</span>出力: line-throughあとは none initial i…

ポートフォリオサイト的なの作った

GitHubにポートフォリオサイト的なの作りました。"Hassy"'s portfolio1日でやっつけた割にはそこそこのできになったと思います。英文チェック全然やってないから添削必要だとは思うけど。ぼくはデザインスキルほぼ皆無なので、こういった素敵ツールは役に立…

Object.create()時にenumerableをtrueにしておかないとオブジェクトがクローンできない件

Object.create()とは JavaScriptにおいて、プロトタイプベースの継承を行う際によく用いられる関数です。 MDN: Object.create() 拙著過去記事も参照ください JavaScriptにクラスはありません - オブジェクトリテラルとコンストラクタパターン編 - JavaScript…

SQL Server における Clustered Index と Non-Clustered Index の使われ方

Clustered Index (CI) と Non-Clustered Index (NCI) とはそもそも何か SQL ServerのインデックスはCIとNCIに分けられます。CIはデータベースの行そのものをCIキーに沿って並べ替えます。NCIはCIをバリューとする参照テーブルを作成します。CIは一般的にテー…

Cakephp 3.0のMVC構造についてのざっくりしたまとめ

はじめに 最近CakePHPでシステムの開発を行っているのですが、この3月にリリースされたばかりのバージョン3.0で始めてしまったがために、いろいろ2.0と異なる部分があって戸惑ってます。 http://book.cakephp.org/3.0/en/index.htmlModel-View-Controllerの…

metaタグのname="viewport"についてまとめてみた

はじめに レスポンシブデザインで作成したサイトをスマホで見てもうまくレイアウトが反映されておらず、その原因がmetaタグでviewportを指定していなかったから、というのを突き止めるのに一日かかってしまった。超悔しいのでまとめる。参照元はこちら。 CSS…

BuddyPressのプライベートメッセージで使えるHTMLタグを増やしたい

はじめに あけましておめでとうございます。 やりたいこと BuddyPressのプライベートメッセージ機能でdivタグを使えるようにしたい。標準ではdivタグが使えないので、Googleマップを表示するなどの便利な機能が使えないので不便。ただしBuddyPressのソースは…

TitaniumのaddHTTPCookieがAndroidで動かない件とその対処法

このシリーズ毎度タイトルがひどい。 はじめに JavaScriptの共通コードでiPhoneとAndroidのアプリを同時に開発できるTitaniumだが、まったく同じコードで書けば良いかというとそうではない。その一例がcookie。 iPhoneアプリではアプリ内で使われるcookieは…

Titanium製AndroidアプリのWebViewでCookieをHTTPClientと共有する方法

久々に問題解決でドはまりしたのでメモ。しかしひどいタイトルだ……。 はじめに TitaniumでAndroidアプリを作成する際、Cookieの扱いには注意が必要です。 On Android, the HTTPClient uses its own cookie store which does not share cookies with the syst…

JavaScript: ほかのオブジェクトのメソッドを拝借して新しいオブジェクトを作る

課題 新しいオブジェクトを作成する際に、既存のオブジェクトのメソッドをそのオブジェクトのメソッドとして呼び出せたらいいな、ということがあります。しかし、そのオブジェクトをまるごと継承するのは都合が悪いときもあります。そのような場合、一部のメ…

JavaScriptにクラスはありません - プロトタイプで継承編 -

前回の内容はこちら。 JavaScriptにクラスはありません - オブジェクトリテラルとコンストラクタパターン編 - - MoyaSystem 方法3: プロトタイプを拝借する クラスのないJavaScriptに用意されている、オブジェクト間でコードを再利用する方法の一つがプロト…

JavaScriptにクラスはありません - オブジェクトリテラルとコンストラクタパターン編 -

そもそも 今月頭にこの記事を見て、げっと思ったので……。 Class構文が実装された - JS.next Class構文が実装された - JS.nextJavaScriptにクラスは存在しません!!!にもかかわらず、class構文なるものを用意するのは余計に初学者を混乱させるだけだと思います…

Titanium.UI.WebViewのreload()が動かない時の対処法

そもそも Titanium Studio で開発したiPhoneアプリにて、WebView.reload()がうまく動かないという不具合が発生した。画面をリロードしようとしても真っ白になってしまい、何も読み込まれない。時々はうまくいくようだが、なにぶん動作が不安定すぎる。 解決…

Windowsの%date%に足元すくわれた話

そもそも 個人的に運用している某所の出退勤管理システムにて、実績を取得したい期間を任意に指定できる機能を実装した。*1それなら毎月初に先月1ヶ月分の実績を取得してメール送信するバッチ処理もこの機能を呼ぶようにしたいよね、ということで、.batファ…

BuddyPressを前提としたプラグインのPHPUnit環境を構築する

PHPUnit使うのも初めてなのに、WordPress環境やらBuddyPress環境やらを整備しないといけなくってだいぶ時間がかかってしまった。備忘録的に手順まとめ。OSはMax OS Xを前提としています。 Wordpress Command line interface をインストールする 以下のリンク…

Xcodeを6.0にアップデートしたらTitanium Studioが動かなくなったでござるの巻

散々な日曜日でした。 そもそも iOS8の登場に伴い、Xcode6がリリースされましたね。 Mac App Store - Xcode アップデートの通知も来ていたし、これはやらねばと思ってアップデートしたのです。そしたらTitanium Studioからアプリケーションのビルドが通らな…

Appストア リジェクトとの戦い(現在進行形)

久々の更新。 Appストアの申請が通らないよおおお 初めてAppストアへのアプリリリースに挑戦中なのですが、現在のところ2連敗中。心が折れそうや。 予想外の理由で怒られたりもしてるので、まとめておきます。 第1戦 "quit unexpectedly" 初めてのアプリリリ…

PHPでhttpsにcurlが使えなくて詰まった話

PHPでcurlを叩きたくて、こんなコードを書いて動かしてみた。 $curlObj = curl_init(); $c_opt = array(CURLOPT_URL => 'https://hogehoge.com', CURLOPT_COOKIEJAR => 'cookie.txt', CURLOPT_COOKIEFILE => 'cookie.txt', CURLOPT_RETURNTRANSFER => true, …

プログラミングに出る英単語

文法 変数 variable 定数 constant 関数 function, method, procecdure 宣言する declare 定義する define 代入する substitute 初期化する initialize 比較する compare 計算する calculate 暗黙的型変換 implicit conversion 明示的型変換 explicit conver…

Alloyで画面間の変数の引き渡しにハマって、結局解決してない話

タイトルが残念なのはいつもどおりです。 そもそも Titanium Mobile でスマホアプリの開発をしていて、画面間で値の引き渡しをしたいな、と思っていたのです。window1.js var myVar = $.myInputField.value; var window2 = Alloy.createController('window2'…

AlloyフレームワークでのRequireタグの使い方

だんだんTitanium Studio の使い方がわかってきた今日このごろ。今日はRequireタグの基本を覚えましたよ。 Requireタグとは あるエレメントの要素を別ファイルに切り出したいときに使うタグ。 例えばindex.xml <Alloy> <TabGroup id="mainTabGroup"> <Tab id="tabA"> <Window id="tabAWindow" title="tab A view!!"> </Window> </Tab> <Tab id="tabB"> <Window id="tabBWindow" title="tab B view!!"> </window></tab></tabgroup></alloy>

Genymotionが立ち上がらないトラブルを解決した話

そもそも http://www.genymotion.com/ 最近開発を始めたスマホ用アプリのAndroidエミュレータとしてGenymotionが優秀らしい、という情報を手に入れたので、Titanium Studio 標準エミュレータに代えてこちらを導入してみた。http://www.appcelerator.com/blog…

Titanium Mobile からWordPressにログインする方法

POSTリクエストでWordPressにログインするには method: POST URL: http://yourwordpress.com/wp-login.php data: { "log": "username", "pwd": "password" }とすればOK。 Titanium Mobile では index.js function login(){ var url = 'http://yourwordpress.…

Gitでbranch作成->push->内容を共有->masterに取り込み までの手順

本記事は以下のサイトを参考にしました。 remote に branch を push し、remote から clone したリポジトリの branch を変更して push する - basyura's blog Git - ブランチとマージの基本開発に携わっているWebサービスで、そろそろbranchも活用した開発体…

ドットインストールのPHP入門の前にamppsをインストールすればいいと思う

そもそも お世話になってますドットインストール!プレミアム会員です。 最近PHPを触る機会が多いので、そういえばドットインストールではどんなレッスンしてるんだろう?と試しに覗いてみました。 PHP入門(基本編) (全32回) - プログラミングならドットイ…

WordPressのプラグインでDBをアップデートする方法

テーブルを作成する WordPress Codex でも書かれているので引用しときましょう。 dbDelta関数を使います。 Creating Tables with Plugins « WordPress Codex global $wpdb; $sql = "CREATE TABLE $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, ti…