サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
taro.hatenablog.jp
WYSIWYGエディタに憧れてContentEditableをいじってみると、けっこうな底無し沼だと。気づいたときにはどっぷり浸かってるやつ。 ググればそれなりに知見が見つかるし、良い感じのライブラリもある。けど僕がやりたかったことは、自分でコードを書いて実現するのが早いんじゃないかなーと思って、沼にダイブした。 やりたいことは、ワープロソフトみたいなやつというよりも、編集しているテキストのスタイルがリアルタイムに変化するMarkdownエディタっぽいやつ。 つまりユーザがスタイルを当てるんじゃなくて、ユーザが入力したテキストに応じてスタイルを当てたい。 より正確には、テキストの見た目をおしゃれにするだけではなくて、もっと高度な何か、Reactのコンポーネントとか、を埋め込むとかしたかった。 Draft.jsやEditor.jsのような、ContentEditableを扱いやすくしてくれる
先月11月に爆誕した Compose for Desktop というPC向けGUIアプリケーション・フレームワークを味見、ということで簡単なメモ帳アプリをつくってみました。 コーディングや調査した内容を順に紹介していくので、擬似的に開発を体験できて、読者の方も一緒に味見ができればと思います。 なお、このエントリはUbie Advent Calendar 2020の12/11分です。 昨日は@hassy_ubによる「30歳。働き方を見直したら、医療xIT企業のUbieにたどり着きました。」でした。 もくじ Compose for Desktopとは つくり始める テキスト編集エリアを設置する メニューを設置する ファイルの読み書き ダイアログを表示する まとめ Compose for Desktopとは www.jetbrains.com 上記がCompose for Desktopの公式サ
このコロナ禍において、ZoomやGoogle Meetを使ってオンラインミーティングを行う人が増えたのではないでしょうか。 その際にPC画面を共有して、スライドなどの資料を参加者全員で眺めるということをしていると思います。 ビデオ会議ツールのチャット機能は、わざわざ発言するまでもないようなちょっとしたリアクションなどを示すのに手軽に使えて便利ですが、ちょっと無機質な気もします。 そこで、ニコニコ動画のようにコメントが画面上を流れていく、そういうツールがあったら盛り上がりそうですよね! 実は、そういうツールは世の中にすでにあります。 commentscreen.com 投稿者は自らニックネームをつけてコメントを投稿できます。 普通のコメントと質問を区別して投稿することもできて便利です。 絵文字がふわふわ〜って出てきてかわいいです。 が、ニックネーム方式だとユーザ依存で、匿名を許容しています。
なんと早いもので!AI医療スタートアップのUbie(ユビー)株式会社に入社して、2年が経ちました。あっと言う間ですね〜。 Ubieは来月に4期目を迎える、まだまだ若いスタートアップ企業ですので、そういう意味で2年という期間は長く、今と入社当時とでは状況がまるで違います。 このエントリでは、僕にとってのUbieを「THE TEAM」の中で語られている組織のエンゲージメントの4Pという観点で、入社当時と現在を比較しながら考えていきたいと思います。 もくじ Philosophy(理念) Profession(仕事の内容) People(人) Privilege(待遇) おわりに Philosophy(理念) Ubieが掲げるビジョンは「Hello, healthy world」です。 健康が当たり前に存在する世界を実現したいと考えています。 そして、それを実現するため「テクノロジーで人々を適切な
Kotlin技術カンファレンス、今年も開催! 日本Kotlinユーザグループ(JKUG)主催のKotlin技術カンファレンス「Kotlin Fest 2019」を開催します。 前回のKotlin Fest 2018のご好評を受け、今回は規模を大きくします! 日程2019年8月24日 土曜日 会場東京コンファレンスセンター品川 主催日本Kotlinユーザグループ コンテンツ3トラック 15セッション、企業展示ブース(予定) 参加人数500名程度 チケットは7月上旬に販売開始予定です。 詳細は下記サイトをご覧ください。 kotlin.connpass.com Kotlin Fest は一貫して「Kotlinを愛でる」というテーマで企画・運営しています。 ご来場のみなさまに、Kotlinに関する知見の共有と、ほかのKotlinファンとの交流を楽しんでいただければ幸いです。 今回はご講演者さまを公
先日 結婚式を挙げました。 教会でやるやつと、飲み食いしながらワイワイやる披露宴を都内某所にて。 最高に楽しかったけど、初めて自分の結婚式を開催するということで、準備は相当しんどかったです。 ということで、このエントリは結婚式とその準備の振り返りについて書こうと思います。 結婚式のなんやかんや一般論 ここらへん言いたいことたくさんあるけど、ちょこっと列挙するだけにとどめておきます。 そもそも何度も利用するものではないのでユーザーが繰り返し学習するような構造ではない そのためかどうか、ユーザーと提供者(式場側)に情報の非対称性がある 初回の見積もり時よりも最終的な請求額が高くなるのは、そうした理由が大きく占めるのではないか 情報の非対称性、人生一度きりの希少性だけでなく、ご祝儀前提の強気な価格設定 結婚式への個人的な思い 妻と出会うずっと前から「結婚したら友達を呼んで結婚式をやりたい」と思っ
8月25日に国内初となるKotlin技術カンファンレンス「Kotlin Fest 2018」を開催しました。 1dayイベントで11のセッションがあり、来場チケット368枚はありがたいことに完売! ご協賛いただいた企業様は18社に上ります。 午前中のオープニングセッションに始まり、夜の懇親会まで大いに盛り上がりました! 大きなトラブルも、滞りもなく、笑顔と活気しかない、とても楽しいイベントでした。 kotlin.connpass.com 当日受付 会場は東京コンファンレスセンター・品川様にお貸しいただきました。 広くて清潔感のある会場 受付では、PeatixのQRコードチケットを確認して、ネームプレートとKotlin Festのロゴ入りトートバッグをお配りしました。 受付からオープニングセッションまでの時間には、ホワイエにてドリンクと朝食が振舞われました。 オープニングセッション オープニ
本日、30歳の誕生日を迎えました 🎉 やはり、ひとつの区切り感はありますね。 せっかくなので、僕のこれまでのプログラマー人生について話します。 完全にチラ裏の自分語りです。 ドラマチックな展開もなければ、知見も教訓もありません。 ただ、昔のこと、プログラミングを始めた頃のことを思い出して整理してみたら、自分が初心に返るための便利アイテムになるじゃないかなと思い、 記憶があるうちに書いておきます。 簡単にまとめると コンピュータとその面白さを知った Javaは最高のおもちゃだった 勉強会やコミュニティに参加するようになった マイナーなプログラミング言語と出会った 毎日楽しくお仕事してる これまでの人生を振り返って、一言で表すと「運がよかった」ですね。 夢中になれるもの、仕事としてやっていきたいものが見つかったのは、とてもありがたいことですが、運とか偶然と言うほかありません。 そして、これも
本邦初!Kotlin 1day 技術カンファレンス Kotlin Fest 2018 を開催します!! 日程2018年8月25日 土曜日 会場東京コンファレンスセンター品川 5F 主催日本Kotlinユーザグループ コンテンツ2トラック 10セッション、企業展示ブース(予定) Kotlin Fest 2018 は「Kotlinを愛でる」をビジョンに、Kotlinに関する知見の共有と、Kotlinファンの交流の場を提供する技術カンファレンスです。 プログラミングをより楽しくしてくれるKotlinへの関心は日々高まっており、それが本イベントの開催へと繋がりました。 Kotlinの技術にフォーカスしたコンテンツを取り揃えることで、参加者の皆様にKotlinをより深く学んでいただき、 そして、よりKotlinを好きになっていただけるイベントにするべく、企画を進めております。 2018年の初めに開催
5月1日付でUbie(ユビー)というAI医療のスタートアップに入社します! www.company.dr-ubie.com Ubieってどんな会社? Ubieは、医療にコミットする会社です。 その掲げるミッションは「医療と人々の医療情報格差をなくすために誰でも自分にあった医療にアクセスできる世界をITによって実現可能なものにする」です。 医療に関する情報を持っている人とそうでない人、健康に対して意識の高い人とそうでない人がいて、その差をITの力で埋めたいと考えています。 例えば、症状を自覚していても、きっと大丈夫だろうと放置してしまい、実は重大な病気だった、ということは珍しいケースではないでしょう。 「きっと大丈夫だろう」という思いの裏にあるのはコスト意識で、医師にかかるためのお金であったり、時間がなかったり、単純に面倒に感じているかもしれません。 この経済的、物理的、あるいは心理的なハー
タイトルのとおり、今年の4月末をもって、4年半在籍したエムスリー株式会社を退職します。 いわゆる退職エントリで、エムスリーへの感謝の気持ちを込めて、また自身の決意の表明として書きました。 エムスリーが長澤太郎を育てた 私は大学卒業後、メーカー系SIerにおいてSEとしてキャリアをスタートしました。 いわゆる「SE」よりもプログラマーを志望していた私は、その1年半後である2013年10月にエムスリーへ転職しました。 エムスリーとの出会いは、面白い偶然なのですが@yusukeさんに紹介されたことです。 当時と比べると今は、エムスリーの知名度はエンジニア界隈に広まりつつあると思いますが、私はそのときに初めてエムスリーという会社を知りました。 エムスリーは、医療への貢献を使命とする会社です。 「インターネットを活用し、健康で楽しく長生きする人を一人でも増やし、不必要な医療コストを一円でも減らすこと
droidkaigi.jp DroidKaigi 2018に参加してきました! KotlinがAndroid公式言語になってから初めてのDroidKaigi。 そういうこともあって、多くの発表のデフォルト言語としてKotlinが使われており「Android界隈でKotlinはもはや普通なんだなぁ」と感じました。 そんな中、私は「はじめてのKotlinハンズオン」というタイトルでハンズオン講師を務めました。 去年の反省を生かし、大きくスコープを削って、Kotlinの本当に入門的な部分にフォーカスしました。 簡単に振り返ると よかった点 参加者に難しい印象を与えず、内容を理解していただけた 開発環境としてWebブラウザで使用できるTry Kotlinを採用したため 参加者の事前準備が不要で、負担を減らすことができた 当日の環境トラブルがなかった 課題の解答例を、すぐに実行できる形で共有できた
※下記URLのサイトを参考にしました。英語、または技術的な知識が至らず、内容に誤りが含まれるおそれがありますので、ご了承ください。 ※本エントリは参考サイトの翻訳をベースに、加筆・変更を施した構成となっています。 ※サンプルコードは参考サイトから引用しています。 参考サイト http://confluence.jetbrains.net/display/Kotlin/Pattern+matching パターンマッチングは、オブジェクトが特定の構造を持っているかどうかをチェックすることを私たちに可能ならしめます。例えば、二分木のノードが両方とも子を持っているとか、子を持たない左の子を持っているとか。 パターンマッチングの演算子(isと!is) パターンマッチングは、パターンマッチに成功した場合にtrueを、それ以外はfalseを返すis演算子によって行われます。その否定形は!isです。パター
国内発 仮想通貨のモナーコインが熱いです。 その価格は、年初から600倍以上にもなったとか! 私は乗り遅れまいと先月末あたりに買ってみました。 値動きが激しく持っているだけで面白いです。 なにより、日本の仮想通貨という誇りとモナーのかわいさが最高ですね。 で、値動きが激しいのでチャートが気になってしかたないわけです。 しかし(あることはあるんですが)よさげなチャートがないのが残念です。 そこで、自分で作ってしまおう!というのが今回のモチベーションです。 第一歩として取引情報を取得するところです。 Zaifは、仮想通貨の数多くある取引所のひとつです。 ここでは便利なAPIが提供されています。 ドキュメントを眺めてみると、 現物公開APIのストリーミングAPIが提供されているようなので、これを今回は使います。 公開APIなのでAPIキーなどが不要で、すぐに使い始めることができます。 WebSc
JetBrainsによるKotlinのカンファレンス「KotlinConf 2017」に参加してきました! 11月2日と3日の2日間開催で、場所はサンフランシスコです。 このような大規模なKotilnカンファレンスは初めての開催となります。 1,200枚のチケットは完売とのことです。 本エントリは、KotlinConf参加を含む雑な旅行記です。 技術的な話はCA.kt #4 (Kotlin Conf報告会)で発表します。 私は「Spring and Kotlin」というタイトルで発表する予定です。 ちょっと遡って、一週間前 Kotlinの解説書で、世界で一番有名なものといえば「Kotlin in Action」でしょう。 その邦訳書を3人の仲間たちと執筆しました。 けっこう苦労したんですが、予定どおり10月31日に発売することができました! 「これを持ってKotlinConfに臨めば、原著
blog.jetbrains.com 苦節5年、Kotlinエバンジェリストを自称して啓蒙活動に励んできましたが、ついに! KotlinがAndroidアプリの開発用言語としてGoogleのお墨付きをもらいました! おめでとう! 毎年毎年、Google I/Oのキーノートを見ながら友達と「今年はKotlin来てほしいなー」なんて話していましたが、まさか今年来るとはね。 KotlinでAndroidを始める方は拙著がおすすめです! Kotlinスタートブック 作者: 長澤太郎出版社/メーカー: リックテレコム発売日: 2017/03/21メディア: Kindle版この商品を含むブログを見る また、日本Kotlinユーザグループでは勉強会や交流会を開催していますので、興味ある方はぜひ! kotlin.connpass.com
3/9(木)、3/10(金)にDroidKaigiに行ってきました。 2日目にはKotlinハンズオンの講師を務めました。 KotlinとAndroidを絡めたハンズオンをやるのは実は初めてで、結果的にはおおむね成功でしたが、課題がいくつか残りました。 90分という枠にいろいろ詰めすぎたことを一番反省しています。 RetrofitとDagger、async/awaitはスコープに含めるべきではありませんでした。 これらを盛り込んだ理由は、RetrofitやDaggerなど AndroidJavaで便利に使えるライブラリをKotlinからも難なく使えるんだよ ってことを示したかったからです。 async/awaitは、DroidKaigiより1〜2週間前にKotlin 1.1がリリースされたこともあり「せっかくだから紹介しよう」というノリで入れてしまいました。 ご協力いただいたチューターの方
blog.jetbrains.com Kotiln 1.0.6がリリースされました! 同時に面白いプラグインが2つリリースされました。 all-open compiler pluginとno-arg compiler pluginです。 all-open compiler pluginは、指定したアノテーションがついたクラスが自動でopen指定されるという機能を持ちます。 no-arg compiler pluginは、指定したアノテーションがついたクラスに、自動でデフォルトコンストラクタ(引数を持たないコンストラクタ)を生成してくれます。 導入方法は、冒頭に示したKotlin公式ブログを参照してください。 今回はこれらのプラグインを用いることで、Realmが使いやすくなることを示したいと思います。 プラグインなし まずは普通にKotlinだけを使って、Realmオブジェクトを定義してみま
練習用のテーブル create table articles( id integer primary key, title varchar(20) not null, author varchar(20), content text not null ); 原始的な方法 Javaと同じ方法でゴリゴリ書く。 import java.sql.DriverManager import java.sql.ResultSet import java.sql.Statement import java.sql.Connection fun main(args: Array<String>) { val articles = findAllArticles() println(articles) } fun findAllArticles(): List<Article> { var conn: Con
今年もアドベントカレンダーの季節がやって参りました。 ということでKotlin Advent Calendar 2016、1日目の記事です。 2011年にKotlinプロジェクトが発表され、2012年に実装が公開されました。 2013年は知る人ぞ知る言語という位置付けで、2014年、2015年は時折バズっては徐々にファンを増やしていった時期です。 そして、2016年最大の出来事は何と言ってもver 1.0のリリースです。 勉強会や開発事例、求人情報も増え、「実用の年」と言えるかもしれません。 本記事では2016年のKotlinにまつわる出来事を振り返りたいと思います。 Kotlinの成長 2月に新しいロゴとともに、ver 1.0.0がリリースされました。 さらに、同じタイミングでSpring BootのKotlinサポートがリリースされました。 3月にはAndroidにおける、Jack a
こんにちは、Kotlinエバンジェリスト(自称)のたろーです。 「Kotlinスタートブック - 新しいAndroidプログラミング」というタイトルで、国内初となるKotlin入門書を執筆させていただきました。 リックテレコムさんより出版されます。7月17日発売予定です! タイトルに「Android」と含まれていますが、Kotlin文法もがっつり解説しているので、Android開発者以外にも十分役立つと思います! Kotlinスタートブック -新しいAndroidプログラミング 作者: 長澤太郎出版社/メーカー: リックテレコム発売日: 2016/07/13メディア: 単行本(ソフトカバー)この商品を含むブログを見る 本書の内容 Kotlinというプログラミング言語の解説書です。 3部構成になっています。 第1部 導入部分です。 概要・背景、Hello Worldなどで、Kotlinとはど
今日、ビズリーチさんの社内勉強会でKotlinについて発表してきました。 @takezoenさんからオファーをいただいたときは驚きましたが、とても楽しく発表させていただきました。 講演、執筆の依頼は、いつでもお待ちしていますので お気軽にお声かけください! 本日の資料はこちらです。 ハッシュタグ活用術 今日の勉強会で「ハッシュタグ #biz_kt でツイートしてね!」と言ったところ、「こんなの初めての試みだ」という声をいくつか聞きました。 私は発表するときに、よくハッシュタグの案内をすることにしています(@yusuke師匠の教え)。 ハッシュタグがあることで、より盛り上がったり、勉強会に参加していない人にも伝わったりと、いろいろいいことがあります。 ハッシュタグに関して、私が工夫していることを列挙します。 発表するときにハッシュタグを案内する 質問は、基本のハッシュタグと #q を一緒に、
reified type paramter = 具象化された型パラメータ 名前が強そう。 目的としてはKotlinでJavaクラス(Classインスタンス)を得るための関数javaClassをもっと楽に使えるようにすることっぽい。 例えば今までは、こういう関数↓を作るには引数としてClassインスタンスを受け取る必要があった。 fun getName(clazz: Class<*>): String = clazz.getSimpleName() まーこんくらいなら別にいいんだけど、これを使う側がちょっとあれになる。 val name = getName(javaClass<StringBuffer>()) println(name) // => StringBuffer getName(javaClass<StringBuffer>())ってのがダサい。 getName<StringBu
2月18日、19日に開催されたDroidKaigi 2016に行ってきました。 19日には、50分枠でKotlinについて発表しました! スライドは、最後に載せておきます。 動画は後日公開されるようなので、チェックしてみてください。 運営のみなさま、ありがとうございました〜!! CFP 講演応募は一番乗りでした。 しかも、かなり気合の入った内容で応募しました。 前回のDroidKaigiでKotlinの導入的な話をしたので、 今回はもっと実践的なもの、かつ私ならではの内容になるように意識しました。 発表 15日のKotlin 1.0リリースが影響してか、参加者のKotlinに対する関心の高さが伺えました。 Kotlin枠既に大行列できてるぞ!!! #DroidKaigi #DroidKaigiB— たくじ (@takuji31) February 19, 2016 DroidKaigiから
すごい!いつの間にかIntelliJ上でKotlinのREPLが動かせる!しかも指定したモジュールの環境上で動く(依存ライブラリが解決された上でKotlinコードを試せる)— たろう (@ngsw_taro) 2015, 12月 6 Kotlin Advent Calendar 2015の6日目の記事です(急遽担当変更になりました)。 まだ12月6日の32時なのでギリ大丈夫! 昨日は@chibatchingさんのアプリからサーバまで全部Kotlinなお手軽サービス開発 でした。 Android Studio上でKotlinプラグインは1.0.0-beta-3595-IJ141-11で試してみました。 メニューバーから「Tools」→「Kotlin」から選べるアイテムの中に「Kotlin REPL」が追加されていました。 ここからREPLを起動すると、なんとモジュールの環境上で動きます。 そ
でっかいJavaイベントであるJJUG CCC 2015 Fallで発表しました。運営もしました。パネルディスカッションのモデレータもしました。 パネルディスカッションは@maaya8585のこの記事のとおりです。 楽しかったです。またやりたい。 発表スライドはこちらです。
12月になりました。2015年も残すところ1ヶ月ですね。 ということでKotlin Advent Calendar 2015の第1日目の記事です٩( 'ω' )و 年内にKotlin 1.0がリリースされるとの噂ですが、現バージョンは1.0-Beta2で、正式版リリースの足音が聞こえてきました。 正式版のリリースは、Kotlinユーザが待ちに待った瞬間です。 もちろん私もその一人です。 特にKotlinエバンジェリストを自称し、以前から活動していたこともあってその感動はひとしおでしょう。 本エントリではKotlinの思い出を時系列で綴っていきたいと思います。 そうそう、正式版がリリースされたときにはちょっとした誕生パーティーを開催する予定です。 と言っても内容はビアバッシュなLT大会です。 そこでも似たような話をすると思います。 Kotlinの登場と出会い Kotlinはロシアの島の名前で
KotlinにはClass Delegationという機能があります。 公式ドキュメントはこちら。 これの使い道について書きたいと思います。 そもそもClass Delegationって? Delegation、つまり委譲の仕組みです。 例えばこんな感じ。 // 挨拶する人のインタフェース trait Greeter { fun greet() } // Greeterの実装クラス(というかオブジェクト) object JapaneseGreeter: Greeter { override fun greet() { println("こんにちは") } } // ここでClass Delegationを使っている class Person(greeter: Greeter): Greeter by greeter fun main(args: Array<String>) { val p
Kotlinの関数リテラルはその引数が唯一つだけの場合、暗黙の引数としてitが使用できるのはみなさんご存知だと思います(暗黙の引数という言葉は正確じゃないような気がするけど気にしない)(知らない人は公式ドキュメントか今日発売のSoftwareDesignを見るといいよ)。 listOf(1, 2, 3, 4, 5) .filter { n -> 2 < n } // 引数を明示することも .map { it * 2 } // itを使うこともできる。 .let { println(it) } // => [6, 8, 10] Scalaっぽく Scalaの関数リテラルの暗黙の引数は、複数の引数に対応しています。それぞれ_で参照することになりますが、参照するたびに第一引数、第二引数のように変化します。 // Scala Seq(1, 2, 3).reduce(_ + _) こういう感じの暗黙
次のページ
このページを最初にブックマークしてみませんか?
『算譜王におれはなる!!!!』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く