2024年1月7日に行われたFukuoka Engineers Dayでの登壇資料です。
Amazon Studentスタート。半年間無料 学生は会員登録でお急ぎ便無料、コミックなどを除く本が10%ポイント付与などお得なサービス。 授業はもちろん学生生活、サークル関係から就職関係まですべてそろうAmazon Studentを有効利用しよう! お知らせ (バックナンバー) 当ホームページのアルゴリズム入門を大幅に加筆した書籍の増刷が決まりました!(2024/03/11) お求めはで。(2024/03/11) ホームページの構成を変更しました。うまく表示できない場合はご連絡いただけるとありがたいです。(2024/03/11) 当ホームページのアルゴリズム入門を大幅に加筆し、書籍化しました! お求めはで。(2014/07/20) おかげさまで増版決定!皆様ありがとうございました。(2017/05/24) 管理人宛のメールではウイルス対策、スパムメール対策をしています。従いましてフリー
PDFデータ 世の中の人はPDFが大好きなようで、嫌い嫌いと言っていても扱わざるを得ません。しかし、それに何時間もかけるのはちょっと・・・と思うのが人の常です。PDFの表データをしかないというケースもありますが、そのような際に便利なtabula-pyという超便利なライブラリがあったのでメモしておきます。 https://github.com/chezou/tabula-py tabulaにかんして tabulaはPDFの表を抽出するためのJavaのライブラリです。tabula-pyはそのラッパとなっております。そのため、利用するためにはJavaのインストールが必要です。 Javaをインストールした後、下のようにするとPythonのライブラリが利用できます。
前置き 大学での初心者に対するプログラミング講義ではC言語を使うべきでない というお話がありまして、「たしかになぁ」と思いました。 で、Qiitadon にいろいろとトゥートしてまして、なんか微妙に語弊がある部分もあったりしたのでまとめてみよう、という話です。 結論 C言語はたしかに初学者には難しい。 プログラミング講義ではプログラミングに特化した言語を使用すべき C言語はコンピューターを理解する意味では適切。でもコンピューターの動きの基礎を理解してからやるべき。 ということです。 Qiitadonのトゥートとしては以下のあたりです。 「プログラミングを覚える」と「コンピューターの動きを覚える」は別問題だとは僕も思う。少なくともC言語を入門にす必然性は無いだろうし、カリキュラムの問題なんだろうなあ、とか考えたりはした。 20年ならC言語一択だったけど、今ならPythonだよねぇ。 昔はそれ
技術部の青木峰郎です。 去年までは主にデータ分析システムの構築を担当していましたが、 最近はなぜかレシピサービスのサービス開発をやっています。 今日は、そのサービス開発をする過程で導入したBFF(Backends for Frontends)であるOrchaについて、 導入の動機と実装の詳細をお話しします。 Orcha導入にいたる経緯 まずはOrcha導入までの経緯、動機からお話ししましょう。 最初のきっかけは、わたしが去年から参加しているブックマークのようなサービスの開発プロジェクトでした。 このプロジェクトの実装のために新しいmicroserviceを追加することになったのですが、 そのときにいくつかの要望(制約)がありました。 1つめは、撤退するとなったときに、すぐに、きれいに撤退できること。 2つめが、スマホアプリからのAPI呼び出し回数はできるだけ増やしたくない、という要望です。
はじめに 私はこれまでのエンジニア歴で継続的にJavaを使い続けていますが、以前と比較すると使い勝手の面で格段に良くなっていると実感しています。 また、JJUG、JSUGなどで講演を聞いたりしたりする中で、個人的に最近のJava界隈は非常に進歩的で良い感じだと感じています。 そんな中、「Javaは人口が多いだけで特別に採用するメリットが無い」「Javaはレガシーで生産性が低い」というツイートを見かけたので、その反論を込めて私の考えを書き連ねたいと思います。 なお、以下で述べる内容には、Javaが良いというよりは、特定のフレームワークが良いだけ、というものもありますが、あくまでJava「界隈」について述べているのであしからず 。 最近のJavaの良いと思う点 言語仕様、標準ライブラリの改善 プロジェクトの立ち上がりの早さ 型安全性の活用 マイクロサービスアーキテクチャへの対応 パフォーマンス
デジタル変革戦略を進める企業は、レガシーインフラへのアクセスを保ちながら、コンテナやWebサービスといった新しい概念に対応するプログラミングツールを活用できるようバランスを取る必要がある。こうしたアプローチの1つに、JavaScriptのNode.js、Python、PHPに基づくWeb開発ツールの導入がある。コンテナ対応、モジュール化、Java EEのMicroProfileに基づく軽量のJavaの仮想マシン(JVM)など、最近の進化を取り入れることで、既存のJava開発ツールと専門知識をさらに有効に生かせるようになる。 Oracleで製品管理部門のバイスプレジデントを務めるマイク・リーマン氏は次のように語る。「開発者は、Node.JS、Python、PHPなど、さまざまな言語を用いてマイクロサービスを作成している。Javaには膨大な知識ベースやスキルがあるが、次々と登場し、人気を集める
Sun MicrosystemsがOracleに買収されたのが2009年ですから、あれから7年が経ちました。 2013年、Javaは大人になったはずだった 僕は2013年に「イマドキのJavaとORACLEについて - arclamp」という記事をアップし、次のように書きました。 そんなわけで「ORACLEはJavaにコミットしているのか?」という質問が無意味なぐらい、ORACLEはJava技術だけではなく、Javaユーザーの方を向いているのです。 もちろん、ORACLEは(SUNに比べて)イノベーションが足りないとかスピード感がないとか批判もできるのですが、これだけエンタープライズのユーザーが増えた中では、Javaの後方互換性を保ちつつ、着実に進化していく、つまりは引き続き安心してJavaを使うことができるというのは大きな価値でしょう。 そう、Javaは本当の意味でオトナになったのかもし
ゴールドマン・サックス発のJavaコレクションフレームワーク、その7つの特徴と歴史とは:コレクション処理の万能道具箱Eclipse Collections入門(1)(1/3 ページ) 本連載では、ゴールドマン・サックス発のオープンソースJavaコレクションフレームワークであるEclipse Collectionsについて、その概要と歴史、機能を中心に紹介します。これまでのJavaやJava 8のStream APIと比較して何が違うのか。Eclipse Collectionsを例に、読者の皆さんがコレクション処理をより深く理解するための一助になればと思います。 ゴールドマン・サックスが開発し、オープンソースソフトウェア(OSS)として公開したJavaコレクションフレームワーク「GS Collections」が、Eclipse Foundationに移行し、「Eclipse Collecti
ひしだまHPの更新履歴。 主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。 『現場で役立つシステム設計の原則』が話題になっていたので、(流し読み程度だけど)読んでみた。 基本的にはJavaがベースで、前半(というか最初の2章くらい)はコーディングレベルの話、残りはオブジェクト指向ベースの設計方法の話。 あ、ちなみに自分は最近はAsakusa Frameworkというバッチフレームワークを使う仕事が多いのでバッチ寄りの考え方で読んでいるけど、本書は基本的にウェブ寄り(Spring Framework)の思想っぽい。 コーディングレベルの話はとても納得。Javaでプログラミングする人は全員これを確認しておくべきという感じ。 (とても細かいレベルの事を言うと、if文の処理部分は波括弧で囲んだ方が(余計なバグが入る余地を減らせるので)いいと思う。ただ、書
面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて] Googleも正式サポートを表明 「いま、Kotlinのコミュニティはかなり盛り上がってますよ!」 開口一番、嬉しそうに語るのは、サイバーエージェントの藤原聖氏だ。 KotlinはJetBrains社が開発した、JVM上で動作する静的型付けのオブジェクト指向プログラミング言語。複雑で肥大化し互換性問題で硬直してきたとも言われるJavaの言語仕様を解消するため、簡素化および安定性と機能性を高めることを狙った新しいプログラミング言語だ。 その存在は以前から知られていたが、2017年5月、サンフランシスコで開催された「Google I/O 2017」で、GoogleがKotlin
私が仕事として扱ったことのあるプログラミング言語は以下があります。 Java C/C++ Python PHP javascript この中でも Java は特別で、15年近く愛用してきました。 Javaの優れている点 Java の優れている点として以下があるとおもいます。 10年前のコードも動かせる信頼性の高いVM クロスプラットフォーム動作 豊富なライブラリ群 高速動作 信頼性の高いVM インタープリタ言語の中にはランタイムのバージョンアップで動作が変わってしまったりすることも多く、なんたらenv といったアプリケーションを使って任意のバージョンのランタイムに固定するのが慣例となっていますが、Javaにおいては最新のJVMを入れれば大体なんとかなります。 クロスプラットフォーム動作 私は長らく Windows を開発機として使用し、Linux サーバで動作させる。ということをしてきまし
今回はJavaプログラミング初心者向けに、Java文法の「static修飾子」を解説する。Java初心者と中級者の違いの1つが、static修飾子を正しくかつ効果的に使用できているかどうかである。というのもstaticなしでも大体の処理は記述できるが、staticを使えばコードが構造化され、可読性が上がる&再利用しやすくなるからである。 クラスとインスタンス まずいきなりだが、以下のHelloworldを用意してmainメソッドを実行した場合、メモリ上ではどのような処理が行われるだろうか? public class Helloworld { private String message; public Helloworld(String msg) { this.message = msg; } public void echoMessage () { System.out.println(
Eclipse+JavaのgetResourceAsStream()でファイルを読み込む方法を紹介します。 より適切な方法があるかもしれませんので、コメントもお待ちしています。 1.問題点 Window環境のEclipseで次のようなJavaのコード(抜粋)を実行しました。 public String file = "format/sample.txt"; BufferedInputStream is = new BufferedInputStream(getClass().getClassLoader().getResourceAsStream(file)); 2行目(またはそれ以降)で次のような例外が発生しました。 java.io.IOException: Stream closed at java.io.BufferedInputStream.getInIfOpen(Unknown
List、Set、Mapインターフェイスを持つ実装クラスには複数のものがあり、それぞれには特徴があります。例えば同じListインターフェイスを持つArrayListとLinkedListを比較すると、LinkedListを使った方が、リスト途中に要素を挿入する操作が高速で行えますが、使用メモリ量はArrayListよりも多くなってしまいます。そのため、すでにデータが格納されているインスタンスをいったん別のCollection Framework型にコピーして変換を行い、変換後のインスタンスに対して操作を行った方が結果として高速に処理できる場合があります。また、すでにデータが格納されているインスタンスをあるメソッドの引数として渡したいが、型が異なるためそのまま渡すことができない場合も、型の変換が必要となります。 本Tipsでは型の異なるCollection同士、または型の異なるMap同士の変
実行時にオブジェクトのクラス情報等を調べたりできる Java 言語の機能を、リフレクションといいます。 リフレクションによって、実行時にクラスの名前、メソッドの名前やパラメータなどを知ることができます。 Java のリフレクションの Class クラスとは? オブジェクトに関連する Class オブジェクトの取得 オブジェクトに関連する Class オブジェクトの取得 Class オブジェクトを取得するサンプルコード クラス名からの Class オブジェクトの取得 クラス名文字列から Class オブジェクトを取得する クラス名から Class オブジェクトを取得するサンプルコード ClassNotFoundException 例外の発生 Java リフレクションの Class オブジェクトからのインスタンスの作成 Class オブジェクトからのインスタンス生成 引数を受取るコンストラクタ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く