- 1. 昨日までJavaJavaしてた人がScalaを触ることになったときのためのメモ
- 2. JavaScriptからJavaへの道
- 3. Ruby と Perl と Java と Python で解く AtCoder ABC 165 D 床関数
- 4. 【メモ】Macbook Proにインストールしたもの
- 5. SIerフロントエンド・ディベロッパーのWindows10セットアップ
- 6. Java学習_継承関係にある2つのクラスで同名のフィールドと同名のメソッドがあった時の挙動
- 7. VirtualBox + Ubuntu(Xfce4)でJavaの開発環境構築(個人メモ)
- 8. 技術面接に使える質問を作ってみた
- 9. Apache FreeMarker 備忘録
- 10. [Notepad++] C言語/Java コンパイル&実行環境の構築
- 11. Ruby と Perl と Java と Python で解く AtCoder ARC 066 C 繰返し二乗法 ハッシュ
- 12. Android 9・10でBroadcastReceiverを使った着信番号取得がうまくいかない時のメモ
- 13. (エラー対応)Spring : 起動時にエラー出力 java.lang.ClassNotFoundException: org/springframework/context/support/LiveBeansView
- 14. JavaBronzeに出てくる「変なJava」と忘れがちなJava知識の復習
- 15. Spring Initializr で作成したプロジェクトが生成する WAR ファイルの中身を調べる
- 16. JavaでJanusGraphを組み込む方法
- 17. 今更だけどTDD導入(成功編)
- 18. Ubuntuにknowledge(wiki)を導入
- 19. 今更だけどTDD導入(失敗編)
- 20. Ruby と Perl と Java と Python で解く AtCoder diverta 2019 Programming Contest C
昨日までJavaJavaしてた人がScalaを触ることになったときのためのメモ
Scalaを触ってみて調べた点。
今後も追記予定。
ど初心者なので、指摘等頂けると喜びます。## 検証環境
* Windows10
* IntelliJ IDEA : 2019.1.2
* Scala : 2.12.7
* SBT : 1.3.10## Scalaとは
>Scala(スカラ、SKAH-lah[2])はオブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語である。名前の「Scala」は英語の「scalable language」に由来するものである(Wikipediaより)
[Scala – Wikipedia](https://ja.wikipedia.org/wiki/Scala)
## 開発環境作成
IntelliJ IDEA を使用する。
以下に導入方法と簡単なチュートリアルがある。* [Intellij で Scala を始める | Scala Documentation](https://docs.scala-lang.org/ja/getting-started/intellij-track/getting-
JavaScriptからJavaへの道
ひょんなことからJavaScriptエンジニア(JavaScript経験者)がJavaをやることになった際、ぶつかった問題点・注意点・苦労などを備忘録として残しています。
基本スタンスとしては、JavaScriptとJavaの違いをJavaScript側から記載しています。#環境構築の違い
##JavaScriptの場合
まず入り口と言いますか敷居が違います。
JavaScript(以下、JSと省略)なら、ブラウザとメモ帳(エディタ)さえあればOKです。
いずれも標準装備で、JSを試すだけならブラウザのコンソール上で叩けばいいので、メモ帳すらいらないです。
これは結局のところJSは、もともとHTMLにアクションを加えたいがためにブラウザ内に処理系を載せた、インタプリタ方式のスクリプト言語であるという特徴に由来するからです。
##Javaの場合
一方のJavaはコンパイラ方式のプログラミング言語であり、標準装備だけでは動かせません。
JVM上で動くのでJRE/JDKを入れます。入れ方はネットでいくらでも見つかります。
注意点としては、「パスを通しておく」ぐらいでしょうか。#型の違
Ruby と Perl と Java と Python で解く AtCoder ABC 165 D 床関数
# はじめに
AtCoder Beginner Contest 165 が開催されました。
その D問題でちょっとだけ嵌りましたので、~~復讐~~復習したいと思います。
# 今回のお題
*[AtCoder Beginner Contest 165 D – Floor Function](https://atcoder.jp/contests/abc165/tasks/abc165_d)*
Difficulty: 505今回のテーマ、床関数
# Ruby
入力例1をエクセル先生で確認します。
丁度 **7** で周期していることが分かります。
よくよく考えれば、**7** で割っているのでそうなりますので、n が b – 1 以上の場
【メモ】Macbook Proにインストールしたもの
# Mac向け開発環境構築メモ
アレなにでいれたっけ?と忘れる事があるので備忘録的に残しておく
今の所Java屋さんな環境構築+Dockerベース
(主にフロントエンド技術関連はDocker)* Macbook Pro 2018
* i5 2.3GHz
* メモリ16GB# Java
[Amazon Corretto 8 & 11](https://aws.amazon.com/jp/corretto/)
インストールガイドのページの通りにインストール
(こだわりがなければ後述のbrewでインストールでも可)予めインストールされたバージョンを確認
“`sh
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
11.0.3, x86_64: “Amazon Corretto 11” /Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home
1.8.0_252, x86_64:
SIerフロントエンド・ディベロッパーのWindows10セットアップ
#はじめに
SIer所属のエンタープライズ系フロントエンド・ディベロッパーがWindows10端末を1からセットアップすることにしたため、SIer仕様の端末を作るために最低限必要なものをメモしておきました。
#ブラウザー
一通り入れましょう– Firefox
– https://www.mozilla.org/ja/firefox/
– Chrome
– https://www.google.com/intl/ja_jp/chrome/
– Edge#便利ツール
– Office 365
– 7-zip
– https://sevenzip.osdn.jp/
– Pleiadesが7-zipでないと解凍できない事に、、、
– Sakura Editor
– https://sakura-editor.github.io/
– docker#ソースコード管理
– git
– https://git-scm.com/
– その後、sshコマンドで公開鍵を作成しましょう#Java開発
– Java
– O
Java学習_継承関係にある2つのクラスで同名のフィールドと同名のメソッドがあった時の挙動
# 前置き
JavaSilver11の資格勉強の中で学んだ内容を備忘録として残します。
継承関係にある2つのクラスで同名のフィールドと同名のメソッドがあった時の挙動の理解が難しかったので、検証しながら学習をしてみました。
# 学習の内容
* フィールドはインスタンス化した時の変数の型によって参照先が変わる。
* メソッドの呼び出しはインスタンス化したクラスによって呼び出し先が変わる。# 検証1:インスタンス化=サブクラス、変数の型=スーパークラス
サブクラスのインスタンスを生成し、それをスーパークラス型の変数にセットして呼び出した際の挙動を検証。
## 検証ソース
“`java:Astudyクラス
class Astudy {
String val = “A”;void print() {
System.out.println(“Astudyの出力->” + val);
}
}
“`
“`java:Bstudyクラス
class Bstudy extends Astudy {
String val = “B”;void print() {
VirtualBox + Ubuntu(Xfce4)でJavaの開発環境構築(個人メモ)
# まえがき
ホストOSではやりたくないアプリの検証や、壊しても良いLinux環境をひとつもっておくと何かといじくり回すのに便利なので用意しておく。
VirtualBoxの良いところは、ovaファイルにエクスポートしておけば、整備済みの開発環境を配ることができる。Xfce4はUbuntuのデスクトップ環境の中で比較的軽いので採用。# ゴール
UbuntuでJavaでのWebアプリケーション開発ができるような状態を目指します。# 前提:筆者の環境
– MacBook Pro (Retina, 15-inch, Mid 2015)
– OS:MacOS Catalina 10.15.4
– プロセッサ:2.2 GHz クアッドコアIntel Core i7
– メモリ:16 GB 1600 MHz DDR3
– グラフィックス:Intel Iris Pro 1536 MB# 環境構築手順
## VirtualBoxのDL
https://www.virtualbox.org/wiki/Downloads
※今回はVirtualBox 6.1.6 を利用## Ubuntuイメ
技術面接に使える質問を作ってみた
*質問は(今回使用したJavaに限らずPythonほか)オブジェクト指向言語をベースに考えられています。
#対象読者
エンジニア教育担当者向けの技術面接を行いたいが、良い質問が思い浮かばない技術面接担当者#対象ポジション
– 開発チームの生産性向上を図るテックリード
– プログラミング教育やコードレビューも担当するソフトウェア開発兼教育担当者#背景
– インターフェースがもたらす利益を分からずに書かれたインターフェースがその利益をもたらすことはない
– 言語仕様のキモを理解せずに書かれたプログラムにその良さが反映されることはない#質問の目的
開発効率や保守効率を意識した設計ができるか、コードを前に技術者と設計やコード改善のための議論ができるかの確認#質問その1
1. クラスを抽象化することによって得られる利益はなんですか?
2. 言語仕様として抽象クラスやインターフェースは何のために存在しますか?
3. クラスが具象ではなく抽象に依存すべきなのはなぜですか?
4. ポリモーフィズムの仕様とその目的について説明してください#質問その2
1. 以下のコードの問題点と
Apache FreeMarker 備忘録
# ディレクティブ
## if ディレクティブ
“`
<#if var1 == "a">
a です。
<#elseif var2 >= 100>
100以上
<#else>
c
#if>
“`
[Notepad++] C言語/Java コンパイル&実行環境の構築
## 事前準備
#### コンパイラを用意し、使い方を調べる
– この記事はborlandを使用する“`
bcc32 -n出力パス inputFile.c
“`
`-n`のうしろに`スペース`を入れないように#### 文字コード
– プログラムのソースファイルと、これから作成するバッチファイルの文字コードは、こちらではShift-JISに統一している
– もし文字化けが出た場合、文字コードを変えてみてください## 手順
#### 1. Notepad++プラグインのNppExecをインストール
– 複数行のコマンドを一気に実行できるプラグイン。
– それらのコマンドをスクリプトのように管理できる。
– スクリプトをメニューアイテム/ホットキー候補に作り、Notepad++に提供。
– インストールには、プラグインメニュー>プラグイン管理>チェック>インストール#### 2. バッチファイルを用意する
– 外部コマンドプロンプトで、コンパイル済みEXEファイルを実行
– 実行終了時に自動的にpauseをかけて、ウィンドウを保持
– 作成フォルダはどこでも良い“`
Ruby と Perl と Java と Python で解く AtCoder ARC 066 C 繰返し二乗法 ハッシュ
# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。# 今回のお題
*[AtCoder Regular Contest 066 C – Lining Up]()*
Difficulty: 927今回のテーマ、繰返し二乗法 と ハッシュ
# Ruby
これは左右対称な問題ですので、仮にハッシュに代入した場合、奇数名では`2221222`、偶数名では`22222222`の様なvalues配列になると想定されます。
それ以外の場合は、並び方がないと判断できます。また、以前投稿しました *[Ruby と Perl と Java と Python で解く AtCoder ATC 002 B](https://qiita.com/superrino130/items/adbb485637e45a024fa1)
Android 9・10でBroadcastReceiverを使った着信番号取得がうまくいかない時のメモ
BroadcastReceiverを使った着信番号の取得が、なかなかうまくいかなかったので解決方法を書いておきます。
# :checkered_flag: やりたいこと
電話がかかってきたときに、かかってきた番号を取得したい。# :pencil2: 電話の状態を取得するReceiver
まず、検索してよく書いてあったコードで試しました。“`xml:Android.Manifest.xml
(エラー対応)Spring : 起動時にエラー出力 java.lang.ClassNotFoundException: org/springframework/context/support/LiveBeansView
## はじめに
– Spring開発で起こったエラー対応ログ
## 環境
– 端末
– windows
– eclipse
– java11
– gradle5.5.1– その他
– SpringInitialzrで初期設定したプロジェクトをローカルで起動## 事象
– Springアプリ起動時に以下のようなエラーが出力される
“`java
2020-05-02 14:19:44.678 DEBUG 11552 — [1)-192.168.99.1] javax.management.mbeanserver : Exception calling isInstanceOf
java.lang.ClassNotFoundException: org/springframework/context/support/LiveBeansView
at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
at java.base/ja
JavaBronzeに出てくる「変なJava」と忘れがちなJava知識の復習
入門書に無く、しかも調べにくい、見慣れないJava知識について、初心者なりに調べたのでまとめます。
# はじめに
昨年6月にスイッチが入り、知識ほぼ0から昨年10月の基本情報処理技術者に合格しました。その際にJavaの入門書も触れていて、Javaも比較的得点していたので
「オブジェクト指向もばっちり!春に会社からJavaBronze受けさせられるらしいけど、余裕でしょ!」
と調子乗ったら、模擬試験で50%しか取れなくて反省してます。どう考えても自分の復習不足。
(でも仕方ないよね、全然知らないJava知識まで出たし…)
ということで、Javaの復習も兼ねて、入門書の簡単なおさらいと、模擬試験で知らなかったJavaについてまとめます。
# 参考
特に記載のない情報については、以下を参考にしました。– 入門書
– [スッキリわかるJava入門 第2版](https://www.amazon.co.jp/dp/4295007803)
– JavaBronzeの本
– [オラクル認定資格教科書 Javaプログラマ Bronze SE 7/8](https
Spring Initializr で作成したプロジェクトが生成する WAR ファイルの中身を調べる
## 概要
– [Spring Initializr](https://start.spring.io/) で Gradle と Maven のプロジェクトを作成し、生成した WAR ファイルの中身をしらべる
## Spring Initializr で指定する項目
– Java 11 + Spring Boot 2.2.6
– Packaging は WAR を指定
– Dependencies に Spring Web を追加## プロジェクトファイル構成
Spring Initializr で作成したプロジェクトからテストコード等を削って以下のファイル構成にする。
### Gradle
“`
├── build.gradle
├── settings.gradle
└── src
└── main
├── java
│ └── com
│ └── example
│ ├── MyappApplication.java
│
JavaでJanusGraphを組み込む方法
JanusGraphはPythonやJavascriptなど、様々な言語用のドライバを提供しており、それらの言語からGremlinサーバーにアクセスできるようになっているが、DB自体を組み込んだ(Embeddedな)アプリケーションを作ろうと思った場合、選択肢は事実上JavaとGroovyに限られる。
今回はJavaでJanusGraph(with Berkeley DB)を組み込んだアプリケーションの作り方を説明する。
![JanusGraph-article01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235258/d87c9305-b758-5f90-d8cd-883b7a05f614.png)
DBの設定と永続化データはそれぞれディレクトリに保存されるが、それ以外は単体で完結するシンプルなアプリ構成。
## JDKのインストールと環境変数
JanusGraphを動かすだけならJREだけでも良かったが、開発を行うのであればJDKが必要になる。バージョンはJava 8となる。Orac
今更だけどTDD導入(成功編)
# 前回の話
>今更だけどTDD導入(失敗編)
https://qiita.com/ilohas20983/items/b1ca1edbb2ad600a2b9c# いろいろ調べて考えたこと
### Q1. 馴染ませるために必要なことって?
TDDをプロジェクトに馴染ませるために必要なことをまじめに考えてみた。
まず、馴染ませるためには**工数が見える**ことが最低条件。でないと誰も作業の承認なんてしない。
工数が見えるためには、**A1. 基準と手順**が必要になるけど、
手順化が必要なレベルの作業をプロジェクトに新しく馴染ませようとすると**すぐ廃れる**。
なら、**A1. 自動化**するしかない。### Q2. 何を自動化すればいいのか?
すぐ思いついたのは、エラーになっているテストがどれかをわかるようにすること。
つまり、**A2. テスト実行の自動化とテスト結果の自動出力**をすること。
`gitlab-ci`を利用したテストの自動化や、`gradle`のプラグインでテスト結果の自動出力はすぐ実現できた。**見えるようにできた**では見に行ってもらうと
Ubuntuにknowledge(wiki)を導入
#概要
情報共有Wikiとして、Ubuntu14.04を入れたPCで[Knowledge](https://information-knowledge.support-project.org/)を動かしたくなった。ローカル環境で実行テストを行うため、Mac Book ProにVagrantを入れて仮装環境を構築しました。
*Vagrantについては少し古いですが[過去記事](https://qiita.com/rerere0101/items/c8846453362fb5393c34)を参照ください*今回仮想マシンに入れたOSはUbuntu14.04です。ゼロからKnowledgeを動かすまでをメモがてら掲載します。動いた後の図はこちら。結構モダンなUIですね!
今更だけどTDD導入(失敗編)# はじめに
自動テストの導入事例に基づく反省と結果をつらつらと書きます。
コストに対するメリットや、そもそも必要なのかは別の話。|環境|内容|
|:–|:–:|
|OS|Linux|
|開発環境|Eclipse|
|リポジトリ|GitLab|
|FW|SpringBoot|
|FW|Junit|# 新規システム構築時に導入
### 結果
|自動テスト内容|結果|
|:–|:–:|
|実装|〇|
|指標|△|
|継続|×|半年くらいでメンテされなくなり、続かなかった・・・。工数は通常より膨らむし、
導入結果の計測できず、だんだんとお荷物扱いに。テストの指標や共通処理の実装に時間をかけた結果、初期導入は上手くいった。
**初期導入さえ上手くいけば、後は勝手に回り出すと思ったのが間違い。**
改修する内に修正もれがあったり、後回しにされたり、微妙な感じになってしまった。![コメント 2020-05-02 004613.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6302
Ruby と Perl と Java と Python で解く AtCoder diverta 2019 Programming Contest C
# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder diverta 2019 Programming Contest C – AB Substrings](https://atcoder.jp/contests/diverta2019/tasks/diverta2019_c)*
Difficulty: 911今回のテーマ、文字処理
# Ruby
与えられた文字列を、`BXA` `BX` `XA` でそれぞれカウントします。
この内、`BXA` は `BXA` 同士で合体しても又 `BXA` になりますので、まずこれを処理して、`BXA` の個数を減らします。
同様に、`BXA` と `BX` が合体しても `BX`、`XA` と `BXA` が合体しても `XA` で