サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
夏の料理
qiita.com/eccyan
はじめに IBM Quantum Experienceが公開され、夢のコンピュータである量子コンピュータがクラウド上で触れる様になりました。 ところが、量子コンピュータはまだまだ抽象化されておらず、我々が論理ゲートを組み合わせて加算器を作るように、単純なゲートを組み合わせて、数値やアルゴリズムを表現していくか探索するような段階です。 試そうと思っても、難しい記号や数式がわんさと出てくるのですが 「僕達だって量子コンピュータ触りたいんだもんっ」 ということで、IBM Quantum Experience を触れて楽しめるような、基礎的な部分を勉強がてらまとめてみました。 量子コンピュータとは 我々がいつも利用しているコンピュータを、量子コンピュータのレトロニムとして、古典的コンピュータ呼びます。 古典的コンピュータは、計算の基本単位を Bit (Binary unit) といい、それぞれの
はじめに 社内の勉強会で現在の開発についてまとめてみたので公開します。 みなさんの意見も是非お聞かせください そもそもアジャイル開発ってなに? まず、前提知識として、我々はなぜアジャイル開発をしているのか、どういった手法があるかを簡単に説明する。 ウォータフォール開発の問題点 ドキュメント等の成果物で進捗が管理しやすいが、見た目の進捗は分かっても真の進捗は最後まで分からない。 ユーザは最初に見積もったシステム機能の7%をよく使うが45%は全く使わない。 アジャイル開発とは 最初から正しく決定できるわけがないと認め、学習と改善を前提としてわざと決定を遅らせる。 プロトタイプを何回か作り、設計にユーザを巻き込むユーザ中心設計(UCD)を取り入れる。 無駄な会議、無駄な設計、無駄なテスト、無駄なドキュメント等の無駄をなくすリーン開発思考。 スクラム開発とは アジャイル開発を行うためのフレームワー
なぜ 過去の遺産等でインデックスが機能しておらず、整理も困難なのでインデックスを指定したい。 具体的には、ページネーションで利用している Kaminari が total_count を取得する時にインデックスが指定されなかったため MySQL の USE INDEX (...) を設定したかった。 どうやって 以下のスコープをモデルに記述する scope :use_index, lambda { |*indexes| from("#{self.table_name} USE INDEX(#{indexes.join(', ')})") }
Dagger は Android/Java で動作する依存性注入(Dependency Injection)ライブラリです。 結構 Dagger を使っているプロジェクトはあるのですが、設計やその利用方法に疑問点や改善点が散見されるので、まとめておこうと思います。 Dagger 2がリリースされていますが、@ModuleAnnotation 内に記述していた、依存関係が@Componentに移譲された認識ですので、考え方は同じはずです。 Dagger は画面(or 機能)単位の依存関係を記述するべき 例えばログイン画面、リスト画面、詳細画面の場合の記述 Bad Pattern [root: ApplicationModule] >[injects: Application.java] └──<[includes: AwesomeModule] └──>[injects: LoginActi
よく、初心者向けの教科書に「とりあえずprivateを指定し、必要な物はpublicにしましょう。」と書いてありますが、これは大きな間違いです。 最初にアクセス修飾子を熟知しておかなければ、Java という言語を扱う上で最良の設計を行なうことは難しいでしょう。 そんな教科書は今すぐ窓から投げ捨てるか、ちり紙代わりに使いましょう。 Package パッケージは Java のクラス郡をまとめるための仕組みです。主に利用する目的として、以下の 2 点ががあります。 名前の衝突を避ける事が出来る。 パッケージによるアクセス制御を行なえる。 これらを利用する事で Facade デザインパターンを忠実に実現することができます。 Java のカプセル化においてこの仕組みは必要不可欠でしょう。 Design patterns 次に、ソフトウェア設計において基本的な 2 パターンを紹介します。 Facade
今現在 Lolipop より前のバージョンで開発を行ってるとsetElevationが反映されません。 フラットですが、随分とノッペリとしたデザインになってしまいますね。 View に影を付ける方法は、ここに記載されている様に 9-patch や shape を使う方法がありますが、中でもカスタムビュー内でonDrawをオーバーライドする方法が一番手頃だと思います。 上記サイトでも紹介されている Shadow.java は自分の影の描画を行うのですが、描画順によっては折角描画した影が上書きされてしまいました。 なので、描画が後の View が前の View の影を描画する必要があります。 import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Color; i
Redis は便利なのですが、メモリが半分しか使用出来ないという問題が有ります。 非同期でファイルの書き込みを行う際に、メモリのスナップショット(コピー)を取るために、その分の空きメモリが必要なのです。 ここに Redis のソースコードのコメントを翻訳したものを置いておきます。 今回、メモリの空きが足りなくなったのは、準永続的な情報用のサーバと利用している物で、簡単に消すことは出来ませんでした。 そこで Redis のメモリダンプを解析し、利用していないキーの削除やデータ型の変更を行うことにしました。 メモリの解析 メモリダンプはそのままでは人間には理解不能なので、ローカルにdump.rdbファイルをコピーし、 Rdbtools を利用してCSVに出力し、そこから必要なデータに整形しました。 $ rdb -c memory dump.rdb > redis_memory.csv # バイ
attributes array ["female", "28", "orange"] ["male", "18", "car"] ["female", "32", "art"] SELECT count(*) FROM tracks LATERAL VIEW explode(attributes) exploded_attributes AS attribute WHERE attribute = 'female'
- (void)openMapsWithLatitude:(double)latitude longitude:(double)longitude { // openMapsWithItems が定義されていれば実行 Class itemClass = [MKMapItem class]; if (itemClass && [itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)]) { CLLocation *location = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude]; // 緯度経度から逆変換して位置情報取得 CLGeocoder *geocoder = [[CLGeocoder alloc] init
このページを最初にブックマークしてみませんか?
『qiita.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く