ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

findコマンドでパスを検索する(ディレクトリも含めて検索する)

ド初心者かよ、という話。(普段からシェル慣れしている人なら、当たり前に知っていそうな話)

あまりそのようなシチュエーションもないかもしれませんが、弊研究室は、卒論発表のスライド資料を全員共通のGitリポジトリで管理しています。

ディレクトリ構成は(user name)/卒論/(ユーザー名).pptxみたいな感じになっています。(実際とは少し違うけどだいたいこういう感じ)

これをうまいことスライドだけ集めて発表用PCにコピーしたいという話。

-nameオプションはファイル名に合致するものしか検索できないので、どうしたものかと思っていたら-pathというオプションがあるみたいです。(-wholenameでも同じ)

というわけで、

$ find -path "*/卒論/*.pptx" -exec cp {} ./slides +

みたいにすることで、うまくいきました。めでたしめでたし。というわけで、これから卒論発表してきます😀


ちなみに、findのexecでハマったところ↓

takuya-1st.hatenablog.jp

22歳になりました。気が狂いそうな話。

22歳になりました。

もう誕生日も終わりそうですが、本日2月2日で22歳になりました。めちゃ2が並ぶ。

今年はというと、就職というビッグイベントが待っているので、激動の1年になりそうです。頑張ります。

人生の目標としては、自立することでしょうか。なんだかんだ、親に頼りながらここまできたので、就職をきっかけに、経済的にも心理的にも自立して生きていけるようになりたいです。

具体的なアクションとしては、一人暮らしがあるのかなと現状では考えています。資金貯めたりして、2019年内くらいで引っ越ししたいな、という目標です。

気が狂いそうな話

そして、気が狂いそうな話。

悲しいことに、10年弱使ってきたTwitterアカウントがロックされました

f:id:uutarou:20190202235425p:plain

ことの発端は、2月1日。何気なくTwitterのプロフィールにある誕生日を登録したところ、突然↑の画面に。

実は、今まで使っていたアカウント、2009年に登録したものなので、当時12歳。これがマズかったようで、Twitterガイドラインに違反してロックと相成りました。

フォームから、解除の申請は出してみたものの、希望は薄そうです。

僕くらい、Twitter漬けの日々を送っていると、Twitterアカウントのロックは致命傷のようなもの。

何も表示されないタイムラインを見るために、5分おきくらいにTwitterのアプリを開いてしまう始末。凍結されたことを報告するためにTwitterアプリを開くアホさ。

愚痴や、情報源や、昔のサークルの人々との連絡も全てTwitterでやっていたので、アカウントが死んだことで、孤独老人のようなお気持ちになってしまいました。知らんけど。

アカウントは最悪どうでもいいので、フォロー、フォロワーだけ復元させてほしい…。Twitterさん…。

今更ながらtypescript-fsaが地味に便利だなという話

3日ぶりのブログ更新です。

「ゆるふわ技術日誌」なのに、技術のことでもない日記をつらつらと書くのも、精神的に来るものがあるので、これからは更新頻度を落としても技術的なことを書くブログにしていきたい所存。


久々にReactやりたいな(というかやらないと、書き方忘れそうだな)と思ったので、小さなアプリを作り始めました。

React + TypeScriptのプロジェクトを作るのも、いつのまにか

$ create-react-app hoge --typescript

でできるようになってるし、すごい。

Reduxのアクションやreducderは、普通のJSで書くのであれば、そのままてきとうに書けばいいのだが、TypeScriptとなると、型を当ててあげないとダメですね。(ダメってことはないけど、それならJS使う)

その時に便利なのがtypescript-fsa。

github.com

Reduxの型定義ファイルにも、Actionの型とか定義されてるけど、どうもいまいちなので、その辺をよしなにしてくれる。

import { Action } from "redux";
import actionCreatorFactory, { isType } from 'typescript-fsa';

const actionCreator = actionCreatorFactory('common');

export const signedIn = actionCreator<{ uid: string }>('SIGNED_IN');

interface StateType {
  uid: string | null;
}

const defaultState: StateType = {
  uid: null
};

export default (state: StateType = defaultState, action: Action) => {
  if (isType(action, signedIn)) {
    return {
      ...state,
      uid: action.payload.uid
    };
  }

  return state;
};

こんな感じ。


なんかもっと語るつもりだったけど面倒になってしまった。

Reduxのソースコードを読んでみたみたいな話

Reduxのソースコードを読んでみた。

別にReduxじゃなくて全然よかったんだけど、OSSソースコード読んでみようかなと思ったのがきっかけ。

割とちっちゃめのライブラリで、とっかかりに読むにはちょうど良かった。

まだ、createStoreしか読んでいないけれど、こうやってできてたのかーと感心したり、知らないJSの文法が出てきたりした。(関数の中でargumentsという名前で引数が配列で取って来られるとか)

あまりにも小さいかつ有名なライブラリだったのでコントリビュートしたりする余地は残念ながらなさそうだけど面白かった。

集中ってだいじだなぁと思った。

昨日ブログ書いてないことからも想像がつく?ように、なんだか何も手につかずアニメとYouTube観て過ごしてしまう日を2日くらい過ごしてしまいました。

今日は、途中からなんとか切り替えて、卒研発表ようのスライドを作っていました。結果2時間くらいで終わったという。

2時間で終わることを2日間かけてやってしまった後悔は大きい。


スライドは無事完成したので、あとは練習して発表本番を迎えれば、ちゃんと卒業できそう。

よかったね、という感じ。

スライドを作る

今日は卒論発表の練習をしていました。

作ったスライドは、8割くらいOKで、残りの2割は要修正といった感じで、自分で作ったにしては、上出来なのではないかなと思った。

卒論発表もLTも、気をつけるべきポイントは似てて、

  • スライドにつらつらと文章を書きすぎない
  • 図を使って視覚的に伝わるように
  • 論点をブレさせない、飛躍させない

と、こんな感じかなと思った。

特に僕は、話の内容を急に飛ばしてしまうクセがあるようなので、その点には気をつけつつやっていきたい。


卒論関連も、本当にそろそろ終わりなので、コード書くなり、設計について学ぶなり、何をやるか決めて、社会人になるまでの2ヶ月を有意義に使っていかねば!と決意したりした。