タグ

プログラミングに関するytkibkのブックマーク (46)

  • 副作用から考える並行処理とアクターモデル - えちょ記

    相変わらずいきなり仕事が忙しくなっているので、また関数言語の話。 「関数言語は副作用が無いから並行処理に向いている」とよく言われます。ですが、そもそも副作用ってなんなんだ?という質的なところで理解できないことが多いんじゃないかなーと。そもそも私もその辺分かっているのか疑問なので、ちょっと考察してみる試みを。 副作用とは プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、それ以降で得られる結果に影響を与えることをいう。(Wikipediaより) これは多分逆に考えたほうが分かりやすい。「副作用が無い」というのは、同じ仕事をさせたら、いつも同じ成果を出すクールなやつということ。私のようにそのときの気分でやることが変わるのでは駄目なのです。 厳密には、以下の二つの条件、 「同じ条件を与えれば必ず同じ結果が得られる」 「他のいかなる機能の結果にも

    副作用から考える並行処理とアクターモデル - えちょ記
  • C言語の正しいヘッダファイルの書き方 - saito’s blog

    最近、仕事でC言語での組み込み系の開発に携わっています。 開発中のコードを眺めていると、ヘッダファイル内にstatic関数のプロトタイプ宣言を記述していたり、ヘッダファイル内で不必要に他のヘッダファイルをインクルードしているなど、ヘッダファイルの書き方が分かっていないと思われる箇所が多々見られました。 実際、C言語の入門書でもヘッダファイルの書き方を詳しく説明しているものは、僕の知っている限りでは存在しないので、C言語を使っていてもヘッダファイルの正しい書き方を知らない人が少なくないのではないかと思われます。 そこで、このエントリでは、C言語のヘッダファイルの書き方について、僕が知っているテクニックをまとめてみました。 インクルードガードを書く ヘッダファイルファイルで他のヘッダファイルをインクルードしていると、いつの間にか同じヘッダファイルを2回インクルードしてしまうことがあります。 例

    C言語の正しいヘッダファイルの書き方 - saito’s blog
  • 組み込み業界へ向かう人に、自分が買ってよかったと思った技術書達 - undefined

    もう終わりそうですけど、4月ですしこれから組み込み業界へ向かうかたへ自分がこのよかったなーって思ったのをいくつかピックアップしてみます。ただ、一言に『組み込み』と言っても幅広くて分野によって求められる知識は結構変わってくると思いますが、ベースは一緒だろうと思います。 ちなみに自分はCPUはRL78、Cortex-M0、Cortex-M3、Rx、SH、Cortex-A9、FPGAは最大でも7000LUT程度のレンジのハードウェア設計をやってきました。今はZynqや大規模FPGA開発に携わりたいと思っています。 以下に挙げていきますが、オススメがあれば是非教えていただきたいです。 ※順番に意味はありません。 CPUの創りかた CPUの創りかた 作者: 渡波郁出版社/メーカー: 毎日コミュニケーションズ発売日: 2003/10/01メディア: 単行(ソフトカバー)購入: 35人 クリック:

    組み込み業界へ向かう人に、自分が買ってよかったと思った技術書達 - undefined
  • ネットワークプログラミングの基礎知識

    ネットワークプログラミングの基礎知識 ここでは IP アドレスやポート番号、クライアントとサーバの役割などを説明し、 perl・C言語・Java などでソケット (Socket) を使った HTTP クライアントや POP3 クライアント、簡単なサーバを作成してみます。 要はネットワークプログラミングをやってみよう、ということです。 このページのサンプルプログラムは、RFC などの規格に準拠した「正しい」プログラムではありません。 また、全体的にエラー処理が不十分です (今後改善する予定です)。 あくまでも概要を理解するためのサンプルととらえてください。 もし気でしっかりとしたクライアントやサーバを書きたいなら、このページを読んだ上で、 さらに RFC を熟読し、そして wget・Apache・ftp コマンドなどのソースを参考にしてください。 このページに間違いを見付けたら、掲示板

  • ハード素人が32bit CPUをFPGAで自作して動かすまで読んだ本のまとめ - スティルハウスの書庫の書庫

    男子たるもの一度は自分でCPUを作ってみたいものだけど、ICでLEDをピカピカさせた程度の経験しかないハード素人な俺だったので、CPUを自作してる東大生などを遠くから見て憧れてるだけだった。しかしおよそ一年前のこと、「MIPSなんて簡単に作れますよ!」とKさん(←FPGAでLispマシンを自作するような人)に言われて、お、おぅ。。そりゃKさんはそうでしょうよ。。あれ、もしかして俺にもできるかな。。? と思った。この一言がなければ32bitCPUを自作しようなんて考えなかっただろう。 それから一年ちょい、とくに今年の正月休みやFPGA温泉でがっつりがんばって、なんとかMIPS Iサブセットの自作CPUが動いた。これはフィボナッチを計算してるところ。 ちなみに、これはこんな感じのフィボナッチのコードをCで書いて、 void main() { int i, *r = (int *)0x7f00

    ハード素人が32bit CPUをFPGAで自作して動かすまで読んだ本のまとめ - スティルハウスの書庫の書庫
  • Unixデーモンの仕組み

    Home Subscribe Unixデーモンの仕組み 12 March 2015 おはこんばんちは!! 尾藤 a.k.a. BTO です。 みなさん、Unixデーモンよく使ってますよね。 Webエンジニアなら、Webサーバ、メールサーバ、DBサーバ、cronなどがよく使われるのではないでしょうか。 24時間365日黙々と働き続けるUnixデーモン達。 身近な存在だと思いますが、実はどういう仕組みで動いているのかご存じない方も多いのではないでしょうか。 先日、オトバンクでUnixデーモンの仕組みについて勉強会をやったので、その内容をまとめます。 デーモンとは では、デーモンとはいったい何なのでしょうか。 Unixライクシステムにおいて、バックグランドで動作して様々な処理を実行してくれるプロセスがデーモンです。 デーモンには明確な定義はありませんが、だいたい次のような条件を満たすプロセスが

    Unixデーモンの仕組み
  • 言語処理100本ノック 2015

    言語処理100ノックは,実践的な課題に取り組みながら,プログラミング,データ分析,研究のスキルを楽しく習得することを目指した問題集です 実用的でワクワクするような題材を厳選しました 言語処理に加えて,統計や機械学習などの周辺分野にも親しめます 研究やデータ分析の進め方,作法,スキルを修得できます 問題を解くのに必要なデータ・コーパスを配布しています 言語はPythonを想定していますが,他の言語にも対応しています

  • これからiOSやる奴はここ読んどけ - Qiita

    これからiOSアプリ開発をやりたい!という人へ 自分が実際にiOSアプリ開発をやって、便利だったと思う情報を残しておきます。 これからアプリ開発やりたいという人の参考になれば。 iOSアプリ開発の第一歩 まずは間違いなくMacを買うこと。 Macを書いましょう。Windowsじゃ開発できません。 MacじゃないとiOSアプリの開発はできないので、 これがないとお話になりません。。。 インストールしておくもの 基的にXcodeさえインストールしておけばアプリの開発はできます。 Mac App Storeからダウンロードできます。 実機インストールやApp Storeに公開したい場合は、 iOS Developer Programを購入する必要があります。 まずはこれを読むべき Appleのドキュメント集(日語訳Version) https://developer.apple.com/jp

    これからiOSやる奴はここ読んどけ - Qiita
  • Ruby作者Matz伝説第2章、新言語「Streem」始まる | ソフトアンテナ

    世界的にも有名なRubyの作者Matzことまつもとゆきひろ氏の新しいプログラミング言語「Streem」のリポジトリがGitHubで公開され、注目を浴びています。 説明によるとStreemとは「ストリームベースの並行スクリプト言語」。シェルと似たプログラミングモデルを基礎として、RubyやErlangやその他関数型プログラミング言語に感化されているということ。 例えばシンプルなcatプログラムは、以下のように記述されます。 STDIN | STDOUT さらにFizzBuzz問題はこのように。 seq(100) | {|x| if x % 15 == 0 { "FizzBuzz" } else if x % 3 == 0 { "Fizz" } else if x % 5 == 0 { "Buzz" } else { x } } | STDOUT シンプルですね。パイプでつなげるところがシェル

    Ruby作者Matz伝説第2章、新言語「Streem」始まる | ソフトアンテナ
  • 就活生がITエンジニア/プログラマを目指す前に伝えておきたい業界の真実と現役エンジニアからのアドバイス - こんにゃくマガジン

    はじめに 日IT業界では、技術職求人に対して、ちゃんと専門教育を受けていない(独学で身につけたわけでもない)人の応募の割合がとても高く、絶大なる不幸を生み出しているのが現状です。 これから社会人になる就活生の皆さんには、できれば不幸な人生ではなく幸せな人生を歩める選択をしてほしいとの願いから、このエントリーを書きました。 注意:ITエンジニアとして就活をしてプログラマー的な仕事が主な業務になる人が多いと思うので、この記事に出てくるITエンジニアという言葉は、プログラマーのことだと思って読んでいただけると幸いです。広い括りの題名をつけてしまってすみませんが、インフラ/ネットワークエンジニアやメーカーのエンジニアの話は出てきませんので、ご容赦ください。 目次 背景 プログラミング言語を覚えよう データベースの使い方を覚えよう オリジナル作品を作ろう(ここが一番大事) IT系の勉強会に参加し

    就活生がITエンジニア/プログラマを目指す前に伝えておきたい業界の真実と現役エンジニアからのアドバイス - こんにゃくマガジン
  • エンジニアの面接でコードレビューさせてる

    (あんま多くないみたいだから多分すぐ身バレしそうだけど書く) エンジニアの面接で実際にコードを書かせる会社が最近は多いみたいだね。でもウチでは特に面接で書かせない。というか今まで書いてきた、関わってきたコードなんて書類で大体分かるでしょ? それよりも、ウチではコードレビューをさせてる。 選考用にわざと少し突っ込みドコロの多いコード(30〜50行程度のコードを3〜4ファイル)を渡して、もちろんファイル構成自体へのレビューも含めて、どんな意見をその人が出せるかを問う。 レビュー用のコードは複数言語用意してて、一番得意な言語を選んでもらってる。 時間は1時間。資料と赤ペン、そしてネットに繫がったパソコンを渡して、いくらでもググってもらって構わない環境でレビューを紙に赤して貰う。 「コードレビュー」ってものに対しての認識だとか、コードを管理するための能力もある程度分かるし、すごく良い選考制度だと思

    エンジニアの面接でコードレビューさせてる
  • わずか500行のCソースコードで作られたCコンパイラ「CC500」 | ソフトアンテナ

    Cコンパイラといえばとてつもなく複雑なプログラムというイメージがあります。ところが、このCコンパイラを(サブセットとはいえ)わずか500行ほどのCのソースコードで実現した「CC500」名付けられたプログラムが公開されています。 ソースコードは可読性を維持するためにつけられた空行やコメントを含めると、実際は750行ほどになるそうですが、それでもこれだけコンパクトなソースコードで実行可能なELFバイナリ(Linux用のバイナリ)を生成できるのは興味深いのではないでしょうか。 以下実際にLinuxでコンパイルしてみました。 自己コンパイルできる このコンパイラはC言語のサブセットで、自分自身のソースコードをコンパイルできるところがおもしろいところです。まず「cc500_1」という実行ファイルを生成します。 gcc cc500.c -o cc500_1 生成された実行ファイル「cc500_1」を使

    わずか500行のCソースコードで作られたCコンパイラ「CC500」 | ソフトアンテナ
  • 書籍編集局ブログ|Ohmsha

    2月15日(木)に開催された「Developers Summit 2018(デブサミ)」(主催:翔泳社)にて「ITエンジニアに読んでほしい! 技術書・ビジネス書大賞2018」のプレゼン大会と投票が行われ、大関真之先生の著書『機械学習入門 ボルツマン機械学習から深層学習まで』がみごと技術書部門の大賞の栄冠に輝きました! プレゼン大会では大関先生自ら書に関する熱い熱い思いを披露していただました。このプレゼンによって「読んでみたい!」「数式が苦手だけどこのなら読める!」と惹きつけられるオーディエンスが続出!みごと大賞に選ばれることとなりました。ブラボー! 書は、おとぎ話の白雪姫に登場するお妃様と鏡の関係をなぞらえ、その問答により「機械学習とは何か」「何ができるのか」を楽しいストーリーと可愛らしくしかも的確なイラスト、そして数式をまったく用いることなく解説している画期的な内容です。 登場する

    書籍編集局ブログ|Ohmsha
  • LLユーザこそ「ふつうのLinuxプログラミング」を読んだらいいという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    4年くらいまえに一度通読して「ふーん」で終わってたんだけど、最近読み返したら「これはめっちゃ良いでは?」となったので紹介します。 ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道 作者: 青木峰郎出版社/メーカー: ソフトバンククリエイティブ発売日: 2005/07/27メディア: 単行購入: 35人 クリック: 450回この商品を含むブログ (146件) を見る 特に第二部、第三部がめっちゃよくて、Linuxの重要な概念を、押さえるべきところを押さえて説明してあって最高な感じでした。 サブタイトルにこそ「Linux の仕組みから学べる gcc プログラミングの王道」とありますが、むしろ普段から C 言語でシステムコールに近い部分を普通に書いているプログラマよりも、普段は PerlRuby などのスクリプト言語を使っているが、その言語で書か

    LLユーザこそ「ふつうのLinuxプログラミング」を読んだらいいという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • C言語でプログラミングする際の覚書(Notes on Programming in C) - YAMAGUCHI::weblog

    はじめに こんにちは、Go界のシャールト・コプリーです。気がついたら最後のエントリから3ヶ月も経ってました。 Goを始めると「なんでこういう書き方になってるんだろう」とか、「そもそもなんでこういう仕様になってるんだろう」とか思うことがちらほらあると思います。これは大いにGoの作者の一人であるRob Pike氏の思想に依るところがあるのが見受けられます。彼のプログラムに対する考え方が25年前に公開され「Pike Style」として知られていますが、いまもその考え方は大きくは変わっていないと思われます。せっかくなので翻訳しました。文はC言語に関する文章ですがその質は言語に依らないものだと思います。 Notes on Programming in C (追記)25年前なのでコンパイラの動作に依存する部分(includeに関する記述)などは古い部分もありますが、プログラミングスタイルに関する部

    C言語でプログラミングする際の覚書(Notes on Programming in C) - YAMAGUCHI::weblog
  • 「独学でプログラミングを勉強しても実務に通用しにくい理由」を読んだ感想 - 文系プログラマによるTIPSブログ

    なんか難しく考え過ぎなんじゃないかな〜、と思ったり、思わなかったり。 こちらの記事を読みました。 主さんの意見としては以下のようですね。 1.独学では妥協をいくらでもできる 2.興味の範囲内のことしかやらない。 3.自分の実力に合わせた実装しかしなくなる この意見への批判とかではないですが、私の見解では大分異なります。 treeが思う独学が実務に通用しにくい理由 何故通用するのか 皆どうやってプログラムを学んだのか 現場の人間はそんなに有能なのか ではプログラム以外で通用しにくい部分はあるか? 雑感 treeが思う独学が実務に通用しにくい理由 通用しますよ。余裕で。 これでは話がこれで終わってしまうので、もう少し詳しく書きます。 何故通用するのか 皆どうやってプログラムを学んだのか 日は他の教育先進国と違ってITはゴミ扱いされ、義務教育の間は実践で使えるレベルのIT教育は行われません。従

    「独学でプログラミングを勉強しても実務に通用しにくい理由」を読んだ感想 - 文系プログラマによるTIPSブログ
  • エンジニアならこれ読んどけって本まとめ - だったらこうしてみたら?

    改訂:2014/10/20 備忘録としてまとめていきます。 今まで集めていた情報まとめていきます。 すでに読んだやつも今これから読んでこうってやつもまとめにまとめちゃいまっせ。 アウトプットも大事だけど、自分より先輩の方がアウトプットし続けて頑張って得た知見をあっという間にインプットできる""という形での学習も超大事なのです。 エンジニアとしての心得みたいな ハッカーと画家 コンピュータ時代の創造者たち 作者: ポールグレアム,Paul Graham,川合史朗出版社/メーカー: オーム社発売日: 2005/01メディア: 単行購入: 109人 クリック: 4,884回この商品を含むブログ (594件) を見る YCombinatorの共同設立者の彼の。 CODE COMPLETE 第2版 上 作者: スティーブマコネル,Steve McConnell,クイープ出版社/メーカー: 日

    エンジニアならこれ読んどけって本まとめ - だったらこうしてみたら?
  • 日本語で読める IT名文書 三選 - naoyaのはてなダイアリー

    pplog の方に書いたけど、別にブログに書けばいいかと思い直したので投稿。Slack でチャットしてて、なんとなくこれ面白いよ URL を共有する機会があったので適当に選んだもの。 伽藍、バザール、ノウアスフィア、おなべ(3) http://www.artonx.org/diary/20120411.html#p01 artonさんがノウアスフィアの開墾についてわかりやすく書いてるもの。原文はちょっと長くて読むのが大変だけど、こっちは分かりやすいし、面白い。OSS の構造がなんかわかったきになる、すごい。 Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した http://anond.hatelabo.jp/20111018190933 (前編) http://anond.hatelabo.jp/20111018192953 (中編) http://a

    日本語で読める IT名文書 三選 - naoyaのはてなダイアリー
  • Ethernetの受信処理

    10GbE、40GbEなどの極めて高速な通信をサポートするNICが、PCサーバの領域でも使われるようになってきている。 このような速度の通信をソフトウェア(OS)で処理し高い性能を得るには様々な障害があり、ハードウェア・ソフトウェア両面の実装を見直す必要がある。 セッションでは、ハードウェア・ソフトウェア両面にどのような改良が行われてきており、性能を引き出すにはどのようにこれらを使用したらよいのかについて紹介する。

    Ethernetの受信処理
  • 熱血! アセンブラ入門 - 秀和システム あなたの学びをサポート!

    コンピュータとプログラミングを愛するすべての人に捧げるアセンブラ入門。700ページ以上にわたり、40種類のアセンブラを読み説きながら、アセンブラが現役であり続ける理由を考察します。アセンブラを読みはじめるのに、CPUの仕様書や、英語力なんて必要ないのです。研究者がこだわる「わかる喜び」、エンジニアがこだわる「動く喜び」を追い求める「熱意」こそが大切です。書を片手にオンリーワン・エンジニアを目指しましょう。 【サポートはこちら】→https://www.shuwasystem.co.jp/support/7980html/4180.html 第1部 基礎編:まずはアセンブラに慣れよう 01 まずは基操作を覚えて,アセンブラに慣れよう! 01.01 アセンブラを見てみよう 01.01.01 3つの関数だけを見てみる 01.01.02 まずは,目的を意識して読んでみよう 01.01.03 ア

    熱血! アセンブラ入門 - 秀和システム あなたの学びをサポート!