Ctrl + Cでクリップボードに任意の値をコピーしたい場合に、Chrome, Firefox, IEでどう実装するかまとめました。 クリップボードを操作するにはFlashを使うのがベタですが、その場合必ずFlashのボタンを押さないとクリップボードにアクセスできません。 今回はCtrl + Cでクリップボードにコピーしたいということで、HTML5のClipboard APIやIEのwindow.clipboardDataを使って実装します。 Chrome, Firefoxの場合 HTML5のClipboard APIを使います。 クリップボードイベント(copy, paste, cut)発生時のみ使用可能で、任意のタイミングでのクリップボード操作はできません。 まだドラフト版のAPIなので色々と制約があるみたいですが、基本的なCopy & PasteはChrome, Firefox両方と
まえおき 前回までの記事で、Node.jsのアプリ上で4sqAPIを叩いて色々出来る下地が整ったのですが、ユーザアカウントの切り分けなどは全く考慮していないので、このままだとユーザAさんがOAuthした後にユーザBさんがサイトにアクセスするとBさんは何もしなくても自動的にAさんのチェックイン履歴が見られる、というファンタスティックな事態に陥ります。 今回はいったん前回までのFourSquareAPIの話は忘れて、上記問題に対してsessionの作法をExpressアプリ上に実装することで対応しようと勉強をした内容をまとめます。 参考にさせていただいた記事様 今回は、こちらの記事様をベースとして勉強しました。 Node.js+Express+MongoDBでSessionを利用してログイン機能を実装 - Qiita その中でわかりにくかった部分などをピックアップしてまとめておきます。 Git
仕事でNode.jsを使ってます。サーバーでも使ってますし、Androidのモニタリングにも使っていたりします。 今回はサーバーの話。今更な感じもありますが、一応書いておきます。 Node.jsは早いの?遅いの? 単純作業で言えば早いです。「データベースから値を取ってきて、テンプレートに埋め込んで、HTMLを返す」みたいな単純作業は早いです。 でもそのHTMLから<img>タグがサーバを指していて、画像を返す処理もNode.jsにやらせると、どんどん遅くなっていきます。 画像やJavaScriptなど静的なファイルは別サーバにやらせて、Node.jsのサーバではプログラム的なことだけをやらせるようにすると上手くいきます。 仕事では、ウェブサイトはNode.js、静的なファイルはGoogle Cloud Storageにやらせてます。 以前に、2,000アクセス/秒のHTTPクエリをNode
ある要素の前面に何か別の要素をかぶせるように配置した時、背面にある要素のマウスイベントは基本的には反応しません。(前面の要素のみ) 当然といえば当然の話なのですが、デザインや仕様によっては、実際に構築するまでこの問題に気付きにくい場合があります。ありました。 下記のサンプルは、透過PNGでできた星画像をリンクボタンにかぶるように position:absolute で配置した例です。見た目の上ではかぶっていませんが、それは星PNGの背景が透過されているからで要素同士はしっかりかぶっているため、背面のリンクボタンにマウスを置いてもカーソルの形は変わりませんし、クリックしても無反応です。(ギリギリかぶっていないリンクボタンの上端と右端は反応する) サンプル.01 これをどうにか前面の星PNGに邪魔されずにリンクボタンをマウスに反応させるようにする、というのがこの記事の本題。 一番簡単なのは、C
2020年最新版をnoteの方に公開しました! スタートアップはお金を払ってでも使うべきプロダクト12選 2020 下記は以前のものです。ご注意ください。 株式会社スピカは女性向けのネイル写真共有サービス「ネイルブック」を運営しているスタートアップです。 弊社もそうですが、どこのスタートアップでもリソースは足りない状態だと思います。ヒト・モノ・カネ、全てが貴重なリソースです。 少しでもお金を倹約したいフェーズなので、有料サービスを契約するのは抵抗があるかもしれません。 しかし、素晴らしいプロダクトはあなたの会社の成長を助けてくれます。 素晴らしいプロダクト使うことでメンバーから無駄な業務をはがすことができ、あなたの会社を成長させるために優先して取り組むべき課題に集中することができます。 ということで私が「お金払ってよかったなー」と思ったサービスをご紹介します。 社内システム Google
パスの末尾に/があるかないかを気にしたくない 文字列を結合してパスを生成したりするときに、パスを格納した複数の変数を文字列結合するときがあります。 dirHome="/var/lib/hoge/" workDirName="work" echo "${dirHome}${workDirName}" # /var/lib/hoge/workと表示される しかし、dirHomeやworkDirNameのような変数をコンフィグファイルで設定していたり、実際に参照するところと定義箇所が遠いときがあると厄介なことが起こりえます。 例えば、下記のようにdirHomeの末尾に/がなかったらどうなりますでしょうか?
この記事について 現在Unityで制作しているものにボイスチャット機能をつけようと思って先日いろいろ調べて実装してました。 ただ、調べた段階でクリティカルな記事が見つからなかったので、ボイスチャットを実装したい人向けに助けになれば良いですね。 ボイスチャットは別で(Skypeとかで)いいじゃん。というのも確かにそうなんですけど、それでは表現できないことがあるよねという話を「おまけ」の項でしているのでよろしくお願いします。 必要なもの ・Unity5 (4でもいいかもですが、僕は5で作っているので4での動作は保証しません。) ・PhotonUnityNetwork (AssetStoreからDLしてください。) ・DFVoice (UnityのVoIP用Asset 要30ドル。Unity5だとバグが出て使えなかったが、最近改善された。最高。) https://www.assetstore.u
はじめに swiftはほとんど未経験ですが、SmartNews風ニュースアプリを作ってみて、その過程をさらしてみようと思います。 同じような境遇にいる方の参考になれば幸いです。 作成中のアプリ 現在の進捗はこんな感じです。投稿の方が追いつかなくなっていますが、随時追記します。。。 ソースコードはこちらに晒しています。 tjnet/NewsAppSwiftMVVM tjnet/NewsAppWithSwift: News App like Smart News 今後の予定 長くなるので、今後、何回かに分けて次のような記事を書いていこうと思います。 プロトタイプ作成 [公開しました!] swift初心者がSmartNews風ニュースアプリを作ってみる過程を晒す(2) - 横スクロールするメニューバーを実装 メニューバーの外観をSmartNewsライクなものに更新 [公開しました!] swift
Fuzi 私が作ったXML/HTML パーサーFuziがSwiftSandbox Issue 9に当選しましたw Update: 2016/09/24, FuziがFirefox for iOSプロジェクトに採用されました Fuzi は Mattt Thompson氏の Ono(斧) に参照し Swift 言語で実装した XML/HTML パーサーです。[ドキュメント] よろしければ、どうぞお使いくださ(CocoaPods, Carthage対応あり) 日本語のREADMEもあります https://github.com/cezheng/Fuzi/blob/master/README-ja.md 用例 import Fuzi let xml = "..." do { // if encoding is omitted, it defaults to NSUTF8StringEncoding
以前Nodeで作っていたものをElectronで作り直していて、同じ問題にまたハマったので書いておく。 所謂、UTF-8-MAC問題である。もう遥か昔にNodeでハマった時の記事がある。 node.jsでUTF-8-MACを扱う - joker1007の日記 Macのファイルシステムはファイル名に対してNFDとかいう正規化を行っていて、ファイルシステムにアクセスする時に勝手に変換しやがる仕組みになっている。 このせいで、濁点が入ると急に死ぬとか、本当辛い問題が起きる。何の嫌がらせなんだと……。この世界は文字が8ビットで済む様な国ばっかじゃねえんだよ! とりあえずMac NFDでググると辛いのは俺だけじゃない気持ちになれる。 で、昔は上で貼ったブログに書いたような方法で解決していたのだが、正直、この解決策は2015年にもなって面倒過ぎるだろと思っていた。 (マジかよーってググって自分の記事が
Match Me if you can: Swift Pattern Matching in Detail.が良記事で、ちょうど僕もSwift2のキャッチアップ中だったので、写経しながら翻訳ぽい記事を書きました。(翻訳許可もいただいています) 冒頭のイントロ的部分は飛ばして、Advanced Pattern Matchingから書きます。 様々なパターンマッチング 7つのパターンを紹介します。 switchだけではなくif・guard・forを組み合わせて表現します。 1. ワイルドカードパターン ワイルドカードパターンは、マッチした値を無視します。 let _ = fn()の_と同様です。 単に_で受けるとnilを含む全ての値にマッチしてしまうので、オプショナルの値をマッチするには、_?として区別します。 let p: String? = nil switch p { case _?:
以前、[Objective-c]カメラ機能実装まとめ(AVFoundation)でObjective-cでAVFoundationを使ったカメラ機能の実装をやったのでそれのSwift版です。 機能を使うまでに必要なことだけ書くのでUIとの組み合わせ方は書きません。 わからない場合は実際にUIと組み合わせて動作するサンプルのGitHubを一番下にリンクしておきますのでそちらをどうぞ。 【カメラの映像を取得する】 カメラから取り込まれる映像の断片的な画像データを取得する方法を書きます。 FrameworksとDelegateの宣言 今回使うAVFoundation.frameworksをインポートしてdeleteを継承します。 変数の宣言 以下3つの変数を宣言、カメラからの映像を取得するのに必要です。 カメラ準備 カメラから取得するデータについて指定したりして準備します。 カメ
さくらのVPSを使った、初心者向けの記事「VPSによるWebサーバー構築講座」を半年前に公開しました。さくらのVPSを使ってWebサーバーを構築し、WordPressをインストールするまでの手順を解説しました。 しかし、サーバーは構築が完了したらそこで終わりではなく、稼働し続けている間はメンテナンスをしていかなければいけないし、安全に運用するにはセキュリティにも気をつかわなければなりません。 そこで、VPS構築講座の続編として「運用編」をお届けします。いったんWebサーバーとして稼働しはじめたサーバーについて、継続してサービスを続けていけるように運用のノウハウをお届けします。 運用編の連載は5回に分けて行う予定ですが、まず初回は「ログファイルの見かた」について触れたいと思います。 ログファイルについて大きく2種類のログをご紹介します。 WebサーバーApacheのログの見かた ssh関連の
SkypeのiOSアプリで見るバウンドするアニメーションを実装してみた。 その要点をまとめておく。 デモ https://github.com/ytakzk/Hokusai 実装方法 CADisplayLink アニメーションにはCADisplayLinkを使用した。 ディスプレイが更新されるタイミングで関数が走るため、 NSTimerよりもアニメーション適している。 UIBezierPath 波のようなアニメーションを作るために、 ベジェ曲線を利用する。 具体的にはUIBezierPathで毎フレームごとにCALayerを描画。 // レイヤーの開始点に移動 UIBezierPath().moveToPoint(開始点) // 現在の点からベジェ曲線を描いて次の点へ移動 UIBezierPath().addQuadCurveToPoint(次の点, controlPoint:曲率を作るた
vi config/development.json { "log4js": { "appenders": [{ "category": "access", "type": "dateFile", "filename": "/tmp/access.log", "pattern": "-yyyy-MM-dd", "backups": 3 }, { "category": "system", "type": "dateFile", "filename": "/tmp/system.log", "pattern": "-yyyy-MM-dd", "backups": 3 }, { "category": "error", "type": "dateFile", "filename": "/tmp/error.log", "pattern": "-yyyy-MM-dd", "backups": 3
全部かわいいのはwebkitだけ! ハート型はハート文字を使っているので 環境によっては綺麗に出ないと思う。 ブログに転載:http://t.co/sZNv8p1 <div class="SpeechBalloon type1"> <p>かわいいはつくれりゅ!</p> </div> <div class="SpeechBalloon type2"> <p>かわいいはつくれりゅ!</p> </div> <div class="SpeechBalloon type3"> <p>かわいいはつくれりゅ!</p> </div> <div class="SpeechBalloon type4"> <p>かわいいはつくれりゅ!</p> </div> <div class="SpeechBalloon type5"> <p>かわいいはつくれりゅ!</p> </div> /* * SpeechBalloon
概要 javascriptの文字列はUTF-16で String#charCodeAt(i) で取得出来る数値は2byte(0x0000から0xffff)になる。 escape("あ") は UTF-16がそのままエスケープされ "%u3042" になるが encodeURI("あ"),encodeURIComponent("あ") などではUTF-8に変換されて "%E3%81%82" になる。 var str = "文字列をUTF-8に"; var utf8str = unescape(encodeURIComponent(str)); var utf16str = decodeURIComponent(escape(utf8str)); if (str == utf16str) {alert(true);} //=> true とすることで UTF-16<=>UTF-8 の変換は出来
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く