wrongwrongな開発日記

情報系大学生が挑戦したことや日常を書いていきます

プログラミング

【C++】SFMTを使ってみた

SFMTを利用できるようにするまでをまとめます。(※現状上手く動いていません、備忘用メモ程度です……) ダウンロード 下記URLからダウンロードします。 SIMD-oriented Fast Mersenne Twister (SFMT) 配置 解凍して配置します。 SFMTはビルドしなければ利用で…

【プログラミング】CodeIQ用入出力類

CodeIQを色々な言語でやってると「入出力どうやったっけ」って場面が増えたり、出先でやる時作り直したりがダルかったりしたので、入出力類だけ自分用にまとめます。 CとC#は追加したいですが、とりあえずいったん飽きたのでこれまで。 C++ Golang Java VB C…

【Golang】runnerw.exe: CreateProcess failed with error 216 (no message available)への対処【Goland】

結論 packageの名前をmainに改名して下さい。 状況 Golandでrunnerw.exe: CreateProcess failed with error 216 (no message available)と出て下記のコードが実行できませんでした。 package IOTemplate_Go import "fmt" func main() { var str string fmt.S…

【C#】簡単なQuickSortを書いてみた【.Net】

Xamarinで何か作りたいのでC#の練習で(また)簡単なQuickSort書きました。 github.com ソース 最初から非同期でやるのと、多少は早くしたいなということでTaskの生成回数を減らすことを目標に書いてましたが、途中でグダってあんま意味無くなりました。 文…

【Golang】QuickSort、訂正

wrongwrong163377.hatenablog.com wrongwrong163377.hatenablog.com 以前の2記事のQuickSortに非効率な間違いがあったので訂正します。 間違っていたところ 再帰の門番ではLengthが2以下、つまり3未満で判定する必要がありましたが、2未満で判定してました。…

【Golang】簡単なQuickSortを並列化

wrongwrong163377.hatenablog.com この記事のQuickSortのコードの門番には間違いがあるので訂正しました。 背景 wrongwrong163377.hatenablog.com 前回の記事の続きです。 記事作成時点のリポジトリは以下。 github.com Golangの並列処理 以下の記事を参考に…

【Golang】簡単なQuickSortを書いてみた

wrongwrong163377.hatenablog.com この記事のQuickSortのコードの門番には間違いがあるので訂正しました。 背景 何かを作るようなやる気は起きないけどプログラムは組んでたい気分だったので、前々から触ってみたかったGolangでQuickSortを書いてみました。 …

【VB】Taskを用いて非同期ファイル操作の続き【.Net】

wrongwrong163377.hatenablog.com 上記記事の続きです。 改良点 前回の記事では色々とまとめた結果粒度が小さくなってしまっていたので、粒度を上げてみました。 ソースコード outside6.wp.xdomain.jp 公開後に上記記事を見つけたので修正を行いました。修正…

【VB】表示中の画像ファイルが削除できない問題の解決法【.Net】

表示中の画像ファイルが削除できない問題の解決法 - .NET Tips (VB.NET,C#...) 上記記事において「MemoryStream使った方がいい」という旨のコメントが有り、実際ボタンに設定した画像を削除しようとしてうまく行かなかったので(検証してないけどもしかして…

【日記】壮絶なクソコードをリライトした話

wrongwrong163377.hatenablog.com 続きというか、以下の記事を紹介して頂いたのでそのアンサー的な記事として書きます。最近VBの記事が増えた原因がこれです。 hiroronn.hatenablog.jp 背景 5年程度担当者を代えながら煮込まれた結果できてしまったクソコー…

【VB】MsgBoxを処理を止めずに出す【.Net】

簡易まとめ Taskを使えば以下のコードで出来ます。処理を止めずにMsgBoxを出し、メッセージボックスのリザルトを受け取ることも出来ます(後述)。 Task.Run(Sub() MsgBox("Async") End Sub) やること WindowsフォームアプリではMsgBoxを用いてメッセージを…

【.Net】VB/C#のStructureはNothingにならない

タイトルの通りで、結論から言うとStructureは値型であるためNothingにはなりません。 困った状況 Classを返す関数ではNothingを返すことができますが、同じことをStructureでやってもNothingにならないため、IsNothingなどで比較を行うとコードが誤作動しま…

【日記】ぼくが直面しているクソコード

Friend, Publicを滅ぼせ PublicやFriendな変数は極力使っちゃいけないと思います。「簡単だから」「動けばいいから」と乱用されると、どこからデータを取っているのか、外から設定されるのか、どこにデータを渡しているのか、渡されているのか、段々と分から…

【DxLib】透過を有効にしたDrawGraph系関数での描画がおかしくなった時確認すること【.Net】

遭遇した問題への備忘録です。 対処法 DxLibDotNet(@VB)ではDX.TRUEとTrueは等価ではないので、DrawGraph系関数を含め使用時には確認が必要です。 状況 DxLibDotNetで、DrawGraph系関数で透過を有効にして画像を2枚描画しようとすると、2回目に描画=表に来る…

【VB】Taskを用いて非同期にファイル操作【.Net】

wrongwrong163377.hatenablog.com 続きを書きました、プログラム的にはこっちのが出来がいいはずです。 きっかけ 作成中のプログラムでファイルのコピー待ちの時間が気になったので、非同期でやってみました。 IOがボトルネックなプログラムで並列処理やって…

【VB】VBでJavaでいうNull初期化【.Net】

備忘用に。 自分はJavaではNullで初期化しておいて後から値が入っているかチェックするようなやり方をよくしていました。 VBではNullは用意されていませんが、Nothingで初期化してIsNothingメソッドでチェックすることで同じように扱えます。

【VB】GetDetailsOfメソッドでは確実に動画/画像の幅や高さを取得できない【.Net】

wrongwrong163377.hatenablog.com この記事の続きみたいな記事です。 状況 調査結果では↓のように出ていました。 309:フレーム高 311:フレーム幅 これは動画のフレームの高さと幅を表していますが、この情報はファイルによっては入っていないことがあります…

【GitHub】言語に合わせ入力済みの.gitignoreをGitHub(ブラウザ上)から追加する【Git】

GitHubではブラウザ上からプログラミング言語ごとの記述が済んだ.gitignoreを追加することができます。 Git初心者的にはかなり便利な機能なんですが、ググっても引っかからなかったので記事にします。 やり方 いつもの画面でCreate new fileをクリックします…

【VB】GetDetailsOfメソッドのiColumn番号と内容の対応【.Net】

背景 環境 調査結果 調査結果から 調査方法 Shell32の参照設定 コード 参考にしたページ 追記 背景 最近VBでffmpegと連携したコードのメンテナンス(と言っていいのだろうか)をしています。その中で、「導入が面倒なのでできるだけffmpegを使わない形でコー…

【Android】OpenGL ESでシェーダーを書いて、何も問題無い(ように見える)のに動かないコードが出た時のこと

AndroidでOpenGL ESのプログラマブルシェーダーを書いた時、何も問題が無いように見えるのに動かないコードが出た時のことを2つ書きます。 症状は以下の2つ。 エラーも出ない、アプリが落ちることもない、ただ描画がされない 問題無いはずのシェーダーがコン…

【Android】LinearLayoutをJavaコードから弄る

初期化 LinearLayout mLinearLayout = new LinearLayout(this); 水平/垂直の選択 mLinearLayout.setOrientation(LinearLayout.VERTICAL); //mLinearLayout.setOrientation(LinearLayout.HORIZONTAL); 部品の追加(他のViewやLayoutでも大体共通) mLinearLayou…

AndroidのOpenGL ESで、カメラからの入力の各画素を処理する

最近AndroidのOpenGL ESを触っているので、少しだけ記事にしてみます。 多分タイトルは正確ではないんだろうなあ……。 OpenGL ESやGLSLに関しては全く詳しくないというか、自分のやりたいことはフラグメントシェーダを書くだけで実現できてしまったので、とり…

Androidで、JavaのActivityからc++のNativeActivityを呼び出す

Androidでは、c++のみで書かれるNativeActivityがあります。 github.com これは通常のActivityと同じように、別のActivityから遷移させることが可能です。 今回は、この遷移についてやった内容を記事にしました。 サンプルプロジェクト プロジェクト作成 Nat…

javaで、if文と%(剰余)のどちらが速いかを少しだけ比較

以前c++で実験してみたif文と%(剰余)の比較をjavaでもやってみました。 wrongwrong163377.hatenablog.com 実行環境 実行環境は以下の通りです。 OS Windows10 Pro CPU Core i7 6700 MEM DDR4 2133CL13 8GBx2 JDK 1.8.0_131 実行したコード プロジェクト全体…

たった1文字付け足すだけで、5000兆円が3688.35倍になる、その驚きの方法とは!?

最近流行りの「5000兆円欲しい!」という言葉。 でもちょっと待って下さい!簡単な方法で5000兆円は3688.35倍になります! どうせなら、お得に沢山のお金を要求してみませんか? その驚きの方法とは…… #include <iostream> using namespace std; int main() { unsigned</iostream>…

Androidでc++と連携してOpenCVを動かすサンプルプロジェクト解説

wrongwrong163377.hatenablog.com github.com こちらの記事で紹介したサンプルプロジェクトの解説記事です。 このプログラムは、以下のページを参考に作成しました。 OpenCV for Android入門 – カメラ編 « Rest Term プログラムの概要 ※このアプリではPermis…

AndroidでOpenCV + NDKでc++と連携してOpenCVを動かす

タイトル通り、AndroidにOpenCVを導入し、c++と連携してOpenCVを動かす所まで書きます。 実現する状況は以下の通りです。 AndroidのJava上からOpenCVを動かす NDKを介してAndroidのJava上からc++のOpenCVを動かす (GitHubを介したpush&pullのみでプロジェク…

c++で、if文と%(剰余)のどちらが速いかを少しだけ比較

ある一定数で折り返して用いたいような数があった場合、ぱっと思いつくのは、if文を用いて初期化するやり方と、%で剰余を取る方法でしょうか。 例えば以下のようなコードです。 //if文を用いたコード while(i < MAX) { if((j+=1) == 100) j = 0; i++; } //%…

CMakeでコンパイルオプションを複数指定する

set(CMAKE_C_FLAGS "-Wall -O3") #cの場合 set(CMAKE_CXX_FLAGS "-Wall -O3") #c++の場合というように、指定したいオプションをスペースで区切る。 cとc++で違いがあるようなので注意。 参考にしたページ cmake の使い方 - PukiWiki

C/C++/(Java)、見やすい関数の書き方

最近学んだ、CやC++、Javaといった言語での見やすい関数の書き方を纏めます。 まず、以下の2つのコードをご覧ください。 int func(int a, int b, int c){ processing... return result; } int func( int a, int b, int c ){ processing... return result; } …