The Qiita Advent Calendar 2019 is supported by the following companies, organizations, and services.
はじめに Rustコンパイラであるrustcには組込みのlintがあります。 Rustのlintツールでは、clippyが有名ですが、rustc組込みの方もソースコードの改善に役立ちます。 7月の技術書同人誌博覧会のネタ探しの一環だったのですが、思ったより世の中の役に立ちそうだったので、ドラフトを公開します。 原稿落とさなければ、「組込み / ベアメタルRustテクニック集」的な薄い本を出す予定です。 ちなみにここに書いている内容は、全てThe rustc bookに書いてあります。 lint lintはソースコードをコンパイラより厳密なルールに則り、検査するためのツールです。 Rustコンパイラには、様々なlintルールが組み込まれています。 ソースコードをコンパイルする時、自動的にlintによる検査が行われます。 プロジェクトの運用ルールに合わせて、適切なlintルールを設定することで
Oracle JDKの公開アップデート提供が終了したことで色々と騒ぎになっていますが、 サードパーティ製のOpenJDK(OpenJDKのディストリビューション)を使えば大抵は解決するだろう。 楽観的ではなくOracleがJava 11をリリースするタイミングで、 JavaFXやJava Mission Control/Java Flight RecorderなどをOSS化しているので、 乗り換えれば良いというお話です。 ちなみに、Java、Java SEが有償化したのではなく、 OpenJDKのディストリビューションのひとつである Oracle JDK の公開アップデートが終了した話のまとめは 「Java 有償化」で誤解する人になるべく分かりやすく説明するためのまとめ - Togetter や、なぜ「Javaが有償化する」と誤解されてしまうのか考えてみる - kazokmr's Blog
やあ、3月に延期になったとはいえ、Java 8リリースが具体化してきましたね。 もうこれで、Lambdaがはずれるとかいうことはなさそうです。 ところで、Java 8で関数型っぽいことができるようになってうれしいのですが、ちょっと記述が冗長です。ということで、短く書けるおまじない考えてみました。 Function型 さて、まずはJava 8で標準で入ったFunction型をみてみましょう。パッケージ名まで含めるとjava.util.funciton.Functionです。 こんな感じで使います。 Function<String, String> enclose = s -> "[" + s + "]"; Genericsでの型指定の最初が引数、あとが戻り値の型です。ここではStringをとってStringを返す関数としてencloseを定義しています。 これを呼び出そうとすると、こんな感じ
今日は、ScalaのOptionの使い方について解説しますよ。OptionはScala使いにとってはなくてはならないものです。これを覚えてしまうと他の言語でもOptionを作りたくなる、かもしれない? Optionってなに? Option型は、値があるかないか分からない状態を表すものです。「Maybeモナド」とか言ってしまうとアレですがまぁそんなようなものらしいです。 Optionの定義 まずは、Optionの定義から見てみましょう。Option型は、抽象クラスOption[+A]と、Option[A]を継承して値がある場合のSome[+A]型とNoneオブジェクトがあります。 Option - Scala Standard Library API (Scaladoc) 2.10.0-20120530-022829-8d38079ab4 - scala.Option // Optionの抽
はじめに 年末から年始にかけて、研究室で分散処理環境を構築しました。 有志数名で 8 台の PC を自作し、Hadoop をインストールしました。 インストール 1. Java をインストールする Sun の Java を使用するため、non-free を追加しているのがポイントです。 [bash] $ sudo vim /etc/apt/sources.list … deb http://ftp.riken.jp/Linux/debian/debian/ lenny main non-free deb-src http://ftp.riken.jp/Linux/debian/debian/ lenny main non-free … $ sudo apt-get update $ sudo apt-get install sun-java6-jdk $ sudo u
java-jaで例外処理の話をしてきました - 西尾泰和のはてなダイアリー を読んで。 Maybe は値があるかないかを型で表すことができます!そう、直和型なんです!とか言われてもイミフだと思うのです(リンク先のエントリがそう説明してるわけではないですが)。 Java の語彙で Maybe の説明をできたら嬉しい人もいるんじゃないかなぁ、とかなんとか。 ただし、書いてたら結構長くなりました。時間がある人はどうぞ。 Maybe? null より安全に「値がないこと」が扱えるものだよ スタート地点としてはこれでいいでしょう。 以降で、「なんで安全なの?」という全うな疑問に答えてみたいと思います。 問題点 int で説明すると煙に巻いてしまうような気がしたので、User クラスを見てみます。 import java.util.*; class User { final String name;
Eclipse プラグイン開発チュートリアル¶ このドキュメントは2011/01/28に行われた「Eclipse プラグイン開発セミナー in 名古屋」で使われたプラグイン開発チュートリアルです。プラグイン開発をした事のない初心者の方にプラグイン開発とはどういったものかを、一通り学ぶ事を目的としています。 プラグインを作成してみたい方はこのチュートリアルを元にプラグイン開発を体験してみるとよいでしょう。 目次:
Scala By Example の和訳 第 1 章 はじめに 第 2 章 最初の例 第 3 章 アクターとメッセージによるプログラミング 第 4 章 式と簡単な関数 第 5 章 第一級の関数 第 6 章 クラスとオブジェクト 第 7 章 ケースクラスとパターンマッチング 第 8 章 ジェネリックな型とメソッド 第 9 章 リスト 第 10 章 For内包表記 第 11 章 ミュータブルな状態 第 12 章 ストリームによる計算 第 13 章 イテレータ 第 14 章 遅延評価val 第 15 章 暗黙の引数と変換 第 16 章 Hindley/Milner 型推論 第 17 章 並列処理の抽象 和訳 PDFはここです reStructuredTextで書きました。ソースや作り方は PDF最後のページに添付ファイル(UTF-8 BOMなしテキスト)として埋め込んであります。 第 1 章 は
html5jについて html5jは、HTML5などのWebプラットフォーム技術を使った「ものづくり」に関わるすべての人々を応援する、非営利・中立のコミュニティです。私たちは、日本のWebクリエイター・エンジニアのスキル向上をお手伝いして、日本が世界のWebシーンをリードするような存在になることを心より願っています。 html5jの活動 html5jはWebクリエイター・エンジニアの皆さんに対し、「つながる」「学べる」「盛り上がる」を合言葉とし、以下の活動を行なっています。 html5jメーリングリスト Web開発に関する話題について質問したり、共有したりするためのメーリングリストです。また、勉強会の告知なども行なっています。 html5jメーリングリストに参加する (Googleグループに移動) 投稿ルール HTML5などの技術やWeb開発に関する話題であれば、どんな内容でも構いません。
Chromeのページ内検索ライクに結果が表示できる「Glance」プラグインがとても良く、「何で標準じゃないんだ!」と思うくらいだったので、紹介します。 標準から置き換えてしまうのがおすすめです。インストール方法・置き換え方法付き。 また、インクリメンタルサーチを知らない人も、インクリメンタルサーチはとても基本的なテキスト内の移動手段なので、これを機に使い始めることをおすすめします。 目次 1. インクリメンタルサーチとは2. Eclipse標準のインクリメンタルサーチが貧弱3. Glanceの特徴1:他のヒット位置が表示される4. Glanceの特徴2:ヒット位置がスクロールバーに表示される5. Glanceのその他の特徴5.1. 現在のヒット数が表示される5.2. 拡張検索5.3. 検索履歴5.4. 設定ができる5.5. 実はダイアログなどでも使える6. Glanceのインストール方法
世間ではオワコンと揶揄されることも珍しくない Java ですが、Java を初めたばかりのエンジニアがチェック例外と非チェック例外の使い分けについて「ベストプラクティスないの?」と調べたのをまとめてみました。 エントリまとめ どのエントリも Java についての深い洞察と開発の実践現場での生きた経験をもとに書かれていて大変に勉強になりました *1 エントリ中からリンクされているエントリもぜひ一読されることをおすすめします。 検査例外と非検査例外(実行時例外)をどう使い分けるか - Lino Blog Java言語のチェック例外は本当にGood Partなのか? - 達人プログラマーを目指して Javaのチェック例外はクソ仕様 - やさしいデスマーチ 例外の扱いについて その2 - じゅんいち☆かとうの技術日誌 「検査例外はアジャイルやオブジェクト指向の考えに反するという事実」について一部誤
JavaでDOMクラスライブラリを使用してプログラミングしてみる. DOMとSAX DOMとは 環境の準備 DOMでXML文書を読む DOMとSAXXMLパーサとして,DOMとSAXがある.これらは,XML文書をプログラムで扱う際の方式である.それぞれに対応したXMLパーサ(ライブラリ)が多くの言語で提供されている.DOMとSAXはどう違うのかは,本ページの「DOMとは」とJavaでSAXのページの「SAXとは」を参照. DOMとはDOMはData Object Modelの略である.JavaではSunがJAXP(Java API for XML Programing)というパッケージにDOMに対応したXMLパーサが入っている(このパッケージには,SAXに対応したXMLパーサも入っている). DOMでは,XML文書を一気に読み込んで,要素のツリーを構築する.このツリーをランダムに行き来した
カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこと)である。クリストファー・ストレイチーにより論理学者ハスケル・カリーにちなんで名付けられたが、実際に考案したのはMoses Schönfinkelとゴットロープ・フレーゲである。 ごく簡単な例として、f(a, b) = c という関数 f があるときに、F(a) = g(ここで、g は g(b) = c となる関数である)という関数 F が、f のカリー化である。 関数 f が の形のとき、 をカリー化したものを とすると、 の形を取る。uncurryingは、これの逆の変換である。 理論計算機科学の分野では、カリー化を利用すると、複数の引数をとる関数を、一つ
Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) [translated by Yuta Okamoto (@okapies) and Satoshi Kobayashi (@scova0731)] Table of Contents 序章 書式: ホワイトスペース, 命名, インポート, 中カッコ, パターンマッチ, コメント 型とジェネリクス: 戻り型アノテーション, 変位, 型エイリアス, 暗黙 コレクション: 階層, 使う, スタイル, 性能, Java コレクション 並行性: Future, コレクション 制御構造: 再帰, Return, forループと内包, require と assert 関数型プログラミング: 代数的データ型としてのケースクラス, Option, パターンマ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く