事前作業:version確認 $ node -v v10.15.0 $ npm -v 6.4.1 最新版をインストール サイトにからLTSをダウンロードしインストール https://nodejs.org/ja/ すべて次へ。 インストール後:version確認 $ node -v v12.16.2 $ npm -v 6.14.4 おまけ(yarnをUpgradeしてみる) $ yarn -v 1.13.0 $ npm uninstall yarn -g $ npm install yarn -g $ yarn -v 1.22.4
Git Submodule化できないときの対処 キャッシュが残っている可能性 まずは、キャッシュのクリアを行います。 git rm –cached サブモジュールディレクトリ git submodule update --init --recursive サブモジュールの削除 既に存在しているサブモジュールがあったら削除してしまいます。 ディレクトリごと消すことがポイント git submodule deinit -f サブモジュールディレクトリ git rm -f サブモジュールディレクトリ サブモジュールの追加 正しく追加できていれば2つのgitがソース管理プロバイダーに見えているはずです。 git submodule add git@github.com:<user>/<path>.git
Oracle ORA-01000 最大オープン・カーソル数を超えました。 Oracle(PLSQL)でカーソルに関するエラーが発生しハマったときの対処方法メモ 原因としてはカーソルを「オープン」と「クローズ」の数の不一致 私の場合は、オープンがループ内で行われており、クローズはループの外にあったためオープンし過ぎでエラーになりました。 調査方法 1.カーソルの最大数を確認します。 これが小さすぎるのが原因の場合はSet文でOracleの設定変更しましょう。 show parameters open_cursors; 2.カーソルの数を確認します。 私はブレークポイントデバッグを行いながらcount(1)の増加を確認しプログラムによるカーソル増加を特定しました。 自分が動作させているプログラムと確定している場合はuser_nameを条件に設定します。 具体的なプログラム名を特定するにはsidから調査します。 select sid , user_name , count(1) from V$OPEN_CURSOR group by sid, user_name having count(1) > 10 -- ここは最大数に応じて調整 ; さいごに 明示的にオープン、フェッチ、クローズをコードに記載すると通常処理はもちろんエラー処理での適切なクローズを求められます。 暗黙、明示どちらでもよいですが、FORループを利用してコードを記述したほうがバグのリスクを減らすことが出来るためオススメだと思っています。
WSL(Windows Subsystem for Linux)の設定 前提 WSLが利用可能であること Ubuntu18.04 Setup # 日本からミラーするように sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.list # アップデート sudo apt update -y && apt upgrade -y # fish 準備 sudo apt-add-repository ppa:fish-shell/release-3 sudo apt update -y # install fish sudo apt install -y fish # change default shell .bashrc exec fish # install fisher curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs https://git.io/fisher fisher -v # add theme fisher add oh-my-fish/theme-agnoster # font powerline git clone https://github.
前回投稿した「Qiita API でいいねとVIEW数をCurlで取得する方法」を利用し、Lambdaで実行してs3にjsonファイルとして格納してみようと思います。 Code 以下のコードを実行しs3に格納していきます。※事前にバケットは作成しておきます。 import csv import json import logging import os import sys import boto3 import requests formatter = '%(asctime)s%(name)-12s%(levelname)-8s%(message)s' logging.basicConfig(level=logging.WARNING, format=formatter) logger = logging.getLogger(__name__) def get_next_url(response): link = response.headers['link'] if link is None: return None links = link.split(',') for link in links: if 'rel="next"' in link: return link[link.find('<') + 1:link.find('>')] return None def get_items(token): url = 'https://qiita.com/api/v2/authenticated_user/items' headers = {'Authorization': 'Bearer {}'.format(token)} items = [] while True: response = requests.
はじめに QiitaにはAPIが用意されています。 私もQiitaに投稿しているのですが、Google Analyticsでは取得しきれない「いいね」の情報が欲しくてCurlで取得する方法を調べてみました。 APIのドキュメントは以下にあります。 https://qiita.com/api/v2/docs APIを使うための準備 個人の情報を取得するためにはアクセストークンを発行する必要があります。 https://qiita.com/settings/tokens/new にアクセスし、アクセストークンを発行しましょう。 発行できたら、あとはドキュメントに従ってCurlでデータを取得していきます。 QIITA_TOKEN=XXXXXXXXX # いいね、記事タイトル→CSV形式 curl -sH "Authorization: Bearer ${QIITA_TOKEN}" \ "https://qiita.com/api/v2/authenticated_user/items?page=1&per_page=100" \ | jq -r '.[] | [.likes_count, .title, .id] | @csv' 0,"Session Managerでプライベートサブネット上のEC2にSSHする方法","e8dc6b039ef95d7b3d72" 0,"5分でAWS Elastic Beanstalk(作って、修正して、お片付け)","e30d62e878b1b2c6f3d7" 2,"CodeBuildでECRビルドエラーから得た4つの知見","bcf118a38c2a691a837d" 0,"AWS Cloud9でAWS SAM CLI環境作成~Hello World(Python)まで","873721df727943beb52d" 3,"[Docker for Windows]Kubernetesを動かしてみる","91eac9da094666e47c62" 0,"Docker for WindowsでEnabled Kubernetesが出来なくてハマったときの解決方法","c40eede0bb120d643f2c" 1,"[小ネタ]fishでaws-cliの補完機能を使うための手順","e57a86ba65c14a7fbb19" 9,"Dockerでaws-cli環境を作ればアカウント切替が簡単に","40545486a342179a5bd3" 7,"Pythonista3でstashを実行しNo module named 'urlparse'が出た場合の解決方法","a33a3b113dea0b2fa850" 5,"QiitaにGoogleAnalyticsの設定する。数字を眺めて楽しい","56060f8a72863ee05924" 3,"バッチファイルを経由すればPowerShellファイルの実行権限を変えずに指定権限で実行できた","60bc30a793a8f4ecdc2b" 27,"Docker for Windowsをインストール後 could not read CA certificateエラーが出た時の解決方法","60e1c1f8b6a05c8fdf72" 10,"AWS認定ソリューションアーキテクトアソシエイト合格[2018.04]","a1416e818135a424ad89" 2,"[AWS Cloud9]EC2自動停止を検知して別の処理を始める","c841fa99af2c88a6d956" 5,"AWS Cloud9でpythonライブラリを含めたLambdaのデプロイ","6cc042d2693b84c96905" 16,"AWS Cloud9でLambdaの作成、テスト、デプロイまでの手順まとめ","4c2fa4e0bd87ce214c92" 50,"AWS Cloud9を動かしてみた","7705ef6871e261d6535e" 1,"Win10 Creators Update後、vagrant upがエラーになったときの解決方法","37e3b88c657b4e4cdb51" 11,"SNSでSlack投稿","75f484cd3ccd944cd4c2" VIEW数は記事単位でしか取得できないようです。(nullが取得されてしまう) プログラムで記事をループしてVIEW数を取得する必要がありそうですね。
FizzBuzzとは エンジニアがテストコードでよく書くネタ。Wiki参照https://ja.wikipedia.org/wiki/Fizz_Buzz Javaなら1行でシンプルに書ける。そうLambdaならね import java.util.stream.IntStream; public class FizzBuzz { public static void main(String[] args) { IntStream.rangeClosed(1, 100).forEach( i -> System.out.format("%s%s%n", (i%3 == 0 ? "Fizz" : ""), (i%5 == 0 ? "Buzz" : (i%3 == 0 ? "" : i)) ) ); } }
Codeシリーズはまずは使ってみる! 概要(最低限) ソースコードを管理するGitリポジトリサービス サードパーティ(SourceTreeなど)利用可能 プルリクエスト機能が利用可能 リポジトリの作成 リポジトリ名を入れて、作成ボタン > 完成!! はじめにマネジメントコンソールでCodeCommitを選択しリポジトリを作成します。 名前を選択するだけ、簡単ですね。 次にgitを使う端末で設定をしていきます。 今回はAWS CLIを設定していることが前提になります。 git config --global credential.helper '!aws --region ap-northeast-1 codecommit credential-helper $@' git config --global credential.UseHttpPath true git clone [URLのクローン] コミット&プッシュしてみる 通常のgitと同様の利用方法が使えることを確認します。 $ echo "hello codecommit!" > README.md $ git add -A $ git commit -m "add readme" $ git push origin master コミットされたことを確認しました。 プルリクエストしてみる ブランチを作成しファイルを修正、コミット%プッシュします。 (master) $ git checkout -b f1 (f1) $ echo "f1 add" >> README.
bash -> fishに変更した場合、aws-cliの補完機能を有効にする方法 # 位置を特定します $ which aws_completer # 存在しない場合は作成します $ vim ~/.config/fish/config.fish # aws_completerのパスはwhichで調べたパスに適時変更しconfig.fishに追記して保存します $ complete -c aws -f -a '(begin; set -lx COMP_SHELL fish; set -lx COMP_LINE (commandline); /usr/local/bin/aws_completer; end)' #確認 $ aws s + tab さいごに これで、良いfish Lifeを過ごせます。
TTLとは レコード毎にデータの有効期限を指定でき、その有効期限を過ぎるとデータが自動削除される機能です 利用例 低アクセスデータをアーカイブTBLへ移動 メインTBLと同定義、キャパシティーだけ下げてOLDデータを保存 低アクセスデータを削除 削除時にトリガーして、LOGを残す トリガーさせるにはStreamの有効化が必要 TTL詳細 TTL の有効化 カラムで指定した有効期限を過ぎると、自動でデータが消える 変更が完全に処理されるまでに最大で 1 時間かかる TTL 属性 項目の TTL タイムスタンプを保存する DynamoDB 属性の名前 有効期限はNumber型のエポック時間(Unixtime(ミリ秒無し))を指定 現在の時間を、項目の Time To Live 属性に保存されている時間と比較 属性に保存されているエポック時間の値が現在の時間よりも少ない場合、項目は期限切れとマークされ、その後に削除される データは48時間以内に削除される リアルタイム性が重要でない場合(48時間後に消えてもOKな場合)は、とても有効な機能 スループットは消費せず、データ容量が減らせる エポック時間形式(Unixtime) コンピューターシステム上での時刻表現の一種 UNIXエポック、すなわち協定世界時 (UTC) での1970年1月1日午前0時0分0秒から形式的な経過秒数(すなわち、実質的な経過秒数から、その間に挿入された閏秒を引き、削除された閏秒を加えたもの) 現在時刻からエポック時間を取得する方法 Linux ターミナル: date +%s Python: import time; long(time.