tag:blogger.com,1999:blog-53333335874407692472024-03-14T03:27:10.698+09:00週末ラボ開発備忘録と例外にさいなまれる日々の私的手記。最近はC#とJavaScriptばっかり。Unknownnoreply@blogger.comBlogger176125tag:blogger.com,1999:blog-5333333587440769247.post-40952722386643290132020-08-11T19:15:00.004+09:002020-08-11T19:15:25.620+09:00Excelシートの文字入力がめちゃくちゃ遅いときの対処<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-oaHIL6hQGnjF274VbVN5UNk0w-a12eMKgAtWE5qifjHZO7U2wUnyFm3K062fSaj2KLJzS_Cdajyw7eJe_3yRUEQLSGqBgWukLehS2lw0m_gcsIcANYTvSsJduYkafoJOcwUvcBsGQLI/s278/excel-icon.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="258" data-original-width="278" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-oaHIL6hQGnjF274VbVN5UNk0w-a12eMKgAtWE5qifjHZO7U2wUnyFm3K062fSaj2KLJzS_Cdajyw7eJe_3yRUEQLSGqBgWukLehS2lw0m_gcsIcANYTvSsJduYkafoJOcwUvcBsGQLI/s0/excel-icon.PNG" /></a></div><div><br /></div>Excelで文字入力を続けていると、次第に入力スピードが遅くなっていってどうにも作業が滞ってしまうという問題にぶち当たりました。<div>1つのセル内にわらわらと文字を打ち続けていると、次第にどんどん遅くなっていって、一文字一秒くらいのスロースピードになっていきどうにも作業が滞ってしまうのです。作業できなくなるので本当に困っていました。</div><div>この問題の回避策について書きます。</div><div><br /></div><div>あらかじめ言及しておくと、うちのExcelは2010という古いバージョンなので、別のバージョンで同じように回避できるかどうかは判りません。</div><div>解決するしないあればコメントいただけますと幸いです。 </div><div><br /></div><div>「Excel 文字入力 遅い」くらいで検索すると、2パターンの記事が出てきます。
<ol>
<li>オートコンプリートが問題なのでこの機能をオフにすれば解決する</li>
<li>1セルに文字数が多すぎることが問題なので、文書が多いものはWordを使うべし</li>
</ol>
オートコンプリートをオフにしても関係なかったようで、自分の状況に該当するのは後者の文字数が多すぎるほうでした。検索してもこれ以上の情報が見つからなかったので、これに対する自分の回避策を残しておきます。</div><div><h4>現象が発生する条件</h4>
発生条件を整理しておきます。 </div><div><br /></div><div>1セルに文字が多い。500文字くらいで遅延がでました。</div><div>とくに改行がある文章ほど顕著に遅延が発生します。改行数が多いほど遅延はひどくなるようです。 </div><div><br /></div><div>Excelの再起動はもちろん、シートの再作成、Windowsの再起動しても、文字入力が遅くなる問題は解決されませんでした。入力するセルを移動して、まっさらなセルに移すと文字入力の遅延問題は発生しなくなります。つまりシート全体が重いわけではないようです。</div><div><h4>回避方法</h4><div>Excelのセルの文字入力の仕方がいくつかあるようで、工夫することで回避できました。</div>セルに直接マウスカーソルを持って行き、ダブルクリックして文字入力を行うと遅くなります。</div><div>編集するセルをクリックして選択状態にしておき、数式バーをクリックして文字入力を行うと文字入力は遅くはなりませんでした。 </div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaVWm9tX9DTYSa8DSOG9Non65ssgoFvu-9_tuJUM43LG3jayL3qsPnac5bK2cm6hmtdPKPOVj3-HES9QSPll_USXeITSp2FO2-h55etfqObWvfnanOjaL2NjkwihIK_EQczkKKDQqYM0w/s760/excel_text1.png" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" data-original-height="608" data-original-width="760" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaVWm9tX9DTYSa8DSOG9Non65ssgoFvu-9_tuJUM43LG3jayL3qsPnac5bK2cm6hmtdPKPOVj3-HES9QSPll_USXeITSp2FO2-h55etfqObWvfnanOjaL2NjkwihIK_EQczkKKDQqYM0w/w320-h256/excel_text1.png" title="ダブルクリックして文字入力を行う" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="text-align: left;">ダブルクリックして文字入力を行う</span></td></tr></tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><img border="0" data-original-height="608" data-original-width="760" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr9xbQs-GQQJ_jtQ-Izpfq7eeqZ0k-9sTQtufD3XI9HjthPl0i5_3kG9i60F02I0hkJ2peCPWmXyN10-fXSIBUxGjDKt0lAMPk9kH6QR8BdycoEsOC_sqBFoHWlAopnKo6sFc-RaLeenM/w320-h256/excel_text2.png" style="margin-left: auto; margin-right: auto;" title="数式バーをクリックして文字入力を行う" width="320" /></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="text-align: left;">数式バーをクリックして文字入力を行う</span></td></tr></tbody></table><div>入力文字が遅くなる原因は、おそらくセル内での文字の折り返しを文字入力のたびに再計算してしまっていることだと思います。</div><div>数式バーをクリックするやりかたのときは、セル内の文字は、一部しか表示されなくなるので、この計算が省略できるということかと。 </div><div><br /></div><div>もう一度言いますが、うちのExcelは2010なのでご留意ください。</div><div>ということで、自分はこの発見によりExcelでもスムーズに文字入力が行えています。</div><div>検索しても情報がなかったので、この記事を書きました。この情報が誰かの一助となれば幸いです。</div><div><br /></div><div>では、よきExcelライフを!</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-74013084888058495012020-06-28T23:55:00.001+09:002020-06-30T14:18:53.286+09:00買ってよかったもの4つ→生活が豊かになります買ったことによって、生活が快適になったものをご紹介します。<br />
<br />
自分はあんまりものを買いません。物欲もないほうです。とはいえ、ヘッドホンやスピーカー、あれやこれやと人並みに試してみた過去はあります。<br />
そのほとんどはこれがないと生活が行き届かないというほどではありませんでした。熱狂に駆られて購入しても、数年後には押し入れで眠ることも珍しくないわけです。そういう感じで、ものに過大な期待をしないようになりました。<br />
それでもこれには助けられたなというものがあります。<br />
<br />
ということで、いわゆる競合プロダクトをあれこれ精査したうえでのベストバイではありません。紹介するのは、個人的な経験をもとにしたもので、今まで見向きもしなかった自分にとってはいわば盲点となっていたものでした。<br />
<br />
買ってよかったものを先に言うと、AirPods、無印良品の羽毛布団、腹巻、JETSTREAMのボールペンの4つです。<br />
布団はやや高価ですが他はそうでもありません。自分にはとても価値がありました。<br />
破損してしまっても、すぐ買いなおすものばかりです。<br />
<br />
iPhoneやMacBookなど、これらは革新的だし自分の生活や仕事で欠かせないしかなり生活を豊かにしてくれています。(毎日12時間以上、MacBookの前にいますが)。ただ、あまりに今更なので除外しています。<br />
<br />
お分かりのとおり、個人的な状況や主観に偏っているものばかりです。<br />
記事を見る人にとって新しい情報となることを願っています。それが価値となれば幸いです。<br />
<br />
<h4>AirPods</h4>ワイヤレスイヤホンです。<br />
自分の持っているのは、AirPodsの2世代目です。\17,800です。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxkQsgE_MmsvZ0RkauRN-OfVLdffzm2sCXHyOON3ChCJmynm6QK40Si8StgOg-83QoNdlu8pprHzJDWq4PnulnemKOZVtGpXwz6YSEbxyqCFyHF0aGnwe1WwgcEMjFIYWj65e4JFhyZSg/s500/airpods.jpg" width="500" height="500" data-original-width="500" data-original-height="500" /></div>普通のイヤホンと違うのは、AirPodsを付けていることを意識しないできいられるというところです。<br />
集中モードに入るのに音楽が欠かせないですが、AirPodsを付けたまま席を立つことができる、トイレに行くことができるというのが一つの手間を完全にゼロにしてしまうすごい革命だと思いました。音楽がすでに終わっても、ずっとそのまま装着していることもよくあります。<br />
配線を気にすることが完全になくなったことで普通のイヤホンに戻れなくなりました。<br />
<br />
手軽さというより、気軽さが素晴らしいです。<br />
気分が軽いという状態を実感しました。<br />
<br />
以前、AKGのワイヤレスヘッドホン(わりと高価でした)を使っていました。ただ、重くてボリュームがあるのと、熱がこもるのとで、ずっと装着することができませんでした。さらにバッテリー持ちが悪いこともあって、ワイヤレスではあまり使わなくなっていました。<br />
AirPodsはすべて解決しているので、使い続けていても苦になりません。<br />
<br />
AirPodsを充電するのにカバーケースに入れるだけでできる手軽さもものすごくよいです。<br />
<br />
<a href="https://www.apple.com/jp/shop/product/MV7N2J/A/airpods-with-charging-case">AirPods with Charging Caseを購入する - Apple(日本)</a><br />
<br />
<h4>無印良品の羽毛布団</h4>これは去年末に買ったものです。4つのなかでは新参者です。羽毛布団とプラス毛布がよかったです。4万円くらいです。<br />
軽くて、あったかいです。今までの布団は冬場はとくに重量がありました。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga0psqF1S6Ch-5X-w4rXlvUcP1mRc3hRk9Cjx7SpqeIs3yYmuHFrP7K6sXLiKKGBlZyuV5naxpZUjf-NakC8bM4bH3Z17SpPJHzfZ2MIN2SXuCLrqsnjWxi54gAG9AvS-JcXPJEE4RLsk/s500/muji_duvet.jpg" width="500" height="500" data-original-width="500" data-original-height="500" /></div>布団やベッドの選択が難しいのは、試してみることができないからでしょう。<br />
店頭で試しに寝てみるくらいでは、実際のところは解りません。<br />
<br />
冬場や夏場、季節の変わり目に睡眠が浅い日が何日かあります。深夜に冷え込んだり、布団が合わないことが多いです。こられを対策しようと調整していくなかで、無印良品の羽毛布団に出会いました。実に快適です。<br />
<br />
グレー羽毛掛ふとん・二層式です。シングルで消費税込39,900円です。<br />
他に普段、春秋は同じ無印良品の一層式の羽毛布団を使っていたので、こんなもんかなと思っていたのですが、二層式になり、羽毛の量が増えることでふわふわ加減がぐんと増しました。空気を含んでぷるぷるです。厚みがあるのにめちゃくちゃ軽いです。<br />
無印良品の羽毛布団のよいところは、たんに製品がよいというだけではなく、入手しやすいという側面も大きなポイントでしょう。<br />
<br />
羽毛布団と毛布だけでは、まだ3月の一番寒いときには、真夜中に目が覚めてしまうくらい寒くなるようです。なので来シーズンは、同じく無印良品のアクリル毛布を買い足す予定です。<br />
気候は地域にもよるので参考になるかどうかは解りませんが、情報が少しでもお役立ていただけますと幸いです。<br />
<br />
<a href="https://www.muji.com/jp/ja/store/cmdty/detail/4550002529697">グレー羽毛掛ふとん・二層式/S 150×210cm 通販 - 無印良品</a><br />
<br />
<h4>腹巻</h4>使用しているのはグンゼの普通の腹巻です。1000円くらいです。<br />
二つに折って臍と下腹部にまいています。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyWMfVkKp-aryQJmug6efQMvicjjqBJrEQynhOJvoQviXtE9IHMRTJlzoOSUSnhCRxcKbN2nNZxm7As-H8xDxIb6y9F7Ot0OlobktQEpx6Qy1bH1EqYu0ZF2zcWwKCSqsrwfzz6Aw2BQs/s500/belly_roll.jpg" width="500" height="500" data-original-width="500" data-original-height="500" /></div>自分は、やせ形であるせいもあって体が冷えやすいようです。<br />
とくに夏場です。夏場の室内は冷房で体温調節がおかしくなる季節でした。<br />
仕事場でもつねに長袖にシャツを完備しています。寒くて凍えているだけではなくてお腹が痛くなり、ずっとトイレにこもる日もあるくらいです。<br />
体調の不調と向き合うのは難しくて、体調が悪くなってからどうしたものかと考えあぐねても何にもならず、体調が良好なときは気を掛けることも意識しないのです。<br />
<br />
解決してくれたのが、腹巻です。<br />
夏場に、お腹を温めるという発想はまったくありませんでした。しかし不思議ですが冷蔵の室内でも、冷房のないところでも俄然、体調がよくなりました。お腹が痛くなるということもあまりなくなりました。おそらく汗をかいても、お腹から身体が冷えるということがなくなったからでしょう。<br />
<br />
きっかけはワイドなショーという番組です。RAG FAIRの土屋礼央さんが出演されていて、夏場でも腹巻がよいという話をされていたことで試してみようと思ったのです。なんでもRAG FAIRはほぼ全員、腹巻ファンだそうです。<br />
<br />
以来、自分は春夏秋冬、24時間欠かさず(入浴時と洗濯時以外)腹巻を付けて生活しています。<br />
すでに2年くらい愛用しています。お腹が痛くなって、1日の半分くらいが無駄になるというのがほとんどなくなりました。<br />
<br />
<a href="https://www.amazon.co.jp/gp/product/B00AEJ73NO/ref=as_li_ss_il?ie=UTF8&psc=1&linkCode=li2&tag=sasaokan-22&linkId=308492116ae0cacfbb96d218a97d169d&language=ja_JP" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B00AEJ73NO&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=sasaokan-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=sasaokan-22&language=ja_JP&l=li2&o=9&a=B00AEJ73NO" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<a href="https://amzn.to/3dDfaoF">[グンゼ] 腹巻 愛情腹巻 綿リッチ リブ 男女兼用 H1000</a><br />
<br />
<h4>JETSTREAMのボールペン</h4>なめらかな書き心地にこだわって作られた三菱鉛筆のJETSTREAM(ジェットストリーム)というインキのボールペンです。<br />
文房具を気にしている人にとっては、めちゃくちゃメジャーなものですが、見た目は普通のボールペンです。<br />
本体は約100円です。0.5mmを使っています。インクがなくなったら、芯だけを交換する替え芯が5本で300円です。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidWIPAIwL2Cvn_tQMka99kfAhDK70gWczXzKcuaF3zon4RHpQaCX-Rwyc1hUwNFTixeIKlCKBbWfv7uChcb4UR60MJR0jsQJ_DoabdEUH3PczwQl82X414UTcoC9SNrn3kMo5ZMqgcsFs/s500/jetsstream.jpg" width="500" height="500" data-original-width="500" data-original-height="500" /></div><br />
書き心地がめちゃくちゃなめらかです。撫でるように書くことができます。<br />
自分は仕事のツールとして、日常的にボールペンが手放せません。<br />
<br />
以前は身に着けるものの一つとして、それなりの逸品に憧れを持っていました。<br />
一時期は何千円もする、人の目を引くような個性的なボールペンを使っていました。これもめちゃくちゃ質感がよく気に入っていはいたのですが、重量があり、書き心地が鈍く、持ちにくいという難点がありました。(イタリアのDALLAITIというメーカーのウッドマーブルのボールペンでした)<br />
ボールペンというものの商品の幅をあまり気にしていなかったのです。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjppRexcmTQmKHk3x5egsZNpvEHjVAngcvKxlHwxUOoijIiUfZxw07jfSKY4_xQ8Q3gCsT4Ury8VQpxIys6EKxB3SvlLY26aqU8tNK1aVOBDzHAchPFrKe56zLLc6q9Rz0Je1EDzJP2mU8/s200/wood_marble.jpg" width="200" height="200" data-original-width="200" data-original-height="200" /></div><a href="https://store.shopping.yahoo.co.jp/icchu/akr63g.html#">ボールペン ウッドマーブルAKR63G DALLAITI ダライッティ イタリア ブランド</a><br />
<br />
知人に教えてもらい、行き着いたのは100円のボールペンでした。<br />
書き心地が最高です。紙を撫でるようにすべらせるだけで、しっかり軌跡を残すことができます。なめらかさと軽さと入手しやすさが最高です。以来これをずっと使っています。根元の所が割れてしまったりしましたが、すぐに買い換えました。<br />
めちゃくちゃ安価であるというのは、おまけみたいなもので、気軽に使いやすい逸品に出会えたことに感謝です。<br />
<br />
DALLAITIのボールペンも、工夫してJETSTREAMの替え芯が使えるように改造してみましたが、それでも100円のボールペンのほうがお気に入りで、ずっと使っているのはこちらのほうです。<br />
<a href="https://www.amazon.co.jp/%E4%B8%89%E8%8F%B1%E9%89%9B%E7%AD%86-%E6%B2%B9%E6%80%A7%E3%83%9C%E3%83%BC%E3%83%AB%E3%83%9A%E3%83%B3-%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0-0-5-SXN150055P-24/dp/B002U0QWP0/ref=as_li_ss_il?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E4%B8%89%E8%8F%B1%E9%89%9B%E7%AD%86+%E6%B2%B9%E6%80%A7%E3%83%9C%E3%83%BC%E3%83%AB%E3%83%9A%E3%83%B3+%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0+%E9%BB%92&qid=1592820050&s=office-products&sr=1-3&th=1&linkCode=li2&tag=sasaokan-22&linkId=6e43e3c70985b665e7f3709bfa6e54d9&language=ja_JP" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B002U0QWP0&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=sasaokan-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=sasaokan-22&language=ja_JP&l=li2&o=9&a=B002U0QWP0" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<a href="https://amzn.to/2Zg80l7"><br />
三菱鉛筆 uni ジェットストリーム スタンダード 油性ボールペン 0.5mm 黒 [1本] SXN15005.24</a><br />
<br />
<a href="https://www.amazon.co.jp/%E4%B8%89%E8%8F%B1%E9%89%9B%E7%AD%86-%E3%83%9C%E3%83%BC%E3%83%AB%E3%83%9A%E3%83%B3%E6%9B%BF%E8%8A%AF-%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0-0-5-SXR-55P/dp/B007E66HHS/ref=as_li_ss_il?_encoding=UTF8&pd_rd_i=B007E66HHS&pd_rd_r=5702679b-b026-4322-a5a9-c9b48239fe89&pd_rd_w=BYukV&pd_rd_wg=Y8pKR&pf_rd_p=7642417c-6494-4d06-a2b0-fcb0e0b3c563&pf_rd_r=TW8FNMT7RCA6D8NENXVB&psc=1&refRID=TW8FNMT7RCA6D8NENXVB&linkCode=li2&tag=sasaokan-22&linkId=ecce2e642dc2b7de41dc8ae81dfa91c8&language=ja_JP" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B007E66HHS&Format=_SL160_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=sasaokan-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=sasaokan-22&language=ja_JP&l=li2&o=9&a=B007E66HHS" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<a href="https://amzn.to/2ZbqHq8">三菱鉛筆 ボールペン替芯 ジェットストリーム 0.5 黒 5本 SXR-55P</a><br />
<br />
<h4>まとめ</h4>おすすめ4つでした。<br />
もちろんこれが自分の生涯の唯一無二の4つ、などというつもりはありません。これからも増えることを期待しています。<br />
<br />
わりとこの4つに共通していることは、<br />
<ul><li>高価ではなく、特別なものではない(大事にしまっておくのではない)</li>
<li>日常的に使う(使いまくる)</li>
<li>軽い(疲れない)</li>
<li>入手しやすい(壊れてもすぐに買い替えられる)</li>
</ul>日常的に使うものは、より精査してストレスをゼロに近づける工夫をすることが大切な気がします。<br />
時々は周りにあるモノを見直して、時々は世の中の常識を疑うぐらいの姿勢が必要に思いました。<br />
<br />
不便さを意識し続けて、ある時、ぴったり「これ」というものに出会えると、その瞬間から生活が快適になるわけです。<br />
不便だなあと思うことと、便利だなあと思うことがあってこその発見に思います。<br />
<br />
以上です。<br />
よろしければコメントで、あなたの便利アイテムを教えていただけますと幸いです。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-32570675886850710962020-06-21T23:25:00.001+09:002020-06-22T12:09:00.991+09:00WindowsとMacのどちらを選ぶべきか→どっちでもよいWindowsパソコンを選ぶべきか、MacOSを選ぶべきかについて考えてみます。<br />
パソコンを始めて買う人、もしくはWindowsを使っていてMacが気になる人、またはその逆の人向けです。<br />
自分はWindowsもMacも使って、デザインや開発もWebもWebじゃないこともやってました。<br />
<br />
先に結論を言うと、どっちでもよいです。<br />
身もフタモありませんが、必要に応じて覚えればよいだけです。<br />
ただゲームがしたいならWindows(とくに自作)をおすすめします。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCyw9bZkFE_icputuTLagHeXIglKaqzLc4WD3Ia3y25gPX7oHawC0yeZORmxQ8IGzWD0hqpe2XQsuO2_OKp4GOIpb-WI3UaRuQ38iltMA405LIneVW7EmQUfYHwky6YZmv5m3KqpejcIU/s600/windows_and_mac.jpg"/></div>この記事は、次の4つからできています。<br />
WindowsとMacのそれぞれの特徴、Windowsを選ぶべき人、Macを選ぶべき人、まとめとアドバイスです。<br />
<br />
パソコンは道具なので、それを使って何をやるか、何をやりたいかのほうが重要です。<br />
<br />
<h4>WindowsとMacのそれぞれの特徴</h4>WindowsとMacの特徴をまとめておきます。<br />
<br />
基本的にはWindowsでもMacでも、大枠できることに大きな違いはありません。<br />
ひと昔前は、グラフィックス系の仕事はMacのほうが強いと言われていました。細かなことはさておき、その理由はグラフィックス系の仕事ではMacの比率のほうが高かったことが大きな要因です。現在はそれほどMacの使用比率は高くもありませんし、グラフィック系のソフトウェア(PhotoShop、Illustratorなど)もWindowsにしか対応していないソフトウェア、Macにしか対応していないソフトウェアという縛りもそれほどなくなりました。<br />
<br />
WindowsとMacの特徴を、デザイン、価格、選択肢、販路、市場シェア、対応ソフトウェア、セキュリティ、顧客満足度の8つの項目でそれぞれまとめてみます。<br />
<br />
<h5>デザイン</h5>ハードウェアもソフトウェアも、デザインはMacのほうが優れています。<br />
パソコンにデザイン要素が必要なのか、疑問に思われていたような黎明期からMacはデザインにこだわっていました。<br />
今でも同じように必要のない、という意見は耳にします。とくに業務上など、必要のない人には無用の要素かもしれません。<br />
ただ、Macのデザインは見た目だけではなく、設計、耐久度、省電力性、梱包や配送、開封時、メンテナンス、廃棄時のリサイクルにいたるまでに及んでいて、一貫して高品質を提供する姿勢が見て取れます。<br />
Windowsが一貫性に乏しいことは昔から揶揄されています。<br />
<br />
<h5>価格</h5>価格はWindowsのほうが有利でしょう。<br />
10万円以下で入手できるMacはほとんどありません。安くてもWindowsマシンならば、いろいろな選択肢があるので、目的に合わせたパソコンが見つかりやすいはずです。ただMacに使われる部品は、どれも高品質で、高価格帯のものが備えられていることが多くて、単純な比較は難しいかもしれません。<br />
Windowsのほうが有利と言いましたが、たとえばMicrosoft Surfaceは決して割安には思えません。このあたりもピンキリなので要注意です。<br />
<br />
<h5>選択肢</h5>Windowsパソコンの形状や構成は多種多様で、Macに比べて選択肢が幅広いです。<br />
Macはモデルが限られていて、カスタマイズができるものその自由度は低いです。<br />
WindowsはOSやパーツを個別に購入して組み立てて自作することができるので、自由度は無限です。<br />
ただし自作をする場合は、メーカー品のノートブックのような軽量化を求めるのは無理があります。<br />
<br />
<h5>販売方法</h5>MacはAppleでしか買えません。<br />
ほとんどの場合はMacはAppleStoreやAppleStoreOnlineでしかMacを入手することはできません。<br />
MacはmacOSとセットです。<br />
マイクロソフトはハードウェアの製造をしていないので、Windowsは様々なメーカーの販売するパソコンから購入できます。<br />
Windowsだけを個別で購入することもできます。<br />
<br />
<h5>市場シェア</h5>直近(2020年5月)の市場シェアは87%がWindowsで、9.6%がMac、残りはLinuxなどその他のOSが使われているようです。<br />
Windowsが圧倒的です。<br />
世の中にあるパソコンはほとんどWindowsといえるでしょう。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK_xyUT8sscnRgwk0BvbLYN3HPbeJDtvSfJU1pjtNtBe0Q7xXPWI4KNJ003FRcQK3Z-uVuv2A5pWvCrSzR0pg71Xe9LYcmSNZneJq3xt2G4skV1A_rCwh_i7y1JFQtphWZPriKAID7N-E/s600/marcket_share.png" /></div><blockquote>Operating system market share<br />
<a href="https://netmarketshare.com/operating-system-market-share.aspx">https://netmarketshare.com/operating-system-market-share.aspx</a></blockquote><br />
<h5>対応ソフトウェア</h5>ビジネス用途やゲームなど、対応しているソフトウェアはWindowsのほうが多いです。<br />
Windowsに対応しているゲームの数はMacの8倍ほどあります。<br />
市場シェアからも、たくさんの人が使っているWindowsにソフトウェアを対応させるのは当然のことでしょう。<br />
<br />
<h5>セキュリティ</h5>Windowsは市場シェアが大きいがゆえに、情報を盗むことを目的とした悪意のあるソフトウェアに狙われやすいようです。<br />
Macがコンピュータウィルスに狙われないわけではないものの、犠牲になる可能性はものすごく低いでしょう。<br />
ただWindowsにはWindows Defenderというセキュリティソフトが最初から守ってくれているので、一般的な使い方ではそれほど気にする必要はなくなっています。<br />
問題が起こりやすいのは、Windowsを更新せずに古いまま使っているケースでしょう。<br />
<br />
<h5>顧客満足度</h5>MacとWindowsの満足度調査では、Macは、信頼性、サービスエクスペリエンス、電話の保留時間などのカテゴリでほかのどのWindowsよりも高い評価を得たというデータがあります。<br />
Apple StoreでもAppleのカスタマーサポートでも、Macを使っている以上は一律で対応してくれることが一因かもしれません。<br />
Windowsが不安定になったときは、マイクロソフトではなくて通常はパソコンメーカーが対応することになります。故障はソフトウェアが原因かもしれないしハードウェアが原因かもしれません。はっきりと特定するのはかなり骨が折れるでしょう。別々の会社と話をする必要があるかもしれません。故障の特定が困難な場合、本当にサポートが受けられるのでしょうか。<br />
<br />
<blockquote>2010 Reliability and Service Survey: Desktops | PCWorld<br />
<a href="http://www.pcworld.com/article/211081/2010_reliability_and_service_survey_desktops.html">http://www.pcworld.com/article/211081/2010_reliability_and_service_survey_desktops.html</a><br />
</blockquote><blockquote>Reliability and Service: Laptops | PCWorld<br />
<a href="http://www.pcworld.com/article/211402/reliability_and_service_laptops.html">http://www.pcworld.com/article/211402/reliability_and_service_laptops.html</a></blockquote><br />
<h4>Windowsを選ぶべき人</h4>WindowsかMacかで比較すると、どうしても違いを見て、あれこれ言う構図になってしまいがちです。優位性は何をやるために使うのかという目的次第なので、性能を比較して、どちらが優位かという批評はほとんど意味がないと思います。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcFEdM71vtx3QCCEQcTsU0ulrn4o6aj8zk-t2j7Ju-mGeK897OSwz3r614Xx3ikduncaD3Fh5AhynZAWo31Vx6Xvoae1c5QEbeMb2ga-M1BVYPtSqHhfm8220tK0NvWZKSF-nPjt5WNko/s600/windows10.jpg" /></div>特徴を比較する上では、対応ソフトウェア(とくにゲーム)、コストパフォーマンスを優先したい人はWindowsがおすすめです。<br />
<br />
<h5>ゲームをやりたい人はWindowsのほうがおすすめ</h5>パソコンを購入したら何が何でもパソコンゲームをやりたいという人にはWindowsがおすすめです。これは明確に言えます。<br />
基本的にパソコンゲームはWindowsで遊べるように作られていて、そのなかでMacにも対応しているゲームがちらほらあるという感じです。<br />
<br />
WindowsにもMacにも対応しているゲームは、具体的にはマインクラフト、フォートナイト、荒野行動などです。<br />
Macに対応していないゲームは、レインボーシックスシージ、PUBGなど(今後の対応などは解りませんが)<br />
<br />
<h5>ゲームをやる人には自作がおすすめです</h5>ゲームはグラフィック性能が求められます。<br />
なので、ビデオカードが搭載されているパソコンを用意する必要があります。<br />
Macはモデルごとにカスタマイズはできますが自由度はほとんどありません(しかもけっこう割高です)。対してWindows自作パソコンは構成を自在に選別できるだけでなく、市販に近い性能でもめちゃくちゃ安くできます。もちろんそのためには知識が必要です。<br />
ただ、ゲームをモチベーションに行動すできる人は、パソコンの自作もゲーム感覚で楽しめると思います。長くいろいろと楽しみたい人は、パソコンの知識はあらゆるところで必要にもなってくるでしょうし、そこで得た知識は必ず役に立つことでしょう。<br />
<br />
<h4>Macを選ぶべき人</h4>WindowsとMacはそんなにできることに大きな違いがあるわけではありません。なので、どちらを使用しても大差はないのです。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig7nZabMEdDXgLft8erz3MKtIlslEXMUyKgSuWmMXgWcUkDSsF_AaoSe3jgjVdBTrCS5i_Z72BPtCsjvO5s6yZjC3bExMRL8kTSMPOO0ddeCRrCju37ukjvSoAKo-sL6rQEgv1VPRFzMQ/s600/macbookair.jpg" /></div>ただ特徴を比較する上では、デザインや満足度を優先する人にはMacがおすすめです。<br />
<h5>Macのデザインが気になる人はMacがおすすめ</h5>「Windowsパソコンを選ぶべきか、MacOSを選ぶべきか」<br />
この問いに行き着いた人は、Macを選ぶべきだと思います。<br />
パソコンのほとんどはWindowsなのです。ソフトウェアもWindowsに対応しているものが圧倒的に多いわけです。なのに、この問いに行き着くということは、Macが気になっているといえる気がします。<br />
<br />
<h5>Appleのサポートはよいです</h5>個人的な経験則からも、Macのサポートに助けられたことは何度もあります。<br />
Macの修理をリペアセンターに出すときは、クロネコヤマトが集荷に来てくれます。<br />
iMacでもMacBookでも、本体を渡すだけで専用の梱包材で梱包して持っていってくれます。めちゃくちゃスムーズです。<br />
その後の修理の状況もオンラインで追跡できるので安心でした。<br />
もちろん、全員の問題が解決するかどうかは解りませんし、他のメーカーの対応でもっとスムーズな対応があるかもしれません。<br />
修理対応の期間は10日や2週間を目途にと、わりと長めに指定されます。仕事で使っている人は、パソコンが2週間も手元からなくなるのは致命的でしょう(郵送以外にも直接持ち込みする方法もあります)。ただ、自分の場合はほとんど、予定よりも早めに修理が終わって戻ってきました。<br />
<br />
<h4>まとめとアドバイス</h4>WindowsとMacについて書いてきましたがいかがだったでしょうか。<br />
大枠は、どちらを選んでも大差はないので、好きな方を選べばよいでしょう。時間とエネルギーを裂きたくない人は、自分が慣れているほうが圧倒的に楽なはずです。<br />
<br />
Windowsを使っている人は、Macは使いにくいとよく耳にします。<br />
どうしてそうなるかというと、Windowsに慣れている人が、Macを操作してWindowsならできたことが同じ操作でできずに迷ってしまうということかなと思います。<br />
こういうことが何度もあると、Macは使いにくいという結論になるのかもしれません。迷ったら後ろ向きに諦めてしまわずに、さくっと調べて知識を積み上げていけばよいわけです。それだけのことだと思います。迷ったときこそ、スキルアップのポイントなのです。<br />
<br />
ただ始めて使う人、ゲームをしたい人、それによくわからないと言う人はWindowsを選べばよいと思います。世の中のほとんどのパソコンはWindowsなので標準的なパソコンを使っておいて、仕事でもなんでも困るということはありません。(Windowsを所持していることで「Windowsが使える」と就職に有利になったりはしないでしょうが)<br />
<br />
以上です。<br />
ではよきパソコンライフを!<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-10673911220555263812020-06-10T23:20:00.000+09:002020-06-22T16:43:04.131+09:00Mac選び(2020年版)→おすすめはMacBook AirMacが欲しいけれどどれを選べばよいかとお悩みの人向けです。<br />
パソコン全般に、それほど詳しくない人向けに書いています。<br />
自分は20年以上のパソコン経験者です。WindowsもMacも使い、デザインも開発もWebもWebじゃないこともやってました。<br />
<br />
Macモデルの最近のアップデートをまとめます。<br />
去年2019年にMacBook Pro16インチ(旧15インチ)が発表されました。<br />
そのあと、MacBook Airの2020年モデルが発表されて、5月にMacBook Pro13インチが新しくなったばかりです。発表内容はご存知の通り、大きく変わったのはキーボードでした。<br />
また、6月のWWDC(appleの開発者向けイベント)でARM版の格安Macが発表されるのではという噂があります(ただし発売は2021年とか)。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig7nZabMEdDXgLft8erz3MKtIlslEXMUyKgSuWmMXgWcUkDSsF_AaoSe3jgjVdBTrCS5i_Z72BPtCsjvO5s6yZjC3bExMRL8kTSMPOO0ddeCRrCju37ukjvSoAKo-sL6rQEgv1VPRFzMQ/s600/macbookair.jpg" /></div>さて、現時点(2020年上半期)の自分の一押しはMacBook Airの上位モデルです。<br />
これはまさに今自分のほしいMacモデルでもあります。<br />
<br />
ということで、先におすすめを言ってしまいましたが、この記事は次の4つから出来ています。<br />
MacBook Airをおすすめしたい人、おすすめの根拠、安く買う具体的な方法、買うときのアドバイスです。<br />
<br />
MacBook AirとMacBook Proのスペック比較とかベンチマーク比較とか、何が変わったかとかは出てきません。<br />
この記事は具体的な情報を比較して批評するというよりは、経験からくる所感を語っています。数字は客観的な指標ではありますが、極端な性能ではない限り普段使いには影響しないのです。<br />
なんせ自分は2020年モデルを所持しているわけではありませんw 持ってないのにあれこれ言うわけなので業が深い記事なのです。<br />
<br />
<h4>MacBook Airをおすすめしたい人</h4>MacBook Airをおすすめしたいのはこんな人です。<br />
<br />
<h5>出費を抑えたい人</h5>基本的には自由に好きなMacを買ってくださいというのが前提なわけですが、できるだけ出費を抑えたいというのは万人の方針だと思います。<br />
<br />
<h5>何かを始めたい人</h5>Macに限りませんが、何のために買うのかというのははっきりしているほうがよいです。<br />
今使っているのが古くなったという理由で、なんとなく買ってももちろんかまいませんが、買い替えるものに何を期待するのかというのは大切なことです。<br />
<dl><dt>→こういうことを始めるのに適しています</dt>
<dd>ブログ、プログラミング、ホームページ作成、写真管理、イラスト、2Dグラフィックス(PhotoShopやIllustratorなど)、インターネット、映画/アニメなどの動画視聴(Netflix、Hulu、Amazon Prime、YouTube)、ショッピング、株取引、SNS、スケジュール管理、文書作成、旅行計画、そのほかの事務作業、ブラウザゲーム、などなど。</dd>
<dt>→こういうことには適していません</dt>
<dd>動画編集(たとえばYouTuberを目指している人)、3Dゲーム(グラフィックの性能が必要なもの。ブラウザゲームや軽量なものを除きます)</dd> </dl><br />
動画編集やゲームはランク上のMacBook Pro(16インチ)かiMac(27インチ)が必要となるかもしれません。グラフィック性能を使うためです。この辺のところだけでも押さえておけば、大体のことは快適に扱うことができるはずです。<br />
<br />
MacBook Airはエントリモデルなので、性能面が心配かもしれませんが大丈夫です。<br />
仕事でも趣味でも使えます。<br />
今自分が毎日使っている型落ちのMacBook Pro 13インチよりも、おすすめしている2020年のMacBook Air(上位モデル)は倍くらい性能が上なのです。<br />
<br />
たとえば、動画編集やゲームが気持ちよく動かなかったりするのは、性能差というより用途の違いです。軽自動車に馬力がないと言っているようなものです。普段使いであれば何も問題ないでしょう。<br />
<br />
<h4>MacBook Airがおすすめの根拠</h4>ノートもデスクトップも含めて、現時点(2020年上半期)ではMacBook Airの上位モデルがおすすめです。<br />
MacBook Airがおすすめの理由では、構成がシンプルであることです。<br />
<br />
Macモデルはいずれも製品の完成度が高いです。<br />
ただ、MacBook Airをおすすめする根拠としては、MacBook Airが突出しているというよりも、どちらかというとMacBook ProとiMacに個人的にマイナスポイントがあります。<br />
ただ、マイナスポイントとはいえ、収束するところはいずれも割高であるというのが根本の理由です。<br />
躯体はよいものです。なので、気にしない人には関係のないところです。<br />
<br />
<h5>MacBook Proのマイナスポイント</h5>MacBook Proのマイナスポイントは、言わずもがなTouch Barです。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdtPREacqgkGbpXIUPcCGRfCjuMa7SAksbkEYJVYwCcXrIYO2v_rHmqQo3pqPAB0FqEiAT7TG9UGIMCA49mtNtMfU4JgHBETuwmTA1edrMYNrtiGpcj_3UxQAt7i-33Llyw7707UzmU8s/s600/touch-bar.jpg" /></div>Touch Barとは、キーボードのF1からF12の部分をディスプレイ式のタッチスクリーンになっているものです。<br />
使用するアプリケーションによって切り替わり、操作などがワンタッチでできるように補助してくれる機能です。<br />
キーの表示をカスタマイズすることもできるようです。<br />
<br />
MacBook ProのTouch Barなしモデルは2019年になくなってしまっていて、MacBook ProはいずれもTouch bar搭載モデルだけになってしまいました。<br />
これがすこぶる評判が悪いです。<br />
新しい機能なので、慣れている人ほど違和感が感じるのか、どうもプラスアルファの付加価値があまり功を奏していないようです。<br />
<br />
自分も個人的にあまり好ましく思っていません。<br />
たとえばTouch Barだけ別売りで3万円くらいするとしたら買うでしょうか。自分は買いません。<br />
Touch Barは標準のファンクションキー(F1~F12)に固定しておくことができるので、不便というわけではないらしいです。ただ、それならば最初から物理キーでよいわけです。<br />
<br />
MacBook Proは不要なTouch barが搭載されている分、割高であると言えます。<br />
MacBook Proももちろんよい製品ですが、MacBook Pro 13インチではなくてMacBook Airをオススメしている最大の理由はここです。<br />
<br />
MacBook Airはスペックも形状もMacBook Pro 13インチと似ています。ほとんど同じです。唯一の決定的な違いはTouch barの搭載有無くらいなのです。MacBook AirはMacBook Pro 13インチのTouch barなしモデルと言ってもよいくらいなのです。<br />
<br />
<h5>iMacのマイナスポイント</h5><div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx4yi7dCqiKdpqDH4_BwXC2min6YH8dElZqfHghx_3Q51FONQowUU9cosgLKE_Adq74yCIXRhPlsvLdzENjmEoFT2Ns_QaVk5iohZn03meoqyBQRCSNBKfi_QLAgpap0yijs8LKMlBR54/s600/imac-21-retina.jpg" /></div>iMacのマイナスポイントはドライブです。<br />
ディスク容量が割高です。<br />
<br />
今ではスマホもメモリタイプのドライブ(SSDと言います)が主流ですが、いまだに円盤が回転するタイプのディスクが軸になっているところが残念です。MacBook Proなどで使用されているドライブとは接続形式も違っていて、かんたんに言うと旧式で遅いものが使われています。<br />
<br />
現状は残念です。SSDの選択は必須に思えますが、そちらを選ぶとプラス3万円くらいになり、かなり割高になってしまいます。<br />
そのくらいの出費が許容できる人はよいかもしれません。ただ、これはさすがに次のアップデートで改善されると思います。おそらくSSDが初期選択で、現状と同じ価格になるでしょう。あるいは予想以上の大幅なアップデートがあってもおかしくありません。<br />
<br />
なので、iMacがほしいという人は待つのがよいです。<br />
iMacは次のアップデートに期待です。<br />
<br />
<h5>MacBook Airの上位モデルがおすすめの理由</h5>おすすめとして挙げているのは具体的には、上位モデルとされるMacBook Airの1.1GHzクアッドコアCore i5プロセッサ(Turbo Boost使用時最大3.5GHz)、512GBストレージのモデルです。価格は、134,800円(税別)です。<br />
<br />
下位モデルと上位モデルの違いは、CPUと容量だけです。<br />
CPUのアップグレードで+\10000、容量が256GBから512GBのアップグレードで+\20,000という違いです。<br />
とくに、CPUのアップグレードが割安に思うのでおすすめです。<br />
<br />
下位モデルではダメなのか、というとそんなこともありません。性能差は時間のかかる処理のときに影響があるというだけで、普段の使用時に体感としての違いはほとんどないはずです。<br />
下位モデルの価格は104,800円(税別)なので、どちらを優先するかはその人がどのくらいに出費を抑えたいかによります。<br />
<br />
<h4>安く買う具体的な方法</h4>出費を抑えるに越したことはないでしょう。<br />
Macモデルは新品でも安く買える方法があります。これはいろいろなところで紹介されていると思います。ただし、代わりに犠牲になるのは時間です。なので必要なら、待たずにさっさと行動するほうをおすすめします。<br />
<br />
<h5>初売りに買う</h5><div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz-E_XLCoEy3ICGz6ZnmNm22gX1xnFKxR-amCsmWg409t3rxHWPja23Rc08aBTdQUnUmg8kMVQw_JvhOpr9HWJBvc5qsmH7AyW1LbYPWZ5auffO4Gnr7fAccwu5H8k1q3o5nYerVK2h-c/s600/apple-hatsuuri-2020.jpg" /></div>毎年1月2日に、Appleストアやオンラインストアでは初売りをやっています。<br />
対象のApple製品や購入者にギフトカードが贈られるというもので、ギフトカードはApple製品の購入に使うことができます。<br />
<br />
2020年は、MacBook Pro (13インチ)は24,000円、MacBook Airは12,000円分がギフトカードとして還元されていました。<br />
<br />
<h5>整備調整品を待つ</h5><div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK_9M2zxms7zs00Ih6d2GS-9AgjfABNOdsVb8CP4w9m9M2dWddH998ZDKA5QLX3GVY_IMUZw97VWw9GZhGq89SH-h2_QGIek0SAAb_UcUVQHXtxh5qfON4NaQ_L4lzJY_J6U1qn0kVQQ8/s600/20200607%25E6%2595%25B4%25E5%2582%2599%25E8%25AA%25BF%25E6%2595%25B4%25E5%2593%2581.png" /></div>初期不良など何らかの理由で返却された製品を、点検を行って改めて販売されているものが整備調整品です。<br />
通常の販売価格よりもおよそ15%くらい割引で買うことができます。カスタマイズなどはできません。<br />
<br />
整備調整品はオンラインで買えます。自分が使っているMacBook Pro13インチも整備調整品を購入したものです。<br />
Appleの厳しい検査に合格したものなので普通にサポートも受けられます。<br />
<br />
ただ、製品には限りがあり、お望みのモデルや構成を買うのは大変かもしれません。待っても現れない可能性もあります。(今見ると2019年5月発売のMacBook Pro15インチしかありませんでした)<br />
<br />
<blockquote>Apple品質を保証します。<br />
Apple認定の整備プロセスを経て品質が保証された新品同様の製品です。1年間の製品保証が付いています。<br />
<br />
認定整備済製品 - Apple(日本)<br />
<a href="https://www.apple.com/jp/shop/refurbished">https://www.apple.com/jp/shop/refurbished</a></blockquote><br />
<h5>中古品を買う</h5>中古品を探すことも選択肢としてあってよいと思います。<br />
ただ、Macは売るときに価格が落ちないのと同じように、中古で買うときもそれほどの割安感はありません。<br />
<br />
使用からアップデートや保証が打ち切られる年月が近いと思うと、あんまりかなあという気もします。型落ちの買い替えを繰り返すというのも手かもしれません。ただ頻繁に買い替えるのは、セットアップなどにわりと時間を取られるので、自分はおすすめはしません。<br />
中古であることをまったく気にせず1円でも安くという人はよいでしょう。<br />
<br />
<h4>パソコンを買うときのアドバイス</h4>経験則からのアドバイスできることはないか考えてみました。<br />
<br />
MacBook Airをおすすめしましたが、もちろん人によります。<br />
Macを買うのにあんまり神経質になって性能比較を気にする必要はないと思います。<br />
大切なのは、何に使うかという用途のほうです。用途がはっきりしていないと、選択肢もはっきりしません。<br />
新しい手帳を使うように、始めたいこと、変えたい習慣をふんだんに盛り込んで可能性を膨らませるほどよいと思います。<br />
<br />
もちろん、買ってから想定していた用途とは別にどんどんと興味が他に移ることはあります。これは素晴らしいことで、いろいろなことに興味の矛先が向いて、始められることが増えることはよいことです。人は変わっていくものなので。<br />
<br />
ただ甘い言葉に惑わされないようにしたいです。<br />
「買って損なし」「所有欲が満たされる」なんていう言葉に気を付けましょう。購入だけをすすめるような言葉に翻弄されるのはよい結果にならなりません。<br />
<br />
自分の経験の上では、パソコンに詳しくなるほど、最新のパソコンにこだわらなくなります。パソコンに限らないかもしれません。弘法筆を選ばずというと大げさですが、ミーハーさが減って、仕事道具として成立してくるわけです。消耗品として割り切ることができてきます。ただ、どんなパソコンでもよいというのは違って、余裕が出てくるせいか「こだわりがこじれてくる」感じです。これがないと嫌だとか、これはないほうがむしろよいとか。どんどんこじれてきます。<br />
(記事内に書いたようにTouch Barはないほうがよい部類です)<br />
<br />
パソコンを買う機会は、たまにしかないことです。<br />
パソコンに詳しくなりたい人は、今後のスキルアップのための糧になります。できるだけ仕様についてなど調べて、他のパソコンとも比較しながら、できるだけ時間をかけてあれこれ悩むほどよいと思います。<br />
パソコンに詳しくなるつもりがない人は、詳しい人のおすすめに習うのがよいでしょう。できるだけ時間を使わないほうがよいと思います。<br />
<br />
だらだら書いてしまいましたが以上です!<br />
あなたによきMacライフがやってくることを願います!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-69444073854577253172016-06-28T11:02:00.000+09:002016-06-28T18:30:33.321+09:00[C#]要素をすべて掛ける(乗算する)要素をすべて乗算したかったんです。<br />
すべて足し合わせるのは、Sumを使えばいいのですがLINQには乗算はありません。すべて掛けるなんて、あんまり使わないしね。<br />
ExcelにはPRODUCT関数というのがあるらしく、値の積を計算するもののようです。このキーワードを知っていたら手早く探せたかも…。<br />
<br />
<h4>Aggregateを使う</h4>掛けるときはAggregateを使うとスマートでした。<br />
<br />
<pre><code class="cs">int product = list.Aggregate((now, next) => now * next);</code></pre><br />
Aggregateコードは、LINQを使わずに展開すると下のコードと同じものです。<br />
<br />
<pre><code class="cs">int next = 1;
foreach (int now in list) {
next *= now;
}
int product = next;</code></pre><br />
<br />
めでたしめでたし。<br />
<br />
<br />
<h4>サンプルソース</h4><br />
<pre><code class="cs">int[] list = { 1, 2, 3, 4 };
// すべて足す
int sum = list.Sum();
Console.WriteLine(sum); // 10
// すべて掛ける
int p = 1;
foreach (int val in list) {
p *= val;
}
Console.WriteLine(p); // 24
// すべて掛ける
int product = list.Aggregate((now, next) => now * next);
Console.WriteLine(product); // 24</code></pre><br />
<h4>機会があったら覚えていくスタンス</h4>さて、余談ですがAggregateはMSDNでは次のように説明されています。<br />
<br />
<blockquote>Aggregate<TSource>(IEnumerable<TSource>, Func<TSource, TSource, TSource>) <br />
シーケンスにアキュムレータ関数を適用します。</blockquote><br />
<b>なんのこっちゃ、ぜんぜんわかりません。</b><br />
LINQは使い方を知れば便利そうと解るけれど、インテリセンスやMSDNからの習得は難しいものもあるようです。<br />
サンプルのコードがあって、こういう風に使うんだという一例があれば、なんとなくわかるし習得も容易ですね。<br />
<br />
日頃よく使わないメソッドはやっぱりその挙動にも不安が残るものです。何度も検証しないと手放しで任せられないし、乗算のコードに展開したものを書いても、そんな目くじらを立てるほどのロスがあるわけでもありません。<br />
意地でも新しいことを覚えないというスタンスはどうかと思いますが、片っ端から習得しようとしてもほとんどは出番がなく使わないままなのが現実です。<br />
なので、機会があったら覚えていこうというくらいでいいかなと。<br />
<br />
もちろんそのすべてを習得して自在に連携している人もいるでしょうし、それが理想モデルです。<br />
けれど、自在に扱える人も右往左往しながら習得したはずですよ。<br />
<br />
以上です。よきLINQライフを!<br />
<br />
Calculate product with LINQ<br />
<a href="http://stackoverflow.com/questions/252333/calculate-product-with-linq">http://stackoverflow.com/questions/252333/calculate-product-with-linq</a><br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-20585658003033745502016-06-14T11:56:00.001+09:002016-06-17T08:56:12.230+09:00Azureでwoffを使うAzureのWebSitesにアップロードしたサイトに、ずっと出てたエラーです。<br />
VS2015でサイト作成すると、最初からbootstrapが標準装備されていてアイコン用のWebフォントとしてglyphicons-halflings-regular.woffが付いてくるのです。<br />
<br />
<pre>Failed to load resource: the server responded with a status of 404 (Not Found)</pre>というエラーが2つ出てました。「glyphicons-halflings-regular.woff」と「glyphicons-halflings-regular.woff2」が見つからないと言っているらしい。<br />
<br />
アイコン用のWebフォントは、woffが見つからなかったりブラウザが対応してないときは、svgやらttfやらが代替として使われます。表示に支障がないので放置してたわけですが、このたび解決しました。<br />
<br />
<h4>web.configに設定する</h4>ファイルの種類で弾かれているみたいで、woff形式を許容するようにweb.configに設定を追加すればいいらしい。<br />
エラーが気持ち悪いのでcssで弾くようにしようかとも思っていたけれど、どう考えてもこっちのほうが本線でした。<br />
<pre><code class="xml"><system.webServer>
<staticContent>
<mimeMap fileExtension="woff" mimeType="application/font-woff" />
<mimeMap fileExtension="woff2" mimeType="application/font-woff" />
</staticContent>
</system.webServer></code></pre><br />
WOFF files return 404 (Not Found) in Azure Web Sites<br />
<a href="http://www.codepal.co.uk/show/WOFF_files_return_404_in_Azure_Web_Sites">http://www.codepal.co.uk/show/WOFF_files_return_404_in_Azure_Web_Sites</a><br />
<br />
ばっちりです。<br />
<br />
デバック環境がローカルで、サーバーにアップロードして動かないケースというのは、起こってみないと気付かないものですね。こういうのが経験と呼ばれるものになっていけばいいなあ。<br />
というか、標準装備してるんだから、最初から設定しておいてくれりゃいいのにね。<br />
<br />
はい、おしまい。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-58297231435112413722016-06-13T08:26:00.002+09:002016-06-17T09:00:23.221+09:00[C#]絵文字の対策MySQLにインサートしようと思ったら、<br />
<pre>MySQL Error: Incorrect string value</pre>というエラーで止まってしまいました。<br />
<br />
どうやら対象の文字のなかに絵文字があって、そいつが引っかかっていたようです。<br />
1文字2バイトで表現される普通の文字と違って、絵文字は1文字が4バイト構成で表現されていて、そいつらはサロゲートペア文字というようです。<br />
<br />
<h4>対策を考える</h4>対策として考えたのは2つ。<br />
<ul><li>MySQLのDBを1文字4バイトに対応させる方法</li>
<li>絵文字を除去してしまう方法</li>
</ul>ううむ。これって、4バイトへの対策はMySQLに丸投げしてるだけだし、絵文字除去も臭いものにフタという感じで、見方によってはどちらも雑な気がします。<br />
<br />
そもそも絵文字なんて気にもしていなかったわけだし、晴天の霹靂のようにエラーが発生してから、どうしようかなあなんて考えている時点で遅くて、とりあえず一時しのぎの対策を講じようというのは少し危険ですね。<br />
まあ、そんなこと言っていても始まらないので対策に飛びつく前に、少しだけ落ち着いて全体を見渡しておきましょう。<br />
抑え込むだけではなくて、それぞれの対策の要点を理解したうえでどちらか都合のいいほうを選ぶという分には、きっと少しはマシでしょう。<br />
<br />
<h4>DBを1文字4バイトに対応させる</h4>MySQLは5.5以降からUTF8MB4に対応しているようなので、設定してあげればよいようです。<br />
現在のテーブルごとの文字コードを確認するのと、指定のテーブルのキャラクターセットをutf8mb4に変更するSQLです。<br />
<br />
<pre><code class="sql">-- 現在の文字コードの確認
show table status from データベース名;
-- テーブルのキャラクターセットを変更
alter table テーブル名 default character set utf8mb4;</code></pre>※<br />
なお、今回は除去する方針をとったので絵文字対応後の行追加は未検証です。<br />
<br />
<h4>絵文字を除去する</h4>絵文字を判別して除外する方法です。もしくは、よくある「〓(下駄)」のような文字に置き換えておくというのも手かもしれません。<br />
<pre><code class="cs">// 絵文字を除外する
text = new string(text.Where(n => !Char.IsSurrogate(n)).ToArray());
// 絵文字を〓に置換
text = new string(text.Select(n => Char.IsSurrogate(n) ? '〓' : n).ToArray());</code></pre>どちらも、やっていることは、Char配列に分解してから、一文字づつサロゲートペア文字かどうか判別しているだけ。<br />
そのあとくっつけなおして文字列型に戻しています。<br />
<br />
<h4>まとめ</h4>ということで勉強になりました。<br />
ちなみに、自分は絵文字を排除するように対応しました。<br />
DBの設定を変えられないわけではないけれど、要件上では「めちゃくちゃ頻度が少ない」のと「残しておいて有用なことはない」と判断できたからです。<br />
強引に除去しただけなので、文章のつながりが解らなくなるのも出るかもしれないけれど、それはやむなしってことで。<br />
<br />
iOSやAndroidもサポートしちゃっている絵文字なので、もっと自在に扱えるようにならないといけなさそうな時流ではありますね。<br />
しかし、この話、ちゃんと理解しようとすると深そうです。なのでこの辺で〆ておきますです…。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-7871424802108423022016-04-25T08:18:00.000+09:002016-04-25T08:18:49.585+09:00[C#]GraphicsPathから各点の情報を取得するGraphicsPathはおなじみのパスデータを扱うクラスです。<br />
描画時には、GraphicsPathはそのまま、GraphicsのDrawPathメソッド/FillPathメソッドの引数として利用することができるので、中身を意識する必要はありませんね。<br />
<br />
GraphicsPathの各点の情報は、PathDataプロパティで取得することができます。<br />
後述しますが、GraphicsPath.PathPointsプロパティとGraphicsPath.PathTypesプロパティで点を拾っても同じなのですが、GraphicsPath.PathDataプロパティを使うほうが効率的です。<br />
<br />
<h4>GraphicsPathのPathDataプロパティを使う</h4>PathDataには、Points(PointFの配列)とTypes(byteの配列)を持ちます。PointsとTypesの配列数は必ず同じになります。<br />
Pointsで座標点を表し、Typesでは点の種類を表します。Typeとして持つのは、直線であるか曲線であるかというような情報です。<br />
<br />
<table><tr><td>0</td><td>始点</td></tr>
<tr><td>1</td><td>直線</td></tr>
<tr><td>3</td><td>ベジェ曲線(3点セット)</td></tr>
<tr><td>128</td><td>終点</td></tr>
</table><br />
0は始点。128は終点です。128はビットフラグですので、直線からの終点は129、曲線からの終点は131となります。<br />
ベジェ曲線は、3つ続きで表現されます。直前の点から伸びるハンドル、次の点へ伸びるハンドル、次の点座標の3つが1つのセットとなります。<br />
<br />
<h4>各点を描画するコード</h4>理屈はさておき、各点を描画してみます。<br />
<br />
<h5>ソースコード</h5>文字のアウトラインパスに、イラストレータ風にいうところのパスとハンドルを描画してみます。<br />
Form上にPictureBoxを置いて、Buttonをトリガーにしています。<br />
<br />
<pre><code class="cs">// using System.Drawing;
private void button1_Click(object sender, EventArgs e) {
string str = "永";
Graphics g = this.pictureBox1.CreateGraphics();
g.SmoothingMode = SmoothingMode.HighQuality;
// 1.文字のアウトラインの描画
float fontSize = 200f;
FontFamily fontFamily = new FontFamily("メイリオ");
GraphicsPath path = new GraphicsPath();
StringFormat format = new StringFormat();
path.AddString(str, fontFamily, (int)FontStyle.Bold, fontSize, Point.Empty, format);
g.FillPath(Brushes.LightGray, path);
// 2.パスデータをとりだす
PathData pathData = path.PathData;
PointF[] points = pathData.Points;
byte[] types = pathData.Types;
int pointCount = points.Length;
// 3.パスとハンドルを描画する
PointF prev = PointF.Empty;
for (int i = 0; i < pointCount; i++) {
PointF p = points[i];
byte t = types[i];
if ((t & 3) == 3) { // 曲線
this.DrawHandle(g, prev, p);
i++;
p = points[i];
this.DrawHandle(g, points[i + 1], p);
i++;
p = points[i];
this.DrawPathPoint(g, p);
} else if ((t & 1) == 1 || t == 0) { // 直線
this.DrawPathPoint(g, p);
}
prev = p;
}
g.Dispose();
}
// ポイントのサイズ
private const float POINT_SIZE = 5.0f;
// パスを描画する
private void DrawPathPoint(Graphics g ,PointF p) {
g.FillRectangle(Brushes.Red, p.X - POINT_SIZE * 0.5f, p.Y - POINT_SIZE * 0.5f, POINT_SIZE, POINT_SIZE);
}
// ハンドルを描画する
private void DrawHandle(Graphics g, PointF p1, PointF p2) {
g.DrawLine(Pens.Blue, p1,p2);
g.FillEllipse(Brushes.Blue, p2.X - POINT_SIZE * 0.5f, p2.Y - POINT_SIZE * 0.5f, POINT_SIZE, POINT_SIZE);
}</code></pre><br />
このコードを実行するとこのようになります。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6YNkt5Q-QKRbP_IH-FEkldM6ujC4-lVcMg07bYWIMjJAhhex76R0mE1L68jNJGHRF9y_iPrfOWyEc6oLtovgdfzNX3weI7zGhUTawbZ96qfJHIWqvlzYSIJTNAyB6lQ-zdmGvzf61mLE/s1600/graphicspoints.png" /></div>いい感じですね。<br />
<br />
<h5>コードの解説</h5>上のコードは、1.文字のアウトラインの描画、2.パスデータをとりだし、3.パスとハンドルの描画という3つの工程から出来ています。<br />
<br />
<h6>1.文字のアウトラインの描画</h6>「永」という文字を描画するためのコードです。<br />
GraphicsPathのAddStringメソッドで、座標の取得対象になるパス情報を生成しています。<br />
生成したGraphicsPathは、GraphicsのFillPathメソッドで描画しています。<br />
<br />
<h6>2.パスデータをとりだし</h6>PathDataプロパティにより、パス情報を取得します。<br />
パス情報は、座標点のPointsプロパティと、点の種類を示すTypesプロパティに分かれます。<br />
<br />
<h6>3.パスとハンドルの描画</h6>PathData.Typesにより点の種類を判別しながら、パスとハンドルを描画しています。<br />
パスは四角、ハンドルは丸と線を描画しています。<br />
曲線の座標点は、一つ前の点から伸びるハンドル、次の点から伸びるハンドル、次の点座標の3つが1セットとして記録されています。<br />
<br />
点の種類を判別するために古典的なビット判定を使っています。<br />
<br />
(t & 1) == 1 →直線<br />
(t & 3) == 3 →曲線<br />
<br />
<h4>注意点:GraphicsPath.PathData.PointsプロパティとGraphicsPath.PathPointsプロパティ</h4>GraphicsPathにはPathDataプロパティの他に、GraphicsPath.PathPointsプロパティとGraphicsPath.PathTypesプロパティがあります。<br />
GraphicsPath.PathData.Pointsプロパティも、GraphicsPath.PathPointsプロパティも、まったく同じなのですが、ここで注意してもらいたいことがあります。<br />
<br />
プロパティというものの性質から、単に保持している値を拾ってくるだけという印象がありますが、GraphicsPathの内部では、動的に持っている値を必要に応じて座標点の配列として出力するようにできているようです。そのため、参照するだけでもものすごく重たいのです。<br />
<br />
例えば、ループ内で次のようなコードを書いてしまうと、参照のたびに処理が入るので結構な非効率なのです。<br />
<br />
<pre><code class="cs">for (int i = 0; i < pointCount; i++) {
PointF p = path.PathPoints[i];
byte t = path.PathTypes[i];
// ... 処理
}</code></pre><br />
GraphicsPathのPathDataプロパティを拾っておいて、そこからPointsとTypesを参照するのがよいでしょう。<br />
<br />
<pre><code class="cs">PathData pathData = path.PathData;
PointF[] points = pathData.Points;
byte[] types = pathData.Types;
int pointCount = points.Length;
for (int i = 0; i < pointCount; i++) {
PointF p = points[i];
byte t = types[i];
// ... 処理
}</code></pre><br />
以上です。<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-60011860046806029992016-04-18T09:14:00.002+09:002016-04-18T09:15:49.061+09:00[C#]BinaryReaderのReadInt32が遅いとき<h4>ファイルの読み書きを高速化する</h4>テキストファイルを読み書きするにはStreamReader/StreamWriterを使えばいいのでお手軽です。<br />
テキストファイル以外のバイナリファイルだったり、すべてを読み込むわけにはいかない大きなファイルを扱うときには、BinaryReaderを使うことになるでしょう。<br />
<br />
また、繰り返しReadInt32を繰り返し呼んでいるところは、その度にじりじりとファイルアクセスしています。これが首を絞めるということはあまりないかもしれませんが、ファイルアクセスはメモリアクセスと比較すると当然ながら低速です。<br />
速いに越したことはないはずなので、高速化していきましょう。<br />
改善案としては、ReadInt32メソッドを繰り返し呼ぶところを、ReadBytesメソッドで一気読みしてからBitConverter.ToInt32で分離させます。<br />
<br />
<h5>BitConverterとは</h5>BitConverterはバイナリ配列(byte[])の必要なところを、型変換してくれるクラスです。<br />
BitConverter.ToInt32メソッドは、バイナリ配列と、開始位置を指定してあげれば、その部分のint値が取り出せます。<br />
<br />
ReadInt32だけでなく、ほかにもReadDoubleメソッドやReadSingleメソッドも用意されているので、同様の改善ができそうです。<br />
ただし、ReadStringメソッドは、最初からデータサイズ込みの可変長なので、もう一つ奥のほうに手を伸ばさないと難しそうですね。<br />
<br />
<h5>部分的なまとめ読みができる</h5>データファイルが大きくて、そして全部の情報はいらないというときに、部分的にまとめ読みできるというワザができるわけです。<br />
読み込みだけでなく、書き込みについても同様です。<br />
当方、あんまりファイルアクセスに関わるコードを書かないので勉強になりました。<br />
<br />
大きさが定まっていないデータの構造は、必要なところだけを読み込み/書き込みできるように工夫しておくほうが効率的ということですね。<br />
<br />
<h4>具体例</h4>具体的なサンプルとして、GraphicsPathのパスデータ(PathData)を書き出したバイナリファイルを読み込む処理を考えることにします。<br />
パスデータ(PathData)の座標(Point)の配列をたっぷり持っています。<br />
<br />
<h5>呼び出し側のコード</h5><pre><code class="cs">using System.Drawing;
using System.IO;
// 呼び出し側
fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
binaryReader = new BinaryReader(fileStream,Encoding.UTF8);
// 他の処理
int pointCount = binaryReader.ReadInt32(); // パス数
Point[] points = this.ReadPathPoints(binaryReader, pointCount);</code></pre><br />
<h5>1.BinaryReader.ReadInt32で読み込むコード</h5><pre><code class="cs">// ReadPathPointsメソッド
private Point[] ReadPathPoints(BinaryReader binaryReader, int pointCount) {
Point[] points = new Point[pointCount];
for (int i = 0; i < pointCount; i++) {
int x = binaryReader.ReadInt32();
int y = binaryReader.ReadInt32();
points[i] = new Point(x,y);
}
return points;
}</code></pre><br />
<h5>2.ReadBytesとBitConverter.ToInt32で読み込むコード</h5><pre><code class="cs">// ReadPathPointsメソッド
private Point[] ReadPathPoints(BinaryReader binaryReader, int pointCount) {
byte[] b = binaryReader.ReadBytes(pointCount << 3);
Point[] points = new Point[pointCount];
for (int i = 0; i < pointCount; i++) {
int x = BitConverter.ToInt32(b, i << 3);
int y = BitConverter.ToInt32(b, (i << 3) | 4);
points[i] = new Point(x,y);
}
return points;
}</code></pre><br />
※<br />
ビット演算を使っていますが、ビット演算による高速化の恩恵は誤差のレベルです。<br />
<br />
<h4>速度評価とまとめ</h4>ざっくり処理速度の評価です。<br />
改良ポイントの評価としてはややアバウトですので、参考程度に思ってください。<br />
<br />
ReadInt32呼び出しのときは、<strong>2388ms</strong>でした。<br />
改良して<strong>669ms</strong>になりました。処理時間が1/4になりました。<br />
<br />
やったね。<br />
<br />
ということで、やや限定的ではありますが、左から右に負荷軽減できるテクニックとして勉強になりました。<br />
おしまいです。<br />
<br />
バイナリ・ファイルを読み書きするには?[C#、VB]<br />
http://www.atmarkit.co.jp/fdotnet/dotnettips/669bincopy/bincopy.html<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-3957340116727654682016-04-13T16:33:00.000+09:002016-04-13T16:33:21.534+09:00[C#]DataTableからDictionaryを作るDataTableからDictionary<T,V>に変換する方法です。<br />
<h4>DataTableからDictionary<T,V>に変換</h4>Dictionaryは連想配列と呼ばれるように、キーを指定すると、対応する値を返してくれるデータ構造です。<br />
配列を一つ一つ照合するのではなく、ハッシュテーブルという構造によって、効率よく値を引っ張ってきてくれます。<br />
データサイズが大きく、繰り返し利用するものほど、この恩恵によるメリットが大きくなるでしょう。<br />
<br />
また、DataTableは、DBとの親和性も高いので、大きいサイズを取り扱うことが多くなります。<br />
任意の行を拾うのに、DataViewのRowFilterメソッドを使う方法もありますが、やや複雑ですし、ものによっては大げさになりがちです。<br />
<br />
さくっと、値だけを拾ってきたいというときに、Dictionaryに変換しておく方法を知っておくと何かと便利です。<br />
<br />
<h5>ソースコード</h5><pre><code class="cs">// ダミーのDataTableを作成します
DataTable table = new DataTable();
table.Columns.Add("name");
table.Columns.Add("mail");
table.Columns.Add("sex");
table.Columns.Add("age");
table.Rows.Add("杉浦 光", "sugiura_hikaru@example.com", "女", "42");
table.Rows.Add("戸塚 人志", "toduka_hitoshi@example.com", "男", "72");
table.Rows.Add("熊井 知史", "kumai_tomofumi@example.com", "男", "24");
table.Rows.Add("高木 朝陽", "takagi_asahi@example.com", "女", "44");
table.Rows.Add("平田 ちえみ", "hirata_chiemi@example.com", "女", "39");
table.Rows.Add("溝口 隆博", "mizoguchi_takahiro@example.com", "男", "50");
table.Rows.Add("椎名 長利", "shiina_nagatoshi@example.com", "男", "30");
table.Rows.Add("谷 フミヤ", "tani_fumiya@example.com", "男", "27");
table.Rows.Add("黒崎 勝久", "kurosaki_katsuhisa@example.com", "男", "69");
table.Rows.Add("浦野 真一", "urano_shinichi@example.com", "男", "54");
// DataTableをDictionaryに変換します
var dictionary = table.AsEnumerable()
.ToDictionary(
row => Convert.ToString(row["name"]),
row => Convert.ToString(row["mail"])
);
Console.WriteLine(dictionary["溝口 隆博"]);
// ●出力結果
// mizoguchi_takahiro@example.com</code></pre>長いですが、ほとんどはサンプルのためのTableを生成しているだけで、変換してるところは一行です。<br />
<pre><code class="cs">var dictionary = table.AsEnumerable()
.ToDictionary(
row => Convert.ToString(row["name"]),
row => Convert.ToString(row["mail"])
);</code></pre><ul><li>TableクラスのAsEnumerableメソッドでLinQを使えるようにします。</li>
<li>ToDictionaryで、Dictionary化させます。</li>
<li>キーと対応する値を指定します。ここではnameをキーに、mailを値に設定しています。</li></ul><h4>抽出して変換</h4>AsEnumerableメソッド以降はLINQが使えますので、必要な条件を満たすアイテムのみを抽出することもできます。<br />
<h5>ソースコード</h5><pre><code class="cs">// 条件を指定して変換(女性のみ抽出)
var dictionaryWomanOnly = table.AsEnumerable()
.Where(row => Convert.ToString(row["sex"]) == "女")
.ToDictionary(
row => Convert.ToString(row["name"]),
row => Convert.ToString(row["mail"])
);
Console.WriteLine(dictionaryWomanOnly.Count());
// ●出力結果
// 3</code></pre><br />
<blockquote>Transform a DataTable into Dictionary C#<br />
<a href="http://stackoverflow.com/questions/19712958/transform-a-datatable-into-dictionary-c-sharp">http://stackoverflow.com/questions/19712958/transform-a-datatable-into-dictionary-c-sharp</a></blockquote><br />
<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-11249607693164406832016-04-05T11:49:00.001+09:002016-04-10T08:49:45.516+09:00[C#]Graphics.DrawStringとGraphicsPath.AddStringのサイズを合わせるさて。<br />
Graphics.DrawStringメソッドとGraphicsPath.AddStringメソッドはどちらも文字の描画を扱うときに使うメソッドです。<br />
困りごととして、フォントサイズの指定の仕様がそれぞれで異なっていることです。<br />
<br />
この記事は、以前に書いた<a href="http://devlabo.blogspot.jp/2010/02/c.html">[C#]文字のアウトラインを描く</a>への補足です。<br />
<br />
Graphics.DrawStringメソッドの引数は、Graphics.DrawString(String, Font, Brush, PointF, StringFormat)という指定に対して、GraphicsPath.AddStringメソッドは、GraphicsPath.AddString(String, FontFamily, Int32, Single, Point, StringFormat)です。<br />
Graphics.DrawStringメソッドの呼び出しのFontオブジェクトのフォントサイズをそのまま、GraphicsPath.AddStringメソッドの4つ目の引数に指定すると、AddStringのほうが一回り小さく描画されます。<br />
<br />
どちらのメソッドにも72fを指定したときの描画は下のようになります。青がGraphics.DrawString、オレンジがGraphicsPath.AddStringです。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxr6GcANUqKXN-RYbr8leZ8k73smq-m2EMDCI3AqheW-2YmiYykavWS9McYjXDfwo7ToYqwSSYDwVrOJ8-qRFPkaBCXHGOtuxvSsBfQWVigBzHs1pwiPwZ4dxt6ahnL75bon4rFysqYc8/s1600/01_unfit_string.png" /></div><br />
Graphics.DrawStringメソッドとGraphicsPath.AddStringメソッドのフォントサイズの指定には、単位に違いがあり、そのため同じ数値を指定しても出力が異なってしまうようです。<br />
<br />
Graphics.DrawStringメソッドに指定するFontは通常Point単位に対して、GraphicsPath.AddStringメソッドに指定するemSizeはPixel単位なのでした。<br />
ということで、単位を合わせるために、変換してあげればよいわけです。<br />
<br />
調べたうちでは、3つの方法がありました。<br />
<ol><li>font.Heightプロパティからemサイズを計算する</li>
<li>font.SizeInPointをPixel単位に変換する</li>
<li>FontオブジェクトをPixel単位で生成する</li>
</ol>ただし、シビアな精度ではいずれも万能ではありません。<br />
数値計算の誤差だと思いますがサイズによって、またフォントによっても、わずかながらズレが出ますのでご注意ください。<br />
<br />
<h4>1.font.Heightプロパティからemサイズを計算する</h4>ほしいのはpixel単位のemサイズです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGTXakev0WOwFdeJYCe-09UHCu_v5KJKB1bIQdEGSxsHruUSKZG1JBn_gQOp8wEC-vqpGzZxbhja33hDEO1OYqTPYw7BTdwp9G8fTqwXEkCwTy76zaAj2OONxPqJkRtBqzn3Pa9wHUBN0/s1600/font-metrics.png" /></div>方法 : フォント メトリックを取得する<br />
<a href="https://social.msdn.microsoft.com/Search/ja-JP?query=%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%20%E3%83%A1%E3%83%88%E3%83%AA%E3%83%83%E3%82%AF%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E2%80%8E%20&pgArea=header&emptyWatermark=true&ac=4">https://social.msdn.microsoft.com/Search/ja-JP?query=%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%20%E3%83%A1%E3%83%88%E3%83%AA%E3%83%83%E3%82%AF%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E2%80%8E%20&pgArea=header&emptyWatermark=true&ac=4</a><br />
<br />
emサイズとは、文字がすっぽりおさまる正方形のサイズです。上の図でいうと、アセントとディセントに少しのスキマを足した大きさになります。<br />
Fontオブジェクトのfont.Heightプロパティは、文字の高さ(一行分の高さ)をPixel単位で取れます。図では、行間に相当します。<br />
これをもとに、Pixcel単位のフォントのemサイズを計算してあげます。<br />
<br />
font.GetEmHeightメソッドは、フォントのデザイン単位がとれます。デザイン単位とは、emサイズを2048としたとき(フォントによりますが)の、メトリックのサイズ情報です。同じくデザイン単位の行間はfont.GetLineSpacingメソッドを使って取得できます。<br />
<br />
<pre><code class="cs">float emSize = (float)font.Height * font.FontFamily.GetEmHeight(font.Style) / font.FontFamily.GetLineSpacing(font.Style);</code></pre><br />
これでPixel単位のemサイズが取れました。<br />
<br />
<h5>ソースコード</h5><pre><code class="cs">// using System.Drawing;
string str = "Hello World!";
Graphics g = this.pictureBox1.CreateGraphics();
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
g.SmoothingMode = SmoothingMode.HighQuality;
PointF point = new PointF(5.0f, 15.0f); // 文字を描画する原点(左上)
float fontSize = 72f;
FontFamily fontFamily = new FontFamily("メイリオ");
// Graphics.DrawStringによる描画
Font font = new Font(fontFamily, fontSize); // →単位がPoint
g.DrawString(str, font, Brushes.LightBlue, point);
// GraphicsPath.AddStringによる描画
float emSize = (float)font.Height * font.FontFamily.GetEmHeight(font.Style) / font.FontFamily.GetLineSpacing(font.Style);
GraphicsPath path = new GraphicsPath();
StringFormat format = new StringFormat();
path.AddString(str, font.FontFamily, (int)font.Style, emSize, point, format);
g.DrawPath(Pens.OrangeRed, path);
g.Dispose();</code></pre><br />
<h5>実行結果</h5>これを実行させると、このようになります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX1aS-Jw3RBnjiJbh4M5YXlRPLYWjA7H2_JZo6O8PXVUQo0yDgFngsO1YsPFlXMtTAsNymZcvVw3fUUAEsYc2s784RFJW4ZchTV1FLQZDWBgQEelAFEkrBf_EV76smGJieqBSnz9bxIE8/s1600/02_fitting_string.png" /></div>ばっちり、ぴったりです。<br />
青く塗られているほうがGraphics.DrawString、オレンジのフチがGraphicsPath.AddStringによる描画です。<br />
<br />
<h4>2.font.SizeInPointをPixel単位に変換する</h4>PointをPixelに換算する方法です。<br />
1inch=72pointです。一度、inchに置き換えてから、pixelに変換する方法で計算できます。<br />
<br />
<pre><code class="cs">float emSize = (float)g.DpiY * font.SizeInPoints / 72.0f;</code></pre><br />
<h4>3.FontオブジェクトをPixel単位で生成する</h4>Fontオブジェクトの生成時に、単位を指定することができます。<br />
通常、単位を省略すると単位はpointになるのですが、GraphicsUnit.Pixelを指定することで、最初からpixcel単位のフォントサイズにしておくことができます。<br />
<br />
<h5>ソースコード</h5><pre><code class="cs">// using System.Drawing;
string str = "Hello World!";
Graphics g = this.pictureBox1.CreateGraphics();
g.SmoothingMode = SmoothingMode.HighQuality;
PointF point = new PointF(5.0f, 15.0f); // 文字を描画する原点(左上)
float fontSize = 96f;
FontFamily fontFamily = new FontFamily("メイリオ");
// Graphics.DrawStringによる描画
Font font = new Font(fontFamily, fontSize, GraphicsUnit.Pixel); // →単位がPixel
g.DrawString(str, font, Brushes.LightBlue, point);
// GraphicsPath.AddStringによる描画
GraphicsPath path = new GraphicsPath();
StringFormat format = new StringFormat();
path.AddString(str, font.FontFamily, (int)font.Style, font.Size, point, format);
g.DrawPath(Pens.OrangeRed, path);
g.Dispose();</code></pre><br />
72pointの指定は、Pixel換算だと96pxなので、fontSizeは96にしています。<br />
<br />
<h4>わずかなズレが出ます</h4>フォントによって、まちまちでズレが出ました。<br />
Georgiaフォントを使用して、「1.font.Heightプロパティからemサイズを計算する」で描画。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-U1bMlk5gPsVTRilF4SAuufVrI-ip8vDvfJmmAHMq-RqruviieBOu6sOVnWoNWtfqerGLXexXtXLSX3UOpoZfOOwwKxPwGFPtR3xzzOab_FKlXYfJUXMhMW2nMUDdQPAhfTszyTOEPhQ/s1600/03_fewgap_sample.png" /></div><br />
Georgiaフォントを使用して、「2.font.SizeInPointをPixel単位に変換する」で描画。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheoqOcWJHPOeWv2TGuYVroW8VHdTM9PpN7WCHBgN9Vxtxr9-DmCJQweDFcaQPBtIGpNnWdj_JESQse7AWtg7o-Wk7HG1RyY6iOL-rBm0H3mN-9S4YJ_8JxnX6Z_gfuB2mig-OEQs0fS_U/s1600/04_fit_sample.png" /></div>算出方法によって、こちらはぴったり。<br />
<br />
また大きいサイズだとぴったりなのですが、小さいサイズを指定するとぴったりにならずにズレが出ることがあります。<br />
<br />
フォントサイズ 72ポイント、「2.font.SizeInPointをPixel単位に変換する」で描画。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX1aS-Jw3RBnjiJbh4M5YXlRPLYWjA7H2_JZo6O8PXVUQo0yDgFngsO1YsPFlXMtTAsNymZcvVw3fUUAEsYc2s784RFJW4ZchTV1FLQZDWBgQEelAFEkrBf_EV76smGJieqBSnz9bxIE8/s1600/02_fitting_string.png" /></div><br />
フォントサイズ 36ポイント、「2.font.SizeInPointをPixel単位に変換する」で描画。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvqDOxnSOR09o6PW1OfsXfUphKH9DAlB69vRvC_Uy6OCQVhoVztVFlqre8RnEYAAEmDvxZ432comqmIRV2KAqNA4YRribkf6IWtaLo8xj9y86EJJpuqMr6dz9OXjk2dWRHBMkc9HOG3OI/s1600/05_fewgap_smallsize.png" /></div><br />
内部の計算誤差なのかなあ。フォントによるズレも、フォントサイズの指定を大きくすることで軽減されるようです。<br />
誤差としてはたぶんだいたい1pixel以内に収まるものなのかなあと思います。<br />
というわけで、いずれも精度的には万能ではありませんので、シビアな見当が必要な方はご注意ください…。<br />
<br />
はい、以上です。<br />
文字の描画サイズについてでした!<br />
<br />
Font in 'GraphicsPath.AddString' is smaller than usual font<br />
<a href="http://stackoverflow.com/questions/2292812/font-in-graphicspath-addstring-is-smaller-than-usual-font">http://stackoverflow.com/questions/2292812/font-in-graphicspath-addstring-is-smaller-than-usual-font</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-30609161884701035312016-02-21T21:05:00.001+09:002016-02-21T21:07:50.564+09:00[js]サイズに合わせた画像の縮小<style type="text/css"><!--.spec{border-collapse:collapse;border:1px solid #666;color: black;font-size:12px;line-height:1.286em;}.spec th {border-top:1px solid #666;border-right:1px solid #666;color: black;background-color:#f4f9fe;padding:8px;text-align:left;font-weight:bold;}.spec td {border-top:1px solid #666;border-right:1px solid #666;padding:4px 8px 4px 8px;}--></style><br />
画像を任意のサイズに縮小するときの計算方法について説明します。<br />
ソースコードにはJavascriptを使っていますが、なるべく言語に依存しないようにするつもりです。<br />
<br />
この手の計算は、寄り付かない人には、ものすごく苦手意識があるのではないかと想像します。<br />
落ち着けば、大変な計算はぜんぜん出てきません。<br />
また、理屈を簡潔に語るよりも、計算から感覚的にイメージがつかめるほうがよいと思ったので、わりとくどくど説明しています。<br />
<br />
<br />
<h4>画像を任意のサイズに合わせる</h4><br />
画像を任意の矩形サイズに合わせたいとします。<br />
やってくる画像のサイズはまちまちですが、なるべく画像の全容が見えるようにして、収まらない部分は切り落としてしまうことにします。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE7AGRqndIh9oYrYXg3I6yBMJl4i177CEdqWboOwEXBzecyCxdCQY1m28r16fLRT7QRQqs_9cfRiw1sT55aIOwr8-64E2Fxyi4N1a_pFY-ABnje3hnVZMaMoTYjJ0U0fDLCuLwQAPFP3U/s1600/fitimage-scaling.jpg" /></div><br />
当然ですが、幅と高さにサイズを指定して、強引にギュッとゆがめてしまうのは画像にもよろしくありません(変倍というやつです)。<br />
幅と高さは同じ比率(等倍)で収めるものとします。<br />
<br />
<br />
<h4>横長画像か縦長画像かを判定する</h4><br />
画像によって、処理の仕方は2パターンあります。<br />
横長の画像は左右が余るようにしたいですし、縦長の画像は上下を余るようにしたいですね。<br />
<br />
具体的な数をもとに考えることができるように、例として、フラミンゴの画像とヒマワリの画像を使います。<br />
それぞれの画像サイズはこちら。<br />
<table class="spec"><tr><th></th><th></th><td>幅</td><td>高さ</td></tr>
<tr><th>A</th><th>フラミンゴの画像</th><td>450px</td><td>300px</td></tr>
<tr><th>B</th><th>ヒマワリの画像</th><td>400px</td><td>400px</td></tr>
<tr><th colspan="2">描画先の矩形サイズ</th><td>100px</td><td>80px</td></tr>
</table><br />
フラミンゴの画像とヒマワリの画像を、描画先の矩形サイズに合わせて縮小したいとします。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQQ5CLAI5EMAeandcdFDpdLz2Pp3PIAcqw5TC01wW0wMdml8E7RApow0WTEjaXia8xxalO2O11JsKp-3QysJVgcFvnLT9vyXJF5k9BnUjq9RzWF3utYJJe3g9AtrGCm6mHF1wPA7WlNyA/s1600/fitimage-scaling-pattern01.jpg" /></div><br />
それぞれの縦横の比率を比較することで、どちらに合わせる画像かを判別させます。<br />
<br />
フラミンゴの縦横比率(幅/高さ)= 450px / 300px = 3/2 = 1.5<br />
ヒマワリの縦横比率(幅/高さ)= 400px / 400px = 1.0<br />
描画先の矩形の縦横比率(幅/高さ)= 100px / 80px = 5/4 = 1.2<br />
<br />
縦横比率の関係は、<br />
フラミンゴ(1.5) > 描画先の矩形(1.2) > ヒマワリ(1.0)<br />
となっています。<br />
<br />
描画先の矩形よりも縦横比率が大きいものは横長として扱えばよく、小さいものは縦長として扱えばよいことが解りますね。<br />
<br />
<br />
<h4>切り出す画像と縮小率を計算する</h4><br />
必要となるのは、画像のどの部分を切り出して、どのくらい縮小すればいいかという2つです。<br />
ひとまず横長画像について考えます。<br />
<br />
<br />
<h5>先に縮小比を求める</h5>どのくらい小さく(または大きく)すればいいのかを考えます。<br />
<br />
横長の画像は左右に余りますので、画像の高さを、描画先の矩形の高さに合わせると考えると解りやすいですね。<br />
<br />
縮小比 = 描画先の矩形の高さ / 画像の高さ<br />
です。<br />
<br />
※縮小と書いていますが、計算式には縮小と拡大の区別はありません。画像が小さくて、描画先の矩形のほうが大きいときは、縮小比が1よりも大きくなるだけですね。<br />
<br />
<h5>切り取り領域を決める</h5>画像から領域を切り取り、縮小することで、描画先の矩形に合わせます。<br />
どの部分の領域を切り取ればいいかを求めます。<br />
<br />
・高さ<br />
高さはそのまま、画像の高さを描画先の矩形の高さにするだけです。<br />
<br />
切り取る領域の高さ = 画像の高さ<br />
<br />
・幅<br />
幅について考えます。<br />
切り取る領域の幅に縮小比を掛ければ描画先の矩形の幅になるはずなので、切り出し幅を求めるためには逆に縮小比で割ってあげればよいでしょう。<br />
<br />
描画先の矩形の幅 = 切り取る領域の幅×縮小比<br />
なので、<br />
切り取る領域の幅 = 描画先の矩形の幅/縮小比<br />
で計算できます。<br />
<br />
・切り取りの開始位置<br />
また切り取りの開始位置は横幅の画像は左右に余る分を、少しずらせばいいことが判ります。<br />
画像の幅と切り取り幅の差分があまりの部分ですので、真ん中の部分を切り取るためには、差分を等分すればよいですね。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj53KcBrWFyQY7ZNYr-JBv7LIIf6MDI6LGjqL0JnslZfPNxCcUHr5oeFIGppvmGjjhPCGGL0y3TFtSFGcaTy5GdgsWt1zkgzs0zsNYwV2nS8nPTtbbHsrZJ4iChTPYbJ7LhTJNc5gcBaIs/s1600/fitimage-scaling-clipping.jpg" /></div><br />
ということで、<br />
切り取りの開始位置 = (画像の幅 - 切り取り幅) / 2<br />
で計算できます。<br />
<br />
<br />
<h5>縦長の画像のときの計算</h5><br />
縦長の画像も同じように計算しましょう。<br />
縦長の画像の場合は、縮小比は幅の比率になります。<br />
<br />
縮小比 = 描画先の矩形の幅 / 画像の幅<br />
<br />
・幅<br />
切り取る領域の幅 = 画像の幅<br />
<br />
・高さ<br />
切り取る領域の高さ = 描画先の矩形の高さ/縮小比<br />
<br />
・開始位置<br />
開始位置は、上下の位置を決めます。<br />
縦の切り取りの開始位置 = (画像の幅 - 切り取る高さ) / 2<br />
で計算できます。<br />
<br />
<br />
<h4>ソースコード</h4>サンプルとして、画像をロードし、幅250px、高さ100pxに合わせて縮小するソースコードを載せておきます。<br />
なお、言語はJavascriptです。<br />
html内にcanvasのidを持つcanvasタグが配置されているものとします。<br />
<br />
<pre>var imageFile = "/Images/ヒマワリ.jpg";
var id = "canvas"
var canvasWidth = 250;
var canvasHeight = 100;
var canvas = document.getElementById(id);
canvas.width = canvasWidth;
canvas.height = canvasHeight;
var context = canvas.getContext('2d');
var image = document.createElement('img');
image.src = imageFile;
// 準備
image.onload = function () {
var imageWidth = image.width;
var imageHeight = image.height;
// ①縮小比を計算
var scale = 1.0;
if (imageWidth / imageHeight > canvasWidth / canvasHeight) {
scale = canvasHeight / imageHeight;
} else {
scale = canvasWidth / imageWidth;
}
// ②切り出し領域を計算
var clipWidth = canvasWidth / scale;
var clipHeight = canvasHeight / scale;
var clipX = (imageWidth - clipWidth) / 2;
var clipY = (imageHeight - clipHeight) / 2;
// ③drawImageメソッドの呼び出し
context.drawImage(image, clipX, clipY, clipWidth, clipHeight, 0, 0, canvasWidth, canvasHeight);
};
</pre><br />
<br />
<h4>解説</h4>計算に使っている変数をざっとリストアップしておきます。<br />
<table class="spec"><tr><th>imageWidth</th><td>画像のオリジナルサイズの幅</td></tr>
<tr><th>imageHeight</th><td>画像のオリジナルサイズの高さ</td></tr>
<tr><th>canvasWidth</th><td>指定矩形の幅</td></tr>
<tr><th>canvasHeight</th><td>指定矩形の高さ</td></tr>
<tr><th>scale</th><td>縮小比</td></tr>
<tr><th>clipX</th><td>切り取り領域の開始X座標</td></tr>
<tr><th>clipY</th><td>切り取り領域の開始Y座標</td></tr>
<tr><th>clipWidth</th><td>切り取り領域の幅</td></tr>
<tr><th>clipHeight</th><td>切り取り領域の高さ</td></tr>
</table><br />
準備として、画像を読み込んでから処理されるようにしたいのでonloadイベントに記述しています。<br />
<br />
<br />
<h5>①縮小比を計算</h5><br />
縦横比率を比較し、横長の画像と、縦長の画像に分けて縮小比率を計算しています。<br />
<br />
※<br />
完全に横道にそれますが、割り算は掛け算に比べてものすごく遅いです。<br />
(imageWidth / imageHeight > canvasWidth / canvasHeight)<br />
は、下のようにも書けます。<br />
(imageWidth * canvasHeight > imageHeight * canvasWidth)<br />
こちらのほうが高速です。<br />
<br />
<br />
<h5>②切り出し領域を計算</h5><br />
画像の切り出し領域を計算しています。<br />
横長でも縦長でも縮小比が解れば同じ計算式で導くことができます。<br />
<br />
※<br />
ただし不要な演算が増えているので注意。<br />
<br />
<br />
<h5>③drawImageメソッドの呼び出し</h5>canvasのdrawImageメソッドを呼び出しています。<br />
drawImageは、canvasにイメージを描画するためのメソッドです。<br />
drawImageは引数の多い9つあるのを使っています。<br />
<br />
context.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh)<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBbMbdpubHqTgdb3yN537rGpgLC_IUsGaJK7E39OMj5ohNKqZmlK7U9DfNB6wz7uKtU6exdeNuehO_1BLw8_x6priVWd9-vINpIHVFqa50oPzj_-bWqqsW81SSEBAl6hSdXx6zpXZj9Hw/s1600/drawImage.png" /></div><br />
sx,sy,sw,shで描画元からコピーする矩形を指定し、dx,dy,dw,dhで描画先の矩形を指定します。<br />
<br />
<br />
以上で終わりですが、もう一つだけ足しておきます。<br />
<br />
<br />
<h4>おまけ</h4><br />
上記は、できるだけ画像を矩形いっぱいに広げて収めるという要件でした。<br />
そのため矩形よりもはみ出た領域は切り取られてしまいます。<br />
<br />
替わりに、画像を切り取ることなく、画像の全体を矩形に表示したいとします。<br />
こういうのもありそうな話です。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgihgfitcAm1oofnjHs4fIVsk1yOLPoSXZnr2_S6vDH8ixml0ycqmjlTNHZinbcCgHyBLRPsE2q6uq6_Nc91KW3lPUrIgqregE-wUpDd9ioWlue0fhXgcfIPZtl8_PEsHri9UtyI3O26vY/s1600/fitimage-scaling-pattern02.jpg" /></div>こういう感じですね。<br />
<br />
横長画像か縦長画像かを判定するために縦横比率を比較しました。<br />
この判定を反転させます。<br />
<br />
上のソースコードでいうと、<br />
if (imageWidth / imageHeight > canvasWidth / canvasHeight) {<br />
を<br />
if (imageWidth / imageHeight < canvasWidth / canvasHeight) {<br />
にする。<br />
するとあら不思議。<br />
<br />
幅と高さのどちらを基準にサイズを合わせるか、というのを逆転させればよいので、これだけでできるのです。<br />
<br />
<br />
おしまい。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-30104216447504481762016-02-09T23:27:00.000+09:002016-02-09T23:27:15.500+09:00[C#]2つの集合の差分を調べる集合が2つあって、片方にはなくて、もう片方には存在する要素の差分を調べます。<br />
例として、常用漢字にある漢字で、JIS第1水準にはない漢字を調べるコードを書きます。<br />
<br />
<h4>常用漢字とJIS第1水準とはなにかをざっくり</h4><br />
常用漢字<br />
<a href="https://ja.wikipedia.org/wiki/%E5%B8%B8%E7%94%A8%E6%BC%A2%E5%AD%97">https://ja.wikipedia.org/wiki/%E5%B8%B8%E7%94%A8%E6%BC%A2%E5%AD%97</a><br />
<br />
常用漢字とは「現代の国語を書き表す場合の漢字使用の目安」として、国が選定した漢字です。2136字あります。<br />
<br />
JIS漢字コード<br />
<a href="https://ja.wikipedia.org/wiki/JIS%E6%BC%A2%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89">https://ja.wikipedia.org/wiki/JIS%E6%BC%A2%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89</a><br />
<br />
JIS漢字コードの第1水準漢字とは、日本工業規格において定められた漢字コードのうち使用頻度が高いとされている漢字です。2965字です。<br />
<br />
常用漢字はよく使われる目安として出版物や教育に関わるようです。方や、JIS漢字コードはコンピュータ上の日本語表示の文字コードとして作られていたもの。第4水準という一度も見たことのない漢字まで一通り決められています。ざっくり理解ですが、作られた目的は全然違うようです。<br />
しかし、どちらもよく使われる漢字同士なので似通った集合なわけですね。<br />
<br />
常用漢字は2136字で、JIS漢字コードの第1水準漢字は2965字です。もちろん、最初から人力で調べる気はありませんので、プログラムに頼りましょう。<br />
<br />
<h4>コード</h4><br />
常用漢字とJIS漢字コードの第1水準漢字のリストは、こちらのサイトを参考にさせていただきました。<br />
<br />
漢字辞典オンライン<br />
<a href="http://kanji.jitenon.jp/">http://kanji.jitenon.jp/</a><br />
<br />
漢字のリストは、2つともテキストファイルにしてます。<br />
ここに置いておきます。<br />
<ul><li><a href="https://devlabo.blob.core.windows.net/blogger/%E5%B8%B8%E7%94%A8%E6%BC%A2%E5%AD%97%EF%BC%882136%E5%AD%97%EF%BC%89.txt">常用漢字(2136字).txt</a></li>
<li><a href="https://devlabo.blob.core.windows.net/blogger/JIS%E7%AC%AC%EF%BC%91%E6%B0%B4%E6%BA%96%EF%BC%882965%E5%AD%97%EF%BC%89.txt">JIS第1水準(2965字).txt</a></li></ul><!-- code formatted by http://manoli.net/csharpformat/ --><br />
<pre class="csharpcode"><span class="rem">// using System.IO;</span>
<span class="kwrd">private</span> <span class="kwrd">void</span> button1_Click(<span class="kwrd">object</span> sender, EventArgs e) {
<span class="kwrd">string</span> joyo = <span class="kwrd">this</span>.ReadFile(<span class="str">"常用漢字(2136字).txt"</span>);
<span class="kwrd">string</span> jis = <span class="kwrd">this</span>.ReadFile(<span class="str">"JIS第1水準(2965字).txt"</span>);
<span class="rem">// 差分を拾う</span>
<span class="kwrd">string</span> sabun = <span class="kwrd">new</span> <span class="kwrd">string</span>(joyo.Where(n => !jis.Contains(n)).ToArray());
Console.WriteLine(sabun);
}
<span class="kwrd">private</span> <span class="kwrd">string</span> ReadFile(<span class="kwrd">string</span> file) {
StreamReader reader = <span class="kwrd">new</span> StreamReader(file);
<span class="kwrd">string</span> text = reader.ReadToEnd();
reader.Close();
<span class="rem">// 改行を省いておきます</span>
text = text.Replace(System.Environment.NewLine,<span class="str">""</span>);
<span class="kwrd">return</span> text;
}
</pre><br />
<h4>実行結果</h4>上のコードを実行した結果です。<br />
<br />
丼刹拉訃恣哺惧羞貪喩彙楷毀嗅傲慄箋瘍辣憬摯踪嘲諧錮緻曖璧籠鬱<br />
<br />
はい。<br />
30文字ヒットしました。<br />
<br />
<h4>解説</h4>解説と言うほどのことはしていませんが、コードはサンプルとなる文字列を拾ってくる部分がほとんどです。<br />
「常用漢字(2136字).txt」、「JIS第1水準(2965字).txt」のファイルは実行ファイルの直下に必要です。<br />
ファイルの存在確認すらしてないコードなのでご注意ください。<br />
<br />
なんだかんだで、主要な処理は下の一行です。<br />
<!-- code formatted by http://manoli.net/csharpformat/ --><pre class="csharpcode"><span class="kwrd">string</span> sabun = <span class="kwrd">new</span> <span class="kwrd">string</span>(joyo.Where(n => !jis.Contains(n)).ToArray());</pre><br />
joyoにある文字を走査して、jisに存在していない漢字を文字列として再構築しています。<br />
<ul><li>stringはcharの配列として利用できますので、そのままLinqのWhereメソッドを利用します。</li>
<li>jis.Contains(n)は、joyo内の1文字(n)がjis内に含まれていたらtrueを返します。</li>
<li>joyo.Whereメソッドは、否定演算子(!)があるので含まれなかったものだけを戻していきます。</li>
<li>最後に、charの配列から文字列stringを生成してます。</li></ul><br />
<br />
途中にある否定演算子(!)をなくせば、「どちらにも存在する要素を調べる」コードに早変わりします。<br />
<!-- code formatted by http://manoli.net/csharpformat/ --><pre class="csharpcode"><span class="kwrd">string</span> sabun = <span class="kwrd">new</span> <span class="kwrd">string</span>(joyo.Where(n => jis.Contains(n)).ToArray());</pre><br />
こちらのコードでは、常用漢字とJIS第1水準のどちらにも該当する漢字が抽出できます。<br />
<br />
<h4>おまけに</h4><br />
サンプルとして使用した常用漢字と第1水準漢字のことばかり喋っていますが…。<br />
(知らなかった分、気づきが多かったです)<br />
<br />
JIS第1水準は3000字近くあるので、常用漢字を包含しているかと思いきや、そういうわけでもないんですね。<br />
というのも、常用漢字は最近(2010年)に改定されていて、差分文字の多くはそのときに追加されたもののようです。<br />
<ul><li>「丼」とか。たしかに近年になって頻度が増えたのでしょう。</li>
<li>「嵐」とか「韓」とか。流行りとかではないのかもしれないけれど、文化ってそういうものですものね。</li>
<li>「鬱(うつ)」が常用に、というのはいい気はしません。</li></ul><br />
もちろんJISの漢字コードを改定するわけにいかないですからね。<br />
<br />
<br />
はい、以上です。<br />
お粗末さまでした。<br />
<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-8597361690571734392016-02-02T18:09:00.001+09:002016-02-02T18:13:41.421+09:00Windows.oldフォルダは消していいのか?知らないうちに増えているフォルダをみると、どうしていいものかわからなくなります。<br />
まして、結構サイズが大きかったりする。<br />
なんとなく、特殊な名称をしているので、わからなくはないですけれど。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicnlgaNrwvb1cfAIlDsg3Yft8mVGR054Mq4en_BekZoOUtWmCQr3QqwJnJPxy09nfxO9PhGsejaXk3AoIrMTX3FAtHRqj_VdH4ZO4ynP7BDajuHryHSqN0MRLS33rS0Q_CnrkKYGpPf7I/s520/01windows.old.png" /></div><br />
結論から。<br />
→<b>放置で勝手に消えます</b>。<br />
<br />
<h4>Windows.oldフォルダとは?</h4>Windows.oldフォルダは、Windowsアップデートのときにつくられます。<br />
何かあったときに戻せるように古いシステムファイルが保管されたフォルダということです。<br />
このフォルダは、アップデート後28日が経過すると勝手に削除されるらしいので、基本的には放置でよさそうです。<br />
<br />
勝手に消えるということがどこかに書いてあるわけではないので、見ず知らずのフォルダが増えていたらギョッとしますね。<br />
Windowsフォルダはシステムドライブの直下にあって、Windowsのシステムまわりを少し触ったことがある人には馴染みがあるでしょう。<br />
システムドライブのすぐ下のフォルダには下手に触らないほうがいいと思うのは普通のことなのですが、サイズを調べてみるとやたらと大きいので、知らないとこれはどうしたものかと思ってしまいます。<br />
<br />
ドライブの残りの容量に不安があるなど、少しでも余計なファイルを残しておきたくないという人は、Windowsに入っている「ディスククリーンアップ」というツールを使うことで手動で削除することもできます。<br />
<br />
<br />
<h4>Windows.oldフォルダを削除する</h4><br />
「ディスククリーンアップ」を使うことで、Windows.oldフォルダだけでなく、アップデート時にシステムが据え置きしているファイルも消すことができます。これが結構大きいです。<br />
<br />
システムにかかわるファイルやフォルダの移動や削除などを直接操作するというのは、あんまりよろしくありません。どこでどういう操作がどこに関わってくるのかを理解してやらないといけないからですね。Windowsが用意している「ディスク クリーンアップ」というお掃除ツールがあるので、できるだけお任せするほうがいいでしょう。<br />
<br />
<h5>ディスク クリーンアップ</h5>スタートメニューから、「Windows管理ツール」のなかの「ディスク クリーンアップ」を選び、起動させます。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihuaYldngzken7sK-vCv5Whsr0oRcZuTxHLWznEFUibDUgDFoQpcMFAYHfnfi6i4hoX5EOu6lkHBvrIbONvgfIHJYeGXlyP60BHQB7GXnTIrrLAVxX5tiC8Ix9nrfW0wSMh3WouHhg_r0/s520/02disccleanup_startmenu.png" /></div>あるいは「コントロールパネル」→「システムとセキュリティ」→「管理ツール」から探すこともできます。<br />
<br />
しばらくして画面がでます。「システム ファイルのクリーン アップ」を押します。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYLYKs8f7ED0SP8aBxqunnP9eF3OaOjmKEdY6IJQOJAttQWE9iM6H-KCcIfB9DDWRT8nEp4yrRxWhu4XDZb2OfSoiRa7ahnoNDmODYgTs9AvLrEpacNn6Wy0UpzqZioLggLV_u3Bm90LQ/s520/03disccleanup_dialog.png" /></div><br />
ドライブを聞いてくるので、システムドライブ(通常はCドライブ)を選択します。<br />
「どのくらいの空き容量を作成できるのか計算しています。」という画面が出ます。しばらく待ちましょう。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgNWLEIs-Ly7qJy5SNvwYbvCf3PKWqupaH-oJWRilxaovj3sgoZ8TLY1exMmMhie1EO5sYbn_dN1LllWXG3xuAAWWWs9iLyp-K_aOJose3FyUl3bF3_lo2NPV68Y4z8nWq2ADKJu0eFSY/s520/04disccleanup_scan.png" /></div><br />
削除するファイルに並んでいるリストが増えました。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPnyT7U3EgL11O32sEa547cRKvyCD3yI1aFRd2Et2Y7mG6Sto0ytSkCGZDuC88k3LaX8mG8mm28zB0DDljvAIX0QMlnA2F_feFMq2Ehl5Xe2QbtUR904PxEPFQLR3Ad-36tfQycT8nFwU/s520/05disccleanup_system.png" /></div>リストのなかから、とくに大きいのは、「以前のWindowsのインストール」と「一時Windowsインストールファイル」です。足して7GBほどありました。<br />
「以前のWindowsのインストール」にチェックする操作が、Windows.oldフォルダーを削除する操作になります。<br />
「一時Windowsインストールファイル」は、セットアップに使用された一時ファイルなので、削除しても問題ありません。<br />
<br />
必要な項目にチェックをつけて「OK」を押します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPDTwGKh4JhR3pe4eZNegr7b4bpHvZHFsLjm7qWI0X69MPOjwTF9BGgNDynlK5LLxQUHtRisiai_jc5rXysq_6XTe_1tG6plo734uU1H35WpEDTGHckxDjg4a1lt7DfEykns2oSkBvvLc/s520/06cleanup_cleaning.png" /></div><br />
「このコンピューターにある不要なファイルを整理しています。」という画面になります。<br />
途中で、「以前のWindowsのインストールまたは一時インストールファイルをクリーンアップすると、コンピューターを以前のバージョンのWindowsに復元することはできなくなります。この操作を実行しますか?」というメッセージがでます。「はい」を押します。<br />
<br />
以上です。<br />
Windows.oldフォルダがなくなっているのを確認しにいきましょう。<br />
<br />
Windows.oldフォルダという馴染みのないフォルダの出現を不審に思ってしまうのは、おかしなことではないと思います。アップデートのたびによくわからないディスク容量の増減があって、そこに気づくことができるのは、それだけ日ごろから気を配っているからですね。<br />
ではでは。<br />
<br />
<blockquote>Windows.old フォルダーを削除する方法 - Windows ヘルプ<br />
<a href="http://windows.microsoft.com/ja-jp/windows-8/how-remove-windows-old-folder">http://windows.microsoft.com/ja-jp/windows-8/how-remove-windows-old-folder</a></blockquote>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-5333333587440769247.post-28392120728432094172016-01-22T12:17:00.000+09:002016-04-05T07:45:19.732+09:00Windowsがしゃべりだしたときの対処びっくりしますね。まずは落ち着きましょう。<br />
Windowsがとつぜんしゃべりだして、このような画面が出ました。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJDGZR0FZRTTlT978EgkMCEqNqFrhB4zcwCIuCMKHHFtbAo3HCU86mMnMnn_2YJytY1Os_O7VQmPpj0vX8Oz7rnM5l503K4pUDdV60WojaAvsUOQP6XKGYHozpdm86uloE0LuKf0aZc1s/s1600/%25E3%2583%258A%25E3%2583%25AC%25E3%2583%25BC%25E3%2582%25BF%25E3%2583%25BC%25E3%2581%25B8%25E3%2582%2588%25E3%2581%2586%25E3%2581%2593%25E3%2581%259D.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJDGZR0FZRTTlT978EgkMCEqNqFrhB4zcwCIuCMKHHFtbAo3HCU86mMnMnn_2YJytY1Os_O7VQmPpj0vX8Oz7rnM5l503K4pUDdV60WojaAvsUOQP6XKGYHozpdm86uloE0LuKf0aZc1s/s400/%25E3%2583%258A%25E3%2583%25AC%25E3%2583%25BC%25E3%2582%25BF%25E3%2583%25BC%25E3%2581%25B8%25E3%2582%2588%25E3%2581%2586%25E3%2581%2593%25E3%2581%259D.png" /></a></div><br />
「終了」を押すと、画面は閉じられてナレーターは終了します。<br />
<br />
<h4>ナレーター(音声案内)について</h4>これは画面上の操作を音声案内で読み上げる、ナレーター(音声案内とも)と呼ばれる機能です。<br />
すべてのWindowsに便利機能として搭載されているようです。<br />
<br />
ナレーターを起動/停止させるショートカットキーは、Windowsキー+Enterです。なぜか、とてつもなくアクセスしやすいショートカットがわり当てられているのです。<br />
知らずに 、このショートカットをうっかり叩いてしまうことでナレーターが起動してしゃべりだすという仕掛けなのです。<br />
<br />
とくに仕事で利用している人は、PCの音量設定がどうなっているか、意識すらしていないのではないでしょうか。そこで、とつぜん機械音声でしゃべりだすわけです。<br />
没頭していた作業が吹っ飛ぶほど、周りの目が一気に集中してしまって、 困惑の渦中に放り出されてしまいます…。周りにいるのが知っている人たちだけならまだしも、出先の移動中や、カフェなんかで、おもむろにしゃべりだされてしまうと考えるだけでも疲れてしまいますね。<br />
<br />
おそらく、多くの人にとっては不要と思われる機能なので、ナレーターを無効にしておきましょう。<br />
<br />
<h4>ナレーターを起動しないようにするには</h4>ショートカットは理解できたものの、今後間違えないというのは本人がコントロールできることではないので、ナレーターのほうを起動させないように設定しておくのが無難でしょう。<br />
ナレーターの設定のなかに、キーボードショートカットを無効にするような項目があればいいんですが、ないのですよね。<br />
<br />
ショートカットを無効にするのにレジストリをいじる方法や、ナレーター自体を削除してしまう若干乱暴な方法もあるようですが、ソフトウェアに制限を掛ける方法が解りやすかったのでご紹介します。<br />
レジストリ同様、普段さわることがないところですが、意味も解らないままレジストリを操作するよりも安全です。<br />
<br />
なお、画面はWindows10ですが、Windows8でも同じ操作で制限することができます。<br />
<br />
<h5>ナレーターが起動しないように制限します</h5>ソフトウェアを許可しないというWindowsの機能を使って、ナレーターを起動しないように制限します。<br />
<br />
Windowsロゴを右クリックするなどして、コントロールパネルを開きます。<br />
コントロールパネルから「システムとセキュリティ」に行きます。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvS6IWUOHeis1XV1IYqHH44Re1ahpYITdgRADaiYROJsos20e5sslmVK1OhTgynydK5IXrJk2BMd7wvDiE3q9Op8RqdeAk50tKo-G53thGSjF1ENkajftWotEZ88PkAbFffDuTUO1-pQs/s1600/01%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%2588%25E3%2583%25AD%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%2591%25E3%2583%258D%25E3%2583%25AB.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvS6IWUOHeis1XV1IYqHH44Re1ahpYITdgRADaiYROJsos20e5sslmVK1OhTgynydK5IXrJk2BMd7wvDiE3q9Op8RqdeAk50tKo-G53thGSjF1ENkajftWotEZ88PkAbFffDuTUO1-pQs/s520/01%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%2588%25E3%2583%25AD%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%2591%25E3%2583%258D%25E3%2583%25AB.png" /></a></div><br />
下のほうにある「管理ツール」を開きます。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVxAIjM2IAAN_acJCSJbCKNxeArdsKTdqa2ppDKaLjUFzWdux3oUN0YbJXlxOMsBwkrbLMOdI8HNHX2j1t0FsqnkDMYbx0QR8B08KUA3f2q42aNc3GCHwLFpEloyxzhrp8QPLcJOVHzYk/s1600/02%25E3%2582%25B7%25E3%2582%25B9%25E3%2583%2586%25E3%2583%25A0%25E3%2581%25A8%25E3%2582%25BB%25E3%2582%25AD%25E3%2583%25A5%25E3%2583%25AA%25E3%2583%2586%25E3%2582%25A3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVxAIjM2IAAN_acJCSJbCKNxeArdsKTdqa2ppDKaLjUFzWdux3oUN0YbJXlxOMsBwkrbLMOdI8HNHX2j1t0FsqnkDMYbx0QR8B08KUA3f2q42aNc3GCHwLFpEloyxzhrp8QPLcJOVHzYk/s520/02%25E3%2582%25B7%25E3%2582%25B9%25E3%2583%2586%25E3%2583%25A0%25E3%2581%25A8%25E3%2582%25BB%25E3%2582%25AD%25E3%2583%25A5%25E3%2583%25AA%25E3%2583%2586%25E3%2582%25A3.png" /></a></div><br />
見知らぬアイコンがたくさん並んでいます。「ローカル セキュリティ ポリシー」を探しましょう。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6WwRADsbx_Gvmqbh-eXlTKN4wdH9_2s75reSOE3tEIl7GlPA2mb8J4vbIV1txJqKHnSmGGzJV2cbYOxjI_tyb0QspA-xFYDy4QAD2-yfvWyJwW4pbQJNpae_FzFITj6Z-vpNuc4jJ5SU/s1600/03%25E7%25AE%25A1%25E7%2590%2586%25E3%2583%2584%25E3%2583%25BC%25E3%2583%25AB.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6WwRADsbx_Gvmqbh-eXlTKN4wdH9_2s75reSOE3tEIl7GlPA2mb8J4vbIV1txJqKHnSmGGzJV2cbYOxjI_tyb0QspA-xFYDy4QAD2-yfvWyJwW4pbQJNpae_FzFITj6Z-vpNuc4jJ5SU/s520/03%25E7%25AE%25A1%25E7%2590%2586%25E3%2583%2584%25E3%2583%25BC%25E3%2583%25AB.png" /></a></div><br />
→「名前空間 '~' は、既にストア内の別のファイルのターゲット名前空間として定義されています。」というメッセージが出ても、無視してOKを押しましょう。<br />
<br />
ソフトウェアの制限のポリシーに行きます。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDTsMmAshe4ilYEuRIahLWQbgLviVi3M7QqAeMUf9yw-S1cIf35sdy0sndVcAN6BLiBbh2fouSWLoiDScLQAWR_668cqpgtBDxUNigL8XCkY5zcFFOUGntrdqzmukKG_wZQyhV0Lh7C0k/s1600/04%25E3%2583%25AD%25E3%2583%25BC%25E3%2582%25AB%25E3%2583%25AB%25E3%2582%25BB%25E3%2582%25AD%25E3%2583%25A5%25E3%2583%25AA%25E3%2583%2586%25E3%2582%25A3%25E3%2583%259D%25E3%2583%25AA%25E3%2582%25B7%25E3%2583%25BC.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDTsMmAshe4ilYEuRIahLWQbgLviVi3M7QqAeMUf9yw-S1cIf35sdy0sndVcAN6BLiBbh2fouSWLoiDScLQAWR_668cqpgtBDxUNigL8XCkY5zcFFOUGntrdqzmukKG_wZQyhV0Lh7C0k/s520/04%25E3%2583%25AD%25E3%2583%25BC%25E3%2582%25AB%25E3%2583%25AB%25E3%2582%25BB%25E3%2582%25AD%25E3%2583%25A5%25E3%2583%25AA%25E3%2583%2586%25E3%2582%25A3%25E3%2583%259D%25E3%2583%25AA%25E3%2582%25B7%25E3%2583%25BC.png" /></a></div><br />
「ソフトウェアの制限のポリシーが定義されていません」と表示されている場合は、右クリックメニューを呼び出して「新しいソフトウェアの制限ポリシー」をクリックします。<br />
すでに適用されているときは必要ありません。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdDVVpJ80d2B-OZyPF307ObaIkEqOFBouDXmEPrsWFjOgnA47zMi1jvI47OzhyphenhyphenpsT_u9Wnz_2nMT2C3qME9KmmCTye8ydL-ApYG2xETMyEgiQrhFK7i9rmmVy0aPj1x5jylYxD5G5UR2M/s1600/05%25E6%2596%25B0%25E3%2581%2597%25E3%2581%2584%25E3%2582%25BD%25E3%2583%2595%25E3%2583%2588%25E3%2582%25A6%25E3%2582%25A7%25E3%2582%25A2%25E3%2581%25AE%25E5%2588%25B6%25E9%2599%2590%25E3%2581%25AE%25E3%2583%259D%25E3%2583%25AA%25E3%2582%25B7%25E3%2583%25BC.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdDVVpJ80d2B-OZyPF307ObaIkEqOFBouDXmEPrsWFjOgnA47zMi1jvI47OzhyphenhyphenpsT_u9Wnz_2nMT2C3qME9KmmCTye8ydL-ApYG2xETMyEgiQrhFK7i9rmmVy0aPj1x5jylYxD5G5UR2M/s520/05%25E6%2596%25B0%25E3%2581%2597%25E3%2581%2584%25E3%2582%25BD%25E3%2583%2595%25E3%2583%2588%25E3%2582%25A6%25E3%2582%25A7%25E3%2582%25A2%25E3%2581%25AE%25E5%2588%25B6%25E9%2599%2590%25E3%2581%25AE%25E3%2583%259D%25E3%2583%25AA%25E3%2582%25B7%25E3%2583%25BC.png" /></a></div><br />
追加の規則を右クリックしてメニューを呼び出し「新しいパスの規則」をクリックします。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9HnBajdewRXgmrEoU7AnZlmisZeEq0qtln8RncD5gZor7mioej9z0ftVIuGeMoSpcg4wEDoeBNLNX_8tQO08cM0bJF03SFLJpQt48i7q-NZ1h70Dtw3ejXhuTEOJERaxFAYyazeF-8qY/s1600/06%25E8%25BF%25BD%25E5%258A%25A0%25E3%2581%25AE%25E8%25A6%258F%25E5%2589%2587.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9HnBajdewRXgmrEoU7AnZlmisZeEq0qtln8RncD5gZor7mioej9z0ftVIuGeMoSpcg4wEDoeBNLNX_8tQO08cM0bJF03SFLJpQt48i7q-NZ1h70Dtw3ejXhuTEOJERaxFAYyazeF-8qY/s520/06%25E8%25BF%25BD%25E5%258A%25A0%25E3%2581%25AE%25E8%25A6%258F%25E5%2589%2587.png" /></a></div><br />
参照から、ナレーター(Narrator.exe)を探すか、パスに「C:\Windows\System32\Narrator.exe」と入れて、OKを押します。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Pxc8xi-DGTJJew5YJ9equU27SJOK34J7JxJksHrtEXt4Mr_oYutcQDkcLYqvJbBr9Na-dX41Hp9eIWqlU8i_Wfy6mOIB6FYPdpCK8Vx32LLlX4LjdK0NnGGzpc4RNC2s303Ck99SGWw/s1600/07%25E6%2596%25B0%25E3%2581%2597%25E3%2581%2584%25E3%2583%2591%25E3%2582%25B9%25E3%2581%25AE%25E8%25A6%258F%25E5%2589%2587.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Pxc8xi-DGTJJew5YJ9equU27SJOK34J7JxJksHrtEXt4Mr_oYutcQDkcLYqvJbBr9Na-dX41Hp9eIWqlU8i_Wfy6mOIB6FYPdpCK8Vx32LLlX4LjdK0NnGGzpc4RNC2s303Ck99SGWw/s520/07%25E6%2596%25B0%25E3%2581%2597%25E3%2581%2584%25E3%2583%2591%25E3%2582%25B9%25E3%2581%25AE%25E8%25A6%258F%25E5%2589%2587.png" /></a></div><br />
以上です。お疲れ様でした。<br />
これでナレーターの起動が許可されなくなりました。<br />
ショートカットを間違えて押してしまっても、Windowsはうんともすんともいいませんよ。<br />
<br />
<br />
<blockquote>Windows 8 でナレーターが起動しないようにしたい<br />
<a href="http://pasofaq.jp/windows/admintools/win8nonarrator.htm">http://pasofaq.jp/windows/admintools/win8nonarrator.htm</a></blockquote>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-37389184387054054292015-09-10T16:21:00.001+09:002016-04-17T07:42:21.824+09:00iPad Proのサイズ感についてまとめるAppleイベント Hey Siri, give us a hint. <a href="http://www.apple.com/jp/">Apple公式</a><br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWmKzknj-vt_0R6nxehj6w53csoO1iaZCKFEQBoEX8VuYEzrfbzDOH74ilALdUnh1Xd29wBxSjUrrTJOOlojXXTMel7atAufHMK2h7iYtwnjtAveUTqUhp1CtJGRfKuAALwYMrMoRu5DE/s540/hey%252Csiri.png" /></div><br />
昨晩のイベント(現地10時)でiPad proが発表されました。<br />
大きめのiPadです。何がproなのかは謎ですが。<br />
発表内容を、ざっとさらいます。<br />
<h4>発表内容</h4><h5>iPhone 6sとiPhone 6s Plus 発表</h5>CPUなどのスペックとカメラのアップデート。<br />
新色、ピンクが登場。<br />
タッチよりさらに押し込み感知する「3D Touch」搭載。<br />
<br />
<h5>iPad Pro 発表</h5>新しい大きめのiPad。スピーカーがすごい。キーボード兼用カバーの「Smart Keybord」、「Apple Pencil」と組み合わせられる。<br />
<br />
<h5>iPad mini4</h5>薄くなって、パワーアップ。<br />
<br />
<h5>Apple Watch</h5>新デザインと新色が登場。<br />
<br />
<h5>Apple TV</h5>機能強化。Siriやアプリに対応。リモコンのデザインも新しくなった。<br />
<blockquote>20秒でわかるApple新発表のまとめ<br />
<a href="http://www.lifehacker.jp/2015/09/150910_20sec_apple.html?utm_content=buffer80257&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer">http://www.lifehacker.jp/2015/09/150910_20sec_apple.html?utm_content=buffer80257&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer</a><br />
</blockquote><div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5YCMkGibsydShoOP0mg-ZTik14nDdsQggx2EpH4qLJO_veyf3iy-TFT7fqIlg8F9OyDDsaHdc8w5N6FJcnHNqElkGtHy4elJaatVQWh2U9n5cu6iWIfdXtXxAQ3QHgNC3Bfvqja4ioGA/s540/iphone6s.png" /></div><br />
<h4>ほぼ前評判通りの発表</h4>iPhone 6sの登場が期待されていて、新色+3D Touch搭載というほぼ予想通り、前評判通りの発表。<br />
メインはiPad Proですね。<br />
またしても新しい解像度のサイズが出現したことで、アプリ開発者は大変ですね。解像度に依存せずシームレスに表現できるアプリがいいのでしょうけれど、やっぱりデバイスごとに使いやすくデザインされているもののほうが勝るのでしょう。iPad miniとiPad Proは用途が異なるように思うので、異なる用途を想定したUIであるほうが好ましいと思われるので。<br />
<br />
<h4>iPad Proのサイズ感をまとめる</h4>新しく発表されたiPad Proのサイズ感をまとめてみます。<br />
iPad Proの大きさは、幅220.6mm×高さ305.7mm×厚さ6.9mmです。(→<a href="http://www.apple.com/jp/ipad/compare/">公式</a>より)<br />
<br />
この大きさは、A4よりも少し大きく、MacBook Pro13インチ(Retinaディスプレイモデル)よりも若干小さいサイズです。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhustVSzmmy-60OJFkLUedqxSrCZxv9tSZb_-3ZBEyttaguu94fA_YYtA2QsrUBnkjzMn0H-MVZC0QFxv4MHpHQKPUor4iGNRk8oAM-M1V7aGntJxTOigdSwTyiS0oEVHSkfuMqwdgRPsY/s1600/ipadpro_size02.png" /></div><br />
また、iPad mini4を二つ並べたよりも大きい。文庫本を4つ並べたよりも大きいようです(文庫本がA6なので当然ですが)。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1jkD-w25vSkrFlxNBTftN66JZITO8f5F8uevIQrEQ3qPiQ-RCd7TuW-ofzoboXIbQH1Olbwn6mLMwB2eZmWdXxGkH-VnKXVOunGFCzJ8k-5IFhE87qcVZHEvBwBfSujvaUsy-FdMJFRw/s1600/ipadpro_size03.png" /></div><br />
iPad Air2がB5よりも少し小さめのサイズです。<br />
厚さ6.9mmというので、2枚重ねてもMacBook Pro13より薄いのだからすごい。持った感じはどんな感じなんだろうか。MacBook Pro13のディスプレイ部分だけを手に取ってる感じだろうか。<br />
<br />
現行のiPadとiPhone 6sを並べたサイズ感はこのようになります。<br />
iPad Pro、iPad Air 2、iPad mini4、iPhone 6s Plus、iPhone 6s。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioqU-GuFbWxJtyx09r8p_D2DNrAN7nxv-kHNjU7kQzb8KMOtmmBAJ5GSaMpjJeK1EHNDre_iYh-VhiiOovutvGMDSdxlMJfk9gI-HerzQW9r7XTeG31o57anChjLi7ZtLXdFk_1YyWHes/s1600/ipadpro_size01.png" /></div><br />
<h4>iPad Proとは?</h4>さて、今後の展開についての妄想です。<br />
iPadは3つのサイズ展開をすることになります。ご存じiPad Pro(A4)とiPad Air(B5)とiPad mini(A5)ですね。<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuvupVCmiIRIAxNZwhvafuVLHWENso8cNs1jPbltQB4kQZmomt4EnvOU23pFJ6kDhfxaETkk0g45puESCXpGtZapdT3YQa1Mbq5qlK6N0PFBM6-Vd5aPtejK6wu17k4Z7U5zHhgrtcMos/s540/ipadpro_compare.png" /></div><br />
もちろん売れっ子なのはiPad Air2だと思われる。iPad mini4はおまけみたいなポジションでしょう。iPhone6を持っている人は、わざわざiPad miniを使う意味があんまりないからです(使っている人はいるかもしれないけれど)。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6DNTErKYnRSaQ6bITZ_Ha6xsWaOMBsXkVCZrsXO0gm8A8APSgVGDhrCy-BblGC2tyr0x8jSCbGC8BmC7DtFi9kYsYNHNM67RRAb-QX3ODPiPm1anP9VG8cuWZMQ33T5UcreJC1qbciEA/s540/ipadpro.png" /></div>しかし、今回なんといってもProである。<br />
何がProなのかというと、やっぱり機能てんこ盛りにするフラッグシップモデルとしてのProなのではないかと思う。つまり新しい技術はiPad Proから始まって、iPad AirとiPad miniに卸していくような構図を予想すればいいのではないでしょうか。<br />
そうではないと、Proと銘打つ理由がないではないですか。<br />
<br />
「3D Touch」なる技術もiPadにも搭載されることになるのだろうけれど、iPad Proはさらに先んじてパワーアップしていくのではないかとそういう感じで期待したい。<br />
個人的に妄想しているのを吐き出しておきます。1週間くらい充電しなくてもいい長時間バッテリーとか、ディスプレイのリフレッシュレートが倍くらいになって、ビデオカメラも同様にパワーアップしたらとてつもなく(Retinaディスプレイ並のインパクト)すごいなあ、とまあ、このくらいで。<br />
<br />
ただ大きいだけのProとか認めませんよ!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-35812518706850731542015-08-11T22:54:00.001+09:002015-08-12T20:39:13.119+09:00MeCabにWikipediaの単語を追加するニュースコンテンツに含まれる用語・単語を抽出するような、いわゆるキーワード抽出がやりたいなあと思ったので、その過程で試せるMeCabとWikipediaの単語登録をやってみました。<br />
達成目標はあんまり高くなくていい。それっぽいことができたらいいかなくらいで、さくっといろいろ動かしてみるというところを目標にしています。<br />
参考にしているサイトや記事が2011年なので、なんとも今更って技術なのかもしれません。MeCabもWikipediaもすごいってことですね。<br />
Windows向け、使用言語はC#です。<br />
<br />
ざっと紹介する内容は下の通りです。<br />
<ol><li>MeCabをインストールする</li>
<li>Wikipediaのページタイトルを辞書登録する(ダウンロード→CSVに変換→辞書ファイルに変換→辞書ファイルを登録する→まずは動かしてみる)</li>
<li>Wikipediaから除外したほうがいい単語を考える</li>
</ol><br />
<h4>MeCabを導入してみる</h4>MeCabをインストールします。<br />
<br />
<blockquote>MeCab - Wikipedia<br />
<a href="https://ja.wikipedia.org/wiki/MeCab">https://ja.wikipedia.org/wiki/MeCab</a><br />
</blockquote><br />
<h5>MeCabとは</h5>文章を解析して、名詞や動詞、形容詞などの文節に区切ってくれるソフトです。<br />
形態素解析と呼ばれます。<br />
<br />
こういう感じです。<br />
<blockquote>すもももももももものうち<br />
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ<br />
も 助詞,係助詞,*,*,*,*,も,モ,モ<br />
もも 名詞,一般,*,*,*,*,もも,モモ,モモ<br />
も 助詞,係助詞,*,*,*,*,も,モ,モ<br />
もも 名詞,一般,*,*,*,*,もも,モモ,モモ<br />
の 助詞,連体化,*,*,*,*,の,ノ,ノ<br />
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ<br />
EOS<br />
</blockquote><br />
<h5>MeCabのWindows版をインストールします</h5><br />
以下のサイトからWindows版のexeファイル「mecab-0.98.exe」をダウンロードする。<br />
<a href="http://sourceforge.net/projects/mecab/files/">http://sourceforge.net/projects/mecab/files/</a><br />
<br />
「mecab-win32」→「0.98」→「mecab-0.98.exe」をダウンロードします。<br />
インストール時に聞いてくる文字コードは、UTF-8を選択しました。<br />
<br />
<blockquote>MeCabのWindows版をインストールしてみる : 走りながら考えるエンジニア<br />
<a href="http://handsrecs2nd.seesaa.net/article/140090025.html">http://handsrecs2nd.seesaa.net/article/140090025.html</a></blockquote><br />
<h5>MeCabを使ってみる</h5><br />
とりあえず実行してみる。<br />
MeCabを実行するためにバッチファイルを作ります。<br />
<br />
"C:\Program Files (x86)\MeCab\bin\mecab.exe" in.txt -o out.txt<br />
<br />
in.txtは、解析した文章を入れて、テキストファイルにしたものです。<br />
バッチファイルで上を実行すると解析結果がout.txtに出力されます。<br />
<br />
入力テキストはニュースから拝借しました。他意はありません。<br />
<br />
<blockquote>人工知能 創造的な仕事奪う?(2015年8月9日(日)掲載) - Yahoo!ニュース<br />
<a href="http://news.yahoo.co.jp/pickup/6170034">http://news.yahoo.co.jp/pickup/6170034</a></blockquote><br />
実行結果はこのようになります。<br />
<dl><dt>入力テキスト</dt>
<dd>人工知能研究に、新たにディープラーニングというアイデアが出現。『ターミネーター』や『攻殻機動隊』など、空想の世界が現実味を帯びてきた。</dd>
<dt>出力結果</dt>
<dd><pre>人工 名詞,一般,*,*,*,*,人工,ジンコウ,ジンコー
知能 名詞,一般,*,*,*,*,知能,チノウ,チノー
研究 名詞,サ変接続,*,*,*,*,研究,ケンキュウ,ケンキュー
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
、 記号,読点,*,*,*,*,、,、,、
新た 名詞,形容動詞語幹,*,*,*,*,新た,アラタ,アラタ
に 助詞,副詞化,*,*,*,*,に,ニ,ニ
ディープラーニング 名詞,固有名詞,組織,*,*,*,*
という 助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
アイデア 名詞,一般,*,*,*,*,アイデア,アイデア,アイデア
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
出現 名詞,サ変接続,*,*,*,*,出現,シュツゲン,シュツゲン
。 記号,句点,*,*,*,*,。,。,。
『 記号,括弧開,*,*,*,*,『,『,『
ターミネーター 名詞,固有名詞,一般,*,*,*,ターミネーター,ターミネーター,ターミネーター
』 記号,括弧閉,*,*,*,*,』,』,』
や 助詞,並立助詞,*,*,*,*,や,ヤ,ヤ
『 記号,括弧開,*,*,*,*,『,『,『
攻 名詞,固有名詞,人名,名,*,*,攻,オサム,オサム
殻 名詞,一般,*,*,*,*,殻,カラ,カラ
機動 名詞,一般,*,*,*,*,機動,キドウ,キドー
隊 名詞,接尾,一般,*,*,*,隊,タイ,タイ
』 記号,括弧閉,*,*,*,*,』,』,』
など 助詞,副助詞,*,*,*,*,など,ナド,ナド
、 記号,読点,*,*,*,*,、,、,、
空想 名詞,サ変接続,*,*,*,*,空想,クウソウ,クーソー
の 助詞,連体化,*,*,*,*,の,ノ,ノ
世界 名詞,一般,*,*,*,*,世界,セカイ,セカイ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
現実味 名詞,一般,*,*,*,*,現実味,ゲンジツミ,ゲンジツミ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
帯び 動詞,自立,*,*,一段,連用形,帯びる,オビ,オビ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
き 動詞,非自立,*,*,カ変・クル,連用形,くる,キ,キ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
EOS</pre></dl></dd><br />
<br />
一応さくっと動きました。<br />
これでも画期的で楽しいですが、分断され過ぎて残念。<br />
人工知能、攻殻機動隊が残念ですね。<br />
辞書として単語を追加してあげることで、この辺は回避できます。<br />
しかし、単語一個一個を手作業で辞書を作るのは大変なので、Wikipediaの単語リストを拝借して登録してみます。<br />
<br />
<h4>Wikipediaのタイトルリストから辞書を作る</h4><br />
<h5>Wikipediaのタイトルリストのダウンロード</h5>Wikipediaから見出しリストをダウンロードします。<br />
こちらからダウンロードします。<br />
<a href="http://download.wikimedia.org/jawiki/latest/jawiki-latest-all-titles-in-ns0.gz">jawiki-latest-all-titles-in-ns0.gz</a><br />
<a href="http://download.wikimedia.org/jawiki/latest/">http://download.wikimedia.org/jawiki/latest/</a><br />
<br />
<blockquote>wikipediaのタイトルリスト(jawiki-latest-all-titles-in-ns0.gz)をこちら(http://download.wikimedia.org/jawiki/latest/)からダウンロード。適当なディレクトリ(home/foo/bar)に解凍します。<br />
<br />
fukushimuのメモ帳 [mecab] mecab辞書にwikipediaのタイトルリストを追加 [wikipedia][はてなキーワード]<br />
<a href="http://fukushimu.blog.shinobi.jp/mecab/-mecab-%20mecab%E8%BE%9E%E6%9B%B8%E3%81%ABwikipedia%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%BF%BD%E5%8A%A0%20-wikipedia--%E3%81%AF%E3%81%A6%E3%81%AA%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89-">http://fukushimu.blog.shinobi.jp/mecab/-mecab-%20mecab%E8%BE%9E%E6%9B%B8%E3%81%ABwikipedia%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E8%BF%BD%E5%8A%A0%20-wikipedia--%E3%81%AF%E3%81%A6%E3%81%AA%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89-</a></blockquote><br />
なお、Windowsでgzファイルを解凍するには、それなりの解凍ソフトが必要です。ご注意ください。<br />
自分は、Lhaplusで解凍しました。<br />
<blockquote>HoeHoe.com - Lhaplus<br />
<a href="http://www7a.biglobe.ne.jp/~schezo/">http://www7a.biglobe.ne.jp/~schezo/</a></blockquote><br />
<h5>Wikipedia見出しリストからCSVを作成</h5>見出しリストは、155万行くらいの単語リストです。<br />
こんなんです。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoegktwwBw1YlPr5x1uW1y6y57YLVT4PTOm3eGHIYuATpDwl-ybcURRPwN3LBvgbUIi066k0hyPv-fut_kiuiGdvVrZ4iaWV7SoPQB51zPOlLk942ARbMv4X8bZT4yAu4Ud4WvLvZbHsM/s1600/wikipedia_title_list.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoegktwwBw1YlPr5x1uW1y6y57YLVT4PTOm3eGHIYuATpDwl-ybcURRPwN3LBvgbUIi066k0hyPv-fut_kiuiGdvVrZ4iaWV7SoPQB51zPOlLk942ARbMv4X8bZT4yAu4Ud4WvLvZbHsM/s1600/wikipedia_title_list.png" /></a></div><br />
辞書ファイルに変換する前に、ちょっとだけ内容のケアをしてあげます。<br />
CSVから辞書ファイル(.dic)を作成するのに、カンマが単語内に含まれているものは、別の文字に置き換えるなどの対応が必要なのです。<br />
また、後述しますが、キーワードとしてあってもどうしようもない単語も含まれていますので、これを除外するにも、そのまま使うのではなくて、なんらかの置き換えが必要になってくるでしょう。<br />
<br />
コンソールアプリとして、さくっとC#で書きました。<br />
<!-- code formatted by http://manoli.net/csharpformat/ --><br />
<pre class="csharpcode"><span class="kwrd">using</span> System.IO;
<span class="kwrd">using</span> System.Text.RegularExpressions;
<span class="kwrd">static</span> <span class="kwrd">void</span> Main(<span class="kwrd">string</span>[] args) {
<span class="rem">// 引数の1個目をWikipediaのオリジナルデータとする</span>
<span class="kwrd">if</span>(args.Length == 0 || !File.Exists(args[0])){
<span class="kwrd">return</span>; <span class="rem">// 指定なしかファイルなし</span>
}
<span class="kwrd">string</span> wikipedia = args[0];
<span class="kwrd">string</span> csv = <span class="str">"wikipedia.csv"</span>;
StreamReader reader = <span class="kwrd">new</span> StreamReader(wikipedia, Encoding.UTF8);
StreamWriter writer = <span class="kwrd">new</span> StreamWriter(csv, <span class="kwrd">false</span>, Encoding.UTF8);
<span class="kwrd">try</span>{
while (!reader.EndOfStream) {
<span class="kwrd">string</span> line = reader.ReadLine();
<span class="kwrd">int</span> length = line.Length;
<span class="kwrd">double</span> max = Math.Max(-36000, -400 * Math.Pow(length, 1.5));
<span class="kwrd">if</span> (length > 1){
line = line.Replace(<span class="str">','</span>, <span class="str">'_'</span>); <span class="rem">// カンマを置換</span>
writer.WriteLine(<span class="str">"{0},0,0,{1},名詞,固有名詞,*,*,*,*,{0},*,*,wikipedia_word,"</span>, line, max);
}
}
}<span class="kwrd">catch</span>(Exception ex){
Console.WriteLine(ex.Message);
}<span class="kwrd">finally</span>{
reader.Close();
writer.Close();
}
Console.WriteLine(<span class="str">"おわり!"</span>);
Console.ReadKey();
}</pre><br />
カンマ区切りなので、カンマがあるワードだけ置換しておきます。<br />
<br />
はい、これで、実行。<br />
100万行以上あるので、計測用にタイマー仕込もうかなとも思ったけれど、動かしてみたら10秒くらいで終わりました。このままでいいことにします。<br />
ただし、出来上がったwikipedia.csvファイルは170MBくらいある。なかなかでかいですね。<br />
<br />
<h5>CSV(wikipedia.csv)を辞書(.dic)に変換</h5>辞書ファイルをつくるには、MeCabをインストールしたところにある、mecab-dict-index.exeを使うらしい。<br />
<br />
"C:\Program Files (x86)\MeCab\bin\mecab-dict-index.exe" -d "C:\Program Files (x86)\MeCab\dic\ipadic" -u wikipedia.dic -f utf8 -t utf8 wikipedia.csv<br />
<br />
上を実行。<br />
できた。<br />
wikipedia.dicファイル、223MBでした。(サイズは目安です)<br />
<br />
<h5>作った辞書をMeCabに登録する</h5>eCabインストール先のetcフォルダにあるmecabrcファイルを書き換えます。<br />
<br />
自分のところでは、C:\Program Files (x86)\MeCab\etc\mecabrcでした。<br />
mecabrcは何の拡張子とかついてませんが、メモ帳かなんかで編集すればいいかと。<br />
<br />
userdic = "(dicのあるディレクトリ)\wikipedia.dic"<br />
を追加して上書きする。<br />
<br />
<h5>MeCabを走らせてみる(検証その1)</h5>さあ、実行してみましょう!<br />
ぶっこんでみます。<br />
使う文章は、先ほどと同じテキストです。<br />
<br />
<dl><dt>入力テキスト</dt>
<dd>人工知能研究に、新たにディープラーニングというアイデアが出現。『ターミネーター』や『攻殻機動隊』など、空想の世界が現実味を帯びてきた。</dd>
<dt>Wikipediaを辞書に登録した出力結果</dt>
<dd><pre>人工知能 名詞,固有名詞,*,*,*,*,人工知能,*,*,wikipedia_word,
研究 名詞,サ変接続,*,*,*,*,研究,ケンキュウ,ケンキュー
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
、 記号,読点,*,*,*,*,、,、,、
新 名詞,一般,*,*,*,*,新,シン,シン
たに 名詞,固有名詞,*,*,*,*,たに,*,*,wikipedia_word,
ディープラーニング 名詞,固有名詞,*,*,*,*,ディープラーニング,*,*,wikipedia_word,
とい 名詞,固有名詞,*,*,*,*,とい,*,*,wikipedia_word,
う 感動詞,*,*,*,*,*,う,ウ,ウ
アイデア 名詞,固有名詞,*,*,*,*,アイデア,*,*,wikipedia_word,
が 接続詞,*,*,*,*,*,が,ガ,ガ
出現 名詞,サ変接続,*,*,*,*,出現,シュツゲン,シュツゲン
。 記号,句点,*,*,*,*,。,。,。
『 記号,括弧開,*,*,*,*,『,『,『
ターミネーター 名詞,固有名詞,*,*,*,*,ターミネーター,*,*,wikipedia_word,
』 記号,括弧閉,*,*,*,*,』,』,』
や 助詞,並立助詞,*,*,*,*,や,ヤ,ヤ
『 記号,括弧開,*,*,*,*,『,『,『
攻殻機動隊 名詞,固有名詞,*,*,*,*,攻殻機動隊,*,*,wikipedia_word,
』 記号,括弧閉,*,*,*,*,』,』,』
など 助詞,副助詞,*,*,*,*,など,ナド,ナド
、 記号,読点,*,*,*,*,、,、,、
空想 名詞,固有名詞,*,*,*,*,空想,*,*,wikipedia_word,
の 助詞,連体化,*,*,*,*,の,ノ,ノ
世界 名詞,固有名詞,*,*,*,*,世界,*,*,wikipedia_word,
が 接続詞,*,*,*,*,*,が,ガ,ガ
現実 名詞,固有名詞,*,*,*,*,現実,*,*,wikipedia_word,
味 名詞,一般,*,*,*,*,味,アジ,アジ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
帯び 動詞,自立,*,*,一段,連用形,帯びる,オビ,オビ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
き 動詞,非自立,*,*,カ変・クル,連用形,くる,キ,キ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
EOS</pre></dd> </dl><br />
いい感じ。<br />
攻殻機動隊はいけました。だけど、wikipedia_wordが邪魔してますね。<br />
<br />
<blockquote>たに 名詞,固有名詞,*,*,*,*,たに,*,*,wikipedia_word,<br />
とい 名詞,固有名詞,*,*,*,*,とい,*,*,wikipedia_word,<br />
</blockquote>こういうのが引っかかってしまうのとややこしい。<br />
固有名詞じゃないのに固有名詞扱いされている語句がヒットしてますね。<br />
こういうのは、あらかじめ除外しておくすることにしましょう。<br />
<br />
<h4>Wikipediaの見出しリストの除外条件を考える</h4><br />
省ける語句がものすごいありそうなので、除外条件を考えます。<br />
<br />
どっちかというと、わりときつめに条件設定しておくほうがいい気がします。<br />
Wikipediaの追加単語に求めているのは、長い単語を優先的にくっつけてほしいというものだからですね。<br />
短すぎる単語とか、マイナーすぎるのはわりとどうでもいい。<br />
条件によって省かれてしまうものは、あんまり優先的な用語ではなかったと諦めてしまってもいい。<br />
<br />
<dl><dt>記号から始まっている</dt>
<dd>記号から始まる単語は除外。 ただし、拡張子の登録はあってもいいので.だけ許す。 [!"#$%&'()\*\+\-\.,\/:;<=>?@\[\\\]^_`{|}~] </dd>
<dt>数字は除外</dt>
<dd>ただの数字が単語としてあるので除外。 ただし0から始まるものだけ残す。007とかあるから。 </dd>
<dt>_アンダーバー+(曖昧さ回避)は除外</dt>
<dl>曖昧さ回避のためのページ用のタイトルです。 いらないので除外。 </dl><dt>_アンダーバー+([カテゴリ])は除外</dt><br />
<br />
<br />
<dd>括弧内でカテゴリが指定されているようです。<br />
これで単語を登録していても無駄なので除外。<br />
</dd><br />
<dt>_ アンダーバー入りは除外</dt><br />
<br />
<br />
<dd>Wikipediaのタイトルルールなのでしょう。アンダーバーでサブタイトルを指定していうようです。<br />
このページタイトルで単語がヒットすることは絶対にないと言えるので、アンダーバー入りは除外としてしまいます。<br />
(曖昧さ回避)、([カテゴリ])も含めて除外対象にしてしまいます。<br />
</dd><br />
<dt>数字+年、数字+年代は除外しない</dt><br />
<br />
<br />
<dd>1030年とかが固有名詞として登録されるのはどうかと思うけれど、キーワードとして考えるなら一単語として抽出できるほうが有用な気がするので残す。</dd><br />
<dt>数字+年+出来事は除外</dt><br />
<br />
<br />
<dd>「1935年全豪テニス選手権」というタイトルがあるようです。<br />
こういうのは除外することにします。単語として絶対ヒットしないから。</dd><br />
<dt>数字+月+数字+日(日付)は除外しない</dt><br />
<br />
<br />
<dd>固有名詞としてはもちろん不適切。違和感ありますが、西暦と同じで、キーワードとして考えるなら抽出できるほうがいいので残す。</dd><br />
<dt>ひらがな2文字を省く</dt><br />
<br />
<br />
<dd>ひらがな2文字で、Wikipediaにしかない言葉というのをあんまり期待しなくてよさそう。<br />
もともとある辞書で網羅できているものとする。<br />
上の出力結果でも出ているけれど、「たに」「とい」を辞書から除外する。<br />
</dd><br />
</dl>条件のとこだけだと、ソースはこんな感じですかね。<br />
<!-- code formatted by http://manoli.net/csharpformat/ --><br />
<pre class="csharpcode"><span class="kwrd">if</span> (length <= 1){
} <span class="kwrd">else</span> <span class="kwrd">if</span> (line.IndexOf(<span class="str">"_"</span>) >= 0) {
<span class="rem">// アンダーバー入りは除外</span>
} <span class="kwrd">else</span> <span class="kwrd">if</span> (Regex.IsMatch(line, <span class="str">"^[1-9][0-9]*$"</span>)) {
<span class="rem">// 数字</span>
<span class="rem">// 0から始まる数字は残す</span>
} <span class="kwrd">else</span> <span class="kwrd">if</span> (Regex.IsMatch(line, <span class="str">"^[0-9]+[年][代]?$"</span>)) {
<span class="rem">// 数字+年</span>
writer.WriteLine(<span class="str">"{0},0,0,{1},名詞,固有名詞,*,*,*,*,{0},*,*,wikipedia_year,"</span>, line, max);
} <span class="kwrd">else</span> <span class="kwrd">if</span> (Regex.IsMatch(line, <span class="str">"^[0-9]+[年][^代]+$"</span>)) {
<span class="rem">// 数字+年+文字</span>
} <span class="kwrd">else</span> <span class="kwrd">if</span> (Regex.IsMatch(line, <span class="str">"^[0-9]+[月][0-9]+[日]$"</span>)) {
writer.WriteLine(<span class="str">"{0},0,0,{1},名詞,固有名詞,*,*,*,*,{0},*,*,wikipedia_date,"</span>, line, max);
<span class="rem">// 日付</span>
} <span class="kwrd">else</span> <span class="kwrd">if</span> (Regex.IsMatch(line, <span class="str">"^[!\"#$%&'()\\*\\+\\-\\,\\/:;<=>?@\\[\\\\\\]^_`{|}~]"</span>)) {
<span class="rem">// 記号から始まっている(.「ドット」以外)</span>
} <span class="kwrd">else</span> <span class="kwrd">if</span> (Regex.IsMatch(line, <span class="str">"^[ぁ-ん]{2}$"</span>)) {
<span class="rem">// ひらがな2文字</span>
} <span class="kwrd">else</span> {
writer.WriteLine(<span class="str">"{0},0,0,{1},名詞,固有名詞,*,*,*,*,{0},*,*,wikipedia_word,"</span>, line, max);
}
</pre><br />
除外条件は、年や日付を単語に入れるかどうかなど好みで決めればいいかと。条件はあくまでご参考に。<br />
<br />
<h5>コストについて</h5><br />
double max = Math.Max(-36000, -400 * Math.Pow(length, 1.5));<br />
<br />
この謎の式は参照元のサイトにならって、そのまま使っています。どうやらコストと呼ばれるものらしいです。<br />
値が小さいほど、出現率が高い。<br />
つまりこの式は、長い単語ほど重宝しようという意味のようです。なんか解らないでもない。<br />
しかし、数式自体はよく解らないのでそのまま触らないことにします。<br />
<blockquote><a href="http://mecab.googlecode.com/svn/trunk/mecab/doc/dic.html">http://mecab.googlecode.com/svn/trunk/mecab/doc/dic.html</a><br />
コストは,その単語がどれだけ出現しやすいかを示しています. 小さいほど, 出現しやすいという意味になります. 似たような単語と 同じスコアを割り振り, その単位で切り出せない場合は, 徐々に小さくしていけばいいと思います。</blockquote><br />
<br />
はい、実行。<br />
まあまあ。<br />
20秒くらい掛かりました。<br />
できたファイルは130MBくらいあるなあ。気にしてても仕方ないからいいや。<br />
同じように、これで辞書ファイルをつくります。<br />
<br />
<h5>MeCabを走らせてみる(検証その2)</h5>そして、さっきのテキストもう一回実行してみる。<br />
<br />
<dl><dt>入力テキスト</dt>
<dd>人工知能研究に、新たにディープラーニングというアイデアが出現。『ターミネーター』や『攻殻機動隊』など、空想の世界が現実味を帯びてきた。</dd>
<dt>Wikipedia辞書を使った出力結果</dt>
<dd><pre>人工知能 名詞,固有名詞,*,*,*,*,人工知能,*,*,wikipedia_word,
研究 名詞,サ変接続,*,*,*,*,研究,ケンキュウ,ケンキュー
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
、 記号,読点,*,*,*,*,、,、,、
新た 名詞,形容動詞語幹,*,*,*,*,新た,アラタ,アラタ
に 助詞,副詞化,*,*,*,*,に,ニ,ニ
ディープラーニング 名詞,固有名詞,*,*,*,*,ディープラーニング,*,*,wikipedia_word,
という 助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
アイデア 名詞,固有名詞,*,*,*,*,アイデア,*,*,wikipedia_word,
が 接続詞,*,*,*,*,*,が,ガ,ガ
出現 名詞,サ変接続,*,*,*,*,出現,シュツゲン,シュツゲン
。 記号,句点,*,*,*,*,。,。,。
『 記号,括弧開,*,*,*,*,『,『,『
ターミネーター 名詞,固有名詞,*,*,*,*,ターミネーター,*,*,wikipedia_word,
』 記号,括弧閉,*,*,*,*,』,』,』
や 助詞,並立助詞,*,*,*,*,や,ヤ,ヤ
『 記号,括弧開,*,*,*,*,『,『,『
攻殻機動隊 名詞,固有名詞,*,*,*,*,攻殻機動隊,*,*,wikipedia_word,
』 記号,括弧閉,*,*,*,*,』,』,』
など 助詞,副助詞,*,*,*,*,など,ナド,ナド
、 記号,読点,*,*,*,*,、,、,、
空想 名詞,固有名詞,*,*,*,*,空想,*,*,wikipedia_word,
の 助詞,連体化,*,*,*,*,の,ノ,ノ
世界 名詞,固有名詞,*,*,*,*,世界,*,*,wikipedia_word,
が 接続詞,*,*,*,*,*,が,ガ,ガ
現実 名詞,固有名詞,*,*,*,*,現実,*,*,wikipedia_word,
味 名詞,一般,*,*,*,*,味,アジ,アジ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
帯び 動詞,自立,*,*,一段,連用形,帯びる,オビ,オビ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
き 動詞,非自立,*,*,カ変・クル,連用形,くる,キ,キ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
EOS</pre></dd> </dl>ほぼほぼいい感じです!<br />
いやー、おもしろーい!<br />
<br />
単語の除外条件やら、キーワード抽出するためにもっと都合のいいやりかたがあると思うので、さらにここからの調整は必要かもしれません。<br />
しかし、まずはさくっと動かすことができたのでよしとします。<br />
<br />
以上です。ではでは。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-27974722958010014322015-07-17T19:40:00.002+09:002015-07-19T20:49:20.282+09:00待ってましたiPod touch 6th!おかえりなさい。ようこそ、地球へ。<br />
待ちに待ったiPod touch 6世代目です。<br />
やっぱりiPodは不滅でした。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4RJ5NN1rcQR0FvcI9HyNt8iXTbld0mkQERxmILvc4JWUoiyxj78ygR4JdcQawJDGO1mr0eehZDXkGRBlFJzmiKX-0HBya_MJ3yVQ2dUOpz7zvQf-OfPnJlRMmHEKv8F7gvkf9IsBTmls/s1600/ipodtouch6th.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4RJ5NN1rcQR0FvcI9HyNt8iXTbld0mkQERxmILvc4JWUoiyxj78ygR4JdcQawJDGO1mr0eehZDXkGRBlFJzmiKX-0HBya_MJ3yVQ2dUOpz7zvQf-OfPnJlRMmHEKv8F7gvkf9IsBTmls/s400/ipodtouch6th.png" /></a></div><a href="http://www.apple.com/jp/shop/ipod">http://www.apple.com/jp/shop/ipod</a><br />
<br />
<h4>iPod touch 6thこっそり登場</h4>3年間放置されっぱなしのiPod touch/iPod nano/iPod shuffleがこのたびアップデートされました。<br />
<br />
買い切りのデバイスとして楽しい。やっぱりiPod touchは有用でしょう。<br />
ドローンに乗せてもいいし。<br />
汗まみれの手で触ってもいい。ジョギング用にiPhoneを持ってくのは大げさだったからちょうどいい。<br />
すばらしすぎる。<br />
若干無茶な使い方をしてもいいわけです。<br />
2年縛りのiPhoneにその大役はきつい。<br />
<br />
<h4>何が変わったのか</h4><ul><li>内部スペックが大幅強化! いまどきのゲームもサクサクできるはず!</li>
<li>カメラがよくなった! iPhone6のように、カメラが背面からちょっと出っ張ってるように見えるけど…。と思ったけれど、以前から出っ張ってましたね。机に置くと、出っ張り分がじゃまでがたがたします。</li>
<li>サイズは、5thとまったく同じ!</li>
<li>カラーバリエーションはいまどきのシルバー、ゴールド、スペースグレイに、ナゾのピンクとブルーの5色!(+おなじみのレッド)<br />
以前のは、カラーバリエーションで並べて見てるとキレイなのだけど、1色選べと言われると難しかった。今回のカラーバリエーションは1色1色にパワーを感じる。</li>
<li>128GBが増えた!</li>
<li><strong>iPod nano/iPod Shuffleはカラーバリエーション以外変化なし! 泣ける!</strong></li>
</ul><br />
<h4>誰向けか?</h4>昔のiPod touch持ちが買い換えるのかな。<br />
iWatchがリッチマン向けとすれば、iPod touchはiPhoneでは贅沢だと思う人向けですかね。<br />
そこそこの楽しみと、知的好奇心の探究、節約術を駆使してiPhone使いに追いてやろうとする人向けでしょうか。iPhoneほしいけれど電話はいらんという層はもういないだろう、さすがに…。iPod touchのアップデート待ちの人ってどのくらいいたのでしょうね。<br />
Android持ちが、iPhoneに手を出すよりもとiPod touch持ちになるとかそういうのはどうでしょう。<br />
<br />
iPhoneを含むスマホは、本体代と基本料金の2年縛りなのだから、15万円くらいのどでかい買い物なのです。(気になる人は、ちゃんと計算してみてください)<br />
家で使えればいい人には、3万円くらいでiPhoneと同等の楽しみが手に入るなら、すばらしいことだと思う。<br />
<br />
<h4>これが最後のアップデートとかありえる?</h4>さて、ここまで、テンション高らかに書いてきたけれど、AppleサイトのメニューにはiPodの文字はもはやなくて、しかもこれだけ引っ張っておいてアップデートはこっそり扱い…。<br />
iPod nanoもカラーバリエーションの変更だけで、そのほかの変更はない。iPod nanoの次のアップデートはいつだよとか考えると少し切なくなってきますね。消えるのか? 消えちゃうのか?<br />
Appleさんからしたら、iPhoneがこれだけ好調ななか節約対象になるデバイスの意味って確かにあまりない。<br />
Apple Musicにかこつけて、かろうじてiPod touchだけでもアップデートしておこうという感じが見えてしまうなあ。次のアップデートが来年とかそういう感じはまるでしない。次は何年後?<br />
これが最後のアップデートとかありえるのか…?<br />
<br />
しかし、何よりコンパクト。これはほしい。<br />
iPhoneとiPod touchの二台持ちになってやるぞー。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-15047766152311072132015-07-08T13:41:00.000+09:002015-07-08T13:51:27.530+09:00Yahoo!からの迷惑メールの配信を解除するYahoo!メールに大量の宣伝メールが…。<br />
Yahoo!発信の宣伝メールが、Yahoo!アカウントに大量に来る。久しぶりにアカウントのメールボックスを見ると何十件も来てて埋もれている…。<br />
Yahoo!ショッピングは何となくわからないでもないけれど、Yahoo!パートナーとか、Yahoo!トラベルとか知らないよ~。<br />
ざっとまとめてゴミ箱に放り込むという作業があって、当然開封すらしません。本当に何の意味があるのかも解らない。ユーザー目線としては完全に迷惑メールです。アカウントの大元であるYahoo!からじきじきに配信されているという、迷惑メールにも関わらずはっきり堂々と送られてくるという、何とも逃げ場のない、まるで追い込み漁の魚になった気分です。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg696RBfDvoHQ7d9iC21Qf-Zf3s4_ff3p0iN64o9A1UuKxejyoZr2kwli3c8iDWgnejctLeJNzAgdSfHVoCPyC1WqZUk1mPB70YAQ5s5zzM04CQBzb5i26PF_xIr_15riiZ35iAS70KViE/s1600/yahoo_mail.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg696RBfDvoHQ7d9iC21Qf-Zf3s4_ff3p0iN64o9A1UuKxejyoZr2kwli3c8iDWgnejctLeJNzAgdSfHVoCPyC1WqZUk1mPB70YAQ5s5zzM04CQBzb5i26PF_xIr_15riiZ35iAS70KViE/s1600/yahoo_mail.png" /></a></div><br />
で、配信停止できないかなあと重い腰を上げることになる。<br />
迷惑メールのフィルタに登録して、全部削除されるようにして対処している人もいるかもしれません。<br />
そもそも最初から送ってほしくないわけだけど、Yahoo!アカウントとのトレードオフのようです。昔は、楽天でも、そういうメールを大量に送ってくるようなサービスは敬遠されてた気がするけれど、今はあんまり気にする人がいないのでしょうか。送られてくるということは、それなりに効果があったり、毎週楽しみに読んでいる人もいるんでしょうか。その辺りがナゾすぎる。調べようと思うほどの興味もないのですが。<br />
<br />
<h4>おすすめ情報メールの配信の登録・解除</h4>さて、送られてくるメールのイチバン下あたりに、配信の登録・解除というのがあります。<br />
<br />
<blockquote>Yahoo!トラベルおすすめ情報メールは、Yahoo! JAPAN IDにご登録いただいているメールアドレスに配信しています。今後このメールの配信を希望されない方は、お手数ですが最下部にある「配信の登録・解除」のURLから、Yahoo! JAPAN IDでログインして手続きをお願いいたします。</blockquote><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5FC0kne4cx3VicwYU8XB_wkuu088bMYKUMnE0mp2nG3ed_YK-SIdDXr4EStk79MVXmo422InJ6XcQgs5LYd26xvVfd0XjruoY2WM7cC5XFMU_qyq4irs4NldnlF_WIFHqmqISgrrnetY/s1600/yahoo_teishi.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5FC0kne4cx3VicwYU8XB_wkuu088bMYKUMnE0mp2nG3ed_YK-SIdDXr4EStk79MVXmo422InJ6XcQgs5LYd26xvVfd0XjruoY2WM7cC5XFMU_qyq4irs4NldnlF_WIFHqmqISgrrnetY/s400/yahoo_teishi.png" /></a></div><br />
登録解除! これで安心、と思いきや。<br />
これで登録解除しても、後日メールボックスを見ると、改めてがんがん送られてきていることに気付くわけです。どういうこっちゃ。<br />
Yahoo!トラベルだけが配信されなくなっただけで、ほかのYahoo!○○という未知の領域があって、そこからの配信は登録解除されてないというトラップなのでした。こんな詐欺みたいな仕組みでよくやってるなぁと思うけれど、最大手はいまさらユーザーの声も何もないんだろうなと諦めるしかありません。<br />
<br />
各メールごとに解除とか面倒すぎる…。<br />
そこで一括で全部の配信停止したいので、アカウントの設定をウロウロ調べてみるとありました。いやいや、卑屈にならないように。あって当たり前なのです。<br />
メール送られてくるのを百歩譲っても、配信の登録停止から送り出されるページをそこにしといてくれたらいいだけなのです。それが普通のユーザビリティじゃないかなと思うのだけれど、最大手なので諦めましょう。ユーザーの利便性なんて知ったこっちゃないんだ。<br />
<br />
<h4>おすすめ情報メールの配信をまるごと解除する</h4>これらの迷惑メールは、Yahoo!内では、おすすめ情報メールと呼ばれるらしくて、おすすめ情報メールの設定ページに向かうことにしましょう。<br />
おすすめ情報メールの設定にはYahoo!アカウントへのログインが必要です。<br />
<br />
<a href="http://osusume.yahoo.co.jp/index.html?.scrumb=TWk3CW7vIan">おすすめ情報メールの設定</a><br />
<br />
Yahoo!のトップページから、アカウントの登録情報、おすすめ情報メールの設定を辿ることでこのページにいけます。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhmLx-1YgWt4sBh66piCZeC92D_evw3UnZb7QsL_Wafn4Yn6WOZQ7uEpEZbsgPWMgdO0Jjp2vestuQmS1ISLu219Za9SNgDvHt57IQreyJCtlLqoOraWUmk666Ic7yp78WAI0za7n2Y0c/s1600/yahoo_accountinfo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhmLx-1YgWt4sBh66piCZeC92D_evw3UnZb7QsL_Wafn4Yn6WOZQ7uEpEZbsgPWMgdO0Jjp2vestuQmS1ISLu219Za9SNgDvHt57IQreyJCtlLqoOraWUmk666Ic7yp78WAI0za7n2Y0c/s400/yahoo_accountinfo.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwnhk8OjDHzUqA0vuPVlqTJTYcv3kC6jesHrqPFljVGg5sKepMvKB_3eT-2YIecn2OZuOuizms0quz0RJHqAT1-Kph5lnk7QbxP1jXokwHDqfdyIia5D557EtIJrW_M8ovtPEF2skMC5g/s1600/yahoo_infosetting.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwnhk8OjDHzUqA0vuPVlqTJTYcv3kC6jesHrqPFljVGg5sKepMvKB_3eT-2YIecn2OZuOuizms0quz0RJHqAT1-Kph5lnk7QbxP1jXokwHDqfdyIia5D557EtIJrW_M8ovtPEF2skMC5g/s400/yahoo_infosetting.png" /></a></div><br />
はい、でるわでるわ。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmVjyFba-rB9CEcTDoZpT3KxP3q8Ys7djQTRKk3daF9l1NN_i53jehxFMos-r4b7FoWbU5csXwri1kyGTL09Sj-q9Nw8Z2ayl6vqbPDbRhmPvN8n0pAq5agw1Ek40sONdEcQrYCgf0gfE/s1600/yahoo_infomail.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmVjyFba-rB9CEcTDoZpT3KxP3q8Ys7djQTRKk3daF9l1NN_i53jehxFMos-r4b7FoWbU5csXwri1kyGTL09Sj-q9Nw8Z2ayl6vqbPDbRhmPvN8n0pAq5agw1Ek40sONdEcQrYCgf0gfE/s400/yahoo_infomail.png" /></a></div>イチバン下に、「すべての選択を解除」があるので、さくっと解除の設定しておきましょう。<br />
<br />
<ul><li>Yahoo!プレミア</li>
<li>Yahoo! BB</li>
<li>ヤフオク!</li>
<li>Yahoo!不動産</li>
<li>Yahoo!保険</li>
<li>Yahoo!買取</li>
<li>Yahoo!公金支払い</li>
<li>Yahoo!パートナー</li>
<li>Yahoo! toto</li>
<li>Yahoo!カード</li>
<li>Yahoo!お見合い</li>
<li>Yahoo!占い</li>
<li>Yahoo!宅配</li>
<li>Yahoo!ゲーム</li>
<li>出店案内(ヤフオク! Yahoo!ショッピング)</li>
<li>Yahoo!ショッピング</li>
<li>Yahoo!トラベル</li>
<li>Yahoo!携帯ショップ</li>
<li>Yahoo!ボックス</li>
<li>Yahoo!ロコ</li>
<li>GYAO!</li>
<li>Yahoo!ブックストア</li>
<li>Yahoo!補償</li>
<li>Yahoo!ニュース BUSINESS</li>
<li>Yahoo!スマホマネージャー</li>
<li>Yahoo!ヘルスケア</li>
<li>Yahoo!ファイナンス</li>
<li>Yahoo!映画</li>
<li>Yahoo!ウォレット</li>
<li>Yahoo!チケット</li>
<li>Tポイント powered by Yahoo! JAPAN</li>
<li>Yahoo! Wi-Fi</li>
<li>Yahoo!ニュース</li>
<li>carview!</li>
<li>Yahoo!ジオシティーズ</li>
<li>Yahoo!予約 飲食店</li>
<li>ストアスタンプラリー</li>
<li>Yahoo!パスマーケット</li>
<li>Yahoo!ズバトク</li>
<li>デイリーPlus</li>
<li>Yahoo!リサーチ</li>
</ul>計41件!<br />
新しいサービスができたら、どういう設定になるのか不安ですが、ひとまずはこれでOKです。<br />
<br />
<blockquote>Yahoo! JAPANでは、Yahoo! JAPAN IDをご利用いただいている方に、Yahoo! JAPANの各サービスから最新のおすすめ情報をメールで無料でお届けしています。</blockquote><br />
さらりと書いてますが、ユーザーにとっては迷惑メールなんだよね。そんなにいいものなら、最初ぜんぶオフにしておいて、必要に応じて配信してもらう仕組みにすればいいのにね。いろいろ辿らないとオフにできない仕組みって、プロバイダーの解約とかもそうだけど、契約は容易く解約は困難、こういうのが有効な世の中って不便ですね。そうしないと成立しないサービスって、サービスに自信がないんだろうなと思ってしまいますね。<br />
<br />
<h4>Yahoo!デリバーとやらも配信停止にしとく</h4>Yahoo!デリバーなんて、まったく記憶にないし、登録した覚えもないのだけれど、どうやら登録されているらしい。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqhOA1nN96ZULmwshu4rFbtM6OpDUNBqCxyw_9ouGYI3e6tFVN7Grg5lJrhp3YWxoNADGUJZV1jiO_wVwpCfVDzpsEB9Odxazo8Ak4iyhyUqhI_BLkJGy1f3rML371KQH_0FXjXzP1CPY/s1600/yahoo_deliver.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqhOA1nN96ZULmwshu4rFbtM6OpDUNBqCxyw_9ouGYI3e6tFVN7Grg5lJrhp3YWxoNADGUJZV1jiO_wVwpCfVDzpsEB9Odxazo8Ak4iyhyUqhI_BLkJGy1f3rML371KQH_0FXjXzP1CPY/s400/yahoo_deliver.png" /></a></div><br />
<blockquote>Yahoo!デリバーを設定すると、Yahoo! JAPAN又は提携先企業から、新商品、各種セール、お買い得情報などのお知らせが届くようになります。もちろん登録は無料です。<br />
現在、あなたはYahoo!デリバーに登録されています。</blockquote><br />
そして、登録しないに設定するして次に行くと、注意するメッセージが出る。<br />
めんどくさい作業だなあ。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg81gQ4UlcweABxt9JFmoC0d6zTxISvTaGkfe3HRBR1YQJ9dHdTyrNzSb35BAF9OUEPB1-1iOyYwxwamT4lA9QEi4rgcsaO1-6-IGY5PomLj3M3bBbEyrQ5l8yvAaqASzYYZilAa9isvnQ/s1600/yahoo_deliver01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg81gQ4UlcweABxt9JFmoC0d6zTxISvTaGkfe3HRBR1YQJ9dHdTyrNzSb35BAF9OUEPB1-1iOyYwxwamT4lA9QEi4rgcsaO1-6-IGY5PomLj3M3bBbEyrQ5l8yvAaqASzYYZilAa9isvnQ/s400/yahoo_deliver01.png" /></a></div><blockquote>「Yahoo!デリバー」の登録解除依頼を確認しました。「Yahoo!デリバー」の登録を解除すると、Yahoo!メールの転送サービスはご利用いただけなくなります。また、「Yahoo!デリバー」の登録解除後に、メールソフトやスマートフォンなどのモバイル端末からYahoo!メールのPOP/SMTPアクセスをご利用になると、「Yahoo!デリバー」に再度自動登録されますのでご注意ください。</blockquote>どうやら、Yahoo!メールの転送サービスを利用する人は、Yahoo!デリバーの登録が必須のようです。転送サービスというのを平たくいうと、スマホでチェックしたい人ということですね。スマホでメールをチェックしたいなら、迷惑メールの受信が義務付けられるという、すごいね、最大手は。<br />
Yahoo!メールをスマホで使うのはやめたほうがいい。Yahoo!メールがメインでなくてよかったー。<br />
まあ、無料のメールアカウントはそれぞれ何かしらあるでしょうけれど。<br />
というわけで、自分は完全解除させます。はい、解除。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWo5Fk_2l2KSH8yYCwbpRWMDHTlx9I17RCsSvNrzB_46-Xf2TvEqwbUhBs1XBHlC2QTN5bwddCbE9gQt24W3egB3zInzIxkdoPC0GSyS1Ag4PXpfS7HUOY2pn1RIUU6zrpIA5xUF88Wos/s1600/yahoo_deliver02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWo5Fk_2l2KSH8yYCwbpRWMDHTlx9I17RCsSvNrzB_46-Xf2TvEqwbUhBs1XBHlC2QTN5bwddCbE9gQt24W3egB3zInzIxkdoPC0GSyS1Ag4PXpfS7HUOY2pn1RIUU6zrpIA5xUF88Wos/s400/yahoo_deliver02.png" /></a></div><blockquote>登録解除要求を受け付けました。処理が完了するまでには約5営業日かかります。</blockquote><br />
ナゾの5営業日。もうやだ、この作業。ナゾがナゾを呼ぶ。解除に5営業日かかるってなんだよ。<br />
こうやってYahoo!の森に迷うんです。<br />
まあいいや。さくっと解除。後は、もう知らん。何か発生しない限りもう忘れることにします。<br />
<br />
モノホンの迷惑メールは多様化してて、フィルタリングもイタチゴッコだしもっとさらに悪質です。<br />
配信が解除できるだけマシと言えばマシなのだけど、上場してる最大手様がそんなハードル落としていいのか。やりたい放題だなあという印象ですね。Yahoo!だけではないし、今更ですけどね。世の中もっと便利になってほしいです。<br />
<br />
おしまいです。<br />
ではよいYahoo!ライフを。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-86147032234498213042015-06-09T12:04:00.001+09:002015-06-11T07:01:37.217+09:00WWDC2015まとめ、iPodなくなる?Appleのイベントが日本時間で8日の26時からありました。<br />
WWDCはWorld Wide Developers Conference 2015の略です。つまり開発者向けイベントですね。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLtDFtCe_3nrP5yjbtDV4Ub_J-grNPn9PHlFiqaCXSWoPNptW20mHuMdwtvsWKoWyori_SXamLzJR6B7IaFC8QZtqjwfdR7O7rqts-ic9RF8koKkE3uekJIlKWaf_B4MC-KT5B1Niurkc/s1600/wwdc2015.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLtDFtCe_3nrP5yjbtDV4Ub_J-grNPn9PHlFiqaCXSWoPNptW20mHuMdwtvsWKoWyori_SXamLzJR6B7IaFC8QZtqjwfdR7O7rqts-ic9RF8koKkE3uekJIlKWaf_B4MC-KT5B1Niurkc/s1600/wwdc2015.png" /></a></div><h4>WWDC2015さっぱりまとめ</h4><br />
<h5>OS X El Capitan(エル・キャピタン)</h5>OS X Yosemiteが10.10なので、OS X El Capitanは10.11でしょうか。<br />
<br />
<h5>iOS 9</h5>iOSの新しいバージョン。<br />
<br />
<h5>Swift 2</h5>詳細はよく解りません。何が変わったのでしょう。オープンソースになるらしいです。<br />
<br />
<h5>WatchOS 2</h5>AppleWatch用の新しいOSのバージョンです。<br />
<br />
<h5>Apple Music</h5>ストリーミングサービス。要するに月額いくらで、音楽聴き放題のサービスってことですね。使用にはネットワーク接続が必須ですか。ダウンロード版もあるかもしれません。<br />
<br />
こんな感じです。さっぱりしたものです。開発者向けだもの。<br />
来年のWWDC2016とか、もうそのまま数字があがるだけなんじゃないでしょうか。<br />
大胆予想!でもないか。新OS X(10.12)、iOS 10、Swift 3、WatchOS 3、Apple Music 2?<br />
ほんとにさっぱりしたものです。<br />
<br />
<h4>そしてiPod消える</h4>そして、大切なのは、AppleのページのメニューからiPodが消えてしまったことです。<br />
<br />
これは新しい別のサービスを追い求めるために、自社での競合するサービスをどんどん縮小させていくということでしょうか。一部の少数派ファンを排除していく仕掛けでもあるわけです。iPodがメニューからなくすってのは、もう将来的に完全にiPodはなくなってしまうという予告なんでしょうか? MusicからiPodが入手できるとかそういう変化なのでしょうか。<br />
<br />
こっそりアップデートがあるんじゃないかと狙っていたけれど、もちろんこっそりなくなるというのもありえるのか…。<br />
なくなってしまうなら、入手できるのは今のうちなので、これはこれでそれなりに悩ましいですね。<br />
現在は、AppleトップページのストアからiPodストアにいけます。<br />
<br />
<blockquote>iPodストア - iPod touch、iPod nano、iPod shuffleの購入 - Apple Store(日本)<br />
<a href="http://store.apple.com/jp/ipod">http://store.apple.com/jp/ipod</a></blockquote><br />
また認定の整備済製品で格安に手に入れるという方法もあります。<br />
<br />
<h4>しんみりしますね</h4>もはや音楽をポケットに入れるような時代ではないんだなあ。<br />
iPhoneと比べたiPod touchの優位性なんて、理屈の上でのことだけで、実際は誰も気にしていないということなのです。<br />
世の中iPodだけではありませんが、iPodが引っ張ってきたものは大きくて、しんみりしてしまいます。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGlaf8Sa7lVJ_QgE49BLS7Khhuo2-9PVVrZMcdfcn8Pi3gm0GgHIK059JPYe1Afk-O4WTjkfd1wPyJVjhXHjkvBEvBgHUZo09YVuq23IB8w-xDH5_5n_EDatObppuO03hqk89G1DEdA5s/s1600/It%2527s+only+rock+and+roll.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGlaf8Sa7lVJ_QgE49BLS7Khhuo2-9PVVrZMcdfcn8Pi3gm0GgHIK059JPYe1Afk-O4WTjkfd1wPyJVjhXHjkvBEvBgHUZo09YVuq23IB8w-xDH5_5n_EDatObppuO03hqk89G1DEdA5s/s1600/It%2527s+only+rock+and+roll.jpg" /></a></div>It's only rock and rollのポスターは2009年のもの。<br />
sonyのwalkmanブランドは健在だけれど、これを尻尾切りするようなものですよね。<br />
<br />
しかし新しいMusicサービス始めるのにiPod消すってなんだよ!と思わなくもないです。Apple Musicに対応させるデバイスをつくるつもりはないのでしょうか。<br />
AppleWatchは単独では通信できないので、ストリーミングなんて無理ですよね。<br />
<br />
もはやYouTubeではPVをいかに稼ぐかというところが軸になっています。それと同じように今後のアーティストの展開は、CDの売り上げを伸ばすかよりも、いかに繰り返し再生されるかというところに尽きるのかもしれません。再生されていくらみたいな感じでしょうか。<br />
<br />
<h4>今後何が出るやら楽しみ</h4>これだけ音楽に注力していて、iPhoneも大きくしておいて、小型の音楽専用デバイスの肩身が狭くなっていることには違和感しかない。せめてiPod nanoやiPod touchは去年くらいにわずかでもアップデートしてあげればよかったのに…。かわいそすぎる。<br />
<br />
<blockquote>Apple、Beatsの30億ドルでの買収を正式発表 ブランドは残す<br />
<a href="http://www.itmedia.co.jp/news/articles/1405/29/news041.html">http://www.itmedia.co.jp/news/articles/1405/29/news041.html</a></blockquote><br />
しかし、これだけiPhoneが流通しちゃえば、音楽だけのデバイスの必要性はないのかもしれないね。音楽が聞きたいならiPhoneで聞けばいいっていうのは、そりゃそうだ。懐古主義はダメなのか…。<br />
さてさて、今後何が出るやら楽しみではあります。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-5269628395776622082015-06-03T22:49:00.002+09:002015-06-03T22:49:41.758+09:00WunderlistがMicrosoftグループに参加ちょっとびっくりした。<br />
サンマイクロシステムズがOracleに買収されたときのような軽い躍動感を感じました。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Iz5qdmX6GQ7KwmafUU2EqofDutBmfLX7vlQH_T4f_HMZmVR8pcka9NBLTtxEOtLO1d52n5siROu7sfjmu2IrtbNnWWBCdePmKMWf0eYh9Do6gP47dbgZp5xtYVJjkMsJupb0udG3aK4/s1600/wunderlist.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Iz5qdmX6GQ7KwmafUU2EqofDutBmfLX7vlQH_T4f_HMZmVR8pcka9NBLTtxEOtLO1d52n5siROu7sfjmu2IrtbNnWWBCdePmKMWf0eYh9Do6gP47dbgZp5xtYVJjkMsJupb0udG3aK4/s560/wunderlist.png" /></a></div>Wunderlistは、言わずと知れたマルチデバイスが売りのシンプルなタスク管理のサービスですね。<br />
自分もよく利用してます。<br />
<blockquote>Wunderlist | To-do リスト、リマインダー、タスク管理 - App of the Year!<br />
<a href="https://www.wunderlist.com/ja/">https://www.wunderlist.com/ja/</a></blockquote><br />
Wunderlistにしてみれば、これはすごいことだ。<br />
Microsoftにしてみれば、なんだろう。<br />
<br />
MicrosoftはTODOリストも作れないのか…。<br />
もちろんそんなことはないと思うけれど。<br />
Officeに統合されて、カレンダーとも連携が取れるとかそういうことにはなるのだろうか。<br />
<br />
自分も使ってるのでよく解るのですが、WunderlistのTODOリストの何がよかったのかというと、シンプルで余計な機能がないからよかったのです。<br />
タスクの管理は、シンプルでないと目が散って集中できない。<br />
便利というのが多機能性ではないということは、いろんなところで一般化されてきたことなのだけど、サービス統合とかは、ものすごく嫌な予感しかしない。<br />
<br />
Microsoftの思惑は、要するにWunderlistユーザーをOfficeに誘導しようというものなのだろうな、という想像はできる。 <br />
Microsoftアカウントが使えるようになるとかは、めちゃくちゃありそうですね。<br />
<br />
Wunderlistが消えてなくなってしまうようなことはないだろうけれど…。<br />
今後のWunderlistのアップデートに注目です。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-48529789364885245502015-06-02T00:22:00.001+09:002016-04-14T08:38:27.494+09:00Windows10の無料アップグレードが怖すぎるWindows10がついに7/29にアップグレードできるらしく、うちにもお知らせが届きました。<br />
予約受付という不思議な画面が現れます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCfh7PB_ZlD6VE6jgE8pSfcHBBZVGo4ASLy70_dIqIkwSC5h_B9srpPs6mz8L0f5gMUVsEC-G7UfimoJIWKYDA7hW0IncNTm_Ic9JALmzNzhBmGByvvf3vSWwGByyFhY944k5TQbm4KXo/s560/update_windows10_01.png" /></div><br />
このエントリは個人の印象だけで書いてます。<br />
長年培われた信頼と同じように、不信感も培われているので仕方ないのです。<br />
決してWindows10が嫌いなわけではないけれど、たぶん使うことになるのだろうけれど、そこそこ恩恵を感じることにもなるとも思うのだけど、あまり歓迎する気分ではないのです。こっちからにじり寄る分には幾分か注意もできるけれど、向こうから来られるとこれはもう逃げるしかない。そんな感じなのです。<br />
<br />
<h4>アップグレードの告知が強引すぎる</h4><br />
うちのWindwos7のタスクトレイに謎のWindowsアイコンが現れる。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5HO0MSV6dPgmmCgX2k5_mlNo6JM6yiaiOUk8EnQq7Z7aj6h_gxUhGR_yYhiwcm65shGS2U6s2NJRtuveJJbF5UfssDUJzbm1aeBAkkDEczXrt4X7rAm6PzDk8omh_NIhCzw26yd5DKBE/s560/update_windows10_02.png" /></div><br />
Windows10への無料アップグレードの予約画面が表示される。なんというか、ものすごい押しつけがましい。Windowsのアップグレードの文言も強引になってきた。<br />
随所でこの手法が見られる。ライセンス認証手続きや、セットアップ後のMicrosoftアカウント作成時にも感じた手口だ。<br />
推奨する方法を、あたかも必須のように誘導して、他の選択肢を隠しておく。わけもわからずに、誘導されるがまま囲い込んでいくわけですね。すぐ終わりますとか言って、契約書に名前だけ書かせる詐欺に近くて怖すぎる。<br />
<br />
こんなの解りにくさという弊害しかなくて、本質的な囲い込みに失敗してることに気付いてほしい。いわゆるパソコンの初心者というのは解らないことに対してはすごく敏感で、これは難しいものだ、と判断すると、もう理解しようとはしてくれないのだ。<br />
日本語訳の問題なのかもしれないけれど、とにかくやめてほしい。それほど初心者のつもりのない人間としても、はっきり嫌気がさしてくる。<br />
<br />
<h4>不安要素はたっぷり</h4><br />
無料はわかった。として、無料だからいいかというと絶対にそれはない。<br />
Windowsはアップグレードが苦手なんです。無料を謳えば、MacのOSXやiPhoneのiOSと肩を並べられるかというとそんなことはあり得ない。<br />
いろいろと苦労するのは解りきっている。だから、今のうちに考えられるポイントを考察しておきたい。<br />
<br />
どうしてもWindows10に恋心を抱いていて、中身がどうなってもいいから、いち早くレビューしたい、触りたいという人(専門用語で人柱と言います)は懸念なんて不要で、思う存分胸躍らせていればいいと思います。そういう楽しみかたはあってもいいはずだ。<br />
だけど実務的には、外見のために中身を犠牲にするのは本末転倒のように思う。<br />
<br />
<h5>バックアップをとっておくこと</h5>簡単ですなんて言いながら、バックアップは誰もが推奨するところでしょう。バックアップが推奨されるということは、やっぱりそれなりの覚悟が必要ということなのです。<br />
具体的なやり方はそれぞれで調べてほしいですが、システムイメージをまるごと取っておくことと、そのあとの復元手順をも調べておくのがいいと思います。<br />
<br />
<h5>アップグレードに掛かる時間はどのくらいか</h5>ものすごく気になる。無料で簡単、自動、なんていうと、一瞬で切り替わるような印象を受けるけど、そんなことはない。ディスク空きが3GB必要とかいうのは、なにかをダウンロードしてきて展開して、処理するためのスペースなのだ。3GB分の処理が必要なのです。<br />
Windows8からWindows8.1のアップグレードや、Windows8.1からWindows8.1 updatedへのアップグレードにどのくらい時間を使ったか覚えていますか?<br />
とてつもない労力を使った人もいるはずで、その人たちの阿鼻叫喚のようなレビューは今でも散見できる。<br />
<br />
朝、パソコンを立ち上げて作業しようとすると忘れていた更新がおもむろに始まって、一日仕事ができない、メールも見れないとかありそうで怖い。<br />
<br />
<h5>Microsoftアカウントは必須になるのか?</h5>Windows8.1 updatedなんかはセットアップ後にMicrosoftアカウント取得の手続きが始まる。<br />
アップグレードは自動で開始されるとあるので、おそらくWindows10でもその次のログイン時にアカウント取得せよという手続きが発生するのではないかと。<br />
これがわりと面倒だと思う。<br />
アップグレード後、シームレスにすぐにログイン画面が表示されて、前日の作業の続きが進められるかというとそんなことはないだろう。<br />
ログイン画面にたどり着くまでに、いろいろ設定を聞いてくるはずだ。<br />
<br />
<h5>アップグレード後、既存の状態に戻せるか?</h5>これは、まず戻せない。アップグレード後、何かあって、失敗した、元の状態に戻したいと思ったときにはすでに手遅れだったりする。<br />
もちろんイメージごとバックアップを取っておいて手動で元に戻すということは可能なはずです。ただし、これを理解して自分で調べて、自分で操作して、やり方を知っている必要があって、これが難しいと思う人には簡単ではないかもしれない(そんなことを言っていては何もできませんが)。自動でやってもらっても、戻すのは手動である理解が必要なのです。<br />
<br />
さらに、アップグレードが無料だからといって、Windows10からのクリーンインストールは不可能でしょう。インストールしなおすには、前のバージョンのディスクなりでクリーンインストールしたあとに、再びアップグレードをしないといけない。ずっとそうだった。まあWindowsに限らずiOSとかもその辺はそうなのだけど。<br />
Windows7やWindows8のライセンスで、Windows10でのクリーンインストールがさくっとできるんだったらいいのになー。<br />
<br />
<h4>そもそも問題なんて起こらないという見方もできる</h4><br />
悲観的なことばっかり書いたけれど、楽観的なことも書きます。<br />
<br />
いろいろ問題が起こったときに大変だ、と書いたけど、問題なんて起こらないという考え方もある。<br />
何故ならWindows10とは謳っているけれど、中身はWindows8.1 updatedの延長だからですね。Windows8.1 updated2もしくはWindows8.2と呼んでもいいかもしれない。前バージョンから変わってないのだから問題なんて起こらない。一部のアプリケーションが動かなくなることもありえない。そういう見方もある。<br />
<br />
だからMicrosoftが「まったく新しいWindows」とか言えば言うほどユーザーとしてはイメージダウンだったりする。今回のはスタートメニュー復活なので、さすがに新しい連呼はなさそうだけど、替わりに「特別なOS」という意味不明な称号がありますね。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi02cC5_Cwd_kEsnHLt7HBfF9uAxmGuqlTE_j-wG3KFm2vEvE4cLon0WNPPqIHIydht9XPLiVRWccT3qG_iDDEr7rdNSGHNRJsnSS1xyCnMSLnXgI7UmJONlLqww2um9k2_U0BVe1j5F6Y/s560/update_windows10_04.png" /></div><br />
ここまで強気で押している以上、ほとんど変わってない説は有力な気がする。<br />
しかし、それでもWindows7からのアップグレードはやっぱり怖いかなあ。<br />
<br />
<h4>まとめると、やっぱり安心して予約するわけにはいかない</h4><br />
要するに、予約受付+無料によるキャッチーなトラップで、そのあとの手続きが面倒なのが一つと、アップグレードによるリスクを見越しておかないと大変な目に合うのではないかと危惧しています。<br />
<br />
カンタンっていうのは、何と比べて言ってるのかというと、Windowsの昔のバージョンと比べてしかない。確かに昔のバージョン(2000とか、XPとか)に比べれば、アップグレードが自動更新で済むなんてカンタンと言えるかもしれない。<br />
だけどそのまま手放しで任せられるかというと、まったく任せられない。<br />
<br />
そして様子見ばっかり。Windows10へのアップグレードは思うのほか進まない。結局みんなWindows7に留まるとか。Windows8に移行が進まなかったのと同じようなことがあっても不思議はない。これは仕方ないことです。アップグレードする必要がないのに強引にアップグレードさせるのはどうだろう。企業さんとかでは、無料アップグレードの予約ボタンを押さないでくださいとかアナウンスされているのだろうか。<br />
<br />
カンタンですよと、すり寄ってきて、更新ボタンを押させる手口が嫌すぎる。7/29にパニック続出にならないことを願います。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicjxgApE7krdN-O0lt42triPpr85Ks0ScQj-nreylUPudOaNcRX8HVKBRvPivu8gPPBHfp7t2KygL1L-ZmqVn6fPFT4ZimluXazVzfkofCJi43S8dwhppF3Ndrp3a1H5GLp6vZvPoFrss/s560/update_windows10_03.PNG" /></div><blockquote>今すぐWindows10アップグレードを予約しましょう<br />
無料で簡単。心配はいりません。</blockquote><br />
怖すぎるでしょ。<br />
(((( ;゚Д゚)))ガクガクブルブルUnknownnoreply@blogger.com4tag:blogger.com,1999:blog-5333333587440769247.post-407766944365184742015-05-17T17:26:00.004+09:002016-04-15T10:48:21.146+09:00[C#]DataTableをさくっとつくるには何かと便利なDataTableです。<br />
DataTableを扱って何かするときに、慣れれば難しいところはありませんが、とにかく冗長的な印象があります。<br />
まずダミーデータの準備に労力が費やされてしまうことがあって、結構面倒なのです。<br />
そういうDataTableについて、ちょこっと記法に気を付けることで、記述内容を大幅に削減してしまおうというのがこのエントリのテーマです。<br />
<br />
<h4>DataTableを作成するためのコード</h4>DataTableの作成は①DataColumnを追加して列(スキーマ)を準備、そのあと②データを格納させるDataRowを追加する必要があります。<br />
<br />
<h5>DataColumnを追加して列(スキーマ)を準備</h5>まず、DataTableのインスタンスをつくる。これはそのまま。<br />
<pre><code class="cs">DataTable table = new DataTable();</code></pre><br />
列となるDataColumnを追加します。<br />
個人情報のようなものが格納されるとして、普通は、こんな感じになりますね。<br />
<pre><code class="cs">table.Columns.Add(new DataColumn("name"));
table.Columns.Add(new DataColumn("ruby"));
table.Columns.Add(new DataColumn("sex"));
table.Columns.Add(new DataColumn("age"));
table.Columns.Add(new DataColumn("birthday"));
table.Columns.Add(new DataColumn("married"));
table.Columns.Add(new DataColumn("prefecture"));</code></pre><br />
はい、これ。<br />
工夫すると、こう書けます。<br />
<pre><code class="cs">string[] columnList = { "name", "ruby", "sex", "age", "birthday", "married", "prefecture"};
table.Columns.AddRange(columnList.Select(n => new DataColumn(n)).ToArray());</code></pre>文字列の配列をもとに、DataColumnの配列を作って一気に追加しています。<br />
たった2行に収まりました。もちろん強引に1行にもできます。<br />
<br />
<h5>データを格納させるDataRowを追加する</h5>次に、行となるDataRowを追加します。<br />
DataTableに準備した列(スキーマ)に合わせた行を作成するので、DataTableのNewRowメソッドを呼び出して、新しい行になるDataRowを拾ってあげます。<br />
DataRowに設定する値を入れて、改めて、DataTableのRowsプロパティに追加する。<br />
(覚えたてのとき、自分にはこの操作が意味不明でした)<br />
コードにすると、こんな感じです。<br />
<pre><code class="cs">DataRow row = table.NewRow();
row["name"] = "三村 瑠璃亜";
row["ruby"] = "みむら るりあ";
row["sex"] = "女";
row["age"] = "32";
row["birthday"] = "1982/7/16";
row["married"] = "既婚";
row["prefecture"] = "茨城県";
table.Rows.Add(row);</code></pre>これで1個のデータです。結構なカタマリになります。<br />
<br />
DataTableのRowsプロパティのAddメソッドには、オーバーロードとしてobject[]を指定することができます。<br />
なので、上のカタマリは、下記のように書いてもいいのです。<br />
<pre><code class="cs">table.Rows.Add("三村 瑠璃亜", "みむら るりあ", "女", "32", "1982/7/16", "既婚", "茨城県");</code></pre>はい、1行です。<br />
行に追加した順番に気を付ける必要がありますが、テストパターンとして内容に変化を付けるときなどは、こちらのほうが見やすいようにも思います。<br />
もちろん、テストデータらしく、hogehogeとかaaaとかだったら、どの列のデータなのかは見失いやすいので注意が必要ですが…。<br />
<br />
<h5>サンプルコード</h5>ということでざっとDataTableのダミーデータを作成するためのサンプルコードを載せておきます。<br />
<br />
<pre><code class="cs">// DataTableのダミーデータを作成する
// DataColumnを追加して列(スキーマ)を準備
DataTable table = new DataTable();
string[] columnList = { "name", "ruby", "sex", "age", "birthday", "married", "prefecture"};
table.Columns.AddRange(columnList.Select(n => new DataColumn(n)).ToArray());
// データを格納させるDataRowを追加する
table.Rows.Add("三村 瑠璃亜", "みむら るりあ", "女", "32", "1982/7/16", "既婚", "茨城県");
table.Rows.Add("山崎 隆", "やまざき たかし", "男", "32", "1982/10/3", "未婚", "東京都");
table.Rows.Add("滝 慢太郎", "たき まんたろう", "男", "31", "1983/6/30", "未婚", "福岡県");
table.Rows.Add("石塚 浩正", "いしづか ひろま", "男", "29", "1985/3/1", "既婚", "熊本県");
table.Rows.Add("中西 光", "なかにし ひかる", "男", "55", "1959/2/22", "既婚", "福島県");</code></pre>コピペコピペでNewRowメソッド呼び出しによる長く平坦な記述よりも、よっぽど表データっていう感じがしますね。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5333333587440769247.post-50504046369636002002015-05-09T22:05:00.000+09:002020-02-25T12:22:41.738+09:00[C#]クエリ文字列を操作するご存じ、URLの後ろにくっついてるパラメータをクエリ文字列と言います。<br />
<br />
クエリ文字列を扱うときにDictionary<string,string>に変換する自作関数をセコセコ作ったり、またくっつけるための関数を作ったり、そういう操作をしていたのですが、HttpUtility.ParseQueryStringメソッドでまるっと操作できるようです。<br />
<br />
<h4>HttpUtility.ParseQueryStringメソッドを使う</h4>HttpUtility.ParseQueryStringメソッドはクエリ文字列を引数に、NameValueCollectionオブジェクトを返します。<br />
NameValueCollectionは、Dictionary<string,string>型のようにキーより値が参照できます。<br />
HttpUtility.ParseQueryStringメソッドが返すNameValueCollectionは、ToStringメソッドで、&と=でつなげたクエリ文字列がそのまま返ります。部分的に値を変更して改めてクエリ文字をつくるような操作もお手の物です。<br />
<br />
<h5>サンプルコード</h5><pre><code class="cs">// using System.Web;
// using System.Collections.Specialized
// ダミーのURLです
string url = "http://www.hogehoge.co.jp/index.htm?var1=%u3042%u3044%u3046%u3048%u304a&var2=abc&var3=12345";
Uri uri = new Uri(url);
string queryString = uri.Query;
Console.WriteLine(queryString);
// ?var1=%25u3042%25u3044%25u3046%25u3048%25u304a&var2=abc&var3=12345
// ①クエリ文字列からNameValueCollectionを生成
NameValueCollection query = HttpUtility.ParseQueryString(queryString,Encoding.UTF8);
// ②クエリの値を確認
foreach(string key in query.Keys){
Console.WriteLine(key + "=" + HttpUtility.UrlDecode(query[key]));
}
// var1=あいうえお
// var2=abc
// var3=12345
// ③クエリの値を変更
query["var1"] = "かきくけこ";
// ④クエリ文字列を再生成
Console.WriteLine(query.ToString());
// var1=%u304b%u304d%u304f%u3051%u3053&var2=abc&var3=12345</code></pre><br />
<h5>コードの解説</h5>①クエリ文字列からNameValueCollectionを生成<br />
ダミーURLをもとに、HttpUtility.ParseQueryStringメソッドを使用してクエリ文字列からNameValueCollectionを生成します。<br />
<br />
②クエリの値を確認<br />
NameValueCollectionオブジェクトに値がどのように格納されているかクエリの値を確認します。<br />
<br />
③クエリの値を変更<br />
キー(var1)に対応するクエリの値を変更します。<br />
<br />
④クエリ文字を再生成<br />
NameValueCollectionオブジェクトのToStringメソッドを呼び出すと、=と&で結合されたクエリ文字列が生成されます。<br />
<br />
※<br />
NameValueCollectionはSystem.Collections.Specializedというあまり聞きなれない名前空間にあります。<br />
HttpUtility.ParseQueryStringメソッドのために、using System.Web;が必要です。(要System.Web.dll参照)<br />
<br />
<h4>NameValueCollectionをDictionaryに変換する</h4>NameValueCollectionはDictionaryに似ているのですが、Linqが使えません。<br />
何かとDictionary形式のほうが使い勝手がいいとお考えの人は、変換してあげてください。<br />
<br />
<pre><code class="cs">Dictionary<string,string> dic = query.Keys.Cast<string>().ToDictionary(n => n, m => query[m]);</code></pre><br />
それではよきクエリ文字ライフを!Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-5333333587440769247.post-41096150372678025192015-04-07T11:06:00.000+09:002015-04-27T12:39:28.051+09:00MySQL For ExcelがExcelシート保存時にマクロ警告を出すExcelシートの保存時にマクロ警告が出る。<br />
マクロなんて使った覚えはない。便利なソフトが台無しだ。<br />
警告内容は、こんな感じ。<br />
<br />
<blockquote>次の機能はマクロなしのブックに保存できません<br />
・定義名で保存されている excel 4.0 関数<br />
これらの機能が含まれるファイルを保存する場合は、[いいえ]をクリックし、[ファイルの種類]ボックスでマクロ有効ファイルの種類を選択してください。<br />
マクロなしのブックとして保存する場合は、[はい]をクリックしてください。</blockquote><br />
先にいうと、アドインとしてMySQL For Excelが動いてた。<br />
そういえば、MySQLをインストールしたな、と。MySQL For Excelがどういう悪さをしていたのかは知りませんが、これをアンインストールしたら現象が解消されました。<br />
なお、うちのExcelはExcel2010です。<br />
<br />
<h4>原因調査</h4>マクロなんてそもそも使ってない。<br />
「定義名で保存されている~」という意味がそもそも解らなかったので、そこから調べるはめになる。「定義名で保存されている excel 4.0 関数」というメッセージで検索すると、当然マクロ関係の話や名前の定義にたどり着く。身に覚えのない人は、そこからなかなか先に進めないわけです。<br />
名前の定義やマクロなんか使ってないシートの話なので、謎は深まるばかり。<br />
知らないうちにショーカットが機能しちゃったのだろうか。<br />
<br />
<h4>名前の定義について</h4>名前の定義とは、セルの範囲に名前を付けて解りやすくしておく機能。範囲選択を自分でつけた名前を利用することで、無機質なセルの整理整頓をしやすくしておけるというもの。<br />
<br />
【名前の定義】セル範囲に名前をつける<br />
<a href="http://kokoro.kir.jp/excel/name.html">http://kokoro.kir.jp/excel/name.html</a><br />
<br />
でも自分はそんな機能まったく使っていなかった。<br />
<br />
※Excel2010の名前の管理は、「数式」タブ→「定義された名前/名前の管理」から確認できます。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4iYQtET3wfu9uDGHy6vyY2ZxjBK2mI2AViVSzD8Utwbho3yjPtDVq4fKx372J6OvRLRDYB94tTrl3wl8Wz1UNL7xOtoZIiAl0lyqd5c-ZGsV2rc7nyc3VvBewHRe2xDrJOaDoqo0YYHo/s1600/excel2010_define.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4iYQtET3wfu9uDGHy6vyY2ZxjBK2mI2AViVSzD8Utwbho3yjPtDVq4fKx372J6OvRLRDYB94tTrl3wl8Wz1UNL7xOtoZIiAl0lyqd5c-ZGsV2rc7nyc3VvBewHRe2xDrJOaDoqo0YYHo/s1600/excel2010_define.png" /></a></div><br />
<h4>シートの問題ではない気がする</h4>仕方ないので、手当たり次第にいろいろ試してみる。<br />
<ol><li>シートをコピーして新規シートにペーストしても同じ警告メッセージ。新規保存のときには出ないけど、開いて上書き保存するときに出るようだ。</li>
<li>計算も何もないリストアップしただけのシートですら、開いて、即保存で、同じメッセージが出る。</li>
</ol>これはおかしい! シートの問題じゃないだろう。<br />
ひょっとして、ウイルスか?と頭をよぎる。冷や汗…。Excelシートに感染するとか、そういうあれか?<br />
<br />
<h4>MySQL for Excelのアドインがあやしい</h4>オプションを調べていると、MySQL for Excelがアドインに追加されていた。<br />
<br />
※「ファイル」タブ→「オプション」→「アドイン」で拡張機能が確認できます。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9BYtIuGPi0I-P5b8_8ej2uRhS3tUZR4RYGVAZSVjb8lUHtuWvp_99p6SMmJEfaEU0VB2jApn9k717Yq0a8Z7hOmli7000aLNxjHQJItWF36mWMWyt0iJCSpJ7yeJPWU1VhfOLQFqGiUo/s1600/excel2010_option.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9BYtIuGPi0I-P5b8_8ej2uRhS3tUZR4RYGVAZSVjb8lUHtuWvp_99p6SMmJEfaEU0VB2jApn9k717Yq0a8Z7hOmli7000aLNxjHQJItWF36mWMWyt0iJCSpJ7yeJPWU1VhfOLQFqGiUo/s1600/excel2010_option.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKiIiBmxAhxJhMgPywfiTmaZ5PePQy0kXsGEJnJb5GaTTnUR4zJ80vPkWGgwCM_5GpwIBGcY8C3Q1qU-dVz1rrH4Ej4LsQyrN-rxbqa3JmGwcWjNS5bBsztdeVJ7oRtxLrbMS6_rYWW_I/s1600/excel2010_addin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKiIiBmxAhxJhMgPywfiTmaZ5PePQy0kXsGEJnJb5GaTTnUR4zJ80vPkWGgwCM_5GpwIBGcY8C3Q1qU-dVz1rrH4Ej4LsQyrN-rxbqa3JmGwcWjNS5bBsztdeVJ7oRtxLrbMS6_rYWW_I/s1600/excel2010_addin.png" /></a></div><br />
そういえば、昨日MySQLサーバーをインストールしたので、そのとき一緒にインストールされていた。<br />
いかにもあやしい。どういうツールなのか調べてみるけれど、この先もMySQL for Excelを使うことはない気がする。<br />
試しに消してみる。<br />
<br />
アプリケーションの削除から、さくっとアンインストール。<br />
<br />
<h4>そしてあっさり解消</h4>あっさり、解消。いやあ、よかったよかった。<br />
ガサツな解決方法だけど目をつむりましょう。<br />
<br />
完全にMySQL For Excelを犯人扱いしてしまっているけれど、うちのマシンが特異環境かもしれないので、そのあたりはご留意お願いします。<br />
双方の顔を立てるような解決策はないものか、もう少し掘り下げてもよかったかもしれない。けれど申し訳ないけれど元の環境に戻してあれこれするほど興味が沸きそうにない(どちらかというと一刻も早く忘れたいと思ってこの記事を書いている)ので、この辺で〆。<br />
<br />
ありがとうございました。Unknownnoreply@blogger.com4