プログラミング

NameError is not defined

LeetCodeを解いてて出てきたエラーです。下記は適当に書いたものなんですが、insertRowに注目してください。 class Solution: def insertRow(self, val: int, depth: int): print(val) print(depth) def addOneRow(self, root: Optional[TreeNode], val: int…

オブジェクト指向言語プログラミングを学ぶ時のオススメ本

久しぶりの投稿です。インフラの仕事をしてますが、あらためてJavaプログラミングを学びなおしたいなと思いました。 そこで最近読んだ本やオススメ本を紹介したいと思います。プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南…

Copy spanning locations and/or storage classes could not complete within 30 seconds. Please use the Rewrite method...ってなんだよ

PythonでGCSのファイルをコピーしようとしたらこんなエラーが出ました。 from google.cloud import storage storage_client = storage.Client() src_bucket = storage_client.bucket(BUCKET_NAME) dst_bucket = storage_client.bucket(OUTPUT_BUCKET_NAME) s…

ValueError: ('Iterator has already started', <google.api_core.page_iterator.HTTPIterator object at 0xaaaaaaa>)

pythonでCloud Storageのファイル数を数えようとしたらこんなエラーがでました。 なんなんだと。 File "/........./lib64/python3.6/site-packages/google/api_core/page_iterator.py", line 227, in __iter__ raise ValueError("Iterator has already start…

シェルスクリプトの変数加工(%と#)について

シェルスクリプトでこんな変数の加工の仕方を知りませんでした。 まず下記のサンプルプログラムを見てみましょう。 $ HOGEHOGE_VAL="aaa/bbb/ccc/ddd/eee" $ echo ${HOGEHOGE_VAL} aaa/bbb/ccc/ddd/eee $ echo ${HOGEHOGE_VAL%/*} aaa/bbb/ccc/ddd $ echo ${…

Qiita投稿 Python ファイルに日本語書込みエラーUnicodeEncodeError を解決する

Qiitaに投稿してみました。qiita.comちなみにですが下記の記事はとても参考になったのでブログの方には書いておきます。lab.hde.co.jp

pythonのimportエラー ValueError: Attempted relative import in non-package を雑に解決する

pythonで悩ましいところの一つにimportエラーがあります。適切な方法でモジュールをインポートする必要があるのですが、自分で作ったスクリプトを適当に相対パスでimportとしようとするとエラーになって悩むことがあります。importのパスがよろしくないとこ…

シェルスクリプトでブロックコメント

シェルスクリプトでブロックコメントを作る方法を知ってますか?ブロックコメントはpythonでいう"""(ダブルクオート3つ)や'''(シングルクオート3つ)で囲んだコメント、またjavaで言えば/*.....*/といったように書くコメントです。1行コメントは # でコメント…

シェルスクリプトで可変長引数を扱う

シェルスクリプトを実行するときに、いくつになるかわからない引数を全て使いたいときがあります。 例えば作ったファイルを全て何か処理したいとき、いくつの引数になるかわかりません。そういったときに可変長引数を使うと便利です。可変長引数は ${@} です…

数値計算するbcコマンドが便利

こんにちは suganoo です。シェルスクリプトを書いてたりLinuxのコマンドをたたいてると単純な計算をしたいときがあります。単純な足し算やfor文内のインクリメントとか。そんなんであれば $((...)) でどうにかなります。例えば足し算なら CNT=$(( CNT + 1 )…

シェルスクリプトで配列を扱う

こんにちは suganoo です。シェルスクリプトを書いていて配列ってどうやるんだっけ?っとたびたび調べることが多いので記事に書いておこうと思います。 コマンドの結果を配列にする まずコマンドの結果を配列に入れる方法 FILE_LIST=(`ls`)コマンドを``で囲…

速度制限するパッケージ golang.org/x/time/rateについてQiitaに書いてみた

こんにちは suganoo です。ここ最近3月4月とブログをあまり更新してませんでした。というのも「Go言語による並行処理」が勉強になったと以前投稿したのですが、 読んでるだけじゃだめだ!やっぱ写経しないと!っと思ってサンプルコードを写経してたわけで更…

Go言語でのBasic認証とDigest認証のヒント

久しぶりの投稿でございます。たまたま社内のjiraにAPIでissueを作ろうと思ったのですが、 その前のプロキシーサーバーがDigest認証になってました。はてと困りました。結局はプログラムで解決するのは難しそうなので、直接curlでどうにかしようと思いました…

Go言語 channel の使い方を勘違いしてたこと

「Go言語による並行処理」を写経してるんですが、チャネルのところで理解が甘かったところがありました。やってみて、ああそうだったのか!?と気づきました。わかってなかったことは下記の2つ チャネルってgoroutineで使うもの。 そのgoroutineの中でclose…

UdemyのgRPCコースやってた

久しぶりの更新になりました。2月半ばにこんな企画を見つけたのでUdemyやってました。 zine.qiita.comUdemyって年末年始に90%オフセールしたりして安くなるんですが、買った後なにもやらずにそのままにしちゃうんですよね。いわゆる積んdemy。それをこの機会…

【Qiita】Go言語でポリモーフィズムを実装 ~http.HandlerFuncに学ぶ~ #golang

Qiitaに書いてみた。Go言語のポリモーフィズムの実現方法です。qiita.com

とがったことができる人より基本のレベルが高い人 しっかりGo言語を書くために ~"golang.tokyo#21「Goエンジニアの採用」レポート""を読んで~

golang.tokyo#21「Goエンジニアの採用」というイベントがあったそうです。 行ってみたかった。 golangtokyo.connpass.comそのイベントでレポートをアップした方がいましたが、内容がとても良かった。 その中で身を引き締まる内容がありました。 mom0tomo.git…

【Qiita】Go言語でロガー gologgerを作ってみました

Qiitaに書いてみました。Go言語でいいなーと思うロガーが無かったので作ってみた。qiita.comまあそんな使う人いないだろうね。

【Python】TypeError: string indices must be integers, not str

こんにちは suganoo です。Pythonでまた似たようなエラーが出たので備忘として書いておきます。このエラーなんだっけなと基本的なものなのにたまにど忘れしてしまいました。 TypeError: string indices must be integers, not strstringのインデックス型でin…

【Go】Go言語でSQLを実行してみる

こんにちは suganoo です。Go言語からのDB操作を復習したいと思います。「Goプログラミング実践入門」でDBの操作が出ていたので、おさらいをしておきたいなと思ってました。 今回はORMは使いません。それはそれでいつかまた調べて記事にしてみようと思います…

Go言語での定期実行とタイムアウト(Software Design 2019年2月号の復習)

こんにちは suganoo です。今月号のSoftware Design (2019年2月号)に「”速い”コードの書き方」という特集がありました。Go言語についても書かれていたので、おお!っとさっそく読み込んでしまいました。ソフトウェアデザイン 2019年2月号作者: なぎせゆうき,…

【Go】go test でテストしよう

Goでちゃんとテストコードを書こうとようやく重い腰をあげてみました。コーディングしてるとテストコードは後回しにしてしまうんですよね。ちゃんとやってみます。後回しにするの良くないっすね(汗)。。。go testについて調べたことを記事にしてみようと思い…

【Go】templateの基礎的使い方

GoでWebプログラミングを学んでます。今回はtemplateの使い方の紹介です。 基礎的な使い方 まずはソースコードから。 main.go package main import ( "html/template" "net/http" ) func process(w http.ResponseWriter, r *http.Request){ t := template.Mu…

Goのwebhdfsクライアントを修正してみた

HadoopへファイルをGo言語でインポートしたくて、webhdfs経由で入れようとしていました。 そこでGoのクライアントライブラリーを使ってやってみたんだけど、少し苦労したって話です。 Go言語のwebhdfsクライアントってあんまりない。 Go言語でアプリを作って…

【Git】fatal: unable to access SSL connect error

git clone しようとしたらタイトルのようなエラーが出ました。詳しく言うと、go get でgitのソースコードを落としてこようとしたら、なぜかSSL connect error が出ました。 その解消法です。 やったこと go get やったところこんなエラーが出ました。 go get…

【Go】Go言語で時間を扱う(pkg/time)機能を"ほぼ"まとめてみた

ファイル名にタイムスタンプを入れたいなと思ってtime パッケージを調べてたんですが、便利な機能が意外とあるなと気づいたのでまとめてみました。ちょくちょく調べることがあるので、この際いっきにまとめてみることにした。自分でも知らない機能があったり…

【Go】Go言語でgzファイルをまとめる

たまたまgzファイルを一つにまとめる(=コンカチする)必要があったのでやってみました。 読み込んだ時にバイナリーで扱ってるんで、そのまま書いてしまえばいいから簡単ですね。 準備 ファイル フォルダ構成 実行スクリプト goのコード os.OpenFile ReadFile…

【Go】multiple-value in single-value context

たまにこんなエラーが出て戸惑いました。 あんまり調べなかったせいか、ググってもよくわからなくて引数かな?とか考えてたら全然違ってました。結論から言うと、返り値が2つなのに1変数しか受取ろうとしてないぞ! っていうエラーでした。アホ過ぎて、よく…

続「Goプログラミング実践入門」の写経がとてもいい勉強になった

サンプルソースを写経していて、どーしても気になるところがあったのでメモしておきます。 blog.suganoo.net(※2018/12/06更新 全然ちがうところ修正していたので更新) 開始ユーザーが表示されない User.Nameって無いよね ここの部分の .User.Name が無いせい…

「Goプログラミング実践入門」の写経がとてもいい勉強になった

先日読んだこの本について内容がよかったので写経に挑戦してます。 blog.suganoo.netやっと9割がた終わったのですが、とてもよかったです。 写経するの実は今回初めてだったのですが、かなり学びになりますね。ところどころ端折ってしまったところも多々ある…