2019.8の1ヶ月間に書いた記事

最近はSwiftばかり書いています www.letitride.jp

2019.7の1ヶ月間に書いた記事

Vue.jsに入門しました。 www.letitride.jp

今月書いた記事

www.letitride.jp

今月書いた記事

最近はこっちのブログに投稿しています。 見ての通りAndroid Kotlinばかり😅 www.letitride.jp www.letitride.jp www.letitride.jp www.letitride.jp www.letitride.jp

Maps Android API: Google Maps Android API v2 only supports devices with OpenGL ES 2.0 and above

Androidでgoogle mapを表示しようとしてこういったエラーが出る E/Google Maps Android API: Google Maps Android API v2 only supports devices with OpenGL ES 2.0 and above E/eglCodecCommon: glUtilsParamSize: unknow param 0x00008cdf 何故かエミュレ…

kotlinで複数のAsyncTaskLoaderでカジュアルにview操作を行う

複数のAsyncTaskLoaderを実行して非同期でview操作を行いたかったので。thread立ててhandlerで処理すれば手っ取り早いのだが、Androidでthreadを乱発させるのはお作法が悪いようなのでAsyncTaskLoaderでやることにした。 ベースとなるAsyncTaskLoaderの実装 …

kotlinでinner class

inner宣言をした時、外クラスのprivateメンバにアクセスできる。 class MainActivity : AppCompatActivity() { private var ret = 0 inner class Hoge: Int{ fun foo { return ret } } ...

kotlinでListViewのカスタムlayout

SimpleAdapterの第5引数はintArrayOfじゃないと怒られる。 var data = arrayListOf( hashMapOf<String,String>("title" to "AAA", "tag" to "a", "desc" to "111"), hashMapOf<String,String>("title" to "BBB", "tag" to "b", "desc" to "222"), hashMapOf<String,String>("title" to "CCC", "tag" to "c"</string,string></string,string></string,string>…

kotlinでsetOnScrollListener

サンプルはListViewの末尾のRowAtが10の時にLog.dを吐く p1は表示中の先頭のRowAt(他Viewに潜っている時も表示中とみなす), p2は表示中のRowCount, p3はListViewに渡されたArrayAdapterのArrayCount よって、末尾のRowAtを求めるには p1+p2になる。 list.set…

kotlinでMultiChoiceModeListener

ListViewのandroid:choiceMode="multipleChoiceModal" のやつ list.setMultiChoiceModeListener( object: AbsListView.MultiChoiceModeListener{ override fun onCreateActionMode(p0: ActionMode?, p1: Menu?): Boolean { return true } override fun onPre…

kotlinで動的ListView生成 & クリックイベント

すっきり記述できる(^_^) val data:ArrayList<String> = ArrayList() data.add("1") data.add("2") data.add("3") val listView: ListView = findViewById(R.id.list) list.adapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data) list.setOnItem</string></string>…

kotlinでRatingBar

SAM変換でサクっと書ける val bar = findViewById<RatingBar>(R.id.rating) bar.setOnRatingBarChangeListener { ratingBar, fl, b -> Toast.makeText(this, fl.toString(), Toast.LENGTH_SHORT).show() }</ratingbar>

kotlinでspinner動的生成

fun createSpinner(){ var list = ArrayList<String>() list.add("1") list.add("2") list.add("3") val adapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, list) val spinner = findViewById<Spinner>(R.id.spinner) spinner.adapter = adapter }</spinner></string></string>…

kotlinでspinner

setOnItemSelectedListenerではないので注意 val spinner = findViewById<Spinner>(R.id.spinner) spinner.onItemSelectedListener = object: AdapterView.OnItemSelectedListener { override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long)</spinner>…

kotlinでSeekBar

val seek = findViewById<SeekBar>(R.id.seek) seek.setOnSeekBarChangeListener( object : SeekBar.OnSeekBarChangeListener{ override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) { Toast.makeText(this@MainActivity, p1.toString(), Toast.LENGT</seekbar>…

kotlinでRadioGroup & RadioButton

関数リテラルの引数iに選択されたidが飛んでくる val rg = findViewById<RadioGroup>(R.id.rgroup) rg.setOnCheckedChangeListener { radioGroup, i -> val rb = findViewById<RadioButton>(i) Toast.makeText(this@MainActivity, rb.text, Toast.LENGTH_SHORT).show(); }</radiobutton></radiogroup>

kotlinのsetOnCheckedChangeListener

関数リテラルで書くとサクッと省略できる。 大変便利(^_^) val chk = findViewById<CheckBox>(R.id.chk) chk.setOnCheckedChangeListener { compoundButton, b -> Toast.makeText(this@MainActivity, if (b) "checkboxオン" else "checkboxオフ", Toast.LENGTH_SHORT).</checkbox>…

fileutils.rb:90: warning: already initialized constant FileUtils::VERSION

railsで /pathto/fileutils.rb:90: warning: already initialized constant FileUtils::VERSION なエラーが出た。 $ gem uninstall fileutils $ sudo gem update --default えいっとすると解決した

swiftで参照渡し

inout キーワードを使う func swap( a:inout Double) { a = 1.01 } var a = 2.03 swap(a:&a) print(a)

Windowsキーボードで無変換/変換キーを英数/かな入力切替

mac使いの人はWindowsキーボードの無変換/変換キーを英数/かな入力切替にすると使い易い IMEの設定からプロパティ -> 詳細設定 -> キー設定:変更 -> 無変換行の入力を[IMEオフ]に、変換行の入力を[IMEオン]にするとmacライクな操作ができる

Surface Proが便利

昨年の末に買ってて、ずっと積み置きしてたSurface Proを2ヵ月前から使い始めた。 今までコタツに入ってくつろいでる時、youtubeやちょっとしたブラウジングはMac book AIRで行ってたけど、これ手元に置換えた。 検索入力後、タブレットにして、楽な体制でブ…

インターフェース本を購入

たまたま図書館で手に取ったこの本が楽しかったのでamazonで購入 失敗から学ぶユーザインタフェース 世界はBADUI(バッド・ユーアイ)であふれている作者: 中村聡史出版社/メーカー: 技術評論社発売日: 2015/01/21メディア: 大型本この商品を含むブログ (2件) …

railsでMTAをG Suite SMTPに

普通のGmailだと、fromアドレスがどうしてもgmailのリレー先のアカウントになってしまったので。 まずはじめにG Suiteの管理者アカウントが必要。管理者アカウントで SMTP リレー: Gmail 以外の送信メールを Google 経由にする - G Suite 管理者 ヘルプ のサ…

古いbrewが入ったmacにrbenvを入れる

OSアップデート済みの旧macにrbenvを入れようとすると以下のエラーが。 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require':/usr/local/Library/Homebrew/download_strategy.…

rails DBのトランザクション

ActiveRecord::Base.transaction do〜endの間に記述する ActiveRecord::Base.transaction do if !User.create( args ) #失敗時の処理 end if !User.category.create( args ) #失敗時の処理 end end

rails勉強してます3

よくあるファイルアクセス権限系の話しでアップロードされたpdfをDB保存 & embedタグでDBに保存したpdfを表示 migration $ rails g model pdf name:string data:binary $ rails db:migrate controller #html表示 def template @pdf = Pdf.new end #DB保存し…

rails勉強してます2

はまったりしながらだけど。 objectの情報をログにdump # plain logger.debug object.inspect # yaml logger.debug object.to_yaml FKのnilを許可 belongs_to :tablename, optional: true レコード削除時にリレーションテーブルも削除する has_many :tablena…

rails勉強してます

rails勉強してます このあたりを再学習 debugger コールバックメソッド validationのコンテキスト別呼び出し S3へのファイル保存 多対多のリレーション定義 テスト ちなみにcloud9 + EC2のt2.nanoだとメモリが足らなくて途中からテストが走らなくなります(^_…

退職します

ほぼスタートアップから11年間勤めた会社を退職します。 5月末日の退職予定で現在、40日の有給消化中です。 有給中、暇なので初対面の方でも、飲みにとか誘ってもらえると喜びます。 このブログはこのまま残しておいて(気がむいたら今後も月1更新するかも…

通信端点が接続されていません

lsを打った時にs3fsでマウントしてあったディレクトリが以下のレスポンスを返す時がある -bash-4.1$ ll ls: dirname にアクセスできません: 通信端点が接続されていません 合計 1 d????????? ? ? ? ? ? dirname/var/log/messages Feb 28 06:40:57 hostname k…