本エントリはMackerel Advent Calendar 2017の23日目の記事です。 自宅の無線LANの利用状況をMackerelで監視するようにしたところ、予想以上にキモい仕組みができました。たとえば、家族の誰か(正確には誰かのスマートフォン)が外出するとSlackに通知を飛ばすことができます。 同じことをしている人は多くないと思うので、その知見を紹介します。 システム概要 まずは我が家のネットワーク構成を紹介します。 インターネットに接続しているブロードバンドルータがあり、無線経由でスマートフォンやPCがぶら下がっているような、ごく普通のネットワーク構成です。唯一変わっている点は、ブロードバンドルータ上でLinuxおよびMackerelエージェントが動いていることでしょう。 このルータの詳細は本稿では省きますが*1、ザックリ言うとRaspberry Pi 3を無線LANアクセス
新田です。久しぶりのエントリです。(相当久しぶりすぎる。) JPHACKS2016を11月に終え、今年の2月にオンラインプログラミング学習サービスCODEPREPをリニューアルリリースしました。わりと鬼のようなスケジュールだったのですが、チームに恵まれて、なんだかんだ一つ一つ事業を進めていくことができています。 そして、こうやってこれらの事業を通じて今日も業界内で課題でもある高度IT人材育成・輩出領域にチャレンジしている定かではあるのですが、やっと少し一息つける(一息つけるとは言っていない)タイミングになったので、当エントリを書きます。 2017年も3月に入り、学校の卒業を控え春から社会人になる人や、これから就職活動をして自分自身が活躍できる環境を探している人も多いのではないでしょうか。 僕は普段の仕事の様々な場面で、そのようなエンジニア志望の学生と話す機会がたくさんあります。 その中で、
UIPresentationController とは UIPresentationController は iOS 8 から追加された、View Controller の上のレイヤーにモーダルのような形で画面を表示する機能を提供する View Controller です。 iPad ではよく目にする機会が多いですが、下図のように View Controller の上に重なる感じで表示される画面のことです。 このような機能は、これまでは UIPopoverController のように、カスタマイズ不可能な形で提供されていました。iOS 8 では UIPresentationController が追加され、自由な表示・アニメーションのモーダルが表示できるようになりました。 なお、UIPresentationController は抽象クラスで、標準では上記 UIPopoverContro
$ curl -s -v --sslv3 https://example.com 1> /dev/null * Rebuilt URL to: https://example.com/ * Trying 93.184.216.34... * Connected to example.com (93.184.216.34) port 443 (#0) * SSL peer handshake failed, the server most likely requires a client certificate to connect * Closing connection 0 おっと、SSLハンドシェイクで通信に失敗したようですね。SSL3.0はPOODLE脆弱性問題があります。ちゃんとexample.comでは無効にしているようですね。以下のようにTLS1.2ではきちんとできました。Di
このエントリは、ex-mixi Advent Calendar 2017の16日向けに書いたものです。 ex-mixi Advent Calendar 2017は、ミクシィを卒業したメンバーが次々と近況などを書いているカレンダーです。僕はミクシィに2009年に入社して2013年まで在籍していました。もう少しで4年間ってところの手前で離れた感じです。その後、LINEに移って、mixi Platformの経験を活かして、LINE Platformの構築を3年ほどやってました。未だに「あ、OpenSocialの人だ」って指をさされることも多いですが、そんな感じです。 前の日、つまり15日分の投稿は、エンジニアを辞めて1年が経ちました ~ ex-mixi Advent Calendar 15日目でしたが、僕のIDが3回も登場していて、朝読んだんですけど笑ってしまいました。ソフトウェアエンジニアとし
RxSwift 入門 その1 - タコさんブログ の続き。 今回は、RxSwiftプレイグラウンドのSubjectsの項。 Subject は Observer 、また Observable の両方として機能し、Hotなオブザーバブルである。 Erik MeijerはSubjectを好んでいないようだ(Why Does E.Meijer not like Subjects?)。 Subjects RxSwiftでは以下のSubjectクラスが利用できる。 PublishSubject ReplaySubject BehaviorSubject Variable PublishSubject PublishSubjectはサブスクリプションの後のソースObservable(s)が送信したアイテム(イベント)のみを送信する。 // メモリ管理 let disposeBag = DisposeB
The Qiita Advent Calendar 2017 is supported by the following companies, organizations, and services.
LINEは4月28日、エンジニアを対象とした初の大規模技術カンファレンスとなる「LINE DEVELOPER DAY_2015 Tokyo」を、渋谷・ヒカリエホールにて開催した。本稿では、同イベントの午前中最後のセッション「A-4: LINE Platform Development Chronicle」についてレポートする。 同セッションでは、同社 開発1センター LINE開発1室所属のTom Tsuruhara氏が、「LINEメッセージング基盤の進化」「LINE流マイクロサービス」という二つのテーマをもとに、LINEのプラットフォームを支えるアーキテクチャや組織、文化について解説した。 LINEメッセージング基盤の進化 2011年6月にスマホ用チャットアプリとしてスタートしたLINEのアーキテクチャは当初、至ってシンプルで一般的なものだった。
NTT Communications(以下、NTT Com)が提供するWebRTC開発用プラットフォーム SkyWayはPeerJSをベースに構成されています。この記事ではPeerJS開発者であるEric Zhang氏の素顔に迫ります! はじめに 2013年11月19日から21日にアメリカで開催されたWebRTC Conference & Expoに合わせて、NTT ComのSkyWay開発担当者がアメリカを訪れ、PeerJS開発者の一人であるEric Zhang氏にインタビューを行いました。 (写真左:NTT com SkyWay開発チームの飯田アレン真人氏、写真右:PeerJS開発者のEric Zhang氏) ──PeerJSとは? WebRTCを活用したアプリケーションを開発できるようにするためのJavaScriptライブラリ。PeerServer Cloud serviceというW
これ知ってる? ブックマークしておきたい便利なウェブツール12選2017.11.26 19:3013,586 Rina Fukazu いざというときに役立つことまちがいなし。 ドキュメント転送、ファイル変換、GIF画像の作成、ウイルススキャン...毎日使うわけではないけれど、こうした機能が必要な場面って往々にして突然やってくるんですよね。 今回は数あるアプリやウェブサイトのなかで、米Gizmodo記者がおすすめするオンラインリソース12選を紹介します。いままでGoogleを頼りに検索して行き詰まっていた人はぜひともチェック&ブックマークしてみてください。 1. 低解像度の画像を改善する荒い画像の解像度を上げるには、無料サイト「Let’s Enhance」が役立ちます。低解像度の画像ならではのムラが自動的に除かれてなめらかに仕上がると評判です。英語に抵抗がある人でも、シンプルなUIで簡単に作
Glitchとは GlitchはNode.jsのアプリを公開するためのサービスです。 Node.jsでウェブアプリを公開しようとすると、サーバーの設定したりドメインを取得したり…とても複雑です。 Glitchは、あなたの創造性を試すことだけに集中できます。 Glitchは、あの有名なプロジェクト管理ツールのTrelloをつくったFogCreekSoftware社によって開発が進められています! アプリを公開するためだけでなく、オンラインのEditorなどもついていい感じです。 使ってみる これまでAWSやさくらインターネットなどを使っていましたが、Glitchはずば抜けて簡単です。 まずはGlitchにアクセスします。 新しいプロジェクトの作成1 右上の①[Sign in]ボタンからログインします。 FacebookかGitHubが選べますが、後々GitHubからソースコードを取得すること
「爆速すぎて笑う」「速すぎて逆に不安になるレベル」――「dev.to」という米国のWebサイトの表示速度が異常に速いと、ネット上で話題だ。なぜ速いのか、サイト創設者のベン・ハルパーンさんがサイト内の記事で説明している。 2016年にオープンしたdev.toは、プログラマーが情報を交換したり、議論したりできるコミュニティーサイト。トップページにはユーザーが投稿したブログ記事のタイトルやコメントが、SNSのタイムラインのように並んでいる。このトップページの表示にかかる時間、各記事をクリックしたときのページ遷移が“一瞬”なのだ。 なぜ速いのか。ハルパーンさんが17年2月に投稿したブログ記事によれば、米Fastlyが提供するCDN(Content Delivery Network)を活用している。CDNは世界中にキャッシュサーバを分散配置し、ユーザーごとに最も(ネットワーク的に)近いサーバにキャッ
The Qiita Advent Calendar 2017 is supported by the following companies, organizations, and services.
マークアップ文書(markup document)とは、文書を構成する文章や文字列(および図や表)に対して、その論理的構成を明示し、どんな文書要素であるかを(その範囲を含めて)マーク(指定)したテキストファイルである。 文書記述用に広く利用されているマークアップ方式に HTML/CSSとLaTeXがある。 マークアップ文書はテキストファイルであり、その文書作成にはテキストエディタを使う。 HTML/CSS/Javascript用に特化したオープンソーステキストエディタとしてAdobeが提供するBracketsやGitHubが提供するAtomが有名だ。 また、ワードプロセッサのような操作感でHTMLファイルを作成することができるオーサリングソフトウエアもある。 オーサリングソフトウエアを利用した場合、その結果ファイルは必ずしも分かりやすい(可読な)文書がもたらすわけではなく、レイアウトのため
六分木を二重連鎖木で表現した物 トライ木を二重連鎖木で実装した物。縦の矢印は子ポインタを表現し、横の点線の矢印は兄弟ポインタを表現する。 二重連鎖木(にじゅうれんさぎ、英: doubly chained tree)や左-子,右-兄弟表現(英: left-child, right-sibling representation)[1]や子-兄弟表現(英: child-sibling representation)[2]や filial-heir chain[3] とは、多分木を、直接子ノードのポインタの集合で管理するのではなく、子ノード1つと兄弟ノード1つのポインタで管理する方法。つまり多分木を二分木に変換する。1963年に Edward H. Sussenguth が発表した[4]。 ノード n の k 番目の子供を取得するには、以下のように行う。ノードは child と next-sibl
iOS 開発で必須とも言える API クライアントの設計手法を、初心者にもわかりやすく紹介します。 はじめに あなたは、どのように API クライアントを設計していますか。 まずはライブラリを選ぶでしょうか。 それとも、クラス図を書くのでしょうか。 なるほど、なるほど、ふーむ。 この記事では、もっと別のより良い設計方法を紹介します。 紹介する設計方法は、ほとんど設計知識のない状況から始めることができます。しかも、最終的にはあなたのプロジェクトにぴったりの設計を手に入れられる方法です。 対象読者 さて、この記事では、対象読者を次のように設定しています: どのような API 設計にしたらいいかわからない人 どのような API のライブラリを使うべきかわからない人 また、最終的には以下のレベルの目標を達成できることでしょう: あなたのプロジェクトの API 層設計者になれるレベル 目次 はじめに
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く