全22件 (22件中 1-22件目)
1
会社のPCで共有ファイルサーバーにアクセスするときに以下の文言のエラーが出る時があった。「同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。サーバーまたは共有リソースへの以前の接続をすべて切断してから、再試行してください。」うちの会社では月1でパスワード変更を行っているのだが、そのタイミングでの発生が多い気がする。これPCを再起動せずにコマンドで解消できるようなので、ご紹介。使用するコマンドはnet useこれ、そのまま打つとこんな感じで接続している共有フォルダが見える。deleteオプションを付けると上のように出ている接続を切断できる。「*」を指定すると全部切断される。net use * /deleteこれを打てばこんな感じでYes/Noを問い合わせてくるので「Y」割り当てられたネットワークドライブとかも切断するので、再度認証しなおすなりする必要はある。ROOMで気になった商品を掲載してます。
2023.04.05
コメント(1)
Visual StudioでのC++コーディングswitch文を書くと条件の箇所がハイライト表示されますが、この状態で定義済みのenumを条件に入れるとcase文を自動で入れてくれる。こんな機能があったことに先日気付きました。今のVisual Studioは便利になってるんだなぁ、としみじみ感じた。【ふるさと納税】【阿蘇・熊本復興記念】高森限定 馬づくしバラエティー 6種 合計730g タレ・ソース付き (赤身ブロック タタキ 桜うまトロ 線切り フタエゴダイス ハンバーグ タレ おろしポン酢 ユッケのタレ 万能ソース) 馬肉 馬刺し 馬刺 赤身 ふたえご 冷凍 送料無料スキーグローブ 完全防水4層構造 スマホ操作可能 3サイズ 手袋 手の甲ポケット付 裏起毛 スキー手袋 超撥水 メンズ レディース スノーボード グローブ スノボ スノボー ウェア スキー手袋ROOMで気になった商品を掲載してます。
2022.01.20
コメント(0)
うちではブルーレイレコーダーのディーガを使っている。ディーガには、どこでもディーガというアプリがあって外出中でもスマホ・タブレットから放送中の番組やレコーダーに録画した番組を見れる。これを期待して購入したのだが…。いざ設置してみてどこでもディーガから視聴できるか試して、最初は問題なく機器登録もできて視聴できていた。しかししばらくしてから、自宅内で視聴状態が宅外になっていることに気付いた。どこでもディーガはディーガとのペアリングを定期的に更新しないといけないのだけれど、宅外になっているとペアリングの更新ができない。LANケーブルを抜き差ししたり、Wi-Fiルーターを再起動すると一時的に宅内に戻るので凌いでいたけどなかなか面倒だし、しばらくするとやっぱり宅外に戻る。どこでもディーガだけじゃなく、PS3を使って視聴しようともした。PS3はDLNAでDTCP-IP対応機の視聴ができるので、別部屋にPS3を置いてディーガを介してテレビが見れる。しかしPS3上でメディアサーバーとしてたまに出てくるものの、高確率で表示されず無線LANの電波強度が弱いのかなと思ってしばらく諦めていた。その時の環境はこんな感じ。ディーガ:DMR-4CW200Wi-Fiルーター:Tp-Link Archer A9 ディーガ ―<有線>― Wifiルーター(アクセスポイント運用) ―<無線>― スマホ・タブレット・PS3 │ ルーター一体型ONUその後、ふとディーガの接続を無線に変更してみたら、どこでもディーガの表示が宅内になったのだ。PS3からの視聴も安定して見れるようになった。有線接続時はPS3起動してからしばらく時間が経つとメディアサーバーとして出てくる感じだったのが、起動してすぐに表示されるようになった。正直どういう仕様なのかよくわからないけど、ディーガは無線LAN接続したほうが安定するみたいだ。パナソニック 2TB 3チューナー ブルーレイレコーダー 4Kチューナー内蔵 4K放送長時間録画/W録画対応 おうちクラウドDIGA DMR-4CW200【即納】パナソニック ブルーレイディスクレコーダー おうちクラウドディーガ 4Kチューナー内蔵モデル 2TB HDD DMR-4W200【送料無料】【KK9N0D18P】TP-Link Archer A9 AC1900 デュアルバンド ギガビット 無線LANルーター 1300Mbps+600Mbps
2021.11.21
コメント(0)
PCでBlu-rayを再生するのは、大体有料ソフトでライセンス周りの更新が必要だったりして、更新しないと新しめのBlu-rayディスクが再生できなくなってしまいますね。そんな中、DVDやBlu-rayディスクにも対応しているフリーの4K・HD動画再生ソフトがありました。フリーなのにAACSに対応した最新のBlu-rayディスクでも問題なく再生できちゃいます。対応OSは、Windows 7/8/8.1/10/11Mac版もあります。対応している動画フォーマットは以下の通り。(M4V、3G2、3GP、NSV、TP、TS、TY、RMVB、MOV、QT、DIVX、XVID、VOB、PVA、WMV、ASF、OGM 、M2V、AVI、AVC、DAT、MPG、MPEG、MP4、MKV、VIV、DV、FLI、FLV、WPL、DVR-MS、MTS、M2T 、M2TS、EVO、OGV、AVS、VC1、H264、RCV、WEBM、BDMV、WTV)他のソフトの無料版ではよくある再生時にロゴを入れてきたりすることもないので、再生用には十分です。ただし、一時停止すると広告が出ます。まぁ一時停止中なので特に問題ないでしょう。有料登録できるようですが、有料で使用できるようになるのはBlu-ray/DVDのMKV変換機能のようです。再生するだけであれば不要です。ダウンロードは以下からLeawo Blu-ray PlayerROOMで気になった商品を掲載してます。
2021.09.24
コメント(0)
Windowsで別アプリケーションの出力結果が欲しいとき、パイプを使用する。_popenを使うと手っ取り早くできる。ただし、実行時にコマンドプロンプトが出てきて非表示にできないのと、標準入力と標準出力を同時に設定できない。これが嫌な時は、おとなしくCreateProcessで作ろう。_popen, _wpopen : Microsoft Docsサンプルコード std::shared_ptr<FILE> pipe(_popen("count.exe", "r"), [](FILE* ptr) { _pclose(ptr); }); if (!pipe) { exit(-1); } char buff[256] = {}; while (feof(pipe.get()) == false) { auto get_result = fgets(buff, 256, pipe.get()); if (get_result != nullptr) { std::cout << buff << std::endl; } }_popenで実行したアプリの出力を feof で待っているが、呼び出されたアプリ(サンプルではcount.exe)が終了するとループを抜ける。自作アプリじゃなくても ping などのコマンドの結果をもらうのに使用すると良い。ROOMで気になった商品を掲載してます。
2021.09.19
コメント(0)
有休を強いられて暇だったので、ドライブがてら湯田貯砂ダムを散策してきました。そこそこ近場だけど、岩手行くときにいつも通り過ぎるばかりでダム自体をまじめに見たことなかったのでお初です。「錦秋湖大滝ライトアップ」というのを実施していて、日本夜景遺産というのに認定されているのだとか。滝のような水流を作る構造をしていて、17本の水流の内側からライトアップを実施しています。(夕方)(夜)ライトアップされた水流が綺麗ですね。ちなみに滝の裏側が通路になっていて、昼間に行くと通路に入れて内側から滝を見ることができます。開放時間: 9:00~16:30湯田貯砂ダムはこちら。自由に出入り可能で見学は無料です。湯田ダム お知らせROOMで気になった商品を掲載してます。【レビューでクーポンプレゼント】Sifflus(シフラス) 3WAY自立式ポータブルハンモック チェア生地&クッション ハンモック用生地セット クッションのみ 室内 折りたたみ おしゃれ アウトドア 屋外 キャンプ ハンモックチェア テレワークラグマット ラグ 通気性 心地良い 極上 コットン 快適 オールシーズン 頬ずり 快適 柔らかい 軽量 子供部屋 リビング 書斎 折り畳み 手洗い インド綿 5サイズ 保湿性 100% ネージュ 品質保証 ISSEIKI GOODS NEIGE 266-00002
2021.09.11
コメント(0)
MPAndroidChartで表示したグラフ上にツールチップを表示する方法。こういうやつ基本的に作者の説明のまま実装でいいですね。https://github.com/PhilJay/MPAndroidChart/wiki/MarkerView日本語で解説してる人ほとんどいなかったので、英語圏とか見ながらやってできるまで時間がかかった…。1.プロジェクトのフォルダの app\src\main\res\layout にツールチップ用のXMLファイルを作成する。・marker_view.xml(ファイル名はお好みで)<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="40dp" android:background="#999999" tools:ignore="Overdraw"> <TextView android:id="@+id/marker_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="7dp" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:text="" android:textSize="12dp" android:textColor="#ffffff" android:ellipsize="end" android:gravity="center_vertical|center_horizontal" android:textAppearance="?android:attr/textAppearanceSmall" /></RelativeLayout>2.ソースにはCustomMarkerViewのクラスを作るリンク先の作者サンプルのgetXOffset()、getYOffset()は使えないみたい?代わりにMPPointFというのがあるようなのでそれを使う。ここでfindViewByIdに指定するIDはツールチップ用のXMLとして作成したファイルの、TextViewのIDを使う。 public class CustomMarkerView extends com.github.mikephil.charting.components.MarkerView { private TextView tvContent; public CustomMarkerView (Context context, int layoutResource) { super(context, layoutResource); tvContent = (TextView) findViewById(R.id.marker_view); } @Override public void refreshContent(Entry e, Highlight highlight) { tvContent.setText("表示したいテキスト"); super.refreshContent(e, highlight); } private com.github.mikephil.charting.utils.MPPointF mOffset; @Override public com.github.mikephil.charting.utils.MPPointF getOffset() { if(mOffset == null) { mOffset = new com.github.mikephil.charting.utils.MPPointF(-(getWidth() / 2), -getHeight()-5); } return mOffset; } }3.グラフにCustomMarkerViewのクラスをセットする作成したChartデータにCustomMarkerViewクラスをセットすれば、グラフを選択したときにツールチップが出るようになる。CustomMarkerViewクラス作成時の第2引数(layoutResource)はツールチップ用のXMLファイルの名前を指定。R.layout.(XMLファイル名) com.github.mikephil.charting.components.IMarker marker = new CustomMarkerView(context, R.layout.marker_view); Chart.setMarkerView(marker);setMarkerViewになんか警告出てるけど、とりあえず使える。と、ここまで作ってみたけどツールチップ出したままグラフを1つ1つ非表示にしていくと、アプリが落っこちる。出したツールチップの消し方どうするんだろう?ハイライト表示消去したらいいようだ。画面更新時に以下を入れたら修正できた。Chart.highlightValue(null);ROOMで気になった商品を掲載してます。送料無料 しゃぶしゃぶ 鹿児島黒豚 短鼻豚 セット 2kg 【肉 ギフト お中元 残暑見舞い 敬老の日 お肉 食べ物 食べ物 食品 御中元 内祝い お祝い 大人数 大容量 お取り寄せ 食品 高級 内祝い 内祝 豚肉 美味しい 絶品 贈答 おいしい 国産】ZIPで紹介されました!網戸も洗える!引っぱリンガー姉妹品 はぼき 健康110番 掃除 ホコリ 黄砂 空気清浄機 フィルター サッシ ブラインド 網戸 花粉 隙間 PC キーボード ペットボトル ホース 水洗い 掃除ブラシ 本棚 観葉植物 猫の毛 犬 猫 グルーミング n-5
2021.09.05
コメント(0)
SourcetreeでGitHubにプッシュしようとしたら、認証っぽいエラーが出た。🤔🤔🤔🤔🤔少しの間触ってなかったけど、今までできてたので何事かと…remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.【メッセージに表示されたURL】https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ちょいと調べてみたら、2021年8月13日以降パスワード認証が出来なくなったみたい。対応としては個人アクセストークンなるものを作る必要があるとか。アクセストークンの作り方はGitHubのドキュメントを見ればOK。https://docs.github.com/ja/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-tokenSourcetreeの設定を変更する。もともとSourcetreeに設定していたGitHubのアカウント設定を削除して、追加し直した。ホスティングサービスGitHubにして、認証をOAuthにする。「OAuthトークンを再読み込み」を押下すると、GitHubのwebページが開くので「Authorize atlassian」を押下する。ダイアログ下に「認証に成功」と出たらOK。あとは、リポジトリ設定でURLを変更する。設定するURLはhttps://github.com/(ユーザ名)/(リポジトリ名).gitになってたところをhttps://(アクセストークン)@github.com/(ユーザ名)/(リポジトリ名).gitにしたらプッシュできた。ROOMで気になった商品を掲載してます。
2021.08.29
コメント(2)
Androidアプリにオプションメニューを追加する。こういうやつまず、プロジェクトディレクトリの app\src\main\res\menu にxmlファイルを作成する。XMLの中にメニュー項目を定義していく。メニューのXMLファイルの中は下のように書く。<menu xmlns:android="http://schemas.android.com/apk/res/android" ><item android:id="@+id/visible_total" android:checkable="true" android:showAsAction="never" android:title="表示:合計"/></menu>itemがメニューの1項目。android:title → メニューの項目名。android:checkable → メニューの項目をチェックボックスにする。そんな感じでメニュー項目を必要なだけ作る。メニュー用のXMLを作ったらソースのほうにメニューの初期化を作る。 @Override public boolean onCreateOptionsMenu(android.view.Menu menu) { getMenuInflater().inflate(R.menu.main, menu); // メニューのチェックボックスのデフォルト設定 android.view.MenuItem item; item = menu.findItem(R.id.visible_total); item.setChecked(check_visible_total); return true; }次にオプションメニューを選択したときの処理を追加する。ここのitemにオプションメニューで選択された要素が入ってくる。item.getItemId() で取得したIdに応じた動作を書く。サンプルでは、メニューのチェックボックスが選択されたら、チェック状態をトグルしてグラフを描画しなおす動作をしている。 @Override public boolean onOptionsItemSelected(android.view.MenuItem item) { switch(item.getItemId()){ case R.id.visible_total: check_visible_total = !item.isChecked(); item.setChecked(check_visible_total); ChartDisp(getApplicationContext()); return true; } return super.onOptionsItemSelected(item); }これで出来上がったのがこんな感じ。メニューでグラフ線の表示非表示を切り替えられるようにした。参考:Androidデベロッパー - メニュー【5年間延長保証!】EVICIV モバイルモニター 15.6インチ 1080P モバイルディスプレイ/薄型/IPSパネル/USB Type-C/mini HDMI/スリーブケース付 3.5mmイヤホンジャック ノートパソコン、スマホ対応 在宅勤務 送料無料 PSE認証 日本語取説 3年+2年間保証 EVC-1519デスクライト Qiワイヤレス充電 ナイトライト Herblite タッチ式 常夜灯 ベッドサイドランプ LED 無段階調光 デバイス二台同時に充電可能 寝室用 強化ガラスパネル 電気スタンド 180°角度調整ROOMで気になった商品を掲載してます。
2021.08.29
コメント(0)
今まで使いどころがわからなかった、ラムダ式が便利なのを実感したこと。他クラスのget/setアクセサをたくさん作らないといけないとき、ラムダ式でデータを取り出す部分だけ共通化すると書く量が減らせる。データ保持用クラスunordered_mapでデータを格納している。unordered_mapのキーには文字列を与えているので、使う側が指定してきたキー文字列をcount()でチェックしている。何も考えないでget/setアクセサを作ると、用意したいアクセサの数だけチェック処理を書かないといけない。class DataAccess{public: struct MyData { std::string str = {}; int num = 0; MyData(std::string in_str, int in_num) { str = in_str; num = in_num; } }; DataAccess() { umap_data.emplace("1st", MyData("data1", 100)); umap_data.emplace("2nd", MyData("data2", 200)); umap_data.emplace("3rd", MyData("data3", 300)); umap_data.emplace("4th", MyData("data4", 400)); umap_data.emplace("5th", MyData("data5", 500)); } std::function<MyData(std::string key)> getMyData() { return [&](std::string key) { if (umap_data.count(key) == 0) { return MyData("data not found", 0); } return umap_data.find(key)->second; }; }private: std::unordered_map<std::string, DataAccess::MyData> umap_data;};main関数ラムダ式で定義した文字列を引数にしてMyDataを取得する関数を使う。int main(){ DataAccess data_access = {}; auto func = data_access.getMyData(); std::vector<std::string> arguments; arguments.push_back("1st"); arguments.push_back("2nd"); arguments.push_back("6th"); arguments.push_back("3rd"); arguments.push_back("4th"); arguments.push_back("5th"); arguments.push_back("9th"); for(auto& argument : arguments) std::cout << "string : " << func(argument).str << " / num : " << func(argument).num << std::endl;}実行結果:string : data1 / num : 100string : data2 / num : 200string : data not found / num : 0string : data3 / num : 300string : data4 / num : 400string : data5 / num : 500string : data not found / num : 0★楽天デイリーランキング1位★ 室内用テント プライバシーテント リモートワーク 個室 室内 テント テレワーク 在宅ワーク ぼっちてんと ゲーミングテント 簡易テント 窓付き コンパクト 収納バッグ 在宅勤務 リモート 災害 リモートオフィス【ふるさと納税】国産!かごしま黒豚さつまロールステーキ20個(合計1kg)鹿児島県産黒豚肉を手作業で巻いた冷凍ロールステーキを小分けパックでお届け!お弁当やおかずに最適【AKR Food Company】
2021.08.16
コメント(0)
とりあえず簡単に動くものができた。マネーフォワードのプレミアムに登録してないけど資産推移のグラフが見たいと思った。資産推移CSVファイルをグラフ表示するツール。マネーフォワードからダウンロードした資産推移_YYYYMM月.csvをAndroid端末のstorage/emulated/0/Android/data/com.AssetsChartに置くとその月のグラフを表示する。https://github.com/metro0321/AssetsChartシュガーバターサンドの木 30個入 012503 内祝い お返し お菓子 菓子折り スイーツ 洋菓子 クッキー 出産内祝い 快気祝い 結婚内祝い 敬老の日 詰め合わせ 手土産 お中元 銀のぶどう 個包装 シュガーバターの木 ギフト プレゼント 退職 引越し 転勤 小分け お供え長浜屋台とんこつ1食×6袋|ポスト投函専用本格 半生麺濃厚スープ 博多細麺九州ラーメン長浜らーめんポイント消化 送料無料
2021.08.13
コメント(0)
以前、Androidアプリでファイル読み込みにassetsフォルダを使ったと書いたがこのassetsはビルド時に含むファイルのため、Androidのファイラーなどからは見えないようだ。Androidのストレージ領域は、・内部ストレージ・外部ストレージの2つに分かれていて、Androidでファイラーなどから見えるストレージ領域は外部ストレージとなっている。アプリで保存したファイルを取り出したり、アプリで使うファイルを外から取り込みたいことを考えると、外部ストレージを使ったほうがよさそうだ。アプリの外部ストレージのデフォルトディレクトリは次のようになる。/storage/emulated/0/Android/data/(アプリのパッケージ名)外部ストレージのパスを取得するAPIが用意されている。String dir = getExternalFilesDir(null)取得した文字列の末尾に 「/」 がつかないので、ファイル名と連結させる場合は追加する必要がある。String fileName = getExternalFilesDir(null) + "/file.txt";・サンプル String fileName = getExternalFilesDir(null) + "/file.txt"; try { java.io.FileInputStream inputStream = new java.io.FileInputStream(new java.io.File(fileName)); java.io.InputStreamReader inputStreamReader = new java.io.InputStreamReader(inputStream); java.io.BufferedReader bufferReader = new java.io.BufferedReader(inputStreamReader); String line; while ((line = bufferReader.readLine()) != null) { // 読み処理 } bufferReader.close(); } catch (java.io.FileNotFoundException e) { e.printStackTrace(); } catch (java.io.IOException e) { e.printStackTrace(); } TP−Link 無線LAN中継器 RE200 433Mbps+300Mbps デュアルバンド 3年保証 RE200/R [RE200R]カルパス 上杉カルパス150g2袋 1000円 送料無料 つまみ 国産 酒の肴 ビール ワインの サラミ 米沢食肉公社 おやつ 本格カルパス キャンプ 非常食 プレゼント 米沢牛スープ 贅沢の極み 武将 やみつき 珍味 買い回り
2021.08.12
コメント(0)
MPAndroidChartを使って折れ線グラフを描画できるようにした続きで、今度は複数の折れ線グラフを表示する。LineChart(※1)が表示する折れ線グラフ全体のオブジェクトで、その中にLineDataSet(※2)を使ってデータを設定していく。 LineChart Chart = (LineChart) findViewById(R.id.lineChart); LineDataSet values_totalDataSet = new LineDataSet(values_total, legend.legend_total); values_totalDataSet.setColor(ColorTemplate.COLORFUL_COLORS[0]); values_totalDataSet.setLineWidth(2); values_totalDataSet.setDrawCircles(false); LineDataSet values_cashDataSet = new LineDataSet(values_cash, legend.legend_cash); values_cashDataSet.setColor(ColorTemplate.COLORFUL_COLORS[1]); values_cashDataSet.setLineWidth(2); values_cashDataSet.setDrawCircles(false); LineDataSet values_stocksDataSet = new LineDataSet(values_stocks, legend.legend_stocks); values_stocksDataSet.setColor(ColorTemplate.COLORFUL_COLORS[2]); values_stocksDataSet.setLineWidth(2); values_stocksDataSet.setDrawCircles(false); LineDataSet values_investDataSet = new LineDataSet(values_invest, legend.legend_invest); values_investDataSet.setColor(ColorTemplate.COLORFUL_COLORS[3]); values_investDataSet.setLineWidth(2); values_investDataSet.setDrawCircles(false); LineDataSet values_pointsDataSet = new LineDataSet(values_points, legend.legend_points); values_pointsDataSet.setColor(ColorTemplate.COLORFUL_COLORS[4]); values_pointsDataSet.setLineWidth(2); values_pointsDataSet.setDrawCircles(false);new LineDataSetは(1つの折れ線グラフ用のデータArray, 凡例用の文字列) で構成している。このLineDataSetを必要なだけ作る。※1:com.github.mikephil.charting.charts.LineChart※2:com.github.mikephil.charting.data.LineDataSetLineDataSetの後は各折れ線グラフの設定を行うもので、setColorは折れ線の色指定setLineWidthは折れ線の線の太さsetDrawCirclesは折れ線グラフに点を表示するかどうかの指定となっている。最後にLineData(※3)に、作成したLineDataSetをaddDataSetで追加していく。※3:com.github.mikephil.charting.data.LineData LineData lineData = new LineData(); lineData.addDataSet(values_totalDataSet); lineData.addDataSet(values_cashDataSet); lineData.addDataSet(values_stocksDataSet); lineData.addDataSet(values_investDataSet); lineData.addDataSet(values_pointsDataSet); Chart.setData(lineData);これで表示できたグラフがこんな感じになった。メトロイド ドレッド【Sサイズ】アウトドアテーブル コンパクト 軽量 折りたたみ 焚き火 バーベキュー ソロ キャンプ アウトドア ロー テーブル 耐熱 机 自宅 収納 高さ調整 フォールディングテーブル GIMMICK公式 2way
2021.08.08
コメント(0)
C++のstd::unordered_mapは重複しないパラメータをキーにしてデータを格納しておける便利なやつ。unordered_mapのキーにはintやcharなど基本的な型だけでなくstd::stringなどよく使うC++ STLのクラスも使える。しかし、自作した構造体やクラスは単純に使えない。キーとなるパラメータはハッシュ値に変換されるため、自分でハッシュ変換する関数を用意しないといけない。ハッシュ関数は(3)の部分に指定する。std::unordered_map<(1), (2), (3)>以下、文字列と数値をキーにするサンプルコード#include <iostream>#include <string>#include <unordered_map>namespace UMap{ struct Key { std::string id = {}; int index = -1; Key() {} Key(const std::string in_id, int in_index) { id = in_id; index = in_index; } }; inline bool operator==(const UMap::Key& map_key1,const UMap::Key& map_key2) { return (map_key1.id == map_key2.id) && (map_key1.index == map_key2.index); } struct Hash { inline size_t operator()(const UMap::Key& map_key) const { const auto hash1 = std::hash<std::string>()(map_key.id); const auto hash2 = std::hash<int>()(map_key.index); return hash1 ^ (hash2 << 1); } };};int main(){ std::unordered_map<UMap::Key, std::string, UMap::Hash> umap_data; UMap::Key map_key("id_1", 2); umap_data.emplace(map_key, "id_1, index_2"); if (umap_data.count(map_key) == 0) { std::cout << "key not found" << std::endl; } else { std::cout << umap_data.find(map_key)->second << std::endl; }}出力id_1, index_2【コスパ最高級】タブレット 10インチ wi-fiモデル 敬老の日 本体 android 10 新品 送料無料 ROM128GB RAM4GB/6GB 1920×1200 WUXGA 8コア 5GHz対応 nanoSIM 4G LTE GPS Bluetooth TECLAST M40SE/M40【予約】2021年収穫次第お届け送料無料【信州産 1.8 kg】家庭用 数量限定シャインマスカット 訳あり 3房〜5房入り9月中旬より順次発送いたします。 着日のご指定はできません!
2021.08.01
コメント(0)
とりあえず描画だけできた前回・今回ハマったことMPAndroidChartで横軸を日付の文字列にしようとした。横軸を文字列にするにはIndexAxisValueFormatterというのを使えばいいらしい。いざ、サンプルコードを調べて真似してみるもののなんか出てて使えない…。情報古くて今では使えないのかとか色々想像してしばらく悩んだ末にふと気付いた…import書いてなかった~!ので以下を追加。import com.github.mikephil.charting.formatter.*;ネットに書かれているサンプルコードってimportのことまで書いてないから、慣れてないとよく忘れるね。以下が今回のコードpublic class AndroidChart extends Activity { /** アクティビティが最初に作成されるときに呼び出されます。 */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.android_chart); LineChart Chart = (LineChart) findViewById(R.id.lineChartExample); Chart.getAxisRight().setEnabled(false); Chart.getAxisLeft().setEnabled(true); Chart.setDrawGridBackground(true); Chart.setEnabled(true); Chart.setTouchEnabled(true); Chart.setPinchZoom(true); Chart.setDoubleTapToZoomEnabled(true); Chart.setScaleEnabled(true); Chart.getLegend().setEnabled(true); //X軸周り XAxis xAxis = Chart.getXAxis(); xAxis.setDrawLabels(true); xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); xAxis.setDrawGridLines(true); ArrayList<LineDataSet> barDataSets = new ArrayList<LineDataSet>(); ArrayList<Entry> values_total = new ArrayList<Entry>(); AndroidChart.CsvRead readData = new AndroidChart.CsvRead(); readData.reader(getApplicationContext()); for(int i=0;i<readData.assetList.size();i++) { values_total.add(new Entry(i,readData.assetList.get(i).total)); } IndexAxisValueFormatter indexFormatter = new IndexAxisValueFormatter(readData.getDateList()); xAxis.setValueFormatter(indexFormatter); ListTitleData legend = new ListTitleData(); LineDataSet values_totalDataSet = new LineDataSet(values_total, legend.legend_total); values_totalDataSet.setColor(ColorTemplate.COLORFUL_COLORS[3]); barDataSets.add(values_totalDataSet); LineData lineData = new LineData(values_totalDataSet); Chart.setData(lineData); Chart.invalidate(); Chart.animateY(2000,Easing.EaseInBack); } public class AssetListData { String date; int total; public void setDate(String date) { this.date = date; } public String getDate() { return this.date; } public void setTotal(int total) { this.total = total; } public int getTotal() { return this.total; } } public class ListTitleData { String legend_date = "日付"; String legend_total = "合計"; } public class CsvRead { List<AssetListData> assetList = new ArrayList<AssetListData>(); public ArrayList<String> getDateList() { ArrayList<String> label = new ArrayList<String>(); for (int i = 0; i < assetList.size(); i++) label.add(assetList.get(i).date); return label; } public void reader(Context context) { android.content.res.AssetManager assetManager = context.getResources().getAssets(); try { java.io.InputStream inputStream = assetManager.open("data.csv"); java.io.InputStreamReader inputStreamReader = new java.io.InputStreamReader(inputStream); java.io.BufferedReader bufferReader = new java.io.BufferedReader(inputStreamReader); String line; while ((line = bufferReader.readLine()) != null) { AssetListData data = new AssetListData(); String[] RowData = line.split(","); data.setDate(RowData[0]); data.setTotal(Integer.valueOf(RowData[1])); assetList.add(data); } bufferReader.close(); } catch (java.io.IOException e) { e.printStackTrace(); } } }}沖縄ジェラート 8個入りセット送料無料 敬老の日 おしゃれ 夏ギフト 詰め合わせ 選べる やんばるジェラート ヤンバルジェラート ジェラート バレンタインデー ホワイトデー 父の日 のし 内祝いパッド付のノートパソコン入れ、自慢のデザイン、旅行者が望むすべての機能が備わっています、15インチサイズのノートパソコン入れる
2021.07.31
コメント(0)
MPAndroidChartでグラフ表示できたので、csvファイルからデータを読み取ってグラフを表示したい。こちら(AndroidでCSVファイルを読み込んでリスト表示する - Qiita)を参考にしたところ、assetsフォルダを作成してそこにcsvファイルを置いておく必要があるらしい。でも、参考にしたのはAndroidStudioぽい。VisualStudio環境と見比べてみたら、manifestsとjavaフォルダと同列なのでmainの下になるのかな。とりあえずこれで、ソース書いてみたら案外あっさりできた。ソースについてはまた別に書きます。即納 サンシェード フロントガラス 傘式 パラソル 傘型 フロントサンシェード 車用 折りたたみ傘 日除け 日よけ uv 紫外線カット 10本骨 コンパクト 紫外線対策 遮光 断熱 収納便利 車サンシェード 車保護 車用 フロントカバー カーサンシェード 車種汎用 収納ポーチ付き{限定カラー}・ホールアース《ギア》マーメイド チェア/ブラック/ Whole Earth/Mermaid Chair - Chair/Black #WE23DC38 WE23DC35 アウトドア ソロ キャンプ バーベキュー BBQ インテリア 黒 クラムチェア イス 折りたたみ スタイリッシュ
2021.07.26
コメント(0)
仕事ではテンキーのないノートPCを使用していて、個人的にテンキーが欲しいので自前のキーボードを接続して使っている。通常時はNumLockをONにしているが、移動して使用する場合ノートPC側のキーボードにはテンキーがないのでNumLockがONのままになっていると入力が変わって困ることがよくある。キーボードによってはNumLockがONなのかOFFなのか見た目で分からなかったりする。なので、PCのNumLockを監視して常時ONにしておくためのツールを作った。https://www.dropbox.com/sh/e12mmprnr9y9eog/AACXhR81BHt8ebWGNBopE1cDa?dl=0【使い方】起動するとタスクトレイに入ります。初回起動時は以下のダイアログが出ます。OKを選択すると設定画面が表示されます。デバイス一覧:接続されているキーボードデバイスをリスト表示しています。リスト上で選択すると10キーがあるキーボードのDeviceIDの項目にDeviceIDが表示されます。10キーがあるキーボードのDeviceID:選択されているキーボードのDeviceIDID保存ボタン:ボタン押下でDeviceIDを登録します。登録したキーボードのDeviceIDが検出されているときにNumLockをONにします。登録された古いDeviceIDは削除されます。監視中/停止中:現在の監視状態。監視中はタイマー監視します。ボタン押下で切り替え可能。NumLock ON/OFF:現在のNumLock状態。ボタン押下でON/OFF切り替え可能。レジストリ消去:DeviceIDの保存にレジストリを使用してます。レジストリに保存したキーを削除します。タスクトレイで右クリックするとメニューが出るので、ここから設定画面を開くことができます。【送料無料】 ヤガイ 3種の牛たん詰め合わせ 90g×3種 ( 塩 スモーク ペッパー )【楽天1位★couponで11,040円更に10%P還元】【VGP受賞】realme Buds Air Pro bluetoothイヤホン ノイズキャンセリング 外部音取込 カナル型 高音質 重低音 軽量 通話 ランニング 防水 自動ペアリング 低遅延 ゲーム 急速充電 マイク付 iphone android リアルミー ギフト
2021.07.25
コメント(0)
MSI GP76 Leopard 11U Corei7 RTX 3070 Laptop10年以上騙し騙し使っていた自作デスクトップから乗り換え。さすがに10年くらいの時を越えると快適すぎて笑うw【画面】17型240Hz駆動ディスプレイはノングレアだが発色もよくて、とても見やすい。【大きさ】本体もなかなか厚みがあって、ACアダプタは弁当箱かってくらい大きいものの、デスクトップ代わりの半据置運用のつもりならで大きさに関しては許容できるかな。【使いやすさ】右shiftが独特な形状をしているなど、キーボードが若干打ち辛いのが個人的にはマイナス。PgUp/PgDn/Home/Endキーの位置も微妙。【バッテリー】ゲーミングなのでバッテリーの持ちは期待していない。【外部I/F】背面にLANポート、ミニディスプレイポート、HDMI左側にUSB3.0ポート×1、オーディオジャック右側にUSB3.0ポート×2左右のポートは排気口のそばにあるのでケーブルを挿すと廃熱をもろに受けるのが気になる。【補足】型番がGP76~322JPと~326JPがあり、322のほうが改良版のようなのだが値段が変わらないので注意。どうせ買うなら322のほうがいいです。<GP76-11UG-322JP>MSI エムエスアイ GP76-11UG-322JP ゲーミングノートパソコン GP76 Leopard 11U ブラック [17.3型 /intel Core i7 /SSD:1TB /メモリ:16GB /2021年5月モデル]価格:249800円(税込、送料別) (2021/7/31時点)楽天で購入<GP76-11UG-326JP>MSI GP76 Leopard 11U Corei7 RTX 3070 Laptop GPU 17.3FHD 144Hz 16GB SSD1TB GP76-11UG-326JP価格:224800円(税込、送料無料) (2021/7/31時点)楽天で購入
2021.07.22
コメント(0)
サンプルコード外部公開用ヘッダ(EXE側と共有する)// Interface.h#pragma once#ifdef INTERFACE_EXPORTS#define _INTERFACE_API __declspec(dllexport)#else#define _INTERFACE_API#endifclass _INTERFACE_API Interface {public: virtual void set(int in_data) = 0; virtual int get() = 0;};class _INTERFACE_API InternalAccess {public : virtual ~InternalAccess() {} virtual Interface& GetIF() const = 0; virtual Interface& GetIF() = 0;};namespace InterfaceManager { _INTERFACE_API InternalAccess* IF_Access();}#include <memory>struct _INTERFACE_API Interface_deleter {public: void operator()(Interface* p);};ライブラリ内部// Interface.cpp#include "Interface.h"#include "Internal.h"namespace InterfaceManager { _INTERFACE_API InternalAccess* IF_Access() { return new Internal{}; }}void Interface_deleter::operator()(Interface* p) { delete p; }// Internal.h#pragma once#include "Interface.h"class InternalFunc;class Internal : public InternalAccess {public: Internal(); virtual ~Internal(); virtual Interface& GetIF() const override; virtual Interface& GetIF() override;private: InternalFunc* if_ptr;};// Internal.cpp#include "Internal.h"#include "InternalFunc.h"Internal::Internal() { if_ptr = new InternalFunc; }Internal::~Internal() { if (if_ptr != nullptr) { delete(if_ptr); if_ptr = nullptr; }}// 実処理へのアクセスInterface& Internal::GetIF() { return *if_ptr; }Interface& Internal::GetIF() const { return *if_ptr; }// InternalFunc.h#pragma once#include "Internal.h"#include "Interface.h"class InternalFunc : public Interface{public: InternalFunc(); virtual ~InternalFunc(); // 実際に使用したい関数 void set(int in_data); int get();private: int internal_data = 0;};// InternalFunc.cpp#include "InternalFunc.h"InternalFunc::InternalFunc() {}InternalFunc::~InternalFunc() {}void InternalFunc::set(int in_data) { internal_data = in_data; }int InternalFunc::get() { return internal_data; }ライブラリ利用側#include <iostream>#include "Interface.h"int main() { auto interface_access = InterfaceManager::IF_Access(); interface_access->GetIF().set(15); std::cout << interface_access->GetIF().get(); delete interface_access;}実行結果ライブラリ内のクラスを利用してデータの設定、取得ができる。お中元 御中元 ギフト プレゼント 送料無料 北海道 デコレーションアイスクリーム.6個セット スイーツ. 夏ギフト スイーツ 食品 ご当地 お土産 お取り寄せグルメ 詰め合わせ 贈り物 パフェ 【S01】【S】【クーポンで5%OFF&P5倍】お中元\送料無料/ 牛たん詰合せ 2包み入り厚切り芯たん130g・味噌仕込み100g【牛タン 牛肉 肉 ギフト 仙台 御中元】RME-30
2021.07.10
コメント(0)
いろいろ基本的なところをすっ飛ばして…グラフアプリを作ってみたいと思ったので、ググったらMPAndroidChartなるライブラリがあるといっぱい出てきた。github - PhilJay/MPAndroidChart導入するにはmavenかgradleなるものを使うらしい。Android Studioでの導入手順解説は豊富にあったものの、VisualStudioでの解説は皆無だった…。とはいっても、多少の読み替えで対応できた。参考にしたサイト:・【スマホアプリでグラフ】MPAndroidChartまとめ - Qiita・MoneyForwardさんの解説導入のため編集するプロジェクトの「build.gradle」は、ソリューションエクスプローラーで、プロジェクト直下にある「build.gradle.template」解説通り allprojects の repositories に maven { url 'https://jitpack.io' } を追加するallprojects { repositories { jcenter() mavenCentral() maven { url 'https://maven.google.com' } // ↓ 追加 maven { url 'https://jitpack.io' } }}続いて編集する Module:app の「build.gradle」は、ソリューションエクスプローラーでapp直下にある「build.gradle.template」こちらには、dependencies に compile 'com.github.PhilJay:MPAndroidChart:v3.1.0'を追加する。dependencies { // ↓ 追加 compile 'com.github.PhilJay:MPAndroidChart:v3.1.0' compile fileTree(dir: 'libs', include: ['*.jar']) $(AarDependencies)}作者公式githubや他の解説サイトでは implementation ~を記入とあるが、ビルドが通らず、compile ~に変更したところビルドができた。以下のIssuesの問題だろうか?Gradle sync failed: Could not find method implementation() #3687とりあえず今回はここまで。スイーツ バスクチーズケーキ プレーン 414g バスク地方で生まれたチーズケーキ バスチー 濃厚 クリームチーズ 冷凍 グルメ デザート チーズケーキ カタラーナ 誕生日 プレゼント【ばんから】ラーメンスープセット 生麺 スープ ラーメン 有名店 5食 濃厚醤油豚骨ラーメン 旭川味噌ラーメン 豚骨ラーメン 味噌ラーメン お土産 ギフト プレゼント 取り寄せ お取り寄せ ご自宅用【送料込】長島紅美人100%使用 ロイヤルのスイートポテト(12個入)
2021.07.04
コメント(0)
前回作ってみたプロジェクトをベースにしてアプリにボタンを配置してみる。Androidでリソースを扱うにはxmlファイルを作成して「res」ディレクトリ以下のサブディレクトリに配置するようだ。developer.android.com → アプリリソースの概要作成してすぐだと、VisualStudioのソリューションエクスプローラーから見ても「res」ディレクトリはないが、普通にエクスプローラー上から作成したプロジェクトのディレクトリを見ると作成されている。最初から作成されているのは、「res\values\strings.xml」文字列定義のXMLファイル。とりあえずいろんなサイトを参考に、ボタンを配置するだけの「res\layout\main.xml」を作成。リソースを表示するにはsetContentView()にリソースを指定する。今回は「layout\main.xml」を作成したので、以下のように書いた。んんん?IntelliSenseが怒ってますけど…?。検索して調べても出てくるのがほぼほぼAndroidStudioの情報だったのでよく分からなかった。R.javaファイルが後から生成されるらしいからコーディング段階だと見えないってことなのかな?とりあえずでビルドしたら通ったので、実行してみたところ無事表示できた。警告消したくなるしVisualStudioに慣れてると罠でしょこれは…。プリンストン ULTRA PLUS ヘッドホンスタンド ブラック バーチャル7.1オーディオアダプター機能付 UP-HSSD ウルトラプラス アルミ素材 底面ラバー 光る LED内蔵 USB×2ポート ゲーミング ヘッドセットスタンド PS5動作確認済 プレステ5【TV紹介】お中元 ギフト スイーツ プレゼント 誕生日プレゼント 内祝い お祝い おしゃれ 生チーズケーキ 詰め合わせ 8個入プリン ケーキ 健康スイーツ お取り寄せ 洋菓子 健康 フルーツ プチギフト 結婚式 挨拶 お土産 出産祝 退職祝 お返し 御礼 送料無料 あす楽
2021.07.03
コメント(0)
Visual StudioでAndroidアプリのビルドが可能のようです。とりあえずプロジェクトを作成して、Hello Worldのサンプルを実行してみる。C++になっているけど、AndroidアプリはJavaじゃないのか?と思いつつ。・プロジェクト名・場所(ディレクトリ)・ソリューション名は好きに入力して「作成」ボタンを押下する。ウィンドウが開いたら、Hello worldのソースが出力されているのでそのままビルド。動作確認には使い古したXperia実機を使ってみる。Androidの設定で開発者向けオプションをONにして、USBデバッグをON。USBでPCと接続したらVisualStudio上で認識した。あとは、デバッグ実行してみたら、おー簡単にできた。【送料無料】Neelac 直火式エスプレッソマシン マキネッタセット(五徳、収納袋付)2cup(約80ml) IH非対応 ご自宅やキャンプでお手軽においしいコーヒーを【ばんから】ラーメンスープセット 生麺 スープ ラーメン 有名店 5食 濃厚醤油豚骨ラーメン 旭川味噌ラーメン 豚骨ラーメン 味噌ラーメン お土産 ギフト プレゼント 取り寄せ お取り寄せ ご自宅用
2021.06.27
コメント(0)
全22件 (22件中 1-22件目)
1