utamaro’s blog

誰かの役に立つ情報を発信するブログ

SpringBootでクライアントからの日付をLocalDateTimeで受け取る方法

クライアントから2018-10-19T10:10という文字列を受け取ったときに、LocalDateTimeで受け取る方法を紹介します。 LocalDateTimeで受け取れると何かと便利です。Stringで受け取ると、それをDateに直したりするのが面倒なので、結構使える方法なのではないでし…

SpringBootでPathVariable付きのリダイレクトをする方法

spring bootを使って、@PathVariableがついているurlにリダイレクトする際の方法について紹介します。 設定は、/redirect/fromにリクエストがあった際に、/redirect/to/{id}へリダイレクトするときの書き方です。 それぞれのurlの仕様について説明します。 /…

pythonを使ってディレクトリのツリー構造をjsonで表示してみた

何に使えるのかわかりませんが、ディレクトリのツリー構造をjsonで表現するプログラムを紹介します。 サンプルとして用意したティレクトリ構造が以下のものです。 このディレクトリのtreeをjsonにしたいと思います。 dir/ ├── dir2 │ ├── file1 │ └── file2 …

pythonで楽天apiを実行する方法

楽天の会員登録をする これは登録画面に沿って登録をするだけです。 登録画面のurlを載せます。 【楽天】ログイン 楽天のアプリIDを発行する アプリURLはhttp://localhost.comで登録しました。 やり方を調べたところ、自分のgithubのurlを入れるというのも見…

エクセルを使わないでマークダウンでapiのドキュメントを作成する

apiのドキュメントを作成する際にエクセルを使って見栄えの良い(?)ドキュメントを作成することはよくあります。 ですが、以下のことが起きたりします。 キレイな表を作成することに力を入れてしまう 更新されない xxx_v1とかxxx_v2というファイルが増える こ…

プログラミングを勉強するおすすめの方法

プログラミングを勉強する際の、おすすめの方法を紹介します。 私の場合、新しい言語を勉強する場合はじゃんけんゲームを作成します。 じゃんけんゲームを作成する理由は↓です。 理由 じゃんけんは簡単なアルゴリズムである アルゴリズムを考えて悩むことが…

何かを説明する際に気をつけていること

私は、誰かに何かを説明することがとても苦手です。 それも、人と会話することが少なく、噛み噛みなためなのですが... そんな私が説明時(1対1、もしくは1対多のとき)に気をつけていることを紹介します。 気をつけていること 気をつけていることは3つありま…

シンプルなカレンダーフォームを作る方法

日付選択をする際にでてくるあのカレンダーを作る方法を紹介します。 documentではdomに属性をつけてオプションを指定しているのがほとんどですが、属性をつけるとごちゃごちゃするので、jsに書きます。 準備 以下のライブラリが必要です。 リンクを付けまし…

Django+herokuでS3を使わない画像の保存方法

cloudinaryというアドオンを使って、画像を保存します。 画像の保存というとamazon s3が思い浮かぶと思いますが、あれほんの少しお金かかりますよね? スタートということで、完全無料でやるためにcloudinaryを使ってみます。 cloudinaryのアドオンは↓です。…

できるだけ早く、無料でwebサービスを開発するまで

無料でwebサービスを作り、公開するまでの流れを紹介したいと思います。 今回BookStackerhttp://www.book-stacker.comというサービスを作ったので、その際の開発の流れを紹介します。 以下の流れで開発を行いました。 タスクを洗い出す(3h) 仕様を書き出す(3…

javascriptのreduceを使って配列を更新する方法

reduceを使用すると、ある配列を使って単一の値を計算したい場合に使えます。 いくつかreduceを使った例を紹介します。 配列内のデータを加算する var datas = [1,2,3,4,5] var result = datas.reduce(function(num, item) { // numの初期値は0 return num +…

Djangoでcssファイルから画像ファイルを読み込む方法

Djangoでcssファイルから画像ファイルをurlで指定する方法について紹介します。 やることは簡単です。 Djangoの設定ファイルで以下のような設定をしていると思います。 STATIC_URL = '/static/' STATIC_ROOT = 'staticfiles' この設定をしている場合、static…

javascriptでカレンダーを作成する

html、css、javascriptを使ってカレンダーを作成します。 この記事では、htmlとcssの部分についてはcodepenで見つけたデザインを使用しています。 なので、javascriptをメインで紹介したいと思います。 参考にしたデザインはこちらです。 https://codepen.io…

pythonのファイルをherokuで定期的に実行する方法

この記事ではpythonのファイルに書かれたprint()を定期的に実行する方法を紹介します。 ↓のページを参考にしています。 https://devcenter.heroku.com/articles/clock-processes-python herokuで適当なアプリケーションを作成していて、remoteへpushできるま…

frappe-ganttでグラフを更新する方法

frappe-ganttのドキュメントからチャートの更新apiを探してみたのですが、見つけられませんでした。 issueを見てみたところ、解決策が見つかったので紹介します。 https://github.com/frappe/gantt/issues/44 jsfiddleにコードを公開してくださっているので…

frappe-ganttを使ってガントチャートを作成する方法

ガントチャートを作成するライブラリは多くありますが、今回紹介するのはfrappe-ganttというライブラリです。 github.com ↓のようなチャートを作成できます。 残念ながら、マウス操作でタスクを追加することはできません。自分で実装することはできそうなの…

postgresqlをmacで使う

環境設定 brew install postgresql 起動 postgres -D /usr/local/var/postgres 2018-09-22 05:36:28.073 JST [41369] LOG: listening on IPv6 address "::1", port 5432 2018-09-22 05:36:28.073 JST [41369] LOG: listening on IPv4 address "127.0.0.1", p…

frappe chartを使ってグラフを更新する方法

frappe chartを使ってグラフを更新する方法と、ドキュメントに載っているサンプルを書いています。 最終的に↓ができます。 html、javascriptをコピペするといくつかのサンプルも確認できます。 導入 まずはインストールします。 npm install frappe-charts …

可変グリッドレイアウトをMuuriで実装する

画面サイズを変えると、中のグリッドがグリグリと動く画面を作ってみます。 github.com npmでインストールします。 npm install muuri 注意事項 ドラッグして要素を動かす場合は以下のライブラリをインストールする必要があります。 npm install hammerjs np…

DjangoでGoogleアカウントの認証機能を入れる方法

Djangoのログイン機能でGoogleのアカウントを使った方法を入れます。 必要なライブラリをインストールします。 pip install django python3-openid social-auth-app-django (ついでにherokuで必要なライブラリも入れたい場合は↓をどうぞ) pip install djan…

pythonでBeautifulSoupを使ったスクレイピング

pythonでBeautifulSoupを使ったスクレイピング python3.6.4を使用しています。 必要なライブラリをインストールします。 pip install beautifulsoup4 requests lxml beautifulsoup4はスクレイピングのライブラリ。 requestsはgetとかpostのリクエストに使う…

mysqlclientでdict型のデータを取得する方法

通常、selectをしたときはtupple型で取得されます。 少し使いづらいので、dict型で取得できるようにします。 connectを取得して、cursorにDictCursorを設定するだけです。 from MySQLdb.cursors import DictCursor self.connect = _mysql.connect( host=DATA…

watchdogを使ってファイルを監視する

カレントディレクトリの*.logに変更があった場合にMyHandler内のメソッドが実行される。 最初は.logファイルで修正したらon_modifiedが呼ばれると考えていたが、実際はon_deleted、on_createdの順番で呼ばれていた。 class MyHandler(PatternMatchingEventHa…

DjangoのORMを使わないでクエリを実行する方法

ORM(object relational mapper)を使うべきか、使わざるべきかの議論を時々目にします。 Author.objects.all()←こういうやつです。 今回は、DjangoでORMを使わずにクエリを書いてDBからデータを取得する方法を紹介します。 クエリの生成にはjinjasqlというp…

Djangoのtemplate内でurlの逆引きをする方法

逆引きをやることで、何がいいのか。 やらなくてもできますが、べた書きする必要があります。 例えば、anchorタグのhref属性に/api/hoge/delete/{{id}}と書いたりすることになります。 複数の場所で↑のように書いてた場合は修正が大変になります。 あと、tem…

Django+herokuで無料サービスを作る

Djangoとherokuを使って費用0(初期投資を含めません)でサービスを公開するところまで解説します。 サーバ代0円 期間はだいたい3日 この記事は https://sticky-cards.herokuapp.com/ を作ったときに得たノウハウをまとめています。 (ログイン不要で使える…

Djangoをherokuにデプロイする

herokuの用意 アカウント作成 アプリケーションを作成 開発環境を用意する macを対象にしています。 ※ brewをインストールしていることが前提です。 herokuをインストールする brew install heroku 以上です。 herokuのコマンド ログインする heroku login h…

Djangoのプロジェクト構造について

Djangoのプロジェクト構造について紹介します。 一般的な(ドキュメントに書いてあるような)構造とは少し異なります。 まずは全体の構造を紹介します。 ./ ├── Procfile <== heroku用 ├── README.md ├── app │ ├── __init__.py │ └── card │ ├── __init__.p…

SpringSecurityを使ったシンプルな認証の作り方

spring securityの使い方 spring securityを使用して認証機能を実装するまでです。 ※ 少しだけ認可するためのコードを書いています。 この記事ではDBへの接続は行わずにコードを書いています。 Spring Securityの実装方法を調べると、インメモリDBを使う方法…

vuejsもreactjsも使わないchrome拡張機能の作り方

chrome拡張機能の作り方 この記事では、一人でchrome拡張機能を開発して、ストアに上げるためのデータを作るまでをご紹介します。 また、有料のサンプルコードをBaseにて提供しています。 (googleで検索したページのタイトルをジョジョの名言に置き換える拡…