サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
円安とは
unokun.hatenablog.jp
ちょっとしたテストでインメモリユーザーを使う場合にエラーが発生する。 java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null" パスワードの前に{noop}を追加すればOK。 変更後 @Autowired public void configure(AuthenticationManagerBuilder auth) throws Exception { auth .inMemoryAuthentication() .withUser("user").password("{noop}password").roles("USER"); } 変更前 @Autowired public void configure(AuthenticationManagerBuilder au
go(gin)で作成したWeb APIを別ドメイン(ローカルに作成したindex.html)からアクセスした場合、CORSでエラーが発生しました。 対策としては、ginで作成したハンドラでヘッダ(Access-Control-Allow-Origin)を追加すればOK。 func XXXX(ctx *gin.Context) { ctx.Header("Access-Control-Allow-Origin", "*") ctx.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE") ctx.Header("Access-Control-Max-Age", "86400") ctx.Header("Access-Control-Allow-Headers", "Access-Control-Allo
go 11.1でWebAssemblyが追加になったので、試してみました。 以下のサイトに記載されている内容を試してみたところ、たしかにコンソールに"Hello, WebAssembly!”が出力されました。 WebAssembly · golang/go Wiki 環境 Mac OS High Sierra 10.13.6 go 11.1 nginx経由で同じようにしましたが、以下のエラーが発生します。 wasm_exec.html:1 Uncaught (in promise) TypeError: Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm'. 以下のページを参考に、mime.typesにapplication/wasmを追
概要 TextViewの行間は、StoryBoardでは変更できないようです。 TextView.attributedTextにstyleを追加します。 けっこう面倒ですね。 @IBOutlet weak var textView: UITextView! override func viewDidLoad() { super.viewDidLoad() let style = NSMutableParagraphStyle() style.lineSpacing = 40 let attributes = [NSParagraphStyleAttributeName : style] textView.attributedText = NSAttributedString(string: textView.text, attributes: attributes) } 関連資料 ios
npm installが失敗した原因をいろいろ調べた結果、原因はカスペルスキーでした。かなり、はまったのでメモしておきます。 [~]$ npm install -g grunt-cli npm ERR! Darwin 14.4.0 npm ERR! argv "node" "/usr/local/bin/npm" "install" "-g" "grunt-cli" npm ERR! node v0.12.7 npm ERR! npm v2.1.11 npm ERR! code SELF_SIGNED_CERT_IN_CHAIN npm ERR! self signed certificate in certificate chain npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! htt
doc2vecでWikipediaを学習する - TadaoYamaokaの日記 を参考に、wikipediaのデータをdoc2vecでトレーニングし、類似単語を調べてみました。 総単語数 2,890,010 頻度10以下 2,364,440 残り単語数 525,570 doc2vecは、トレーニングした単語をmodel.wv.vocabで参照することができます。 単語数が、残り単語数の約半分になっているのは、出現頻度が少ない単語が出現している文を削除した時に別の単語も削除しているからでしょう。 >>> len(model.wv.vocab) 266732 トレーニングした単語は、word_vector(keyedvectors)に辞書形式で保存されます。 >>> model.wv.vocab 'カウンダ': <gensim.models.keyedvectors.Vocab object
はじめに iOSアプリで、ある画面で処理したタイミングで別画面の表示を更新したいことがあります。 このような場合には、Observerデザインパターンが有効です。 Observerパターンは、Listenerパターンとも呼ばれます。 Java言語の場合にはListenerをインタフェースとして実装することが多いです。 swiftでは、Observerデザインパターン用のクラスとしてNotificationCenterが提供されています。 ソースコードは、githubにあります。 実装 登録 登録解除 通知を送信 // Notification名を登録する public extension Notification { public static let MyNotificationName = Notification.Name("Notification.MyNotification")
概要 swiftに含まれているReflection APIについて、The Swift Reflection API and what you can do with itを参考に、調べました。 ソースのコメントを見ると、PlaygroundやDebuggerなどで使うことが目的のようです。 $ cat ./stdlib/public/core/Mirror.swift /// Mirrors are used by playgrounds and the debugger. MirrorTypeも使えるようですが、使い方がわかりませんでした。 Reflection API サンプルデータ The Swift Reflection API and what you can do with itのサイトで説明に使っているデータです。 import Foundation.NSURL publi
概要 swiftで日付時刻の処理を行う場合には、NSDate、NSCalendarクラスを使います。 NSDate, NSDateFormatterを使う方法 書式を使って時間を取得します 日付時刻の書式については、 ここを参照してください。 // 現在時間を取得 let now = NSDate() let formatter = NSDateFormatter() // yyyyMMdd HH:mm:ss formatter.dateFormat = "HH" // 時間を整数値に変換 let hour = Int(formatter.stringFromDate(now)) // 時間に応じて挨拶を変える if hour < 12 { print("Good Morning!") } else if hour < 18 { print("Good Afternoon!") } els
概要 画面を下に引っ張ってデータを更新する用UI部品、UIRefreshControlを使ってみました。UIRefreshControl Class Referenceでは、以下のような説明になっています。 UIRefreshControlは、Table Viewのコンテンツを更新するために使う標準コントロールを提供します。Table View Controllerはユーザージェスチャに応じてデータを更新する見た目を処理します。 UIRefreshControlを使ったサンプルコードはここから取得出来ます。 実装 UITableViewの準備 storyboardを使ってUITableViewControllerを使ったアプリを作成しました。これ以外にもUITableViewを作成する方法はあります。 UITableViewControllerクラスを継承したControllerを作成し、
概要 Seleniumなどのツールを使ってWebページの自動試験が行われることが多くなってきました。試験のエビデンスとして画面キャプチャをとることがあると思います。文字列ベースで行うことができるHTMLソースの比較は自動化できますが、ブラウザの表示差異をチェックすることができません。画面キャプチャの比較を人が行うと試験結果の確認に時間がかかったり、確認漏れが発生する可能性があります。 ImageMagickに含まれているcompareというツールを使うと画像の比較が簡単にできます。これを使ってブラウザによる表示差異や修正後の確認などを自動化することができるようになります。 Webページのキャプチャ Yahoo! JAPANのページは右サイドに広告が表示されます。表示される広告が内容が変わるように時間を変えてキャプチャを取得しました。 Webページのキャプチャには、nightmareというP
概要 CentOS 6.6上のpostgresバージョンは9.4で確認しました。 postgresでは関数pg_sleepを使ってsleep処理を実行することができます。 test=# select CURRENT_TIMESTAMP; select pg_sleep(10); select CURRENT_TIMESTAMP; now ------------------------------- 2015-10-11 04:55:12.504113+02 (1 Zeile) pg_sleep ---------- (1 Zeile) now ------------------------------- 2015-10-11 04:55:22.515183+02 (1 Zeile) しかし、function内では関数pg_sleepをselectではなくperformで使う必要がありま
概要 QRCode Reader Using Swift Tutorialを参考に、AVFoundationを使ってQRCodeReaderを作成してみました。 QRコード読取処理のライブラリ化を行いながら、AV Foundationについてもう少し調べていく予定です。 AV Foundation AVFoundationは、時間ベースのオーディオビジュアルメディアの再生と作成に使用できるフレーム ワークで、時間ベースのオーディオビジュアルデータに関する作業を細かいレベルで行うための インターフェイスを提供します。詳細は、以下を参照してください。 AV Foundation for iOS and OS X - Apple Developer About AVFoundation AVFoundationプログラミングガイド AVCam-iOS: Using AVFoundation to
概要 昨年(2015)夏に、Windows10にアップデートして以来、ずっとvagrant upできずにいましたが、以下の記事の方法でやっとできるようになりました。感謝です。 Pocket: Windows 10 + VirtualBox 5.0 + Vagrant 1.7.4 + VCCW 2.18.0 でのエラー回避 詳細 VirtualBoxをネットワークタイプを指定してインストールすると、vagrant upできるようになりました。 VirtualBox-5.0.10-104061-Win.exe -msiparams NETWORKTYPE=NDIS5 現在は、Windows10 + VirtualBox(5.0.14) + vagrant(1.8.1)でvagrant upできています。 VirtualBoxのNDIS6ドライバ?がWindows10に対応していないということな
概要 Swift 2.2がリリースされました。オープンソース化後の最初のアップデートですね。 Xcode 7.3 on Mac OSX Yosemite 10.11.4で(一部)確認しました。 予約後の一部が引き数名として使えるようになりました SE-0001: Allow (most) keywords as argument labels // inはOK func extractWord(prefix: String, in sentence: String) -> Array? { return nil } // inoutはNG // シングルクォートで囲む必要がある func addParameter(name: String, `inout`: Bool) { } 既存コードに対する影響はありません。 意味が明確になる変数を使えるメリットはありそうですが、一部のキーワードはN
概要 Xcodeデバッガの使い方をまとめました。 デバッガはアプリの不具合の改修に役立ちます。多くの場合、1)ブレイクポイント設定、2)変数の値確認で不具合を改修することができますが、Xcodeが持っている便利な機能を使うとデバッグが捗ります。 Xcodeデバッガの概要 公式ドキュメント(Xcodeの概要: デバッガを使う)に詳しいドキュメントがあります。objective-cベースの記事になっています。 ブレイクポイントの設定 ブレイクポイントを設定すると、プログラムの動作を一時中止し、その時の変数の値やメモリの状態を調べることができます。 Xcodeで行番号付近をクリックすると、ブレイクポイントを設定することができます。 青背景のアイコン表示されるのブレイクポイントが設定されているかどうかがわかります。 ブレイクポイントの使い方 例えば、アプリ開発時にprint出力でデバッグすることが
概要 リリースノートをベースに【swift】2.2の変更点を作成しましたが、わかりやすい記事があったので、こちらも紹介します。 ++ and -- are deprecated ++、--記法が非奨励になりました。swift 3.0ではエラーになります。 var i = 0 // 非奨励 i++ // 今後はこのように記述します i += 1 i = i + 1 cスタイルのループ記法が使えなくなります。 for var i = 1; i <= 10; i += 1 { print("\(i) green bottles") } for in構文を使います。 for i in 1...10 { print("\(i) green bottles") } for in 構文は、開始値<終了値という制約があります。 for var i = 10; i >= 0; i -= 1 { } この場合
Jupyterlab v3がリリースされました。 JupyterLab 3.0 is released!. The 3.0 release of JupyterLab brings… | by Jeremy Tuloup | Jan, 2021 | Jupyter Blog デバッガ(xeus-python)が含まれています。 print文を使ったデバッグから脱却できます。 お約束のvenv $ python -m venv venv $ source venv/bin/activate jupyterlabをインストールします。 JupyterLab 3.0 is released!. The 3.0 release of JupyterLab brings… | by Jeremy Tuloup | Jan, 2021 | Jupyter Blog $ pip install jupy
概要 アプリ開発において、デバッガで変数の値を変更することはよく行われます。Xcodeで変数の値を変更する方法を調べました。 MacOS X 10.11.4 YosemiteとXcode7.3の環境で実行しました。 コマンドラインアプリを作成します OSX向けのHelloCommandlineという名前のCommandlineアプリプロジェクトを作成します。名前は何でも構いません。 一番簡単なアプリとしてコマンドラインアプリを作成しましたが、iOSアプリでも同じように使うことができます。 実行します 作成されたmain.swiftを以下のように修正します。 import Foundation var message = "Hello, World!" print(message) 実行します。コンソール領域に結果が出力されます。 Hello, World! Program ended wi
概要 Xcode7.3から、playgroundでユーザーインタラクションがつかるようになりました。 Xcode Release Notes, Xcode7.3のPlaygroundはついにインタラクションに対応! - Qiita UISliderをつかって新しい機能を試してみました。 UISliderをplaygroundで使ってみる playgroundでのUISlider(7.3まで) playgroundでUISliderのインスタンスを作成すると Quick LookでUISliderを表示できますが、スライダーのボタンを動かすことはできませんでした。 let label: UILabel = UILabel(); playgroundでのUISlider(7.3以降) playground7.3から、スライダー移動時のイベントを取得することができるようになりました。 以下の例は
概要 Google Traslate APIを使うと、テキストの翻訳と言語検知ができます。 Translate APIは有料のサービスのため、サービスを使用開始する前に支払い情報を入力する必要あります。 Google Translate API はデフォルトで 1 日 2,000,000 文字に制限されています。この上限は、Cloud Console で下記の手順を行うことで 1 日 50,000,000 文字までに増やすことができます。 1 日 50,000,000 文字以上翻訳する必要がある場合は、お問い合わせをする必要があります。 料金 使用料(翻訳) テキスト 1,000,000 文字につき 20 ドル。課金は実際に提供された文字数に比例して調整されます。たとえば、翻訳する文字数が 500,000 文字だった場合は、10 ドルが課金されます。 使用料(言語の検知) テキスト 1,0
概要 RubyMineでRailsデバッグ環境を構築する手順です。 【Windows7】VirtualBox + Vagrant + Ruby + Rails4 開発環境の構築【初心者必見】 - Qiitaの記事を参考にしています。 Railsの環境構築 RubyMineによるRailsデバッグ環境構築 Railsの環境構築 以下の手順でRailsアプリをホスト側のブラウザで表示することができます。 仮想環境構築 Railsアプリ環境構築 Railsアプリ実行 参考情報 【Windows7】VirtualBox + Vagrant + Ruby + Rails4 開発環境の構築【初心者必見】 - Qiita 仮想環境構築 仮想環境は、VirtualBox/vagrantで行いました。 VirtaulBoxインストール vagrantインストール OSインストール Centos6.5をインス
概要 go 1.5からshared library作成用ビルドモードが追加された。 shared libraryを作成する方法と、アーカイブを作成する方法がある。 Golang で Shared Library を出力する。 - Qiita 上記リンクのサンプルコード(libgofib.go)を使ってshared library、アーカイブを作成してみた。環境は、Mac OS X 10.10.4(Yosemite)。 mobile環境(android/iOS)で使えるようにするのがゴールだと思うが、組込環境全般でも使えそうな気がする。 shared library 以下のコマンドでビルドする。 $ go build -buildmode=c-shared -o libgofib.so libgofib.go ヘッダ(libgofib.h)とモジュール(libgofib.so)が出力される。
概要 CLionは、IntelliJが提供しているC言語開発用IDEです。マルチプラットフォーム(Linux/MacOSX/Windows)で動作します。CLionは有料の製品ですが、EAP(Early Access Program)は無償で使うことができます。CLion 1.5 EAPにswift用プラグインが入ったようなので使ってみました。 CLion 1.5 EAPのswift用プラグインを使うと、コード補完だけでなくデバッグ機能を使うことができます。 MacOSXでは、XcodeというAppleが提供しているIDEがありますが、Linux環境では動きません。Linux環境でswift言語を使った開発をする場合選択肢の一つになりえると思います。 OSはUbuntu14.04で、VirtualBoxの仮想マシンとして実行しています。 インストール ダウンロードサイトから、CLion-1
概要 前回は、GoogleのTensorflowを試してみました。今回は、はじめてのテンサーフローワークショップに参加しました - Qiitaテンサーフローワークショップの題材となった、reactivekk社が公開しているデモを動かしてみました。ipython notebookを使って、結果をブラウザ上に出力するデモです。計算モデルが可視化されるすぐれものです。 MacOSX Yosemiteで実行しています。 tensor flow実行環境を構築します python環境を構築します pythonはHomebrewを使ってインストールしました。 $ brew install python $ python -V Python 2.7.10 python用パッケージマネージャーをインストールします。 $ sudo easy_install pip $ pip --version pip 7.
概要 Dockerエキスパート養成読本の第2章「Dockerfileの基礎知識」を参考にして、Docker Imageの作成をしました。 以下の手順で作成から削除までを行います。 Dockerfileを作成します Dockerイメージを作成します 実行します コンテナを削除します イメージを削除します Dockerfileを作成します $ cd mynginx $ cat Dockerfile FROM ubuntu:latest RUN apt-get install -y nginx CMD /usr/sbin/nginx -g "daemon off;" Dockerイメージを作成します $ eval "$(docker-machine env default)" $ docker build -t smaphonia/mynginx:latest . Sending build c
概要 仮想環境(Centos6.6)に Elixir/Phoenixを実行してみるを参考にしてElixir/Phoenixを動かしてみました。 erlang nodejsは、epelレポジトリからインストールしました。 $ sudo yum install epel-release $ sudo yum install nodejs npm --enablerepo=epel そのほかは、参考サイトと同じ手順でインストールできました。.bashrcに書き込むコマンドのhomeディレクトリは環境に合わせる必要があります。 $ sudo yum install -y lynx wget curl git nodejs npm redhat-lsb inotify-tools $ git clone https://github.com/robisonsantos/evm.git $ cd ev
前回作成したテストを使ってtracingしてみた。パフォーマンスチューニングとかの分析時に役立ちそう。 データの可視化にHTML/ブラウザ使うのは(よくある方法だけど)うまい方法だなぁと思う。 $ cd gotest $ go test -trace=trace.out . ok _/パス.../gotest 0.248s $ go tool trace gotest.test trace.out ブラウザが起動する。 http://127.0.0.1:58976/ 出力する項目は以下の6項目。 View trace Goroutine analysis Network blocking profile Synchronization blocking profile Syscall blocking profile Scheduler latency profile View trace
raspberry Pi 2 Model Bの性能が大分上がったので遅まきながら使ってみることにしました。CPU: Quad Core, メモリ: 1GB。このスペックで約5,000円というのは本当に素晴らしい。 一応、使えるようになったが、次に何をしようかなと思案中。電子工作は得意ではないので、スマートTV方面に向かおうかな。USB地デジ&ワンセグチューナーも以前より安くなっていますしね。10年前に行ったTV録画サーバー構築の繰り返しになるかもしれないけど。 事前準備 Raspberry Piを使うためには、以下の機器が必要でした。ネットワークは有線でも大丈夫だけど、無線LANも使えるようにしていた方が便利だと思います。 キーボードは、Lenovo Thinkpad トラックポイントキーボード 日本語を使いました。キーボードマウスでUSBポートを一つしか占有しないメリットがあります。ケー
このページを最初にブックマークしてみませんか?
『unokun’s blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く