Python - Math - Drawing Geometric Shapes and Fractals(Exploring Hénon’s Function)
今回、第1回目の Elasticsearch 入門という事で、今回は「インデックスを設計する際に知っておくべき事」というテーマにしてみました。ここでのインデックスの設計とは RDB のデータベースとかテーブル、ビューの設計に当たるところです。 Elasticsearch は RDB など他のデータベスに比べ、その設計方法も結構独特です。(と言うか同じ事を実現するにしても色々な方法が用意されていて、さらにアプリケーション要件〜システムアーキテクチャ、運用面など広い範囲が関わってくる)RDB との比較も交え解説していきます。 Index で分けるか? Type で分けるか? 例えば、商品情報を保存するインデックスの設計を考えてみましょう。いわゆるRDBの設計で言うところのテーブル設計ですね。おそらくRDBではアプリケーション要件のみが、その設計の中心になるはずです。例えば、商品名や説明、価格情
ネットサーフィンをしていたら、とても興味深いnode.jsのフレームワークを見つけたのでご紹介します。 その名は「Adonis」です。 以前からnode.jsには興味があったのですが、仕事では使用しておらず、 またjs自体に苦手意識があったので、躊躇していました。 そんな時に、こちらの記事を見つけました。 Laravelライクなnode.jsのフレームワーク「adonis.js」 http://co.bsnws.net/article/25 なんと、node.jsがLaravelの記述方式で書けるだと.... 普段Laravelを使用して開発を行っているので、衝撃的でした。 そして、実際に触ってみた所、ほとんどlaravelと同じ感覚で書け、簡単にプログラムが出来たので、感動しました! ということで、Laravelと比較しながら紹介してみます。 ただ、node.jsやjsについては素人なの
OCP Summit Put down your coffee gently. Microsoft has today released the source code to an open-source operating system, based on Debian GNU/Linux, that runs on network switches. The software is dubbed SONiC, aka Software for Open Networking in the Cloud. It's a toolkit of code and kernel patches to bend switch hardware to your will, so you can dictate how it works and what it can do, rather than
こんにちは、VOYAGE GROUP のコンテンツメディア事業本部で iOS アプリを担当している @TachibanaKaoruです。 先週の3/2~3/5に、渋谷のマークシティーで try! Swift が開催されました。 VOYAGE GROUPでは、今回のtry! Swiftのスポンサーをさせていただいたこともあり、社内から6名(社員5名、内定者1名)が3日間みっちり参加させていただきました。 参加した社員の感想をまとめてみました。 モダン Core Data (by @qmihara) Realm がダイヤモンドスポンサーという中で Core Data の話かー、何を話すんだろうととても楽しみにしていたセッションでしたが、Core Data がメインではなく古くからあるフレームワークを Swift らしく使えるようにする話でした。 Protocol Extension や Enu
Verk is a job processing system backed by Redis. It uses the same job definition of Sidekiq/Resque. The goal is to be able to isolate the execution of a queue of jobs as much as possible. Every queue has its own supervision tree: A pool of workers; A QueueManager that interacts with Redis to get jobs and enqueue them back to be retried if necessary; A WorkersManager that will interact with the Que
TNW Conference 2025 is moving to NDSM, Amsterdam 🎟 Secure your 2-for-1 tickets now! CocoaPods, one of the most popular ways to integrate libraries and dependencies into apps, recently had some performance issues. As it turns out, the reason was that it was too popular. Developers who were trying to install Pods may have had it timeout a few times, or just plain not work. An issue listing on the C
This content has moved; redirecting to the new location.
はじめに こんにちは。haranicleです。 2015年。エンジニアにも筋肉が求められる時代になりました。 今回は、筋肉Swiftプログラマーになりたい皆様といっしょに、 Swiftの基礎であるARCについてトレーニングしていきましょう。 がんばりましょう。💪💪💪 前提 Swift2.1についての記載しています。 ARCの基礎 ARCとは プログラマーが意識していなくても、Swift(のコンパイラ)がARC(Automatic Reference Counting)という仕組みを使ってメモリ領域管理をしてくれます。 もやしプログラマーが飯を食っていけるのもARCのおかげです。 ARCは、基本的に以下のルールに基づいてメモリ領域を管理します。 参照型(クラスのインスタンスとクロージャなど)のみを対象にする インスタンスを生成した時にメモリ空間を確保する インスタンスが 必要 な間は、
The AI Show Live showcases the amazing work happening in AI at Microsoft. Developers learn what's new in AI in a short amount of time and are directed to assets helping them get started and on the road to success right away. Seth Juarez and friends work on cool projects and highlight what's new in Azure AI and Machine Learning. Microsoft Visual Studio Code is a free, powerful, lightweight code edi
「nginx で omniauth を利用してアクセス制御を行う」という記事で、 ngx_http_auth_request_moduleの存在を知ったので、 Golangでnginx_omniauth_adapterと似たようなものを作ってみました。 shogo82148/go-nginx-oauth2-adapter 背景 typester/gateは単体でも動くようになっていますが、 例えばIP制限などちょっと高度なことをしたい場合には結局nginxを前段に置く必要があります。 nginxとgateの設定を同時にいじる必要があって煩雑だと感じていました。 そんな中「nginx で omniauth を利用してアクセス制御を行う」という記事で、 ngx_http_auth_request_moduleの存在を知りました。 gateが認証+Proxyをやってしまうのに対して、認証だけRu
こんにちは、クックパッド編集室の加々美です。 現在、食や暮らしのトレンドを発信するメディアであるクックパッドニュースの開発に携わっています。 クックパッドニュースは、1週間に100本以上の記事を配信しています。 このように比較的多くの記事コンテンツを作成する際、記事の基本的なパラメータ(例えば配信時間や記事の執筆者)をWebアプリケーション上で一つ一つ設定して記事を作成するのは時に煩雑な作業になりがちで、特に編集スタッフにとっては、スプレッドシート上で記事のパラメータを設定できた方が分かりやすく、作業がより確実になる場合があるかと思います。 (また、スプレッドシートであれば楽に複数人で編集できるというメリットもあります) 今回は、スプレッドシートからエクスポートしたcsvを用いて、モデルオブジェクトを生成する際に気をつけたことを紹介します。 ※ 本稿ではGoogle Driveのスプレッド
最近のWebのUIデザインで採用されているさまざまなナビゲーションの名称とその役割、使う時のポイントを「Web UI Design Patterns 2016」から紹介します。 検索のナビゲーションは、ユーザーが特定の何かを探していて、それがどこにあるか分からない時に直接その何かにアクセスすることができます。 最も基本的なパターンはメインのナビゲーションに検索のオプションとして含めることで、右上に配置するのが人気です。虫眼鏡アイコンを添えたり、ドロップダウンで拡張した検索機能にしてもよいでしょう。 Notifications: 通知 ユーザーが何らかの操作をした時、もしくは新しい内容を伝える時に知らせることができます。 通知が普及したのは、ソーシャルメディアサイトにおけるプッシュコンテンツの影響が大きく、他のサイトでも通知を利用して新しいコンテンツやプロダクトやコメントを知らせるようになり
git fetch の裏側でどんな通信が行われてリモートリポジトリの内容が取得できるのか調べたのでまとめる。もともとは git の HTTP や SSH といったプロトコルでどのように実現されているか、というところに興味があった。Git v2.7.1 を基にしている。 事前準備 pack プロトコル pkt-line フォーマット Reference discovery Packfile negotiation Packfile の送受信 packfile への圧縮・packfile からの展開 各種トランスポートの実装 file トランスポート ssh トランスポート git トランスポート http(s) トランスポート まとめ 参考資料 事前準備 手を動かしてプロトコルを理解できるよう、gist の小さなリポジトリ を使う。適当なディレクトリ下に bare リポジトリとして clon
python一般† python.org:公式サイト Wiki Package Index iOS用Python環境 Computable Python for iOS Python Math PyPad Pythonista 英語資料 Python Course:Python のいろいろなトピックについての講義を集めたサイト Python Quick Reference @ Richard Gruet (旧版 日本語訳) Google's Python Class OLamp.com -- Python Dev Center:O'Reillyのpython関連ニュース Python Miro Community:チュートリアル講演ビデオのポータル Wikipedia:Python_(programming_language) Python tools that everyone shou
はじめに オンラインのプログラミング学習環境として今Jupyter Notebookが熱いです。ブラウザ内でテキスト(Markdownで記述可能)を参照しながらコードをインラインで実行できます。もともとはPython向けだったのですが、現在ではRやScalaなどさまざまな言語に対応しています。Generative Designの日本語版が出たこともあり、今回はJupyter上にProcessingの環境を構築してみます。 環境 Mac OS X 10.10.5 Anaconda (Python 2 or 3) 2.5.0 参考 Jupyter notebook で Processing を 構築手順 Anacondaのインストール https://www.continuum.io/downloads よりダウンロード後、インストーラに従ってインストール。 Jupyterのインストール An
01_aggregation.py �D�� V �� V # -*- coding:utf-8 -*- import numpy from scipy import stats n = 200 #正規分布にあてはまる乱数を生成 score_x = numpy.random.normal(171.77, 5.54, n) score_y = numpy.random.normal(62.49, 7.89, n) #適当にちょっとノイズ入れる score_x.sort() score_x = numpy.around(score_x + numpy.random.normal(scale=3.0, size=n), 2) score_y.sort() score_y = numpy.around(score_y + numpy.random.normal(size=n), 2) #最大値 p
Mathは本当に遅いのか 色の距離(色差)を計算するときにちょっとだけ試してみたので,実際によくある(小手先)高速化手法でMathが速くなるのか検証してみた. 検証方法 JavaとAndroidで検証. 単純に実行時間をSystem.nanoTimeで取得し,比較している. 検証順や検証タイミングで最適化がかかったりするので,何回か実行して落ち着いた値で比較している. Javaの検証はIntel Xeon E5 3.5GHzのMac Pro,Androidの検証はQualcomm Snapdragon 800 MSM8974 2.2GHzのSO-02Fで試している. 従来のMathクラスと,実装したDMathクラスで比較した. 10万回実行して1回あたりの実行時間をnano秒で表示している.詳しい方法は一番下を参照. べき乗の高速化 べき乗を計算するMath.pow()は小数のべき乗もサポ
「THE CONVERSATION」によると、シドニー大学の准教授Chin Moi Chow氏が、正しい睡眠をとるための方法を科学的にまとめたとのこと。 私たちは毎晩、成人でおよそ7〜8時間、幼少期は10〜12時間ほど眠っていて、これは60歳までに約20万時間を睡眠に費やす計算です。十分に睡眠をとれないことは健康に害を及ぼすとも言われますが、科学に基づいた睡眠のための準備とは一体どんなものなのでしょうか? 01. 悲観的な考えは、すべて排除 心を落ち着かせる 就寝時に何か考えごとをしている場合は、注意が必要。眠るときは、その日や過去の出来事に焦点を当てましょう。ネガティブな思考はポジティブを上回る傾向があり、心配事や不安な感情を作り出します。 音楽を聴く、祈る、瞑想する、などして気持ちを穏やかにし「朝がくればすべて解決する」と考えるのがいいでしょう。 02. 就寝時間から逆算 コーヒーは6
Inc.:みなさんには人生の目的がありますか? 多くの人は「成功したい」という思いがあっても、自分の人生や仕事に最高の意味を与えてくれる目的を探している途中だったりします。今回は、そんな人におすすめしたいTEDトークを7つ集めてみました。 どれも、人生の目的や目標を見つける手助けをしてくれる、そして背中を押してくれるような素晴らしいトークです。ぜひチェックしてみてください! 1. ラリー・スミス:あなたに夢の仕事ができない理由 情熱とは最も深い愛情のことです。情熱とはあなたの持てる才能を最高のかたちで表現するための道具です。 ラリー・スミス氏の愉快かつ鋭いこのトークでは、人々が情熱を追い求めることをやめるために作り上げる「どうでもいい言い訳」を真っ向から批判します。 スミス氏はカナダのウォータールー大学経済学部の教授であり、生徒達に本当に心から好きになれる仕事を探すようにとアドバイスしてい
Web 制作をしているとページの表示確認やコンポーネントの洗い出しなどで、大量にキャプチャを撮ってきたい時があります。 しかしブラウザのエクステンションで1枚ずつ撮るのも面倒です。 そこで PhantomJS と CasperJS を使うとキャプチャを自動化することができるということなので、先達たちの情報を参考に、キャプチャしたいURLと想定するデバイスを CSV で管理して、楽にキャプチャがとれるものを作成しました。 PhantomJS と CasperJS とは PhantomJS ですが、グラフィカルな画面のないブラウザで「ヘッドレスブラウザ」と呼ばれるブラウザです。コマンドラインからブラウザの機能を使うことができ、フォームの操作やページの要素を取得することができます。よく CI ツールと組み合わせて自動テストを行ったり Web スクレイピングで使われたりします。 PhantomJS
前にやった計り方だとあんまりちゃんと計れていないのでマジメに実装してみた. ついでにAndroidでも計ってみた. 先に結論 synchronizedに比べてAtomicIntegerを使った方がJavaは2倍,Androidは7倍速い. Javaの場合 public class Main { public static void main(String[] args) throws Throwable { int num = 100; double[] syncList = new double[num]; double[] atomicList = new double[num]; for (int i = 0; i < num; i++) { IntTest it = new IntTest(); double sync = test(()->it.testSync()); doub
はじめに Android 4.3 から、BLE (Bluetooth Low Energy) 用の API が提供されるようになりました。その後、Android 5.0 で android.bluetooth.le というパッケージが追加され、BLE 用の API が再定義されました。しかし、輪をかけて酷くなりました。 しばらく BLE の仕事を離れることになりそうなので (そして恐らく戻ってこないので)、Android BLE API に対して言いたいことを忘れないうちに書いておこうと思います。なお、主に BLE アドバータイズメントパケットのペイロードの話になります。BLE API 全体については扱いません。 1. ペイロードのフォーマット BLE アドバータイズメントパケットのペイロード部のフォーマットが BLE の仕様でどのように定義されているかを知れば、あるべき API の姿が想
try! Swiftで発表のあった型消去の話。 この例ではSwiftにおける型消去技法を使用して、結城さんの 増補改訂版Java言語で学ぶデザインパターン入門 Iteratorパターンを愚直にSwiftで実装する。 前提知識 [増補改訂版Java言語で学ぶデザインパターン入門] Iteratorパターン Swift ジェネリクス・プロトコルの基礎 環境 Xcode 7.2 Swift 2.1 Iteratorインターフェース 要素の数え上げをするインターフェース。 protocol Iterator { typealias Element func next() -> Element? } Aggregateインターフェース SwiftではJava版のように、以下のようにAggregateを定義することはできない。 protocol Aggregate { func iterator()
バッチ処理でキューを処理していて、特定の送信元からの処理は優先度高くしたい!っていう要件が発生することありますよね?あります。 Goでチャネルをキューとして使い、ワーカーを別 gorutine で作ってタスクを処理するというのは、よくある実装です。そこへ優先度の高いタスクは割り込ませたい、みたいなことが起こった時に、さくっと解決するニッチなテクニックをご紹介します。 問題のプログラム チャネルからタスクを消費するようなプログラムですが、途中で優先度の高いタスクが発生するとします。 package main import ( "fmt" "time" ) type task struct { name string } var queue = make(chan task) func startConsumer() { for { select { case t := <-queue: //
golangでのtickerのサンプルで以下のようにgoroutine内でrangeを使ってforループを回すのをよく見かけます。 package main import "time" import "fmt" func main() { ticker := time.NewTicker(10 * time.Millisecond) go func() { for t := range ticker.C { fmt.Println("Tick at", t) } }() time.Sleep(35 * time.Millisecond) ticker.Stop() } コレ、以下のようにちょっと変更して実行してみましょう。 package main import "time" import "fmt" func main() { ticker := time.NewTicker(10 *
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く