タグ

ブックマーク / techblog.kayac.com (63)

  • 【JS体操】JavaScript で頭の体操をしよう!〜第一問 44文字 解説編〜 - KAYAC engineers' blog

    こんにちは!カヤック面白プロデュース事業部のおばらです。 普段は受託案件、特にインタラクティブな WebGL や Canvas2D を駆使する案件のデザイン&実装を担当しています。 先日出題したJS体操 第一問目、挑戦してくださったみなさまありがとうございました! 早速ですが最短文字数の回答は 44文字 でした! export default x=>x-(x%=.2)+.2-(.04-x*x)**.5 みごと44文字を達成した方は、 halwhite さん koyama41 さん sugyan さん tkihira さん たつけん さん の5名!(※ Unicode コードポイント順) おめでとうございます!! 最短文字数を狙った正統派の回答以外にも、裏技的な面白アプローチがたくさんありました笑 このアプローチは面白い、ぜひ紹介したい!という回答がいくつかあったので、解説記事は2回に分けて

    【JS体操】JavaScript で頭の体操をしよう!〜第一問 44文字 解説編〜 - KAYAC engineers' blog
    sugyan
    sugyan 2024/04/26
    めっちゃ分かりやすい解説記事。自分は三日三晩考えまくってようやく44文字に辿り着いたけど `%` を整数でしか使ったことが無かったので `% 0.2` できることに気付くまでが一番時間かかって大変でした
  • YAPC::Hirosima 2024でコードゴルフコンテストを開催しました 〜解説編〜 #yapcjapan - KAYAC engineers' blog

    こんにちは、技術部の谷脇です。 去る2月10日に行われたYAPC::Hiroshima2024ですが、みなさまはいかがだったでしょうか。私は参加して大満足であり、運営の方々に大感謝させていただきます。 さて、カヤックではゴールドスポンサーと椅子スポンサーをしていたというのは開催直前に出した記事で述べさせていただきました。 techblog.kayac.com この記事では伏せられていた、椅子スポンサーのPerlbatrossですが、この記事ではPerlbatrossの内容紹介と問題解説をしようと思います。 Perlbatrossとは YAPC::Hiroshima2024の開催期間中にコードゴルフの問題を出していました。以下は椅子スポンサーで貼らせていただいた問題です。 Q1. Split of Graphemeの問題 さて、これだけではなく、QRコードにアクセスすると実際に問題を解けるサ

    YAPC::Hirosima 2024でコードゴルフコンテストを開催しました 〜解説編〜 #yapcjapan - KAYAC engineers' blog
    sugyan
    sugyan 2024/02/22
    とても面白かったし勉強になりました!チート・グリッチ編の解説も楽しみにしております
  • カヤック×PR TIMES合同 カヤック社内ISUCONを開催しました - KAYAC engineers' blog

    カヤックSREの今です。 今年も4月に新卒社員を迎え、4月の後半には技術部研修を行いました。 技術部研修の締めには毎年なにかしらのイベントを行うのが恒例になっており、昨年は社内CTFを開催しました。 今年は、カヤックでは2年ぶりとなる社内ISUCONを開催しました。 新卒のみなさんはオフィスへ集まってもらいました ISUCON1とは Iikanjini Speed Up CONtestの略で、出題されたwebサービスを競技時間内にいい感じにスピードアップするコンテストです。 参加者にはWebサービスが動作する環境と初期実装のソースコード、MySQL等などのソフトウェアの初期設定ファイルが配布されます。 制限時間内でWebサービスの動作が変わらないように変更を加えて、最終的にベンチマーカーが計測するWebサービスのスコアを競います。 Webサービスの構成は問題によって変わります。アプリケーシ

    カヤック×PR TIMES合同 カヤック社内ISUCONを開催しました - KAYAC engineers' blog
  • 突撃!隣のリモートワーク環境 2021 - KAYAC engineers' blog

    この記事は Tech KAYAC Advent Calendar 2021 の23日目の記事です。 技術部2年目サーバサイドエンジニアのkolukuです。 2年経っても未だにコロナ下にある昨今、去年から引き続きリモートワークを行っている会社も多いのではないでしょうか?自分自身も入社直後からリモートワークで人と接点が無く、時々他の社員はどんなふうに仕事をしているのか思いふけることがあります。 リモートワークといえば、昨年はリモートワークでこう仕事しています!という紹介記事がたくさんありました。それを思い出した自分は社内で「2年かけて熟成されたリモートワーク環境のデスクを見てみたいので、なるべくありのままの状態を見てみたい」という要望で募集したところ、なんと14名も企画に参加いただけました! エンジニアエンジニアデスクと聞くと「とにかくモニターがいっぱいに並んでいそう」「ガジェットでご

    突撃!隣のリモートワーク環境 2021 - KAYAC engineers' blog
  • Perlでいかにして短いコードを書けるかを考えてみる - KAYAC engineers' blog

    この記事はTech KAYAC Advent Calendar 2020の9日目の記事です 技術部1年目サーバサイドエンジニアのkoluku(コルク)です。 この記事ではPerlでコードを書くための思考過程や実践的なテクニック(やっちゃだめなテクニック)を織り交ぜながらいかにしてコードを短くできるかを紹介してみたいと思います。 FizzBuzz問題 みなさんはFizBuzz問題をご存知でしょうか。 FizzBuzz問題とは、 1〜100までの数字を順に出力を行い、その数が3で割り切れるならFizz、5で割り切れるならBuzz、そのどちらでも割り切れるならFizzBuzzと代わりに標準出力(文字表示)する という問題です。プログラムを書くことがある人は一度は書いたことはあると思います。 この問題では出力が改行ありなしの指定が無いのでここでは(都合がいいので)改行ありということにしておきます。

    Perlでいかにして短いコードを書けるかを考えてみる - KAYAC engineers' blog
    sugyan
    sugyan 2020/12/10
    perl -E'say((Fizz)[$_%3].(Buzz)[$_%5]||$_)for 1..1e2'
  • 10年以上続いたサービスを終了させた - KAYAC engineers' blog

    SREチームの竹田です。Tech Kayac Advent Calendar Migration Track 12日目の記事になります。 今年2019年9月にTHANKSというサービスを閉じました。 実はこのサービス、10年以上前に自分が設計開発したサービスなのです。 運営・開発が入れ替わる形で自分の手は離れていましたが、最後は自分の手元に戻りクローズ作業をすることになるとは...感慨深いものがあります。 全世界に向けて「ありがとう」を発信!「THANKS」リリース (ニュースリリースは2006.11.28ですが同年の7月にサイトは公開されたような記憶がある。13年近く続けていたってことですね。) リリース当時の事を思い出してみると フロントはFlashでサーバサイドはAPIのみ ブログバーツ(なつかしい!)にもAPIを提供 1台のサーバ内に複数サービスが同居 リリース直後にブログパーツが

    10年以上続いたサービスを終了させた - KAYAC engineers' blog
  • Lobiの画像変換サーバーをImageFlux+Lambda@Edgeで置き換えたはなし - KAYAC engineers' blog

    SREチームの長田です。 先日Lobiの画像変換サーバーをImageFluxに移行したので、その過程を紹介します。 画像変換って? Lobiはチャットを主軸としたコミュニティサービスです。 ユーザーはチャットメッセージに画像を添付することができます。 また、ユーザーアイコンやチャットグループの壁紙などもスマホやPCからアップロードして設定することができます。 アップロードされた画像は利用箇所に応じて適切なサイズ・フォーマットに変換する必要があります。 投稿画像のプレビューでは表示速度と通信量削減を優先して解像度低めの画像を、 拡大表示する場合はオリジナルサイズの画像を表示します。 複数サイズの画像を用意する手段として、Lobiでは内製画像変換アプリケーションであるmagcian1を運用していました。 Amazon EC2上で動作するNodeJS製のアプリケーションで、AWS CloudFr

    Lobiの画像変換サーバーをImageFlux+Lambda@Edgeで置き換えたはなし - KAYAC engineers' blog
  • 突撃!隣のキーボード 2018 - KAYAC engineers' blog

    いやはや、すっかりキーボードを自作したくなる季節となりましたが皆様いかがお過ごしでしょうか? 今年もやってまいりました、あの人やこの人のキーボードに突撃する季節が! ということで弊社でも恒例となったこのコーナー「突撃!隣のキーボード 2018」、今回はソーシャルゲーム事業部サーバサイドエンジニアのやましんがお届けしてまいります! ちなみにですが、こちらはTech KAYAC Advent Calendar 2018 の14日目の記事になります。 (過去記事はこちら) 2017年 2016年 今回もいつものように以下のアンケートを取ってみました。 使っているこだわりのキーボード(など)は? それらを選んだ理由は? それらを選んでよかったことは? それらを選んで失敗したことは? こだわりのデスク環境は? 最後に主張したいこと or 聞いてみたいこと アンケート結果 itabashi-takeh

    突撃!隣のキーボード 2018 - KAYAC engineers' blog
  • BigQueryで将棋の棋譜の氾濫を解決する - KAYAC engineers' blog

    Tech KAYAC Advent Calendar 2017の13日目の記事をお届けします。 クライアントワーク事業部でサーバーサイドエンジニアをしている森です。よろしくお願いします。 過去最大の将棋の盛り上がり 今年は将棋がとてもとても盛り上がりましたね。 最年少プロ棋士誕生 藤井四段29連勝 加藤一二三九段引退 流行語大賞候補に藤井フィーバーとひふみんがノミネート 羽生棋聖竜王位を獲得し永世七冠に かつてこんなに将棋がニュースに出たことはあったでしょうか。 こうなってくると将棋人口が増えて来そうです。 将棋人口が増えた時の問題点 将棋人口が増えると何が困るでしょうか? webのエンジニアなので将棋をwebに例えて考えてみました。 対局者:ユーザー 将棋盤・駒:UIUX 指し手:アクセス 棋譜:ログ という感じでしょうか。 将棋人口が増えると棋譜がとんでもないことになりそうです。 と

    BigQueryで将棋の棋譜の氾濫を解決する - KAYAC engineers' blog
  • Goでのmigrationについて ~ ddl-maker × schemalex ~ - KAYAC engineers' blog

    この記事はカヤックアドベントカレンダー19日目の記事です。 はじめに こんにちは @Konboi です。 皆さん忘年してますか? 私は今のところ順調に忘年できており、今年何をしてたのか大分忘れました。 ちなみに先日行われたカヤック技術部の忘年会の様子です。 肉がきたぞー! pic.twitter.com/w4VIdmMNmO— Masatoshi Kawazoe (@acidlemon) 2016年12月16日 忘年してます pic.twitter.com/T7EW0Z5ZVm— jigya♧kkuma (@jigyakkuma_) 2016年12月16日 ということで表題の通り、今日の記事ではカヤックでのこれからのGoプロジェクトでのmigrationについて紹介しようと思います。 記事であつかう migrationはDB更新を差し 新規テーブルの作成 テーブル/カラム名の変更 テーブ

    Goでのmigrationについて ~ ddl-maker × schemalex ~ - KAYAC engineers' blog
  • KAYAC engineers' blogのリニューアルですよ、皆さんっ!!!!1 - KAYAC engineers' blog

    いつもKAYAC engineers' blogをご愛読いただき、誠にありがとうございます。 ブログ初登場、社内インフラや管理系を担当しているやましんこと山田でございます。 この度は皆様のご期待に応えるため、ブログをリニューアルいたしました!!!(パチパチパチパチ) 長らくご愛好いただいておりましたブログも時代の移り変わりとともに変化し、新しいカタチとするべく、ドメインを一新し techblog.kayac.comとしてはてなブログで新たな出発をすることにしました! tech.kayac、つくり新しくしないのかな— kenjiskywalker (@kenjiskywalker) 2016年6月22日 こうした貴重なご意見をいただけるのは当にありがたいことであるとともに、今まで以上によいものを提供していくために日々精進してまいりますので、これからもご声援のほどよろしくお願いい

    KAYAC engineers' blogのリニューアルですよ、皆さんっ!!!!1 - KAYAC engineers' blog
    sugyan
    sugyan 2016/11/01
    おぉー
  • 分散環境でユニークなidを発番するGo製プロダクト「katsubushi」のご紹介 - KAYAC engineers' blog

    Lobiチームの長田です。 今回はkatsubushiというアプリケーションを紹介します。 https://github.com/kayac/go-katsubushi katsubushiはid発番を行うアプリケーションです。 水平分割されたデータベースに対してユニークなidを発番するために作られました。 なお、記事中の「データベース」はMySQLを指します。 katsubushiの特徴 Snowflakeと同様のアルゴリズムでid発番 SnowflakeはTwitter社がかつて公開していたid発番アプリケーションです。 https://github.com/twitter/snowflake/tree/master 既にメンテナンスされておらず、masterブランチにはその旨が書かれたREADMEしか残されていません。 タグが切られているので、ソースコード等はそちらで確認できます。

    分散環境でユニークなidを発番するGo製プロダクト「katsubushi」のご紹介 - KAYAC engineers' blog
  • 【祝!リニューアル】カヤック 新コーポレートサイト、5種類テーマ切り替えの裏側!【フロントエンド芸】 - KAYAC engineers' blog

    どうも、フロントエンドエンジニアの田島です。 弊社カヤックでは、2016年の7月7日を以て3年ぶりのコーポレートサイトリニューアルを行いました。 https://www.kayac.com 今回のサイトの大きなテーマは、 5種類のデザインから自分の好きなテーマに切り替えて楽しめる ということです。 現在のカヤックのアイデンティティを示す5つのテーマ、 「Simple」「Manga」「Game」「Tech」「Kamakura」 に則り、それぞれのテーマに応じたデザイン・演出を実装しています。 記事では、フロントエンド実装に当たって工夫した、 開発環境 CSS/JavaScript の設計 『屋』 大作戦 その他Tips, 使用したライブラリ というトピックについて、書いていきたいと思います。 開発環境 サイトではRuby on Railsを採用しています。 フロントエンド側でもなる

    【祝!リニューアル】カヤック 新コーポレートサイト、5種類テーマ切り替えの裏側!【フロントエンド芸】 - KAYAC engineers' blog
  • Lobiのログ集約・解析のはなし - KAYAC engineers' blog

    Lobiチームの長田です。 あらゆるWebサービスがそうであるように、Lobiでも日々大量のログが出力されています。 今回はこのログをどのように集約・解析しているかを紹介します。 TL;DR アクセスログ・アプリログなど、毎秒10000行以上のログが生成されている Fluentdを使用しログを集約 consul serviceを利用した集約サーバーの冗長化 ログ中のイベント検知・集約にはNorikraを使用 アクセスログの各種解析にはAmazon Redshiftを利用 ログの集約 ログ収集エージェント Lobiではログの集約にFluentdを利用しています。 Fluentd | Open Source Data Collector | Unified Logging Layer ログファイルの集約にはfluent-agent-hydraを、Perlアプリケーション内からのログ送信にはFl

    Lobiのログ集約・解析のはなし - KAYAC engineers' blog
  • AWS Lambdaを使ってベンチサーバー無しで社内ISUCONを運営したはなし - KAYAC engineers' blog

    新人研修担当の長田です。 今年も新人研修の締めとして社内ISUCONを行いました。 昨年はプログラミング基礎の講師をやったのですが、 今年はその実績を買われて(?)社内ISUCONの出題を担当することになりました。 過去のISUCON準備の様子を傍から見ていた身としては、 準備を始める前から「とにかく大変そうだ・・・」というイメージを持っていました。 問題を作りこむ以上、どうしてもISUCON当日ぎりぎりまでかかってしまうのでしょう。 ぎりぎりになるのはまあ準備する人が頑張ればいいとして、 ぎりぎりになった結果競技自体の進行が危ぶまれるのは避けたい! ということで、いくつか効率化という名の妥協策をとることにしました。 効率化できるところは? 毎回新規に出題するのはしんどい! 社内ISUCONは過去2回実施していますが、 どちらも新規に高速化対象のWebアプリケーションを作成していました。

    AWS Lambdaを使ってベンチサーバー無しで社内ISUCONを運営したはなし - KAYAC engineers' blog
  • 世界の何処かで MySQL(InnoDB)の REPEATABLE READ に嵌る人を1人でも減らすために - KAYAC engineers' blog

    tech.kayac.com Advent Calendar 2015 8日目担当の @m0t0k1ch1 です。 今年は MySQL さんにいろいろ泣かされた1年でした。特に、あの夏、幾夜をともにした実行計画のゆらぎは一生忘れな(ry さて。。。今回は、そんな中でも誰もが一度は嵌るであろう(?)MySQL(InnoDB)の REPEATABLE READ の嵌りどころについて自分なりにまとめてみようと思います。 この記事が目指すこと MySQL の各トランザクション分離レベルの嵌りどころについては、現状でも種々のブログ記事などでまとめられており、そんなに真新しい話ではないと思います。が、過去の自分のように、嵌ったことがない人間からすると、 話としてはなんとなく理解できる が、抽象的でいまいち身につかない というのが現実でした。嵌りどころに実際に嵌った今読み返してみると、「あーーー、、、そ

    世界の何処かで MySQL(InnoDB)の REPEATABLE READ に嵌る人を1人でも減らすために - KAYAC engineers' blog
  • 社内IRCをSlackに移行した時にやったこと - KAYAC engineers' blog

    藤原です。 カヤック社内では長らく社内のチャットシステムとして、Skype と IRC を併用してきました。Skype には一応全員アカウントを持っているのですが、IRCと比較すると botでの自動化が難しい 過去ログを参照しづらい 自分以外にだれもオンラインになっていないと発言できない (深夜の障害対応などで致命的) という特性のため、エンジニアを中心に好んで IRC を使用していたチームも多く、分断されていた状態でした。 今年は Slack が一気に世間的に広まったこともあり、ここはひとつ全社のチャットシステムを Slack に移行しよう!という気運が盛り上がり、現在自社サービスのすべてと一部のクライアントワークチームが Slack に移行完了しています。 (以前から Skype を使用している部署はまだ移行し切れていないので、全社統一は来年の課題です) このエントリでは、IRC から

    社内IRCをSlackに移行した時にやったこと - KAYAC engineers' blog
  • 今年の新人研修はgoでした - KAYAC engineers' blog

    新人研修のgo担当だったhandlenameです。 昨夏、Go言語を積極的に推進していきます。という宣言を出しましたが、 この一環として新人研修で扱う言語としてgoが選ばれました。 研修では何をやったのか Webサービスの開発・運用に関わる要素を対象としました。 goの研修に使える時間は合わせて10時間程度と限られていたこともあり、 かなり内容を絞っています。 開発環境の準備 研修に入る前に、受講者それぞれに開発環境の準備をしてもらいました。 brew install go 環境変数の設定 エディタの設定(保存時にgofmt自動実行) 幸いここで躓いた受講者はいなかったようです。 Tour of Go プログラミングは全くの未経験、という受講者はいなかったので、 いきなりTour of Gogoのコードを書いてもらいました。 基文法/制御構文/データ構造/並列処理 の4つのセクションに

    今年の新人研修はgoでした - KAYAC engineers' blog
  • Dockerで非エンジニアでも開発環境を上げ下げできる、mirageというツールを作りました - KAYAC engineers' blog

    いやー今年もISUCONの予選参加募集がはじまりましたね! 昨年は出題側だったので胃が痛かったですが、今年は参加側ですので大変楽しみにしております。@acidlemonです。 Docker使ってますか? さてみなさん、Docker使ってますか? 使ってる? 使ってない? ぼくは使ってませんでした。えー今どきBlue-Green Deploymentやってないの? Immutable Infrastuctureじゃないの? と言われそうですが、世の中にはいろんなしがらみとかもあってなかなか簡単にエイヤーでコンテナに移行できるわけでもないのは皆さんなんとなく感じているのではないでしょうか。 とはいえ、最近これだけ話題になっているDockerですので、そろそろ使ってみたいなぁ…ということで、まずは開発環境をDockerで上げられるようにしました。 Dockerでコンテナを作るときには2つのアプロ

    Dockerで非エンジニアでも開発環境を上げ下げできる、mirageというツールを作りました - KAYAC engineers' blog
  • Golang 製の Android 向けテストアプリ配信ツール「alphawing」を公開しました - KAYAC engineers' blog

    昨年の Advent Calender ぶりの登場です。@m0t0k1ch1 です。 表題の件につきまして、実は 7/31 に公開された こちらの記事 の実績一覧の一番上に載せていただいてもいたのですが、改めてこちらで報告させていただきたいと思います。 alphawing とは https://github.com/kayac/alphawing TestFlight が 2014/3/21 をもって Android のサポートを終了 してしまったので、それを代替するためのツールとして開発したのが、この alphawing です。簡単に表現すると、「Android 用の TestFlight」です。表題の通り、サーバーサイドは Golang で記述されています。 アプリケーションの詳しい起動方法などについては README をご参照ください。 アプリケーションの概要 アプリケーションにひも

    Golang 製の Android 向けテストアプリ配信ツール「alphawing」を公開しました - KAYAC engineers' blog