Skip to content

Instantly share code, notes, and snippets.

View mr5z's full-sized avatar
🎯
Focusing

mark mr5z

🎯
Focusing
View GitHub Profile
@mr5z
mr5z / GetTokenResponse.cs
Created February 17, 2024 17:38
Android.Maui - Seriously?
public async Task<TokenResponse> GetTokenResponse()
{
var raw = Task.Run(async () => await SecureStorage.GetAsync(KeyTokenResponse)).Result
?? throw new InvalidOperationException($"'{nameof(TokenResponse)}' not found");
using var stream = new MemoryStream(Encoding.UTF8.GetBytes(raw), false);
return await JsonSerializer.DeserializeAsync<TokenResponse>(stream)
?? throw new InvalidOperationException($"Cannot deserialize '{nameof(TokenResponse)}'");
}
class SecretSong {
constructor(items) {
this.items = items || [];
this.lyrics = '';
this.itemsGiven = [];
}
init() {
let when = atob('T24gdGhl');
let verb = atob('ZGF5IG9mIENocmlzdG1hcyBteSB0cnVlIGxvdmUgc2VudCB0byBtZTo=');
const from = atob('ZG92ZXMsIGE='), to = atob('ZG92ZXMsIGFuZCBh');
@mr5z
mr5z / number-to-words-inspired-by-chatgpt.cs
Last active August 29, 2023 19:26
Scalable solution for converting numbers to English words
using System.Numerics;
string ToWords(BigInteger number)
{
var ones = new string[] { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
var teens = new string[] { "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
var xty = new string[] { "twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety" };
var suffixes = new string[] {
"", "thousand", "million", "billion", "trillion",
"quadrillion", "quintillion", "sextillion", "septillion",
@mr5z
mr5z / number-to-word-by-gpt.cs
Last active August 29, 2023 15:02
Code is borked
string[] ones = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" };
string[] teens = { "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
string[] tens = { "", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
string[] suffixes = { "thousand", "million", "billion", "trillion", "quadrillion", "quintillion", "sextillion" };
string NumberToWords(ulong number)
{
if (number >= 1 && number <= 10)
{
return ones[number - 1];
@mr5z
mr5z / number-to-word.cs
Created August 28, 2023 19:34
Code looks bad. Please help
string ToOnes(long number)
{
if (number == 0)
{
return "";
}
var words = new string[] { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
return words[number - 1];
@mr5z
mr5z / stupid.kt
Last active October 14, 2022 10:43
Trying to replicate C#'s Uri.EscapeUriString()
fun tryEncode(url: String): URL {
val schemeSeparator = "://"
val schemeIndex = url.indexOf(schemeSeparator)
val scheme: String
val urlWithoutScheme: String
if (schemeIndex > 0) {
scheme = url.substring(0, schemeIndex)
urlWithoutScheme = url.substring(schemeIndex + schemeSeparator.length)
}
else {
public static class BindableHelper
{
private const string KnownPropertyPattern = "Property";
public static BindableProperty CreateProperty<T>(
T? defaultValue = default,
BindingMode mode = BindingMode.TwoWay,
BindableProperty.BindingPropertyChangedDelegate? propertyChanged = null,
[CallerMemberName] string? propertyName = null)
{
// interface
interface IActivityInstanceProvider {
fun updateInstance(activity: Activity)
fun <TActivity: Activity> get(): TActivity?
}
// class
class ActivityInstanceProvider: IActivityInstanceProvider {
private val activityInstance: HashSet<WeakReference<Activity?>> = hashSetOf()
@mr5z
mr5z / ObservableCollectionAndItems.cs
Created December 26, 2021 14:16
Observes both collection changed and items changed.
internal class ObservableCollectionAndItems<TModel> where TModel : INotifyPropertyChanged
{
private readonly ObservableCollection<TModel> collection = new();
public event EventHandler<EventArgs>? ItemChanged;
public event EventHandler<NotifyCollectionChangedEventArgs>? CollectionChanged;
public ObservableCollectionAndItems()
{
collection.CollectionChanged += Collection_CollectionChanged;
@mr5z
mr5z / date_format.cpp
Last active July 1, 2021 09:15
Various ways to print date time
static std::string date_format(boost::posix_time::ptime const& datetime) {
using namespace boost;
std::ostringstream ss;
auto output_facet = new boost::posix_time::time_facet();
ss.imbue(std::locale(std::locale::classic(), output_facet));
output_facet->format("%Y-%m-%d %H:%M:%s%Q");
ss.str("");