Skip to content

Instantly share code, notes, and snippets.

View tristan-k's full-sized avatar

ʞ-uɐʇsıɹʇ tristan-k

  • Germany
View GitHub Profile
local jid_bare = require "util.jid".bare;
local jid_split = require "util.jid".split;
local os_time = os.time;
local t_concat = table.concat;
local smtp = require "socket.smtp";
local vcards = module:open_store("vcard");
local smtp_server = module:get_option_string("smtp_server", "localhost");
local smtp_user = module:get_option_string("smtp_username");
local smtp_pass = module:get_option_string("smtp_password");
local smtp_daemon = module:get_option_string("smtp_daemon");
@steventroughtonsmith
steventroughtonsmith / Tweak.xm
Created October 14, 2015 06:33
iOS 9 Enable Splitscreen Jailbreak Tweak (Theos)
/* How to Hook with Logos
Hooks are written with syntax similar to that of an Objective-C @implementation.
You don't need to #include <substrate.h>, it will be done automatically, as will
the generation of a class list and an automatic constructor.
%hook ClassName
// Hooking a class method
+ (id)sharedInstance {
@joepie91
joepie91 / vpn.md
Last active November 14, 2025 16:49
Don't use VPN services.

Don't use VPN services.

No, seriously, don't. You're probably reading this because you've asked what VPN service to use, and this is the answer.

Note: The content in this post does not apply to using VPN for their intended purpose; that is, as a virtual private (internal) network. It only applies to using it as a glorified proxy, which is what every third-party "VPN provider" does.

  • A Russian translation of this article can be found here, contributed by Timur Demin.
  • A Turkish translation can be found here, contributed by agyild.
  • There's also this article about VPN services, which is honestly better written (and has more cat pictures!) than my article.
@tonyseek
tonyseek / brew-cask-upgrade
Last active November 1, 2017 02:49
Upgrade all casks
#!/usr/bin/env bash
set -e
STAGING_LOCATION="$(brew cask doctor \
| grep -A1 '==> Homebrew-cask Staging Location:' | tail -n1 \
| awk '{print $1}')"
echo "==> Upgrading casks"
for cask in $(ls ${STAGING_LOCATION})
@ntmggr
ntmggr / Run_Tunnelblick_from_MacOS_cli.md
Created December 30, 2015 09:33
Run Tunnelblick from MacOS cli

TunnelBlick from MacOS cli

Create the the OSA script and save it with .scpt extension

tell application "Tunnelblick"
    connect "Your_existing_Tunneblick_vpn_name"
    get state of first configuration where name = "Your_existing_Tunneblick_vpn_name"
    repeat until result = "CONNECTED"
        delay 1
        get state of first configuration where name = "Your_existing_Tunneblick_vpn_name"
 end repeat
@mondain
mondain / public-stun-list.txt
Last active November 21, 2025 09:50
Public STUN server list
23.21.150.121:3478
iphone-stun.strato-iphone.de:3478
numb.viagenie.ca:3478
s1.taraba.net:3478
s2.taraba.net:3478
stun.12connect.com:3478
stun.12voip.com:3478
stun.1und1.de:3478
stun.2talk.co.nz:3478
stun.2talk.com:3478
@eyecatchup
eyecatchup / huawei-ascend-y300-firmware.md
Last active December 10, 2017 14:50
Huawei Ascend Y300 - Official Firmware Image B209

B209 firmware update for Huawei Ascend Y300

B209 was a regional firmware update for Germany & other European countries, officially released by Huawei in July 2014.

It fixed the dangerous Heartbleed bug and brought some other minor optimizations (e.g. improved RAM- and battery usage).

It's official package name is Y300-0100 V100R001C00B209_Firmware_West European_Channel-Others_Android 4.1_EMUI 1.0_05011KYP.

Download

@IntergalacticApps
IntergalacticApps / make_windows10_great_again.bat
Last active September 7, 2025 17:39
Make Windows 10 Great Again - stop Windows 10 spying!
@echo off
setlocal EnableDelayedExpansion
ver | find "10." > nul
if errorlevel 1 (
echo Your Windows version is not Windows 10... yet. Brace yourself, Windows 10 is coming^^!
pause
exit
)

Getting started with OMEMO

This is a short tutorial on how to get started with OMEMO. This is not to replace the XEP but to extend it and give you some clear steps to follow instead of a having to read through a formal specification.

Namespaces

Until OMEMO becomes an official XEP all current implemenations use the namespace eu.siacs.conversations.axolotl instead of urn:xmpp:omemo:0. Sub-namespaces are seperated by a . instead of a :. The device id however is sperated by :. So the namespace for a PEP device bundle for example will look like this: eu.siacs.conversations.axolotl.bundles:1234. You might want to define some constants in your code to have a central place to configure them later. Compare that to how Conversations does this.

The official XEP will also be based on Olm instead of Axolotl which means