サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
nulab.com
こんにちは。ヌーラボのCacooチームの木村です。テックブログを書く上で個人的に気をつけていることを紹介します。 「せっかく苦労して記事を書いたのに全然読んでもらえない」「本筋とは関係ないコメントが来て消耗してしまう」といった悩みはないでしょうか。それらはもしかしたら技術記事の書き方に原因があるかもしれません。 僕は普段進めている仕事に、ある程度の成果が出たら、そこで得た知見を会社のテックブログに記事としてまとめるようにしています。そのときには以下の3つのことを心がけています。 「なぜ」を徹底的に書く 読者の認知負荷を下げる 想定読者の知識レベル下げる そうすることで以下のような効果が期待でき、読者と著者だけでなく著者が所属する会社にとってもいい記事になると考えられます。 記事の内容が正確に読者に伝わる 読者にとって有益な情報を提供できる 著者(たち)の置かれている状況や抱えている課題が読
Backlog課Gitチームの@vvatanabeです。 先日、BacklogのGitリポジトリへSSHでアクセスする機能を提供するサーバーが、ECDSAとEd25519のホスト鍵をサポートしました。 GitリポジトリへのSSHアクセスに関連するセキュリティアップデートのお知らせ その際、OpenSSHのSSHプロトコル拡張の一つである「UpdateHostKeys」と呼ばれる機能を、Goで書かれたSSHサーバーに実装したので、その経験をもとに機能の仕組みと実装について解説します。 はじめに SSHにおける「なりすまし」を防止する仕組み UpdateHostKeysを説明する前に、SSHにおける「なりすまし」を防止するための重要な要素として、「ホスト鍵」と「known hosts」という仕組みについて説明します。 識別子としてのホスト鍵 ホスト鍵とは、SSHでコンピュータを認証するために使
サービス開発部Backlog課の松本です。アプリを作るよりパスタを作るほうが楽しく感じられる今日この頃ですが、今回はmacOSアプリ開発の話をします。 はじめに 「ステータスバーアプリ」と言われてもピンとこないかもしれませんが、ここではKapやKarabiner-Elementsのような、ステータスバーに常駐しているようなアプリを指しています (macOSユーザガイドやAPIリファレンスを見る限り、メニューバーのステータスメニューが並んでいる領域をステータスバーと呼ぶようですので、それに合わせています)。 筆者はObjective-C時代にiOSアプリをつくったがSwiftUIやmacOS開発はちょっと触っただけ、というくらいのスキルでしたがステータスバーアプリを作ることができました。それを通して得られた知見を、モックのお天気アプリを作っていきながら紹介します。 本記事はプログラミング経験
サービス開発部Backlog課の@vvatanabeです。今年の4月にSRE課からBacklog課へ異動しました。よりプロダクトにコミットしていく機運の高まりを感じています。 今回は、Backlogが提供するGitホスティングにおいて、可用性・信頼性を保つためにどのように冗長化と負荷分散を実現しているのか、その仕組みについて解説します。 ※ 本記事はNuCon mini 2022 Springで発表した内容をブログ化したものです。 取り扱うデータの特性 初めに、Gitホスティングで取り扱うデータの特性について解説します。 リポジトリという単位のオブジェクトデータベース Gitホスティングではベアリポジトリと呼ばれるリポジトリを取り扱います。ベアリポジトリとはワークツリーを持たないリポジトリです。具体的には、ローカルマシンに git clone して使っているリポジトリ内の、 .git ディ
こんにちは!ヌーラボ広報担当のメギーです。 インターネットが普及し、SNS(Twitter、Facebook、Instagramなど)、ブログサービス(note、Amebaブログなど)といったソーシャルメディアを用いて誰もが発信者になることができる現代。気になるお店のレビューを投稿しあったり、友人同士でコミュニケーションを楽しんだり、自社サービスの改善に活用できる意見を探したりと、ソーシャルメディアは現代を生きるすべての人にとって身近なものとなりました。 ヌーラボでも、ヌーラボの従業員(以下、ヌーラバー)同士での会話やステークホルダーとの交流、あるいは広報活動などにソーシャルメディアを活用してきました。今後もヌーラバーが積極的にソーシャルメディアを利用しコミュニケーションを楽しむことを推奨していきたいと考えています。 一方、気軽に投稿した内容に対して思いもよらず数多くの反応が寄せられ「炎上
ゴールデンなウィークがやってきますね!ヌーラボで人事担当をしているAngelaです。ヌーラボは2022年4月に1名の新卒入社者を迎えるにあたって、新卒研修を汎用的なものにすべく、企画を進めてきました。 その様子は、こちらのNuCon YouTubeからもご覧いただけます。 このブログでは、中でも研修の一発目にお届けした「助けてもらい方」研修について共有させてもらおうと思います。この研修を一発目に持ってきたのも、ちょっとだけこだわりだったりします。 「助けてもらい方」をテーマにしたのは、先輩たちのスタンスの表明のため みなさん、新しい職場環境に移ったときに少々空気読みをする場面ってありませんか?その最たるものとして「有給休暇」を例に挙げてみたいと思います。 あなたが新しい職場に入ったとして… この会社、有給休暇の消化率がそこそこ高いけど、みんなどんなペースで取得しているんだろう? 実際は有給
GraphQLクライアントライブラリ乗り換え遍歴 私達のプロジェクトではReactのフロントエンドとバックエンドの通信にGraphQLを使っています。 GraphQLは、たいていの場合はHTTP POSTリクエストで リクエストボディ:GraphQLクエリ(文字列)と引数(オブジェクト)からなるJSON レスポンスボディ:データJSON をやりとりするだけというだけのシンプルなプロトコルなので、全てfetch関数で頑張るストロングスタイルで行けないこともないですが、やっぱり専用のクライアントライブラリを利用したほうが楽です。 そのライブラリとして一番有名なApollo Clientから始まってRelay、Urqlと、3ヶ月くらいの間に2回も乗り換えてしまったので、反省の意味も込めて記事にしたいと思います。 GraphQLクライアントライブラリがいろいろあってどう違うんだろうと迷った方の助け
こんにちは。CacooチームのYAMLエンジニアの木村(@cohhei)です。「readiness」は「ready」の名詞形で「レディネス」と読むことをわりと最近知りました。今回はプルリクエスト向けに検証環境が構築される仕組みを作ったので紹介します。 忙しい人のためのざっくりとした説明 プルリクエストが作られたら自動で検証環境が構築される仕組みをつくりました。 環境まるごと作るわけではなく、フロントエンドJavaScript配信用のPodだけに対応しています。 レビュアーやテスターはクエリパラメーターが追加されたURLにアクセスするだけでその検証環境にアクセスできます。 プルリクエストをマージする前にそのバージョンを非エンジニアでも試すことができます。 プルリクエストごとに環境が作られるので、複数の開発プロジェクトが同時に走っているときに便利です。 コミットしてプルリクエストを作るだけです
最近社内向けのツールを新規で開発していて、React + Next.js と合わせてRecoilとRelayを使うことにしたら大変素晴らしかったので、(すでに世の中に紹介記事がたくさんありますが)ご紹介します。 Recoilだけで結構な量になってしまったので、Relayについてはまた後日別の記事を書きます。 (追記:書きましたがRelay使わなくなったという記事になっちゃいました:GraphQLライブラリをApollo→Relay→Urqlにハシゴした話) Reactの提供元であるFacebook改めMetaが開発中の新しい状態管理ライブラリです。 アプリケーション内に複数のデータストアを持てる 非同期対応 React hooks前提 が特徴です。個人的に、Redux + middleware周りの全てをまるっと置き換えてくれると期待しています。 ※ 2021年11月現在、recoilはま
SRE課で、主にBacklogのSREを担当しているMuziです。 Backlogでは2019年8月から、アプリケーションの障害については、開発チーム自身が対応できるオンコール体制を取っています。これにより、サービス影響の少ないアプリケーション障害については開発チーム自身で対応できるようになりました。 しかし、サービス影響の大きいものについては依然としてSREの対応が必要な状況が続いていました。この問題を解決するために、インシデント対応をするオンコール担当者のためのチェックリスト(以下、インシデント対応チェックリスト)を新たに考案し、今年の7月から導入しました。 今回の記事では、このインシデント対応チェックリストの詳細に加えて、導入に至った背景からその効果までご紹介します。開発チームへの運用ノウハウの移管について悩んでいる方の参考になれば幸いです。 Backlogのオンコール体制 元々、B
サービス開発部SRE課の@vvatanabeです。 2021年9月26日、OpenSSH 8.8がリリースされました。大きな変更として挙げられるのは、SHA-1ハッシュアルゴリズムを使用したRSA署名の廃止です。 本記事では、この変更がBacklogに与えた影響、その時現場で起こっていたこと、問題解決のプロセス、なにを教訓にしたのか等、順を追って解説します。 ※ 本記事はNuCon 2021で発表した内容をブログ化したものです。 問題の発覚 BacklogのGitへSSHでアクセスできない TypetalkのBacklog開発者のトピックで、以下のフィードバックが投稿されました。 「OpenSSH 8.8へアップデートすると、BacklogのGitへSSHアクセスできない」という内容でした。 問題の調査 Inside SSH protocol v2 深堀りしていく前に、SSHプロトコルの接
はじめに テレワークでの作業環境は、厚生労働省からガイドラインやチェックリストが公開されています。事務所衛生基準規則などの法規制は適用されないようですが、これらの基準と同等の作業環境になるよう改善を図ることが重要と書かれています。 テレワークの適切な導入及び実施の推進のためのガイドライン(厚生労働省) (3) 自宅等でテレワークを行う際の作業環境整備の留意点 テレワークを行う作業場が、労働者の自宅等事業者が業務のために提供している作業場以外である場合には、事務所衛生基準規則(昭和47年労働省令第43号)、労働安全衛生規則(一部、労働者を就業させる建設物その他の作業場に係る規定)及び「情報機器作業における労働衛生管理のためのガイドライン」(令和元年7月12日基発0712第3号)は一般には適用されないが、安全衛生に配慮したテレワークが実施されるよう、これらの衛生基準と同
みなさん、二要素認証は実装していますか? WWDC21にて発表があったとおり、iOS15, iPadOS15, Safari15でのiCloudキーチェーンがTOTPにも対応しました。 従来であれば、Google AuthenticatorやMicrosoft AuthenticatorなどTOTPに対応した別アプリを使用する必要がありましたが、OS自体に組み込まれることでApple製品上ではよりシームレスな認証体験ができるようになります。 すでにTOTPに対応しているサービスでは特別な対応をすることなく、ユーザーはiCloudキーチェーンのTOTPを使用できます。 ですが、ちょっとしたポイントに気をつけるだけで、ユーザーはより便利に使いやすくなります。 本記事では、iCloudキーチェーンを使用するユーザーがより快適に二要素認証を使用する上で、実装上気をつけるべきポイントについてご紹介し
こんにちは。BacklogのGit機能の開発を行っているテリーです。 今回はGitチーム(後述する僕の所属するチーム)でAutifyによるリグレッションテストの自動化を進めてみて感じたメリットと工夫したところ、苦戦したところを紹介したいと思います。 スモールチームの規模感とテストの現状 BacklogのGitチーム 長らくBacklogは固定のチームが専任で固定の機能をみるような体制になく、アプリケーションエンジニアが比較的流動的にBacklog全体の機能を担当しており、なんとなく“この人”は“この機能”が得意というような体制でした。 ですが最近のチーム編成により固定のチームが固定の機能を開発するようなフィーチャーチームがいくつかできました。Gitチームはその中で生まれたBacklogのGitの機能についての開発責任を持つチームです。チームメンバーは3人で、そのメンバーでインフラからフロン
Norberg Johan(ヨアン) 株式会社ヌーラボ サービス開発部 Backlog課のソフトウェアエンジニア。 スウェーデン出身、日本に住んで8年め。以前よりダイバーシティとインクルージョンに興味があったため、ヌーラボのD&Iポリシー策定にあたって自ら手を挙げ、プロジェクトを推進。 安立沙耶佳(アンヂェラ) 株式会社ヌーラボ 管理部 人事労務課。 2016年に人事としてヌーラボに入社。当初はヌーラボの多様な価値観に圧倒される。テレワークをきっかけに始まったヌーラボのコミュニケーション施策「Small Talk」の中でのヨアンさんとの会話をきっかけにD&Iポリシー策定を一緒に推進することを決意する。 ヌーラボにとって、ダイバーシティとインクルージョンは「すべての基礎」 メギー:「ダイバーシティ(多様性)」や「インクルージョン(包括性)」という言葉は、最近いろんなところで耳にしますね。 ア
UXライティングの勉強会を開いてみたら、思ったより楽しくプロダクトを改善することができました。改善した内容の共有と勉強会のふりかえりを兼ねて、UXライティングの重要さとコラボレーションして学ぶことの楽しさをシェアしたいと思います🥳 この記事は勉強会に参加したNulab Appsエンジニア、Typetalk PdM、Cacooエンジニア、Cacooテクニカルサポート、カスタマーサポートのみなさんとの共同執筆です🙌 UXライティング / マイクロコピーとは 書籍「UXライティングの教科書 ユーザーの心をひきつけるマイクロコピーの書き方」から引用すると以下のように書いてありました。 ユーザーインターフェースに付与するちょっとした言葉や短文のこと。これはユーザーが起こす行動に直接影響を与える。 ・行動を起こす前にモチベーションを向上させる ・行動に伴って指示させる ・行動の後にフィードバックを
こんにちは。SRE課でBacklogの開発をしているテリーです。 2020年3月、妻の第一子出産に伴って4月から私も育休(育児休業)を取得し、2021年5月から職場に復帰しました。妻は同じ会社で働いている同僚で、私より先に産後6ヶ月で仕事に復帰しました。私は子どもの保育園が始まるまでの1年1ヶ月間、育休をとっていました。 特に面白い話があるわけではないですが、男性で1年以上の育休を取得するのはかなりレア*1とのことで少数派の意見もあった方が良いだろうと思ってブログとしてまとめることにしました。 育休の制度自体の詳細は陳腐化する可能性もあるので、ここではあまり触れないようにしたいと思います。 なぜ育休を取得したか 私は妻が妊娠するまで育休の取得を考えたことがありませんでした。周りを見ても男性が育休を取得した例はなく、どこか遠くの話のように思えていました。ちなみにヌーラボでは現在数人の男性が育
だれかの役に立つためのWebサービスを創る。受託開発を経験して自社サービスを守りながら攻めることに興味を持った舞羽さんのお話 #ヌーラバーになりませんか インタビュー企画22回目!まだまだ社員はいるのでインタビューし足りない気持ちのAngelaです。今日はCacoo課からフロントエンド担当の舞羽さんにインタビューです。コロナ禍でのご入社だったので、まだ私も1回しか会ったことがない…!涙 一緒にビャンビャン麺を食べた思い出よ… いつも明るくチームのムードメーカーになっている舞羽さんのフロントエンドやアクセシビリティに目覚めるきっかけを聞いてみたいと思います🎤 今日のInterviewee サービス開発部 Cacoo課 ディベロッパー係 髙橋 舞羽 2020年10月にCacooのフロントエンドエンジニアとしてヌーラボに入社。2019年にはお子さんも生まれ、今は家族3人と猫3匹と一緒に暮らして
ウィズコロナ時代の社内コミュニケーション促進や、VRを用いた他拠点コミュニケーションの実証実験が主な目的 コラボレーションを促進し、働くを楽しくするツール「Backlog」「Cacoo」「Typetalk」「Nulab Pass」を提供する株式会社ヌーラボ(本社:福岡県福岡市、代表取締役:橋本正徳、以下 ヌーラボ)は、全社員にVRデバイス「Oculus Quest 2」を支給することを決定しました。 テレワークが続くなか、Oculus Quest 2を使い、まるで直接会っているかのような感覚で雑談などを行う機会が増えることで、社員同士のコミュニケーションが促進されることを期待しています。 社員がVRデバイスを用いて雑談する様子 ■Oculus Quest 2 全社員への支給の背景 ヌーラボは新型コロナウイルス感染症の全国的な拡大を受け、2020年2月より、職種や雇用形態を問わず全員の勤務体
SRE課で、主にBacklogのSREを担当しているMuziです。 ヌーラボでは、2019年から2020年にかけて、Backlogで利用しているEC2インスタンスをAmazon Linux 1からAmazon Linux 2に移行しました。 今回の記事では、このAmazon Linux 2への移行作業をEC2インスタンスの種類ごとにバラバラのトイルとして扱うのではなく、それらのトイル全体をプロジェクトとして扱うことで結果的にうまくいったという話をご紹介します。 ちょっとした工夫レベルの話ですが、みなさんのトイルへの取り組みの参考になれば幸いです。 ※注:この記事ではAmazon Linux 2への移行に関する技術的な詳細には触れません。プロジェクトの進め方についての読み物とお考えください。 きっかけ:Amazon Linux 1のサポート期間終了 これまで、Backlogで利用しているEC
ヌーラボのインタビュー企画第19回目。今日はこれからヌーラボが強化していきたいBacklogのSREを担当するチームの中でもGit機能の改善・強化を担っているチームからなべさん (vvatanabe) のお話を伺います。 昨年はGoCon Sendaiで登壇するなど大活躍!Goという強みを持つなべさんに、今後のGitチームとしての取り組みについてインタビューしてみました! 今日のInterviewee サービス開発部 SRE課 渡邉 祐一 2015年、ヌーラボにバックエンドエンジニアとして入社。現在はBacklogのGitホスティングにおける機能やミドルウェアに関する開発を担当。Goでの開発を得意としGo関連のイベントなど多数の登壇や技術誌への寄稿の実績あり。 東京から福岡へのUターン — なべさんは東京で働かれたあと、Uターンで福岡に戻ってこられたんですよね!ヌーラボに入社してもう何年で
はじめに こんにちは。ビジネスチャットサービス Typetalkを開発・運用している吉田です。先日PostgreSQLでのALTER文をいかに無停止で安全に行うかという記事を公開しました。その中で以下のようにNULLを不許可にしたカラムを追加する際の注意点について述べていました。(参照 NULLを不許可にしたカラムを追加する) 新しいカラムを追加する際、NULLを不許可にしたいことがあります。その場合よく使われるのがALTER TABLE構文で同時に追加できるNOT NULL制約です。このNOT NULL制約をつけるためには、既存レコードにデフォルト値を設定する必要があるため、DEFAULT構文を同時に使用することになります。 ALTER TABLE todo ADD COLUMN completed BOOLEAN NOT NULL DEFAULT false; この構文は自動的に既存の
はじめに どうもこんにちは。鶴田です。 ヌーラボではいわゆる縦割りの組織ではなくフラットな組織という考え方で組織活動が行われています。 フラットというと勘違いしそうですが、誰でも役員やプロダクトマネージャに好き勝手に物事を言えたり、やりたいことを強行できたりということではありません。フラットだからこそしっかりと他者へ説明する義務が発生し、同時に自分の発言や行動に責任を持つことが必要です。 こうして他者にフォロワーとなってもらい後押しを受けるということが前提で、誰にでも自分の考えを発信したり、やりたいことを実現する道が開けているということです。 そのための仮説検証を行うため、誰でも必要な情報にアクセスできるという環境はフラットな組織の前提となります。 この記事は、必要な情報に誰でもアクセスできるという環境を整えるために、2年ほど前から行ったAWS上でのデータ基盤の構築とその改善活動について段
※このブログはヌーラバー Advent Calendar 2020の15日目の記事です。明日はKiyoshi Watanabeさんの記事です。 SRE課で、主にBacklogのSREを担当しているMuziです。 今回の記事は、NuCon 2020での発表「ヌーラボのSREは歴史の長いプロダクトをどのように改善しているか?」の内容をもとに、時間の都合で触れられなかった細かい説明を補足したものです。SRE組織を持つ会社の方や、これからSRE組織を作りたい方の参考になれば幸いです。 テキストを読むより音声のほうがいい!という方は、以下のアーカイブをご覧ください。特にSREの話に興味のある方は1:17:00からどうぞ。私の講演含め、そこからSRE課のセッションが3本続きます。 NuCon 2020のアーカイブ動画(1:17:00〜) ヌーラボのSRE組織とその変遷 SRE組織の始まり ヌーラボで最
※ このブログはヌーラバー Advent Calendar 2020 13日目の記事です。明日は いのうえみほさんの記事です。 今年はコロナ禍でリモートワーク中心な生活と変化しました。 おかげで自宅の仕事環境を本格的に整える必要性と時間と資金が生まれ(ありがとう会社)、僕自身おうちのDIYが捗りました。社内を見ていてもおうちDIYが盛んだった気がします。 そんな一年だったので、日頃開発に携わっているWebサービスから一歩離れてみて、DIYでお世話になっている工具を題材にしてユーザビリティーを考えてみる。ということを「ものづくりとヌーノーマル」がテーマなNuConのLTで話させてもらいました。 NuCon開始直前の様子 サクッと上のスライドを読んでもらった前提で、以下続けます。 アクセシビリティーの話 モンキーレンチの開閉を迷わなくする案を出してたのですが、「左利きだと回転が逆方向になるので
※ このブログはヌーラバー Advent Calendar 2020 12日目の記事です。明日は yuh kim さんの記事です。 こんにちは。本日32歳になりました。Cacoo課の川端(@kwbtsts)です。 Cacooは先日、図の編集画面上でビデオ会議ができる「ビデオ通話」機能をリリースしました! 本記事では、ビデオ通話を実現するために必要なWebRTCという技術について解説したいと思います。ビデオ通話を実際にWebサービスで開発・運用していこうと考えている方や、WebRTCに興味がある方へのヒントになれば幸いです。 ビデオ通話機能についての詳しくはCacooリリースブログ『テレワークで使える!Cacooで「ビデオ通話」ができるようになりました!』をご覧ください。 WebRTC(Web Real-Time Communications)とは? Cacooのビデオ通話ではWebRTC(
スプリント開発してます こんにちは。Backlog開発チームの藤田です。 ヌーラボでは、プロジェクトをどう進めるかは各チームの裁量に任されています。Backlog開発チームはたくさんの小さいチームに分かれていますが、ウォーターフォール的な進め方をしているチームはなくて、多くはScrum、もしくはScrumを元にした1〜2週間単位のスプリント開発を採用しているようです。 ヌーラボはプロジェクト管理ツールを提供していることもあり、開発者も開発者以外も「どう進めれば効率的かつ自分たちが気分良く仕事できるか」に対する関心が高い人が多いように思います。常にいろんなチームが上手いやり方を模索していて、良さそうな方法があればパクリ参考にしあっています。 楽にやりたい 私自身はこの一年、いくつかの機能開発プロジェクトでメンバーになったりリーダーになったりしました。極度の面倒くさがりで記憶力が壊滅的なので、
※ このブログはヌーラバー Advent Calendar 2020 6日目の記事です。 こんにちは。インハウスシステム課の大塚です。「管理部」所属の社内エンジニアとして活動しています。 私達の大きなミッションは以下の二つです。 社内の業務プロセスの定義、改善、自動化という業務ハックを推し進める 社内のデータ分析、活用、及びデータマネジメントを推し進める この活動は企業が成長していく上でとても重要ですが、残念ながら大きくリソースを割り当てることはできません。 私達は小さなチームの限られたリソースでこのミッションを達成するため、AWSサービスをどのように選定して、活用していくかについて、その方針を事例と合わせながら書きたいと思います。 TL;DR 社内エンジニアがAWSサービスをマネージドなサービスを導入する理由 企業の成長で課題は増えていく 目的達成のために注力する Airflowを運用し
こんにちは。Nulab Appsチームの小松です。 本ブログでは、バッチ処理の実装を通じて得た知見について共有したいと思います。 TL;DR Spring BootとSpring Batchを使用したバッチ処理の実装 AWSのマネージドサービスを使用したデータ運搬 要件 実現したいことは、Webアプリケーションで管理しているデータをSalesforceへ同期することです。 Salesforceへの同期のタイミングは、アプリケーションでのデータ変更に連動して行われることが望まれており、ある程度のリアルタイム性が求められていました。 Salesforce上のモジュール間には関連を定義することができ、今回は、その関連を多用する仕様となっていました。そのため、同期処理時に更新したSalesforceのオブジェクトのID管理やその紐付けなど、独自のロジックの実装が必要でした。 多くのデータを1日何度
次のページ
このページを最初にブックマークしてみませんか?
『Collaboration Tools for Team & Project Management | Nulab』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く