サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
lab.astamuse.co.jp
自称データエンジニアのaranです。 月日の流れは早いもので、去年の9月以来の再登板になります 私ごとですが 先月に健康診断があり、試しに1日1食の生活を3ヶ月ほど実施してみました。 ストイックに毎日続けるのは無理なので、以下の条件下で試しました 1日1食だが、好きなだけ食べる 土日は食事制限しない ガマンできない時はチョコレート(一口分)を食べてよい。ただし3口分まで みんなと食事するときは、お昼を食べてよい 開始当初は、お腹がなりまくっていたのですが、しばらくするとお腹はならなくなります。 また、一番の体の変化は、昼以降に眠くならないことです。 (前日の睡眠時間次第のところはありますが) 友人によく、朝食べないと体にエネルギーがなく、パフォーマンスが...的なことを言われました。 ただ、私に限ったことですが、まったく問題なかったです。 むしろ、昼以降に眠くならず、集中力が続くので、作業
こんにちは!ICPの主にバックエンドの面倒をみているまるやまです。 今秋いよいよ2年ぶりにJavaのLTS版であるJava17がリリースされます。ICPのバックエンドではJavaを実行環境として利用しているので、次期LTSのリリースに合わせて実行環境の最新化を検討し始めました。が、軽い気持ちで調べ始めたところ、APIサーバだけでも思いの外やるべきことが多くて泣けました。今回はその辺の話でもしようと思います。 まずは結論から 現在のICPで実装しているAPIサーバの主要な技術スタックは以下のような構成になっています。 Play Framework 2.6 ScalikeJDBC3.4.x Scala 2.12.10 Java11 (旧AdoptOpenJDK) 上記を出発点として、今後APIサーバがJava17に対応した結果、以下のような構成にアップデートする必要がありそうです。 Play
開発部のにゃんです。主にバックエンドを弄っております。 Webアプリケーションではセキュリティ対策のためにランダムな文字列を使用する場面が多々あります。例えば CSRF対策のトークン OAuthやOpenID Connectで使用するnonce, state, code_verifier メールの到達確認用URLのトークン パスワードをhashする際に使用するsalt セッションID これらの値は単に衝突しなければOKというものではありません。十分なセキュリティ強度を確保するためには推測不可能なランダム値を使う必要があります。 以下は推測不可能なランダム値ではありません。セキュリティが求められる場面では使ってはいけません。 Math.randomなどの疑似乱数 日付やユーザ情報のハッシュ ではどのような値が適切なのでしょうか? /dev/randomと/dev/urandom Linuxに
この記事は 自然言語処理 Advent Calendar 2020 の25日目の記事です。 こんにちは、rinoguchi です。今年の4月に こちらの記事 を書いて以来、半年ぶりの投稿になります。 当社では、特許・研究課題・論文など多くの知的財産データを保持しています。これらのデータを活用するには、データに含まれる同一組織・同一人物に対して同一IDを付与してデータをグルーピングすることが必要であり、この作業のことを名寄せと呼んでいます。 今回はこの名寄せの仕組みについて紹介したいと思います。 大まかな処理フロー 当社では名寄せ処理を、まずそれぞれのデータソース(例えば特許や論文など)の中で実行し、次に異なるデータソース間で実行することで、最終的に組織ID・人物IDに対して特許・研究課題・論文などを紐づけたデータを生成しています。 とはいえ、データソース内名寄せもデータソース間名寄せも仕組
データはいささか奇妙な性質を持っています。なんらかの事象の記録という観点では、それは文明の出現と時期をともにします。それが電子的に記録され、流通するようになってからは、まだ日が浅いものの、現在では、私たちの生活において決定的に重要な意味を持っています。 はじめまして。じんと申します。当ブログでは初のお目見えと相成ります。どうぞよろしくお願いいたします。弊社には2020年1月より参画し、いわゆるデータ・サイエンティストとして勤務しておりました。講談社サイエンティフィク社様のデータ・サイエンスに関する一連の書籍の一部の執筆を担当させていただいたことがありますので、まあ、データ・サイエンティストを自称してもいいのではないか、とは思っています。 さて、「勤務しておりました」、と過去形となっているのは、どうも自分が現在している仕事はいわゆる純粋な「データ・サイエンス」と呼ばれるものではないのではない
前書き お久しぶりでございます。Scalaでバックエンドを開発しているaxtstar(@axtstart)です。 ずいぶん昔になりますが、OracleDBでアプリ開発をしていたころ、DBの中でデータが(なぜか)バイナリで格納されていて、そのビット演算を行いながら検索するみたいな案件をやったことがあります。はじめはアプリサイドからSQLで頑張って演算していたのですが、あまりにも遅くて、結局OCI(Oracle Call Interface)を利用して、C++でバイナリを扱うように書き換えたら激的に速度が改善したことがありました。 今回ふと思い立ち、Postgresqlってそういうことができるのかしら?と思い至り今回のブログ担当を利用して検証してみることにしました。 なので、(確実に)プロダクション環境で実施するのははばかられるような内容ですのでご注意下さい。 使用できる言語は... ちなみに
はじめまして、2019年10月に入社しました開発・インフラ本部の丸山と申します。 弊社テックリード(@yukung)がついに短パン*1で出社したという観測情報に触れ、いよいよ日本にも夏が到来したことを実感しているところであります。 さて、私が担当させていただいているInnovation Captital Pathfinder(以下、ICP)におきまして、このほど認証機能をKeycloakに移行したので、機能移行までに検討したことを振り返ってみたいと思います。 前置き 私たち開発しているICPは、弊社が抱える膨大な数の特許情報や科研費情報などをもとに、お客様の新規事業の創出を支援するサービスです。公式には2020年1月にリリースしていますが、実はPoCも含めると2018年から開発が続いている弊社では比較的息の長いサービスです。 弊社が抱える膨大な量のデータを、いかにユーザーが利用しやすい形で
こんにちは! 2019年11月に入社し、プロダクトマネージャーをしている竹村(@juntakemura_pdm)です。 今回が初ブログになります。 先月から開幕したプロ野球ですが、このブログを書いている時点で東京ヤクルトスワローズが単独首位に立っています。 スワローズファンの私としては非常に気分が良い日々を過ごしております。 滅多にないことなので記念に書かせていただきました。 さて、本題に入りますが、私は入社してから「転職ナビ」という転職サイトに携わっております。 転職ナビに関しては、以下のエントリで触れられているのでそちらもご覧ください。 lab.astamuse.co.jp PMとしてプロダクト作りに関わる中で、MVPに関する学びを多く得たので、今回はそれについてお話ししたいと思います。 前半はMVPに関する一般的な話となりますので、既に知っている方は読み飛ばしても構いません。 MVP
猫より犬好きプログラマのにゃんです。主な仕事はマサカリの投擲とベランダに来る野良猫の餌やりです。よろしくお願いします。 皆さんバージョン管理システムを使ってますか?今では多くの現場でGitを使っていると思います。ゲーム開発など巨大なバイナリのアセットが多い現場ではGitではなくプロプライエタリのPerforceを使用されているかもしれません。他にもGitと同時期に開発されたMercurialというツールもありますが、いずれにせよ現在のdevシーンではバージョン管理システムはあって当たり前のツールの一つになっています。 弊社ではGitを使っています。Gitは機能豊富ですがその分知られていない機能も多く、ネットを見渡せば色々な記事が転がっていますが、今回は私も一つGitの便利機能を紹介したいと思います。 worktreeで複数の作業ディレクトリを作る 複数のブランチを同時並行で修正したくなった
こんにちは。並河(@namikawa)です。 新型コロナウイルスが終息していくことを祈り、弊社もリモートワーク体制に移行しておりまして、私自身もほぼ自宅で過ごしている日々です。弊社では、従前よりフルリモートワークを遂行しているメンバーが数名いますので、各人のリモートワークへの移行も割とすんなり出来たのではないかと感じています。(細かい課題意識はもちろんありますが) さて、閑話休題。 このブログでも散々話題に出ているかと思うのですが、弊社では技術や投資にまつわるデータを大量に保有しておりまして、それぞれのデータの特性や用途によって、データストアを使い分けています。 その中でも、RDB には PostgreSQL が以前より活用されていまして、今日のエントリの趣旨は、この PostgreSQL の基礎ベンチマーク数値をバージョン毎に差異があるかを確認してみた記録となります。 ベンチマークの取得
こんにちは、開発部のnishikawaです。本日はpicocliというライブラリを使ってScalaでコマンドを実装する機会があったのでご紹介します。 コマンド作りあるある コマンドを作る時によく実装されるのが引数のパースです。これはどんな言語で実装されていても多くの人が実装すると思います。よく使われるのがgetoptsですが、これを使っても毎回引数のパースを作り込むのは面倒です。 もちろんjavaも例外ではないのですが、この実装が面倒で時間がない時はバリデーションを省略するような実装をすることも多いと思います。 コマンド作るならやっぱりpythonだよねー その点pythonだと、デフォルトで高機能な引数のパーサーがあります。それがArgumentParserです。これが存在することや便利なライブラリがあるのでコマンド作りはpythonでという人は多いと思います。 しかし、プロダクトの多く
初めまして。2019年6月にAstamuseにjoinした rinoguchi です。 ついに昨日、日本でも緊急事態宣言が出ましたね。小学校の休校も1ヶ月程度延長されましたし、会社もリモートワークにほぼ移行してますし、ここできっちりウイルスの拡散を防ぎたいところです。 ちなみに、妻がドイツに単身赴任中なのですが、ドイツでは感染者は多くて外出自粛モードになっているものの、現地の人たちはせっかくだからと日曜大工したり、庭を改造したりとそれなりに楽しんでいるみたいです。私たちも制限された環境の中ですが、せっかくなので楽しみたいですね! 屋根瓦. なんとなく並列処理を連想しませんか? はじめに それはそうと、私は当社で、特許データなどの名寄せ(同一人物に対してユニークなIDをふる作業)を担当しております。 特許の名寄せには、人物名・組織名・出願日・共同出願人など様々な特徴を利用するのですが、中国人
初めまして、7月にAstamuseにjoinしました、植木です。 ICPのエンジニアを担当しております。 私は、普段なら桜が咲いて楽しみが増える季節ですが、コロナの影響もあり外出を控えないといけないと思うと残念で仕方がない今日この頃でございます。 はじめに 今回は、Keycloakについて紹介する記事です。 弊社のICPで導入に向けて作業を進めており、非常に便利でしたので筆をとるに至りました! 下記のような方は是非見ていただいて、参考にしていただけると幸いです。 Keycloakを知らない方 ざっくり概要を知りたい方 導入を検討する方 概要 Keycloakとは、 OpenID / SAML の認証方式を用いて、「認証」「認可」を行うことができるOSS のミドルウェアです。 安全性をKeycloakが管理を担ってくれるため、アプリケーションはユーザーアクセス管理を意識することから解放され、
約半年ぶりの登場になります、データエンジニアのt-sugaiです。 最近アスタミューゼにも仲間が増えて、なかなかブログの順番が回ってこないので油断していました。 そんなわけで、今回は軽めな上にちょっとニッチなネタですが、ご容赦いただければと思います。 データパッチ、書いてますか? 最近はなかなか生のSQLを書いてデータパッチを当てるというようなオペレーションも減ってきてはいますが、やはり最後に頼りになるのは生SQL力だと信じています。 とはいえ、本番DBに対してSQLを発行するのはなかなか緊張感のあるオペレーションです。 できるかぎり、複数回の試験・検証を経てから投入したいですよね。 一方、ローカルや開発環境では安心して試行錯誤をしたいですね。 PostgreSQLでは、DDLやTRUNCATEにもトランザクションが有効になるので、これをうまく使うと大部分のオペレーションはトランザクション
どうもみなさまおはこんばんちわー。アプリケーションエンジニアの池田 (@yukung) です。3 度目の登場になります。 2020 年始まりましたね!時が経つのは早いもので私も入社してはや 1 年が経ちましたが、最近はエンジニアだけに限らず、様々な分野で専門を持つ方々が弊社に入社してきてくださっていて、そんな方々の自己紹介を聞くたびに、世の中には知らない世界がまだまだたくさんあるなぁ、と思う刺激的な毎日です。 2020 年の心配事は、オリンピックによる混雑ですねぇ。あまりに混雑するようなら、どうせなら期間中はリモートワークで切り抜けようかな、とか密かに思っています。(弊社には宮崎からリモートワークで働いてるエンジニアもいます) lab.astamuse.co.jp Akka HTTP はいいぞ さて、今回は何を書こうかと考えた時に、前々回、前回と技術的なことを書いていなかったことを思い出し
ご挨拶 新年、明けましておめでとうございます 本年もよろしくお願いいたします データエンジニアのaranです 昨年の6月以来、2回目の登場になります 去年の1月に入社して、ちょうど1年経ち 月日の流れの早さを感じています いきなりですが、皆様は年末年始をどのように過ごされましたでしょうか? 私は、家族の1人が、1月2日誕生日なこともあり 年始は、家族全員が本家に集まります 月日の経過と共に、甥っ子・姪っ子も増え、彼らも歳を重ねて行くので 年始の出費が、年々厳しくなっています (財布から諭吉がいっぱい消えてゆく・・・涙) 年始の出費が気にならないぐらい稼ぎたいって心に誓い、新年を過ごしました 前書き 前回はコレスポンデンス分析についてお話しさせて頂きましたが 今回は、BERTを使った文章検索についてお話しさせて頂きます 何でまた? 弊社では、特許情報を取り扱っていて ある特定の業界・分野の特
chotaroです。豊洲PITでたくさんの人と頭の中のOMOIDEを共有してから一週間、興奮冷めやらぬ日々です。 astamuse lab年内最後の記事になります! さて先日、ICPチームで利用しているGitLab CIの実行時間を4分の1にしました。 一度CIを動かすと1時間強待ちが発生する状況になっていたため、改善が急務でした。改善の結果と、どんなことをしたか自分の備忘も兼ねて書いておこうと思います。 悩める人の参考になれば嬉しいです。 before/after 10月に改善を実施したので、9月と11月の比較になります。 月 pipeline実行回数 合計実行時間(時間[分]) 平均実行時間 9月 164回 114時間[6880分] 0:41:57 11月 106回 15時間[945分] 0:08:55 1回のpipelineにかかる時間がなんと4分の1以下になりました(๑•̀ㅂ•́)
Gyopi です。 みかんが美味しい季節になりました。 風邪の予防にも、みかんいいですよ。 さて、今年を振り返る意味でも 今年取り組んだ取り組みの1つを振り返ります。 構成 リーンキャンバス のやってみたきっかけ CPF/PSF/PMF を理解・整理する 機能がフィットするかの検証が停滞した原因 次につなげる リーンキャンバス のやってみたきっかけ 当時、プロダクト開発を進めるにあたり開発側から「顧客のイメージが分からない」という声が多かったこともあり、 事業サイドが考えているターゲットを具体的に絞ってプロダクト開発を行うことを狙いました。 前提として私たちが開発しているInnovationCapital Pathfinder (通称 ICP)は、 新規事業を起こさなければならない企業の中の人に提供していた 新規事業コンサルティングをWebで広くサービス提供しよう! と始まったもので、事業
こんにちは、開発部のomiです。 前回の投稿から7ヶ月が経っていてびっくりしました。絶対背が伸びたと思います。 今回は、現在携わっている新しいプロジェクトで導入した GitLab Pages について書きたいと思います。 経緯 今のプロジェクトではAPI設計にSwaggerを使用しました。 Swagger Specで書いた仕様は、最初はSwagger Codegenでhtml化し、毎回サーバにアップして公開していました。 修正の都度ローカルでhtml化し、サーバにアップする作業は面倒ですし、アップを忘れて仕様書と実装のずれが出てくる恐れもあります。 そこで、我がチームの頼れるリーダーイケマスこと池田さん lab.astamuse.co.jp に提案していただいた、GitLab Pagesでのhtml公開を行ってみることにしました。 ↓GitLab Pages 公式 Document Git
はじめまして、フロントエンドエンジニアの minamo です。 趣味は映画鑑賞、特にアクション映画が大好きです。 今年は「イップ・マン外伝マスターZ」、「ジョン・ウィック : パラベラム」、 「HiGH&LOW THE WORST」と最高アクション映画が豊作でうれしいですね。 2月に astamuse にジョインしてから初めてのブログで、好きな映画以外書くことが思い浮かばなかったのですが、最近「バリアブルフォントがおもしろい!」と思ったので、ご紹介します。 バリアブルフォントって何? バリアブルフォントとは、Adobe・Apple・Google・Microsoftが共同で開発したフォントの規格です。 Variable = 可変フォントとも呼ばれていました。 通常のフォントは字幅やウェイト、斜体などによってファイルが分かれていますが、バリアブルフォントだとそれらが ひとつのフォントファイルで
こんにちは。並河(@namikawa)です。 すっかり秋の足音が聞こえてまいりました。秋といえば食欲の秋。ラーメンの秋です。 会社では最近新しい方がたくさん入社してきてくれていて嬉しい限りで、エンジニアやデザイナーも増えてきています。 面接をしていても「社内の雰囲気ってどんな感じなんですか〜?」なんて聞かれることも多いので、ちょっと最近入社されたエンジニアの方のデスクを紹介してみようと思います。 弊社では、入社される方全員に、業務で使うマシンの希望を伺っているのですが、エンジニア・デザイナーは MacBook Pro を選択される方がほとんどです。エンジニアの場合はそれに 32 インチの 4K モニターを一緒に貸与することが多く、デザイナーは EIZO のモニター(27インチ、2枚等)とか希望を伺いながら決める感じです。 参考までに、池田さんが書いてくれた、4Kモニターを使っているレポート
こんにちは、Scalaエンジニアのnishikawaです。今回はpythonについて少し話したいと思います。 Pythonって世間では ライブラリが充実している インタプリタ言語でコーディングから実行までが手軽 という印象が強く、初心者やプログラムが本職じゃない人からも好かれる言語だと思います。特に動的型付けによりスクリプトっぽい書き味に加え、オブジェクト指向プログラミングや関数型プログラミングなど、色んなスタイルでコードを組めるのも人気の一つなのではないかと思っております。 そんなPython、書き捨てレベルのコードならいざ知らず、本気で何か組もうと思うとある問題に差し掛かります。 それは コードを書いているうちにどのようなデータを扱っているかを見失う ということです。 これを読んでいる人は「そんなことないでしょw」と思うかもしれませんが、少しでもそのアプリから離れると途端に何をやってた
はじめに 初めてこちらのblogに登場いたします。データエンジニアのt-sugai です。 今年の1月頃からアスタミューゼにJOINしています。 前職はJavaをメインとしたアプリケーションエンジニア……だったと思うのですが、エンジニアはエンジニアでいっしょくたの組織でした。そして最近は運用やDBAのような仕事を任されることが多かったこともあり、アスタミューゼではデータエンジニアとして働いています。 今日はデータエンジニアらしくデータベースのお話をしようと思います。 アスタミューゼで利用されているPostgreSQL 国内外の特許の情報をはじめ、様々な技術情報を持っているアスタミューゼですが、RDBMSとしては主としてPostgreSQLを利用しています。 (もちろん、RDB以外のDBMSもデータの量や特性、利用目的に応じていろいろ使っているのですが、今回はRDBのお話です) 私が入社する
こんにちは、アスタミューゼでデザイナーをしている@YojiShirakiです。 最近、新規プロジェクトでBIツール(metabase)導入していい感じに機能しつつあるので、どのように導入したかその変化をご紹介したいと思います。 BI導入の背景 BIの導入は次のような理由で早い段階で導入しようと考えていました。 プロジェクトが横断的で共通認識とコンセンサスの土台が必要であること Webサービスではあるがキャッシュポイントが契約(オフライン)にあること 初期の機能実装が最低限で、リリースした後の機能実装ニーズが継続的に相当量見込めること 2番目の「キャッシュポイントがオフラインにある」点は特に注意が必要です。というのも、キャッシュポイントが近いところの意見はどうしても強くなりがちで、「お客様の声」事案は優先順位が高めに設定されやすくなるためです。 「お客様の声」はとても重要です。しかし、現状ク
デザイン部でフロントエンドエンジニアをしているkitoです。React.jsとVue.jsの登場で、JS界隈は一時期の混沌とした時代から落ち着いてきましたが、今や両者それぞれのエコシステムが豊かになるフェーズに移行しています。jQueryがデファクトスタンダードになり、盛んにプラグインが開発されていた頃を彷彿とさせます。 Vue.jsのエコシステムのなかでもNuxt.jsは、完成度の高さからVue.jsのサーバーサイドレンダリングのフレームワークとして広く利用されようとしています。 今回は、そんなNuxt.jsを実際のサービスで使うさいに欠かせないライフサイクルの知識について書きたいと思います。といっても、私自身、最近までNuxt.jsのライフサイクルついて十分に理解していたかというと、心もとないところがありました。公式サイトのライフサイクルダイアグラムをみてわかったようなわからないような
こんにちは。アプリケーションエンジニアの池田 (@yukung) です。 今年の NBA Finals 🏀は Toronto Raptors の優勝で幕を閉じましたね! Golden State Warriors の 3 peat (3連覇) への挑戦も夢には届かず… Warriors ファンにとっては怪我人が多発して不運な形で終わってしまい残念な結果になってしまいましたが、カナダに初めてのチャンピオンリングがもたらされたことからも、ここ数年のウォリアーズの黄金時代から NBA の時代が変わろうとしていることに未だ興奮冷めやらない池田が、今回のブログ記事をお届け致します! さて、今回は私が関わっているあるプロダクトにおける開発フローについてご紹介したいと思います。 アスタミューゼにおける開発フロー アスタミューゼには、既に運用に入ってるもの、新規構築中のものを含めて複数のプロダクトがあり
デザイン部でフロントエンドエンジニアをしているkitoです。 近年のCMS界隈には、いわゆるHeadless化の波がきています。CMSのHeadless化とは、CMS(Content Management System)からクライアントサイドを切り離し、クライアントサイドのフレームワークでUIを構築するアーキテクチャです。 デカップルド・アーキテクチャと呼ばれることがあるようですが、サーバサイドとクライアントサイドがAPIを通じてコンテンツをやりとりすることで、Webアプリだけではなくてネイティブアプリからの要求にも適切に答えられるようになります。スケーリングに関しても、Headless CMSの方が取り回しが良いのではないでしょうか。 WordpressがWP REST APIを開発し、Headless化へと道筋をつけたことは特筆すべきです。WP REST APIの公式サイトでは、冒頭に
お久しぶりでございます。Scalaでバックエンドを開発しているaxtstar(@axtstart)です。 みなさまゴールデンウィークはいかがお過ごしだったでしょうか? 我が家はあまり旅行に行くということもなく、近場のドライブや、ちょい大き目の公園などで過ごすことが多かったです。 さて、そのおかげというわけではありませんが、この連休を利用して、 新たにRustとWebAssemblyに入門してきたので今回はそのあたりの話を、書きたいと思います。 Image by prettysleepy1 from Pixabay 前書き 遅ればせながら、前々から気になっていた、Rust Programming Languageの勉強をGWを利用して初めて見ました。 随分昔ですが、Visual C++でDLLを作ってそれをフロントのVisual Basicで呼び出すのが最強と思っていた時があります。 それと
こんにちは。開発部のtorigakiです。 弊社では無線LANアクセスポイントにYamaha WLXシリーズを使用しているのですが、最近社内のwifi環境が不調になることがあります。 そこで何が原因なのか探るためアクセスポイントのリソース使用状況を可視化することを試みました。 WLXシリーズにはWebUIが用意されており、CPUやメモリ使用状況などブラウザから確認することもできるのですが、このWebUI上からでは過去の状況を把握することができず、不調になったときの状況がわからないため、定期的にリソース情報を取得し、グラフ化して時系列で状況を把握することができるようにしましたので、今回はそのお話をさせていただければと思います。 リソース情報を取得する 無線アクセスポイントからリソース情報を取得する方法は色々あるかと思いますが、今回はtelnetとexpectを組み合わせて、定期的にアクセスポ
次のページ
このページを最初にブックマークしてみませんか?
『astamuse Lab』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く