programmingに関するyad-ELのブックマーク (1,616)

  • 曲がった線路のプログラム

    このところ,方眼紙をつかった硬い感じの(逆に言うとコンピュータらしい)例題が多かったのですが.きっちりと動くので,厳密な動作ができて,論理的に深いところまで追求できる,たとえばパズルとかに向いてます. 今回はビスケットらしい柔らかいプログラムをご紹介します. プログラムはいたって簡単.メガネ1つです. これ 線路には方向があるので,右側に赤い点を打ってます.電車と線路の黒い点は移動の目安にしています.メガネでは線路の一つの点と電車の点が重なる一から,線路のもう一つの点まで移動するようにします. メガネのなかで線路が動いてしまわないように,今回はメガネをつくるときだけ方眼紙のモードにしました.ただし,方眼紙モードはステージは他のメガネの中身も整列させてしまうので,最初にメガネをつくるときだけにします.当なら方眼紙モードじゃなくてもメガネの左右で絵をぴったり重ねる方法を用意すべきですね.まあ

    曲がった線路のプログラム
  • アプリとプログラムが動く仕組みをトレタCTO増井雄一郎氏が解説 - ログミーTech(テック)

    株式会社トレタのCTO・増井雄一郎氏がアプリやプログラミングの仕組みについて社内勉強会で解説しました。アプリはどのように作られて、どのように動いているのかをわかりやすい例えとともに説明しています。またプログラミングを習得するには数学英語よりも、国語力が求められるそうです。文系の人でもエンジニア仕事をざっくりと理解できるような内容になっています。 お風呂にパソコンを持ち込んでプログラミングしている 増井雄一郎氏(以下、増井):私は「masuidrive」という名前で活動しておりまして、それで検索すると結構いろんなものが出ます。仕事ではこうやってプログラムを書いているんですが、基的に僕は自分の時間もほとんど趣味のプログラミングをしていて、僕の写真を撮るとほぼ100%パソコンが手元に写る。それ以外の時間はほとんど何もしてないという状態になってます。 あまりにプログラムが好きなんですが、実は

    アプリとプログラムが動く仕組みをトレタCTO増井雄一郎氏が解説 - ログミーTech(テック)
  • 上司「お前のプログラムはモジュールと関数が多すぎるからもっとグローバル変数とか使ってまとめろ」

    経緯 所属している部署はソフトウェア開発は専門外。そんな中、数少ないプログラマーの一人として.NETで業務効率化ソフトを開発していた。その後、成果物を他部署へ引き継ぐことになったが……。

    上司「お前のプログラムはモジュールと関数が多すぎるからもっとグローバル変数とか使ってまとめろ」
  • go-sql-driver/mysql でプレースホルダ置換をサポートしました : DSAS開発者の部屋

    前回の記事で少し触れましたが、 go-sql-driver/mysql にドライバ側でのプレースホルダ置換を実装するプルリクエストを出していました。 それがマージされたので、背景のおさらいと利用方法を紹介しておきます。 背景 Godatabase/sql の概要については前回の記事で解説しました。 そこで説明したとおり、 DB.Prepare() を使わずに直接 DB.Exec() や DB.Query() を使った場合、 ドライバ側でのプレースホルダ置換に対応していないドライバでは prepare, exec, close で3回のラウンドトリップが発生することになり、パフォーマンスが悪くなります。 基的には DB.Prepare() を使えばいいのですが、前回の記事で修正したスケーラビリティの問題は Go 1.5 になるまで直りませんし、 IN 句があるSQL文などで事前に P

    go-sql-driver/mysql でプレースホルダ置換をサポートしました : DSAS開発者の部屋
  • Golang vs PHP7(追記あり) - GMOインターネットグループ グループ研究開発本部

    Golangが一番パフォーマンスが良いかと予想していましたが、全く逆の結果になってしまいました。 Golangが遅い理由 遅い原因をいくつか考えて改善できないか試してみました。詳細は省きますが、以下の点については問題なさそうでした。 goroutineはリクエスト単位で起動している コネクションプールは有効になっている BeegoORM特有の処理は主原因ではない(標準ライブラリのsql関数と大差なし) DB側のCPU使用率は100%になっているが、CPU使用率とメモリ使用量はPHP環境と同程度の負荷になっている ここまで確認して、プロファイラを使った方が良さそうに思えたので、いったんプロファイラで状況を確認するために、標準で提供されていて手軽に使えそうなpprofを使ってみました。topで確認すると次のような結果がでました。 (pprof) top 20 -cum 920ms of 15

    Golang vs PHP7(追記あり) - GMOインターネットグループ グループ研究開発本部
  • Google、手で触れ組み立てながらプログラミングを学ぶ「Project Bloks」

    Googleは6月27日(現地時間)、「Project Bloks」という研究プロジェクトを公表した。子供向けタンジブルプログラミングの設計・デザインをサポートするオープンハードウエア・プラットフォーム作りに取り組んでいる。 タンジブルプログラミングは、ブロックのような直接手で触れられるモノを使って組み立てるようにプログラミングする。実体験を伴うインターフェイスであるため、子供向けのプログラミング学習に利用することで、子供たちが遊びながら直観的にロジックを理解できるようになる。 Project Bloksは2013年にスタートしており、これまでの活動でモジュラーシステムの設計がまとまっている。モジュラーシステムは以下の3つで構成される。 Pucks:「オン/オフ」「移動」「ジャンプ」「量の調整」「再生」など、様々なインタラクションを示すパーツ。 Base Boards:Puckの土台にな

    Google、手で触れ組み立てながらプログラミングを学ぶ「Project Bloks」
  • グーグル、触れて学ぶプログラミング学習用プラットフォーム「Project Bloks」発表

    「Project Bloks」は、プログラミングに取り組む際に必要な基礎的なコンピューティングスキルを子供たちに教えるための、触れて学ぶ新しいGoogleのプラットフォームだ。 ブロック(積み木)を使用して子供たちにコーディングを教えるというシンプルなコンセプトに基づいており、これまでにもプログラミング言語の概念を学ぶMITの「Scratch Blocks」などのプログラムで試行されている手法だ。子供たちがコンピュータの前に座ることが必要なScratchとは異なり、Bloksは実際にブロックを使用する。Googleはこれを「Pucks」や「Board」と呼んでいる。 Google以外にも、AmazonAppleといった大手テクノロジ企業が、次世代のコンピュータプログラマーを育成する教育用プログラムを開発している。他のプログラムとBloksの大きな違いは、従来のコンピュータインターフェース

    グーグル、触れて学ぶプログラミング学習用プラットフォーム「Project Bloks」発表
  • Raspberry Pi3で自動ノート取り装置を作った - いきるちから

    はじめに 数理情報工学実験第二という演習で、Raspberry Piをつかって何かを作ることになりました。そこでAMATERASUという自動ノート取り装置を作ったので紹介します。 そもそもRaspberry Piって? Raspberry Pi3 Model B ボード&ケースセット (Element14版, Clear)-Physical Computing Lab 出版社/メーカー: TechShareメディア: エレクトロニクスこの商品を含むブログ (3件) を見る これです。安くて小型で色んなセンサーをつけて遊べるコンピュータです。今回はカメラモジュールを使いました。 自動ノート取り装置とは 自動ノート取りの目標は、講義を撮影した動画*1を処理することで、ノートの代わりとして使える画像を出力することです。具体的には次のgifのような画像を次々出力していくのを目標にしています。黒くな

    Raspberry Pi3で自動ノート取り装置を作った - いきるちから
  • ケン・トンプソンのトロイの木馬 - てきとうなメモ

    ケン・トンプソンのトロイの木馬は、ケン・トンプソンがチューリング賞を受賞したときのスピーチ「Reflections on Trusting Trust」で発表したCコンパイラのハックの話で、以下の様なものである。 1. loginコマンドに特定のユーザであればログインを許可するようなコードを埋め込む。 2. 1はloginコマンドのソースコードを読めばバレるので、コンパイラに、loginコマンドをコンパイル時に1のコードを埋め込むようなコードを埋め込む 3. 2はコンパイラのソースコードを読めば分かるので、コンパイラに、コンパイラのソースコードをコンパイルする時に2のコード埋め込むようなコードを埋め込み、かつ自分自身と同じような動作するようにコードを埋め込む つまり、この不正なコンパイラは正常なloginコマンドのソースコードを不正なloginコマンドにコンパイルする機能と、正常なコンパイ

    ケン・トンプソンのトロイの木馬 - てきとうなメモ
  • よいコードを書くために,プログラマは何をすればよいのか

    よいコードを書くためには,設計の基を守り,既存のコードを読むことが必要である – Java ChampionでハイパフォーマンスコンピューティングのスペシャリストであるMartin Thompson氏のことばだ。InfoQは,QCon London 2016で“Engineering You”と題した講演を終えた氏に,ソフトウェア産業が直面する課題は何か,プログラマがそれを克服して優れたソフトウェアエンジニアになるにはどうすればよいのか,などをインタビューした。 InfoQ: 講演の中であなたが引用した,1986年の,ソフトウェアエンジニアリングに関する最初のNATOカンファレンスの内容は,現在でも通用します。ソフトウェア産業がいまだ問題を解決できないのはなぜでしょう? Martin Thompson: 1986年のNATOカンファレンスには,たくさんのテーマがありました。彼らはソフトウ

    よいコードを書くために,プログラマは何をすればよいのか
  • シンプルさの必要性 · eed3si9n

    2013-06-24 2012年4月23日にテキサスの Austin で行われた RailsConf 2012 での Rich Hickey (@richhickey) さんによる基調講演、Simplicity Matters を書き起こして翻訳しました。 Rich Hickey さんは Clojure や Datomic の作者です。 この翻訳は Creative Commons Attribution ShareAlike 3.0 ライセンスに基いて公開します。 Rich Hickey 講演 e.e d3si9n 訳 談: こんにちは。ご招待いただきありがとうございます。 聞く所によると RailsConf はいつもコミュニティーからかなり外れた人を選ぶらしく、今回は僕ということになりました。 僕の電話ボックスは外に駐車してあります。(会場、笑) だけど、今日は言語の壁を越える話題を持

  • Rust から ImageMagick 呼び出してみる - @hadashiA

    Rustがかなりかっこいいのですこし触っています。 Rust はまるで、めちゃめちゃ易しくなったc++かのようです。メモリリークやその他の危険が扱いやすくなったし、シンタックスも今風だ。関数型言語由来のパターンマッチやOptional/Eitherのエラー処理などすげーセンス良い機能が搭載された一方、メモリのようすが透明でなんでもできてどこでもリンクできるパワーはc++並みです。 Rustは、c/c++みたく、明示的に指定しないかぎりすべての変数はスタックに実体があるので、参照やヒープを使うときにこそ記号めいたものを書くという世界観です。これは、僕が普段さわっている、オブジェクトが基ヒープの参照で、ランタイムがGCしてくれるってな世界観とはまったく逆なので、その辺はやはりすこし難解にかんじます。でも慣れると楽しいです。 Rustはサーバ用途としても強そうだし、ネイティブなプラットフォーム

    Rust から ImageMagick 呼び出してみる - @hadashiA
  • 乱択アルゴリズム - Wikipedia

    乱択アルゴリズム(らんたくアルゴリズム)、ランダム・アルゴリズム(英: randomized algorithm)または確率的アルゴリズム(かくりつてきアルゴリズム、(英: probabilistic algorithm)は、その論理の一部に無作為性を導入したアルゴリズムである。通常のアルゴリズムでは自然数を順番にあてはめるような決定的な部分で、乱数による非決定的な選択を入れることで、「平均的に」よい性能を実現することを目的とすることがある。形式的には、乱択アルゴリズムの性能はランダムビット列で決定される確率変数となる。その期待値を期待実行時間[1]と呼ぶ。最悪の場合に関して「無視できる」ほどに低い確率であることが、一般に、この類のアルゴリズムが効果的である要件となる。 乱択アルゴリズムが使われる背景[編集] n 個の要素からなる配列から「a」という要素を探す問題を考える。この配列の各要素

  • GitHub - fsharp/fsharp-compiler-docs: Doc build for FSharp.Compiler.Service

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - fsharp/fsharp-compiler-docs: Doc build for FSharp.Compiler.Service
  • chainl と左再帰 - あどけない話

    Parsec などが利用する再帰下降構文解析では、左再帰が無限ループに陥るという問題がある。例えば、以下の BNF で定義される数式を考える。 expr ::= expr '+' term | term term ::= term '*' factor | factor factor :: = '(' expr ')' | nat nat = '0' | '1' | ... expr と term が分かれているのは、足し算と掛け算の結合力の違いを表現するためである。expr と term は、右辺の左端に自分自身が使われているので、これをそのまま実装すると無限ループに陥る。 data Expr = Expr :+ Expr | Expr :* Expr | Nat Int deriving Show expr :: Parser Expr expr = do e <- expr char

    chainl と左再帰 - あどけない話
  • Scala Language Specification

    Table of Contents Lexical Syntax Identifiers, Names & Scopes Types Basic Declarations & Definitions Classes & Objects Expressions Implicits Pattern Matching Top-Level Definitions XML Annotations Standard Library Syntax Summary References Changelog Authors and Contributors Martin Odersky, Philippe Altherr, Vincent Cremet, Gilles Dubochet, Burak Emir, Philipp Haller, Stéphane Micheloud, Nikolay Miha

  • 東洋経済に載って、MERYの社長から連絡がきた話 | 木村石鹸 よもやま噺

    こんにちは、 新米チャン ことマーケティング室のミネマツです! 東洋経済に載った!!!! なんと、ついに木村石鹸が東洋経済に載ってしまいました オォォーーー!! w(゚ロ゚;w(゚ロ゚)w;゚ロ゚)w オォォーーー!! 雑誌の取材だったのですが、ウェブでも記事になりますと前日にご連絡いただき。 さすがネットメディアにも力入れてる東洋経済さんだけあってちょいバズってた。 795いいね!ついてて、びびる そして、雑誌が届いた・・・ 「今すぐ始めるプログラミング」特集に石鹸会社が笑! ちら|ω・`)チラ スゲェ━━━━━━ヽ(゚Д゚)ノ━━━━━━ !!!! MERYの社長から連絡がきた 色んな方から雑誌買うよ~と言っていただいてめちゃくちゃ嬉しいのですが、珍しい方からご連絡が来ました。 そう、MERYのあやたん社長です。 もはやMERY有名すぎて説明不要かと思いますが、 月間UU数2000万

  • 「人工知能」ブームに乗り遅れた!という方々に捧げる人工知能(機械学習)まとめ記事 - 六本木で働くデータサイエンティストのブログ

    (Photo credit: A Health Blog via Visual Hunt / CC BY-SA) 「人工知能」ブームが格化してまだほんの数ヶ月だと思うんですが、気がついたらTV含む大手メディアが皆こぞって毎日のように「人工知能」を取り上げ、あまつさえ政府や与党の諮問会議でまで「人工知能」の語が飛び交う有様で、一体何をどうしたらこうなるのか僕には全く分かりません(汗)。 とは言え、実際にビジネスの現場でも「人工知能」への期待感が日に日に高まり続けているのは事実で、例えば友人知人の経営者との酒席でも「最近人工知能ってめっちゃくちゃ流行ってるじゃん、あれって実際どうなの?当に役に立つの?今からでも人工知能事業に参入すべきなのかな?それとも俺たちあいつらに滅ぼされちゃうの?」みたいなことを聞かれることが多いんですよね。 ということで、そういう「人工知能」ブームに乗り遅れたけれど

    「人工知能」ブームに乗り遅れた!という方々に捧げる人工知能(機械学習)まとめ記事 - 六本木で働くデータサイエンティストのブログ
  • Haskellで生産性を高める-Pythonからの移行 | POSTD

    (注記:11/30、いただいた翻訳フィードバックを元に記事を修正いたしました。) 最近、Haskellでも生産性の高い作業ができるほどに、この言語を使いこなせるようになりました。定期的にPythonを使いもしますが、今ではWebプロトタイプ作成のほとんどをHaskellで行っています。それで、時間が経ってしまう前に、この言語の学習経験を通じて考えたことなどをまとめたいなと思っています。 データファースト これはどちらかというと動的言語から静的言語への移行に関しての考えなのですが、Haskellのデータ構造は、ほとんどの場合、データ宣言と型シグネチャで提示されるのに対し、Pythonの場合、おおむねコードによって暗黙に定義されます。 Pythonの関数について私が初めて抱いた考えは、「コードに何が書かれているか?」でしたが、Haskellでは、「データはどう見えるか? この関数は___を受け

    Haskellで生産性を高める-Pythonからの移行 | POSTD
  • IoT時代のプログラミングの楽しい学び方:新刊ピックアップ

    IoT時代へようこそ 今はIoT(Internet of Things;モノのインターネット)の時代です。ソフトウェアシステムはいろいろなセンサやアクチュエータ,ITシステムと動的に繋がり,常に拡大しています。 このIoT時代ではプログラムは自律的に動作し,他のプログラムと分散しながら協調して動作する必要があります。つまり日々拡張するIoTシステム全体が協調して動作するように,個々のプログラムを開発する必要があります(図1⁠)⁠。 このような状況の中,プログラミングをワクワクドキドキしながら,学んでいく方法を紹介します。 フレームワーク中心のプログラミングから脱却 ライブラリやフレームワークのプログラミング 従来のプログラミングでは,プログラミング言語を覚えてプログラミングするというよりも,その言語でよく使われるライブラリの癖やフレームワークの習慣を覚えて,そのフレームにピッタリ入るように

    IoT時代のプログラミングの楽しい学び方:新刊ピックアップ