レンタルサーバーからVPSに移行してみた

はじめてのVPS

レンタルサーバーを使っていたのだけれど、契約が切れたのを機にVPSを使ってみたくなったので、移行してみることにした。レンタルサーバーとおんなじ感じに使えるようになるのが目標。

契約

https://web.arena.ne.jp/support/pdf/vpsc_startup_simple_guide.pdf

https://blog.arena.ne.jp/vps/1014

https://blog.arena.ne.jp/vps/1047

webarenaのマニュアルどれが正しいんだかわかんない。

一番上のは最後Apacheを起動しようとしてもディレクトリが見つかんないよ!と表示された。

 

TeraTermをインストール

https://ttssh2.osdn.jp/

SSH接続する為に、TeraTermをインストール。

テストページが表示されない

https://tababanana.com/apachetest/

ApacheはApacheでfirewallの設定が必要みたい。

された。

感動ですね。

PHPをインストール

7.3が最新ぽくてそれインストールしたいけどされない。5.4ばっかインストールされる。

Remi’s Repositoryからインストールできるように設定

yum –y install php73 php73-php

で解決した。よく分からんな。

 

この辺からさくらのサイトを参考にし始める

https://knowledge.sakura.ad.jp/8541/

 

vimインストール

https://every-rating.com/vps/centos-bash-vim-command-not-found.html

https://qiita.com/honeniq/items/201156650310c4968c3a

PHPインストールできた

MariaDBをインストール

できたっぽい。

Let’sEncryptる

エラーが出た

Unable to find a virtual host listening on port 80 which is currently needed for

Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.

https://hacknote.jp/archives/48748/

https://www.ssllabs.com/ssltest/analyze.html?d=dalomo.net&latest

できたっぽい

WordPressインストール

wgetインストール

https://www.eastforest.jp/diary/495

ふむ

All-inOne WP Migrationで移行

パーマリンク設定がうまくいかない。

.htaccess作成→権限設定

だめぽ

httpd.confの<Directory “/var/www/html”>でAllowOverride Allにする

いけた

サブドメインの設定の仕方がわからない

のでURLが変わった。

ここまで丸一日掛かったよ、疲れちゃった。

けどできたぞ、やったね。

カテゴリー: できた | タグ: , , , , | コメントする

平成31年春期の基本情報処理技術者試験を受けてきた

初めてのIPA試験に行ってきたー。

午後で大爆死

しました。IPAのサイトで解答例が掲載された

https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2019h31.html#31haru

ので自己採点してみた。

午前

午前 正答数 問題数 正答割合
テクノロジ 35 50 70.0%
マネジメント 8 10 80.0%
ストラテジ 16 20 80.0%
59 80 73.8%

午後

午後 正答数 問題数 正答割合
1 5 5 100.0%
2 4 5 80.0%
3 4 6 66.7%
5 1 5 20.0%
6 4 8 50.0%
8 2 6 33.3%
13 5 6 83.3%
25 41 61.0%

感想

午前はまぁこんなもんかという感じ。意外と時間余って途中退出しちゃった。

問題は午後ですよって、時間が足らないこと足らないこと。前から順に解いていったんだけど大問2を解いてたら1時間経っちゃってたみたいで、そっからすげー焦っちゃった。かつ、問題の内容が全く頭に入ってこない、内容が理解できない、どう解けばいいかわからない、みたいな。過去問6回分しか解いてないけどさ、過去最高に難しかった気がする。自己採点してみたら大問5は1個しか当たってないのね。これはあかんな、今回は落ちました。負けです。くそう。

まぁ、趣味でやってることではあるんだけど、それでもやっぱり残念な結果だなぁ。自分がどれくらい情報処理技術ってものを理解してるのか、それが分かっただけでもいいのではないか。そう思わなきゃ、やってられないじゃないですかー。

次回受けるかは未定だなぁ。やっぱ試験勉強みたいなのってつまんない。プログラミングをしたい、なにか物を作りたいなぁ。

カテゴリー: のーと | タグ: | コメントする

H28春期の基本情報技術者試験の過去問午後だけ解いた&自分の弱いとこ

H28春期 午後

午後 正答数 問題数 正答割合
1 3 5 60.0%
2 5 5 100.0%
3 5 5 100.0%
4 3 5 60.0%
5 5 7 71.4%
6 5 5 100.0%
7 7 7 100.0%
8 5 7 71.4%
13 4 7 57.1%
42 53 79.2%

例によって時間は計ってない。アルゴリズムと表計算がやっぱり苦手みたいだ。こんなんで受かるんだろか、もう明日なわけだけど。GW前で仕事が忙しーのもあって全然勉強できんかったなぁ。ケアレスミスさえなんとかなってくれんかな。

午後問題だけ統計とってみる

午後 正答数 問題数 正答割合
1 25 30 83.3%
2 24 28 85.7%
3 22 29 75.9%
4 18 27 66.7%
5 24 33 72.7%
6 33 37 89.2%
7 30 41 73.2%
8 22 39 56.4%
13 25 38 65.8%
223 302 73.8%

H28春~H30秋まで解いてみて、合計してみたところ、大問4が一番正答率が低い。あとは大問3,5,7が低いみたい。午後の選択の参考にしよう。あとはもう大問8と13が難易度低い問題が来ることに懸けるしかない。今日はもう早めに寝てしまおう。どきどき。

カテゴリー: のーと | タグ: | コメントする

H28秋期の基本情報技術者試験の過去問解いた

午前

午前 正答数 問題数 正答割合
テクノロジ 35 50 70.0%
マネジメント 7 10 70.0%
ストラテジ 16 20 80.0%
58 80 72.5%

午後

午後 正答数 問題数 正答割合
1 5 5 100.0%
2 3 5 60.0%
3 7 7 100.0%
4 2 4 50.0%
5 2 5 40.0%
6 6 6 100.0%
7 5 7 71.4%
8 2 6 33.3%
13 4 6 66.7%
36 51 70.6%

感想

芳しくない。芳しくないぞ。得点にムラがありすぎるし、自分が何が得意なのかもよく分からん。午後はセット配点とかになったらガクッと落ちるだろうしこれはよろしくない。なーんか落ちそうだなぁ。自信ないや。午前はこのまま行けば突破できそうな気もするし、午後問題だけやってこうかなぁ。

カテゴリー: のーと | タグ: | コメントする

基本情報技術者試験の受験票届いた

いよいよですね。

しかし最近モチベ下がってきてて勉強全然してない。

カテゴリー: のーと | タグ: | コメントする

H29秋期とH29春期の基本情報技術者試験の過去問解いた

H29秋期

午前

午前 正答数 問題数 正答割合
テクノロジ 34 50 68.0%
マネジメント 8 10 80.0%
ストラテジ 19 20 95.0%
61 80 76.3%

午後

午後 正答数 問題数 正答割合
1 4 5 80.0%
2 4 4 100.0%
3 4 4 100.0%
4 4 4 100.0%
5 4 6 66.7%
6 7 7 100.0%
7 5 6 83.3%
8 4 6 66.7%
13 4 6 66.7%
40 48 83.3%

H29春期

午前

午前 正答数 問題数 正答割合
テクノロジ 41 50 82.0%
マネジメント 9 10 90.0%
ストラテジ 19 20 95.0%
69 80 86.3%

午後

午後 正答数 問題数 正答割合
1 5 5 100.0%
2 4 5 80.0%
3 3 5 60.0%
4 3 4 75.0%
5 5 5 100.0%
6 6 6 100.0%
7 7 8 87.5%
8 3 7 42.9%
13 4 6 66.7%
40 51 78.4%

感想

得点が伸びねぇな。時間気にせずやってることもあって、本番で時間無くなりそうな気がしないでもない。てかあともう1ヶ月切ってるのね。どないしよー。午前はまだ大丈夫そうなんだけど、午後がだめだなぁ。集中続かん。

購入した問題集にH28以前の過去問を落とせる特典がついてたので、これを利用してとにかく過去問解いてけばいいかなぁ。このままだとなんか本番と同じ時間でやらずに本番を迎えそうな気がしてならない。

カテゴリー: のーと | タグ: | コメントする

基本情報技術者試験H30春期の過去問やってみた

H30春期の過去問

結果

午前 正答数 問題数 正答割合
テクノロジ 37 50 74.0%
マネジメント 8 10 80.0%
ストラテジ 17 20 85.0%
62 80 77.5%
午後 正答数 問題数 正答割合
1 3 5 60.0%
2 4 5 80.0%
3 3 4 75.0%
4 2 5 40.0%
5 3 5 60.0%
6 4 6 66.7%
7 3 8 37.5%
8 4 5 80.0%
13 4 6 66.7%
30 49 61.2%

午前は前回同様、計算と用語が苦手っぽい。

午後は選択最大(2,3,5,6)で69.4%、午後最小(4,5,6,7)で57.5%とな。午後はこれ落ちましたね。んー、参考書やっただけじゃやっぱ駄目なんかなぁ。こうスパッと考え方の流れが出てこない。4-1と7-1が全問不正解という…。計算が苦手だー。

カテゴリー: のーと | タグ: | コメントする

基本情報技術者の参考書を1回通してやってみた

参考書を通してやってみる

情報処理教科書 出るとこだけ! 基本情報技術者 テキスト&問題集 2019年版

↑これをとりあえず通してやってみた。これやる前に1回過去問解いてみようかなーとか思ったけど、流し読みしたらチンプンカンプンだったのでこっちから先にやろうと思った。ノートは使わず記載内の練習問題は頭の中でやってく感じで読んでいった。

章末問題&よく出る問題

2~10章に練習問題が載っており(過去問)、ノートとペン持って解いてみた。あと11章によく出る問題40問(過去問)が載っているのをやった。

結果

正答数 問題数 正答割合
2章 7 9 77.8%
3章 7 9 77.8%
4章 8 10 80%
5章 6 9 66.7%
6章 8 9 88.9%
7章 7 9 77.8%
8章 7 9 77.8%
9章 8 9 88.9%
10章 6 9 66.7%
64 82 78%
正答数 問題数 正答割合
11章 30 40 75%

意外とできた気がするけど知らん分からんもんは全然分からん。あと章末で初めて出てくる概念や考え方があるので、それは間違えた。まぁ載ってたやつも間違えてるんだけど。

H30秋期の過去問を解いてみる

巻末にH30秋期の過去問が載ってるのでこれを解いてみた。午前と午後で時間は特に計らずに、とりあえず全部手を付けてみた。過去問は載ってるけど、解説は載ってないのな。そっちのが大事じゃないんか。

午前結果

午前 正答数 問題数 正答割合
テクノロジ 36 50 72%
マネジメント 9 10 90%
ストラテジ 17 20 85%
62 80 77.5%

おお、意外とできた。ていうか参考書に載ってない内容が結構出た気がする。間違えたとこは大体そんな感じだった。あとは計算間違いとか、考え違いとか。合格基準が60%らしいのでなかなか良いんじゃなかろうか。ただその年の出来によって基準点は変わるらしい。気は抜けませんなぁ。

午後結果

午後 正答数 問題数 正答割合
1 5 5 100%
2 4 4 100%
3 0 4 0%
4 4 5 80%
5 5 5 100%
6 5 7 71.4%
7 3 5 60%
8 4 8 50%
13 5 7 71.4%
35 50 70%
選択最大
午後 正答数 問題数 正答割合
1 5 5 100%
2 4 4 100%
4 4 5 80%
5 5 5 100%
6 5 7 71.4%
8 4 8 50%
13 5 7 71.4%
32 41 78%
選択最小
午後 正答数 問題数 正答割合
1 5 5 100%
3 0 4 0%
4 4 5 80%
6 5 7 71.4%
7 3 5 60%
8 4 8 50%
13 5 7 71.4%
26 41 63.4%

1、8は必須なので。2-7は選択だけど自分でどれが得意か分かってないので全部解くことにした。9-13は表計算しかできそうにないので自動的にこれになりますね。配点がよく分からんので、回答数と正答数の割合で見てみることにした。3のSQLが全問不正解という…若干ショックだけど参考書に載ってないし!INNER JOINとか知らんし!ここが弱いんだなぁ。ただ、2-7で最低点を選択したとしても60%は超えてるのでひとまず良かった。基準点に調整入ったらそっこー終わりそうだけどな。ていうかこの参考書では出題範囲網羅できないんだな、失敗したような気がしないでもない。でもボーダー突破するだけならこれがいいのかなぁ。これ本番で失敗するパターンな気がする…。

次は過去問を解いてく予定


まだ時間配分とかは考えなくていーや。一個ずつ解いていってみて、ちゃんと見直そう。

カテゴリー: のーと | タグ: | コメントする

基本情報技術者試験を受けてみることにした

基本情報技術者試験

2月から仕事の方で色々あり、なんか全然プログラミングしてない。QR読み取りとか作りたかったけど、モチベーションがちょっと下がってしまったようで気があんまり乗らない。ということで他のことをしてみることにした。プログラミング力を高めるためになんかいい方法無いかなーと探していたら、基本情報技術者というIPAが主催してる資格試験があることを知った。SEとかPGの方とかが最初に受けるような入門者用の資格みたい。面白そうだなぁと思ったので、受けてみることにした。ITパスポートは直近の過去問やってみたら合格点取れたので飛ばすことにした。

申し込みした

資格試験のことを知ったのが2月16日で、春期の個人の申込期限が2月18日だったのですぐに申し込んだ。ギリギリだったぜ。合格までの目安勉強時間が大体150時間ぐらいらしい。試験は4月21日(日)に行われるので、あと約2ヶ月かぁ。1日に2.5時間ぐらい勉強する計算だなぁ。そんなに時間取れないなぁ。大丈夫かなぁ。

本買った

トップの写真の本買った。

いろんなサイトを見てると、参考書を1~2回通しで読んで、後はひたすら過去問解けばいけるみたい。どっちも1位っつって書いてあったからこれにした。まぁキャラ物があんま好きじゃないってのもある。

本をちょろっと読む

情報系の勉強って今まで少しもやったことがないので、そこそこ不安がある。っていうか勉強自体10年ぶりとかじゃないだろうか。読んだ限りでは、これでプログラミングの力付くか?という疑問がよぎったものの、もうお金払っちゃったので試験に受かるように頑張ってこう。

試験タイマーアプリ作りたい

設定した何分かごとにアラーム鳴って、それが全所要時間続くみたいなアプリはどうかな。試験勉強に飽きてきたら作ってみたい。

Java SE Silverも受けてみたい

なんかこっちの方がプログラミング力は付きそうな気がするけど、高いんだよな…。FEは本代込みで1万円切るのに、こっちは受験だけで26,600円ですってよ。これで落ちたら目も当てられんって話ですよ。まぁまずはFEよね。頑張ろっと。

カテゴリー: したい | タグ: | コメントする

QRコードジェネレーター・QRコード作成するアプリを作りたい

QRコードリーダーを作る前に、ジェネレーターを作りたい

今日びQRコードなんてそこら中にあるわけだけど、せっかくなら自分で作ったQRコードを読んでみたい。なのでまず入力した文字列をQRコードに変換するようなアプリを作りたい。Howtoではないです。やった後に見つけたんだけど、こっち

https://qiita.com/hoshiume11/items/0f496fe80df84875c132

https://github.com/journeyapps/zxing-android-embedded

のがいいと思いました。くそぅ。

QRコードの仕様を見て実装する

のは無理、死ぬ。なので出来合いのもの、ライブラリを探す。最初からやりたい人は、こういう

https://www.qrcode.com/about/standards.html

http://www.swetake.com/qrcode/qr1.html

のを見ながら作っていけばよいみたいです。すごいよなぁ、こういう人たち。

QR-Code-generatorライブラリを使いたい

使いたい。Githubを検索してたら、

https://github.com/nayuki/QR-Code-generator

https://www.nayuki.io/page/qr-code-generator-library

こちらを見つけた。Javaってなってるし、いけんだろと思った。この時は。

Gradleに追記する

implementation 'io.nayuki:qrcodegen:1.4.0'

mavencentralでjarが公開されてたので、こう書いてSyncしたら自動でやってくれた。mavenでの書き方が分からんかったけど、versionクリックして右の方にgradleでの書き方が載ってて助かった。

参考

https://search.maven.org/artifact/io.nayuki/qrcodegen/1.4.0/jar

https://teratail.com/questions/30337

サンプルコードを書いてみる→失敗

あっるぇー?いつもどおりAlt+Enterを押しまくったのだけど、赤いのが消えてくれない。なんでやろーと思ったら、AndroidではBufferedImageは使えないみたい。なんということでしょう。あれ?ていうことはこのライブラリ利用できないの?じゃあどうしてるの?と、ちょっこし調べてみると、先駆者はBufferedImageを書き換えてBitmapというものを利用しているようだ。似たようなもんだろうし、俺にもできんだろーと思ったのが沼の始まりであった。

参考

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10147763825

https://stackoverflow.com/questions/33210065/how-can-i-import-java-awt-image-bufferedimage-in-android-studio

http://pinmarch.sakura.ne.jp/blog/archives/2010/12/01_001698.php

https://web.archive.org/web/20160708194253/http://d.hatena.ne.jp/g1rolamo/20101015/1287101742

QR-Code-generatorライブラリをAndroid用に書き換えたい

BufferedImageで受けてるんだから、ライブラリの中にBufferedImageを使ってる部分があるんだろーなーと思い、中を見てみることに。

QR-Code-generatorの中を見る

左上をProjectにして、ExternalLibraries→Gradle:io.nayuki:qrcodegen:1.4.0@jar→qrcodegen-1.4.0.jar→io.nayuki.qrcodegenと進んでいき、中に入ってるclassファイルを開いてみると…、赤いとこあった!ここをAndroidのBitmapにしてけばいいんだろーなーと、書き換えようと思ったら

File is read-only

File is not Writable

の表示ががが…。あ、まじでこれできないやつだ、と思ったのだけれど、ソース公開されてんのに書き換えできないってどういうことだよと思ったら、自分で生のjavaファイルからjarを作成すればいけるっぽい。なんかどんどんやること増えてないか。ぐるぐる調べているうちに、このライブラリを速くしたぜ!ってなライブラリを見つけた。それもJavaオンリーやで。

https://github.com/nayuki/Fast-QR-Code-generator

https://www.nayuki.io/page/fast-qr-code-generator-library

どうせなので、こっちを書き換えてみたい。みたいって、できるのかな。

参考

https://ja.wikipedia.org/wiki/JAR_(%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88)

http://sakebook.hatenablog.com/entry/2014/08/17/004540

java.awt.BufferedImageをandroid.graphics.Bitmapに置き換えたい

BufferedImageの方が何をやっているのかを見てきながら、Bitmapにそれっぽいのがないか探していく。

public BufferedImage toImage(int scale, int border) {
   if (scale <= 0 || border < 0)
      throw new IllegalArgumentException("Value out of range");
   if (border > Integer.MAX_VALUE / 2 || size + border * 2L > Integer.MAX_VALUE / scale)
      throw new IllegalArgumentException("Scale or border too large");
   
   BufferedImage result = new BufferedImage((size + border * 2) * scale, (size + border * 2) * scale, BufferedImage.TYPE_INT_RGB);
   for (int y = 0; y < result.getHeight(); y++) {
      for (int x = 0; x < result.getWidth(); x++) {
         boolean color = getModule(x / scale - border, y / scale - border);
         result.setRGB(x, y, color ? 0x000000 : 0xFFFFFF);
      }
   }
   return result;
}

1行目

BufferedImageは、まぁ赤い。戻り値をBitmapにしたいから、ここはBitmapにする。

2-5行目

scaleとborderってなんだろうと思ったら、scaleは各セル(黒い点・白い点)を何個のピクセルで構成するかみたい。例えばscale=1だと、1セル=1ピクセルだし、scale=2だと、1セル=4ピクセルになる。じゃあborderはというと、外側の余白部分をどれくらい取るか、という値みたい。で、この行ではそれぞれについて、オーバーだったり足りなかったりしたときにエラーになるようにしてるようだ。ここは変えなくてもよさそう。多分。

7行目

BufferedImageのコンストラクタを読んでみる。引数が3つだから多分これだろう。縦横とカラースペースを指定してるのかな。Androidの方でいうと、BitmapFactoryかな?使ったことあるし。て、思ったんだけど違うみたい。これはリソースから読み込む用で、無から作り出すにはcreateBitmapというメソッドがあるようだ。引数3つでそれっぽいやつといったらこれかなぁと思ったので、書いてみる。

Bitmap result = Bitmap.createBitmap((size + border * 2) * scale, (size + border * 2) * scale, Bitmap.Config.ARGB_8888);

x,yはそのままで、問題はBitmap.Configなのだけど、元のTYPE_INT_RGBはアルファ無しの8ビットRGBのようでBitmap.Configにはそんなものは無い。アルファ付きで近いやつがARGB_8888なので、これでいってみよう。アルファっつーのは透明度のことらしい。

8-9行目

getHeight,getWidthはBitmapの方にもあった(getHeight,getWidth)。戻り値もintだし大丈夫だと思う。この行で全ピクセルを走査してるんだろうなぁ。多分。

11行目

setRGBは引数3つだから多分これだ。x,y座標のピクセルに第3引数のRGB値の色を設定しているんだろう。この書き方がよく分かんなくてググりまくった。3項演算子というらしい。Bitmapの方に無いぞ…、あった。setPixelって名前なのね。書いてみる。

result.setPixel(x, y, color ? Color.argb(255, 0, 0, 0) : Color.argb(255, 255, 255, 255));

Bitmapの方に

The color must be a non-premultiplied ARGB value in the sRGB color space.

とあり、BufferedImageの方は6桁16進数なのだけど、アルファをプラスして8桁16進数にしなきゃみたい。ただ書き方分かんねぇなと思ってたらColorにこう書け、という記述があったので、こうしてみた。0x表記のほうが速いのかな。まぁそうだよな、いちいち計算するより結果が書いてあったほうが早そうだもんな。いやでもそこらへんコンパイラが最適化とかしてくんないかな。してくれることを祈ろう。

書き換え後

import android.graphics.Bitmap;
import android.graphics.Color;
public Bitmap toImage(int scale, int border) {
    if (scale <= 0 || border < 0)
        throw new IllegalArgumentException("Value out of range");
    if (border > Integer.MAX_VALUE / 2 || size + border * 2L > Integer.MAX_VALUE / scale)
        throw new IllegalArgumentException("Scale or border too large");

    Bitmap result = Bitmap.createBitmap((size + border * 2) * scale, (size + border * 2) * scale, Bitmap.Config.ARGB_8888);
    for (int y = 0; y < result.getHeight(); y++) {
        for (int x = 0; x < result.getWidth(); x++) {
            boolean color = getModule(x / scale - border, y / scale - border);
            result.setPixel(x, y, color ? Color.argb(255, 0, 0, 0) : Color.argb(255, 255, 255, 255));
        }
    }
    return result;
}

不思議な点

これでなんでQRコードの画像の白黒ができるんだろ?と疑問が湧いてきて、10行目のgetModuleが怪しいと感じて見に行ったら

public boolean getModule(int x, int y) {
   return 0 <= x && x < size && 0 <= y && y < size && modules[y][x];
}

こんな感じだった。多分最後のmodules[y][x]に白黒どっちにするかのデータが入ってるのかな…。とにかく一応書き換えられたので、これでいってみよう。jarを作るのです。

書き換えたjavaファイルを元にjarファイルを作りたい→無理

書き換え終わったのでjarファイルを作りたい。流れとしてはjavaファイルをclassファイルにして、それをjarファイルにまとめるって感じみたい。コマンドプロンプトでやればいいみたい。意気揚々と

javac -encoding UTF-8 *.java

とやってみると、

QrCode.java:26: エラー: パッケージandroid.graphicsは存在しません
import android.graphics.Bitmap;
^
QrCode.java:27: エラー: パッケージandroid.graphicsは存在しません
import android.graphics.Color;
^
QrCode.java:294: エラー: シンボルを見つけられません
public Bitmap toImage(int scale, int border) {
^
シンボル: クラス Bitmap
場所: クラス QrCode
QrCode.java:300: エラー: シンボルを見つけられません
Bitmap result = Bitmap.createBitmap((size + border * 2)
* scale, (size + border * 2) * scale, Bitmap.Config.ARGB_8888);
^
シンボル: クラス Bitmap
場所: クラス QrCode
QrCode.java:300: エラー: パッケージBitmapは存在しません
Bitmap result = Bitmap.createBitmap((size + border * 2)
* scale, (size + border * 2) * scale, Bitmap.Config.ARGB_8888);

^
QrCode.java:300: エラー: シンボルを見つけられません
Bitmap result = Bitmap.createBitmap((size + border * 2)
* scale, (size + border * 2) * scale, Bitmap.Config.ARGB_8888);
^
シンボル: 変数 Bitmap
場所: クラス QrCode
QrCode.java:304: エラー: シンボルを見つけられません
result.setPixel(x, y, color ? Color.argb(255, 0,
0, 0) : Color.argb(255, 255, 255, 255));
^
シンボル: 変数 Color
場所: クラス QrCode
QrCode.java:304: エラー: シンボルを見つけられません
result.setPixel(x, y, color ? Color.argb(255, 0,
0, 0) : Color.argb(255, 255, 255, 255));

^
シンボル: 変数 Color
場所: クラス QrCode
エラー8個

なん…だと…。どうもandroid.graphics.Bitmapとandroid.graphics.Colorが存在してないからコンパイルできないみたい。classファイルができないまま、

jar -cvf fastqrcodegen.jar *.java
implementation files('libs/fastqrcodegen.jar')

とかやっても ちゃんとできない。おいマジか、ここまできて無理なのかーいとがっかりしたところ、Android用のライブラリとして書けばいいみたいな感じの記事を発見した。ただ全部ソースをコピペだ。

参考

https://www.sejuku.net/blog/64490

https://qiita.com/hiwm0126/items/1b3c008c21463d78337a

https://qiita.com/HachiwareWorks/items/2b23b180d328df597fe4

書き換えたjavaファイルを元にAndroidライブラリを作りたい

ここを参考に新しくModuleを作り、そこのjavaフォルダ内に元のjavaファイルと同じ名前のJavaClassを作り内容をコピペしていく。果たしてそんなことが許されるのか、ライセンス的にどうなんだという思いを置き去りに、作業を進めていった。

こうなりました。QrCodeGeneratorDemo.javaとpackage-info.javaは無くても大丈夫そうだったので、コピペしなかった。あとQrSegmentAdvanced.javaも、Call requires API level…が出てしまい、赤字の消し方が分からんかったのでコピペしなかった。最後にGradleに

implementation project(path: ':fastqrcodegen')

と追記してSyncすると使えるようになった。ただ、なんか、罪悪感があるんだけど、それはもうしょうがないよね。他のやり方がわからんし…。

Fast-QR-Code-generatorを試してみる

適当にImageViewを設置し、onCreateに

imageView = findViewById(R.id.imageView);

QrCode qr0 = QrCode.encodeText("Hello, world!", QrCode.Ecc.MEDIUM);
Bitmap img = qr0.toImage(4, 10);

imageView.setImageBitmap(img);

結果がこちら

で、できた…、できたぞー!!感慨もひとしおである。ただ、アライメントがなーいのね。あら、そうなの。そうなのね。そっかー。ついてた。早とちり。データ量多くなると付くっぽい。ごめんなさい。

参考

https://www.javadrive.jp/android/imageview/index2.html

ZXing Android Embeddedを使ってみる

いやー、これ見つけた時はショックだったね。今までの俺の苦労はなんだったんだ、つって。

implementation 'com.journeyapps:zxing-android-embedded:3.6.0'

をgradleに追記。

<application android:hardwareAccelerated="true">

をAndroidManifest.xmlに追記。生成の場合はいらんようだ。

try {
    imageView = findViewById(R.id.imageView);
    BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
    Bitmap bitmap = barcodeEncoder.encodeBitmap("Hello, world!", BarcodeFormat.QR_CODE, 400, 400);
    imageView.setImageBitmap(bitmap);
} catch (WriterException e) {
    e.printStackTrace();
}

Githubのサンプルほぼまんま。

はいっ、できましたー。アライメントもついてまーす。上のにも付いてた。

所感

もっとちゃんとググる。

さぁ次はリーダーを作るぞー!

カテゴリー: したい | タグ: , , , | コメントする