たたかいのきろく。
と思ったら、ツールボックスがまさかの空っぽで、必要なアイテムがない状態になっていました。
デザイナのコンテキストメニューでEntityやPropatyの追加はできるのに、リレーションはどこからどうやって追加するんだろうと悩んで時間をとかしてしまいました……。
ツールボックスはコンテキストメニューの初期化で無事に解決。
Visual Studioのツールボックスにカスタマイズ機能があることもこのとき初めて知りました。もしかすると見たことのないアイテムがまだあったりして……?
EntityFrameworkデザイナでリレーションの追加ができない。
本来、ツールボックスに表示されるアイテムが表示されていなかった。
ツールボックス上のコンテキストメニューからツールボックスの初期化を実施すると、ツールボックスにアイテムが表示された。
使用している拡張機能を調べて検索(Entity Framework Visual Designer)。開発元のページを発見。
ページ内のキャプチャに見覚えのないツールボックスがあったことから、VisualStudioのツールボックスにあたりをつけてもう少し検索。
VisualStudioのツールボックスはユーザー好みにカスタマイズが可能で、拡張機能のアイテムの表示/非表示も設定できるとわかる。
直接ツールボックスを調べ、右クリックしてみると初期化メニューがあったため試したところ、無事に解決。
今後、物がないときはツールボックスに本当にないか、カスタマイズ設定も含めて探そうと思った。
本稿で紹介するBlogger独自タグは、テーマの<head>タグ内に記述してください。
※随時更新中
文字コードやページ情報などのMETAタグやブログのフィード情報が出力されます。
必須度:推奨。SEO対策にもなるので、特に理由がなければテーマに追加しておくのがおすすめです。
<b:include data='blog' name='all-head-content'/>
スタイルシートを記述するための独自タグです。ちなみにスタイルシートはこのタグの外で記述しても問題なく適用されます。
必須度:必須。このタグを含まないテーマはエラーが発生し、動作しない。
<b:skin><![CDATA[]]></b:skin>
<b:skin><![CDATA[
/* この中にCSSを書きます */
]]></b:skin>
2022年現在の最新バージョンは2018年9月24日公開の「Microsoft Word 2019」です。
それ以前のバージョン遍歴については以下の通りです。
Windows用ではWord95、97、98、2000、2002、2003、2007、2010、2013、2016を経て、2019年現在「Word 2019」が最新版である。(Wikipediaより)
1.ウィンドウ左上の「ファイル」を選択。
2.ウィンドウ左下の「アカウント」を選択。
3.「Word のバージョン情報」ボタンを選択。
→バージョン情報ウィンドウが表示されます。
ウィンドウ左上の「ファイル」を選択。
ウィンドウ左下の「アカウント」を選択。
「Word のバージョン情報」ボタンを選択。
バージョン情報ウィンドウが表示されます。
以下の場合は、「Microsoft® Word 2016」の「バージョン2208」であることがわかります。
Microsoft® Word 2016
Wordはデフォルトで文末に改行記号と呼ばれる灰色の矢印が表示され、改行された箇所が視認できるようになっています。
この改行記号は非表示にすることができます。
1.ウィンドウ左上の「ファイル」を選択。
2.ウィンドウ左下の「オプション」を選択。
3.左メニューの「表示」を選択。
4.「常に画面に表示する編集記号」の「段落記号(M)」を選択。
5.ウィンドウ右下の「OK」ボタンを押下してWord のオプションを閉じる。
ウィンドウ左上の「ファイル」を選択。
ウィンドウ左下の「オプション」を選択。
左メニューの「表示」を選択。
「常に画面に表示する編集記号」の「段落記号(M)」を選択して、「OK」ボタンを押下。
これで、改行記号が非表示になりました。
Microsoft® Word 2016
以下のようなコードをテーマに設定してみました。
<title>~から始まる一行に注目してください。実際にブログを表示すると、どうなるでしょうか。
<html>
<head>
<title><data:blog.title/> ★ <data:blog.pageTitle/> ★ <data:blog.pageName/></title>
<b:skin></b:skin>
</head>
<body>
<b:section id='a'></b:section>
</body>
</html>
タイトルの出力は次のようになりました。
※「ブログタイトル」は、Bloggerの設定でブログタイトルにしている文字列です。
ブログタイトル ★ ブログタイトル ★
<data:blog.title/> と <data:blog.pageTitle/> はブログタイトルが出力されています。
<data:blog.pageName/> は、何も出力されませんでした。
タイトルの出力は次のようになりました。
※「記事タイトル」は、Bloggerの投稿のタイトルにしている文字列です。
ブログタイトル ★ ブログタイトル: 記事タイトル ★ 記事タイトル
<data:blog.title/> は先ほど同様、ブログタイトルが出力されています。
<data:blog.pageTitle/> は、ブログタイトルと記事タイトルの両方が出力されています。半角コロン「: 」で区切られています。
<data:blog.pageName/> は、記事タイトルのみが出力されています。
タイトルの出力は次のようになりました。
※「固定ページタイトル」は、Bloggerのページのタイトルにしている文字列です。
ブログタイトル ★ ブログタイトル: 固定ページタイトル ★ 固定ページタイトル
<data:blog.title/> は先ほど同様、ブログタイトルが出力されています。
<data:blog.pageTitle/> は、ブログタイトルと固定ページタイトルの両方が出力されています。半角コロン「: 」で区切られています。
<data:blog.pageName/> は、固定ページタイトルのみが出力されています。
タイトルの出力は次のようになりました。
※「ラベル名」は、Bloggerの投稿のラベルにしている文字列です。
ブログタイトル ★ ブログタイトル: ラベル名 ★ ラベル名
<data:blog.title/> は先ほど同様、ブログタイトルが出力されています。
<data:blog.pageTitle/> は、ブログタイトルとラベル名の両方が出力されています。半角コロン「: 」で区切られています。
<data:blog.pageName/> は、ラベル名のみが出力されています。
<title> タグで使える3つのBlogger独自タグについて、まとめです。
※ページ名は、投稿のタイトル、ページのタイトル、ラベル名などのこと。
実際にテーマに組み込むサンプルです。
<html>
<head>
<!-- ブログトップページのタイトル -->
<b:if cond='data:blog.pageType == "index"'>
<title><data:blog.pageTitle/></title>
</b:if>
<!-- エラーページのタイトル -->
<b:if cond='data:blog.pageType == "error_page"'>
<title>Not Found - <data:blog.title/></title>
<b:else/>
<!-- それ以外のページのタイトル -->
<title><data:blog.pageName/> - <data:blog.title/></title>
</b:if>
<b:skin></b:skin>
</head>
<body>
<b:section id='a'></b:section>
</body>
</html>
このサンプルでは、Blogger独自タグのif文を使って次のパターンで条件分岐しています。
好みの文言に替えて使用してみてください。
また、他のページではどのように表示されるか、ぜひ確認してみてください。
テーマに登録したとき、エラーが発生しない最低限のコードです。
1字でも削除するとエラーが発生します。
※見やすさのためインデントを加えていますが、インデントは削除して問題ないです。
登録すると、白紙のページが表示されます。
<html>
<head>
<b:skin></b:skin>
</head>
<body>
<b:section id='a'></b:section>
</body>
</html>
データを特定できる値の関係のこと。
ある属性Xを決めると、他の属性Yの値が一意に決まる場合、「YはXに関数従属している」といい、「X→Y」と表現する。
主キーの候補となるキー。データを一意に識別することができるキーのうちの極小の組み合わせ。
たとえば、データに重複のないIDが割り当てられている場合は、あるデータを一意に識別するための候補キーはIDといえる。
データ構造の概念で、複数の要素で構成されているものの組。一対。
たとえば、要素に対して添え字を持つ配列は、要素と添え字の組(タプル)で構成されている。
CAP定理では、「一貫性 (Consistency)」または「可用性 (Availability)」のいずれかを捨てるが、障害時も「可用性 (Availability)」を完全に捨てずにサービスを持続させるための特性モデル。厳密さを問わないことで、システム全体の動作を継続させる考え方。
「BASE」は次の文字を取っている。
リレーショナルデータベース(RDB)ではないデータベースの総称。その名の通りSQL以外の方法でデータベースを操作できる。RDBと比較してシンプルで高速なため、膨大になりすいデータを扱うケースで有用とされている。
データを表形式で管理する従来のデータベース。
1つの処理を実行するにあたり複数のデータベースでそれぞれ処理を行う必要がある場合で、データの一貫性および整合性を保てるように処理を確定する方法。すべての処理が完了した場合は正常終了、処理のうちの1つでも失敗した場合はすべての処理を白紙に戻して異常終了とする( All or Nothing )。
サーバのパーティショニング。サーバを複数に分けて管理する手法のこと。障害の影響範囲を小さくしたり、サーバ1台あたりの負荷を軽くすることができる。分散システム(distributed computing system)。
★障害:サーバの分断。ネットワーク上のサーバが分断されても、冗長構成により、他のすべてのサーバまでもが分断・停止する事態を防ぐことができる。
★この特性を活かせていない場合は、冗長構成になっていないと言える。
データを複数に分けて格納すること。故障の影響範囲を狭めることができる。
サーバにおける「ノード」は、サーバ1台分の単位を表している場合がある。複数に分けたデータのうちの1つ。
冗長構成において、次の3つの状態を同時に満たすことはできないという定理。
What is the CAP Theorem? |
★CAP定理は、冗長構成における障害時の特性を説明する。「一貫性 (Consistency)」または「可用性 (Availability)」のどちらを重視したパーティショニングであるのかによって、その冗長構成の特性を説明する。
todo: ユースケースについて考える。
正答 12 問 / 全 25 問
1.イ
2.ア→イ
3.イ→ウ
4.エ
5.ウ
6.イ→ア
7.エ→ア
8.イ→ウ
9.エ
10.イ→ウ
11.エ
12.エ→イ
13.イ→エ
14.イ
15.エ
16.ア
17.ア
18.エ→イ
19.ア
20.イ
21.イ→ア
22.ア→イ
23.ア→ウ
24.ア→イ
25.エ
2021年某日、GooglePixel5a が発売。
人生初の格安スマホに嫌気がさしていたのもあり、次こそは高性能な Android スマートフォン端末を使いたいと思っていたため、さっそく店舗に赴いた。
ちなみに、以前、携わっていた Android アプリの開発現場では、GooglePixel 端末が少ないことが話題になっていたのもあり、個人的に GooglePixel という端末が気になっていた。
もう1つ蛇足すると、格安スマホも Android アプリの開発のために持っておきたかったので購入した経緯がある。あまりにも快適ではなかったので、デベロッパーとしては買ってみて良かったとは思っている。ちなみに端末は AndroidOne で、ワイモバイル店舗で購入した。
ソフトバンク店舗へ向かい、GooglePixel5a 端末の購入と契約した。
ソフトバンクよりもワイモバイルの方が料金が安いし、使っているエリアでは特に気になる点もなかったので、はじめからワイモバイルへ乗り換えることは決めていた。
ソフトバンクの店員さんによると、ソフトバンク契約から3か月は乗り換えできないとのことだったので、きっちり3か月が経った後にワイモバイルへ乗り換えた。
手続きはすべてオンライン上で。eSIM にしたため、郵送物を受け取るようなこともなく、自宅で手元の操作だけで、意外と簡単に済んだ。強いて言えば、GooglePixel5a の SIM ロック解除で少しつまづいたくらい。
ワイモバイルで契約申請をし、その後に受け取ったメールから手続きをすすめ、SIM ロック解除の段階のとき。MySoftBank の「SIMロック解除手続き」で、「製造番号(IMEI番号)の入力」を行い、「次へ」ボタンを押すと、「入力された番号の製品はSIMロック解除対象外です。」と表示され、これが解除されているのかされていないのかがどうもよくわからなかった。
どうしたものかと、ソフトバンクの Web サイトにあるチャット問い合わせで確認すると、すぐに、端末は解除された状態で渡されており、SIM ロック解除の手続きは必要ないとの回答を得た。そういうことだったらしい。
そんなこんなで、自宅で乗り換えはすべて完結した。料金もちゃんと安くなった。よかったよかった。
ワイモバイルで満足した生活を送っていたところ、2022年某日、楽天モバイルの料金改定が大話題になった。0円プラン的なものが廃止された例のやつだ。
楽天モバイルはむかし同じ生活圏の知人が使っており、LINE のメッセージ送受信にタイムラグがあったり、いつも通話の音声がおかしかったりするのを目の前で確認していたので、まったく縁を持たなかった。ので、自分には関係のない話ではあったけれど、そこでもう1つ話題になったのが乗り換え先で、目に留まったのが日本通信SIMだった。
当時はすっかり在宅ワークで、外で携帯を使う機会が本当になくなっていた。
とはいえ、滅多に機会がないにしても、たとえば旅先や緊急時など、外で携帯を使うときは繋がっていないと困る状況が自分には多かったので、ワイモバイルの安定供給を手放してよいのか、緊急時のインフラとして必要出費じゃないかともちょっと思った。思ったけど、好奇心に勝てず。
さっそく日本通信SIM の Web サイトから乗り換えを申請。ソフトバンク→ワイモバイル時もそうだったが、乗り換え先にだけ連絡をすれば、あとは勝手に元のキャリアの解約も済んでしまうのは気がラクだ。
GooglePixel5a 端末では eSIM の使用可否が不明だったので、おとなしく SIM カードを利用した乗り換えを選択。そのため、申し込み後は SIM カードが送付されるのを待つ必要があった。
数日後、SIM カードを受取り、もう1度オンライン上で簡単な手続きをすすめ、GooglePixel5a 端末の電源を落とした後、端末内の SIM カードを交換する作業をした。これもすんなりうまくいった。
だら長とは、だらだら長文の略です。タイトルに「#001」とある通り、これは最初のだら長投稿になります。なんでまたこんなことをしだしたのかといえば、文章を書き進めることがスムーズにいけばいいな、抵抗を減らしたいなというのが個人的にありまして、要は習慣作りのためといったところです。
今晩は眠れない夜のだら長です、毎回そうなるような気もしますが……。日曜の夜で入眠がスムーズにいかないというのもそうですが、実は今日、夕方についつい寝てしまいました。そうしたこともあってこうした夜を過ごしているわけです……。なんとも情けない。
さて、せっかくなので、今日はつい先日購入したものについて書いてみたいと思います。先日、あまった時間でひさしぶりにリサイクルショップに入ってみました。
中古のタブレットがあれば買って帰ろうかなと思っていたのですが、まったくの品薄のしょっぱい状態でそちらは断念。ちなみにタブレットは数年前、だいたい4年前くらいに購入したものが昨年とうとう起動しなくなってしまい、開発の目的でもやはり持っておくと便利だなということで買い直したいと思っていました。
タブレットはあきらめて、服飾コーナーへ。近ごろ半袖Tシャツの枚数が意外と少ないことに気づき、もう1枚くらい増やしてもいいかなと思っていたところでした。そして手持ちの半袖Tシャツは、どれも暗色が多く……たとえば白Tなんかは傷んで捨てるサイクルがあるのですが、黒Tはというと、そうしたものはなく、傷んでいたとしても目立たないので長く着れてしまうんですね。そうしたわけで、暗色ばかりが手持ちに残ってしまっている状態というわけです。そこで、今回は明るい色、できれば白Tシャツがあればぜひ買おうといった面持ちで物色開始。
半袖Tシャツは、最終的に1枚、それもお目当て念願の白Tを購入することにしました。思えば白Tなんて購入したのはいつぶりだろうか……もしかすると、独り立ちしてから初めてかもしれない……くらいには記憶になく、ひさびさのピックアップアイテムになりました。デザインは、むねに大きくリーバイスの真っ赤なロゴが入ったものです。腰のあたりには赤いロゴのタグがついていて、それがおしゃれなのも気に入りました。ロゴTシャツなんてミーハーで安易なセレクトだったかもしれませんが、これが500円だったので、安易ならそれはそれで間違いないのかもしれないと半ば思考放棄して決めました。ちなみにもう1点迷ったTシャツがありまして、それはコムサイズムの白Tで、そちらもむねの片隅に灰色の控えめなロゴが入っているデザインでした。そして300円。迷いましたが、かっこよさでいうとリーバイスだったし、値段もまあどちらも安くて許容範囲だったのでちょっとの差は目をつむることにしました。自分は出不精で買い物嫌いなタイプだったりもするので、これを逃すとまた半袖Tシャツ難民に戻って長期を彷徨うことになるだろうというのもわかっていたので、そうした意味でも失敗は少ない方がラク、1回で確実に済ませたかったりします。そうしたわけで、半袖Tシャツは無事にお買い上げとなりました。
後日談ですが、友人にお披露目したところ、あまり評判がよくありませんでした……。理由は安易すぎてつまらないとのことでした。手持ちの半袖Tシャツは凝ったデザインのものばかりだったので、それに見慣れた友人からすると、安易さが悪目立ちしてしまったかもしれません。とはいえ、本人は気に入っているので、まったく気にせず着こなしていこうと思っています。
さて、服飾コーナーではもう1点、目に留まったものがありました。それは灰色のレースカーディガンです。夏場に羽織るのにもちょうどよい通気性で、フードがついているところがかっちりしすぎず、自分に身に着けやすく良いデザインだと思いました。こちらはまだお披露目していませんが、今年の夏に着ていこうと思います。そうだ、長袖なので春にも秋にも着られていいですね。
服飾コーナーでの購入品はその2点でした。あとはジーンズが買えればよかったなあと思うのですが、残念ながらほしい色の薄めのブルーのジーンズはありませんでした。それと、薄手の長袖Tシャツも良いのがあれば買いたかったのですが、こちらもイマイチでした。ちなみに、薄手の長袖Tシャツはかれこれ3年くらい難民でして、買い物無精を直せば解決するだけの単純明快な問題ではありますが、今年も難民として過ごすことになりそう……いや、今年こそは難民から脱却することを目標に、今後に期待したいと思います、自分に期待。春、秋になるたび困るんですよね、ちょうど良い服があると朝がラクになるのでがんばろう。
購入品ですが最後に、カラトリーコーナーでワイングラスを物色し、無事にペアグラスを手に入れました。こちらは自分で使う用でもありますが、客人にお水を出すときなんかにも使えておしゃれだしほしいなと思っていました。本格的なものではなく、小さなサイズで丸くてちょうどよいものがみつかって良かったです。しかもちゃんとペアでそろっているし。実は数カ月前に、ペアグラスの片方を割ってしまったことがありました。同じものを手に入れるのは大変なので、できるだけ長く使いたいですね……。
購入品はこれで以上です。購入後は、書籍コーナーもみてみました。きれいな本が110円からのお値段で販売されており、これはまた日を改めて物色に来たいなと思いました。普段はオンラインで中古本を購入することが多く、それも検索できたり調べものをしながら本を探すのがラクだからという理由なのですが、店舗で探すのはそれはそれで楽しそうな雰囲気でした。次回は、タブレットと書籍ですね。
そして脇にはマンガコーナーがあり、そこには全巻セットがずらりと並んでいました。手頃な価格で大人買いなんて、夢があってついついほしくなってしまいましたが、これまた帰りが徒歩であることを考えると、日を改めた方が良さそうなボリューム、重さでした。ちなみに、気になったのは進撃の巨人、ゴールデンカムイ、鋼の錬金術師です。正直、マンガは読まないし、よくわかりません。ただ、進撃の巨人はなぜか読んでいて、コミックも購入していたのですが、引っ越しを経て紛失してしまいました。おそらく、友人に借りパクされたのであろうと踏んでいます。戻ってこないならこないで、新しく買い直すのもありです。全巻セットならラクな上に値段も手ごろですしね。ゴールデンカムイは、友人に勧められてすでに5年ほど経っており、未だに読んでいないのでいい加減読みたいと思っているからでした。その友人が勧めるものはまちがいがないので、読むだけですしマンガ喫茶でもいいかもしれませんが、きちんと腰を据えて作品と付き合いたいなと思っているので、機会を作って購入もありだなと考えたところです。鋼の錬金術師は、アニメを観たことがあるのですが、マンガを読んだことがないのでゆっくり読んでみるのもいいかもなと思っていました。マンガ同様、アニメもろくに知らないし観たことがないのですが、大人になって、ちゃんと観てみたアニメのひとつが鋼の錬金術師でした。とってもおもしろかった。
そんなところで、リサイクルショップは個人的には充実の結果になりました。また行きたい要素も多々あったりで、次は規模の大きいお店を探して出かけるのもいいかもしれません。
今回のだら長は、リサイクルショップ体験記でしたね。出不精になったころに見返して、脱出の機会になればいいかもしれません……脱ひきこもり!めざして動こう!自分!
これでソリューションエクスプローラーでフォームファイルを開くときにコードで表示されるようになります。
もしデザイナーで開きたい場合は、右クリックから「デザイナーの表示」を選択して開きます。
JavaScriptでtextareaをフォーカスした場合の全選択処理。
<textarea class="result" name="output" onfocus="this.select();">
テキストエリアの初期値です。
</textarea>
「onfocus="this.select();"」を追加するだけです。
クリックするとテキストが選択状態になります。
PHPで文字列の置換をする関数のメモ。
str_replace(
);
戻り値は、置換後の文字列。
$str = str_replace("あ", "★", "あいうえおあいうえお", $count);
echo $str; // $str = ★いうえお★いうえお
echo $count; // $count = 2
preg_replace(
);
戻り値は、置換後の文字列。
$str = preg_replace("(,\s)", "★", "あいうえお,あいうえお, あいうえお, あいうえお", 1, $count);
echo $str; // $str = あいうえお,あいうえお★あいうえお, あいうえお
echo $count; // $count = 1
「半角カンマ+半角空白 "(,\s)" 」を「★」に置換しています。
4番目の引数に「1」を指定しているので、最初にマッチした1箇所のみが置換されています。
mb_ereg_replace(
);
戻り値は、置換後の文字列。
todo: 検索オプションの詳細を調べる。
$str = mb_ereg_replace("[^ -~]", "★", "abcあABCい123");
echo $str; // $str = abc★ABC★1★3
文字列「abcあABCい123」がマルチバイト文字列の場合の置換です。
半角英数記号以外の文字を「★」に置換しています。
「あ」「い」「2」が全角のため置換されています。
todo: マルチバイト用の置換……文字コードむずかしい。