# どうしてPythonとC言語を戦わせる必要があるのか?
>まず最初に言っておかなければなりません。
>この戦いは、完全に私の勝手な想いによって始まりました。
>だから、PythonもC言語も悪くはありません。
#### 皆さん、Pythonって聞くとどんなことを想像しますか?
– 機械学習ができる
– Webサイトのスクレイピングができる
– 初心者が入りやすい
– **なんかかっこいい**
#### はい、ではC言語は?
– 初心者殺しの異名を持っている
– セミコロンを殺したくなる
– 意味わからないエラーが〇キブリみたいに出てくる
– **なんか嫌い**
– ~~臭い、汚い、きつい~~
これが __現実__ です。
簡単に言うとみんな __Pythonが大好きで、C言語は大嫌い__ 、、、
扱いづらいと思われているC言語ですが、実はあらゆる場所で使われているんです。
例えばみんな大好きPythonだって、C言語を元に作られているんですよーってね:sparkling_heart:
私は業務でC言語を扱っているため、C言語とは相棒みたいなものです!(~
Python
C
Node.js
api
LINEmessagingAPI
## いちいちコード書くのは面倒くさいと思った
### 経緯
個人の趣味のブログサイトでイラスト公開のページを作成した際、**Next.js**の``で画像を表示していました。
ただ`
`のレイアウトをコンポーネント化したのに、画像が増える都度に**Props**でパスを渡しながらコンポーネントを増やしていくのは、**まだ運用していないにも関わらずちょっと面倒だなと思った次第**です。
というかせっかく記事はNotionをCMSとして更新できるので、**画像の更新もコードいじりたくない**と。
### 案1:NotionAPIで取得
**記事内の画像は普通にNotionAPIで取得している**ので、ここの画像もNotionAPIで取得するということも考えました。
ただ、APIで取得した画像の仕様として1時間でリンク切れになってしまうのを画像置場で使うのは。。。
また``と違って自動最適化に対応しないので却下。
### 案2:S3などに置く
そもそも趣味でちょっとブログ書きたかっただけで、メインは画像ではないのでそこまでのコ
JavaScript
Node.js
glob
React
next.js
# そもそもの動機
**「強くなりたい」**
史上最強の男にだれでも一度は憧れるものです。
とはいえ、僕は筋力が無ければ、運動神経も悪い、ただの独身男性なので早々と断念しました。
方向性をぐるんと変えて、「妄想を形にできる最強のクリエイター」を目指すことに。
それがきっかけとなり、僕は[プロトアウトスタジオ](https://protoout.studio/)の門を叩いたのでした。
# なぜ習慣化するためのBOTを作るのか
プロトアウトスタジオには[Qiita上](https://qiita.com/organizations/protoout-studio)にメンバーが執筆した記事がたくさん投稿されています。
ので、まずは記事をたくさん読み込んで圧倒的に成長しようと考えたのですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281755/267f5593-15c4-f7ce-6ad3-31ca1a36d4e5.png)
そして、すぐに挫折することとなりました。
* 「よく投稿
JavaScript
Node.js
QiitaAPI
linebot
強くなりたい
Google系のAPIはOAuth認証、サービスアカウント、APIキーの利用の3パターンあると認識してますが、簡単な読み書きくらいのやりとりだとサービスアカウント利用は手ごろです。
> 参考
> [Google DriveのAPIをサービスアカウント認証方式でNode.jsから利用するメモ](https://qiita.com/n0bisuke/items/59607865040a63d1a640)
## 前提
以下ができてる前提になります。
– Google SheetsのAPIを許可してサービスアカウント作成
– 作成したサービスアカウントを対象のシートに権限付与
– サービスアカウントの鍵ファイルをJSON形式で取得
鍵ファイルをDLすると以下のような雰囲気の中身となります。
“`json
{
“type”: “service_account”,
“project_id”: “xxxxxxxx”,
“private_key_id”: “xxxxx”,
“private_key”: “—–BEGIN PRIVATE KEY—-○—–END P
JavaScript
Node.js
CircleCI
GoogleSpreadSheet
GitHubActions
## unreachableってなんですか
`unreachable`とは下記で示される関数のことで、要するに到達して欲しくない & し得ない場所に防御的に使う関数です。
“`tsx
export const unreachable = (msg?: string) => {
throw new Error(msg ?? ‘Something went wrong’)
}
“`
## unreachableの活用方法
私はこの`unreachable`の主に2つのユースケースで使用することが多いです。
**パターン1: 三項演算子のチェック**
“`tsx
type SomeUnion = ‘foo’ | ‘bar’
const fooOrBar: SomeUnion = ‘foo’
const hogeOrFuga =
fooOrBar === ‘foo’
? ‘hoge’
: fooOrBar === ‘bar’
? ‘fuga’
: unreachable(‘Unexpected value’)
“`
TypeScrip
JavaScript
Node.js
TypeScript
# 参考動画
VIDEO
https://github.com/john-smilga/node-express-course
# 完成したアプリケーション
https://node-project-3g21.vercel.app/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654025/8654b973-0e24-8ca8-8af3-c9033f2b46b0.png)
# ソースコード
https://github.com/iwasaki-hub/node-project
# How to create and deploy an Express.js app to Vercel?
https://syntackle.live/blog/how-to-create-and-deploy-an-express-js-app-to-vercel-ljgvGrsCH7ioHsAxuw3G/
# 設定ファイル
“
Node.js
Express
deploy
Vercel
# サマリ
LINE Messaging APIを使ってしゃべり相手(LINE Bot)を作りました。
# 背景
リモートやコロナ禍でコミュニケーションが減る中、
少しでもリフレッシュするためにしゃべり相手が欲しかった(さみしすぎだろ)
# ゴール
今回は、自分のメッセージに対して事前に設定した返事を返すBotを作成
(一部は用意された選択肢の中からランダムに応答、また[天気予報API](https://weather.tsukumijima.net/)でその日の天気を取得・応答)
**AIチャットボットではなく、いわゆるシナリオ型です。**
# 対象読者
– さみしい方
– LINE MessagingAPIに興味がある方
# 前提
– プログラミングがなんとなくわかること
(今回実施したのはおおまかに、Bot用LINEアカウント作成・ngrok・Node.jsの導入になりました。
参考記事をベースにさせていただいたこともあり、
自分はすべて初見でしたが本記事のレベルをやるには何とかなりました)
– コマンドラインの操作が初学者レベルに可能
(`cd`,`mkdir`,
Node.js
初心者
ngrok
linebot
LINEmessagingAPI
ユーザーIDで指定した相手にDMを送るコードを書いてみたよ
【開発環境】
・Discord.js v13 (v12も可)
・Node.js v16.x以降(v13の場合)
【必要な物】
・Dicord.js v13 (v12も可)
“`index.js
client.on(“messageCreate”, async message => {
if (message.author.bot) return;
if (message.content.startsWith(“!dm”)) {
const args = message.content.split(” “)[1]
if (!args) return message.channel.send(“ユーザーIDが入力されていません”);
const send = message.content.split(” “).slice(1).join(” “)
if (!send) return message.channel.send(“ユーザーが存在しません”);
try {
Node.js
bot
,
discord
discord.js
## はじめに
Single Page Applicationのフレームワーク Angular をコンテナで実行するまでを勉強したので、備忘録として残しておく。
## 1. node.jsのバージョン管理ツール nvm のセットアップ
macOSで、node.jsのバージョンを切り替えられるように、nvmをインストールして、その上でnode.jsを動作させ、Angularのコマンドを利用する。nvmのセットアップは、参考リンクを読めば解るので、補足はしない。
* 参考リンク https://github.com/nvm-sh/nvm
## 2. 最新バージョンのnode.jsをインストール
バージョンの指定無しでインストールを実行すれば、その時点の最新バージョンのnodeがインストールされる。
~~~shell: Terminal
$ nvm install
$ node –version
~~~
## 3. TypsScript コマンドのインストール
TypeScriptのスニペットのテストを実施するために、TypeScript から JavaScript
Node.js
Angular
kubernetes
プログラミング学習者です。これまでRubyとRuby on Railsを学習していて、これからJavaScriptの学習を始めるために行いました。
次の機会に、またいちからやり直しになりそうだったので、作業記録を残します。
## 環境
– macOS Monterey12.6、 プロセッサはintel。
– Homebrewはインストール済み。
## インストールの流れ
1. Homebrewを使って、Node.jsのバージョン管理ツールをインストール。ここではnvmを使用。
1. nvmを使って、Node.jsをインストール
1. 確認
1. .nvmrc ファイルに関すること(必須ではない。)
## 語句
– HomebrewはMacのパッケージマネージャ
– nvmは、Node.jsのバージョン管理ツール。バージョン管理ツールは他にもある。
– Node.jsは
> Node.jsは、サーバーサイドでJavaScriptを使うためのプラットフォーム
([【入門】Node.jsとは?利用シーンやメリットなどをわかりやすく解説 – カゴヤのサーバー研究室](https://w