よろずやネット

最近はLibreofficeにハマっています。

Freenomの無料ドメイン dot tk (.tk) の復旧

2024年2月第1週~第2週に無料.tkドメインが一斉に未解決(Pending)になりました。
ドメインをウェブサイトのみで運用(Aレコードのみで運用)しているのであれば、Freenom以外の新規ドメインを取得する事で問題は解決するのでしょうが、メール等で運用しているのであれば、MX、TXT(SPF, DKIM, DMARC)、PTR等の変更があり、とても面倒です。

そこでFreenomのサポートにメールを送って「なんとかしてほしい」とお願いしたところ、なんとかしてくれましたのでとても嬉しく思いました。
Freenomのサポートチーム、ありがとう。



▶依頼メール(英語) ------ 2024/02/11
宛先: info@freenom.com
メールタイトル: Pending domains, aaaaa.tk, bbbbb.tk, ccccc.tk, ..
メール本文:
Dear customer service team,

The status of my domains below under controlled by Freenom are now "Pending".
aaaaa.tk
bbbbb.tk
ccccc.tk
...
(↑Pendingドメインを羅列、a, b, cは伏字)

  • The old one has been in use for 10 years since 2014.

These domains are used for websites and emails, and I am in great trouble.
Could you please resolve them somehow?

Thanks a lot in advance.

With appreciation,



▶回答メール(英語) ------ 2024/02/13
メールタイトル: Apologies for the inconvenience. Your domains are working again.
メール本文:
Dear registrant,

We have changed the PENDING status of your domains to AUTHORIZED.

To ensure that this doesn't happen again we have registered the
domains as 'Paid Domains' in our systems. Rest assured, you don't
need to pay anything, they are 'paid for' for the next 9 years.

和訳:
このようなことが二度と起こらないように、ドメインを「有料ドメイン」としてシステムに登録しました。
ご安心ください。何も支払う必要はありません。今後9年間は「有料支払済みドメイン」として扱います。

Thank you for using Freenom.
Kind regards,

Freenom Support

          • -

Hydraxビデオサーバーから動画ファイル(mp4)をダウンロードする

広告が非常に煩わしい動画サイト
https://mrworldpremiere.pro/
の動画は通常の方法ではダウンロードできませんが、
動画ソースがhydraxの場合には、以下の方法でダウンロードできます。


1.見たい動画のトップページを開き、エピソード番号を選択してページを開く



2.上記のページのHTMLソースコードを開く



3.Hydrax動画ソースを探しbitbyte.cloudの動画ダウンロードURLを作成する
<button onclick="change_video(this)" のタグ内のhydraxのリンクを探す
hydrax動画リンクの[ビデオID]を引用してbitbyte.cloudのURLを作成する

例:
https://hydrax.net/watch?v=123456789

https://bitbyte.cloud/import/abyss/123456789

HydraxのURLの書式:
https://hydrax.net/watch?v=[ビデオID]
https://playhydrax.com/?v=[ビデオID]

bitbyte.cloudのURLの書式:
https://bitbyte.cloud/import/abyss/[VIDEO_ID]



4.上記で作成したURLをブラウザで開く
手持ちのgoogleアカウントでログインするとラク


5.右下の「Skip and Continue」ボタンを押す


6.ダウンロードを開始する


引用:
https://gist.github.com/hiroshil/f15f6e1b1ef3141f06cfa1db09423ac2

freenom.comの新規ドメイン登録が無効になっている理由

tkドメインで有名な無料ドメインレジストラfreenom.com(本部はオランダ)の新規ドメインの登録は、2022年後半より無効になっています。

 

フェイスブック等を運営しているMeta社(会長・創業者:ザッカーバーグ)が、freenomの登録ドメインが詐欺サイトに利用されている率が高くインターネット犯罪の温床になっていると提訴した事が背景にあるようです。

 

訴状(英語):

https://krebsonsecurity.com/wp-content/uploads/2023/03/Freenom-First-Amended-Complaint-3March2023.pdf

https://i.imgur.com/bVsSrDH.png

 

参考:

freenomのドメイン

国別コードトップレベルドメイン(ccTLD)のtk, cf, ga, gq, ml の5つ

 

2020~2021の調査:
────────────────────────────
ドメイン        登録数    詐欺サイト    比率%
                                     累積数
────────────────────────────
com        151,618,533      260,636       0.17
tk              19,987,952        40,002       0.20
────────────────────────────

https://i.imgur.com/j9UsN2w.png

 

統計的には、他のドメインと比較してtkドメインが悪用されている比率は特に高くありません。

 

無料ドメイン愛好者からは、

- インターネット事業の独立性を侵害する提訴だ。

- なぜMetaが犯罪者自身を告訴するのではなく、ドメイン登録業者を告訴するのか理解できません。freenomは単なるレジストラです。

等々freenomを擁護する声が多数あがっています。

 

 

VLCを利用してMP4(動画)にSRT(字幕)を焼き込む(追加する)WindowsのBAT(バッチ)ファイル

このバッチファイルはすばらしい!
(動画サイトの投稿に便利そうです)

     

o6asanさん
https://o6asan.com/blog-j/author/o6asan/


Windows 上で VLC を使って MP4 に SRT を焼き込むための bat ファイル。↓


o6asan.com

LibreOffice、自身のファイル情報を取得する。

LibreOffice、自身のファイル情報を取得するマクロです。
Sub SelfFileDirName

下記を取得します。
1.自身のファイル名
2.自身のファイルパス
3.自身のディレクトリ


Sub SelfFileDirName

	Dim oUrl As String
	Dim FileName As String
	Dim FilePath As String
	Dim FileDir As String

	oUrl = ThisComponent.getURL
	
'	自身のファイル名
	FileName = Dir(oUrl,0)
	MsgBox(FileName)

'	自身のファイルパス
	FilePath = ConvertFromUrl(oUrl)
	MsgBox(FilePath)

'	自身のディレクトリ
	FileDir = Replace(FilePath, FileName, "")
	MsgBox(FileDir)

End Sub 'SelfFileDirName

LibreOffice Calc、用紙の余白を設定する

印刷ジョブの基本、用紙の余白を設定するマクロです。
Sub SetPageMargin

Option Explicit

Sub SetPageMargin

	Dim oSheetStyle As Object
	oSheetStyle = ThisComponent.StyleFamilies.getByName("PageStyles").getByName("Default")
	
	With oSheetStyle
		' 100 = 1mm
		.BottomMargin = 1000 
		.LeftMargin   = 1000
		.RightMargin  = 1000
		.TopMargin    = 1000
	End With
	
	oSheetStyle = Nothing
	
End Sub 'SetPageMargin

LibreOffice Calc、用紙の向き(縦長、横長)を設定する

印刷ジョブの基本、用紙の向きを設定するマクロです。
Sub SetPageOrientation

Sub SetPageOrientation
'	列挙型(enumeration type)を使用 'Enum PaperOrientation
'	https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1view.html
	Dim oOptions(0) As New com.sun.star.beans.PropertyValue
	Dim oSheetStyle As Object
	oSheetStyle = ThisComponent.StyleFamilies.getByName("PageStyles").getByName("Default") 

	oOptions(0).Name = "PaperOrientation"
	oOptions(0).Value = com.sun.star.view.PaperOrientation.PORTRAIT '  LANDSCAPE
	
	ThisComponent.Printer = oOptions()
	
	oSheetStyle = Nothing
	Erase oOptions()
	
End Sub

LibreOffice Calc、用紙サイズを設定する

印刷ジョブの基本、用紙サイズを設定するマクロです。
サンプルは下記の2種類。

1. Sub SetPageSize (用紙の実寸値を使用する方法)
2. Sub SetPageSize2 (列挙型(Enum)を使用する方法)

Sub SetPageSize
'	実寸を使用
	Dim oSheetStyle As Object
	oSheetStyle = ThisComponent.StyleFamilies.getByName("PageStyles").getByName("Default")
'	100 = 1mm, 1mm=100, A4: 210mm x 297mm
	oSheetStyle.Width = 21000 
	oSheetStyle.Height = 29700
End Sub

Sub SetPageSize2
'	列挙型(Enumeration Type)を使用
'	https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1view.html
	Dim oOptions(0) As New com.sun.star.beans.PropertyValue

	oOptions(0).Name = "PaperFormat"
	oOptions(0).Value = com.sun.star.view.PaperFormat.A4
	ThisComponent.Printer = oOptions()
End Sub

LibreOffice Calc、各セルへの値の書き込みの高速化(配列を使用)

配列を使うと各セルへの値の書き込みが劇的に高速化します。
配列を使用した下記コードでは、所要時間1秒以下で10万個のセルへの書き込みが完了します。
LibreOffice Calcのマクロの欠点である「遅さ」を解決します。

【フロー】
1.データを配列に格納します。
2.データが入った配列をsetDataArrayメソッドで特定セルレンジに適用します。

Option Explicit
REM  *****  BASIC  *****
Global oDoc As Object
Global oController As Object
Global oSheets As Object
Global ArraySheets() As Variant
Global ArrayData(0,0) As Variant
' ########################################

Sub SetGlobalVar
	oDoc = ThisComponent 
	oController = oDoc.getCurrentController() 
	oSheets = oDoc.getSheets()
End Sub

Sub SetDataWithArray

	If (isnull(oDoc)) Then
		Call SetGlobalVar
	End If

	Erase ArrayData()

	Dim StartTime As Double
	Dim SecondsElapsed As Double
	StartTime = Timer
	
	Dim iRowCount As Long
	Dim iColCount As Long
	iRowCount = 1000	'行数
	iColCount = 100	'列数
	
	Redim ArrayData(iRowCount -1, iColCount -1)

'Call ScreenSetFreeze ' 前回の投稿記事を参照下さい。

	Dim i As Long
	Dim j As Long
	
	For i=0 to iRowCount-1
		For j=0 to iColCount-1
			ArrayData(i,j) = "test" & Cstr((i+1)*(j+1))
		Next
	Next

	Dim ActiveSheetName As String
	Dim oSheetName As String
	Dim oSheet As Object
	ActiveSheetName = oDoc.getCurrentController().getActiveSheet().Name
	oSheetName = ActiveSheetName
	oSheet = oSheets.getByName(oSheetName)
	
	Dim iRowTarge As Long
	Dim iColTarge As Long
	
	iRowTarge = 0
	iColTarge = 0
	
	Dim oCellRange As Object
	oCellRange = oSheet.getCellRangeByPosition(iColTarge, iRowTarge, iColTarge+iColCount-1, iRowTarge+ iRowCount-1)
	oCellRange.setDataArray(ArrayData)	

'Call ScreenUnsetFreeze ' 前回の投稿記事を参照下さい。

	SecondsElapsed = Timer - StartTime ' 経過時間(秒)を計測
	Msgbox("処理時間: " & SecondsElapsed & "秒")
	' ScreenSetFreezeなし, 1000 x 100  = 1秒
	' ScreenSetFreezeあり, 1000 x 100  = 1秒
	
End Sub 'SetDataWithArray

LibreOffice Calcのマクロ実行中に画面更新を完全に無効にする

LibreOffice Calcでエクセルの
Application.ScreenUpdating = False
のようなコードを実行してもシート移動操作を伴った場合にマクロ実行シート以外のシートが表示されてしまう事があります。

LibreOffice Calcでで画面更新を完全に無効にするには、マクロ動作時に不要なシートを非表示にするしかありません。

下記の2つのSub Procedureを考えました。
Sub ScreenSetFreeze ' 不要シート非表示、画面ロック設定
Sub ScreenUnsetFreeze ' 隠しシート表示、画面ロック解除

Option Explicit
REM  *****  BASIC  *****
Global oDoc As Object
Global oController As Object
Global oSheets As Object
Global ArraySheets() As Variant
' ########################################


Sub SetGlobalVar
	oDoc = ThisComponent 
	oController = oDoc.getCurrentController() 
	oSheets = oDoc.getSheets()
End Sub


Sub ScreenSetFreeze ' 不要シート非表示、画面ロック設定

	If (isnull(oDoc)) Then
		Call SetGlobalVar
	End If

	Dim SheetsCount As Integer
	Dim ActiveSheetName As String

	SheetsCount = oSheets.Count
	ActiveSheetName = oDoc.getCurrentController().getActiveSheet().Name
	
	Dim i As Long

	Erase ArraySheets()
	Redim ArraySheets()
	
'	ArraySheets <= マクロ実行前に各シートが表示・非表示を記録
	For i=0 to SheetsCount-1
		ReDim Preserve ArraySheets ( UBound( ArraySheets ) + 1 )
		ArraySheets(UBound( ArraySheets )) = CBool(oSheets.getByIndex(i).isVisible)
	Next
	
	For i=0 to SheetsCount-1
		If Not (oSheets.getByIndex(i).Name=ActiveSheetName) Then
			oSheets.getByIndex(i).isVisible = False
		End If
	Next

	ThisComponent.LockControllers()
	ThisComponent.addActionLock()

End Sub 'ScreenSetFreeze


Sub ScreenUnsetFreeze ' 隠されたシートを再表示、画面ロック解除

	If (isnull(oDoc)) Then
		Call SetGlobalVar
	End If
	
	Dim SheetsCount As Integer
	Dim ActiveSheetName As String

	SheetsCount = oSheets.Count
	ActiveSheetName = oDoc.getCurrentController().getActiveSheet().Name

	Dim i As Long
	
	For i=0 to SheetsCount-1
		If NOT (oSheets.getByIndex(i).Name=ActiveSheetName) Then
			If NOT (UBound( ArraySheets ) = -1) Then
				If CBool(ArraySheets(i)) Then
					oSheets.getByIndex(i).isVisible = True
				End If
			End If
		End If
	Next

	ThisComponent.UnlockControllers()
	ThisComponent.removeActionLock()
	
End Sub 'ScreenUnsetFreeze


Sub Main

	If (isnull(oDoc)) Then
		Call SetGlobalVar
	End If
	
	Dim ActiveSheetName As String
	ActiveSheetName = oDoc.getCurrentController().getActiveSheet().Name

	Dim SheetsCount As Integer
	SheetsCount = oSheets.Count

	Dim oSheetName As String
	Dim oSheet As Object
	oSheetName = ActiveSheetName


	If SheetsCount>1 Then
		oSheet = oSheets.getByIndex(1)
	Else
		oSheet = oSheets.getByName(oSheetName)
	End If

	Dim StartTime As Double
	Dim SecondsElapsed As Double
	StartTime = Timer


	Call ScreenSetFreeze ' ## 不要シート非表示、画面ロック設定 Application.ScreenUpdating = False

	Dim i As Long
	For i = 0 to 10000
		oSheet.getCellByPosition(0,i).Value = i
	Next

	Call ScreenUnsetFreeze ' ## 隠されたシートを再表示、画面ロック解除 Application.ScreenUpdating = True
 

	SecondsElapsed = Timer - StartTime ' 経過時間(秒)を計測
	Msgbox("処理時間: " & SecondsElapsed & "秒")

End Sub 'Main