かとじゅんさんのお誘いで、私塾匠真堂にて登壇させていただき、Rust に関する話をさせていただきました。ありがとうございました。 今回のセッションを通じて Rust を始めたくなった方向けに、Rust をはじめるための資料をいくつかリストアップしてます。よかったらどうぞ。 プログラミング言語の学習方法について Rust についてまず概観を掴む 文法を学ぶ 何かアプリケーションを実装してみる ちょっと突っ込んだ話を知りたい コミュニティの力を借りる 仲間を見つける 更新履歴 プログラミング言語の学習方法について みなさんは新しいプログラミング言語を学ぶ際、どのように学びますか? 私は、軽く制御構文やデータ型の作り方などを学んだ後は、すぐにアプリケーションを作ってみて、詰まったらリファレンスを参照するといった学び方をしていることが多いです。 逆に、リファレンスをまず眺めて、文法をしっかり把握し
The Gopher character is based on the Go mascot designed by Renée French. はじめにTIG DXユニット 1の真野です。 コードレビューについては3,4年ほど前に、コードレビューにおけるレビュアー側のアンチパターン って記事を書いたりもしました。当時はレビュアーの伝え方って大事だよなって話をしてました。いつしかレビュイーからレビュアーに比重が変わることが増えてきました。相互レビューは当たり前にしていますがが、比較的こうしたらもっと良くなるんじゃないかな? と提案される回数より、自分が提案する回数の方が増えてくるタイミングってありますよね? そういうわけで、最近Goで主にバックエンドのWeb APIや、AWS Lambdaで動くETLアプリ、たまにCLIツールを開発する時に、2回以上同じ指摘したコメントをまとめてます。Go
どうも、しいたけです。 去年あたりからローレイヤー周りの知識を充実させようと思い、 低レイヤを知りたい人のためのCコンパイラ作成入門 を読んでCコンパイラを書いてみたりx86_64の勉強をしたりしていました。 今年に入ってから、よりローなレイヤー、具体的にはハードウェアやOSについてもう少し知りたいと思い始め、手頃な書籍を探していました。 CPUなどのハードウェア周りについては概要しか知らなくて手を動かしたことがないので、実際に何か作りながら学べるものとして、 O'Reilly Japan - コンピュータシステムの理論と実装 に挑戦することにしました。 O'Reilly Japan - コンピュータシステムの理論と実装 成果物は以下のリポジトリに置いてあります。 yuroyoro/nand2tetris 結論から言うと、やってみて大変楽しめました! 特にハードウェア周りは今まで挑戦したこ
こんにちは、m3 エンジニアリンググループ CTO 矢崎(id:Saiya)です。 過去に Go 言語の仕様を一通り見た経験があったのですが、久しぶりに Go のコードを最近読み書きした際に、ここ数年の Go 言語やエコシステムの進化による変化もあり、発見やハマりが多々ありました。 Go 言語公式のロゴもスピード感ありますね。 同じような迷い・回り道をしてしまう方ももしかしたらおられるのではないかと思いますゆえ、 エムスリー Advent Calendar 2020 6 日目の記事として、筆者が実際に「最初から知っていれば時間を無駄にしなかったのに...!」と感じた知見をざっくばらんにシェアいたします。 本記事がどなたかの一助になりますと幸いです。 なお本記事の内容は筆者個人の理解・自身で直接読み書きしたユースケースの範囲での知見であり、全ての Go 利用事例に当てはまらない点も含みうりま
いまのところ25単位分(マスター修了に必要な単位数の約半分)の授業を取ったので感想を時系列でちょっとまとめたい。昔のやつは記憶が曖昧になっているけど。 CS243 プログラムの解析と最適化 (2014Q4)要するにコンパイラの最適化の授業。前半はデータフロー解析とかでかなり実用的な感じがしたが、後半は行列計算の命令の依存関係を抽出してベクトル最適化とか、ItaniumみたいにレジスタのたくさんあるCPUでループアンローリングするみたいな話で、実際に役に立つのかはよくわからなかった。 と、そのときは思ったが、巨大な行列の計算はよくあるので、興味を持てなかった僕がダメだっただけかもしれない。 とにかく難易度が高かった。かなりがんばって夜中までやっていたつもりだけどもっと真剣に取り組むべきだったかもしれない。なにせこれが最初の授業だったのでレベル感がよくわかっていなかった。教授がドラゴンブックの
Fortranは配列がいわゆる first class object になっており、配列の扱いに長けています。Fortran90 以降、ほとんどの組み込み関数は elemental 属性を持っており、定義上スカラーを引数として取る関数に配列を渡すと、結果を配列として返します。これは、LISP などの MAP 演算子に相当する作用をします。 MAP f(x) [a_i] = [f(a_i)] の如く、 f([a_i]) = [f(a_i)] のように働きます。これは関数と配列生成子の交換関係とも見ることができます。さらに Fortran95 から、ユーザー定義関数やサブルーチンにも、このような elemental な属性を持たせることが可能になりました。これにより、スカラーに対する定義を書けば配列の rank を問題にする必要がなくなりました。 これはループ変数を省略できるうえ、コンパイラに
def a_method return yield if block_given? 'ブロックがありません' end puts a_method #=> ブロックがありません puts a_method { 'ブロックがあります!' } #=> ブロックがあります! 用語: クロージャ『Rubyの動かないコード (初級編) ブロックとクロージャの性質 - 主に言語とシステム開発に関して』 の説明が非常に分かりやすかったので、お借りしました。まずはクロージャの説明。 - クロージャの外の(より広いスコープで定義された)変数はクロージャの中からでも参照可能 - クロージャの中で定義された変数はクロージャの外からは参照できない。 これってつまりはブロックと同じようなものということ。 - Rubyのブロックは、ブロック定義時のコンテキスト(変数とか)を保持する - Rubyのブロック内で宣言された
Each of these videos and books was recorded or written by me, Matt Makai. These books and courses were created by fellow Python developers. I have used each one myself and recommend them all if you are looking to buy high quality resources. Django: Extensions, Plug-ins and Related Libraries & Example Projects and Code django.apps.config AppConfig django.conf settings, urls.url django.contrib.admin
丹内です。 最近ReactJSを触り始めました。 掲題の通り、Railsをバックエンドにした場合のFluxを書いてみたのでまとめます。 このエントリの参考URLにあるリポジトリを参考にしました。 バックエンド 普通のRailsアプリです。Scaffoldをベースに、フロントエンドを書いていきます。 db/migtate/create_books.rb class CreateBooks < ActiveRecord::Migration def change create_table :books do |t| t.string :title t.timestamps null: false end end end BooksController#index 今回、ブラウザで/booksにアクセスした時に、最初に空っぽのHTMLを返し、ReactJSでAjaxリクエストによってデータを取得
ビジターの皆さんへ C言語に関心を寄せていただきありがとうございます。このページは、C言語の面白い問題、パズルのリストです。これまでに友人たちからeメールで送ってもらったり、本で読んだり、インターネットで見つけたり、あるいは自分でC言語でコーディングしていて気づいたりしたプログラムを集めました。 多くのプログラムは、コンパイル、実行され、その振る舞いを示すものです。問題は大まかに次のカテゴリに分けられます。 一般的なタイポエラー。C言語プログラマが頻繁に犯すミスであり、かつ追跡が困難。 初見では非常に理解しがたい小さなプログラム。これらの問題は、他人が書いた優れたコードを読み解く良い訓練になります。 また、全てにGnu/Linux/gccを使っています。掲載順は、それぞれの難易度とは関係ありません。問題解決の助けが必要な場合は、気軽に私に問い合わせてください。連絡先は こちら です。また、
golang勉強会でGo製ツールの配布方法について話してきた “Ship your CLI tool built by golang to your user #golangstudy” “Golang勉強会”で発表してきた.Go言語で作成したツールをクロスコンパイルして,複数プラットフォームに配布する方法について話してきた.自分がGoをはじめた理由の一つがクロスコンパイルによる配布のしやすさであり,いろいろ実践したりそれ用のツールを作ったりしてきたのでそれをまとめた. 以下の視点で話したつもり, 自動化により開発者の負担を減らす ユーザがツールを使うまでの負担を減らす “わかりやすいREADME.mdを書く”にも似たようなことを書いたけど,自分のような無名なエンジニアの作ったツールであってもユーザに使ってもらうには,2点目のような視点を大切にしないといけないと思う. 発表は以下の記事をも
はじめに これは Ruby on Rails Advent Calendar 2014 - Qiita の19日目です 18日目 @yancya さんの Rails でシングルじゃないテーブル継承 - Qiita でした 19日目:オレオレRailsアプリを支えるインフラの作り方 最近では Heroku などのPaaS*1 も普及してインフラのことを知らなくても簡単にアプリを公開することができるようになりました。 しかしトラブルシューティングやパフォーマンスチューニングなどを行うにはアプリケーションコードだけで完結することは少なく、全体像を把握する必要があります。Railsアプリケーションの裏でどんな構成で動いているかを知っておくかは重要なのでざっくりと紹介したいと思います。 書かないこと Railsアプリを作る上でのノウハウ 便利なgemや外部サービスの紹介 *2 監視 アラート検知 モ
2016-12-09追記 「Pythonクローリング&スクレイピング」という本を書きました! Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド- 作者: 加藤耕太出版社/メーカー: 技術評論社発売日: 2016/12/16メディア: 大型本この商品を含むブログを見る これはクローラー/スクレイピング Advent Calendar 2014の7日目の記事です。 Pythonでクローリング・スクレイピングするにあたって、いろいろなライブラリがあるので一覧でまとめてみます。 以下の4つのカテゴリにわけて紹介します。 Webページを取得する Webページからデータを抜き出す Webページの自動操作 総合的なフレームワーク なんでこれが載ってないの?この説明はおかしい!などありましたらお気軽にお知らせください。なお、この記事はいろいろなライブラリを紹介することを目
Railsで実際にFormオブジェクトを作ってみたらいくつか気をつけるポイントがあったので紹介します。 ActiveRecord / Rails / Ruby この記事はRuby on Rails Advent Calendar 2014の2日目です。 1日目は@miyukkiさんの「結局Ruby on RailsとPHPってどっちが優れてるの?」でした。おつかれさまでした。 Formオブジェクトとは Formオブジェクトはその名の通り入力フォーム用のオブジェクトです。 フォームとモデルがうまく対応しているときはActiveRecordをそのまま使えば良いのですが、 複数モデルを作りたかったりモデルとは違うValidationを行いたかったりする場合にはFormオブジェクトを使うと便利です。 Formオブジェクトのサンプルコードはこんな感じになります。 class Blog::SiteFo
Railsのコントローラーでのrenderメソッドの使い方について説明します。 renderメソッドは、「コントローラー(Controller)」と「ビュー(View)」のそれぞれにあります。 ここではコントローラーのrenderメソッドの使い方を示します。 ビューでのrenderメソッドの使い方は こちらを参照してください。 動作確認 Rails 4.1 目次 1. ビューを表示する 1.1. 暗黙的なビューの表示する 1.2. 他のアクションのビューを表示する(actionオプション) 1.3. 他のコントローラーのビューを表示する(templateオプション) 2. JSONを返す 2.1. renderメソッド 2.2. jbuilder 2.3. ActiveModelSerializer 3. ビュー以外を表示する 3.1. 文字列を表示する(textオプション) 3.2. X
B! 20 0 0 0 vim-markdown で行っているVim上のMarkdownの畳み込みで ちょっと気になる所があったのでいじってみました。 vim-markdownで行ってる畳み込み 畳み込みの設定 vim-markdownでの畳み込みのアップデート vim-markdownで行ってる畳み込み vim-markdown ではafter/ftplugin/markdown.vim の中で畳み込みの設定してますが、 これはもともと Original版(plasticboy/vim-markdown) にあったものを取ってきたままのものでした。 これは、基本的に#で指定したり---の下線を引くことで作る 各セクション毎に畳み込む設定です。 ただ、先日のアップデート でYAMLブロックのハイライトを出来る様になって、 ファイルの先頭にあるYAMLブロックをハイライトしてくれる様にはなり
Docker を使い続けてコンテナやイメージを放置していると差分だけとはいえ、 ディスクの消費が増えていって、 書き込みエラー: デバイスに空き領域がありません (ENOSPC, write error: No space left on device) というエラーになってしまいます。 2017-03-18 追記 最近のバージョンでは docker system prune を使うのが良いようです。 古いバージョンを使うときの参考として、以下の記述は古いまま残しておきます。 コンテナの削除 docker rm の Eamples にあるように で停止しているコンテナを削除できます。 実行中のコンテナがあると削除できないというエラーが出ますが、 意図的にやっていることなので気にする必要はありません。 公式のドキュメントにも書いてある方法なので、 コンテナの削除方法はこのやり方で問題ないと思
環境構築 普通に Boot2Docker をMacにインストールしました。Boot2Dockerは ここのブログの中ほどの画像のようにVitualBox上でDockerサーバーを動かし、Macの dockerコマンドがDockerサーバーと通信して動作します。 Dockerサーバーの作成・起動などは boot2docker コマンドで行います。 作成・起動は、 % boot2docker init % boot2docker up これで、dockerコマンドが使えるようになりますが、通信用のDOCKER_HOST環境変数を設定する必要があります。 % export DOCKER_HOST=tcp://192.168.59.103:2375 % docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE nginx latest c
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く