[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
会社で「プログラミング初学者が『だいぶできるようになった』感を得るのに良い課題ってなんだろう」という話になり。以下を挙げてみた、という話。
外から任意の自然数 N を与えられると、フィボナッチ数列の N 番目を出力するプログラムを書く。再帰とか、再帰で上手くいかない場合とかを感じたりするのによさそう
外から任意の自然数 N を与えられると、それが自然数か否かを判定する
外から任意の自然数 N を与えられると、それを素因数分解する。素数判定ができればなんとかなるはず
9×9の配列の形で数独の問題が与えられた際にこれを解く
適当な API を叩く API クライアントを作る。この際、単純な HTTP 通信を行うだけのライブラリを使う
リクエストを送るとなんか返答してくれる HTTP サーバを作る
fizzbuz とかもあるけど素数判定できるならやれるだろ、と思うので別にいいかなぁ、って。
次男が嫌がっていたトイトレに急に積極的になった。というのも本人が「プラレールのパンツがほしいなー」と言い出したのである。即出発即購入。
外からは見えにくいであろう下着にまでキャラクターものが存在する理由をこの時私はようやく理解したのである。
でも、私もテストデータに TRPG の設定上出てくる架空の団体とかを使うことがあるし、別に驚くべきことではないんだろうな。
(雛´-`).。oO(#Discord のテキストチャットのログをリアルタイムで収集するツールを作ってみた。
— しゅんしゅんひよこ (@Shunshun94) May 27, 2020
Discord の発言、削除されちゃうと後から追うことが難しいがこのツールで収集しておけば後からでも追うことがなんとかできるかもしれない)https://t.co/BGHNgJgYmR https://t.co/6qkjHcWt5I
https://github.com/Shunshun94/discord-textChatLogger
設置が妙に難しいものになってしまった。なんとかならないかなぁ。
公式の Java Quickstart に大体必要な情報は掲載されているが、こちらだとシートを読み込むための情報しか載ってない。
Quickstart 掲載の以下が既に実施されている前提で書いていく
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
final String spreadsheetId = "ACJ9wvshTKNWUmdlgY5SCwe5VK5aZZhkE2wTMJVNqBcS";
Sheets service = new Sheets.Builder(
HTTP_TRANSPORT, JSON_FACTORY,
getCredentials(HTTP_TRANSPORT)).setApplicationName(APPLICATION_NAME).build();
List<Request> requests = new ArrayList<Request>();
// 0列目から数えて1行目から1000行目まで消す (1行だけ残る)
requests.add((new Request()).setDeleteDimension(
(new DeleteDimensionRequest())
.setRange(
(new DimensionRange()).setStartIndex(1).setEndIndex(1000).setDimension("ROWS"))));
// 0行目から数えて7列目から26列目まで消す (7列だけ残る)
requests.add((new Request()).setDeleteDimension(
(new DeleteDimensionRequest())
.setRange(
(new DimensionRange()).setStartIndex(7).setEndIndex(26).setDimension("COLUMNS"))));
BatchUpdateSpreadsheetRequest body = new BatchUpdateSpreadsheetRequest().setRequests(requests);
service.spreadsheets().batchUpdate(spreadsheetId , body).execute();
List<ValueRange> data = new ArrayList<ValueRange>();
data.add(new ValueRange().setRange("A1").setValues(Arrays.asList(Arrays.asList(
"ぱんだ",
"うさぎ",
"こあら"))));
BatchUpdateValuesRequest requestBody = new BatchUpdateValuesRequest();
requestBody.setValueInputOption("RAW");
requestBody.setData(data);
BatchUpdate request = service.spreadsheets().values().batchUpdate(spreadsheetId, requestBody);
request.execute();
以下のような結果が得られる
| A | B | C | |
|---|---|---|---|
| 1 | ぱんだ | うさぎ | こあら |
| 2 | |||
| 3 |
List<Object> contents = new ArrayList<Object>();
contents.add((Object) 48);
contents.add((Object) "こぶた");
Append request = service.spreadsheets().values().append(
spreadsheetId,
"A1", // A1 を左上とする表である、とする
new ValueRange().setValues(Arrays.asList(contents)));
request.setValueInputOption("RAW");
request.setInsertDataOption("INSERT_ROWS"); // 行の追加
AppendValuesResponse result = request.execute();
上述の状況で使うと次のようになる
| A | B | C | |
|---|---|---|---|
| 1 | ぱんだ | うさぎ | こあら |
| 2 | 48 | こぶた | |
| 3 | |||
| 4 |
会社で「社名を出して Qiita に記事を出そうぜ」というキャンペーンが始まった。これ自体は私個人としては原則としてやぶさかではない。しかし、個人的に今やっているこの記録から Qiita に全部移るかは悩ましい所である。
会社の利益につながり、会社の利益は自分の賃金につながる。素直にありがたいなぁと思う
外部に向けて発信している、というのが会社で公になれば「やるじゃねぇか」という目で見てもらえる可能性がある。評価が上がれば賃金につながる
社名を出して Qiita に記事をあげる場合、それは会社の採用協力業務の一環となる。私のいる会社ではそういう活動は業務時間にカウントしてよいことになっている。やりやすい
正直試しに一本書いてみたのだが閲覧数は細々とやっている個人ブログとダンチ。割と有名なブログならそうでもないんだろうけど。
このブログを会社の人に見られて、会社の人に Twitter アカウントやら何やらを特定されるのは正直構わない。特定されているし、このブログは社内で「つまりこういうことです」と説明する際に共有するページとして出すこともある(ブリッジレターとは、とか)。
しかし、逆は困る。コミュニティによっては粘着質な攻撃を延々とやる人がいる。それが会社に及ぶリスクを考えると趣味のコミュニティで所属情報を出すことは控えるべきだ。
ゆとシートの改造とか妖精の手への対応とか、分野が狭すぎて会社として出すのはちょっと厳しいのでは?会社のスタンスとも相談だけど。
そんな感じで今後は趣味のコミュニティで共有する用ではない記事は Qiita、趣味向けの記事はブログ、と使い分けていくかも。