2024年は長かった気がするので振り返り。
大した記憶なし。前職でなんかブチギレた記憶はあります。
人の移り変わりも激しかった気がします。
そのおかげでいろいろな人に出会えました。
この頃独立したろって思って行動に移しました。
そして案件炎上で大腸が死にましたw
有給消化!!!!!!!
フリーランス開始(仕事なしw)
役所行ったり、営業したりしてました。
たぶん本当の営業さんから見たら私のやってることは営業の真似事レベルだと思う(笑)
名刺交換や挨拶など対応して頂いた方々に感謝です_(._.)_
とりあえず仕事しながらやりたいこと模索中。そして毎年恒例で飲み会ラッシュ!!!
一緒に乾杯して飲み会してくれた方にも感謝です_(._.)_
前半はまったりぬるま湯でしたが、
前職では有能な人材や新人に出会い、人間関係に変化もありと
同時に価値観も変わった気がするので、とても良い期間であり長かった気がします!
2025年もやりたいことはあるので、それに向かって進みたいと思います。
是非是非、私と一緒に仕事してくれる人はお声がけしてくれれば
どんな形でも一緒に仕事しましょう!
ついでに飲み会も・・・w
2024年もありがとうございました!2025年もよろしくお願いいたします!
それではよいお年を~・・・以上!!!!!
GeneXusだとQRコードが標準でサポートされてないので
ネイティブで実装する方法を備忘録として。
・GeneXus17
・C#
・.NetFramework4
まずはC#のライブラリを作成
作り方は数年前の私が書いてるので適当に参考にして
今回はC#なのでこちらのライブラリを使用。Visual StudioのNuGetで適当に取得。
オプション等渡せる値は多いけど、
今回はQRコードにするURLと、QRコードを保存する絶対パスを引数として指定できるようにします。
using System;
namespace GxQRCode
{ public class QRCode { public static void Create(String URL, String Path) { var writer = new ZXing.BarcodeWriter { Format = ZXing.BarcodeFormat.QR_CODE, Options = new ZXing.QrCode.QrCodeEncodingOptions { Height = 200, Width = 200, Margin = 1 } }; var bitmap = writer.Write(URL); bitmap.Save(Path); } }
}
今回は以下のように設定
namespace(DLL名):GxQRCode
class(GX側のオブジェクト名):QRCode
method名(GX側の呼び出す際のメソッド名):Create
KBを適当に作成して、「External Object」を作成。
これもこちらの記事を参考に設定。(プロパティ値を設定するのがメンドイ)
Visual Studioで作成したDLLと、ZXingのDLLをKB側にコピーしたら
ビルドをしてエラーが無ければ問題なし。
適当な画面を作成して、ボタン押下でQRコードを作成するようにコーディング。
Event 'QRCreate' // ファイル名に付与するタイムスタンプ文字列を作成 &DateTime = Now() &DateStr = PadL(&DateTime.Year().ToString().Trim(), 4, !"0") + PadL(&DateTime.Month().ToString().Trim(), 2, !"0") + PadL(&DateTime.Day().ToString().Trim(), 2, !"0") + !"_" + PadL(&DateTime.Hour().ToString().Trim(), 2, !"0") + PadL(&DateTime.Minute().ToString().Trim(), 2, !"0") + PadL(&DateTime.Second().ToString().Trim(), 2, !"0") + !"_" + PadL(&DateTime.Millisecond().ToString().Trim(), 3, !"0") // 絶対パスを作成 &Directory.Source = !"C:\Models\GX17U2_QRTEST_20241112\CSharpModel\web\qrcode" // ファイル名とURIを作成 &URI = &Directory.GetAbsoluteName() + &File.Separator + !"qrcode_" + &DateStr + !".png" // QRコードを作成 QRCode.Create(&QRString, &URI) // 画像を表示 &Blob.FromString(&URI) &URL = PathToUrl(&Blob) &Image.FromURL(&URL)
Endevent
所定の場所にQRコードが作成されました。
パス作成部分がハードコーディングなのはご愛嬌で・・・w
作成ボタンを押下したら、画面上に表示してみます。
同じ要領でボタン押下したら、PDFに画像を表示します。
(まぁ画面もPDFも同じっちゃ同じ)
ということで今回はQRコードの画像を作成してみました。
生成系AIとか当たり前にある世の中ですが
さすがにQRコード1個にAI使いたいかと言われると・・・微妙かなとw
以上!
]]>メールアドレスが欲しい。
仕事が変わるたびにメアドが変わるのめんどくさいので
ドメインもあるんだから、メールくらい持っててもいいかなーという
衝動に駆られ設定してみました。
仕事用のドメイン分けたほうがいいかなーとかも思ったんですが
それもめんどくさいので、oqiita.comを乱用。
・通常のブログ用のドメインはお名前.comで取得済み。
・ブログ用のwordpressはAWSのEC2で稼働済み。
・Route53でホストゾーンを設定済み。
とりあえずお名前.comでメールドメイン(お名前メール)を申し込み。
この辺は割愛。適当にググって金を払ってください。
ステータスが「稼働中」になったらOK
レンタルサーバーコントロールパネル?でメールアドレスを発行。
今回は適当なアドレスを作成
とりあえずこれでアドレスの発行は完了。
この段階でメーラーに設定は可能。
このままだとメールの送受信ができないので設定を追加します。
レンタルサーバーコントロールパネルでドメイン一覧を表示して
該当のドメンのDNSを確認します。
MX、TXT、TXT(default._domainkey)が大事。
AWSのRoute53の既にBlog用で作ったホストゾーンにレコードを追加します。
レンタルサーバーコントロールパネルで確認した
MX、TXT、TXT(default._domainkey)を設定します。
この時優先順位も設定しましょう。
例:10 mail9999.onamae.ne.jp
default._domainkeyを設定するとき、エラーが出ると思います。
こちらは以下の記事でも説明があるように、長すぎるようなので文字列を分割します。
ちなみにTXTとdefault._domainkeyが設定されてないと
Gmailのようなセキュリティ厳しめのところとメールやり取りしようとすると
エラーになるので全部設定することをオススメします。
メールの送受信をいろんなメールアドレスとやり取りして
問題無ければ、OKです。
フリーアドレスで十分だと思ったんですが、
フリーアドレスも何個もあると訳分らなくなるし
信用されないとか言われたので、もういっそのこと自分で管理したほうが早くね?
ってなった感じですね。
以上!
]]>KBの削除方法を聞かれたのでメモ。
・GeneXus 18
・SQLServer 2019
・IIS
(ちょっとJavaも書いてる)
今回いらないKBは「SampleKB」です。
フォルダパスなどは、開始ページなどで確認しておく。
注意1
私がいつも実施してる手順ってだけで
もっといい方法があるかもしれない。
その場合はコメントでも書いてください。たまに承認してます!
注意2
自己責任で実施してください。
お仕事(プロジェクト)によっては削除しちゃダメだったり
削除方法が決まっている場合もあるので、あくまでも参考程度で。
GeneXusがKBを開いていると削除できないので閉じます。
SQL Server Management Studio(SSMS)を起動して、
KBのDB(GX_KB_~~~)をデタッチします。
DBを右クリックして
タスク > デタッチ
デタッチの説明は割愛です。気になる人は勝手に調べて。
事前に調べたKBフォルダを削除します。
※フォルダが削除できない場合、GeneXusのタスクが残ってる場合があるので
タスクマネージャーからGeneXusタスクを終了後にフォルダを削除する。
・.Net Frameworkの場合
IISの管理コンソールを開いて該当のAPPを右クリックして削除
・Javaの場合
Tomcatのwebappsから該当のAPPフォルダを削除
※Tomcat以外の場合も、該当のAppフォルダやApp情報を削除
APPで使用した、DBを削除する必要がある場合は削除します。
ここはデタッチじゃなく、削除で良い。
上記手順だけだと開始ページのリンクが残るので、消します。(消さなくても開けないので見た目の問題)
以下のファイルを編集して該当の不要部分を削除します。
C:\Users\【ユーザー名】\AppData\Roaming\GeneXus\GeneXus\18\recentsKBs.xml
とりあえず簡単でしたが削除方法をまとめました。
e-learningとかでも教えないし
私も誰かに教わった記憶が無いので
なんか皆好きなやり方で削除してるのかなwww
以上
]]>CentOSのサポートが切れたりいろんな節目だったのでいろいろ変えました。
CentOS7のサポートが2024年6月30日で終了です。
あんまり仕事関係だと使ってるところ少なかったイメージですが
昔は良くお世話になったイメージ。
あとはこのサイトもCentOSでしたーw
ありがとうCentOS!!!!!さらばCentOS!!!!!
このBlogはいろんなサーバーを転々としてますw
GCPでなぜかGCEが新しく立ち上がらなくなるという謎現象でGCP卒業w
構成は昔と何も変えてないけどずっとKUSANAGIを使ってます。
別にこだわりがあるわけではないけど、なんかセットになってるし便利。
サポートもしっかりしてて
移行とかの手順などもあったりで、情報が多いのがいいと思う。
ノーマルのwordpressも使ったことあるけど、いろんな情報があってメンドイ。
wordpressのエディタはだいぶ前にGutenbergになりましたが
クラシックエディタを今でも使ってる方が多いと思います。
私もその一人でした(笑)
(まぁ全然投稿サボってたけど)
ある会社のあるブログもクラシックエディタで
正直ダサいし、新しい機能ぐらい使えよってことで
このブログでは Gutenberg(グーテンベルク)を使うことにしました!!!
もちろん出たばっかでバグばっかなら使わないことも正しい!
ただ出てからだいぶたつ(たぶん5年くらい?)のでもう使ってもいいでしょう!
※どのエディタ使っても見た目は変わらないので、あとは使い勝手の問題ですねw
ということで、ヒマもやりたいことも増えてきたので、ダラダラと更新頻度を上げたいですね。
以上!
]]>GeneXusの自作モジュールの配布方法(nexusサーバー)について。
GeneXusの自作モジュールを配布するサーバーnexusの設定のメモ
なんか4年前くらいに書いてたのを思いだして再配布できるようになってたから調べたら
いろいろ罠があって、でもできたので一応載せておきますw
(まぁ俺がやるんだからできて当然だよね!)
GeneXus 17u10
Docker Desktop 4.16.3
Maven 3.9.0
sonatype nexus(最新版:OSS 3.47.1-01)
今回はメンドイのでDockerを使用。
Dockerとmaven使ったことない人はちょっと難しいかもね!
ざっくりした流れとしては
dockerでnexusサーバーを起動して、Repositoryを作成して
GXからmavenを使用してnexusサーバーにアップロードして
他のGX(違うKB)でnexusサーバーからモジュールをダウンロードする。って感じです。
コンポーネントパーツ、アセンブリ、完成品の管理・配布を行うための、サーバーソフトウェアです。
ブラウザで管理画面を表示し
コンポーネントパーツ等を管理するタイプのサーバーソフトウェアです。
作業前にdockerのアップデートは適当に。
nexusのimageを取得してコンテナを起動するんですが
ここが罠。GeneXus wikiに書いてるURLは古くて最後のほうに行くと
うまく動かないという罠。
GeneXus wikiに書いてるURL:https://hub.docker.com/r/sonatype/nexus/
最新のURL:https://hub.docker.com/r/sonatype/nexus3/
docker pull sonatype/nexus3
Adminのパスワードが必要なので永続データをボリュームで外だし、ボリュームのパスは個人の環境なので適当に。
docker run -d -p 8081:8081 --name nexus -v C:\docker\nexus\nexus-data:/nexus-data sonatype/nexus3
docker ps
以下のURLにアクセス
http://localhost:8081/
(起動まで少しかかる)
nexusにログインします。
ID:admin
パスワード:ボリュームの中にパスワードファイル(admin.password)があるのでそれを参照
初回ログイン後は
パスワードの変更があるので、画面に従ってパスワードを変更する。
nexusにアップロードするのにmavenが必要なので、入ってない人は入れてください。
URLからmavenのZipをダウンロードして、ダウンロードしたZipを適当なところに解凍して、Pathを通す。
https://maven.apache.org/download.cgi
今回は「apache-maven-3.9.0-bin.zip」を使用。
以下のコマンドでPathが通ったか確認
mvn -version
Apache Maven 3.9.0 (9b58d2bad23a66be161c4664ef21ce219c2c8584)
Maven home: C:\Maven\apache-maven-3.9.0
Java version: 17.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-17.0.2
Default locale: ja_JP, platform encoding: MS932
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
設定ファイルを作成(ディレクトリが無い場合は手動で作成)
%USERPROFILE%\.m2\settings.xml
%USERPROFILE%がわからない場合には、cmdで%USERPROFILE%をechoすればOK。
<settings> <servers> <server> <id>★nexus側で作ったRepositoryのName</id> <username>admin</username> <password>★adminのパスワード</password> </server> </servers>
</settings>
今回はお試しなのでadminでアップロード&取得します。
GeneXusからモジュールサーバー(Nexus)を追加。
メニューの
ナレッジマネージャー > 参照モジュールの管理 を開く
モジュールを右クリックして モジュールのパッケージを作成 を選択。
なんかいろいろと設定(お試しなので全部適当)
一番下の公開するサーバーは
追加したサーバー「oqiita-test-20230214」を選択。
エラーが出なければアップロード完了。
次はモジュールを使いたいKBからダウンロードを行う。
URL等の設定はアップロードを行ったら、すでにいるはず。
違うPCで使用したい場合は
GeneXusからモジュールサーバー(nexus)を追加する。
メニューの
ナレッジマネージャー > 参照モジュールの管理 を開き、
サーバーを選択し、先ほどアップロードしたモジュールがあることを確認する。
インストールボタンを押せば、ダウンロードとインストールができるので、
あとは使用してみる。
制限事項としては画面とかトランザクションは含めることができません。
この記事読んでる人はそれくらい当然理解してるでしょう!
モジュールを使用するさいにビルド(or コンパイル)でエラーが出る場合は
モジュールのバージョンをアップして、再公開するとウマくいく場合があるので、お試しください。
(エラーの原因は知らん!)
前々から再配布ができることは知ってましたが、手順がめんどくさそう&Dockerのやり方毎回忘れるので
手を付けてなかったですが、Dockerは使ってたので
今がチャンス!とばかりに使ってみましたw
やっぱり配布ができて、バージョンも管理できるっていいですね!
画面系が配布できないという欠点?がありますが、
どうせ画面とかWork With Plusでみんなオシャレ(笑)なの作ってるんだから
問題ないでしょう!!!!!!!!
これからもコッチ系の機能が拡充することを願ってます!
以上!!!!!
]]>ちょっと時間空いたけどやったのでログ
新築の家
3人
12/10 19時~
・Figma入門
仕事?でもFigma使ってるし、GXとも連携できるっぽいので
方向転換してFigmaの勉強会になりましたーw
入門ということで基本ばっか勉強しました。
デザイナーではないので、基本の部分を抑えて
応用?や活用方法はおいおい勉強です!
開発も楽しいけど、デザインもやると楽しい。
どうしても頭が仕事よりの人間なので管理方法とか活用方法を意識しちゃうけど、まぁそのうち役に立つでしょ(知らんけど)
以上
]]>完全に私の自己満足な勉強会になったので、Oqiita勉強会という名前にしましたw
煙がいっぱいのお店
2人
11/17 19時~
・Git入門 (Gitは何回も入門するもの)
・Saucetree
・Next.js
・vercel.com (デプロイ)
普通にGitの使いかたをおさらいしただけ。
GXエンジニアだと使えない人が多いよ!(俺は使えるで!)
開発でGit使ったらだいたいコマンドで終わっちゃうけど
視覚的にわかるほうが嬉しいよね!
ついこの前バージョンアップしたし、個人的に好きなので
vercelへのデプロイも考えて、Next.jsの使い方をご紹介。
node.jsが動けばだいたいコマンド打つだけでサンプルが動くので助かるw
githubと連携してデプロイをしてみました。
勉強会中にアカウント作成してデプロイまでできるなんて、素晴らしい!
勉強会も1年くらいやって2年目になったけど、いまだにテーマ探しにモクモクしますw
以上、次も勉強会がんばろー
]]>2021年の発表が無事終わり今回から2022年度になりましたー
どっかの家
2人
10/19 19時半~
・チャットボットについて
・デザインシステムオブジェクトについて
とりあえずユーザー会でチャットボットをやろうと思ったので
テーマにしたけど企業が出してる有料のチャットボットと比べると
DialogFlowやWatsonと連携するタイプなので、限界がおおいw
GX17u6から使える機能。
テーマオブジェクトがポンコツなのでコッチになるっぽい。
そのうちBlog記事でも書こう(5月から更新止まってるしw)
ワイン1本開けたあとに勉強会してるので、半分くらい記憶ないけど
まぁ大丈夫だろう!!
次回は勝手にインポートされるオブジェクトとか
他の勉強会テーマで勉強会しよう!!!
アップ
酔っぱらって猫に絡む
以上、次も勉強会がんばろー
]]>今回は最終報告会へ向けての作戦会議でした。
煙と酒がある場所
2人
05/25 18時半~
・最終報告会どうするか相談
・ユーザー会関係ない勉強
本業が忙しくてなんもできてない。
6月から本気出す。もう振休使って本気だす。
6月も何気忙しいけどね。
飲み会もあるし、GXの教育資料も作成しないといけないし、筋トレもしたいし。。。。(ヽ”ω`)
↑PCの電源切ってから、写真とってないことを気が付いて写真とったPC
参考書籍:良いコード/悪いコードで学ぶ設計入門
例文がJavaなのでJavaが読めないとキツいなと思いました。
Javaが読めれば大丈夫だと思います。
他の言語(まぁ私はGXをメインでやってるのでGXとか)に置き換えれないようなことがあると
結構読んでる途中で「う~ん」って悩みましたw
書籍のなかで「悪魔の~」という言い回しが面白く
結構サクサク読めました。
PGのことを考えて設計、設計書を書きたい方は一読してはいかがでしょうか!?
以上
]]>