社内のサーバにアクセスできなくなった。
他の端末にリモートデスクトップ接続して、その端末からは接続できるのに!
コントロール パネル > ユーザー アカウント > 資格情報マネージャー
で、
① 接続できなくなったサーバの資格情報を削除
② サーバに接続
として、解決。
何故私だけ・・・
ハブられているのかと思ったぜ。
社内のサーバにアクセスできなくなった。
他の端末にリモートデスクトップ接続して、その端末からは接続できるのに!
コントロール パネル > ユーザー アカウント > 資格情報マネージャー
で、
① 接続できなくなったサーバの資格情報を削除
② サーバに接続
として、解決。
何故私だけ・・・
ハブられているのかと思ったぜ。
あぁーーーーーーーーーーーーー
鬱陶しいわぁ
鬱陶って漢字、本当にうっとうしい感じでスキ
じゃなくて、
Windows11のエクスプローラーで右クリックすると出てくるポップアップメニュー
あれ、本当に鬱陶しい。
で、はなっから全部出てくるようにしたい
PowerShellを管理者権限で起動し、以下のコマンドを入力して、設定を追加
reg.exe add “HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32” /f /ve
この設定を削除するときは
reg.exe delete “HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}” /f
いずれも、Enterキー押下後に「この操作を正しく終了しました。」とメッセージが出ればOK。
あとはOSを再起動するだけ。
だそうだけど、はじめっからこんな設定すんな!
自分はバイクに乗る。車の免許も持ってる。自転車も乗る。
そして、歩行者でもある。
そのうえで書く。
歩行者って、勘違いしてない?
どこでも歩いていいと思ってる?
そう思っているなら、考え直した方がいい。
そもそも、
と、いろんなルールがある。
さらに、お互いの通行を遠隔にするために、
他の人と同じ場所を歩く
というのが重要だ。
歩道の上は、右側を歩こうが左側を歩こうが、どちらでもいいわけだが、
かといって、そういうわけではないということ。
他の歩行者が、おおよそ左側(もしくは右側)を歩いていれば、自分も左側(右側)を歩くのだ。
そうすれば、向こうからくる歩行者はまっすぐ歩ける。
それを自分勝手に右側(左側)を歩いていれば、まっすぐ歩けない。
そうなったら、お前はスラロームだ。
何のトレーニングを他人にさせている?
1人が違う歩き方をすれば、こうなる。
バカはここができない。
自分だけのことしか考えない。
1人1人がきれいな流れを作ることが大事なのだ。
それができないと、結局駅の通路みたいに、「右側通行」とか書かれるわけ。
ちゃんとやれれば、子供にも外国人にもおのずと伝わる。
それが大人の日本人の役目だ。
そう、背中を見せるのだ。
今日も流れにそわないように歩いて、自分は邪魔になっていないと言い張る中年男性がいた。
そういう奴は、人の話は聞かない。
自分の主張だけして、人の話は「あなたは他人だから話はしない」と場所を離れていった。
自分が他人からどう見えるか、自分の行動が他人にどのような影響を与えるか、その先を見てない。
だからこういう発言になる。
ゴメン、相容れない。
でも、そういうヤツにも一応文句を言う私。
でも伝わらないな。
どうすればいいんだろうな、端的に短い時間で・・・
「アホ」
以上。
この間のAWS Summit Japanで動画見て、早速やってみた!
VisualStudio Codeに拡張機能「Amazon Q」を入れるのね、ハイハイ。
んで、AWS Builder IDが要るのね、ハイハイ持ってますよ。
ん、このWorkだけに使いたいんやけど、あぁ権限ないのね。
んじゃ、全体で。
適当に使ってみた
英語で答えてくれるぅぅ~~~
いや、日本語で答えてほしいねんけどさぁ~~~
どこからやったらええんかな?設定?
あらへんがな、言語設定。
とりあえず、CHATに入れてみた。
「日本語で答えて」
答えてくれた。日本語で!!
うれしい。あぁこんなことで喜びを感じるとは・・・
例年より1か月近く早いが、諸事情あり本日よりクーラー稼働!
最近コーディングの確認に一番つかうのがChatGPT。
なんといったって、日本語で、
えぇ~とさ~、こんなフレームワークでaをやりたいんだよね、
でもさ、a’みたいなことはやりたくないんだよね~
どうしたらいいかなぁ~
みたいな感じで質問して、ちゃんとそれなりに答えてくれるんだもの。
挙句、とりまとめとかしてくれて。
SQL文書いたら設計書書いてくれるし、プログラムだって設計書書いてくれる。
こんな時代がやってきたのか!って話。
しかし、こんなやり方ばっかりだと、自分で考えるということをしなくなるのでは?という恐れもあり、Google検索もやってそこからサイトにアクセスして確認するということも、一応やっている。
やっていはいるのだが、最近の技術系のサイトというのは、もうとにかく広告!
開いたら広告
サイト上は、自社の広告、記事の合間に広告
スクロールするたびに広告!
最後に自社の広告再び!
って、もう何せ広告が多い。
そのうえ、
・まずはじめに、しょうもないAさんBさんのやりとり!みたいなのがあり、
・つぎに目次(アジェンダ)
・そうして、長々と本文
・やたらにでかいヘッダとフッタ
という、構成。
ついさっき、
偶数奇数の判定をどうやってやるのかを知りたくてのぞいたサイトは酷かった。
だって、a % 2 == 0 の1文で済む話なんだよ?
どうして、目次が要るのさ!!
アホすぎて、話にならんわ。
どうせなら、同じような判定で、こんな感じのものだったらこうするよ!っていうのを複数並べてくれりゃいいものを
宣伝して利益を得るためのことしか頭にないのか、記事は細分化されていくのだ。
AIのほうが賢くないか?
よけいな広告もださなければ、大したものでなければ、無料で対応してくれる。
そうやって、データというAIにとっての食糧をたくさん得ているわけだ。
そりゃ、人間淘汰されていくよね・・・
某QAサイトを眺めてまして、
まぁ上記のようなことをやりたいと質問している人がいて、
そもそも、DBなんだから、そんなことやる必要ないだろ?、とか逆だろ?とか
書いてあるのね。
いやいや、やりたいんだからしょうがないでしょ!!
って思うんですよ、私は。
と、質問者でもないのに、勝手に外野がイキリ立ってもしょうがないだけどさ。
で、なんとか簡単にできないものかって思って調べてたら、FIND_IN_SETというものが使えそうなんだね。
FIND_IN_SET
例えば、
SELECT FIND_IN_SET(‘a’, ‘a,c,d’)
とすると、1と返ってくる。
SELECT FIND_IN_SET(‘d’, ‘a,c,d’)
とすると、3と返ってくる。
んで、
SELECT FIND_IN_SET(‘e’, ‘a,c,d’)
とすると0って返ってくる。
つまりは、第1引数で設定したものが第2引数のどこにあるか、教えてくれるわけ。
で、このままだとアレなんで、これにマスタを紐づけてやるの。
cd |name
—————
egg |たまご
bacon |ベーコン
apple |りんご
cubet |キャベツ
という、sozai テーブルがあったとして、
これを使って、文字列 ’bacon,apple’ を縦にするのよ!
SELECT cd, name FROM sozai WHERE FIND_IN_SET(cd, 'bacon,apple') > 0
とすると、
cd |name
—————
bacon |ベーコン
apple |りんご
と、表示される!!
え、sozaiテーブルみたいなマスタテーブルないとダメじゃんって?
まぁ、そこはご愛敬ということで・・・
今日から1週間の日付をレコードにする(縦に並べる)ときは、
ha_sequenceを使えばいいということで、
まず、ライブラリをインストールしよう
INSTALL SONAME “ha_sequence”;
としたら、
そもそもlibフォルダに、そのライブラリがないよ?ってなった。
なけりゃMariaDBの公式ページから取って来いやぁ!みたいなことがかいてあるページを見て、
ほいほいと公式のをDLしなおしたけど、中見たらやっぱりなかった。
でも、なんか元々入っているぽかった。
なんじゃいな!
SELECT (CURRENT_DATE + INTERVAL (seq) DAY) AS target_date FROM seq_0_to_6;
とかでちゃんと出てきた。
seqが0,1,2…6になるということで、これは色々使えそうな予感。
サイト移行したので、データとかファイルとかはちゃんと移行できていたのだけれど、DB値のサイトアドレスまでは変換されていないので、ここの対応が必要になって、REPLACEでUPDATEさせた。
(まだ、すべてがリプレースできていないと思うが)
で、思い出したのが、最初ブログをやっていたのが@Pageであるということ。
その後XFREEに行って、今に至っているので、@PageとXFREEのURLが残っていた。
あぁー、そんな時期からやってたんだなぁ・・・などと思い返しながら、
写真を見返していた。
年取ったわ・・・
XFREEのサービス停止にあわせて、
シンフリーサーバを利用し始めました。
XFREEのサービスは、WordPress初心者にはとても便利なものでしたが、
こちらのサーバへのWordPressデータの移行は思ったより簡単で、とりあえずホッとしております。
ということで、
XFREEありがとう!
シンフリーサーバこれからよろしく!
なのです。
【Version】
Laravel 11.9
Vue 3.4
vue-i18n 9.14
php 8.3
大変だったわ~
ChatGPTもいろんなページも見たけど、自分が作っているバージョンに当てはまるものがなくて。
Karnel.phpに設定して!って言われても、Karnel.phpないし。
vue-i18nのインストールについては他のサイトを参照。
結局公式サイトをちゃんとチェックしないとダメということですな。
参照URL:Vue I18n #Composition API
だいぶん端折って、関係のあるところだけメモしておく。
resources/js/app.js
import { createI18n } from "vue-i18n";
const i18n = createI18n({
locale: __locale,
legacy: false,
messages,
});
createInertiaApp({
title: (title) => `${title} - ${appName}`,
resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')),
setup({ el, App, props, plugin }) {
return createApp({ render: () => h(App, props) })
.use(i18n)
....
resources/js/Pages/***.vue
<script setup>
import { computed, watchEffect } from 'vue';
import { useI18n } from 'vue-i18n';
// 多言語変換の関数名をtとして設定
const { locale: i18nLocale, t } = useI18n();
watchEffect(() => {
i18nLocale.value = *****; // ←ここに今利用すべき言語('ja','en',....を設定)
});
// メソッド内で使うとき
const msg = computed(() => t('load')); // computedで変換してから利用
console.log(msg);
</script>
<!-- タグ内で使うとき -->
<template>
<span>{{ t('load') }}</span>
</template>
今のバージョンだと、$tでなくて、tになってる。
alertとかで使うときは、computedで変換してから利用しないとエラーになる。
他のページにある、this.$t(‘***’)とかでエラーになったので困っていたけど、
これで何とか多言語対応もいけそうな気がする。
6/14
今年は体調が悪かったので早い目に付けた
こんなんで解除できるパスワードって、なんのためについているのやら・・・
と思ったりするが、まぁパスワード忘れたときは非常にありがたいのだ。
参考URL
ホームページ制作のサカエン「Excel VBA マクロ パスワードを解除する方法 32ビット 64ビット」
ここからは64bit版だけ転載
(LongPtrをLongに、PtrSafeを削除すれば32bit版になる)
——————————-
Option Explicit
Private Const PAGE_EXECUTE_READWRITE = &H40
Private Declare PtrSafe Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As LongPtr, Source As LongPtr, ByVal Length As LongPtr)
Private Declare PtrSafe Function VirtualProtect Lib "kernel32" (lpAddress As LongPtr, ByVal dwSize As LongPtr, ByVal flNewProtect As LongPtr, lpflOldProtect As LongPtr) As LongPtr
Private Declare PtrSafe Function GetModuleHandleA Lib "kernel32" (ByVal lpModuleName As String) As LongPtr
Private Declare PtrSafe Function GetProcAddress Lib "kernel32" (ByVal hModule As LongPtr, ByVal lpProcName As String) As LongPtr
Private Declare PtrSafe Function DialogBoxParam Lib "user32" Alias "DialogBoxParamA" (ByVal hInstance As LongPtr, ByVal pTemplateName As LongPtr, ByVal hWndParent As LongPtr, ByVal lpDialogFunc As LongPtr, ByVal dwInitParam As LongPtr) As Integer
Dim HookBytes(0 To 5) As Byte
Dim OriginBytes(0 To 5) As Byte
Dim pFunc As LongPtr
Dim Flag As Boolean
Private Function GetPtr(ByVal Value As LongPtr) As LongPtr
GetPtr = Value
End Function
Private Sub RecoverBytes()
If Flag Then MoveMemory ByVal pFunc, ByVal VarPtr(OriginBytes(0)), 6
End Sub
Public Function Hook() As Boolean
Dim TmpBytes(0 To 5) As Byte
Dim p As LongPtr
Dim OriginProtect As LongPtr
Hook = False
pFunc = GetProcAddress(GetModuleHandleA("user32.dll"), "DialogBoxParamA")
If VirtualProtect(ByVal pFunc, 6, PAGE_EXECUTE_READWRITE, OriginProtect) <> 0 Then
MoveMemory ByVal VarPtr(TmpBytes(0)), ByVal pFunc, 6
If TmpBytes(0) <> &H68 Then
MoveMemory ByVal VarPtr(OriginBytes(0)), ByVal pFunc, 6
p = GetPtr(AddressOf MyDialogBoxParam)
HookBytes(0) = &H68
MoveMemory ByVal VarPtr(HookBytes(1)), ByVal VarPtr(p), 4
HookBytes(5) = &HC3
MoveMemory ByVal pFunc, ByVal VarPtr(HookBytes(0)), 6
Flag = True
Hook = True
End If
End If
End Function
Private Function MyDialogBoxParam(ByVal hInstance As LongPtr, ByVal pTemplateName As LongPtr, ByVal hWndParent As LongPtr, ByVal lpDialogFunc As LongPtr, ByVal dwInitParam As LongPtr) As Integer
If pTemplateName = 4070 Then
MyDialogBoxParam = 1
Else
RecoverBytes
MyDialogBoxParam = DialogBoxParam(hInstance, pTemplateName, hWndParent, lpDialogFunc, dwInitParam)
Hook
End If
End Function
Public Sub VBAProjectパスワード解除()
If Hook Then
MsgBox "VBAProjectのパスワード解除成功!", vbInformation, "Congratulations"
End If
End Sub
リンクテーブルをローカルテーブルに変換したい!VBAで!!
と、色々調べてみたのだが、
同じようなことをしたいという質問に、
「エクスポートしたら?」とか、「手作業でできるよね?」
とか、そういう話ばっかりで、
「いやいや、質問者の意図わかってんの?」
って回答しかなくってウンザリ。
で、苦手な英語、といってもカタコト英語だが、
convert linktable to localtable
みたいな感じで調べてみたら、外国人はちゃんとVBAでの解決策を答えてくれていた。
で、回答。
DoCmd.SelectObject acTable, "TABLE1", True DoCmd.RunCommand acCmdConvertLinkedTableToLocal
“TABLE1” のところを変換したいリンクテーブル名にしてやる。
これ調べるのに半日かかったわ。
でも、もう最悪、テーブルを別ファイルにエクスポートしてからインポートしようかとさえ思っていたので、本当に助かった。
やっぱり、いろんな言語ができたほうがいいのね。
(日本語しかできません。ってか、日本語もできません。)
参考URL:
https://stackoverflow.com/questions/59038993/access-vba-convert-linked-table-to-local
いつも忘れるのでメモ。
Oracleのアカウントがあれば、以下のサイトから
いろんなバージョンのOracleやOracleClientを取得できる。
(開発だけしかしないなら使えるらしい)
Oracle Software Delivery Cloud
https://edelivery.oracle.com/osdc/faces/SoftwareDelivery
「sample」シートにパスワード「****」でロックをかける
ただし、グループ開閉はさせたいとき、EnableOutliningをTrueにしておく
With Thisworkbook.Worksheets("sample")
.EnableOutlining = True
.Protect Password:="****", UserInterfaceOnly:=True
End With
とうとう付けてしまった。
電気代も上がってるし、もうちょっと粘ろうかとも思ったけれど、つけちまえ!
ムシムシして仕事に気が入らん!
ってつけたら、今日は涼しかった。
VMで仮想サーバ(Windows Server2019)を構築しているのだが、そのせいでHyper-Vのインストールがうまくいかない。
で、色々調べて試してムリそうだったんだが、YouTubeで外国人の人が何かやっているのを見て試してみることにした。
guestOS = "winhyperv"
末尾に下記1行追加
CPUID.V0 = "FALSE"
そもそもなんでWindowsServerにDockerを入れようとしているのか、自分でもよく分からなくなって、もう
勉強のため!
みたいなモードに入っている。
PowerShellで docker version と打ったとき、ClientとServerの情報が見られるのだが、
C:\Program Files\Docker\config\daemon.json
に、
{
"experimental": true
}
を入れてみてもServer側のExperimental: がfalseになってしまうので、どうしたものかと思って
C:\ProgramData\docker\configのフォルダに同じdaemon.jsonを入れてサーバ再起動してみたら、
Server: Mirantis Container Runtime Engine: Version: 20.10.9 API version: 1.41 (minimum version 1.24) Go version: go1.16.12m2 Git commit: 9b96ce992b Built: 12/21/2021 21:33:06 OS/Arch: windows/amd64 Experimental: true
とうまくいきやした!
Access起動時にパラメータを引き渡し、
渡されたパラメータによって処理をかえる方法。
起動スイッチというのがあるらしい。
参照:Microsoft Office 製品のコマンド ライン スイッチ
ということで
"C:¥.........¥MSACCESS.EXE" "......accdb" /cmd "para1" "para2" "para3" ...
順に
Accessのexe 起動するAccessファイル /cmd パラメータ(必要分)
をそれぞれダブルクォーテーションで括って設定するのが重要らしい。
そして、Access側のVBAはこの引数を引き取って処理を行う。
Command関数
参照:Microsoft Support Command関数
このようにパラメータで渡された文字列は、AutoExecマクロ内で処理をすることにする。
ex) RunProc() ← 必ず()をつける
標準モジュールを追加して、2.のマクロで実行させるFunctionプロシージャを追加する
ex) Function RunProc() …. End Function
Functionでないとダメで、SubだとCommandを認識しなかった。
Function RunProc()
' Trimを忘れずに.これはパラメータが複数の時なので1つしかない時は、Trim(Command())でOK
Dim cmd() As String
cmd = Split(Trim(Command()), " ")
' 1つめの引数で処理を分岐
Select Case cmd(0)
Case "para1"
' ここに処理
Case "paraX"
' ここに処理
Case Else
' ここに処理
End Select
End Function
<注意点>
Command関数の結果は必ずTrimすること。起動コマンドで””で括っているが後ろにスペースが入って渡ってくる。
起動コマンドで最初にexeを指定したくない、ランタイム起動でも問題ない、という場合は、
"......accdb" /runtime /cmd "para1" "para2" "para3" ...
と、/runtimeを挟むと、exeの指定をせずにCommandが引き渡され、処理が走る。
んで、次。
もう1つ別のやり方があるのだが、それは /x スイッチ。
"......accdb" /runtime /x "macro1" /cmd "para1" "para2" "para3" ...
という感じにすると、
/x の後ろに入れたマクロ「macro1」を実行させられるようになる。
で、さっきと同じくプロシージャの実行をマクロに追加して、実行させるFunctionプロシージャを指定する。
VBA側は下記のようにしてパラメータを読み込んでおけばいい。
Function RunMacro1()
Dim cmd() As String
cmd = Split(Trim(Command()), " ")
' ここに処理
End Function
このやり方だと、わざわざ分岐処理を書く必要がないので、見た目が良いかなと思ったりする。
さて、最後。
起動コマンドからランタイム実行(/runtime 付)させたときに、AutoExecは走らせたくないなぁって思ったら、
AutoExecで動くFunction(またはSub)内の先頭に、こういう1文を先頭に入れておくといい。
If SysCmd(acSysCmdRuntime) Then Exit Function
普通に起動させたときは後続処理が走るが、ランタイム起動させたときはプロシージャを抜けるようにしておくこともできるわけだ。
奥が深いぜ、Accessさんよぉ
※ランタイム:Accessから開発機能(フォーム、クエリ、レポート、VBAの作成編集機能)を除いたもの