自分のブログ名

sheephumanのブログ

ひつじ好きな人間のブログ。

ここ3カ月間のゴミ拾い活動の記録

 

 無職で将来に希望の持てない人間はゴミ拾いでもやりたくなるものなのかもしれません。僕は専ら、河川や公園の周囲を重点的に掃除するボランティア活動をしています。

 

.....独りで勝手にやっていると何かとめんどうくさいので、ボランティア団体に登録しようといろいろ探しているところです。

 

 

今回はTwitter上で出してる記録をまとめてみます。

 

 

 

 

ポーズを取る完全羊型AIロボット。

f:id:sheephuman:20210509220853p:plain

 

 

 

通算20回に渡るゴミ拾いツーリングの記録(抜粋)

 

 

 

 

 

 

このころから既に地雷臭。完全に虚無ってます@-ᴥ-@。

 

 

 

記録上の初回。

 

 

 

 

 

 

 

 

 

 

 

 

 ↑自棄になっている。

 

 

 

↑既に参っている。

 

 

 

 

もう終わりにしたい......

 

 

 

 

↑ちょっと気分を変えてみる

 

 

 

↑絶望的

 

 

 

 

↑まさに悪夢だった。

 

 

 

↑もう勘弁してくれ。

 

 

 

↑いつもの嫌味。

 

 

 

↑視点を変えてみた

 

 

 

 

 

 

 

↑VHSがある辺り、多分40代後半、もしくはジジイ。

 

 

 

↑そろそろ辞めようかと考え出してる

 

 

↑ それでも気になる。無職でヒマだし。

 

 

 

牧羊犬とひつじ 

 

 

 

常連客との会話

 僕「ちわっす✊」

 釣り客「ボランティアですか」

 僕「そーです(-ω-)/」

 客「大変ですね」 

 僕「そーですね。バイクが沈んでたんですが」

 客「向こうの方、バイクが沈んでますよ。5台ぐらい。」

 僕「ご,5台も・・・・(茫然)」

 客「何か知らないけどすててくんですね。バイク乗りが年一回ぐらい掃除していく」

 僕「年一回でもやらないよりはいいですよね!(乾いた笑顔)」

 客「Ahahahaha」

 

ときどきこんな会話をすることもあります。

 

 

 

あとがき

考えた末、土日限定で活動することにした。どうにも気になってしまうんですよね。忘れてしまえばいいんですが。ちなみにマナーとかは割とどうでもいい感じです。

 

いつも執拗に言ってる”All Wemen are sheeps”はそろそろ棄てた方がいいかも。 棄てられたらだけど。

 

 

Honda Dunk 50cc 原付にYupiteruカーナビ YPB740を取り付けてみた件

 

 

ご無沙汰しております。勝海舟です。

そろそろ溜まってきたネタをどうにか消化しようと考えております。ついでに少しはカネになるといいななどと。

 

 

 

 

ユピテルYupiteru)のカーナビ YPB740を取り付けました。

 

 

Twitterではよく注目を惹いてくれました。あまり見てくれは良くない。

 

強力両面 テープはダイソーで扱っているもので十分でした。屋外用やプラスチック、金属の接着をサポートしているものが良いかと。雨に濡れると色々ダメなんじゃないかな・・・防水処理は目途が立ったら追記します。防水テープかなんか使うか。

 YPB740も屋外仕様ではありませんので、雨に濡れると壊れるかも知れません。

 

 

こいつ、意外と性能いいです。特に距離計が重宝している。中古でいくつか出回ってるので、ねらい目なんじゃないかな。

 

 

 

 

 

 相場

相場は大体4500~6000といったところです。

例によってメルカリで購入。流石に新品未開封はあってもオススメしませんが。新品で話題の品を紹介する方がまだカネになる気がします....

 

 

↓以下で購入

https://www.mercari.com/jp/items/m93131360217/

 

 

中古で買うと、吸盤が弱っていたりします。最初はクルマに着けてたんですが、すぐに取れてしまいました。

 

 

 

 

 

バッテリーもヘタってるので、シガーソケットじゃないと電源すら入りません。届いても電源が点かなかったんで、これは掴まされたかなと焦った(;'∀') 

 

ワンセグなど使ったことないですね。埼玉だと映りもしないんで。率直に言ってなんでワンセグを未だに推すのか分からん。ゴミ。

 

 

 

GPSデータ更新を行う方法

 

 

 

 これは上記のごとく、オービスデータ速度違反取り締まりデータの更新を行うというもので、PC上での手動操作となりますが、非常にカンタンにアップデートが行えます。なんとこの2014年生のYPB740もサポート対象となっておりましたので、試しに購入。

 

 

 

僕は原付が好きなんだけど、今のところ50ccしか持ってないんで意味があるのかは不明。警察の取り締まりスケジュールの方が頼りになります(敵の情報だけど!)。

 

ですが、安価な価格で35日間の更新をサポートする訳で、とりあえず敵に備える事は出来ます。その場所に行くと、身が引き締まる心地がします。

 

 

f:id:sheephuman:20210427181722p:plain

 

 

本日(2021/4/27)も更新されており、関東圏が大量に更新されておりました。

 

f:id:sheephuman:20210427181759p:plain

 

関東圏以外があまりカバーされていないようで、どこまで有効なのかは疑問も感じます。当然ですが100%を保証するものでもないでしょう。どこまでサービス継続するかも不透明で、古い機種から順次打ち切りになると思われます。

 

 

如何わしいスマホアプリにもオービスのデータ無料を謳っているものが多くありますが、それよりは信ぴょう性があります。計196と、常時200前後を登録している模様。

 

中身はテキスト形式のバイナリファイルのようです。

 

これをSDカードリーダーを使用してPCで読み込み → SDカード内に配置という流れです(SDカードは最初から入ってた2GBのものを使った)。

 

f:id:sheephuman:20210427183414p:plain

 

 

取説も読みましたが、この機種、単純にルートパスにファイルを置いとけば勝手に読み込むようです(※1)。ただし、複数のファイルがあると更新されないと書いてありました。

 

 

※1 いくら読んでも漠然とした表現しか見当たらないので迷った

 

 

これには注意が必要でしょう。単に最初に読み込んだ指定の形式のファイルを、本体のデータのものと比較するアルゴリズム(仕組み)ではないかと考えています。

 

 

最近も更新

 

 

デフナビというものもある

mc-web.jp

 

オシャレな外観でOSも良いのが付いてと良い印象ですね。自分としてはやはり2カメラが欲しいと思ったので見合わせました。まだちょっと高めな印象はある。

バイクとクルマ兼用で使いたい方はオススメです。

 

↓こんなの

www.youtube.com

 

 

YPB740を取り付けたガンツバイク号(横向き)

f:id:sheephuman:20210430085544p:plain

 

 

 

あとがき

この状態で走るとかなり目立つようですね、何人かに笑われました....

内部的に古いデータなので、住所の選択とかも難儀することがありますが、やはり快適です。優秀なスマホアプリもありますから、そこは使い分けが出来るし。

 

警察に如何に捕まらずに50ccを走らせるか、いつも苦心してます。

 

Dunkはそこそこ速くて燃費がいいので気に入っている。ハイスピードプーリー入れて、もう少し最高速を上げたいなと考えてます。そんな高くないっぽいし。

 ↑燃費が下がると聞いて取りやめ。

 

 

 

続きの記事

 

sheephuman.hatenablog.com

PythonでZIPファイルを扱ってみる記録


しきりにプログラミングをしたいという知人が居て、仕方が無いので骨折り作業をしている。僕もスキルは欲しいし。
プログラミングそのものを仕事にするのは生涯ムリだろうと思います。
VsCodeのセットアップが出来なかったんでPyCharm使ってます。

ZIPを扱うアプリの制作です。
目標としてはEXE化して、ドラッグ&ドロップでZIPを生成するとこまでやりたい。


まず試してみたコード 

qiita.com

初心者がC#やったりすると実行方法が分からなくて苦労するんだけど、Pythonは楽でいいですね。コピペで終わるから。



Tkinderの動画でGUIの基礎を学ぶ

www.youtube.com
動画って意外と疲れるんですよね。ちょっとでも打ち間違えると動かんし。
Tkinderは比較的コードがシンプルで楽ですね。



Python(tkinter)にてテキストボックスの高さや幅(大きさ)、色、複数行で作成する方法【ラベルも併せて解説】 | ウルトラフリーダム


【Python】テキストボックス(Tkinter.Entry)の作成・クリア・取得・セット | 鎖プログラム



qiita.com


f:id:sheephuman:20210408203529p:plain

デモプレイ動画

音楽流して作業してるんで図らずも入ってしまう('ω';)

www.youtube.com




ソースコード全文

コピペで動くはずです。

デモ手順:

  1. ファイル選択画面でzipファイルを指定してください
    2. 「新しいフォルダ」を作成し、保存場所を指定してください
    今回はTest.zip(個人的お宝がぞうを入れたもの)を使用しています(動画参照)
from tkinter import *
from tkinter import messagebox as mb
import os, tkinter, tkinter.filedialog, tkinter.messagebox
import zipfile



win = Tk()
mylabel = Label(win, text="ZipFileのパス")
mylabel.pack(fill = 'x', padx=20, side = 'left')
mylabel.pack()

text = Entry(win,width=100)
text.pack(fill='x', padx=5, side = 'right')
SourceFile = Entry(win)



text.pack()
#SourceFile.pack()
text.insert(END, " ")
SourceFile.insert(END, " ")


def ok_click():
    # ファイル選択ダイアログの表示
    root = tkinter.Tk()
    root.withdraw()
    fTyp = [("", "*")]
    iDir = os.path.abspath(os.path.dirname(__file__))
    file = tkinter.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir)
    a = file
    text.insert(END,a)

    # ファイルの展開
    with zipfile.ZipFile(a) as myzip:
        extractFolder = tkinter.filedialog.askdirectory()
        myzip.extractall(extractFolder)  # zipファイルに含まれているファイルを全て取り出す
        tkinter.messagebox.showinfo('ひつじプログラム', '処理が完了しました!')

okButton = Button(win, text="OK", command=ok_click)
okButton.pack()

win = mainloop()

あとがき


意外とあっさり終わりました。PySinpleGUIは何やらごちゃごちゃして分かりづらかったんだよね。 ドラッグ&ドロップは気が向いたらやります。

C#でファイルリネームアプリを開発してみた記録

 

 最初Pythonでやろうとしたんだけど、いきなりPythonで開発するのは敷居が高いと思われたため、開発が楽なC#(WinForm)でたたき台を作ってみる事にした。

 特にGUIはCodingしなければならないため、Visual Studioみたいに直感的にマウスで並べるという訳にはいかない。

 



参考にしたソフトウェア

f:id:sheephuman:20210328133916p:plain

 

 

とりあえず似たような機能を適当に実装してみる。

 

 

f:id:sheephuman:20210329181909p:plain

 

 

実行結果画像

f:id:sheephuman:20210329182245p:plain



f:id:sheephuman:20210329185713p:plain 

 

前提条件として、

C:¥test フォルダを作成しておき、そこにテスト用ファイルをコピーしておいた。

 

 

プロジェクトファイル

drive.google.com

ソースコード全文



面倒なので一応注釈はつけるが、個別には分けない事にしている。 ちなみにエクスプローラー風のUIはBlogページのソースコードを流用している。一応感謝の意を。



www.doraxdora.com

独自の実装は実行ボタンを押したときの挙動ぐらいである。


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Forms;

namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            // ドライブ一覧を走査してツリーに追加
            foreach (String drive in Environment.GetLogicalDrives())
            {
                // 新規ノード作成
                // プラスボタンを表示するため空のノードを追加しておく
                TreeNode node = new TreeNode(drive);
                node.Nodes.Add(new TreeNode());
                treeView1.Nodes.Add(node);
            }
            // 初期選択ドライブの内容を表示
            setListItem(Environment.GetLogicalDrives().First());
        }
        DirectoryInfo di;

        private void Form1_Load(object sender, EventArgs e)
        {
            
            // 初期選択ドライブの内容を表示
            setListItem(Environment.GetLogicalDrives().First());
        }

        private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            TreeNode tn = e.Node, tn2;
            string d = tn.FullPath;//展開するノードのフルパスを取得
            tn.Nodes.Clear();
            di = new DirectoryInfo(d);//ディレクトリ一覧を取得
            try
            {
                foreach (DirectoryInfo d2 in di.GetDirectories())
                {
                    tn2 = new TreeNode(d2.Name, 1, 2);
                    tn.Nodes.Add(tn2);
                    tn2.Nodes.Add("...");
                }
                foreach (FileInfo fi in di.GetFiles())
                {
                    tn2 = new TreeNode(fi.Name, 3, 3);
                    tn.Nodes.Add(tn2);
                }
            }
            catch { }
        }


        /// リストビューの項目を設定します.
        /// </summary>
        private void setListItem(string filePath)
        {
            // リストビューのヘッダーを設定
            listView1.View = View.Details;
            listView1.Clear();
            listView1.Columns.Add("名前");
            //listView1.Columns.Add("更新日時");
            //listView1.Columns.Add("サイズ");

            try
            {
                // フォルダ一覧
                DirectoryInfo dirList = new DirectoryInfo(filePath);
                foreach (DirectoryInfo di in dirList.GetDirectories())
                {
                    ListViewItem item = new ListViewItem(di.Name);
                    item.SubItems.Add(String.Format("{0:yyyy/MM/dd HH:mm:ss}", di.LastAccessTime));
                    item.SubItems.Add("");
                    listView1.Items.Add(item);
                }

                // ファイル一覧
                List<String> files = Directory.GetFiles(filePath).ToList<String>();
                foreach (String file in files)
                {
                    FileInfo info = new FileInfo(file);
                    ListViewItem item = new ListViewItem(info.Name);
                    //item.SubItems.Add(String.Format("{0:yyyy/MM/dd HH:mm:ss}", info.LastAccessTime));
                    //item.SubItems.Add(getFileSize(info.Length));
                    listView1.Items.Add(item);
                }
            }
            catch (IOException ie)
            {
                MessageBox.Show(ie.Message, "選択エラー");
            }

            // 列幅を自動調整
            listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
        }


        /// <summary>
        /// ファイルサイズを単位付きに変換して返します.
        /// </summary>
        /// <param name="fileSize"></param>
        /// <returns></returns>
        private String getFileSize(long fileSize)
        {
            String ret = fileSize + " バイト";
            if (fileSize > (1024f * 1024f * 1024f))
            {
                ret = Math.Round((fileSize / 1024f / 1024f / 1024f), 2).ToString() + " GB";
            }
            else if(fileSize > (1024f * 1024f))
                {
                ret = Math.Round((fileSize / 1024f / 1024f), 2).ToString() + " MB";
            }
            else if(fileSize > 1024f)
                {
                ret = Math.Round((fileSize / 1024f)).ToString() + " KB";
            }

            return ret;
        }


        /// ツリービュー項目選択時(前)のイベントハンドラ.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
          
           
                setListItem(e.Node.FullPath);
            
        }

        private void treeView1_BeforeExpand_1(object sender, TreeViewCancelEventArgs e)
        {
            TreeNode node = e.Node;
            String path = node.FullPath;
            node.Nodes.Clear();

            try
            {
                DirectoryInfo dirList = new DirectoryInfo(path);
                foreach (DirectoryInfo di in dirList.GetDirectories())
                {
                    TreeNode child = new TreeNode(di.Name);
                    child.Nodes.Add(new TreeNode());
                    node.Nodes.Add(child);
                }
            }
            catch (IOException ie)
            {
                MessageBox.Show(ie.Message, "選択エラー");
            }
        }

        private void Excutebutton_Click(object sender, EventArgs e)
        {


   //Nodeのフルパス取得
            string SelectedPath = treeView1.SelectedNode.FullPath;

            //List<string> files = listView1.Items.;

            var files = new List<string>();
            int count = 0;
   

   //Nullチェック
            if (textBox2.Text != "")
            { count = int.Parse(textBox2.Text); }


  //items[0].Subitems では一行分しか取得できないため、For文を回す必要があった
            for (int i = 0; i < listView1.Items.Count; i++)
            {
                foreach (ListViewItem.ListViewSubItem item in listView1.Items[i].SubItems)
                {
      //予め宣言しておいたFilesにAddする。
                    files.Add(SelectedPath + "\\" + item.Text);
                }
            }

            foreach (string file in files)
            {
                count++;
    //Path.GetExtension(file); 拡張子取得
                string Unitestring = Path.GetDirectoryName(file) + "\\" + textBox1.Text + count + Path.GetExtension(file);

                File.Move(file, Unitestring);
    
    //Rename結果を表示する。
                listView3.Items.Add(Unitestring);
            }
        }


    }
}



最低限の実装しかしてないけど、流石にいくらかは簡単だった。特にサンプルコードは助かった。 Pythonでやるとこの3倍ぐらい時間掛かりそうなんですよね・・・・
出来ることなら無理にGUI化したくないなあという感触。

Amazonで買ったバイク用300Dカバーをレビューする記事

 

前回の記事

 

sheephuman.hatenablog.com

 

 

 

購入したバイクカバー

 なんか放っておいたら在庫切れになっていた。残念。

あとでレビューは入れておく。

 

 

 

 

 

 

 

¥ 1,504で購入。

 

綺麗に折りたたまれた状態で送られてきた。

 今回こそアフィリエイト報酬が来てほしいと願っている。

 

こっちでもほぼ同じだと思うので貼っておく。購入して支援してください

 ¥2000

 

150Dもあるが、300Dの方が長持ちするだろう。

¥ 1800

 

 

”D”とは。

f:id:sheephuman:20210315120302p:plain



shikosakugo.info

糸の太さを表している

『1デニール=9000メートルの糸の質量が1g』のようです。要するに、300D=9000mあたり300g

 

 それだけ耐久性が高いってこと。

 

 

 

評判(300Dのほう)

  • 250㏄向けでもすっぽりと過不足なく入ります。
  • GSR250 にぴったりです。
  • 生地が厚くてシッカリしてる!
  • 総括してみると、この値段ならアリだと思う。
  • 同じ価格帯の物で比べると厚さや質感等1番いいと思いました。

 

 

  

 

300Dとはいえそんなに長期間は持たない(3年ぐらい?)らしいので、主に旅先で使う事にしました。

あんまり安い買い物でもないので、自宅保管ならゴミ袋で作れば十分じゃないのかと。

 

あんまり見かけが立派だと盗難に遭いやすいらしいし。それについては何とも言えません。

Twitterの方々に訊いてみた 今後役に立つ資格や技能

 

 

 

Twitterの方々に訊いた、今後役に立つ資格やその他情報。

 

 

 

 

 

 

  アンケート内容は、今後行く予定の職業訓練学校の志望選びに活用。

 CAD・NC技術科とした。

 

www3.jeed.go.jp

 

 

CADは判ると思うが、NC技術というのは例えば以下のような事を行う。

このように、必ずしも建築とは関わらない。製図はするようだ。

 

www.youtube.com

 

 

重機系は手っ取り早くていいと思っていたのだが、意外と伸びなかった。

組み込みIotはホビーではないかと考えていた。

Rasbery pi で企業向けサーバ構築とかいいと思ってる。

 

www.youtube.com

 

 

 

 

旋盤加工とかかなり大がかりな事をやるらしいので、希望者数はかなり少なかった。

一番多いのはモノづくり技術科だった。

 

 

Web面接のコツ

 

 

 

 

 

今後、職業訓練が終わるまでは積極的な就活はしない。

 

XmindApiのインストールと使い方 ~Git上のオープンソース実行まで~

XmaindAPIについて概説する。

 

archive.codeplex.com

 

github.com

 

 

 

概要

XmindAPIです。

 

MindMapを使用したWebアプリを開発するのにXmindAPIを導入。 XmindAPIを使うのに、Gradleというものが必要。そのGradleを使うにはどーたらこーたら。

 

全くの初心者が自力で何とかしようとしてます。

Gradlew Installdistしてみる”の項が多分最短。

 

C#か何かのアプリケーション開発に使用するかもしれない(※1)。

 

※1 しないかも知れない

 

使用方法

 

とりあえず、GithubからHDD上のローカルストレージへとダウンロードしてくる事にする。

 

ビルド/インストール/xmindapiディレクトリで実行可能なサンプルを構築するには、「gradlew installDist」を実行します。そのディレクトリから、bin/xmindapiを使用してサンプルを実行できます。

 

とあるので、 gradlewについて調べることにする。

 

Gradle - Wikipedia

GradleApache AntApache Mavenのコンセプトに基づくオープンソースビルド自動化システム

 

 

qiita.com

 

 

 

 早速gradleをダウンロードしてみる

後で考えてみると、入れなくてもよかったんじゃないかと思う。多分。

 

めんどくさい。

gradle.org

 

gradle はGradle | Releases 以下にある。

 

 

Pathを通す

とりあえず何も分からないので、役に立ちそうなソースは端から引っ張ってこなくてはならない。キツい。

qiita.com

 とりあえず環境変数とPathを通しておく。それぐらいだったらまあ出来る(多分)。

 

参考

Windows10にGradleをインストール - Qiita

 

 

>解凍したフォルダを環境変数GRADLE_HOMEにそのパスを設定します。また、GRADLE_HOME/binにパスを通しておきます。

実際は %GRADLE_HOME%\bin ?



 

動作確認

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

 

 

Javaのインストールがされていないらしい。

 

 

 

JavaをインストールしてPathを通す

 Javaを落としてきた。

https://www.java.com/ja/download/ie_manual.jsp

 

 

 

動作確認

 

それでもGradleの実行に失敗

JAVA_HOME is set to an invalid directory: C:\Program Files (x86)\Java\jre1.8.0_281\bin

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

f:id:sheephuman:20210313132140p:plain

 

解決方法

qiita.com

 

再度動作確認

なかなかうまくいかないので、コマンドプロンプトで設定してみた。

結果成功。

C:\Users\USER>set JAVA_HOME="C:\Program Files (x86)\Java\jre1.8.0_281"

C:\Users\USER>gradle -version

Welcome to Gradle 6.8.3!

 

 

 

さっそくXmaindAPIをGradleでビルドしてみる

公式Gitより。

 Run "gradlew installDist" to build a runnable sample in the build/install/xmindapi directory. From that directory you may run the examples using bin/xmindapi

 

 

 

 よく分からないので、とりあえずgradlew.batをコマンドプロンプト上で実行してみる。

 

 

 

 

 

 

なにやらダウンロードしてくる。

 

 

 Exception in thread "main" java.net.ConnectException: Connection timed out: connect

 

と表示された。

どうやら失敗しているらしい。

at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)

 

説明を読み返してみる。

GitHub - sappling/xmindapi: Samples using the xmind api

How To Build

These samples include a gradle build file and wrapper. Use the provided gradlew file to create a project for your IDE or a command line runner for the samples. You will need to have a Java 8 SDK installed and your JAVA_HOME environment variable set.

Run "gradlew idea" to generate a project for IntelliJ Idea Run "gradlew eclipse" to generate a project for Eclipse.

Run "gradlew installDist" to build a runnable sample in the build/install/xmindapi directory. From that directory you may run the examples using bin/xmindapi.

 

 

 

 

とりあえずIntelliJ Ideaで開くことが出来た。

f:id:sheephuman:20210314085547p:plain

 

 

 

 Runしてみても何も開かない。APIだからだろうか。

f:id:sheephuman:20210314094556p:plain

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings. 

 

このビルドでは非推奨のGradle機能が使用されていたため、Gradle7.0との互換性がありません。

 

 

とあるのは、Gradle 7.0から推奨されないコマンドがあるということらしい。

 

 

itneko.com

 

 

こんなに疲れるとは思いませんでしたわ。

f:id:sheephuman:20210314112548p:plain

 

 

 

 

何処が問題なのか調べてみる

qiita.com

 

 

 

f:id:sheephuman:20210314100445p:plain

 

↓問題があるのはどうもcompileが非推奨になっているためのようである。

dependencies {
compile fileTree(dir: 'lib', include: '**/*.jar')
compile group: 'com.intellij', name: 'annotations', version: '7.0.3'
}

これをImplementationに書き換えてみる。

 

qiita.com

 

 ↓Buildが正常に通った。

f:id:sheephuman:20210314100843p:plain

 

 

あとで気が付いたのだが、コマンドプロンプトgradlew eclipse や

gradlew idea  を実行するとそのIDE上で開けるようにビルドしてくれるらしい。分かる人には分かるのだろうが・・・・・・・・・

 

 

f:id:sheephuman:20210314115914p:plain

 

 

でもIntelliJ Idea上で Buildしたらエラーになった。

「File」 → Project Structureの中身を弄ってたらエラーは治った。

 

f:id:sheephuman:20210314122606p:plain

 

どうやって実行するのかはいまいちよく分からん。

 

Hunter×Hunter フィンクス



 また、Eclipseでの開き方は分かっていない。

 

 

 

Gradlew Installdistしてみる

Gradlewファイルが E:\applicatiom2(安置したフォルダ)\xmindapi-masterにあるので、コマンドプロンプトでXmaind-Maseterがあるフォルダまで移動する。

 

これを実行しているようである。

f:id:sheephuman:20210314111109p:plain

 

Error

f:id:sheephuman:20210314110239p:plain

Could not find tools.jar. Please check that C:\Program Files (x86)\Java\jre1.8.0_281 contains a valid JDK installation.

とあるので、tools.jarを引っ張ってくる。

 

qiita.com

Java Platform, Standard Edition 8 Reference Implementations  から

Oracle Linux 7.6 x64 Java Development Kit (md5) 167 MB

を落としてくる。

 

あとは参考ページの指示通りに行う。

 

今度はBuildを通せたようである。

f:id:sheephuman:20210314110838p:plain

 

どうなったのか分からん。

実行ファイルのようなものは何も作成されないようである。

 

xmindapi-master.jarが E:\インストールフォルダ\xmindapi-master\build\libs

に作成されたのが確認できたが、クリックしても何も動いてない。

 

 

 

再度説明を読み返してみる

GitHub - sappling/xmindapi: Samples using the xmind api

Run "gradlew installDist" to build a runnable sample in the build/install/xmindapi directory. From that directory you may run the examples using bin/xmindapi.

とあり、見てみると

 

build/install/xmindap直下に以下のファイルが作成されていた。

 

bin以下

xmindapi-master

xmindapi-master.bat

 

 

lib以下

annotations-7.0.3.jar

org.xmind.core_3.6.1.jar

org.xmind.ui.mindmap_3.6.1.jar

xmindapi-master.jar

  

 

f:id:sheephuman:20210314112420p:plain

 

 

どうやって使うのか分かりませんわ.....

 

 

 

とりあえずCmd上で実行してみる

 

f:id:sheephuman:20210314113329p:plain

 

xmindapi-master simpletree を実行すると、同じディレクトリにsimpletree.xmindというXmindファイルが作成される。これはその名の通り、Xmindで開くファイルのようである。

 

 

Xmindで開いてみた(クリックで拡大)

jp.xmind.net

 

f:id:sheephuman:20210314114240p:plain

XmaindAPIで作成したXmindファイル

 

 

 

あとがき

 

 

羊の飼育のように手間がかかった。

つーかなんでこんなに大変なの?僕みたいな初心者を簡単に誘導するように作られてはいないため、かなりの手間がかかってしまった。

 

しかもコレ、実用的に使えんのかねって感じ。 よく分からん。

 

 

とりあえず、初めてGit上のオープンソースなファイルを実行までもっていく事が出来た。