順次、選択、そして繰り返し

プログラミングのことやITのこと、たまに演劇のことも書きます。

ズンドコチェック作ってみた

なんかズンドコブームが来ているみたいなので
作ってみた。

ズンドコキヨシまとめ - Qiita

ソース

package test.java;

import java.util.ArrayList;
import java.util.List;

/**
 * ズンドコチェック
 *
 */
public class ZunDokoCheck {

	// 定数
	private static final String DOKO = "ドコ";
	private static final String ZUN = "ズン";
	private static final String KIYOSHI = "キ・ヨ・シ";

	// ズンドコ配列
	private static String[] ZUN_DOKO_ARRAY = { ZUN, DOKO };

	public static void main(String[] args) {

		List<String> resultZunDoko = new ArrayList<String>();

		//ズンドコカウント
		int zunDokoCnt = 0;

		//ズンドコループ
		while (true) {

			String str = ZUN_DOKO_ARRAY[(int) (Math.random() * 2)];
			System.out.println(str);
			resultZunDoko.add(str);

			// 4未満だったら"ズンチェック"
			if (zunDokoCnt < 4) {
				if (ZUN.equals(resultZunDoko.get(zunDokoCnt))) {
					zunDokoCnt++;
				} else {
					zunDokoCnt = 0;
					resultZunDoko.clear();
				}

				// "ドコチェック"
			} else {
				if (DOKO.equals(resultZunDoko.get(zunDokoCnt))) {
					break;
				} else {
					resultZunDoko.remove(zunDokoCnt);
				}

			}
		}

		// "キ・ヨ・シ"出力
		System.out.println("-----------------");

		for (String str : resultZunDoko) {
			System.out.print(str);
		}

		System.out.println();
		System.out.println(KIYOSHI);

	}

}

出力イメージ

f:id:sndstudy:20160317213733j:plain

ABC2016Springに参加してきた

ABC2016Springに参加してきたので
メモ程度にまとめてみた。(寝過ごしたので午後からの参加)


今年から常識になる、新しいモバイル Web アプリの作り方
浅井智也 Mozilla Japan モバイル&エコシステムマネージャ

Modern Mobile Web Apps - SSSSLIDEModern Mobile Web Apps


新規ユーザの獲得にはWebが多い
既存ユーザの維持はアプリが多い

Webアプリができなかったことを実現する
ProgressiveWebApps
→アプリでできていることをWebでできるようにする
 プッシュ通知など


Android Wear アプリ開発入門
神原 健一 NTTソフトウェア株式会社テクニカルプロフェッショナル(Android)

[ABC2016S]Android Wear アプリ開発入門

Wearアプリ作成の大事なポイント
1:通知
2:音声入力
3:アプリ

各種センサー
watch face

スマホの操作結果を
ウェアに送る
複数のウェアブル端末

必要なもの
開発環境
スマホ
エミュレーター


個人で30本スマホアプリをリリースした時のコツ5つ

個人で30本スマホアプリリリースしたときのコツ5つを紹介してみるよ(LT編

シンプルイズザベスト
3日以内を制限時間とする(ドキュメントもいらない)
運用に負担がかかるものはやらない(通信をする場合はAPI
アプリ一本にこだわりすぎない
デフォルトを愛する(自動生成したファイルをあまりカスタマイズしない)


話は聞けなかったけどスライドだけ↓
ABC2016Spring Androidアプリ実装アンチパターン(暫定)
Google TensorFlowとAndroidが繋がる未来 // Speaker Deck

Android Bazaar Conference 2016 Spring 基調講演 まとめ (その1) - Qiita


Android N の話があまり聞けなかったのが残念。
それにしてもABCの開催直前にNが発表されるとは。

原価計算 用語まとめ

  • 直接労務費(直労)

製品の組み立てや加工など、製造にかかわる
作業員の労務費

求め方は
直接労務費 = 直接作業時間 × 賃率

賃率は1時間当たりのコストで
直接作業者の賃金 ÷ 直接作業時間 = 直接労務費の賃率

  • 間接労務費

製品の品質管理や生産管理など製造に間接的にかかわる作業員の労務費

  • 外注費 (業務委託費)

会社の業務の一部をアウトソーシングした時。または請負に出した時の
費用のこと。

具体例はアウトソーシングした費用・人材派遣会社への支払い
会社内の事務計算を計算センターに委託した時の費用など

  • 直接材料費(直材)

製品に直接使用される部品や材料の費用

  • 間接材料費

消耗工具備品費など製造に間接的にかかわる材料費

  • 製造間接費

間接材料費・間接労務費の他、事務消耗品・光熱費などからなるもの

販売費は営業の給料や広告宣伝費など営業活動に関係がある経費のこと
一般管理費は役員や事務職員の人件費・家賃光熱費といった販売に関係ない
経費のこと

売上高から売上原価を引いたもの

工事の進捗度によって見積額を分割した金額を計上する方法


【参考】
工事進行基準の会計処理方法について

売上総利益 - Wikipedia

販売費及び一般管理費とは(はんばいひおよびいっぱんかんりひとは)

製造業の原価計算で出てくる「直接費」「間接費」について詳しく知りたい! | 会計業務の役立つ小ネタ|経理キャラナビ!

割戻と割引|2級商業簿記無料講座

外注費 - [経済]簿記勘定科目一覧表(用語集)

労務費の計算方法〜原価管理の知識




第3回CodeIQ感謝祭「CodeIQ春のエンジニアまつり」に参加してきた

第3回CodeIQ感謝祭「CodeIQ春のエンジニアまつり」に
参加してきたので、ためになったことを色々とまとめてみる。

基調講演(1) Increments及川卓也さん
『情報共有について』

後で調べる用語達↓
ナレッジマネッジメント
SECIモデル
CSCW

社内だけではなく、社外にも知識や情報をアウトプット
する必要がある。
アウトプットすることで情報が集まってくるため、
情報や知識を自分だけで抱え込まない。


プレゼン塾 澤円さん

ビジョン  何のためのプレゼンか
核     何を伝えるプレゼンか
話術  どう話せばいいか
↑上記の3つがプレゼンで大切なこと

ビジョンとは究極の理想の形 変更不可
→プレゼン後、聴衆にどう思ってもらいたいか 行動を促せるかどうか
また、プレゼンは未来のことを書くこと

核は聴衆がプレゼンを聞いて他の人に話したくなるものでないといけない

スライド作成のポイント
スライド1枚にテーマ1つ説明3つ
2つ以上のテーマを入れない
アニメーションは控えめに(あくまでも視点誘導で使用する 使用するパターンを絞る)

色使いもシンプルにする
1つにつき3色まで

文字を閉じ込める
図形の中に文字を入れる

改行の位置も大事

視点誘導は左から右 上から下

画像は英語で検索する
画像からイメージを膨らませる

話術について
よく使う言い回し
ちなみに
基本的に
要するに
逆に
→使い方を間違えると逆効果

話し方のクセを気にする

話し方のバリエーションを増やす
例えば
簡単に
→シンプルに 少ないステップで この画面だけで

使用されたスライド
http://bit.ly/20160305sawaMicrosoft OneDrive - Access files anywhere. Create docs with free Office Online.



基調講演(2) Jason Danielsonさん
テーマ:「考える力」

言われたことをやっていると答えたらそれはまずい
なぜやっているかを説明できないとやっている作業は意味がない

プログラミングについての話は
少なかったけど、エンジニアとして今後どうする必要があるのか
という話が聞けただけでもよかった。

それにしても厚切りジェイソンの自己紹介が長かったな・・・(20分)

JavaScriptのエラー その1

去年の冬コミで買ったものがある。

JavaScriptで 実行時エラーを起こす 100+の技法

JavaScriptのエラーだけを延々と書き綴られた本である。

確かにエラーを知ることでデバックの効率や言語に対する
知識がつくと思い、即購入。

そして、今日から少しずつ読んで試していこうと思う。

今日は

  1. 投げっぱなしスロー
  2. 未定義
  3. 参照

の3つを試してみる。

1.投げっぱなしスロー

エラーをスローしたはいいが、キャッチしなかった場合に
発生するエラー。

16行目でthrowしているがcatchしていないので、エラーとなる。
なので、下記のようにcatchしてあげれば良い

2.未定義

定義していない変数を使用するとエラー

3.参照

nullやundefinedにはpropertyが無いため、
参照できずエラーになる


とりあえず例外処理の方法だけでも知れて良かった。

Eclipseのショートカットキー(メモ)

新人研修でドヤ顔で披露したらウケたEclipseのショートカット集 - Qiita

ほんとによく使うEclipseの機能・ショートカットまとめ - Qiita

Eclipseを入れたら必ずやる設定とよく使うショートカット - Qiita

JSONとJavaScriptオブジェクトの違い

勘違いしてたことだったのでメモ。

サーバー(Java)でMap型のオブジェクトをGSONやJSONICJSONに変換し、
そのデータをクライアント(JavaScript)に渡したときに、JSON.parse()することにある疑問が浮かんだ。

あれ?サーバー側でJSON形式にしてるんだからパースする必要あるの?という疑問だ。


今までのJSONに対するイメージ↓

連想配列みたいな形でデータを表現する(JavaScriptのオブジェクトと同じ)

調べてみたら、全然違った。

{key:'value'}

↑これはオブジェクト。

{'key':'value'}

↑これもオブジェクト。

{"key":'value'}

↑これもオブジェクト。

{'key':"value"}

↑これもオブジェクト。

{"key":"value"}

これがJSON(オブジェクトでもある)

JSONはキー値がダブルクォーテーションで囲われていないといけないということ。
そしてデータ部分が文字列の場合はデータ部分もダブルクォーテーションで
囲わなければいけないということ。
(シングルクォーテーションではJSONで文字列を表せない。
しかし、数値型やboolean型は囲わない)

なので、これからはJSON
連想配列みたいな形でデータを表現する(JavaScriptのオブジェクトと同じ)
※キー値がダブルクォーテーションで囲われている必要がある。
さらにデータ部が文字列の場合は文字列にもダブルクォーテーションが必要。

と認識していく。


そう考えるとJavaScriptのオブジェクトとJSONの変換にJSON.parse()とJSON.stringify()の意味がわかってきた。