Skip to content

Instantly share code, notes, and snippets.

View jimmckeeth's full-sized avatar

Jim McKeeth jimmckeeth

View GitHub Profile
@jimmckeeth
jimmckeeth / MultiPlatformCryptoRando.pas
Last active August 15, 2023 04:05
Delphi Cryptographically Secure Random Number Generator that works on all paltforms
// Tested on Windows, MacOS, Linux, and Android. From what I've read /dev/urandom works on iOS too.
unit MultiPlatformCryptoRando;
interface
uses System.Classes, System.SysUtils;
function CryptoRandoCardinal: Cardinal;
function CryptoRandoFloat: Single;
@jimmckeeth
jimmckeeth / PiDay2023.pas
Last active April 13, 2023 18:50
Pi Day 2023 with Delphi
// I created an updated blog post with new code, more accuracy, and digits:
// https://blogs.embarcadero.com/getting-big-with-pi-in-delphi/
unit PiDay2023;
interface
uses
Velthuis.BigIntegers,
Velthuis.BigDecimals;
// Use your favorite fork of https://github.com/TurboPack/RudysBigNumbers
@jimmckeeth
jimmckeeth / manualadb.bat
Last active November 22, 2022 21:30
Manual ADB Deployment from RAD Studio Tools Menu
@echo off
REM Call from Delphi/RAD Studio IDE with the following parameters
REM $PATH($EXENAME) $NAMEONLY($PROJECT)
echo =============================================================
echo Be sure you Compile Android 64 and Deploy [Shift-Ctrl-Alt-F9]
echo.
echo Also set <application android:resizeableActivity="true"> in AndroidManifest.template.xml
echo =============================================================
echo Path: %1
set apk=%2\bin\%2.apk
@jimmckeeth
jimmckeeth / SetupRedHat4Delphi23.sh
Last active April 6, 2024 18:09
Installs required packages and sets up Red Hat Linux for Delphi 12.1 Athens development
#!/bin/bash
#
# Download and execute with the following:
# curl -L https://embt.co/SetupRedHat4Delphi22sh | bash
#
echo "updating installed package"
sudo yum upgrade -y
echo "installing development tools"
sudo yum groupinstall 'Development Tools' -y
sudo yum install wget gtk3 mesa-libGL gtk3-devel -y
@jimmckeeth
jimmckeeth / SetupUbuntu4Delphi22.sh
Last active April 8, 2024 18:15
This script automates the setup of Ubuntu 22.04 LTS for Delphi 11.3 Alexandria
#!/bin/bash
#
# Download and execute with the following:
# curl -L https://embt.co/SetupUbuntu4Delphi22 | bash
#
echo "Updating the local package directory"
sudo apt update
echo "Upgrading any outdated pacakges"
sudo apt full-upgrade -y
echo "Install new packages necessary for Delphi & FMXLinux"
@jimmckeeth
jimmckeeth / SetupUbuntu4Delphi21.sh
Last active February 26, 2024 00:26
This script automates the setup of Ubuntu for Delphi 10.4.2 Sydney development. Read more: https://embt.co/3oFnZVW
#!/bin/bash
echo "Updating the local package directory"
sudo apt update
echo "Upgrade any outdated pacakges"
sudo apt full-upgrade -y
echo "Install new packages necessary for Delphi"
sudo apt install joe wget p7zip-full curl openssh-server build-essential zlib1g-dev libcurl4-gnutls-dev libncurses5 xorg libgl1-mesa-dev libosmesa-dev libgtk-3-bin -y
echo "Clean-up unused packages"
sudo apt autoremove -y
cd ~
@jimmckeeth
jimmckeeth / IgnoreEditChanges.pas
Last active August 5, 2020 20:31
Simple CustomManagedRecords routine to automatically re-enable the OnChange event handler for FireMonkey edits (see blog post)
unit IgnoreEditChanges;
// https://blogs.embarcadero.com/ignore-changes-with-custom-managed-records/
// Custom Managed Records are a new feature introduced in 10.4 Sydney
interface
uses
System.Classes;
type
@jimmckeeth
jimmckeeth / SimpleRot47.pas
Last active August 15, 2023 04:14
Implements the Rot47 text obfuscation and de-obfuscation routine for Delphi 10.4 Sydney (Similar to Rot13)
uses Math;
function ROT47(UnRot: string): string;
// More information https://en.wikipedia.org/wiki/ROT13#Variants
begin
Result := UnRot;
for var I := 1 to Length(Result) do
begin
var o := ord(Result[i]);
case o of
@jimmckeeth
jimmckeeth / keybase.md
Last active January 17, 2019 04:36
Keybase proof

Keybase proof

I hereby claim:

  • I am jimmckeeth on github.
  • I am jimmckeeth (https://keybase.io/jimmckeeth) on keybase.
  • I have a public key ASBt3FFVworfFAq38crbjISewR-SE7eWTQsS_sCkpMCMrwo

To claim this, I am signing this object:

@jimmckeeth
jimmckeeth / MerryChristmas.pas
Last active January 5, 2018 05:52
Merry Christmas from Embarcadero Technologies
// +-----------------------------------------------------------------+
// | Created with Petra Plugin For Sketch from www.applyingcode.com |
// | by Jim McKeeth, Embarcadero Technologies |
// | jim.mckeeth@embarcadero.com |
// +-----------------------------------------------------------------+
// | Merry Christmas, Happy Holidays, and have a great 2018 |
// +-----------------------------------------------------------------+
unit MerryChristmas;