chevron_left

メインカテゴリーを選択しなおす

cancel
もらかな
フォロー
住所
未設定
出身
未設定
ブログ村参加

2022/04/07

arrow_drop_down
  • (ArchLinux)(AlterLinux)(xmodmap) キーボードの、あるキーを押した時に、それとは違うキーを押したことにしたい

    この記事はAlterLinuxPlasma版(ArchLinux系)で確認したものになります一例としてこういうケースが有ったとします、 > よくスクリーンショットを取るけど PrintScreenキーが配置的になんか煩わしいので、 > 普段使わず浮いてる無変換キーを押したらスクリーンショットが発動して欲しい。 あくまで一例ですので似たようなケースに置き換えて読んでください。実現する方法の一つとして「グローバルショートカットキーとして仕込む」というものがありますが、 キーによっては発動しない場合があるようです、 個人的環境(AlterLinux Plasma版)では、無変換キー単体にコマンドを仕…

  • (Crystal)(PNG) CrystalでPNG画像の幅と高さをヘッダの部分から取得する

    Crystalで PNG画像ファイルの幅と高さをヘッダの部分から取得します、 ヘッダ部分を見て、PNG画像のヘッダかどうかの判断もするようになっています、 実際に画像データを読み込むわけではないのでデータが壊れていないなどの保証は出来ません、 その分、情報の取得速度は非常に高速です。 ヘッダの構造を読み替えれば、その他の情報や その他のファイル形式にも応用できます。 # png_picture_size <filename> [0 1] [both cols rows] # 0 or 1 カウントを始める数、省略時は 1 # (座標として扱う時は0、 幅や高さとして扱う時は1の方が扱いやすい)…

  • (Crystal)(ArchLinux)(AlterLinux) --staticでbuildする時に「ライブラリが見つからない」となる場合

    この記事はAlterLinux(ArchLinux系)で確認したものになりますCrystalで 動的リンクではなく静的リンクで外部のライブラリに依存することなく動作させようとして --staticオプションを付けて buildしようとしたら -lpcre -levent -lgc 等が見つからないとなって、 buildに失敗することがあります。原因としては 静的リンクライブラリファイル(.a)が無いからのようで、 何らかの方法で不足しているファイルを用意すればエラーは出なくなるようです。基本的な流れは ソースからビルドを行い ライブラリとしてパスが通った所にインストールする感じですが、 mak…

  • (gcc)(C++)マングリングされた文字列をデマングリングする

    データの型を調べようとして typeid().name()をやっても、簡潔な文字列しか返って来ません i は int となんとなく分かりますが、 x の long long や y の unsigned long long は 知らないともう想像も付きません、 この簡潔な文字を デマングリングすることで こちらが期待している文字列を取得することが出来ます、 以下に デマングリングのサンプルを書いておきます。 #include <cxxabi.h> #include <cstdlib> #include <iostream> // 使用する場合は .cppファイルと同じディレクトリに この内容を…

  • (ruby)(crystal) rubyとcrystalで違う部分 「コマンドライン引数」

    rubyとほぼ同じような書き方が出来るcrystalですが、 当然違う言語なので違う部分も色々とあります、 その一つとして コマンドライン引数の受け方で違いが出てきます。rubyで 第一引数が無かった場合の判定としては ARGV[0] == nil と書くことが出来ますが、 crystalでは 引数がない所の値を取得しようとすると、Index out of boundsエラーが 発生します、 rubyでは引数が無い部分を指定したらnilが返ってきますが、crystalではそうなりません。 ( puts("ファイルを指定してください") exit(1) ) if ARGV[0] == nil #…

  • (ruby) 2つの変数の内容を入れ替える

    使う機会があるかどうかは別として挙動の理解として、 2つの変数の値を入れ替える いわゆるswapをrubyで書くにはどうすればいいか?、 考え方的には 参照先を入れ替えればいいわけなので a,b = [b,a] という風に書けます。 確認のために以下を実行すると、2つの変数の object_idも ポインタも 入れ替わっているのがわかります。 require "fiddle" a = "hello" b = "world" puts(a.object_id) puts(b.object_id) puts(Fiddle::Pointer[a].to_i) puts(Fiddle::Pointer…

  • Base64エンコードデコードをいろんな言語で書いてみた

    まとめリンク: 同じことをいろんな言語で書いてみたシリーズ C++ (Base64エンコード) // Base64 は CLX C++ Libraries // http://clx.cielquis.net/index.html or https://github.com/clown/clx を利用 #include "./clx/base64.h" #include <fstream> int main(int argc, char *argv[]) { std::string filename = "./data_file_name"; // Base64を取得したいファイル名 std:…

  • MD5を取得して表示するのをいろんな言語で書いてみた

    まとめリンク: 同じことをいろんな言語で書いてみたシリーズ C++ // g++ -lcrypto md5.cpp -o md5 などとしてコンパイル #include <iostream> #include <openssl/md5.h> int main(int argc, char *argv[]) { std::string dat = "Hello World!"; // MD5を取得するデータ unsigned char md5_result[MD5_DIGEST_LENGTH]; MD5((unsigned char*) dat.c_str(), dat.length(), md…

  • JSONの文字列をパースするのをいろんな言語で書いてみた

    まとめリンク: 同じことをいろんな言語で書いてみたシリーズ C++ #include <iostream> // https://github.com/nlohmann/json.git をcloneして // single_include/nlohmann/json.hppをソースと同じところに置いておく #include "json.hpp" int main(int argc, char* argv[]){ std::string json_text = \ u8R"##({ "mysql" : { "host" : "192.168.0.3", "port" : 3306, "user…

  • 同じことをいろんな言語で書いてみたシリーズ

    クラスの定義をいろんな言語で書いてみた JSONの文字列をパースするのをいろんな言語で書いてみた MD5を取得して表示するのをいろんな言語で書いてみた Base64エンコードデコードをいろんな言語で書いてみた

  • クラスの定義をいろんな言語で書いてみた

    まとめリンク: 同じことをいろんな言語で書いてみたシリーズ C++ #include <iostream> #include <stdio.h> //printf用 class Neko { private: std::string name; public: Neko(std::string new_name) { name = new_name; }; void hello() { std::cout << "吾輩は " << name << " である" << std::endl; // c++的にはこちらの方が一般的? printf("吾輩は %s である", name.c_str()…

  • (NintendoSwitch)(マインクラフトBE版)ブレイズトラップを作った時の考え方

    過去にアップしたブレイズトラップを作った時の考え方をテスト的にこちらのブログにも貼り付けてみます Switchマインクラフト統合版でブレイズトラップを作った時の考え方 ブレイズをトラップの湧き範囲外に出してしまうと湧きペースに影響を与えないというのがミソのようです かなり縦に長い構造になってしまうので処理層の高さまで下りていくとブレイズスポナーの活動自体が止まってしまうので 待機場所はスポナーが活動する所まで登った場所になります。

  • C#でメディアファイルをウインドウにドロップしたらそのメディアファイルの情報を表示する

    このアプリを実行するとウインドウが表示されるので そこにファイラーなどからメディアファイルをドロップしてください そうすると、FFmpegのffprobe.exeを利用してその情報をウインドウに表示します https://www.ffmpeg.org からffmpeg-xxxxxxxx-xxxxxxx-win64-static.zip をダウンロードして その中にある ffprobe.exe をこのアプリと同じディレクトリに入れておいてください (64bit版の場合、このアプリを管理者権限で実行してしまうと、管理者権限で実行中の物からしかドロップできませんので注意) csc.exe -targ…

  • C#でファイルのドラッグ&ドロップを受け付け出来るようにする

    C#でFormを表示して ファイルのドロップを受け付けて 投げ込まれたもの(複数個なら最初の)が何だったのかをMessageBoxで表示します 以下のソースをcsc.exeに通すだけで出来ます(VisualStudioの環境は必須ではありません) using A_Forms = System.Windows.Forms; using A_Application = System.Windows.Forms.Application; using A_DataFormats = System.Windows.Forms.DataFormats; using A_DragDropEffects = …

  • C#でフォント選択ダイアログを表示させる

    細かなことは省いてただ単純に フォントを選択させてそれが何だったのかを表示させるだけです VisualStudioを使う事も無く、単にcsc.exeにぶち込めばexeファイルが生成されます using A_Console = System.Console; using A_FontDialog = System.Windows.Forms.FontDialog; namespace AppFontSelect { class FontSelect { static void Main() { A_FontDialog fd = new A_FontDialog(); fd.ShowDialog…

  • (node.js)(javascript)(promise) thenからthenへ値を渡せるようになろう

    node.jsに関する記事一覧→ http://morakana.hatenablog.jp/entry/2018/03/09/174557 前回の内容のおさらいです、 「new Promise()」で作った Promiseのインスタンスの内部の結果を受けるのは「then」で それを受けた thenが返すのも Promiseのインスタンスでした ならば、 thenが返したPromiseのインスタンスも 同じくthenで繋いでいける ということでしたねでは thenからthen へ繋ぐ場合を具体的にどう書くのかを見ていきます「new Promise()」 で Promiseのインスタンスを作る時…

  • (node.js)(javascript)(promise) Promiseのインスタンスはチェイン出来る

    node.jsに関する記事一覧→ http://morakana.hatenablog.jp/entry/2018/03/09/174557 前回までは new Promise したものを 変数に代入して その変数に .then と続けることで Promise内の処理が 成功 又は 失敗 した時のデータを受けていました prms = new Promise(()=>{}); prms.then(); ただこれは、変数に代入せずに、直接 .thenと続けても機能します new Promise(()=>{}).then(); まぁ、ここまでは、単に式の書き方の違いなので分かると思います では、th…

  • (node.js)(javascript)(promise) 成功時と失敗時の処理を両方書けるようになろう

    node.jsに関する記事一覧→ http://morakana.hatenablog.jp/entry/2018/03/09/174557 まずは、前回の基本的なPromise使い方のおさらいです #!/usr/local/bin/node const puts = console.log; const print = (str)=>{process.stdout.write(str)}; const prms = new Promise((resolve, reject)=>{ resolve('hello world!'); }); prms.then( (val)=>{ print('…

  • (ruby) コピペで使えるライブラリ集

    ■ (ruby)(コピペで使えるライブラリ集) パターンにマッチングしたファイルの一覧を配列で返すメソッド パターンでファイルを検索してマッチしたものを配列で取得するものです、戻り値をある程度カスタマイズできます■ (ruby)(コピペで使えるライブラリ集) カレントディレクトリにテンポラリディレクトリを作るメソッド カレントディレクトリを汚したくない時にちょっとしたテンポラリディレクトリを作れます

  • (ruby)(コピペで使えるライブラリ集) カレントディレクトリにテンポラリディレクトリを作るメソッド

    ruby コピペライブラリ一覧→ http://morakana.hatenablog.jp/entry/2018/03/13/100032 この create_temp_path メソッドは、カレントディレクトリにテンポラリディレクトリを作り、 作成に成功したらその絶対パス名を返します 何らかの問題で テンポラリディレクトリの作成に失敗したら nil が返ってきます あくまでカレントディレクトリに作成される仕様ですので、カレントディレクトリ以外の場所は指定できません テンポラリディレクトリはデフォルトの状態だと作った時の時間で生成されます フォーマットは 年-月-日_時_分_秒_1秒未満5桁…

  • (ruby)(コピペで使えるライブラリ集) パターンにマッチングしたファイルの一覧を配列で返すメソッド

    ruby コピペライブラリ一覧→ http://morakana.hatenablog.jp/entry/2018/03/13/100032 この enum_files メソッドは、パターンにマッチングしたファイル名一覧を取得します enum_files(['./*']) で、マッチングしたファイルのファイル名が絶対パスの配列で返ってきます パターンを複数個指定したい場合は、パターンを配列で指定します enum_files(['./*.rb', './*.txt']) 絶対パス以外の形式でファイル名を取得したい場合は 第二引数にフォーマット文字列を指定することで戻り値をカスタマイズ出来ます フ…

  • node.jsのまとめ

    ■ (node.js)(javascript) 外部プログラムを呼び出して、それに標準入力をして、それの標準出力を取得する node.jsから呼び出した外部プログラムに標準入力を与えたり外部プログラムからの標準出力を受け取る方法■ (node.js)(javascript) インスタンスのクラス名を調べたい typeofでは調べきれないインスタンスのクラスを調べる方法■ (ruby)(python3)(node.js)(c++)(java) いろんな言語の超基本的なクラス定義を書き並べてみる 基本的なクラスの定義の仕方をいろんな言語で書いてみた ■ (node.js)(javascript)(…

  • rubyのまとめ

    ■ (ruby)(rbenv) rbenvでrubyをインストール rbenvを使ってrubyをインストールする方法■ (WSL)(ruby) WSLの環境でpryを使うと最初にパーミッションの警告が出て五月蠅い場合 Windows Subsystem for Linux環境下で pryを使うと 最初のコマンドの実行時にパーミッション関係の警告が出る場合の対処法■ (ruby)(python3)(node.js)(c++)(c#)(java) いろんな言語の超基本的なクラス定義を書き並べてみる 基本的なクラスの定義の仕方をいろんな言語で書いてみた■ (ruby) 後置if式で実行内容を複数個書…

  • (node.js)(javascript)(promise) まずはPromiseを使う時の超基本

    node.jsに関する記事一覧→ node.jsのまとめ 関数の中に関数を書くパターンが続くのでそれに慣れていないと混乱してしまいがちです まずは Promiseを使う時の超基本的な流れからです Promiseのインスタンスを生成して その中で非同期処理を行い その結果をresolveで受け側の処理に渡し 先程生成したPromiseのインスタンスのthen関数が受け側になり thenの中で後処理を行いますハハッ!!、なんのこっちゃ~ 実際に見てみた方が分かりやすいと思います #!/usr/local/bin/node // コンソール出力を簡潔に実行できるように const puts = co…

  • node.jsのPromiseはどう書いたら同期的に処理したいところを分かりやすくできるか考察中

    node.jsに関する記事一覧→ node.jsのまとめ 他の手段があるのも薄々知ってはいるんですが 今回は、あくまでもPromiseで書いたらどうなのかを考えている最中の、(仮)的な記事です 非同期的に実行しても問題なく それらが全部終わったら○○しろという場面なら Promise.all(<Promiseの配列>)等でやれば楽ちんですが 非同期処理が主体の仕様だと、いざ同期させたい時がかなり厄介ですよね たとえばhttpでGETするという比較的時間の掛かる遅い処理の後に ファイルを読み込みたい場合に、それらを単に並行で書いてしまうと 確実にファイル読み込みの方が先に発動して不具合が出るのは…

  • (ruby) rubyでは ifやcaseは if文 case文 ではなく if式 case式 である

    rubyに関する記事一覧→ rubyのまとめ だいたいの言語って ifって文ですよね?、でもrubyでは ifも式なんです、caseも式なんです if式ってなんやねん!? って感じですが、まぁ論より証拠 puts( if true then 100 end ) を実行すると 100 と表示されます つまり trueだった場合その中の処理が実行され 一番最後の処理の戻り値が if式の結果 として返ってくるのです もちろん、else や elsif が加わった場合も同じです puts( if false then 100 else 200 end ) これなら 200になります caseも同じく …

  • (ruby) 後置if式で実行内容を複数個書きたい場合

    rubyに関する記事一覧→ rubyのまとめ rubyには 先に実行内容を書いて、その後に if を挟んで 条件式を書く書き方があります if修飾子 とか 後置if って言われているやつですね puts('hello') if true 便宜上 trueと書いてますが、この部分に条件式を書くわけですね この例では条件式は true なので puts('hello')が実行されます ただし実行されるのは ifの左隣の一つだけです 複数個の処理を対象としようとして puts('hello'); puts('world') if false と書き 条件式がfalseの場合なら「hello」も「wo…

  • (ruby)(python3)(node.js)(c++)(c#)(java) いろんな言語の超基本的なクラス定義を書き並べてみる

    rubyに関する記事一覧→ rubyのまとめ node.jsに関する記事一覧→ node.jsのまとめ クラス定義っていろんな言語使ってるとなんかごっちゃになってしまいますよね そこで、各言語の超基本的なクラス定義を書き並べて比較してみることにしました 全てやっていることは同じで、Nekoクラスを定義して 名前を「ミケ」にセットして、挨拶をさせています c++ #include <iostream> #include <stdio.h> //printf用 class Neko { private: std::string name; public: Neko(std::string new_…

  • (node.js)(javascript) インスタンスのクラス名を調べたい

    node.jsに関する記事一覧→ node.jsのまとめ インスタンスのクラスを調べようとして typeof を使っても objectとしか返ってこない時があって困る事がありますが きちんとクラス名を調べたい時は Object.prototype.toString を使います #!/usr/local/bin/node const puts = console.log; const classname = Object.prototype.toString; puts(classname.call({a: 1024, b: 2048})); puts(classname.call(undefi…

  • (WSL) Windows側のPATHを取り込まないようにする

    WSLは デフォルトだとWindows側の環境変数のPATHを取り込んでしまいます それが好ましくないと思う場合はレジストリを変更することでLinux環境だけのパスにすることが可能です Windows側のPATH取り込み無効化のレジストリファイル Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LxssManager] "DistributionFlags"=dword:fffffffd このレジストリファイルを実行するか 直接レジストリエディタで Distri…

  • (WSL)(ruby) WSLの環境でpryを使うと最初にパーミッションの警告が出て五月蠅い場合

    rubyに関する記事一覧→ rubyのまとめ pryが出すメッセージの通り ディレクトリのパーミッションが777になっているのがあるのが原因です指定したディレクトリ以下のディレクトリを一括して755にしてあげましょう find /home/<ユーザ名>/.rbenv -type d -exec chmod 755 {} +インストール直後だとrbenvでもrvmでも同じように警告が出されるので まずは .rbenv や .rvm のディレクトリを指定してやりましょう それ以外のケースだと node.js の n などをインストールした後に同じ警告が出るケースがあります もちろん上のコマンドを読…

  • (ruby)(rbenv) rbenvでrubyをインストール

    rubyに関する記事一覧→ rubyのまとめ 注意: この記事の内容は ubuntu 17.10 lubuntu 17.10 Windows Subsystem for Linux(WSL) Fedora 27 CentOS 7 の環境で動作を確認しています、 その他の環境ではうまく行かない可能性がありますので予めご了承ください rvmが入っている環境ならまずはrvmを除去します rvm seppuku でアンインストールして .bashrc等に追加した source ~/.rvm/scripts/rvm の部分を削除してください 端末を再起動したのち rvmの環境が無くなったかを確認してくだ…

arrow_drop_down

ブログリーダー」を活用して、もらかなさんをフォローしませんか?

ハンドル名
もらかなさん
ブログタイトル
もらかなです。
フォロー
もらかなです。

にほんブログ村 カテゴリー一覧

商用