archive-com.com » COM » N » NITOYON.COM

Total: 757

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".


  • (No additional info available in detailed archive for this subpage)
    Original URL path: /ja/blog/2013/12/13/touch-viewer/zoom_test.html (2016-02-13)



  • タグ「HTML5」の記事一覧 - てっく煮ブログ
    年の Web フォント事情 2012年04月26日 HTML5 Web フォント コピペできない文章 がコピペできなかった理由 2012年04月23日 HTML5 Web フォント 文字を制限した軽量な日本語 Web フォントを作成する方法 2012年04月19日 HTML5 Web フォント Flash 11 AIR HTML5 Unity のド派手なゲーム事例を紹介するよ 2012年03月01日 Flash HTML5 Google がまだ Flash を使っているサービスでみる脱 Flash の難しさ 2012年02月28日 Google Flash HTML5 Flash 重いという人たち 2012年02月24日 Flash HTML5 Messages for Japan に見る Google UI デザインの変化 2011年04月26日 HTML5 Google Maps Web デザイン Google HTML5 で書道が楽しめる The Shodo の完成度がすごい 2010年09月28日 HTML5 Web デザイン HTML5 雑感 2010年06月07日

    Original URL path: http://tech.nitoyon.com/ja/blog/tags/html5/ (2016-02-13)
    Open archived version from archive

  • -webkit-text-size-adjust: none を絶対に設定してはいけない理由 - てっく煮ブログ
    iPhone 3GS iOS 5 1 1 で表示するとこうなった デモ ページ 横向きにしたときに画像のサイズはそのままで 文字のサイズだけが大きくなっている おそらく 1 行あたりの文字数が増えすぎると読みにくくなるから という配慮なんだろうけど 余計なお世話なのでオフにしたくなる 自動調整をオフにしたい この自動調整をしているのが webkit text size adjust プロパティー デフォルト値は auto になっていて 100 や none にすると自動調整をオフにできる body webkit text size adjust 100 さきほどの例でも 文字のサイズが変わらなくなった デモ ページ none を設定してはいけない ここで重要なのが webkit text size adjust は none に設定すると副作用があるので 100 を設定すべき という点だ 検索してみると層々たるサイトで none に設定しましょう という記述があるんだけど 危険なので注意が必要だ 危険な情報を載せているサイトの一例 CSS スマフォ対応サイトのためにMedia Queriesをしっかり身につけるチュートリアル コリス iPhone向けWebアプリを作ろう 4 4 IT webkit text size adjust プロパティ CSS HappyLife ZERO CSS3 Media Queries を使って Webサイトをスマートフォンに対応させるときの注意書き Webデザインレシピ none が絶対にダメな理由 webkit text size adjust none を指定してしまうと PC 版の Google Chrome や Safari でページの拡大 縮小機能に支障がでる たとえば ITmedia には none が指定されてしまっているので悪い例として取り上げさせてもらう Google Chrome バージョン 24 にて 100 と 200 で ITmedia のトップページを表示するとこうなる 画像や文字の位置は拡大されているのに 文字が拡大されていない 目が悪い人や高解像度ディスプレイを使っている人にとっては 読みやすくするために拡大しても文字が小さいままなので たいそう不便である ためしに Google Chrome の開発者コンソールで body タグの webkit text size adjust プロパティーを none から 100 に書き換えてみると 期待した通りの表示になる これが none がダメで 100 を推奨している理由である 昨今のレスポンシブ Web デザインの流行もあり PC 向けサイトに webkit text size adjust が指定されることも増えてきた もし none を指定しちゃうと 目が悪い人や高解像度ディスプレイを使っている人がページを拡大できなくなっちゃう これは重大なアクセシビリティーの欠陥である none で拡大されないのは WebKit のバグ Mozilla の資料 text size adjust CSS MDN には この挙動は WebKit のバグだと書いてある 日本語訳は私によるもの WebKit ベースの PC 版ブラウザーにはバグがある webkit text size adjust に none を設定していると PC 版の Chrome や Safari は このプロパティーを無視すべきなのに ページの拡大 縮小を妨害する動作をする There is a bug in Webkit based desktop browsers If webkit text size adjust is explicitely set to none Webkit based desktop browsers like Chrome or Safari instead of ignoring the property will prevent the user to zoom in or out the Web page このバグは WebKit Bugzilla に Bug 56543 CSS property webkit text size adjust means different things in Safari and iOS として バグ登録されている パッチも提供されている しかし 現在のところ解決には至っていない このバグへの対処方法 理想 WebKit のバグが修正されるのが一番いい 現実 しかし 修正される気配はないし たとえ修正されたとしても 一定期間は古いブラウザーを使う人がいる だから 繰り返しになるが 現時点では body webkit text size adjust none ではなく body webkit text size adjust 100 を設定すべきだ スマホ専用サイトであれば webkit text size adjust none を設定しても困る人はいないのだけど 別の人がコピペで PC サイトに流用する可能性もあるだろうから webkit text size adjust 100 を習慣づけておいて損はないだろう

    Original URL path: http://tech.nitoyon.com/ja/blog/2013/02/14/text-size-adjust/ (2016-02-13)
    Open archived version from archive

  • iPhone 3GS では <IFRAME> 内のテキストをコピーできない - てっく煮ブログ
    原因を調べようと条件を変えて試してみると Web フォントは関係なかった 別ドメインの IFRAME かどうかも関係なかった 単に iPhone では IFRAME の中身をコピーできない だけだった iPhone 3GS で試験 コピーできるようにする方法があるのかもしれないけど いろいろと検索しても見つからなかった 実験用に従来の IFRAME 版の コピペできない文章 を貼り付けておくので iPhone の人は実験してみてほしい 本家の 絶対にコピペできない文章を作ったったwwww のほうは IFRAME を使わない形に修正したので 現在は iPhone でも楽しめるようになったはずである そもそも IFRAME を使っていたのは はてなダイアリーだと スマホでアクセスすると CSS が適用されない touch 版に飛ばされるからで これを回避するために Google ガジェットで逃げていたのが原因だった IFRAME でも Android では楽しめていたので 一定の成果はあったと思う Tweet 2012年12月06日 編集履歴 iPhone いいね ボタンは XFBML 版を設置して Facebook に最適化すべき Lightroom 4 では 5 1ch の動画は音なしになっちゃう話 Please enable JavaScript to view

    Original URL path: http://tech.nitoyon.com/ja/blog/2012/12/06/iphone-iframe/ (2016-02-13)
    Open archived version from archive

  • なぜ iPhone に Flash が搭載されないのか(Appleの弁) - てっく煮ブログ
    HTML5 のレンダリングエンジンであり Apple の全ての製品に含まれるブラウザ Safari の心臓部分である WebKit は広く採用されている Google が Android のブラウザとして利用し Palm も利用し Nokia も利用し RIM Blackberry は将来利用すると発表している Microsoft 以外のほぼ全てのスマートフォンのブラウザが WebKit を採用している WebKit の技術をオープンにすることで Apple はモバイル端末のブラウザの標準となった 2 全ての Web を見るために本当に Flash は必要か Adobe は 75 の Web 上のビデオは Flash ベースであり Apple のモバイル端末は 全ての Web にアクセスできない と繰り返し主張してきた しかし実際には ほとんどのビデオは よりモダンなフォーマットである H 264 でも提供されており iPhone OS 閲覧できるのだ Web 上の 40 のビデオを占める YouTube は Apple の全てのモバイル端末で再生できるし iPad は YouTube の優れたユーザー体験を提供している さらに Vimeo Netflix Facebook を加え ABC CBS CNN MSNBC Fox News ESPN NPR Time The New York Times The Wall Street Journal Sports Illustrated People National Geographic を加えると iPhone OS のユーザーはほとんどのビデオを閲覧できているのだ Adobe は Apple の端末では Flash ゲームができない とも主張する これは事実である ただ 幸運にも App Store には5万以上のゲームやエンターテイメントのタイトルがあり この多くは無料である iPhone OS は世界中の他のどのプラットフォームよりも ゲームやンターテイメントのタイトルが多いのだ 3 セキュリティとパフォーマンスを犠牲にしたくない シマンテックは2009年 最もセキュリティが低い製品の1つとして Flash を取り上げた 我々は Mac がクラッシュする原因の1位が Flash であることを身をもって知っている 我々は Adobe と協力して修正に努めてきたが 現在も解決しないまま歳月が流れている 我々は iPhone OS の信頼性やセキュリティを確保するために Flash を搭載していないのだ さらに モバイル端末では Flash のパフォーマンスがよくない 我々は継続的に Adobe に対して Flash がモバイル端末で正しく動作するところを見せてくれ と要求してきたが いまだに見れていないのである Adobe の広報は次のように言っていた Flash は 2009年初期にはスマートフォンに搭載される 2009年下半期には搭載される 2010年前半には搭載される そして今 2010年後半には搭載される と言っている 最終的には搭載されるとは考えているが 我々がそれを待っていなくてよかった と安心している そのような状況なのだから Flash の性能がどうなるかなんて 誰が分かるんだろうか 4 Flash を使うとバッテリーが持たない ビデオ再生中にもバッテリーを長持ちさせるためには ハードウェアデコードすることが重要となる ソフトウェアデコードを行ってしまうと バッテリーの消費が激しくなる 最近のモバイル端末で利用される多くのチップは H 264 のデコーダを搭載している H 264 は全ての Blu ray DVD プレーヤで利用され Apple や Google YouTube Vimeo Netflix など多くの会社によって採用されている業界標準である Flash も最近になって H 264 に対応した しかし Flash サイト上にあるほとんどのビデオを再生するには モバイルチップが対応していない旧世代のデコーダが必要であり それはソフトウェアデコードしなければならないことを意味する これは致命的なことだ 例えば iPhone では H 264 ビデオなら10時間再生できるのに ソフトウェアデコードを行うと5時間ももたずにバッテリーを使いきってしまう Web サイトが H 264 を利用してビデオを再エンコードしてくれれば Flash は必要なくなる Safari や Google Chrome のようなブラウザではプラグインなしにビデオを再生できるし iPhone OS でも再生できる 5 Flash はタッチを前提としていない Flash は PC 上でマウスを利用することを前提として設計された そのため タッチスクリーン上での指を使った操作に対応していない 例えば 多くの Flash サイトは ロールオーバー に頼っており 特定の場所にマウスを持っていくとポップアップメニューなどが表示される Apple の革新的なマルチタッチインターフェースにはロールオーバーの概念は存在しない そのため Flash サイトの多くは iPhone OS で閲覧するためには タッチ対応に再構築しなければならない もし 開発者が Flash サイトを再構築するなら HTML5 CSS JavaScript のようなモダンな技術を使えばよい もし iPhone OS で Flash が動いたとしても 多くの Flash サイトをタッチに対応させるために再構築しなおさなければならない という問題は残っているのだ 6 一番重要な理由 ここまで Flash がクローズドでプロプライエタリであり 技術的な欠点があり タッチに対応していない と述べてきた それ以上に 我々が iPhone OS に Flash を搭載しない重要な理由がある Adobe は Flash を利用して我々のモバイル端末上でアプリケーションを開発するよう開発者に望んでいる プラットフォームと開発者の間に Adobeのようなサードパーティーの中間層が挟まると 低水準のアプリケーションが生まれ プラットフォームの進化が止まってしまうのだ 例えば ある開発者がサードパーティーのライブラリやツールを利用して開発したとする そうすると中間層のライブラリやツールでプラットフォームの新機能がサポートされるまでは その開発者はプラットフォームの新機能を使えない 新機能を使えるかどうかや いつ使えるようになるかをサードパーティーの手に任せたくないのだ 訳注 Packager for iPhone

    Original URL path: http://tech.nitoyon.com/ja/blog/2010/04/30/thoughts-on-flash-jp/ (2016-02-13)
    Open archived version from archive

  • タグ「Flash」の記事一覧 - てっく煮ブログ
    なぜ iPhone に Flash が搭載されないのか Appleの弁 2010年04月30日 Flash HTML5 iPhone 都道府県大戦にはまった 2009年03月06日 ゲーム Flash Flash Player 10 ではフォント埋め込みしなくても回転できるらしい 2008年09月27日 Flash Flash CS4 の新機能 2008年09月24日 Flash Flash Player最新版にゼロデイでプログラム実行される脆弱性 一部誤報 2008年05月29日 Flash セキュリティー Flash がらみで動きが 2008年05月16日 Flash Twitter の crossdomain xml 問題について 2008年03月10日 Twitter セキュリティー Flash Flash 屋さんは世間が思うほどデザイナではない 2008年01月20日 Flash Flash 勉強会 大阪参加しました 2007年05月20日 勉強会 3D ActionScript Flash RIA 業界で動きありすぎな4月16日 2007年04月17日 Flash Silverlight FLAファイルを動画ファイルに変換する方法 2006年06月25日 Flash 動画 SWFファイルを動画ファイルに変換する方法 2006年06月25日 Flash 動画 FlashでActionScriptを利用したアニメーション

    Original URL path: http://tech.nitoyon.com/ja/blog/tags/flash/ (2016-02-13)
    Open archived version from archive

  • ATL の CAtlServiceModuleT を使ってサービスを作る - てっく煮ブログ
    hStopEvent INFINITE CloseHandle m hStopEvent return S OK void OnStop throw SetServiceStatus SERVICE STOP PENDING SetEvent m hStopEvent int WINAPI tWinMain HINSTANCE HINSTANCE LPTSTR int nShowCmd CMyServiceModule module if module IsInstalled module Install return module WinMain nShowCmd 使い方 サービス登録するには sc create コマンドを使うか tWinMain のコメントアウトしてある部分を消して一度実行するとよい 登録したサービスを 開始 すると サービスが開始する 現在の実装では何もせずに停止されるのを待機するだけのものとなっている 停止 を実行すると無事に停止することを確認できる 解説 軽く解説していく atlbase h で定義されている CAtlServiceModuleT のソースと 上に掲載している CMyServiceModule のソースを見比べると理解できるはず include 処理 まずは CAtlServiceModuleT が定義されている atlbase h を include する CAtlServiceModuleT は ATL で定義される CAtlExeModuleT を継承したクラスだ ATL の XXXXModule クラスは COM に必要な初期化などをやってくれるが 今回は COM は使わないので ATL NO COM SUPPORT を事前に define しておく define ATL NO COM SUPPORT include atlbase h include tchar h クラス定義 CAtlServiceModuleT は ATL の CComObject クラスなどと同じように クラス名をテンプレート引数に渡して継承してやる class CMyServiceModule public CAtlServiceModuleT CMyServiceModule public 停止用のイベント HANDLE m hStopEvent CAtlServiceModuleT には WinMain メソッドや その他のサービス実装に便利なメソッドが定義されている ここでは 追加でサービス停止時にシグナル化される m hStopEvent を追加で定義してあげた public なのは気持ち悪いが CAtlServiceModuleT クラスの他のフィールドも public なのでそれに合わせる形とした コンストラクタ CMyServiceModule 停止用のイベントを初期化 m hStopEvent NULL サービス名を設定 tcscpy s m szServiceName countof m szServiceName SERVICE NAME m szServiceName にサービス名を設定している CAtlServiceModuleT のコンストラクタには リソースからサービス名を取得する実装があるのだが リソースに依存するのは不便だったので 自力でサービス名を設定するようにしておいた これでリソースがなくても m szServiceName にサービス名が設定される ServiceName のところは自分で作るサービス名に適宜置き換えるべし エントリポイント ここでアプリケーションのエントリポイントを見ておく int WINAPI tWinMain HINSTANCE HINSTANCE LPTSTR int nShowCmd サービス モジュールのインスタンスを作成 CMyServiceModule module サービスをインストールするには次のようにする if module IsInstalled module Install モジュールの WinMain に処理を委譲すうr return module WinMain nShowCmd 単純に処理を CAtlServiceModuleT WinMain に委譲している 呼ばれた CAtlServiceModuleT WinMain は CAtlServiceModuleT GetCommandLine を実行し 成功すれば CAtlServiceModuleT Start を呼ぶ という実装になっている コメントアウトされてる部分はサービスの登録処理だ 必要に応じて活用してもよいだろう ParseCommandLine メソッド CAtlServiceModuleT GetCommandLine は COM サーバーとして登録するための処理を実装しているので 次のように何もしない処理でオーバーライドした bool ParseCommandLine LPCTSTR lpCmdLine HRESULT pnRetCode throw pnRetCode S OK return true Start メソッド CAtlServiceModuleT Start は サービスの登録を行う 以外にも レジストリの HKCR AppID から COM サーバーの情報を読み出してサービスかどうか判定する という処理が入っている そこで サービスを登録を行う 部分だけを抜き出してオーバーライドしている HRESULT Start int nShowCmd throw SERVICE TABLE ENTRY st m szServiceName ServiceMain NULL NULL if StartServiceCtrlDispatcher st 0 m status dwWin32ExitCode GetLastError return m status dwWin32ExitCode この部分で StartServiceCtrlDispatcher API を使って ServiceMain を登録する CAtlServiceModuleT ServiceMain は Handler を登録して 成功すれば Run を呼び出すようになっている 次は Run の実装を見ていく Run メソッド CAtlServiceModuleT Run ではメッセージ ループを使った実装があるが ここではシンプルな独自定義を行うことにした

    Original URL path: http://tech.nitoyon.com/ja/blog/2010/08/26/catlservicemodule/ (2016-02-13)
    Open archived version from archive

  • C#+RegAsm では JScript からコレクションとして参照できないので、ATL で作り直した話 - てっく煮ブログ
    ATL で書き直し C は GetIDsObNames がラップされているため 細かく制御できない つまり C で JScript からコレクションに見えるオブジェクトを作ることは不可能だ 仕方がないので ATL で書き直すことにした ATL COM を使うのは初めてだったけど ATL COMプログラミング を読みながら習得していった ATL COMプログラミング ATLとVisualC で作る高性能COMコンポーネント Programmer s SELECTION 作者 リチャード グリムス 出版社 メーカー 翔泳社 発売日 1999 01 メディア 単行本 Amazon のレビューを見る COM 関係の本はいくつかチャレンジしたが これが一番分かりやすかった ちょっと情報が古いけど Visual Studio 2005 を触りながらでも理解できた IDispatchImpl を拡張して添え字でアクセス可能に 通常 ATL でデュアルインターフェースを実装するには IDispatchImpl を利用する IDispatchImpl の実装を眺めてみると GetIDsOfNames などのメソッドはタイプライブラリ tlb から情報を読み取っている つまり IDispatchImpl では動的に増減する可変長のコレクションは扱えない 仕方がないので IDispatchImpl を継承したクラスで拡張していくことにした まずは ヘッダファイル IDipatchArrayImpl template class T class ATL NO VTABLE IDispatchArrayImpl public T public STDMETHOD GetIDsOfNames REFIID riid LPOLESTR rgszNames UINT cNames LCID lcid DISPID rgdispid STDMETHOD Invoke DISPID dispidMember REFIID riid LCID lcid WORD wFlags DISPPARAMS pdispparams VARIANT pvarResult EXCEPINFO pexcepinfo UINT puArgErr virtual HRESULT ArrayGet int index VARIANT pvarResult 0 virtual IDispatchArrayImpl IDispatch のインターフェースと ArrayGet というメソッドを宣言している テンプレートを使ってるのは ATL の流儀に則るための必然 コレクションに見せたいクラスでは IDispatchImpl を継承する代わりに 次のように IDispatchArrayImpl を継承する class ATL NO VTABLE CDomUiNodeList public CComObjectRootEx CComSingleThreadModel public CComCoClass CDomUiNodeList CLSID DomUiNodeList public IDispatchArrayImpl IDispatchImpl IDomUiNodeList IID IDomUiNodeList LIBID dom4winuiLib 1 0 このクラスの実装はこんな具合 詳しくはコメントを参照あれ IDipatchArrayImpl define DISPID ARRAY 5 プロパティ名が数字だったら DISPID ARRAY を足した DISPID を返す template class T STDMETHODIMP IDispatchArrayImpl T GetIDsOfNames REFIID riid LPOLESTR rgszNames UINT cNames LCID lcid DISPID rgdispid assumes that cNames 1 if cNames 1 digit check if iswdigit rgszNames 0 int index wtoi rgszNames if index 0 rgdispid index DISPID ARRAY return ERROR SUCCESS return T GetIDsOfNames riid rgszNames cNames lcid rgdispid DISPID が DISPID ARRAY 以上なら ArrayGet を呼び出す template class T STDMETHODIMP IDispatchArrayImpl T Invoke DISPID dispidMember REFIID riid LCID lcid WORD wFlags DISPPARAMS pdispparams VARIANT pvarResult EXCEPINFO pexcepinfo UINT puArgErr Array member if dispidMember DISPID ARRAY int index dispidMember DISPID ARRAY if wFlags DISPATCH PROPERTYGET index 番目の要素を返す return ArrayGet index pvarResult return S OK return null return T Invoke dispidMember riid lcid wFlags pdispparams pvarResult pexcepinfo puArgErr 内部で持ってる nodes コレクションの値を pvarResult に設定してあげる HRESULT CDomUiNodeList ArrayGet int index

    Original URL path: http://tech.nitoyon.com/ja/blog/2008/08/01/atlcom-dispatch/ (2016-02-13)
    Open archived version from archive



  •