並び順

ブックマーク数

期間指定

  • から
  • まで

201 - 240 件 / 8010件

新着順 人気順

println javaの検索結果201 - 240 件 / 8010件

  • 正規表現でのURLのチェックとバイパス | 技術者ブログ | 三井物産セキュアディレクション株式会社

    最近はMBSDでWebアプリケーションスキャナの開発をしている寺田です。 Webアプリケーションを開発していると、セキュリティの観点でURLをチェックしなければならないことがしばしばあります。本日の記事では、そのようなURLのチェックを如何に行うか、正規表現を使う場合の注意点や、バイパス方法などについて書きたいと思います。 本記事で想定するのは、ブラウザからパラメータとして来るURLをチェックしてリダイレクトやリンクのURL等として使ったり、ブラウザから来たOriginヘッダ等のURLをチェックしてアクセス制御をするケースです。その中でも、以下のようにサブドメイン部分(★の部分)を可変にする状況を主に想定します。 https://★.example.jp/… よく使われてそうなチェック用の正規表現と、そのバイパスは以下のとおりです。 正規表現: ^https://.+\.example\.

      正規表現でのURLのチェックとバイパス | 技術者ブログ | 三井物産セキュアディレクション株式会社
    • イケてないのに人気がある golang vs イケてるのに人気がない Nim - 強まっていこう

      ここ最近 GCP を持ち上げて Google のポチと化していましたが、そのポチが今回は Google に噛みつきます。 wolfbash.hateblo.jp だって golang 酷いんですもん。何かセンスがぜんっぜん Google っぽくない。 せっかく作るのなら、もっと良いものにして欲しい、そう言う願いも込めてこのエントリーを書きます。 wolfbash.hateblo.jp 前回 Rust と比較してみましたが、今回はその golang 版です。 golang は言語のシンプルさを追求していて、言語的な便利機能が片っ端からありません。 それは覚えることが少ないことを意味します。学習コストを低く抑える事を根本的なポリシーにしている言語です。 裏を返せば完全に人を小馬鹿にしているんですが、その分ドキュメントなどがかなり充実しています。 構文的には、ほぼ C と同じです。そらそうですね

        イケてないのに人気がある golang vs イケてるのに人気がない Nim - 強まっていこう
      • 文字列でswitchするときはif-else switchイデオムを使うほうが安全 - きしだのHatena

        Java SE 7から、switch構文で文字列が使えるようになりました。 public void hoge(String s){ switch(s){ case "a": System.out.println("AA"); break; case "b": System.out.println("BB"); break; default: System.out.println("Other"); } } ところが、残念なことに、sがnullの場合はdefaultには飛ばず、ぬるぽが発生します。 そこで、null判定は事前にif文で行うことになるので、次のようなif-else switchイデオムを使うと便利です。 if(s == null){ System.out.println("Null!"); }else switch(s){ case "a": System.out.printl

          文字列でswitchするときはif-else switchイデオムを使うほうが安全 - きしだのHatena
        • livedoor Techブログ : 全文検索エンジン lucene(ルシーン) を使ってみた

          こんにちは 。 検索 関連 を 担当 して いる やましー です 。 今回は livedoor で提供しているサービスの中の「検索関連」について書きます。 このブログでも過去に何度か取り上げられていますが、livedoor では検索エンジンとして HyperEstraier、lucene、mysql + senna、Namazu、SUFARY などを利用しています。 その中で lucene の利用方法や機能拡張について説明します。 lucene とは Apache Lucene は、Java で書かれた高性能で高機能な検索エンジンライブラリです。全文検索を(特にクロスプラットフォームで)必要とするほとんどのアプリケーションに適している技術です。※ 公式サイトから抜粋 インデックスの作成 lucene は転置インデックス型の検索エンジンなので、ドキュメントを検索するには、まずインデックスの作

          • ウノウラボ Unoh Labs: 5分くらいで知るScala

            はじめまして。今月入社した内田です。 以前は業務系のSI会社に勤めていたので、Web系という畑の違う環境に少々戸惑うこともありますが、最近少しずつ慣れてきました。 今回は先日、社内勉強会でやった「Scala」について5分くらいで紹介したいと思います。 Scalaとは 関数型言語とオブジェクト指向言語の特徴を統合したマルチパラダイム言語です。 主にJavaVM上で動作し、他にも.NET Framework、Google Android等でも動作が確認されています。そしてJavaや.NET等の既存の豊富なライブラリを使用することが可能です。 このあたりはwikipediaに詳しく書かれています。 Wikipedia:Scala 約1年程前には日本でのScala人口は1桁とも言われていましたが、最近では各地で勉強会が開催される等盛り上がりをみせ、「次の言語」として注目されています。個人的にSca

            • Java開発におけるErrorProneのススメ - よねのはてな

              こんにちは、今シーズンのNBAもGSWの試合は全試合観てる米林です🏀 今年は毎試合満員御礼のOracleアリーナに行って観戦したいなぁと思いつつカリフォルニア州オークランドの人たちはOracleがデータベースの会社って知ってるのかどうか毎回気になっています🏀 うちの会社ではJavaの開発において、Error Prone を積極的に取り入れている。 その理由はCTOのmopemopeが入れろって怖いから、ただそれだけである。 実際のところ導入して損は無いので皆さんも是非導入を検討して頂きたい。 Error Prone とは github.com Error Prone とはGoogleが公開していて、githubに記載されている説明のとおり “Catch common Java mistakes as compile-time errors” そのままである。 コンパイル時にエラーが起き

                Java開発におけるErrorProneのススメ - よねのはてな
              • Rust風にデザインパターン23種 | κeenのHappy Hacκing Blog

                κeenです。 GoFのデザインパターンは有名ですが、言語機能によっては単純化できたりあるいは不要だったりするのでRust風に書き換えたらどうなるか試してみます。 発端はこのツイート。 デザインパターン、古いJavaの機能の足りなさのワークアラウンド的なテクニックも含まれてるからあまり宜しくないんだよね。enumやクロージャで十分なのもいくつかある。 Rustで写経、デザインパターン23種 - Qiitahttps://t.co/MhpS3Z2OlF — κeen (@blackenedgold) 2017年5月5日 一応誤解のないように説明しておくと、該当のQiitaの記事に不満がある訳ではなくてGoFのデザインパターンついての言及です。 リンク先のコードで十分な時にはここでは流すのでリンク先も同時に参照下さい。 また、比較しやすいようにサンプルコードはリンク先のものに則って書きます。

                  Rust風にデザインパターン23種 | κeenのHappy Hacκing Blog
                • Java 8 "Optional" ~ これからのnullとの付き合い方 ~ - Qiita

                  Java8で新たに追加されたクラスにjava.util.Optionalがあります。 Optionalを使用することで、プログラムの堅牢性を高めたり、煩雑な記述を減らすことが期待されます。 Optionalとは? Optionalは値をラップし、 その値がnullかもしれない ことを表現するクラスです。 使い方 メソッドgetHoge()はnullを返す場合があるとします。 これまでなら次のような感じでnullチェックをしていたと思います。 String hoge = getHoge(); // hogeはnullかも if (hoge != null) { // nullチェック System.out.println(hoge.length()); // hogeがnullじゃないのでlengthメソッドを呼ぶ } nullかもしれない変数hogeのメソッドを呼ぶ場合、事前にnullチェ

                    Java 8 "Optional" ~ これからのnullとの付き合い方 ~ - Qiita
                  • イマドキと言われる言語機能について | κeenのHappy Hacκing Blog

                    # イマドキと言われる言語機能について ---------------------- [第60回プログラミングシンポジウム](http://www.ipsj.or.jp/prosym/60/60program.html) === # About Me --------- ![κeenのアイコン](/images/kappa.png) * κeen * [@blackenedgold](https://twitter.com/blackenedgold) * Github: [KeenS](https://github.com/KeenS) * [Idein Inc.](https://idein.jp/)のエンジニア + 情報科学の教育は受けていない純粋なエンジニア * 実際に仕事で使った(ている)のはJava, Scala, Rust === # 最近っぽい言語 ------------

                    • Javaライブラリを配布する際のログ周りにおける配慮と実践 - Kengo's blog

                      2020-07-22更新: 以下の投稿で情報をアップデートしています。 https://blog.kengo-toda.jp/entry/2020/07/21/223136 いつも購読させていただいている id:teppeis さんのブックマークに以下のエントリが流れてきて、なるほどこいつはたしかに厄介だと思いました。 javaのロガーが多すぎて訳が解らないので整理してみました - 文系プログラマによるTIPSブログ ただSLF4Jが最も先進的かつ著名なインタフェースである以上、配布側としてはSLF4Jを使いつつ問題を解決したいところです。他のインタフェースを使ったりオレオレ実装を使ったりしてしまうと、それこそユーザの自由度を奪ってしまう形になります。 実際、SLF4Jを配布パッケージに含めないという簡単な解決法がありますので、簡単に紹介します。悲劇を繰り返さないためにライブラリ開発者がす

                        Javaライブラリを配布する際のログ周りにおける配慮と実践 - Kengo's blog
                      • GhostDriverでWebアプリケーションのテストを高速化する - CODESCRIBBLE

                        Seleniumを使ったテストは遅いという話をよく聞きます。理由として考えられるのは以下の3つです。 テスト対象のWebアプリケーションが遅いため 遅いテストを書いているため 実際にWebブラウザを動かしているため 1つ目と2つ目は、環境やコードの書き方を変えることで改善可能です。しかし、3つ目はどうでしょうか。実際のブラウザを高速化することなど、そのブラウザの開発者でもない限り不可能です。となると、できることは、可能な限り高速なブラウザを選択することです。 PhantomJSはヘッドレスブラウザです。ヘッドレスブラウザというのはGUIのないブラウザのことで、GUIの描画処理を行わない分、通常のブラウザに比べて高速に動作するという特徴があります。そのため、時間が掛かりがちなWebアプリケーションのGUIテストを高速化するためのソリューションとして注目されています。また、マルチプラットフォー

                        • if式 / if文 の条件節で、左辺に定数を書くべき言語はあるか? @ajiyoshi.gist

                          gistfile1.md if式 / if文 の条件節で、左辺に定数を書くべき言語はあるか? @ajiyoshi.gist twitterからながれてきたこの話題。昔のCコンパイラは、if文の条件節で代入を書いても文句を言わなかったので、このようなコードに何の警告も出なかった。 #include<stdio.h> int main() { int x = 0; /* おそらく意図と違う。 x == 1 と書くべきであった これでは常に実行されてしまう */ if ( x = 1 ) { puts("残念"); } } 「これをこのように書けば、コンパイルエラーになり、ある種の誤りをコンパイラに見つけさせることができる」というのが、「老害」とされる人の主張である。 /* これはコンパイルエラーになる */ if ( 1 = x ) { puts("残念"); } もし使っている環境が「コンパ

                            if式 / if文 の条件節で、左辺に定数を書くべき言語はあるか? @ajiyoshi.gist
                          • Java製形態素解析器「Kuromoji」を試してみる

                            概要 Javaの比較的新しい形態素解析器、Kuromoji。 lucene-gosenやGomokuのように辞書内包で、jarを落とせばその場で利用でき、Unidicに対応していて、ソースがLuceneのtrunkにコミットされているという、何かと気になる特徴の持ち主。 複数のモードを持っているようで、Searchモードを使うと「日本経済新聞」を「日本 | 経済 | 新聞」のように検索で利用しやすい形にばらして解析してくれたり、Extendedモードを使うと未知語をuni-gramにしてくれたりもするらしい。 今日はそんなKuromojiさんの導入から簡易な使い方までをさらっと追いかけてみた。 導入 まずは下記ページからダウンロード。今回はkuromoji-0.7.5.tar.gzを利用。 Downloads - atilika/kuromoji https://github.com/at

                            • Scalaの学習コストを下げるための心得 - kmizuの日記

                              追記:Twitterで、「それって、言語マニアにしかできない技のような気が」という指摘を受けました。自分としては一般的に適用可能な話だと思っていますが、あるいは自分の感性が著しくずれているのかもしれません。その辺承知の上でお読みください。 Scalaは習得が難しい言語だ、とよく言われます。また、実際問題として、Scalaの言語仕様の全体はそれなりに複雑でもあります。しかし、それはたとえばJavaでも言語仕様の全体像を把握するのは難しい話であり、Scalaに限った話ではありません。にも関わらず、Scalaの習得が難しいとよく言われるのはプログラミング言語の学習モデルが誤っているからではないかと最近思うようになりました。そこで、Scala(や他の言語も含めて)のコストを下げるために必要な心得についてちょっと書いてみます。 Scalaはオブジェクト指向言語である これは、Scalaは関数型プログ

                                Scalaの学習コストを下げるための心得 - kmizuの日記
                              • C++からRustに移行して1年経って思ったこと - Qiita

                                はじめに この記事は「プログラミング技術の変化で得られた知見・苦労話【PR】パソナテック Advent Calendar 2020」のために書かれたものです。 僕は去年の11月から一念発起してRustの勉強を初めて趣味で同人ゲームを開発しています。元々C++を4年程使っていて「C++最高、みんなC++使おう」とか友人に布教していました。しかし、C++プログラマは「一番自分たちの言語の批判に対して強くなる」と言われるほどC++はよくディスられます。もちろん僕も例外ではありませんでした(笑)。 一応僕もPythonを適当に使うようになってからC++のcppとhppを組み合わせるようなCの名残を感じるところや他言語と比べたときの標準ライブラリの貧弱さ、コードが冗長になりやすい点など使いにくいなあと思いはじめましていました。ですがPythonはあくまでも適当に使ってただけでしたし、一通り書けるJa

                                  C++からRustに移行して1年経って思ったこと - Qiita
                                • Unicode の文字列をソースコードに埋め込む方法 - bkブログ

                                  Unicode の文字列をソースコードに埋め込む方法 Unicode の文字列をソースコードに埋め込む場合、直接 UTF-8 などで文字列を書く方法と、\uXXXX などのようにエスケープして表記する方法があります。後者の方法についてまとめてみました。 \uXXXX 形式の場合 Java, JavaScript, Python, C++, C (C99から) などの多くの言語では \uXXXX という表記 (universal character names) でUnicode の文字を文字列の中に埋め込めます。たとえば、「あいう」は "\u3042\u3044\u3046" となります。 \uXXXX で埋め込んだ文字がどのように解釈されるかは言語や処理系によって異なります。 gcc/g++ の場合、 -fexec-charset オプションで、実際に使う文字セット・エンコーディングを指

                                  • 大刷新リリース Java 8の新機能

                                    2014年3月18日(米国時間)、ラムダを筆頭に数多くの新機能が含まれるJava 8がいよいよリリースされる。 ここ数年、JavaはOracleのSun買収による混乱、当初Java 7で実装されるはずだった多くの機能の先送り、さらにはJava 8のリリースの遅延など様々な要因によって強い停滞感があり、それが関数型言語の機能を取り入れたScalaなどJavaの代替となるJVM言語の台頭にも繋がった。 そうしたJavaプログラマの溜まりに溜まったモヤモヤを払拭するアップデートとして期待されているのが今回のJava 8だ。前述の通りラムダの導入による新たな構文からStream APIやTime APIといったライブラリの追加まで、非常に多くの新機能を含んでいる。 本稿ではそのJava 8の主要な新機能についてサンプルコードを交えて紹介していく。Java 8の新機能を押さえるための参考になれば幸い

                                      大刷新リリース Java 8の新機能
                                    • Javaであまりしないコーディング - 日々常々

                                      Java Advent Calendar 2014 - Qiita の9日目です。9日ったら9日です。 なんか難しいエントリが多い中ですが、空気を読まずに軽めでいきます。 Javaでは色々なコードの書き方ができるけど、実際あまりやらないよなーって思うコーディングについて、やらない理由を無理矢理書いてみた。 決して「やってはいけないコーディング」と言う意味ではないです。単に「私はあまりしない」程度で、一般的な(?)業務開発でもあまり見ない、くらいの位置付け。理解した上でやる分には全く問題無いですし、そう言うもんだと思って使っても良いとは思います。 複数変数を同時に宣言する int i, j = 2, k; 同じ型の変数(フィールドでもローカル変数でも)は同じ文で宣言できます。 けど、あまり使ってるのは見ません。 同じ型でしか使えないし、フィールドだとJavaDocコメント書き辛いし、初期化式

                                        Javaであまりしないコーディング - 日々常々
                                      • Java 入門 | XPath

                                        これらのノードはDOMノードとは異なることに注意が必要です。 属性ノード(attribute node)は、各々が属する要素に対応する要素ノード(element node)を親とするが、当該要素ノードの子ではありません。属性ノードは、開始タグで明示的に指定された属性及び、デフォルト値を持つ明示的に指定されていない属性についてのみ、各々が属する要素を親ノードとして、ツリー構造中の属性ノードとなります。子要素にも意味が継承される属性の場合は、明示的に指定された親要素のみ、属性ノードが存在し、継承する子要素に明示的に指定されていなければ、当該属性のノードを持つことはありません。 名前空間ノード(namespace node)も、要素を親ノードとするが、その子ではありません。名前空間ノードは、要素ノードに対して、当該要素ノード及びその子孫のノードの名前空間毎に一個ずつ結び付けられます。 処理命令(

                                        • フィボナッチで各種言語をベンチマーク - satosystemsの日記

                                          AWK、Ada、Bash、Boo、C、C#、C++、Clojure、D、Erlang、Forth、Fortran、Go、Groovy、Haskell、Io、Java、JavaScript、Lisp、Lua、OCaml、Objective-C、PHP、Pascal、Perl、Pike、Prolog、Python、R、Ruby、Scala、Scheme、Smalltalk、Tcl でフィボナッチ数を求める処理時間を計測してみました。 フィボナッチ数は漸化式で求められます。 F0 = 0 F1 = 1 Fn+2 = Fn+1 + Fn フィボナッチ数を求めるアルゴリズムはいろいろありますが、今回は以下の再帰で求めるアルゴリズムで統一しました。 #include <stdio.h> int fib(int n) { if (n < 2) return n; return fib(n - 2) +

                                            フィボナッチで各種言語をベンチマーク - satosystemsの日記
                                          • JavaとMySQLの組み合わせでUnicodeのU+00A5を用いたSQLインジェクションの可能性

                                            補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブ、はてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2008年12月22日に公開されたもので、当時の徳丸の考えを示すものを、基本的に内容を変更せずにそのまま転載するものです。 補足終わり 今年のBlack Hat Japanには、はせがわようすけ氏が「趣味と実益の文字コード攻撃」と題して講演され話題となった。その講演資料が公開されているので、私は講演は聞き逃したが、資料は興味深く拝見した。その講演資料のP20以降には、「多対一の変換」と題して、UnicodeのU+00A5(通貨記号としての¥)が、他の文字コードに変換される際にバックスラッシュ「\」(日本語環境では通貨記号)の0x5Cに変換されることから、パストラバーサルが発生する例が紹介されている。 しかし、バックスラッシュと言えばSQL

                                            • 問い:Java 8のStream APIは業務でどんな時に使うの? 答え:あなたがfor文使いたい時 - ブログなんだよもん

                                              ※ サンプルがJDK7までとJDK8までで意味が変わっていてわかりにくいという指摘があったので、少し直しました。 ※ boxedを使う書き方だと無駄なAutoboxingが走るとの指摘を頂きましたのでmapToObjを利用するように変えました。 Java8の目玉機能の一つにStream APIがあります。 目玉機能だけあって、先日のJava Day Tokyo 2014を含めて色んな所で発表やブログの記事が公開されているので、どんなものかを知ってる人は多いと思います。 Stream APIといえば「".parallel()"と書くだけで並列化してスピードアップ出来る!」という魅惑的なキーワードで紹介されることが多いので、並列化のための仕様だと勘違いされそうですが、そうではありません。 ※ もちろんそういった記事の中をちゃんと読めばそう単純な話じゃないことも分かります。 むしろ、並列化に関し

                                                問い:Java 8のStream APIは業務でどんな時に使うの? 答え:あなたがfor文使いたい時 - ブログなんだよもん
                                              • Goで再帰使うと遅くなりますがそれが何だ - YAMAGUCHI::weblog

                                                はじめに こんにちは、Go界のうまい棒です。昼間にTwitter眺めてたら次のような記事を見かけました。 この頃 流行りの 言語たち(他)でベンチマーク (Dart, Go, Julia, Nim, Python, Rust 他) - Blank File 結果はあくまでフィボナッチ数列をナイーブに実装した場合なんで、まあ明らかに遅くなるよなあと予想通りの実行結果でした。 件のプログラム ナイーブにフィボナッチ数列を実装してますね。 package main import "fmt" func fib(n int) int { if n < 2 { return n } return fib(n-2) + fib(n-1) } func main() { fmt.Println(fib(42)) } これを実際にビルドして実行するとどれくらいかかるかというと、だいたい手元で2.5秒以上かか

                                                  Goで再帰使うと遅くなりますがそれが何だ - YAMAGUCHI::weblog
                                                • Rust の DI を考える –– Part 2: Rust における DI の手法の整理 - paild tech blog

                                                  paild 社でお手伝いをしている yuki です。前回に引き続き Dependency Injection 略して DI の話題を書いていきたいと思います。今回は Rust における DI についていろいろと考えてみました。今回紹介する実装はかなり単純な例を用いたもので、この記事からさらにみなさんのアプリケーションの実装状況に合わせていくつか工夫は必要になるかもしれません。ただ、とっかかりとしては十分なものになっていると思うので、DI でお困りの方はぜひ参考にしてみてください。 今回実装したいアプリケーションのお題について 今回紹介する技法の種別について コンストラクタインジェクション 静的ディスパッチを用いたもの 動的ディスパッチを用いたもの 静的ディスパッチと動的ディスパッチの利点・欠点 shaku (DI コンテナ)を用いたインジェクション shaku の利点・欠点 余談: DI

                                                    Rust の DI を考える –– Part 2: Rust における DI の手法の整理 - paild tech blog
                                                  • Scalaでの例外処理 - Either,Option,util.control.Exception - ( ꒪⌓꒪) ゆるよろ日記

                                                    今日はScalaの例外処理について解説しますよ。 基本 - try,catch,finally 例外処理の基本は、try,catch,finallyです。これはJavaと同じですね。 ただし、Scalaでのtry,catch,finallyは値を生成します。つまり、実行されたブロックの値が評価されます。 scala> val n = try{ "99".toInt } catch { case e:Exception => -99 } n: Int = 99 scala> val n = try{ "foo".toInt } catch { case e:Exception => -99 } n: Int = -99 上記のように、catch節には "case e:Exception => ..."のようなパターンマッチを書くことで、対応する例外の型に応じて補足することができます。try,

                                                      Scalaでの例外処理 - Either,Option,util.control.Exception - ( ꒪⌓꒪) ゆるよろ日記
                                                    • Eclipseからテキストエディタに戻れない10の理由 - プログラマーの脳みそ

                                                      ソフトウェアはいろいろな作業の効率化に貢献してきた。プログラミングという作業も例外ではない。現代の高度なIDE(統合開発環境)はプログラマが単純でつまらない作業に時間を割かずに済むようにさまざまな機能を提供してくれる。 もうテキストエディタ+コマンドラインでのコンパイルなんて環境には戻れない。以下は自分が仕事でメインに使っているEclipseというIDEを使い続ける理由。 (追記)私は仕事では主にJavaの開発をやっている。C/C++/C#の開発では以下に挙げるメリットを享受できない部分があることを断っておく。 1. コードの自動補完 標準API+フレームワークのAPIで万単位のクラスが存在するので、暗記は無理。クラスに存在するメソッド名、フィールド名までの暗記はもっと無理。よく使う範囲なら暗記しているけど、typo -> コンパイルエラー -> 探して修正 の手間より、自動補完が断然効率

                                                        Eclipseからテキストエディタに戻れない10の理由 - プログラマーの脳みそ
                                                      • ジェネリクスによるVisitorパターン拡張の考察 - プログラマーの脳みそ

                                                        先日twitterで "Expression Problem" という問題を知った。 静的な型付けの下で、場合分けのデータ構造に対して、新しい場合分けとその場合に対する新しい処理を、元のソースコードに手を加えることなく拡張定義すること 2009-05-16 この問題が意図するところを語るにはまずオブジェクト指向から流れを辿らねばなるまい。 オブジェクト指向のポリモーフィズム Javaのようなオブジェクト指向の言語で、ある特定のメソッドがあることを抽象クラスHogeで保証するとしよう。 public interface Hoge { void hoge(); } このとき、機能性、つまりメソッドというのは増えることがない固定のものだが、継承して実装されたクラスというのは自由に増やすことができる。そして、抽象型Hogeを扱っている既存コードは修正する必要がない。 これはいわゆる開放/閉鎖原則(

                                                          ジェネリクスによるVisitorパターン拡張の考察 - プログラマーの脳みそ
                                                        • 【結果発表】新人女子PGを最も助けたプログラミング言語とは? - paiza times

                                                          2013年12月2日より開始したpaizaオンラインハッカソン(略してPOH![ポー!])Vol.1「新人女子の書いたコードを直すだけの簡単なお仕事です!」ですが、2014年1月8日いっぱいをもって開催期間を終了いたしました。今回のハッカソンのレポート、最終結果と、提出された各プログラミング言語毎の最速コードをお届けします。 ※POH Vol.1は応募期間は過ぎたため、プレゼント対象、計測対象には成りませんが、コードの実行は引き続き可能です。 ■提出コードは2万提出突破! おかげ様で事務局の想定を超える参加者数、提出数のハッカソンとする事ができました。ご参加いただいた皆様ありがとうございました! 今回の期間中の参加者数、提出数は以下の通りです。 参加者数:1,961人 提出数:22,219提出 今回の企画では、オンラインで誰でも気軽に参加できるハッカソンを目指しました。改めてプログラミング

                                                            【結果発表】新人女子PGを最も助けたプログラミング言語とは? - paiza times
                                                          • 関数型プログラミングはまずは純粋関数型言語を用いて、考え方から理解しよう

                                                            この記事は、関数型プログラミングはまず考え方から理解しよう の記事を純粋関数型言語Elmで書き換え、一部の文章について批判的に言及させていただいた記事になります。この記事を書こうと思ったきっかけとしては、今回参考にさせていただきた記事が過去に書かれたものにも関わらず、今に渡っても見られていそうなこと。未だにパラダイムの理解に関する誤解が多く散見されること。改めて純粋関数型言語の実用性・有用性について、見直されるべきだと思い、この記事を執筆させていただきました。 次のステップアップ記事は、[超入門] FizzBuzzで考える関数型プログラミング学習を純粋関数型言語でやる理由です。 はじめに、この記事の主張を結論としてまとめておきます。 対比すべきは、関数型プログラミングとオブジェクト指向プログラミングではなく、関数型プログラミングと手続き型プログラミングである 関数型プログラミングの考えを学

                                                              関数型プログラミングはまずは純粋関数型言語を用いて、考え方から理解しよう
                                                            • Terminal

                                                              Mac OS X ターミナルでの日本語の扱いについて 2005/05/09 Update ◆ はじめに Mac OS X v10.2(以降)のターミナルは、UTF-8に対応し、多言語の表示が可能となった。 -vオプション付きでlsコマンドを実行するとUTF-8で記録された日本語名のファイルやフォルダも正しく表示される。 しかし、デフォルトの状態ではコマンドラインへの日本語の直接入力に対応していないため使いにくい。 本ページは、Mac OS Xのターミナルで日本語を扱う際の設定等をまとめたものである。 OSのバージョン固有の設定は[10.4]のように表記している。 特に指定の無いものはバージョン共通の設定である。 なお、Mac OS X v10.2ではデフォルトのシェルがtcshであったが、Mac OS X v10.3以降ではbashに

                                                              • もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics

                                                                ある日、 id:cero-t がJJUGの重鎮たちと話している中で、とある宿題をもらいましたとさ。 「Java8のラムダの中で例外が発生したら、どうなるんだろう?」 こんにちは、アキバです。 もう皆さんはJava8を使ってみましたか? とりあえずインストールしてみた人! ・・はーい (おまえか という冗談はさておき、 今回は、id:cero-t に代わって私が冒頭のお題を調べてみました。 1. SerialStreamで動かしたラムダで例外が発生したら まずは、小手調べにシングルスレッドの場合を見てみましょう。 検査例外が発生するようなコードをラムダに書いてみると、コンパイルエラーになります。 こんなコードです。 try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(W_FILENAME))) { // writer.

                                                                  もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics
                                                                • ロボットエンジニアのためのProtocol buffers入門 - MyEnigma

                                                                  Practical gRPC (English Edition) 目次 目次 はじめに Protocol buffersとは? Protocol buffersの特徴 様々なプラットフォームや言語で利用することができる データサイズが小さい エンコードやデコードが早い データの構造を精密に規定できる データフォーマットに後方互換性がある。 JSONに変換できる デメリット protoファイルを作成する時の注意点 protobufのコンパイラのインストール MacでHomebrewをって、公式のprotobufをインストール場合 ubuntuへの公式protobufのインストール Juliaでprotoファイルをコンパイルする 使い方 C++ Python Java Julia protoファイルのスタイルガイド Protocol buffersと一緒に使うと便利なツール protoc-ge

                                                                    ロボットエンジニアのためのProtocol buffers入門 - MyEnigma
                                                                  • いいから聞け! 俺が文字コードについて教えてやるよ Advent Calendar 特別編 - 谷本 心 in せろ部屋

                                                                    長らく更新の止まっている「いいから俺文字コード」シリーズですが、 このたび、Java Advent Calendarの一環として復活させました! Java Advent Calendarって? 本エントリーはJava Advent Calendarの5日目です。 Java Advent Calendarについては、以下のサイトをご覧ください。 http://atnd.org/events/22434 前の4日目は @akirakoyasu さんの「SDKで身近になるAmazon Web Service」 http://www.akirakoyasu.net/2011/12/04/easily-use-aws-through-sdk/ S3、SimpleDB、SESの使い方をサンプルコードつきで紹介しています。 次の6日目は @shuji_w6e さんの「JUnit のセカイ」 http:/

                                                                      いいから聞け! 俺が文字コードについて教えてやるよ Advent Calendar 特別編 - 谷本 心 in せろ部屋
                                                                    • forEach書いたら負け、for文禁止 - torutkのブログ

                                                                      本日は日本Javaユーザーグループ(JJUG)主催のクロスコミュニティカンファレンス2014春に参加してきました。今日の日記は、参加内容のまとめではなく、参加して得たことやそれをきっかけに考えたことなどをだらだらと書き連ねます。 Java SE 8では、forEach書いたら負け、for文禁止 日記のタイトルは、午前のセッション「K-1 詳説 Java SE 8 – CCC Edition」で出た話題です。手続き的なロジックを書いて、ネストが深く制御構造が複雑になってしまう人向けにはJava SE 8で導入されたラムダ式とStream APIを使って、内部イテレータと関数型プログラミングのエッセンスを取り入れた書き方をするといいよ、という話から出た言葉です。 実は昨日開催したJava読書会(「Java 8 Lambdas」を読む会)でも、「for文は禁止だ!」という話題が出てました。for

                                                                        forEach書いたら負け、for文禁止 - torutkのブログ
                                                                      • セルフホストで学ぶJVM入門 - k0kubun's blog

                                                                        RubyのJIT開発でやろうと思ってることが大体 @_ko1 さんの作業待ちでブロックしていて暇なので何かを書こうと思い、JVMを書くことにした。 まだその辺のアプリを気軽に動かせるレベルでは全然ないが、別に秘密裏に開発する必要もないと思ったので公開した。 github.com これの紹介と、現時点で学べたことをこの記事に記録しておく。 何故JVMなのか 仕事でJVM言語を使っている 僕が所属しているTreasure Dataでは、大雑把に言うと本番サーバーのサービスは大体Ruby, Java, Scala, Kotlinで書かれている*1ので、既にRubyのVMはある程度わかる*2ことを考えると、JVMさえ理解してしまえば社内の主要な言語評価系を抑えたことになり、運用面で活躍の機会が増える気がしている。 また、自分が最近一番書いているのはKotlinなのだが、JVMで動かしていることに由

                                                                          セルフホストで学ぶJVM入門 - k0kubun's blog
                                                                        • Java8のStreamの目的と書きやすさや可読性、並行処理の効果について - きしだのHatena

                                                                          さて、前回Java8のStreamの使い方をざっと見てみたのですけど、はてなブックマークのコメントで「Javaが使われている領域でこんな言語拡張は必要か」「可読性が損なわれていて単なる自己満足ではないか」のようなコメントがついていました。 実際どうなのか考えてみます。 Java8のStreamの目的 では、いまJavaが使われている領域を考えてみましょう。 Javaがいまよく使われているのは、クライアントサイドではなくサーバーサイドです。とくに、直接アクセスをうけつけるサーバーではなく、分散データ処理のためのHadoopやHBase、全文検索エンジンのLuceneなど、バックエンド処理を行う製品のシェアが大きいように見えます。 TwitterやGoogleでも、Javaで書かれたバックエンドが動いているようです。Facebookも分析系ではJavaを使っているようです。 大手サービスでバッ

                                                                            Java8のStreamの目的と書きやすさや可読性、並行処理の効果について - きしだのHatena
                                                                          • プログラミング言語の変遷(Hishidama's change of programming language Memo)

                                                                            はじめに 一般的に流行したプログラミング言語の変遷というより、自分が使ってきた言語の変遷というべきかな^^; 自分はプログラミング言語の歴史や言語そのものに詳しいわけでもないので、ここに書いているのは完全に自分の想像。 特に「どの言語が流行っているか」なんてものは多分に主観が入るので^^; でも大枠で見れば、自分が勉強してきたプログラミング言語は世間の認識とそれほどずれてはいないと思う。 すなわち、手続き型言語→構造化プログラミング→オブジェクト指向言語→関数型言語。 ○○プログラミングと○○言語 ○○という概念(パラダイム)が出来て、それに沿ったプログラムの作り方をするのが○○プログラミング。 ○○プログラミングをやりやすくする為のコンピューター言語が○○言語。 例えば“オブジェクト指向”という概念が提唱され、“オブジェクト指向プログラミング”を行う。それを支援するのが“オブジェクト指向

                                                                            • [その1] Rubyプログラマー向けのGo言語の解説 - ワザノバ | wazanova

                                                                              http://www.sitepoint.com/go-rubyists-ii/1 comment | 0 pointsGlenn Goodrichが、Rubyプログラマー向けにGo言語のinterfaceとWeb.goを紹介しています。1回目はまずは、interfaceから。 The Fallacy of Inheritance 継承は些細な修正も実装が面倒になり、コードが複雑になる可能性があります。例えば、Horseクラスと二つのサブクラス、GallopingHorseとSadHorseがあったとします。(その二つはステートの違いだけでなく、まったく性格の違うサブクラスかもしれません。)sadな雰囲気で、gallopをしているhorseがいる場合はどうするか?それぞれのクラスである振る舞いがロックアップされることになるかもしれません。また、type間の関係を考慮しなくてはいけなくなるの

                                                                              • テストケースを動的に生成してJUnitで実行する | DevelopersIO

                                                                                AWSチームに参画して2ヶ月ほど経ちました。ところが、AWSの構築などにはあまり関わらず、ひたすらAWSに関連するプロダクトの開発を行う毎日です。そんな折、ボスより次のようなリクエストをいただきました。 ユーザが参照できない情報について、参照できないことを検証して欲しい ・・・「出来ないことの検証」です。 「出来ることの検証」であれば、その例をテストケースとして記述してテストを実行すれば検証出来ます。しかし、出来ないことを証明することは非常に困難です。ただ、情報は有限なんで、総当たりにでもやればできるかもしれません。 !? システムのインフラは当然のようにAWSです。テストのためのリソースが足りなければ増やせばいいじゃないですか。時間がかかるならば並列化すればいいじゃないですか。テストの時だけ増やせばいいんです。 ならば、総当たりでテストしよう という方針になりました。そして、ブログのネタ

                                                                                  テストケースを動的に生成してJUnitで実行する | DevelopersIO
                                                                                • EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して

                                                                                  十年一昔といいますが、文字通り一昔前の書籍ではJ2EEのEJBコンポーネントはプロセスが分散化されたリモート呼び出しにより処理を行う分散コンポーネントとして説明されています。そして、残念ながら現状Java EE関連の日本語の書籍はこうした古い時代に書かれたものがほとんどとなっています。それゆえ、 開発効率がきわめて悪い 実行性能が悪い*1 仕様がきわめて複雑で理解が大変 といった悪いイメージが定着してしまっているのではないかと思います。しかしながら、最新バージョンのJava EE6では、Spring、Guice、SeamなどのOSSの軽量コンテナのアイデアを取り込むことにより、以前とは比較にならないくらい開発効率が改善されているという事実があります。 ここでは、Hello WorldのEJBの書き方を以前の古いバージョンから順次振り返りながら比較してみることで、EJBのプログラミングモデル

                                                                                    EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して