Main Menu

Recent posts

#71
Today I had Google Gemini update some SPR-Scripts for me.
because its still the best code-helper for large codes.

And i wondered why normal code-lines would not execute any more.
Even in the editor the commands were not marked as commands.

I took out my good old HEX-EDITOR and i found $A0 characters placed here and there.
At places, where normaly a SPACE would be.

I have now updated the SPRE to automatically remove those nasty Gemini Fingerprints.


👋 Let's talk about a wild little secret Google's Gemini AI (using its powerful 2.5 Pro model) is hiding in plain sight.

Ever wondered how to spot AI-generated text?
Gemini might be quietly marking its work with something sneaky: CHR$(160)!

🤔 What's CHR$(160)?
In simple terms, CHR$(160) is an invisible character that looks exactly like a regular space (CHR$(32)) to human eyes 👀—but it's technically a non-breaking space (used in coding to prevent awkward line breaks).

Here's the twist:
🔸 Human text → Uses normal spaces (CHR$(32)).
🔸 Gemini 2.5 Pro's text → Might sprinkle in CHR$(160) instead!

It's like Gemini is whispering: "Psst... I made this!" 🤫

❓ Why Would Google Do This?
Speculation alert! 🚨 This could be Google's way to:
1️⃣ Track AI content across the web (for research/ethics).
2️⃣ Help platforms like ours detect AI spam (think bots flooding forums!).
3️⃣ Subtly watermark outputs without ruining readability.

For us forum admins? This is HUGE. If we scan posts for CHR$(160), we could flag potential AI-generated text automatically! 🛠�

🔍 How to Spot It (Techy Peek):
Want to check if text came from Gemini?

Notepad++: Enable "Show all characters" → look for  or invisible dots.

SMF Mod Idea: Add a plugin that scans posts for CHR$(160) and tags them! 🏷�

🧠 Our Takeaway:
Google isn't announcing this (yet), but it's a genius move for AI transparency. For SMF forums, this could mean:
✅ Better spam control!
✅ Clearer labeling of AI posts!
✅ Less "Is this human?! 🤨" drama!

If you wonder why thing behave strange in AI generated code - look out maybe you got some &HA0 characters in your basket.
#72
General Discussion / Discord anyone ?
Last post by Zlatko Vid - August 03, 2025, 06:06:49 PM
..how may of us use Discord ?
if ,,,which one ? ..if is not secret  ;D
I must say that i am not fan of that chat...ing typing....
but i lurk from time to time over some channels
hard to track what is what and where .... ::)
#73
Windows API Headers / Re: Where i can found Gary Bee...
Last post by Theo Gottwald - July 31, 2025, 09:44:42 PM
𝐼 𝑡𝘩𝑖𝑛𝑘 𝐼'𝑚 𝑛𝑜𝑡 𝑢𝑝 𝑡𝑜 𝑑𝑎𝑡𝑒 𝑏𝑒𝑐𝑎𝑢𝑠𝑒 𝐼 𝑟𝑎𝑟𝑒𝑙𝑦 𝑣𝑖𝑠𝑖𝑡 𝑡𝘩𝑒 𝑃𝑜𝑤𝑒𝑟𝐵𝐴𝑆𝐼𝐶 𝑓𝑜𝑟𝑢𝑚. 𝐻𝑎𝑠 𝑠𝑜𝑚𝑒𝑡𝘩𝑖𝑛𝑔 𝘩𝑎𝑝𝑝𝑒𝑛𝑒𝑑 𝑤𝑖𝑡𝘩 𝐺𝑎𝑟𝑦 𝐵𝑒𝑎𝑛? 𝐼𝑠 𝘩𝑒 𝑛𝑜 𝑙𝑜𝑛𝑔𝑒𝑟 𝑎𝑣𝑎𝑖𝑙𝑎𝑏𝑙𝑒? 𝑊𝘩𝑦 𝑖𝑠 𝑡𝘩𝑖𝑠 𝑎𝑛 𝑖𝑠𝑠𝑢𝑒?

#𝑃𝑜𝑤𝑒𝑟𝐵𝐴𝑆𝐼𝐶 #𝐺𝑎𝑟𝑦𝐵𝑒𝑎𝑛 #𝐹𝑜𝑟𝑢𝑚𝑈𝑝𝑑𝑎𝑡𝑒 #𝑃𝑟𝑜𝑔𝑟𝑎𝑚𝑚𝑖𝑛𝑔𝐶𝑜𝑚𝑚𝑢𝑛𝑖𝑡𝑦 #𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑒𝑟𝑁𝑒𝑤𝑠
#74
Windows API Headers / Re: Where i can found Gary Bee...
Last post by Zlatko Vid - July 16, 2025, 09:51:19 AM
OK so everything is there ...
I don't know if GB have source code
as it is code editor with splitter  windows is great
example and can be translated to OxygenBasic program.
#75
General Discussion / Re: José / Unicode UTF16 Surro...
Last post by Theo Gottwald - July 15, 2025, 09:00:59 AM
UTF-16, UTF-32, broken surrogates?
Sounds like a Wasps nest to me?
Did you include all that stuff in your compiler Charles?

Unicode, Surrogate Pairs & UTF‑32 in Go and Free Pascal



0 → 0x10 FFFF in practice
TermWhat it really isWhy it matters to the compiler
Unicode scalar valueAny code point except 0xD800–0xDFFFCompilers can say "one scalar value = one character", ignoring UTF‑16 artefacts
Surrogate pairTwo UTF‑16 code units that encode one scalar value ≥ 0x10000Only relevant if the data is stored in UTF‑16
UTF‑32 / UCS‑4 charOne 32‑bit integer that equals the scalar valueNo surrogate logic needed; every code point fits



Go (current toolchain 1.23‑dev)
AspectHow Go handles it
Source encodingCompiler expects the file to be valid UTF‑8
String / rune literals[tt]\uXXXX[/tt] escapes may NOT name a surrogate; use [tt]\U0001F600[/tt] instead of a pair
Data representation[tt]string[/tt] = immutable UTF‑8; [tt]rune[/tt] = 32‑bit scalar (built‑in UTF‑32 cell)
Library helpers[tt]encoding/utf16[/tt] offers [tt]Encode[/tt]/[tt]Decode[/tt]/[tt]IsSurrogate[/tt]
JSON & friendsParsers merge [tt]\uXXXX\uXXXX[/tt] into a single rune; invalid pairs become U+FFFD
Every‑day impactYou never see surrogates unless you purposely handle UTF‑16



Free Pascal (FPC 3.2.x / 3.3‑trunk)
ConceptFree Pascal type / facility
UTF‑16 storage[tt]WideChar[/tt] (16‑bit) & [tt]UnicodeString[/tt]/[tt]WideString[/tt]; non‑BMP stored as two cells
Surrogate helpersUnit [tt]Character[/tt] (Delphi‑compatible): [tt]IsSurrogate[/tt], [tt]ConvertToUtf32[/tt], [tt]ConvertFromUtf32[/tt]
UTF‑32 storage[tt]UCS4Char[/tt] (32‑bit) & dynamic [tt]UCS4String[/tt]
Source codeParser expects UTF‑8; you may embed a pair as [tt]#$D83D#$DE00[/tt]
Conversions[tt]SysUtils[/tt] + [tt]LazUTF8[/tt] for UTF‑8 ⇄ UTF‑16 / UTF‑32
Every‑day impactIf you stick to [tt]UTF8String[/tt] or [tt]UCS4String[/tt], you rarely care about surrogates

Code (pascal) Select
program Smile32;
uses SysUtils, Character;

var
s16 : UnicodeString;
cp : UCS4Char;
begin
s16 := #$D83D#$DE00; // 😀 in UTF‑16
cp := ConvertToUtf32(s16, 1); // -> $1F600
Writeln('U+' + IntToHex(cp, 6));
end.



Side‑by‑side summary
GoFreePascal
Default string encodingUTF‑8Platform‑dependent (UTF‑8 on nix, UTF‑16 on Windows)
"One code‑point" primitive[tt]rune[/tt][tt]UCS4Char[/tt]
Literal rejects half‑surrogate?Yes (compile‑time error)No (validated at run time if you ask)
Std‑lib helpers[tt]encoding/utf16[/tt][tt]TCharacter.[/tt]
Need to think about pairs daily?RarelyOnly when you keep data in UTF‑16



Practical guidelines

Go
  • Write non‑BMP literals with [tt]\UXXXXXXXX[/tt] or raw UTF‑8 bytes.
  • Convert to/from UTF‑16 only when calling external APIs that demand it.

Free Pascal
  • Prefer [tt]UTF8String[/tt] or [tt]UCS4String[/tt] for pure‑Pascal text.
  • Use [tt]ConvertToUtf32[/tt] / [tt]ConvertFromUtf32[/tt] when crossing a UTF‑16 boundary.
  • If you must slice a UTF‑16 string, validate pairs first with [tt]TCharacter.IsSurrogate[/tt] helpers.



Both compilers give full Unicode reach; they only differ in when surrogate‑pair logic surfaces—compile‑time rejection in Go, run‑time helpers in Free Pascal.
#76
Third-Party Add-Ons / Börje Hagsten Files and Link t...
Last post by Theo Gottwald - July 15, 2025, 08:40:51 AM
 Börje Hagsten's Files
This is a small repository of files that Börje Hagsten has created to use with PowerBASIC. I've created this simple page to provide a place to download the excellent utility POFFS as well as many of the files found at his original site. If you're interested in his status, peruse the post that I made on the PB forums.

https://www.reonis.com/POFFS/


and here is the link to GBSnippets

https://www.garybeene.com/sw/gbsnippets.htm





#77
Windows API Headers / Re: Where i can found Gary Bee...
Last post by Theo Gottwald - July 15, 2025, 08:38:02 AM
I saw that
https://www.garybeene.com/sw/gbsnippets.htm
ist still available.
Also i found this:
https://www.reonis.com/POFFS/
#78
Windows API Headers / Re: Where i can found Gary Bee...
Last post by Zlatko Vid - July 15, 2025, 08:09:42 AM
It was long time ago i checked/used Gary Beene snippets
then i finally find it in one folder
..and strange some things missing(i think)
looks like are deleted or simply are not there
i mean on source codes of his programs
hmm that is strange
maybe i have it somewhere else
so i must look where they are
#79
Windows API Headers / Re: Where i can found Gary Bee...
Last post by Theo Gottwald - July 13, 2025, 02:49:38 PM
Can you upload all stuff that is hard to find into the "THird Party" Section of the forum, then everybody can download and use it.
#80
Deutsches Board (IT-Themen) / Re: Der Neue
Last post by Theo Gottwald - July 13, 2025, 02:47:49 PM
Hallo Peter,

willkommen im Forum.
Wir haben die deutsche Ecke und es gab hier und da auch mal einen der das genutzt hat (Peter Weiss war wohl der letzte).
Alle anderen Forumsteilnehmer die mir gerade einfallen sprechen nur english oder spanisch.