サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
unk-pizza.hatenadiary.org
CentOS 6.5, Python 3.6.1, Django 1.11.1 私がPythonについて持っている知識というのはこの程度のことしかない。 にわかというレベルですらないが、このたび、PythonでちょっとしたWebアプリを作ってみる機会があった。 以下は記事タイトルの環境を構築した時のメモである。 Python 3.6をインストールする 私が対象にした環境にはPython 2.6がインストールされており、これはyumが内部的に使用しているらしい。 そこで、2.6は残したまま、3.6をインストールすることにした。 $ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz $ tar zxf Python-3.6.1.tgz $ cd Python-3.6.1 # 64bit 環境で Python3 と mod
CentOS 6.5, Vim 7.4 これは個人の作業ログであり、環境構築方法を説明する情報としては整備されたものではありません。 最近のプログラマーにはインフラ構築スキルも求められるそうだ。 CodeZineが言ってるんだから間違いない。 (ソースは2015年11月9日のメルマガ) さて、久しぶりに書く日記のことを果たして「日々の記録」即ち「日記」と呼んで良いのかどうかはさておき、最近、とあるサーバーにCentOSを新規にインストールすることがあった。CentOSをインストールするのは私の人生において、これで4度目くらいである。インフラチームのYさんに比べれば、まだ初心者の域だろうが、営業部のYさんに比べれば、プロの領域である。ちなみにWindows 95は20回くらいインストールしたことがあるし、禁煙には5回くらい成功したことがある。 OSをインストールした直後にやらなければならない
「テーマ」、「アルバイト」 のように、オリジナルの単語が英語でないことも多いから正確には外来語というべきか。 10年くらい前までは、我々の業界では、 Computerを「コンピュータ」 Userを「ユーザ」 Serverを「サーバ」 と記述するのが一般的であった。 しかしこれは今では間違いだ。 昔の内閣告示とかいうのによると、「ー」を省くこともできるとされている。 http://homepage3.nifty.com/recipe_okiba/nifongo/gairai.html しかし、2008年に公布されている「外来語(カタカナ)表記ガイドライン第2版」では、「ー」をつけるとされている。 http://www.jtca.org/ai_collaboration/katakana_wg/katakana_guide.pdf Microsoftも2008年から「ー」をつける方針に変えてい
Xcode 5.1 今、以下のような単純な画面を作っていたとする。 ご覧のように、画面上にはラベルが1つとボタンが1つ存在するだけである。 Helloラベルには、以下のように4つのAutolayout制約があるものとする。 ・Width(固定) ・Height(固定) ・Vertical Space(コンテナ上側に対する余白) ・Horizontal Center in Container ここで、ボタンが押されるたびに、ラベルを下に100ピクセルずつ動かしたいとする。しかも、その移動をアニメーションさせたいとする。 まず、Autolayoutされたビューを動かすには、frameプロパティやcenterプロパティを変更する、というアプローチは通用しない。Autolayoutされたビューというのは、制約により配置されているのであり、動かすならば、レイアウト制約の値を変更すべきである。 幸いに
・Vimで使える正規表現の一覧 http://archiva.jp/web/tool/vim_regexps.html ・先読み、後読み http://vim-jp.org/vim-users-jp/2009/09/20/Hack-75.html 特定のパターンが対象のパターンの後ろに来るという条件 → 先読み 特定のパターンが対象のパターンの前に来るという条件 → 後読み 肯定先読み:\@= 否定先読み:\@! 肯定後読み:\@<= 否定後読み:\@<! Vimでは、これらのパターン指定は、直前の文字、またはグループに対して指定する。 つまり、文字列 "Hello" に対して肯定先読みを行う場合、グループ化して、 \(Hello\)\@=と記述する。 肯定先読みと肯定後読みは、普通に正規表現を記述するのとマッチする箇所は同じだが、マッチの対象に先読み、後読みパターンを含めない点が異なる。
Xcode 6.0 Beta 前回は、Swiftコードから、「C++をラップしたObjective-Cクラス」を利用する方法を調査した。結果、うまくいった。 今回は引き続き、SwiftからCの関数を呼び出すやり方を調べてみた。 Cは、C++と比べると、Swiftとの親和性が高い。ブリッジングが必要なことは同じだが、ブリッジングさえすれば、Swift内から簡単にCの関数を呼び出すことができる。Objective-Cでラップする必要がないという点で、パフォーメンス面で少し有利であろう。しかし、実際にやってみると、ハマリポイントがかなり多かった。Swiftのデータ型をきちんと理解していかないと、データの受け渡し部分で混乱してしまう。私はおおいに迷い、彷徨って、試行錯誤したことの大半は徒労に終わった。これから同じことをやろうとする人には少しでも楽をしてもらいたいものだ。だがしかし、そのためにこの記
はてな「今週のお題はテストです」 うるせえ! 私は書きたいことを書く。 SwiftはObjective-Cとの互換性があると聞いた。 であれば、もちろんC, C++も使えるはず、と思っていた。実際に、公式ドキュメントのAbout Swiftの項にも、 Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibility. と書いてある。しかし、C++との互換性があるとは書いていない。「CとObjective-Cの上に構築する」とは書いてあるものの、「C互換の制約に縛られずに」という部分も気になる。 ふと思ったのだが、Objective-Cでは、C++を使う場合、実装ファ
Xcode 6.0 Beta 前回は、Swiftコード内で自作C関数を呼び出すやり方を調べて、テストコードを掲載した。 うまく動くことは動いたが、あまり詳細な部分については解説できなかった。今回は、ハマリポイントというか、主に型変換について、そのとき苦労したことを補足説明したいと思う。 説明とはいっても、私自身、まだまだSwiftを学習し始めたばかりなので、誤ったことが記述されていたり、もっと効率の良いやり方がある可能性は十分にある。もしお気づきの方がいたら、是非ご指摘願いたい。 それでは、前回作成したSwiftのテストコードからコメントを排除し、ポイントとなる行に番号をつけてマークしたものを以下に掲載する。後で、コメントとしてつけた番号の部分について、それぞれ説明することとする。 【main.swift】 import Foundation let table = ["ABC", "DE
12. NSNotificationCenter 最後にNSNotificationCenterを紹介する。プロトコルデリゲートパターンは主に1対1、KVOは1対1〜1対Nに適用するものであるが、NSNotificationCenterを使うと、N対Nのイベント伝達を疎結合に実現できる。ただし、通知センターを使う方法は、他の2つの方法よりもオーバーヘッドを伴うことになる。しかし、うまく活用すれば、ある場面では他の2つの方法よりもパフォーマンスを向上させる可能性も持っている。 N対Nとは言っても、それは別にプロトコルデリゲートパターンでも実現可能なことである。複数のプロトコルを定義して、複数のプロトコルデリゲートを所持する送信元と、複数のプロトコルを実装するデリゲートを用意すれば、それでN対Nだ。通知センターを使えば、それをもっとスマートに、疎結合に実現できるという話である。 通知センターは
Xcode 5.1.1 我々はもうAutolayoutから逃げることはできない。 今からでもAutolayoutを使うことに慣れていくしかない。以下にAutolayoutを使った具体的なデザイン例と手順を掲載しておくので、Autolayoutにまだ不慣れだというひとに、チュートリアルとして参照していただきたい。 iPhoneでこんな画面を作ってみたとする。 【4インチ画面】 右上にヘッダ、左下にフッタ、中央にメインコンテンツを配置している。 この画面をAutolayoutを使わずに、絶対座標で作ったとすると、デバイスを横向きにしたときにレイアウトが崩れてしまう。 【4インチ画面 - 横向き】 アプリのビルド設定で横向きに対応しないという手もあるが、今の時代はもう、デバイスによって画面のアスペクト比が異なる。ご存知のように、iPhone5, 5c, 5s(4インチ)向けにレイアウトした画面を
MariaDB 5.5 MariaDB Java Client 1.1.5 今年の夏頃からMariaDBを使っている。 今のところクライアントは主にJavaプログラムである。 この数ヶ月間、MariaDBには驚かされてばかりだ。 遭遇したすべての状況を記事にすることは現状できていないが、小出しになってしまうにせよ、そのうち時間を見つけて記載するつもりでいる。 例えば、こんなことがあった。 ・テーブル名などの識別子の大文字小文字を「区別する」 ・しかも、WindowsとOS Xでは識別子の大文字小文字を「区別しない」 ・VARCHAR型の大文字小文字をデフォルトで「区別しない」 ・DATETIME型のデフォルト値にNOW()を指定できない ・TIMESTAMP型の扱いがややこしい ・行ロックの挙動が普通じゃない などなど。 上に挙げたすべてのことは、MariaDBというよりも、MySQLの仕
iOS 6.1、あるいはそれ以前に作られたアプリにおけるボタンとは、Round Rect Buttonという角丸のボタンがデフォルトであった。まあ、それ自体、決して良い見た目ではなかったので、多くの場合はカスタムボタンを作成していたわけだが、中にはRound Rectを使っているアプリもあるだろう。 そういったアプリをiOS7用にXcode 5.0で再コンパイルすると、ボタンの外観は、ふちなし、背景色なしの、およそボタンには見えない見た目に変わってしまう。 これを元のRound Rectのような見た目に変更するには、ViewController#viewDidLoadなどで、以下のようにしてやる。 button.layer.borderColor = [UIColor grayColor].CGColor; button.layer.borderWidth = 1.0f; button.l
OS X 10.7, iOS 6.1, Xcode 4.6 なにそれ? ビュー(UITableView)を下にスライドさせることによって、更新アクションを起こすアレです。 こういうやつ。 ↑のこれをやりたかったんですけど、最初、これの名前が分からなかったので、どう実装すれば良いのかも調べられませんでした。これって、「Refresh Control」とか「Pull-to-Refresh」っていうんですって。 名称さえわかれば、あとはGooglingすれば済む話ですが、せっかくなので、使い方を書いておきます。 テスト用プロジェクトを新規作成 リフレッシュコントロールを使うには、まず、テーブルビューを構成する必要があります。 わざわざプロジェクト作成から書くこともないでしょうが、一応・・・ ・Xcode起動 ・Create a new Xcode project ・Single View App
戯れ言が長くなるので結論だけ先に書きます。 タイトルの通りで、copyしたらreleaseかautoreleaseしなければならないということです。 考えてみれば当たり前のことですが、案外忘れがちかと思います。 -(NSArray*)array { NSMutableArray* ary = [NSMutableArray array]; [ary addObject:@"hoge"]; // ... return [ary copy]; // Potential leak of an object } XcodeのAnalyzeにかけてやれば、このような単純なミスはすぐに発見できます。 上記のような場合は、autoreleaseが適切でしょう。 -(NSArray*)array { NSMutableArray* ary = [NSMutableArray array]; [ary ad
情報豊富で枯れたものが好きな私でも、さすがにJavaの開発では、そろそろJDK 7を使ってもいいんじゃないかと思い始めてきました。 AutoCloseableは簡単だし、ちょっと便利そうなので使ってみよう。 try ( Connection conn = dataSource.getConnection(); Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery(sql); ) { while (rset.next()) { // ... } } tryの最後にcatchもfinallyもないのはちょっと違和感あるけれども、いつもの if (null != conn) try { conn.close(); } catch (SQLException e) {} を書かなくて良いのはいいですね
プログラムの初心者が、iPhoneアプリを作れるようになるまでに学んでおくべきObjective-C関連の技術をロードマップとしてまとめました。会社の新人に教えることを想定しながら書いてみました。 2013/02/27〜2013/04/01 リンク集 ・C言語を覚える ・オブジェクト指向を理解する ・Objective-Cの言語仕様を覚える ・メモリアロケーションのルールを構築する ・Xcodeを使う ・Cocoaの設計思想を理解する ・画面遷移 ・イベント通知の3つの方法 ・プロトコルデリゲートパターン ・循環参照 ・KVO ・NSNotificationCenter ・あとがき
このページを最初にブックマークしてみませんか?
『おっさんプログラマの戯れ言』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く