「helloworld」を含む日記 RSS

はてなキーワード: helloworldとは

2018-03-28

やったー Javahello world かけたよ!

    public static void main(String[] args) {
        System.out.println(helloWorld());
    }

    // https://stackoverflow.com/questions/15182496/why-does-this-code-using-random-strings-print-hello-world
    private static String helloWorld() {
        return IntStream.of(-229985452, -147909649)
                        .mapToObj(Random::new)
                        .map(ran -> IntStream.generate(() -> ran.nextInt(27))
                                             .takeWhile(k -> k != 0)
                                             .map(k -> k + '`')
                                             .collect(StringBuilder::new,
                                                      StringBuilder::appendCodePoint,
                                                      StringBuilder::append))                 
                        .collect(Collectors.joining(" "));
    }

StringBuilder で文字列化してるところがなんとも野暮ったい感じなんだけどどうにかならないかな?

# スーパー pre だと > が > に変換されて見にくいので修正しました (面倒くさいなあ、もう)

2016-11-20

大多数のプログラマは…

IT業界に努めてもうそろそろ二桁年。

そこそこの企業特にWeb系で渡り歩いた経験から真実を書こう。

一般的プログラマと呼ばれる人たちは

はっきり言う、ほとんどのプログラマ自称する人間の 9 割はコーダーである

言われたものを作る事はできるが、それ以外何も出来ないと言って過言ではなく、何もしない。

そんな驚きの生体をここに晒していく。

一般的コーダー自称プログラマ)は、アプリケーションの基盤が作れない

標準化と呼ばれるプロセスで、プログラマ環境設計、組み合わせ、開発プラットフォームセットアップ、開発環境の構築手順作成、開発手順の作成必要技術考察を行う。

なぜそうなったのかは知らないが、一般的にそうなっている。

その環境に浸っているせいか、彼らはゼロベースものを作ることが出来ない。

彼らにできるのは HelloWorldコマンドプロンプトで表示するプログラム程度の事しか出来ない。

複数ソースの連結、ライブラリの読み込み、サーバへのデプロイ、どれも手動で出来ないのだ。

一般的コーダー自称プログラマ)は、保守性を考えない

彼らは自分に任されたものを動かせればタスクが終了する。

逆にそれ以外のこと、コードの読みやすさや、クローン率の低減、メソッドコメント記載などの保守に関わることをしない。

それは彼らにとって「必要ない無駄作業」としか考えないのだ。

早く仕上げるためなら、似たような動いてる箇所から、よく読みもせずにコピペを行う。

そして彼らは、作るより運用する期間の方が遥かに長くて、その間に修正地獄を見るという簡単論理に気づかない。

…何度味わっても気づかない。

一般的コーダー自称プログラマ)は、勉強しない。

一般的プログラマコーダー)は勉強をしない。

たとえするとしても、業務時間中に業務で使ってる技術ピンポイント学習するだけだ。

勉強会は確かに多い。「.dits」何かがいい例だ。

だが、プログラマと呼ばれる人間の母数に比べれば微々たるものだ。

彼らは言う「土日にまで仕事してられるか」「勉強会行ってるの?馬鹿か?」

あえて言おう、馬鹿は彼らだ。

一般的コーダー自称プログラマ)は、自分の使う道具がわからない

Web仕事をするならIDE統合開発環境エディタコンパイルテストデバッグ実行などを画面から行えるツール)はほとんど必須エディタで済ませる事も出来なくはない)が、彼らは状況に応じたセットアップができない。

たとえば「Mavenプロジェクト管理ツール)、checkstyleコーディング規約チェック)、editorconfig(改行、インデント文字コード設定)」が入っていたとする。

するとEclipseなどを使うとして

  1. どのプラグインを入れればいいか調べられない
  2. どうやってプロジェクトを取り込めばいいかからない
  3. プラグインを入れても設定方法がわからない(IDEデフォルト設定と、プロジェクト内の設定の違いを認識できない)
  4. IDE の設定画面がわからない

マニュアルチュートリアルを用意しないと、道具の使用もままならない。

一般的コーダー自称プログラマ)は、テストコードで書かない

テストをなるべく機械やらせようということの利点が理解できない。

コンパイルして動かして確かめればいいと本気で考えている。

そのために、何十回もコンパイルデプロイアクセスログインの手順を何度も繰り返す。

関連する他の修正を行うたびに繰り返す…。

そしてやっと動くとひと仕事終えたと満足感に浸る。

一般的コーダー自称プログラマ)は、プライドが無いか、変なプライドを持っている

ラリー・ウォールというとある有名な人物Perl開発者にしてC言語ハッカー)がいる。

彼の言う三大美徳に「傲慢」がある。

これは、自分の作るもの完璧なのだ、だから完璧であるように出来る限りのことをするという美徳である

一般的コーダー自称プログラマ)は、このプライドはない。

彼らは金のために嫌々動くだけのものを作るのだ、動きさえすれば報酬は変わらない、よって当然完璧かどうかなどどうでもいい。

同じ金でより良いものを作るのではない、要件だけ満たせばよいのだ。

変なプライドを持つコーダーは、それで運良く成功すると、自分知識は正しい、自分技術は十分なのだと考えている。

こういう人間は、プライドの無いコーダーよりたちが悪く、うまくいかないと他人環境のせいにする。

そして調べず周囲を苛立たせるのだ。

おわりに

土日に自ら勉強会に行くプログラマや、それこそ 50 人以下などという会社であればこうした事はあまりない(んじゃないかと思う。)彼らは自分でなんでもやらないといけないからだ。

だが、大企業に飼われる子飼い企業派遣(そもそも人手のみを求められる企業)、100人以上の企業では、役割分担に伴いこうした状況が多々発生する。

だが役10年、エンジニアを見てきた結果は変わらない。現実問題こうなのだ、こんな人間が大多数なのだ

人の多い企業ほど考えたほうがいい、それでより良いものが生まれるのかと。

必要とされる技術だけを叩き込んで金にしたいと言うのは分からなくないが、基本姿勢思想はどうなんだと。

経営者マネージャーよ、あなた方の言う「最適化」とは現場が日々考え行っている最適化か?人員最適化だけを行って、生産性が伸び悩んでいないか

そのあたりは考えた方がいい。

2016-03-27

http://anond.hatelabo.jp/20160327004418

重度の知的障害じゃなくてもHelloWorldできない奴なんていっぱいいるだろ。

ググッたって開発環境作るところから手とり足とりな記事を探せるとは限らない。

わかってるやつならJavaScriptで簡単だけど、そこまでだどりつけないやつはいる。

2015-05-21

スマホゲームを作りたくなって、cocos2dxというライブラリを使うことにしたのだけど、環境構築がむずかしかった。

解説書を三冊買って、本の手順どおりにやったのだけど、うまく動かない。

三冊のうち二冊は今年でた本なのに、もう情報が古くなってるのな。

AndroidサイトからEclipseダウンロードしろって書いてあるけど、もうAndroidStudioに移行していて、Eclipseダウンロードできなくなってるの。

Eclipse本家サイトからダウンロードして、SDKプラグインを入れたらいいのかなとか思っていろいろ試したけどどうしても実行できない。

で、結局Eclipseなくてもビルド&実行できると気づいて、開発はxcodeですることにした。

ホリエモンプログラムHelloWOrldにたどり着くまでが難しくてあとは簡単とか言ってたけど、まじそうだな。

2011-05-30

http://anond.hatelabo.jp/20110530004826

Javaだけど。

class HelloWorld {
  public static void main(String args[])
  {
    System.out.println("Hellp World");
  }
}

typoバグの一種:p

2008-09-13

http://anond.hatelabo.jp/20080913155624

自分が手に入れられなかった物を 酸っぱいブドウといってけなす。

それをみて、『手に入れられなかった』大多数が、あれは『酸っぱいブドウ』だと言い出す。

数の理論で、いつの間にか、『ブドウは酸っぱいという常識』が出来る。

物理的な現象ではなく、言葉定義とか文化はこれが起きるから恐ろしい。

穴の空いたジーパンがいつの間にかカッコヨクなったり。

文化って本当に変わるよね。

という前置きの上で。学力というのは、記憶力と計算力と調査能力の総和的能力だと思う。

社交力が含まれないので 学者は偏屈とかそういう事も起きえるが、必ずしも真ではないのは、学力と社交力に関連がないから。

昨今大学勉強の場所ではなく、就職チケットとなりがちなので、そういう謝った解釈がなりたちつつあるが正しくない。

特に昨今の大学生記憶力と計算力はあるけど調査能力がなさすぎ。

自分の人生プロデュースするのは、自分の責任なので、大学に入って何をするか?というのは選択の自由ではあるわけですが。

せっかく金を払って入るのですから、大学の設備を使い倒して学力=自分で問題を見つけて、自分で回答を捜して説く能力=調査能力を向上させて欲しい物です。

何のために学校内に高設備とか施設とかがあったりするのか考えようよ!

大学を出たら答えのない問題を解いていく生活が待っているのに 答えは何ですか?と質問してくる奴が多すぎるよ。それこそ学力の中に含まれる探求力がなさ過ぎ。

IT系の大学卒業なのに、HelloWorld書くのが精一杯とか泣けてきます。

というわけで、日本で言う学力という事は 本来 学び取る力の事ですが、 いつのまにか、教えられたことを記憶する力に化け、それが転じて 奴隷になる能力の事を指しがちなのが現代の酸っぱいブドウかと思います。

2008-06-18

Automake

そうです、私がグヌウの信者です。

今日の話題はAutomakeです。

Automakeを使うと、何がうれしいのか。

それは、Makefileを書くのが楽になるからです。

プログラムに新しいソースファイルを追加するときは、

Makefile.amファイル名を追加するだけでよくなります。

Automakeを使うのに最低限必要なファイルは「configure.ac」と「Makefile.am」の二つだけです。

あとは、「autoreconf -i」とかしておけば、必要なファイルは全て自動で揃いますので心配ありません。

手順1:以下の三つのファイルを同じディレクトリに作ります

Makefile.am

# プログラム名とそのインストールディレクトリ(ここではbin)の指定
bin_PROGRAMS = helloworld 

# プログラムhelloworldを作るのに必要なファイルの指定
helloworld_SOURCES = helloworld.c

configure.ac

# Autoconf初期化([パッケージ名]、 [バージョン])
AC_INIT([hoge], [1])

# Automake初期化([オプション])
# ( foreignオプションをつけると、NEWSとかREADMEとかを作る必要が無くなる )
AM_INIT_AUTOMAKE([foreign]) 

# 作成するファイル
# ここでは、Makefile.in から、Makefileを生成することを指定
AC_CONFIG_FILES([Makefile])

# C言語ファイルサポートするように設定
# (具体的にどんな意味があるのか分かってない(汗)
AC_PROG_CC


# config.statusや、Makefileを作成する(らしい)
AC_OUTPUT()

helloworld.c

/* これは単なるサンプルプログラム */
#include <stdio.h>
int main() { printf("Hello World!"); }

手順2: autoreconf -iを実行します

手順3: ./configureを実行します

手順4: makeを実行すると、helloworldコンパイルされます。

ワンポイントメモ: 「ターゲットがありません」系のエラーが出たら、Makefile.am記述ミスが考えられます。見直しをしてから、./configureからやり直すと、幸せになれるかもしれません。

2007-09-16

[]1日目

コンテストルールを確認する。

http://rails.drecom.jp/

とりたてて特殊なルールも何をみるというポイントもかかれていないようだ。

協賛企業をみても系列一色だ。

求人情報が併載されているところをみると、もしかしたらそちらがメインコンテストなのかもしれない。

締め切りは25日。これまでにサービスインをさせなければいけないらしい。

逆算しても23日にはローカル鯖で動いている必要があるだろう。

23日は誕生日だ。よって作業をするつもりは殆どない。

でも、誰も相手をしてくれない気がするので作業をしてしまうかもしれない。

23日までまる5日しかない。

唯一、ドリコム賞というのがComet/ShootingStarを使うことを前提としている。

Cometメインに据えてあと5日でどうこするのは見通しが立たない。

余裕があったら追ってみよう。

積読していた本をひっぱりだす。

ISBN:4798013951

RailsDL先も書いていないので閉じる。

なにがなんだかわからないがRails言うからにはRailsが必要なのだろう。

検索してあれこれをダウンロードしてみる。

初期設定でまとめられたのないかなと再度検索。

Windows環境での Ruby on Rails (開発環境構築)

http://www.syssupo.co.jp/net_hal/ror.html

こういうのをみつけた。便利!!感謝!!最初からここから辿ればよかった。

httpd.confいじくってapache再起動掛けたらスタートできない。

困った。

見直してみたらRubyForApacheのインスコでしくじったよう。

再度設定。

HelloWorldをさっそく。

コマンドラインなら成功するのだが、rbファイルを配置してのブラウザベースの起動のさせかたがわからない。

ruby -e'puts("Hello The World!!WRyyy!!!")'

あ、、なんだ、拡張子をrbで作ったのがいけないのか。拡張子cgiにしたら動いた。

#!ruby
puts("Hello,The world!")

RailsHello, world!はなにやらさらに違うようだ。

Railsというのはなにやらスケルトンフレームワークなのだろうか?

http://blog.codezine.jp/editor/2007/06/ruby_on_railshello_world_1.php

ここを見ながら自分の環境にあうように書いてみたがうまくいかなかった。

開発環境もまだきめていなかったので、Eclipseをつかおうかな。何かお奨めのある?

とりあえず今日はここまで。

明日は・・・

3000系テストサーバー意味とか構成がさっぱりわからないのでそこら辺を弄ってみるのと、実際にRailsを触ってみるところ。あと開発環境構築かな。

http://blog.codezine.jp/editor/2007/06/aptana_eclipseruby_on_rails_1.php

ここみながら、aptana関連をなにやらわからないままいれて見たのだけど、

要求された操作は現在の構成には無効であるため、実行できません。 詳しくは詳細を参照してください。

Aptana Editor Infrastructure (0.2.9.16696) 必須: プラグイン "org.eclipse.core.filesystem"。

Ruby Development Tools (0.9.0.707021729NGT) 必須: プラグイン "org.eclipse.core.filesystem"。

filesystemプラグインがないってどういうこっちゃ。

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/20070702/eclipse-rcp-europa-win32.zip&r=1&protocol=http

これかな?

後で入れてみよう。

おなかがすいたので今日はここまで!

2007-09-14

初めてのJavaScript - HTMLファイル

<html><head&gt;<title>Hello JavaScript World!</title><style type="text/css">
<!--
  .select {
    margin-left: 30px;
    padding: 0 2px;
    width: 6em;
    border: dotted 1px;
  }
  .select p {
    margin: 2px;
  }
-->
</style></head&gt;<body><script type="text/javascript">
<!--
  // step 1 : output text
  document.write("Hello world!");

  // step 2 : output html
  document.write("<br/><b>Hello javascript world!</b>");

  // step 3 : manipulate DOM
  var p1 = document.createElement("p");
  p1.appendChild(document.createTextNode("Hello DOM world!"));
  document.body.appendChild(p1);

  // step 3 : interactive, using function, event handler
  function solid() {
    this.style.borderStyle="solid";
  }
  var p2 = document.createElement("p");
  p2.appendChild(document.createTextNode("Hello interactive world!"));
  document.body.appendChild(p2);
  p2.addEventListener("click", solid, false); // not solid()

  // step 4 : using object, prototype, closure
  function P(str) {
    this.str = str;
  }
  P.prototype.regist = function(parent){
    this.elem = document.createElement("p");
    this.elem.appendChild(document.createTextNode(this.str));
    parent.appendChild(this.elem);
    var self = this;
    this.elem.addEventListener("click", function(){self.act()}, false);
    // otherwise
    //  this.elem.helloworld = this;
    //  this.elem.addEventListener("click", function(){this.helloworld.act()}, false);
    // bad way
    //  this.elem.addEventListener("click", this.act, false);
    //  this.elem.addEventListener("click", function(){this.act()}, false);
  };
  P.prototype.act = function(){};

  var p3 = new P("Hello prototype world!");
  p3.act = function(){
    if (this.elem.style.borderStyle == ""){
      this.elem.style.borderStyle = "solid";
    } else {
      this.elem.style.borderStyle = "";
    }
  };
  p3.regist(document.body);

  // step 5 : inheritance
  function SELECT(parent, str) {
    this.str = str;
    this.regist(parent);
  }
  SELECT.prototype = new P();
  SELECT.prototype.act = function(){
    p4.elem.style.borderStyle = this.str;
    p4.div.style.display = "none";
  }

  var p4 = new P("Hello world!");
  p4.div = document.createElement("div");
  p4.div.className = "select";
  p4.div.style.display = "none";
  p4.select = [
    new SELECT(p4.div, "none"),
    new SELECT(p4.div, "dotted"),
    new SELECT(p4.div, "solid")
  ];
  p4.act = function(){
    p4.div.style.display = "block";
  };
  p4.regist(document.body);
  document.body.appendChild(p4.div);

//-->
</script></body></html>
ログイン ユーザー登録
ようこそ ゲスト さん