くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

システムアーキテクト試験の過去問一括ダウンロードスクリプト

先日IPAのシステムアーキテクト試験を受けてきた。その際、過去問を一括ダウンロードするために書いたスクリプト。 アプリケーションエンジニア試験時代(平成16年~平成20年)は、午前がまとまっているので、午後の問題のみ。 #!/bin/bash # ****************…

【Android】パーミッション無しで画像のURIを取得する

別のActivityをファイル選択ダイアログ的に使う方法。 よくやるけど忘れるやつ。よく忘れるのでφ(..)メモメモ 画像選択するActivityを開く int RESULT_PICK_IMAGEFILE = 1000; Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory…

Django Admin Siteが便利すぎてつらい

admin-site便利。 以下、公式サイトより。 Djangoのパワフルな特徴の1つは、自動的に生成されるadminインタフェースです。あなたのモデルクラスからメタデータを読み取り、モデル中心のインタフェースを提供します。このインタフェースのおかげで、ユーザは…

AndroidのAlarmManagerに再度入門する

いつもAlarmMangerには悩まされるのので、再度調べてみたときの備忘録。。version追従辛い。。 AlarmManagerで設定するサンプル Context context = ....; // AlarmManagerを取得する AlarmManager alarmManager = (AlarmManager) context.getSystemService(C…

Android7.xで電話・通話の自動応答できるようにするまで

Androidはバージョンが上がるごとにセキュリティ対策が進み、利用できなくなるAPIがある。 電話の自動応答もその一つで。数少ない情報も使えない場合が多い。 調べてやってみたこと ITelephonyを使って、acceptCall()を実行する(The internal ITelephony.aid…

【小ネタ】取得したファイルをURIをRetrofitで送信する

表題まま。取得したファイルをURIをRetrofitで送信したときの備忘録。 そのままだとうまくいかないので、RetrofitをRequestBodyを継承して、 writeTo()時にファイル読み込むようにするといいっぽい private fun createRequestBody(uri: Uri, context: Contex…

AndroidでRetrofit2をつかってみた

AndroidでAPIクライアントライブラリのRetrofit2を使ってみたときの備忘録。 build.gradle // Retrofit compile 'com.squareup.retrofit2:retrofit:2.3.0' // OkHttpのログを見たいとき compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' // Adapte…

Windows10のWSLで、Python3+Djangoしたい

やっと、Windows10のWSLを触るように。。Python環境を整えてた時の備忘録。 やったこと $ python -V # => Python 3.6.5 $ pip -V # => pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6) $ virtualenv --version # => 16.0.0 1. pipのインストー…

DjangoでRESTfulなAPIしてみた

DjangoでREST APIを簡単に作れるフレームワーク(djangorestframework)を使ってみた。 サクッと作れるので、いい感じ! インストール とりあえず、pipでインストール $ pip install django djangorestframework インストールしてたら、rest_frameworkを追加 I…

Django+REST+JWTでWebAPIを簡単認証

Django REST Frameworkを使って、WebAPIの認証をJWTにしたとき備忘録。 インストール $ pip install django djangorestframework djangorestframework-jwt 全体の設定 settings.pyに設定を追加 REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ( 'rest_fr…

Djangoプロジェクトではじめにやること:ディレクトリ構成編

個人的な備忘録。ひさびさにDjangoプロジェクトを最初から作ると忘れる。。 virtualenvの用意 $ mkvirtualenv --no-site-package sample_project プロジェクトの作成 $ python pip install django $ django-admin startproject sample_project settingsを分…

Python3.4新機能:便利なEnumをDjangoのModelでもつかう

Python3.xの新機能ネタ。3.4でEnumが入ったらしい。。便利。 Enumを使って、DjangoのModelのChoiceに利用してみたときの備忘録 Enum便利 form enum import Enum class NumStatus(Enum): ONE = 'いち' TWO = 'に' THREE = 'さん' # name or valueでメンバーア…

Pythonのフォーマットのメモ

Pythonのフォーマットする方法がいろいろあるっぽく、調べた時の備忘録。 フォーマットの種類 num = 1000 ### str.format() print('{:,.2f}'.format(num)) # 1,000.00 ### f文字列:Python3.6の新機能 print(f"{num:,.2f}") # 1,000.00 指定する書式文字列は…

Python3.7 x Data Classes(データクラス)

Python3.7の新機能で、Data Classesが追加されたよう。素敵すぎる。。 @dataclassesデコレータをつけると、initやstrを自動生成してくれる仕組みらしい。 import dataclasses @dataclasses.dataclass class InventoryItem: '''Class for keeping track of an…

bashで変数展開: sedを使わず文字列置換

あまり使わないのだけれど、bashの変数展開について調べたので、その時の備忘録。 意外といろいろできて便利!! #!/bin/bash FOO='AB-AB-CD-CD' ### 文字列置換 # 最初の一致のみ: ${変数名/置換前文字列/置換後文字列} echo ${FOO/AB/ab} # => ab-AB-CD-C…

【小ネタ】Djangoでメール送信

Djangoでメールを送るときの備忘録。 よく使うけど、よく忘れるので。。 from django.core.mail import send_mail send_mail( 'Subject here', 'Here is the message.', 'from@example.com', ['to@example.com'], fail_silently=False, ) メールのバックエン…

KotlinでDataBindingをはじめるときの簡単なメモ

ひさびさにKotlinしたらDataBindingで悩んだので、その時の備忘録。 Gradle 要点のみ。kaptを使う。 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' // F…

Androidで画面表示時にフォーカスしたくない

画面表示時、初期状態ではキーボードを表示してほしくないときのあれ。 フォーカスせずにキーボードが表示されないようにする <EditText/> <TextView android:focusable="true" android:focusableInTouchMode="true"> <requestFocus /> </TextView> 逆に、フォーカスする <EditText> <requestFocus /> </EditText> <TextView/> 参考にしたサイト様 【Android】画面起…</textview/></edittext/>

AndroidのFAB(Floating Action Button)の色/サイズを変えたい

AndroidでFABのサイズを変えたかったので、いろいろ調べたときの備忘録 もとのサイズを変更しているので、正攻法じゃない感が半端ない&全体に適用されるけど。。 色を変える(Layout XMLのbackgroundTint) 色を変える場合は、backgroundTintすればOK

Android x Toolbar x SearchView|常に検索バーを表示していたい

Toolbarに検索バーを表示させたいなぁと思い、いろいろ調べたときの備忘録 ActionViewを使うサンプルはよくあるけど、タイトルの代わりに表示する例って少ない。。。 虫眼鏡アイコンを表示して、必要に応じて検索バーを表示する よくあるサンプル。 検索ボタ…

Amazon Linux2+Apache+virtualenv+python3+Djangoでアプリをデプロイ

Amazon Linux2がリリース版になってから、Djangoアプリをデプロイしたので、 その時の備忘録φ(..)メモメモ 特に、python3のインストールがつらかった。。 各種バージョンは以下の感じ $ cat /etc/system-release Amazon Linux 2 $ httpd -v Server version: …

【小ネタ】Pythonでいい感じに固定小数点を表示する

formatの仕方はいろいろあるが、いい感じには表示してくれない... 「"g".format(...)」だと、指数表示なってしまう 「"f".format(...)」だと、有効桁まで0埋めされてしまう 固定小数表記で、無駄な0は表示してほしくない場合のフォーマットはないので、 rstr…

Pythonで並列処理(Joblib)

Pythonで並列/並行処理するのは、Joblibがよいらしいので、使ってみた。ときの備忘録φ(..)メモメモ インストール $ pip install joblib 使い方 from joblib import Parallel, delayed def do_execute(param): # 関数の処理 if __name__ == "__main__": # マ…

【Android】Tablayoutでタブの幅を広げたり、タブの文字サイズを変えたい

小ネタ。Tablayoutは便利。 タブレットでもタブの幅を広げる Material Design的には、タブレットでタブが2個のときは、 タブのサイズを小さくするらしい。。 <android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMaxWidth="0dp" app:tabGravity="fill" app:tabMode="fixed" /> app:tabMaxWidth="0dp"が重要らしい タブの…</android.support.design.widget.tablayout>

【Android】 特定のViewのスクリーンショットを共有する

SNSなどへのシェア機能などで、画面のスクリーンショットを共有したかった。 Viewごとでキャプチャできるようなので、その時の備忘録φ(..)メモメモ View view = ...; // スクリーンショットを取りたいView // Viewのスクリーンショットを取得 File file = ne…

【Android】外部URLから画像を直接共有する

Picassoで読み込んでキャッシュをShareCompatで共有するのがよさそう public void shareImage(String url, final AppCompatActivity activity) { Picasso.get().load(url).into(new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso…

【Android】targetSDK27でwindowIsTranslucent=trueを使うとAndroid8.0でCrashする

タイトル通り。。かなり、はまったので、備忘録φ(..) targetSDK=27で<item name="android:windowIsTranslucent">true</item>を使うと、Android8.0でCrashする Androidのバグらしい。targetSDKを26に下げると問題なく動作する Android8.1では修正されているらしい まさか、SDK側の問題とは。。いろいろ変えても…

古いAndroidOSでもVectorDrawableを使いたい

VectorDrawable便利。ただ、Android4.4など古いSDKでは、注意が必要。。 基本は、Support Libraryをインポートして、AppCompatActivityとかapp:srcCompatを使うOK ただ、Drawableを取得する際には、ContextCompatを使うだけではだめだった。。 ポイントは2つ…

Windows Subsystem for Linuxの導入とCygwinからの移行

Windows Subsystem for Linux(WSL)にUbutnu18.04が追加されたそうなので、 そろそろCygwinからの移行を考えたときの備忘録φ(..)メモメモ インストール Windows Subsystem for Linux の有効化 「プログラムと機能」>「Windows機能の有効化または無効化」から …

Python2.7でGoogle Cloud Storageを使ってみる

GCS(Google Cloud Strage)を使う機会があったので、その時の備忘録φ(..)メモメモ 用意されているバインディングライブラリもシンプルでいい感じ♪ インストール $ pip install --upgrade google-cloud-storage pythonでファイルのアップロード from google.cl…