サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
developer.hatenastaff.com
こんにちは、id:shiba_yu36です。 はてなのエンジニア陣によって執筆されたウェブアプリケーション作成の基本を学ぶための「はてな教科書」をgithub上に公開しましたのでお知らせします。 はてな教科書は、はてなサマーインターンでも利用されている、約1週間でウェブアプリケーションの基本を身に付けるためのものです。はてなでは日々のウェブ開発で得られたノウハウをこの教科書を継続的に盛り込みながら、インターンシップやエンジニアの新人教育などに利用しています。今回、はてな教科書をgithub上で公開することで、広くPerlを使ったウェブアプリケーション開発に興味を持ってもらえれば、と思います。 いまのところ公開されている資料は、以下の4つになります。 Perl によるオブジェクト指向プログラミング ORM によるデータベース操作 (DBIx::MoCo を使った開発) MVC によるウェブア
チーフエンジニアの id:Songmu です。 4月に 新人エンジニア研修を行なった のですが、その際に、「インフラを意識したアプリケーションの書き方」という講義を担当しました。そこでおこなった講義の内容について整理しながら書き起こしていきたいと思います。 インフラを意識すると何が良いか 業務でWebアプリケーションを扱うと、個人ではなかなか扱えないトラフィックであったりデータ量を扱うことになります。小規模サービスでは考えなくてよかった多くのことを考慮する必要がでてきます。なかなか体験できないことでもあるので、楽しく、やりがいもあります。 また、そういった経験を通して、インフラを意識しコードをかけるスキルを身につけることは、Webエンジニアとしては大きな強みとなります。ISUCONで優勝できるかもしれません*1。 インフラを意識すると何が良いか 〜 中規模ベンチャーの場合 そもそも、はてな
こんにちは!はてなアプリケーションエンジニアの id:takuya-a です。 みなさんは、このような疑問をもったことはありませんか? grep はどのように文字列を検索しているのか? MeCab はどうやって辞書を高速にルックアップしているのか? パーサやコンパイラを作りたいけど、何から始めればいいのか? 本稿では、「文字列アルゴリズムとはどんなものなのか?」「なぜ重要なのか?」「何を知っておくべきか?」「どうやって勉強すればいいのか?」といった疑問にお答えしていこうと思います。 文字列アルゴリズムの意外な応用や、モチベーションを保ちやすい勉強のしかた、文字列アルゴリズムを勉強するために行った社内での取り組み、実装するときのコツといったトピックについても触れています。 このエントリは、はてなエンジニアアドベントカレンダー2016の22日目の記事です。昨日は id:syou6162 さんに
この教科書は、はてなサマーインターンの講義資料として作成されたものです: https://github.com/hatena/Hatena-Textbook この章では機械学習について、Webサービスの開発で必要とされる知識を中心に、とくに自然言語処理にフォーカスしながら解説します。 Webサービス開発と機械学習 実現困難な機能の例 闇雲な実装 もう少しましな実装 機械学習によるパラメータ決定 分類問題のための機械学習手法 パーセプトロン 判別アルゴリズム 学習アルゴリズム 特徴量のとり方 形態素解析 量をともなう特徴 組み合わせ特徴量 モデル 機械学習の種類 教師あり学習 分類 (質的変数の予測) 回帰 (量的変数の予測) 教師あり学習でのデータセット 教師なし学習 クラスタリング 次元削減(次元圧縮) 頻出パターンマイニング 異常値検出 アルゴリズムの評価 訓練データとテストデータ 学
この記事ははてなデベロッパーアドベントカレンダーを始めます - Hatena Developer Blogの17日目の記事です.昨日は id:yashigani_w の Promiseを学ぶためにSwiftでPromiseを実装してみた話 - yashigani?.days でした. こんにちは、はてなの id:wtatsuru です。はてなのインフラ全般をみています。 はてなでは、しばしば新サービスを構築する機会があります。正式サービスもあれば、はてラボ のような実験的サービス、内部の Microserviceの一部になっているものなど多種多様なものがあります。新規サービスのインフラを構築する際は、最小構成でありつつ後のスケールやメンテナンスを考えた仕組みを作っていくことになります。この記事では、2015年12月現在のはてなでの標準的な構成を紹介していきます。 新サービスの最小構成 こち
はてなブログでSREをやっているid:cohalzです。 2019年12月頃からid:utgwkkやid:onkとともに、はてなブログにおけるキャッシュ周りの改善を行いました。その結果、次のような成果が得られました。 ブログ記事のキャッシュヒット率が、1日平均で8%から58%に向上 アプリケーションサーバの台数を、以前の半数以下に削減 DBに届くリクエスト数が、以前の3分の2まで減少 レスポンスタイムの平均が、以前の8割まで減少 この記事では、実際にどういった改善を行ったのか、その際に気をつけたことや大変だったことを紹介します。 はてなブログがVarnishを導入した経緯と課題 開発合宿をきっかけに問題が明らかになる 進め方をまず考える ホストのメモリをできるだけたくさん利用する メモリを積んだホストでなぜかレイテンシが悪化 キャッシュが分散しないようVaryヘッダを使う デバイス情報を適
今日行なわれたインターン4日目の講義「JavaScript で学ぶ イベントドリブン」by id:cho45の資料と録画を公開します。今回は、JavaScriptの概要からDOM、イベントドリブンまでを2時間で網羅した密度の高い講義となっています。今回の放送は安定していましたので、音質・画質とも良好にできました。 明日もAM10:30より、JavaScript界の貴公子id:nanto_viによる「ユーザーインターフェース, HTML5」を放送しますので、是非ご覧ください。 自己紹介 id:cho45 - vimmer うごメモチームのエンジニア (7月後半〜) 少し前までブックマークチーム Perl, JS (Scala, Ruby, etc...) サーバサイド・クライアントサイドUI・スマートフォンなど Java や AS も場合によっては書いています 特技 1行コードを書くごとにハ
こんにちは、Webアプリケーションエンジニアのid:hogashiです。 半年ほど前に公開した「開発環境のフォントなに使ってますか?」に続く、はてなエンジニア世論調査の第2回「VSCodeの拡張機能、なに使ってますか?」です。 ソースコードエディタであるVisual Studio Code(以下、VSCode)は多くのエンジニアに利用されています。VSCodeにはソースコードのシンタックスハイライトやデバッグなど、さまざまな拡張機能をインストールして使うことができますが、公開されている拡張機能は膨大にあります。 その中から、はてなのエンジニアはどんな拡張機能をインストールして、日頃の開発に使っているのでしょうか? 前回と同様にアンケート調査してみました。 アンケート方法 アンケート結果から見える人気の機能拡張 6割の拡張機能は1人だけが使用 人によってかなり異なるインストール数 興味深いコ
はてなアプリケーションエンジニアの id:takuya-a です。 この記事では、Microsoft の検索エンジン Bing で採用された BitFunnel アルゴリズムを紹介します。 昨年のエンジニアアドベントカレンダーでは、文字列検索のアルゴリズム全般について紹介しました(文字列アルゴリズムの学びかた - Hatena Developer Blog)。今年はそのなかでも、インデックス(索引)を使った全文検索アルゴリズムについてのお話になります。 この記事の前半は全文検索の入門にもなっていますので、検索技術になじみがない方にも楽しんでいただけるのではないでしょうか。 逆に、「そんなのもう知ってるよ!」という方は、本題である「BitFunnel アルゴリズムの詳細」から目を通していただければと思います。 この記事は、はてなエンジニア Advent Calendar 2017の21日目の
本日、はてな教科書に新たにSwiftの教科書を加えました。先進的なプログラミング言語であるSwiftを学習するのに最適な教材です。 「はてな教科書」はもともと、およそ1週間でWebアプリケーション開発の基本を身につけるために、PerlやJavaScript、MySQLなどを用いて実際にWebアプリケーションを作ってみる教材として作られてきました。はてなサマーインターンシップや、はてなの入社時研修に利用されています。最初はWebアプリケーションのための教科書でしたが、はてなでは近年の多様なニーズにあわせて年々内容を更新してきました。 はてな教科書 はてなサマーインターン2015では新しく様々な内容が追加されましたが、今回はそのうちSwiftに関する部分を先行して公開します。昨日Appleが正式にリリースしたSwift 2を全面的に採用した教科書で、Appleプラットフォームアプリ開発の学習や
Webサービスの開発は、ユーザ/顧客へ価値を早く届けるため、競合より早くリリースするため、人的リソースを無駄使いしないためなど、とにかく素早く進めたいものですね。一方で、開発を急ぐあまり品質を犠牲にすればかえって価値が失われたり、技術的負債が溜まって長期的なコストが大幅に増大する可能性もあります。開発速度とプロダクト品質は基本的にはトレードオフの関係にあるのでしょう。 開発速度と品質のどちらを優先するかはプロダクトの性質や、チームもしくは会社の状況によって異なるとおもいます。この状況の認識がチームメンバー間でずれていると、チームのパフォーマンスを最大限に発揮できないばかりか、チーム内の関係悪化も招きかねません。エンジニアたちとプロダクトオーナーの間の対立のようなありがちな問題の原因の一つかもしれません。 そこで、開発速度と品質のトレードオフをどう判断すべきかの基準を明確にして、原則それに従
こんにちは、id:hakobe932です。はてなブログではユーザ体験の改善のために、ページ表示速度を向上させるための様々な取り組みを行っています。このエントリーでは、はてなブログで行っている、ブラウザキャッシュの活用、JavaScriptのページ最下部での読み込み、JavaScriptの圧縮、という3つの取り組みについて解説します。 ブラウザキャッシュの活用 同じ内容のJavaScriptやCSSを、ページを表示するたびにダウンロードすると、余分なHTTPリクエストが発生しますし、読み込み時間がかかります。 ブラウザのキャッシュを利用できれば、余分なリクエストを減らすことができます。はてなブログでは、なるべく長い間ブラウザにキャッシュを保存するために、JavaScriptなどの一部の種類のファイルのレスポンスに、以下のようなヘッダを指定しています。 $ curl -I http://hat
はてなのアプリケーションエンジニアのid:shiba_yu36です。社内技術勉強会で「新機能作成時に開発ブランチに細かくmergeしていく戦略」という発表をしたので、資料を公開します。 speakerdeck.com 以下、簡単に文字でまとめておきます。 戦略 ユーザーに新機能が見えないようにする工夫をし、新機能のbranchもどんどん開発ブランチにmergeしていく mergeされたものは随時本番にリリースされるが、ユーザーに見えない工夫をしているので問題なし PRは可能な限り細かくする 機能が完成したら最後にユーザーに新機能を見えるようなPRを作り、mergeしてリリースする なぜこの戦略を使うのかいろんな失敗を経験して、この戦略を最近使っている。 失敗パターンその1: 巨大PRパターン 失敗パターンその2: 新機能リリースブランチパターン 失敗パターンその1: 巨大PRパターン 新機
こんにちは、id:onishiです。今日もはてなの技術部の取り組みを紹介します。今回のネタは「エンジニア実績システム」です!ちなみに前回は「毎週勉強会」を紹介しました。 エンジニア実績システム はてな技術部では、ブログの公開やOSS活動、イベント登壇など社外にプレゼンスを発揮する活動を推奨するための取り組みを行っています。今回紹介する「エンジニア実績システム」もその一つです。 実績とは何ですか? 実績とは、特定の行動をゲームで達成したことに対するリワードです。 Xbox One の実績とチャレンジ 「実績」とはXbox 360, Xbox One に搭載されている同名のシステムを意識しています。Xboxのそれがゲーム内の進行状況や難易度の高い行為によって報酬を獲得できるのと同じように、エンジニアの社外プレゼンス活動に対して実績を設定し、エンジニアスタッフ個々人の実績解除を推奨しています。
この記事は、はてなエンジニアアドベントカレンダー2016の5日目の記事です。 こんにちは、はてなでアプリケーションエンジニアをしている id:shiba_yu36 です。先日、buildersconにおいて、現在所属しているプロジェクトでJavaScriptのユニットテストを導入した知見について、「一から始めるJavaScriptユニットテスト」というタイトルで発表しました。 speakerdeck.com この発表は、実際にJavaScriptのユニットテスト環境を作ってみると非常にハードルが高いと感じたので、そのハードルを少しでも下げられればという思いで、非常にシンプルな例で一から環境を作る例を紹介しました。アジェンダは次のとおりでした。 カクヨムのJS環境 JSのテストツールを整理する 通常の関数のユニットテスト DOM操作する機能のユニットテスト カクヨムのJS環境や、JSのテスト
id:stanaka です。はてなでは1月末と7月末に評価の時期を迎えます。毎回この時期になると評価プロセスや評価軸について議論になります。 はてなでのエンジニア評価として、コード品質などいくつかの項目がありますが、その中の一つとして「アウトプットする」ということを設定しています。 「アウトプットする」ということは直接的にはその本人と会社の社外におけるプレゼンスを向上させる、ということになりますが、それ以上の効果があると考えており、そのあたりの背景について社内向け文章を書いたのですが、せっかくですので社外にも公開します。 「アウトプットする」ことを期待する背景 はてなのエンジニアの評価基準として「アウトプットする」ということを軸の一つとしています。 アプトプットすることは、自身や会社の社外におけるプレゼンス向上だけではない価値があると考えています。 アウトプットすることで各エンジニアがより
はてなチーフエンジニアの id:motemen です。 以前の記事で紹介したようにはてな技術グループおよびデザイングループでは毎週社内で勉強会を開催していますが、これを運営していくにあたってひとつ課題であったのが毎週のリマインドでした。 developer.hatenastaff.com 毎回発表者が違いますから、あらかじめ皆に「今日は○○さんの××という発表です!」と周知して期待を高めたいですし、また次回の発表者には予告をして発表の準備を進めておいておかなければなりません。発表者・タイトル・日付などを記したスプレッドシートがマスターデータとしてあったので、元々は私が人手で、Googleスプレッドシートに記載した発表順を見ながらSlackに共有していました。しかしやはり個人による運用だと予告忘れがあったり、周知のタイミングが朝なり夕方なりまちまちであったりと、参加者にも不便を強いていたし、
こんにちは、チーフエンジニアの id:hakobe932 です。 はてなでは毎週、社内技術勉強会を開催しています。先週の勉強会では現在開催中のはてなインターン2016の参加者のみなさんもインターン生も参加して、いっしょに技術交流を行いました。 このエントリでは、そこで発表した、契約による設計の紹介をしたスライドを公開します。 契約による設計はBertrand Meyer氏によるオブジェクト指向入門*1という書籍で紹介されている考え方です。 オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング) 作者: バートランド・メイヤー,酒匂寛出版社/メーカー: 翔泳社発売日: 2007/01/10メディア: 単行本(ソフトカバー)購入: 11人 クリック: 307回この商品を含むブログ (130件) を見る 契約による設計で
こんにちは、id:stanakaです。昨日開催された、はてな技術勉強会 #2の資料&動画を公開します。今回は、翌日に公開できました。今後もこのスピード感を維持したいものです。 「TitaniumによるiPhone/Androidアプリ開発」 id:r_kurain いま最も注目をあつめる、スマートフォンアプリ開発環境であるTitaniumについて解説します。 インストールなどの導入から、簡単な Twitter クライアントの作成までの一通りの開発について実際に動く様子を確認しながら説明していく予定です。 TitaniumによるiPhone/Androidアプリ開発View more presentations from kurain. サンプルコード: https://github.com/kurain/TitaniumMobileSample 「iPhoneアプリ開発講座Web連携アプリ
こんにちは。はてなのアプリケーションエンジニアの id:onk です。 最近、若手エンジニアを中心に、いろいろな技術を見つめ直すワーキンググループをやっています。今回は、その中から「デプロイ」の会で発表されたことをまとめました(なお、私は会のとりまとめをやっている非若手です)。 デプロイのライフサイクルの違い Infrastructure Platformでのデプロイ Application Runtime Platformでのデプロイ Applicationsのデプロイ デプロイ方式はどのように変化してきたか In place から Blue/Green へ Immutable Infrastructure という考え方 オートスケールへの対応 push 型デプロイと pull 型デプロイ コンテナによるデプロイの現況 コントロールプレーンによって何が変わったか ECS におけるデプロイ
ウェブオペレーションエンジニアの id:y_uuki です。 はてなの東京オフィスで先月開催されたGo 1.6 Release Partyで、「Writing Tools in Go For Ops Engineers」というタイトルで発表しました。 発表では、最近作ったGo製ツールを紹介し、なぜGoがインフラエンジニアにとって良い言語であると感じているかを話しました。 最近作ったGo言語のツールの紹介 mkr Grabeni Droot gokc インフラエンジニアがGoを利用することのメリット 1. サーバへの配布が簡単 2. サーバ上で高速開発できる 3. 最終的に成果物をはやく作れる その他 発表資料 あとがき 最近作ったGo言語のツールの紹介 以下の4つのツールを作りました。いずれもはてなでのproduction利用を想定したものになります。 mkr mkrははてなで開発している
こんにちは〜。チーフエンジニアのid:cockscombです。 最近、同僚のid:yashigani_wとともに、はてなのコーポレートサイトを静的サイトとして再構築しました。ちょっとした仕事ではありますが、経験によって得られた暗黙知を形式知へ昇華するため、ここに紹介します。 はてなのコーポレートサイトとは サイトを静的化するメリット どのようにサイトの静的化を進めたか 1. 静的ファイルをNext.jsで生成 2. 運用を自動化したい 3. ホスティングサービスを選択する 4. 動的なコンテンツを表示する リリースと振り返り ホスティングサービスに関する補足 はてなのコーポレートサイトとは 弊社のコーポレートサイトは一般的なそれと同様に、株式会社としての「はてな」に関心を持っていただいた方々とコミュニケーションするための窓口です。会社情報を提供したり、あるいはプレスリリースなどの情報を公開
竹迫良範( id:TAKESAKO)さんが翻訳および編集をされた『ECMA-262 Edition 5.1を読む』が、9月25日に発売になりました。多くのWebエンジニアが利用するプログラミング言語「JavaScript」の最新仕様書である「ECMA-262 Edition 5.1」を完全翻訳し、解説を加えた一冊です。 ECMA-262 Edition 5.1を読む 作者: 竹迫良範出版社/メーカー: 秀和システム発売日: 2013/09/25メディア: 単行本この商品を含むブログを見る 本書には弊社エンジニアの id:nanto_vi がレビューで協力させていただいたこともあり、はてな開発者ブログでは発売を記念したキャンペーンを実施します。秀和システム様からご提供いただいた『ECMA-262 Edition 5.1を読む』に、はてなブックマークのオリジナルステッカーをセットにして、当ブロ
この教科書は、はてなサマーインターンの講義資料として作成されたものです: https://github.com/hatena/Hatena-Textbook 機械学習編1(基礎編)では、最も初歩的な分類器である単純パーセプトロンを題材に、機械学習の基本について勉強しました。機械学習編2(実用編)では、実問題に機械学習を適用する上でのコツや、各種の機械学習アルゴリズムの使い分け、高次元データへの対処法、といったトピックについて解説していきます。 実問題に機械学習を適用する タスクを定義する データを特徴ベクトルに変換する 評価方法を決める 正解データの正例と負例は均等に ベースラインとなる手法を実装する 実データに向き合うときの心構え 機械学習のワークフロー 1. 前処理 データセット作成 サンプリング 特徴抽出 欠損値・欠測値への対応 値のスケーリング 特徴選択 次元削減 2. 学習 モデ
こんにちは id:cohalz です。はてなブログでは2021年4月の公式ブログで、すべてのブログをHTTPSに一本化していくことを案内しました。 ▶ 「HTTPS配信」への切り替えと、ブログの表示の確認をお願いいたします この時点でまだ数百万件のHTTPのブログが残っている状態でしたが、2021年8月には上記の案内に追記したように、全ブログでHTTPS化を完了できました。 完了までに行ってきたことをこの記事で振り返ってみようと思います。 はてなブログのHTTPS化のこれまで はてなブログのHTTPS化は、2017年9月に最初のお知らせを行ってスタートしました。 当初の予定より時間がかかりましたが、2018年2月にHTTPS配信の提供を開始し、これ以降に作成されたブログは最初からHTTPSのみで配信されています。また、それ以前に作成されたブログでも、ユーザ側で設定を変更することで自分のブロ
こんにちは。アプリケーションエンジニアのid:sakaharaです。 この記事ははてなエンジニアアドベントカレンダー2014の20日目です。 昨日はid:wtatsuru によるはてなにおけるサーバリソース可視化とMackerelでした。 今日ははてなのiOS開発で利用しているオープンソースのライブラリやサービスも含め、開発をよりスマートにしてくれる様々なものを紹介したいと思います。 パッケージ管理 CocoaPods (MIT License) まずライブラリ管理をするための管理ツールとして欠かせません。 最近ではSwiftに対応したCarthageも登場していますが、CocoaPodsのSwift対応版の開発も進んでおり そのまま使い続けるのもよいと思います。 ライブラリ AFNetworking (MIT License) 改めて紹介する必要はないほどの定番のHTTPネットワーク通信
こんにちは、 id:alpicola です。今年4月に新卒入社してアプリケーションエンジニアとして働いています。 ウェブアプリケーションはその性質上、データベースに対して同時に大量の問い合わせを行います。そうした中でデータベースが個々の問い合わせを処理していくときに起こっていることは何か、どういう順序で処理が行われるのか、というのは興味深い話題かと思います。例えばデータベースに対して行った更新処理の結果が、更新を行ったクライアント以外のクライアントからも「見える」ようになるのはいつでしょうか。入社間もない頃、先輩エンジニア達にそうした疑問をぶつけてみたところ、「トランザクション分離レベル」というキーワードと、この分野の古典的な論文 A Critique of ANSI SQL Isolation Levels を教えてもらい、輪読会を社内で開催しました。この記事ではこの輪読会の模様をレポー
こんにちは。アプリケーションエンジニアのid:yashigani_wです。 はてなは、短期間にWebアプリケーション開発の基礎を身につけるための教材である「はてな教科書」をgithubで公開しています。 これは新入社員研修やはてなサマーインターンでの講義に利用されており、毎年のはてなサマーインターンの一環として加筆・修正し更新しています。 今年は「はてな教科書JavaScript編」「SwiftでのiOSアプリ開発」「Web開発におけるコンピュータサイエンス - 機械学習編」を変更・追加しました。 Webアプリケーション開発の学習や研修のために自由にご利用いただけます。 はてな教科書JavaScript編 今年のはてな教科書では、JavaScript教科書を一新しました。 JavaSctiptの講義は内容が長大になってしまったため、他の教科書とは別レポジトリに移動しました。 また、教科書は
こんにちは、アプリケーションエンジニアのid:shiba_yu36です。今回ははてなで毎週開催している社内技術勉強会で発表した「技術ブログを書くことについて」という発表資料を公開します。 speakerdeck.com 今回の発表をなぜ行ったかというと、もっと気軽に自分のやったことをブログに書くといいのではという考え方を社内に伝えたかったからです。エンジニアをしていると、ブログを書くときは他の人が書いていないことしか書いてはいけない、しかも完璧に書かなければならない、というような気持ちになることもあります。しかし、ブログを書くことで自分の学習をより深め、加速することもできるので、あまり気負いせずにブログを継続して書いて欲しいという思いを発表しました。これがエンジニアのブログに関する正しい考え方と言い張るつもりはなくて、一つのブログに対する考え方として、参考になれば良いなと思います。 発表で
次のページ
このページを最初にブックマークしてみませんか?
『Hatena Developer Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く