#development

1 messages · Page 202 of 1

gentle grove
#

troll

torn oriole
#

It’s a file designated to opening the I’m feeling lucky page of googletroll

placid kraken
#

im doing my own assert

#

should i abort() or exit(1)

#
use std/io;
global pub;

fn assert(ElleMeta meta, bool condition) {
    if !condition {
        fprintf(
            stderr,
            "%s: Assertion '%s' failed.\n",
            meta.caller,
            meta.exprs[0]
        );

        abort();
    }
}
``` and is there anything more necessary
fading shell
#

abort

#

exit feels too graceful

rocky oriole
#

does anyone know how to fix Xcode Error loading required libraries. If there is an ongoing installation please re-install.
then if i run just git it says a big error log to big for here

this only happens to git or any command when Xcode is installed, any command i run brings up the Xcode command line tools utility and says this command requires git to be installed (it is installed) + the big error log

placid kraken
#

okok ty

vale wharf
#

hey i dont know if this is the right channel but is there any developers here i can pay to make a custom theming tweak for instagram? need one that can be compiled into dylib for IPA and i will pay first of course

ashen canyon
olive peak
#

If its just about getting the dylib of course

vale wharf
#

so like no prefrence loader or color pickers that arent compatible yk

olive peak
placid kraken
#

it uses alderis on < ios 14 and the stock color picker on ios 14+

#

although idk if its injectable into apps without a jailbreak

vale wharf
gentle grove
#

I needto learn how to train a tensorflow model

vale wharf
#

because if you want a career in it later

#

you HAVE to master it

#

its going to be the future by statistic

vale wharf
#

jobs will reject you if you dont have 4+ years in chatgpt coding

placid kraken
#

i write low level code in ways that AI fails to accurately debug

#

every time i ask it any question about a problem im having, not once has it gotten it correct

#

i learnt to proompt, thats not the issue

#

i know how to proompt to solve problems in less low level environments

#

it just doesnt know

gentle grove
#

idk why im even talking to someone thats 99% probability a troll

vale wharf
gentle grove
#

How am i being toxic

vale wharf
#

your passive aggressive tone. im just trying to tell you stuff and youre accusing me of being a troll 🤣

#

wasnt here to offend anyone or start an argument lol

gentle grove
#

sorry for not being appreciative of words

vale wharf
#

wtvr

placid kraken
#

imo you dont need ai to succeed in CS

#

as long as youre intelligent enough to fuck around and find out

#

and you have examples of how to do whatever you wanna do

#

you can do it

vale wharf
#

i program a lot and rarely need AI to help me code, but a lot big tech companies prefer the programmers to be using AI to "improve efficiency" and "cut on labor costs"

#

right now they dont care about it but in the future they will probably ask for your experience in using AI 🤣

thorn hound
#

the user below me is dangerous do not trust them

worn briar
tepid olive
#

hii i have a few questions:

would an app running as root still prompt the user for permissions for stuff like local network discovery, bluetooth, audio device access etc?

which APIs is responsible for prompting the user for permission for the same stuff as above?

pearl sail
vale wharf
pearl sail
#

People should start becoming hackers if that is the case

vale wharf
#

if big tech companies can save money by laying off thousands of people they will do the same with AI
i really hope it does not start lazy work

#

i was just about to finish my message lol

#

was gonna say how its gonna endorse lazier and sloppier code whcih might reveal exploits to hackers

#

the way everyone keeps using AI now

gentle grove
tepid olive
gentle grove
tepid olive
ocean raptor
#

Does palera1n work on freebsd

faint stag
#

entitlements don't work unless you have signature that allows for the usage of them

#

else the binary gets killed

tepid olive
#

yeah but i'm talking about a jailbroken device where you can sign freely stuff

faint stag
#

well i mean, running as the root user doesn't bypass every permission possible
it'll get you file access in some places but to interact with bluetooth or local network you still need to use apple's own apis etc

tepid olive
faint stag
#

they're documented

#

same goes for the private headers for these (sort of)

#

that's how we make tweaks

#

specifically, requesting permissions is something app store apps must do
which is why apple would have those documented

private headers required some slight reverse engineering work on ios to build/find
(they're private because the system uses them)

cloud yacht
cloud yacht
tepid olive
#

I use AI for groundwork

#

To lay out a skeleton

#

Everything else I do myself

vale wharf
#

My mom is an attourney, and she knows a friend building some legal software. Apparently he chose one developer over another because one was more proficient in ChatGPT and would make things more efficient blah blah

#

its stupid bullshit

#

i am seriouskly against it and dont think this culture should evole

ashen canyon
#

cynder was just typing

#

please tell me headers is going up

#

🙏

silver rampart
#

i think it is not the worst idea to learn how to use it as a tool to work more efficiently especially given the increasingly bad state of search engines

#

yea give me a couple hours i was gonna set it up during defcon and accidentally turned off the power strip my modem was plugged into before leaving my house

ashen canyon
#

i will remind you in <t:1723690800:R>

wicked summit
#

gm

vale wharf
#

i promise you some big tech company is going to have a major security breach and its going to be because they used chatgpt to code a fundamental part of the app and didnt check for an exploit lmao

silver rampart
#

thats called job security LETSFUCKINGGO

dawn forum
#

Dawg what

lusty jacinth
#

also how did u find that hm

dawn forum
#

searched porn filtered by old

lusty jacinth
#

oh

dawn forum
#

there is a porn gif somewhere in this server

#

like someone went back to an old message and editied it

olive peak
#

Oh no

edgy bluff
#

How can I hook SwiftUI library? For example I want to hook SwiftUI.accessibilityNode
I know how to hook swift classes but I think that in this case the process I'm i injecting into in my plist is wrong, I wrote the app identifier there

slim bramble
#

I have no idea why, perhaps if someone could explain

#

😁

fading shell
#

You can

#

It’s just not as easy as hooking objc methods

sonic totem
#

Hooking actual SwiftUI views is awful I hear

fading shell
#

If they are public, it’s relatively simple. You grab the mangled name of the original function and your replacement function, dlsym both and use MSHookFunction with the pointers

#

If they are private, you have to manually find the memory address to hook them

fading shell
#

I‘m just talking about regular swift here

slim bramble
fading shell
#

I don’t know what hookf exactly takes but you basically just MSHookFunction the results of MSFindSymbol

naive kraken
tepid olive
slim bramble
#

Well you can use it with MSFindSymbol

#

Unless I don’t get what you mean

manic forum
#

hook dlsym troll

acoustic imp
#

@slim bramble wwdc is over

harsh junco
#

@slim bramble wwdc is over

slim bramble
slim bramble
manic forum
#

yes

#

you want to

slim bramble
#

You can indirectly

steady nest
#

SHUT THE FUCK UP @grave sparrow

#

gm my guy

#

how you been

native orbit
#

bro back from the dead

slim bramble
#
%hookf(void, symbol, arg) { /* whatever */ }

%ctor {
    %init(symbol = MSFindSymbol("joe"));
}```
cloud yacht
acoustic imp
#

The betas…

slim bramble
#

💀

slim bramble
#

Did you know we could do that ?

steady nest
#

doesn't seem like i missed much tbh

slim bramble
#

Oh yeah fr

#

Clarity back

#

Hi

steady nest
#

sup

slim bramble
#

Yeah

#

Send one in ono again

#

Yeah saw

#

I’m gonna send one too

#

We need more people to send slurs in ono

#

You lucky hydrate isn’t on rn

#

Would’ve spam pinged him to snipe

#

Dm me one

#

I’m gonna send one too

#

Fun

wooden yarrow
#

damn i thought you were american

#

where from the biggest continent on earth

young meteor
#

pretty sure california is half asian americans atp

torn oriole
#

I can concur

pearl sail
orchid fulcrum
#

Does anybody know why and if there is a way to fix the issue where; whenever the shared AVAudioSession's category is AVAudioSessionCategoryPlayAndRecord the overall volume is very low compared to lets say playback and ambient categories ? It also only plays on one speaker instead of two

acoustic imp
#

Is it for like phone calls ?

#

(Idk that)

ocean raptor
#

I’ve got a 3G with a broken home button. An ideas on how to fix that?

orchid fulcrum
# acoustic imp Is it for like phone calls ?

Nah for a tweak, the category itself is for when you want to both record and play audio (which is actually how phone calls work i guess) anyways i figured it out, the answer is

[[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil];

#

I made it lol, trying to think of a couple of more features untill i release though, currently it only has your bluetooth idea and just allowing audio when ringer switch is on silent

wooden yarrow
visual meadow
#

what more do i need to change the derived data path

#

this is pissing me off

#
xcodebuild clean build -scheme nathanlr -configuration Release -derivedDataPath build/DerivedData CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED="NO" BUILD_DIR="build/" MODULE_CACHE_DIR="build/ModuleCache" DERIVED_DATA_PATH="build/DerivedData"```
#
-iphoneos/nathanlr.build/Objects-normal/arm64/MD.o -index-unit-output-path /usprebooter.build/Release-iphoneos/nathanlr.build/Objects-normal/arm64/GeneratedAssetSymbols.o
/Users/nathan/building/usprebooter_pf/usprebooter/UI/Tabs/ViewsInOptions/ChangelogViewController.swift:11:8: error: no such module 'Markdown'
import Markdown
       ^```
timid furnace
#

is this using swiftpods or whatever its called

orchid fulcrum
proud geyser
#

is there a shortcut for that to the quick switch with action button

orchid fulcrum
orchid fulcrum
proud geyser
#

but better than nothing

orchid fulcrum
proud geyser
#

ion speak that language

orchid fulcrum
#

Shortcut devs are so real for this tbh

proud geyser
#

how do i toggle lol

#

idk how to get condition

acoustic imp
#

Set a var or sm

#

Idk if u can

proud geyser
#

you need 3rd party apps for that

acoustic imp
#

Uhh idk

#

What iOS r u on

proud geyser
#

ios 18 dev beta 6

#

ohh yee there is variable

#

but does it save the value every time the shortcut runs ?

acoustic imp
proud geyser
#

too much work

#

i’ll just create 2 shortcuts

#

i’ve that enables and one that disables

acoustic imp
#

Oh ok

orchid fulcrum
acoustic imp
#

🔥

proud geyser
#

got it working

#

thanks

acoustic imp
#

👍

near sleet
#

God I’m tired of waiting for a iOS 17 jb, I am starting to feel the need to contribute. Are there any poc’s?

orchid fulcrum
orchid fulcrum
#

There was one of rootkit's but it only worked on intel macos i think

ashen canyon
#

wait, wrong cve

#

my bad

pearl sail
#

@plain python please make sure watchOS 11 has timers and alarms are synced with your iPhone

ashen canyon
#

CVE-2024-27815 is the one that only works on intel

ashen canyon
gentle grove
tepid olive
#

No way

#

No

#

No

manic forum
#

apple would actually do this

slim bramble
manic forum
#

all app store apps need to be recompiled

gentle grove
warped sparrow
thorny rivet
gentle grove
olive peak
torn oriole
#

One of life’s mysteries

placid kraken
manic forum
placid kraken
#

true

placid kraken
#

wrong chat :3

manic forum
#

:3

#

@torn oriole how dare you

lusty jacinth
placid kraken
#

blahaj was eating it

#

im sure it was tasty

#

lots of pointers

#

yum

slim bramble
placid kraken
#

no, the camera is making it look a lot darker than it actually is

hasty ruin
warped sparrow
placid kraken
#

the the the the the

#

i added struct methods to elle

#

like impl in rust

#
fn Vector3.rotate(Vector3 self, Vector3 axis, f32 angle) {
    Vector3 u = axis.normalize();

    f32 cos_theta = cos(angle);
    f32 sin_theta = sin(angle);

    Vector3 term1 = self.scale(cos_theta);
    Vector3 term2 = u.cross(self).scale(sin_theta);
    Vector3 term3 = u.scale(u.dot(self) * (1.0 - cos_theta));

    return term1.add(term2).add(term3);
}
#
Vector3 v = Vector3 { x = 1.0, y = 0.0, z = 0.0 };
Vector3 axis = Vector3 { x = 0.0, y = 0.0, z = 1.0 };
f32 angle = PI / 2.0;

Vector3 rotated = v.rotate(axis, angle);
dbg(rotated.x, rotated.y, rotated.z);
granite frigate
#

Dude why do people use tailwind

#

I keep having to look up the shorthand for everythhing when I could just write normal css so much faster

acoustic imp
#

Normal css >

#

Just make ur own classes for common props thishowitis

granite frigate
#

No yeah I also prefer normal css

#

but tailwind is getting more and more popular so I have to learn it

wooden yarrow
#

💀

edgy bluff
#

How can I get device udid if my tweak is injected into an app?

granite frigate
wooden yarrow
#

oh

faint lionBOT
#

@wooden yarrow's timezone is Europe/Amsterdam 🇳🇱
It is currently 09:02 PM CEST

granite frigate
#

wtf

wooden yarrow
placid kraken
#

is that error descriptive enough

#

actually that doesnt make sense

#

it should be in

#

there

#

or rather

cloud yacht
wooden yarrow
placid kraken
#

i see

visual meadow
#

Does anyone know how i would get the proper argument types for _XBValidateStoryboard

#

They are all just int in hopper

timid furnace
#

the same way you find it for any other function

#

look at the usage of the arguments, and look at what's fed into it when it's called by other functions

visual meadow
#

Opa said theres code to delete the denylist or smth in trollstore, but i couldnt find anything relating to that

#

try not to cringe challenge

#
%hookf(int, XBValidateStoryboard) {
    return 0;
}```
thorny rivet
visual meadow
#

hopper

naive kraken
visual meadow
#

I looked all over

#

Whatever I found a workaround

#

That wouldnt have worked anyways
because it would have just re added it to that plist

naive kraken
#

but not even sure if this the right plist

visual meadow
#

yea i looked and i dont think it is

visual meadow
gentle grove
granite frigate
pearl sail
# gentle grove

I am kinda glad this person is not interviewing people anymore

#

seems like an ass

gentle grove
gentle grove
gentle grove
#

let me take a look through the iterator methods to see if theres something else

#

the way that output array looks makes me remember something

pearl sail
# gentle grove whar

I understand it is a simple question but is every person you trying to get for a junior position gonna know logic like that when the position you are hiring for is frontend JS

#

just seems like a gotcha more then oh his fundamental logic is weak

gentle grove
#

or just make a loop by hand

gentle grove
#

why would you not hire whatever that is

#

imagine being a recruiter and still not having grown past being scared of symbols that look a little different

pearl sail
#

He said he was hiring people for JS so I am confused on why you throw them this question and then don't hire them based off this alone

gentle grove
#

oh

granite frigate
#

the person sounded like an ass

#

but 1. i never had a job and 2. I never had an interview position so i shall not judge whether he's fit

gentle grove
#
let input = [Some(1), Some(5), None, Some(7), Some(2), Some(9), None, Some(4)];
let mut out = Vec::new();

let last = input
  .into_iter()
  .fold(Vec::new(), |acc, e| {
    if let Some(n) = e {
      acc.push(n);
    } else {
      out.push(acc);
      acc = Vec::new();
    }
  });
out.push(last);
out
#

something like that

#

this is terrifying

gentle grove
#

i think that code block needs to be burned at the stake

gentle grove
#

no bloat

tepid olive
#

Options are only for if it can possibly not be a value (like null in C)

gentle grove
#

i cant make a null without having an Option

tepid olive
#

Oh I didn't notice the Nones

tepid olive
#

It's also invalid afaik

#

acc isn't mutable

gentle grove
#

what

#

the entire point of accumulator is that its mutable lol

tepid olive
#

You assign to acc but it's not mutable afaik

gentle grove
#

oh i wrote that backwards

tepid olive
#

It was replaced with iter

gentle grove
#

that doesnt even make any sense

tepid olive
#

I'm aware XD

gentle grove
#

who said it was deprecated

#

its not deprecated on the docs

tepid olive
#

I don't like Rust either, I only use it for embedded purposes

tepid olive
#

Guess I was mistaken

#

iter might just be shorthand

tepid olive
#

Otherwise I just use C lmao, C is more fun

gentle grove
tepid olive
gentle grove
#

into_iter converts into an interator, iter creates an iterator by taking references of all items

tepid olive
gentle grove
#

i usually want the values to die though tr

tepid olive
#

Well they'll die at the end of the context

gentle grove
#
let input = [Some(1), Some(5), None, Some(7), Some(2), Some(9), None, Some(4)];
let mut out = Vec::new();

let last = input
  .into_iter()
  .fold((Vec::new(), []), |acc, e| {
    if let Some(n) = e {
      acc.1.concat([n])
    } else {
      out.push(acc.clone());
      []
    }
  });
out.push(last);
out
#

i wonder if this works

granite frigate
#

sometimes I wonder what the fuck .into_iter and .reduce means

#

but it's just skill issue

gentle grove
#

ok i cant think rn how to make it work with reduce and automatically make the right type

#

oh its because reduce picks the first element right

#

completly different operation

#

let me fix it

#

this is awful

#

i need to learn haskell to make it work right

tepid olive
#

Rust sucks

gentle grove
tepid olive
#

Thanks

gentle grove
#

other languages suck more than rust

tepid olive
#

I like C

#

C# better

#

C# standard library is the best of any language

granite frigate
#

C# is honestly pretty nice to use

#

linq is sick

tepid olive
granite frigate
#

also running async is so much easier than rust

tepid olive
#

Also true as it's part of the language

granite frigate
#

it's just using task.run or adding await to everything

tepid olive
#

If I could use C# for everything I would lmao

granite frigate
#

real

#

forced to do web slop 🔥

placid kraken
granite frigate
#

ok but ngl c# for backend would be cool

gentle grove
placid kraken
#

oh

gentle grove
#

but i cant figure it out

tepid olive
#

I think it exists

gentle grove
#

wait no scala exists

#

ill learn scala instead of haskell

granite frigate
#

what's scala

gentle grove
#

functional JVM language

#

functional as in the paradigm

#

not as in the language works (although it does very well)

granite frigate
#

maybe i should learn fp during my holidays instead of doing web slop

tepid olive
gentle grove
placid kraken
#

this is what i came up with

let split: Vec<Vec<_>> = array
    .into_iter()
    .fold(vec![vec![]], |mut acc, item| {
        if let Some(value) = item {
            acc.last_mut().unwrap().push(value);
        } else if !acc.last().unwrap().is_empty() {
            acc.push(vec![]);
        }

        acc
    });
#

assuming

let array = vec![Some(1), Some(2), None, Some(3), Some(4), None, Some(5)];
gentle grove
placid kraken
#

that makes sense, in my impl i just see if its Some, if it is i mutate the last vec, otherwise i push a new vec

gentle grove
#

if you do it that way its less functional troll

placid kraken
#

true true

gentle grove
#

should i write bobafeed in scala'

placid kraken
#

whats bobafeed

gentle grove
#

but i hate jvm

tepid olive
#

I only use accumulators when I write a delta-sigma modulator

gentle grove
# placid kraken whats bobafeed

im gonna write an activitypub (mastodon), atproto (bluesky), and nostr implementation thats modular so you can put it on your regular website instead of running subdomains and putting an entirely isolated microblog platform

placid kraken
#

i see

gentle grove
#

but i find it hard to justify writing anything in any language other than rust

placid kraken
#

REAL

#

i love rust

native orbit
#

c best

tepid olive
placid kraken
vivid dew
#

where is swift

hasty ruin
vivid dew
#

wtf

#

icraze reading omegaverse

native dune
gentle grove
tepid olive
shrewd smelt
#

get his ass boba

ashen canyon
#

@silver rampart where da headers at home dawg

gentle grove
#
----- move occurs because `batch` has type `std::iter::Take<Map<FlatMap<FlatMap<RangeInclusive<i32>, Zip<std::iter::Repeat<i32>, RangeInclusive<i32>>, {closure@src/main.rs:12:19: 12:22}>, Zip<std::iter::Repeat<(i32, i32)>, RangeInclusive<i32>>, {closure@src/main.rs:13:19: 13:23}>, {closure@src/main.rs:14:14: 14:19}>>`, which does not implement the `Copy` trait
#

average rust functional programming experience

#

clone() is the answer

#

ok now my entire program just turned red

vivid dew
#

i think you need to up your dosage

gentle grove
#

it really rolls off the tongue

gentle grove
reef trail
gentle grove
reef trail
#

that’s fine then ig

manic forum
gentle grove
#

how

#

also i just raelized ive messed up

#

i have been bamboozled

#

they only went through 1/10th of all the ssns

manic forum
gentle grove
#

and i assumed my math was wrong

manic forum
gentle grove
#

so i need to make this multithreaded

#

if i want to do all the nubmers

manic forum
#

Also what is this repository anyway hm

gentle grove
#

yeah its really awful

#

oh whoops

#

oh god

manic forum
#

@gentle grove write a fuse filesystem for it

gentle grove
#

i have just accidentally created 1.4 million files due to a bug

gentle grove
#

i did rm -r and i can hear the cpu fans spinning up

gentle grove
#

that sounds fun

manic forum
#

it shouldn't be too hard

#

you only need to implement directory listing and file reading calls

gentle grove
#

FUSE-Rust does not just provide bindings, it is a rewrite of the original FUSE C library to fully take advantage of Rust's architecture.

manic forum
#

you should be able to calculate the file contents for any given offset and length quite easily

gentle grove
#

does fuse let you multithread stuff by opening files and stuff

#

so if you opened several files, would you be able to handle all those and then multithread the generation

gentle grove
#

that seems like a good idea

#

oh this is easy

#

things are easy when someone makes a library and does all the work for you

#

i hope its thread safe

#

its not

#

someone has a fork

manic forum
gentle grove
#

we will test how WIP that crate truly is

#

this is the most productive thing ive done the past 3 months

#

i really should start work on bobafeed

reef trail
#

wtf are you making “rust-ssn-batches”

gentle grove
manic forum
gentle grove
#

or should i write my own bindings directly on top of libfuse

manic forum
#

But do you really want to do that

gentle grove
#

maybe

manic forum
#

That sounds like a lot of work

#

Maybe it isn't idk

gentle grove
#

how hard could they have made the c interface to use

manic forum
#

I've only ever made a FUSE filesystem through a 4-year-old nodejs package that liked to corrupt files on write

#

So I don't know

#

@gentle grove I think there are multiple APIs

#

And you are allowed to choose between them

gentle grove
#

yeah obviously but libfuse is the reference implementation in c

manic forum
#

There's like an easy API that is single threaded

#

And a hard one that allows multithreading

#

Or something like that

manic forum
gentle grove
#

all these years of async but i dont really know how it really works

#

is anything truly async with no spinloop

manic forum
gentle grove
gentle grove
#

mode 2 listed here

#

ill brb

wooden yarrow
#

what the shit is this stupid ass C syntax for returning func pointers
void (*__fastcall getFPSLogHandler(__int64 a1))(__int64, const char *, ...)

#

???

#

from cdecl.org: "declare getFPSLogHandler as function (__int64) returning pointer to function (__int64, const char *, ...) returning void"

kind herald
#

meow-c

#

c with meow

gentle grove
wooden yarrow
#

RE tool just said void*

gentle grove
#

what does __fastcall do again

wooden yarrow
gentle grove
#

And why is it __int64

wooden yarrow
gentle grove
#

But apart from that yeah thats just how it is

visual meadow
#

someones gonna need to decrypt the fortnite ipa 🙏

gentle grove
#

I would ssy make an alias

wooden yarrow
#

but no typedef in re tool so

gentle grove
#

L

wooden yarrow
#

cool tool for understanding cursed C types

gentle grove
#

I feel like c is the language you least need that type of website on though because it has the smallest set of syntax

#

other languages are way more complex

#

cdecl just gives me syntax error

#

Grrat

olive peak
#

So ellekits jitlesshook definitely causes a memory leak, each time the hook gets called the program starts using more memory and after 947 calls it crashes with this error ```
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Subtype: KERN_PROTECTION_FAILURE at 0x000000016ba63fa8
Exception Codes: 0x0000000000000002, 0x000000016ba63fa8
VM Region Info: 0x16ba63fa8 is in 0x16ba60000-0x16ba64000; bytes after start: 16296 bytes before end: 87
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
Stack 16b94c000-16b9d4000 [ 544K] rw-/rwx SM=PRV thread 4
GAP OF 0x8c000 BYTES
---> STACK GUARD 16ba60000-16ba64000 [ 16K] ---/rwx SM=NUL stack guard for thread 5
Stack 16ba64000-16baec000 [ 544K] rw-/rwx SM=PRV thread 5
Termination Reason: SIGNAL 10 Bus error: 10
Terminating Process: exc handler [4843]

gentle grove
placid kraken
placid kraken
#
use std/io;

def Foo {
    i32 a;
}

fn Foo.divide_by(Foo *self, i32 num) {
    self.a /= num;
}

fn main() {
    Foo foo = Foo { a = 10 };
    foo.divide_by(2);

    dbg(foo.a); // foo.a = 5
}
``` object oriented programming
gentle grove
#

fn Foo.divide_by

placid kraken
#

well most of the other parts of the language use snake case also

#

but its not opinionated like rust or gleam

#

you can use camelCase or snake_case if you like

#

even CapsCase

olive peak
placid kraken
#

but the concept of defining the struct that a method should be binded to isnt anything new, im pretty sure cpp has the same thing

#

i wrote code like this before

#include "common.h"
#include "utilities.h"
#include "auth.h"

void Utilities::authenticateWifi() 
{   
    PRINT_DIVIDER();
    Wifi::setup();
    Wifi::hostname();
    delay(300);

    if (Wifi::connect())
    {
        Serial.printf("Successfully connected to Wifi with SSID: %s.\n", WiFi.SSID());
    } 
    else
    {
        Serial.println("Failed to connect to Wifi. Retrying...");
        return authenticateWifi();
    }

    delay(300);
    PRINT_DIVIDER();
    Wifi::debug();
}

uint32_t Utilities::getAbsoluteHumidity(float temperature, float humidity) 
{
    const float absoluteHumidity = 216.7f * (
        (humidity / 100.0f) * 6.112f 
            * exp((17.62f * temperature) / (243.12f + temperature)) 
            / (273.15f + temperature)
    );
    
    return static_cast<uint32_t>(1000.0f * absoluteHumidity);
}
#

then again thats a namespace not a struct

#
namespace Utilities
{
    extern void authenticateWifi();
    extern uint32_t getAbsoluteHumidity(float temperature, float humidity);
}
gentle grove
#

Just free standing

#

I guess more like c++

placid kraken
#

thats an intentional choice because of the semantics of how theyre used

#

Foo.divide_by creates the literal function Foo.divide_by()

#

its then the compiler's job to infer the struct that the dot method was accessed on and get the right method

#

foo when compiled returns the right Foo struct so the compiler correctly turns foo.divide_by(2) into Foo.divide_by(&foo, 2)

#

this is intentionally not put in a grouped block because that way you can also understand instance methods on primitive types semantically

fn i64.max() {
    return 9_223_372_036_854_775_807;
}

fn i64.min() {
    return -i64.max() - 1;
}

fn i32.max() {
    return 2_147_483_647;
}

fn i32.min() {
    return -i32.max() - 1;
}

fn bool.to_string(bool self) -> string {
    if self {
        return "true";
    } else {
        return "false";
    }
}
gentle grove
#

It should be :: imo

#

Thats how c++ does it because you put the methid on the class

placid kraken
#

probably yeah

#

the step of turning foo.divide_by(2) into Foo.divide_by(&foo, 2) means that i can just turn it into Foo::divide_by(&foo, 2) and keep the dot access the same

#

this system also allows for namespaces technically lol

def Meow {};

fn Meow.print() {
    print("hi");
}

fn Meow.add(i32 a, i32 b) {
    return a + b;
}
placid kraken
#

ok there i made it ::

#
use std/io;

def Foo {
    i32 a;
}

fn Foo::add(Foo self, Foo other) {
    return Foo { a = self.a + other.a };
}

fn Foo::divideBy(Foo *self, i32 num) {
    self.a /= num;
}

fn main() {
    Foo foo1 = Foo { a = 10 };
    Foo foo2 = Foo { a = 30 };

    foo2.divideBy(15);
    Foo res = foo1.add(foo2);
    Foo res2 = Foo::add(foo1, foo2);

    dbg(res.a, res2.a); // both are 12
}
#

i love regex

placid kraken
#

better errors maybe

olive peak
#

Ok so changing the loop of the exception handler fixes the crash and stack overflow

manic forum
#

@gentle grove

torn oriole
#

😭

hasty ruin
reef trail
acoustic imp
visual meadow
#

No

#

Thats why im asking lol

#

It works down to ios 15.0

#

Someone with a ipad 7 on ios 18 in europe needs to decrypt it

acoustic imp
#

Yea

#

I got kinda close but idk

visual meadow
#

The ipa is weird

#

Its like spit

#

Split

acoustic imp
#

Oh

#

Well there’s multiple links in the json?

visual meadow
#

Yeah

slim bramble
#

But tbf the Fortnite ipa is FairPlay’d so you need a jailbroken device

orchid fulcrum
#

Does apple documentation ever straight up lie ? They say AVAudioSessionCategoryDuckOthers is not compatible with ambient or soloambient categories here https://developer.apple.com/documentation/avfaudio/avaudiosessioncategoryoptions/avaudiosessioncategoryoptionduckothers?language=objc . So i designed my tweak to automatically close that option when switching from playback to ambient or solo ambient. For some reason the switch does indeed automatically turn off, Yet it somehow still continues to duck the external music.

orchid fulcrum
acoustic imp
#

Can I simply chnage ur region or what ever or do u Gota like “be” in EU for side loading ?

velvet path
acoustic imp
#

Or like is it some bool u could chnage on a checkm8 iPad

slim bramble
#

But there’s not really a point cuz you would have TS….

slim bramble
visual meadow
#

Idk opa did it

slim bramble
torn oriole
pearl sail
#

fr

manic forum
cloud yacht
#

Foodra1n

wooden yarrow
#

💀

pearl sail
#

methra1n

cloud yacht
#

iCrazera1n

hasty ruin
placid kraken
faint timber
#

does anyone unfortunately know js

placid kraken
#

yes

faint timber
#

alright question

#

say I have a .load var with a .onload wrapper, if the src uri says http why does it instead end up executing as https

placid kraken
#

this is more browser related than js related

#

however

#

the website may redirect to https automatically?

#

it may also set the upgrade-insecure-requests CSP rule

placid kraken
faint timber
#

IM AN IDIOT

placid kraken
#

lol wha

#

oh lmao

faint timber
#

thanks

wooden yarrow
#

yes

cloud yacht
#

My sources say yes

hasty ruin
timid briar
#

woa...

native dune
#

WHAT

timid briar
#

woa...

pearl sail
hasty ruin
pearl sail
#

Hmm photoshop goes crazy

#

Anyways how many fursuits do you now have @hasty ruin

hasty ruin
#

stupid ass dog

pearl sail
hasty ruin
#

I’d rather kms

pearl sail
#

Hmm

slender glade
slender glade
#

Persephone was bipolar otherwise no one comes as close in terms of mental illness

slender glade
#

I figure this channel could be useful too, soo

granite frigate
slender glade
# granite frigate what are the 8 you’ve found so far
Apple Developer Documentation

Restrict access to system resources and user data in macOS apps to contain damage if an app becomes compromised.

#

okay 5 not 8

#

but like 70% of the stuff I know from sandbox is just knowledge I've gained from RE & discussions w others as well as experiences with jailbreaking so I'd really rather just rely on written resources 💀

olive peak
#

From where should i download ldid on my mac, the xcode project i want to build requires it

slender glade
granite frigate
#

damn

#

wyd anyway

#

blogpost?!

pearl sail
hexed bolt
#

Hi, I can't seem to compile my project for rootless - when launching an application, attempts to load a external library (like Cephei) result in a failure:

ASI found [dyld] (sensitive) 'Library not loaded: '/Library/Frameworks/Cephei.framework/Cephei'
  Referenced from: '/private/preboot/B9BCB79E679A1E14B503500DBD6B89AC2640C007EB5C61EF1739370E6FDBF53672D7E800574EA330B7D3ED9AEDFAC305/jb-pABIBJRw/procursus/Applications/TestApp.app/TestApp'
  Reason: tried: '/Library/Frameworks/Cephei.framework/Cephei' (no such file), '/System/Library/Frameworks/Cephei.framework/Cephei' (no such file)'

and as a result - application crashes.

I'm pretty sure this could be worked around by specifying DYLD_LIBRARY_PATH at runtime (which would be a pain in the ass).
Is there any other solutions to this?

manic forum
#

And are you linking to the rootless build of Cephei?

hexed bolt
olive peak
#

How do i make my tweak search for libraries i linked to in @executable_path/Frameworks at runtime?

hexed bolt
manic forum
#

Which is probably an issue with how you're building the app

hexed bolt
manic forum
#

The library itself should contain that information

#

Normally there isn't anything you need to do

hexed bolt
# manic forum The library itself should contain that information

Yeah, I just have other private libraries that I compile and use. The only way they "load" is by modifying the usage to be static.
Is there a way I could make a dynamic library (which works just fine on rooted, but fails with basically the exact same error as i sent before).

manic forum
#

How do you compile these libraries and the app itself?

#

Could you share the Theos makefile?

hexed bolt
hexed bolt
manic forum
#

You don't need to (and shouldn't) manually specify an install path

olive peak
hexed bolt
# manic forum Which is probably an issue with how you're building the app

https://github.com/theos/lib/blob/master/iphone/rootless/Cephei.framework/Cephei.tbd
It seems that it in fact uses a rootless build of Cephei, so an issue could stem from my Makefile.
My App's makefile is as such:

INSTALL_TARGET_PROCESSES = TestApp

include $(THEOS)/makefiles/common.mk

APPLICATION_NAME = TestApp

$(APPLICATION_NAME)_FILES = $(wildcard *.m)
$(APPLICATION_NAME)_FRAMEWORKS = UIKit CoreGraphics MobileCoreServices MapKit
$(APPLICATION_NAME)_EXTRA_FRAMEWORKS = Cephei AltList
$(APPLICATION_NAME)_CFLAGS = -fobjc-arc -DTP_PACKAGE_SCHEME=\@\"$(THEOS_PACKAGING_SCHEME)\"
$(APPLICATION_NAME)_LIBRARIES = TUtils
$(APPLICATION_NAME)_CODESIGN_FLAGS = -Sentitlements.xml

include $(THEOS_MAKE_PATH)/application.mk

It's being launched by aggregate makefile:

export THEOS_PACKAGING_SCHEME = rootless
export THEOS_PACKAGE_INSTALL_PREFIX=/var/jb
export ARCHS = arm64 arm64e
export TARGET = iphone:15.6:15.0
export GO_EASY_ON_ME = 1
export COPYFILE_DISABLE=1

include $(THEOS)/makefiles/common.mk

SUBPROJECTS += TUtils App

before-stage::
    $(ECHO_NOTHING)find . -name '.DS_Store' -type f -delete$(ECHO_END)

include $(THEOS_MAKE_PATH)/aggregate.mk
GitHub

Linkable libraries shipped with Theos. Contribute to theos/lib development by creating an account on GitHub.

hexed bolt
olive peak
#

Does anyone know what the first load command is? When i look at the load commands of ellekit before and after sideloading using sideloadly i see that the first one changes
Before:

otool -L libellekitJITLess.dylib 
libellekitJITLess.dylib:
    /usr/local/lib/libellekitJITLess.dylib (compatibility version 1.0.0, current version 1.0.0)

After:

otool -L libellekitJITLess.dylib 
libellekitJITLess.dylib:
    @executable_path/Frameworks/libellekitJITLess.dylib (compatibility version 1.0.0, current version 1.0.0)
#

Oh its the id

naive kraken
#

but theos does all of this for you

orchid fulcrum
# olive peak How do i make my tweak search for libraries i linked to in @executable_path/Fram...

You have to configure rpath flag if you are on theos iirc. However i would be very surprised because normally /@executable/Frameworks/ should already be setup. (So you could just use it without configuring anything). If you want more control over where the dylibs are injected, if you have a in entreprise/Udid/paid apple developer(?) certificate esign lets you choose that before installing

hexed bolt
placid kraken
manic forum
vale wharf
#

Is there a tweak to debug websocket requests made on apps ?

rocky oriole
faint lionBOT
#
FLEXing

Open FLEX anywhere!

Author

Tanner Bennett

Version

1.5.0+rootless

Price

Free

Bundle ID

com.pantsthief.flexing

vale wharf
#

nmvm

native dune
#

Or apt install ldid with Procursus installed

olive peak
vale wharf
#

Is there a way to make a flex patch that replaces all instances of a color with a different color?

slim bramble
#

I don't think so

#

just use flora tbf

#

[[Flora]]

faint lionBOT
#
Flora

A modern color changer, built for today's jailbreaks.

Author

rosiepie

Version

1.1.3

Price

$1.49

Repo
Bundle ID

com.rosiepie.flora

orchid fulcrum
#

@acoustic imp do you know how i can programatically resume paused/stopped music (spotify/apple music etc) ? Preferably without a button

slim bramble
#

Wait lemme lookup 16Player sources

#

MRMediaRemoteSendCommand

orchid fulcrum
placid kraken
#

i love macros

#
#[macro_export]
macro_rules! unknown_function {
    ($location:expr, $name:expr, $module:expr $(,)?) => {{
        let mut similar_name = None;
        let mut lowest_distance = usize::max_value();

        for func in $module
            .borrow_mut()
            .functions
            .iter()
            .filter(|func| func.name != "nil")
        {
            let distance =
                crate::misc::levenshtein::levenshtein($name.as_str(), func.name.clone().as_str());

            if distance < lowest_distance {
                lowest_distance = distance;
                similar_name = Some(func.name.clone());
            }
        }

        panic!(
            "{}",
            $location.error(format!(
                "Function named '{}' has an unknown interface.{}",
                $name.clone(),
                if let Some(similar) = similar_name {
                    format!(
                        "\nA function with a similar name exists: '{}'",
                        similar.replace(".", "::")
                    )
                } else {
                    "".into()
                }
            ))
        )
    }};
}
wooden yarrow
placid kraken
wooden yarrow
placid kraken
#

true

wooden yarrow
#

actually why do you clone $name for the format! one

#

can that not just be a .as_str instead

placid kraken
#

idk i just cloned to get the borrow checker out of my way

#

at one point i do need to refactor and use as little clones as possible

wooden yarrow
placid kraken
#

not when i’m prototyping

#

i hate that rust assumes the code i write is production code from the start

#

sometimes i wanna just do my thing and make it work

wooden yarrow
#

bad lang for it

#

agree

#

guess that's what you get in exchange for never having to worry at runtime

placid kraken
#

truee

#

the only error i’ve ever run into at runtime that the compiler didn’t (and couldn’t) catch is a BorrowMutError for a refcell

wooden yarrow
#

oh, but i mean

#

aren't cells kinda used to make compile time ref errors, runtime

placid kraken
#

not really

#

they’re for having internal mutability

#

you can pass an immutable reference to a refcell and mutate the inner value of the refcell mutably

#

that also means the errors for borrowing become runtime because there’s no way for the borrow checker to follow the same rules anymore

wooden yarrow
placid kraken
#

so you need to manage a single mutable borrow manually

wooden yarrow
#

and so obv if the compiler cannot figure it out at compile time

#

then you will die at runtime!

placid kraken
#

yep

wooden yarrow
#

still no segfaults though

placid kraken
#

very useful for recursive tail call methods that mutate some structure though lol

placid kraken
gentle grove
gentle grove
#

and code quality is generally more important

gentle grove
olive peak
#

Did i do something wrong? Each log shows up as if String was empty

- (BOOL)isEqualToString:(NSString*)String {
    NSLog(@"isEqualToString %@ %@", self, String);
    return %orig;
}
reef trail
weary heath
olive peak
olive peak
placid kraken
#

it literally compiles for loops into gauss sums

#

and switch cases into jump tables

#

the optimizations that the compiler is able to do are insane

gentle grove
placid kraken
gentle grove
#

yeah but its not impressive because we've decided that's a standard feature of any modern compiler

placid kraken
#

still impressive to me

gentle grove
#

it is

placid kraken
#

oh lmaoo

placid kraken
#

i failed to do something... :3

olive peak
#

Which imports should i look out for regarding ssl pinning?

manic forum
#

i failed to do something... :3

wooden yarrow
#

i failed to do something... :3

wooden yarrow
#

anytime you want to do anything with network traffic you die from it

robust radish
#

Organizations use it in mobile apps because they want to impose barriers for people reverse engineering their APIs (commonly motivated by compliancy purposes)

#

it’s not dumb if it works

harsh junco
#

NSDepression

manic forum
#

So it is just Depression now

olive peak
#

I mean i did find a function which seems very likely to handle it, but when hooking it doesnt seem to get called

wicked summit
#

gm

tepid olive
#

To avoid man in the middle attacks

neon bear
#

Hey, question, im being asked to do a python simple code , they tell me to do it on spyder anaconda, but it isnt running and im courious if i could just do it in vscode , would the IDE (the enviroment) change something or not?

wooden yarrow
#

i mean if your IDE has different commands for running the program then maybe

#

but if you can just run it on the terminal then no

neon bear
#

Nah i believe both enviroments have the same commands and protocols

#

Just afraid that the files would incript or

#

Uh change

#

But technically its the same

pearl sail
#

ofc your gay ass would love man in middle attacks

visual meadow
#
        if (access(newPath, F_OK) == 0) {
            char path2[PATH_MAX];
            snprintf(path2, sizeof(path2), "%s%s", path, ".bak");
            rename(path, path2);
            copy(newPath, path);
            increaseJetsamLimits(attrp);
            int ret = orig_posix_spawn(pid, path, file_actions, attrp, argv, envp);
            remove(path);
            rename(path2, path);
            return ret;
        }```
I know this method is straight dogshit but basically i want to preserve the path for the pid, if i hardlink and then unlink the file later on, the path for the pid will change, same with renaming, it doesn't do it if you copy the file however and delete it after, but that will cause wear on the nand, does anyone happen to know a way on how to not have the path for the pid change without writing new file data?
golden horizon
#

i have a fullscreen nspanel, i've managed to resize the width of it, but i still can't click outside the window (trying to patch ControlCenter)

#

i've tried everything, if someone has an idea (tried ignoresMouseEvents to true etc...)

placid kraken
#

can ANYONE tell me why it does this

#

in a string test if i iterate through the characters and print them with %c it prints perfectly

#

but if i try to print their corresponding ascii representation i get this huge number

sonic totem
#

Send code trol

weary heath
placid kraken
#

holy shit

placid kraken
#

the reason why was because i was loading word from the pointer instead of byte, so it was reading more than it needed to

#

thank god that means i can do this now

fn string::to_uppercase(string self) {
    i32 length = self.len();
    string out = malloc((length + 1) * #size(char));

    for i32 i = 0; i < length; i += 1 {
        char c = self[i];

        if c >= 'a' && c <= 'z' {
            out[i] = self[i] - ('a' - 'A');
        } else {
            out[i] = c;
        }
    }

    return out;
}
#

🙏

radiant idol
#

memory leak ⁉️ ⁉️ ⁉️ ⁉️

placid kraken
#

no

#

the caller manages freeing the returned string

radiant idol
#

good

sharp finch
#

there is an iOS app called Wizz, you meet new people there and stuff. is anyone willing to remove an element from it which pops up every time u do something 5 times?

#

and if there is any more tweaks you would wanna do, you can

#

(im not paying for anything so if you want to do it for fun, let me know)

placid kraken
#

that means

#

brainfuck compiler!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

radiant idol
#

too much code duplication

placid kraken
#

no switch cases

#

but lemme make the [] stuff non duplicated

placid kraken
radiant idol
#

nice

placid kraken
placid kraken
#

no just memory read/write operations were always turned into a base type as per every other operation in the IR

#

because the backend compiler doesnt allow unsigned types and sub-int types anywhere except for memory store/load and comparisons

#

so temporarily i just made everything be turned into a base type but that, obviously, has implications that i didnt think of at the time lol

fading shell
faint timber
#

ah hell nah man this shit is unreversable

torn oriole
#

Swift jumpscare

gentle grove
timid furnace
faint timber
timid furnace
#

damn

#

ig it doesn't really help then

faint timber
#

well not really it is reversable just need to find out how

faint timber
#

what the hell are these dyld offsets

robust radish
#

global variables n shit

robust radish
faint timber
turbid sonnet
#

Not related to jailbreaking but it’s been 3 days and GitHub still hasn’t given me copilot for free despite accepting my student benefits

#

Damn I just realised I’m an asshole for whining about how long it takes to get something for free by virtue of where I study

gentle grove
#

although i rememher it taking me 30 days to get github student approved

turbid sonnet
#

Damn bro wtf

#

I got approved in minutes

turbid sonnet
gentle grove
#

Weird

#

Try waiting soon

#

Whar else can you do

turbid sonnet
#

waits faster

#

Soon

turbid sonnet
#

When is soon

gentle grove
#

soon

turbid sonnet
#

^ that’s something Plato would eat up

turbid sonnet
# turbid sonnet

Some weird c*nt gonna do some ascii analysis to find my GitHub username

#

Pardon my Australian

#

That word means something different here

gentle grove
turbid sonnet
#

And considering big tech companies use high upper bounds for wait times to surprise or to not disappoint, I’m thinking it’s gonna take ages

#

Cause some approval agent or manager is on vacation

#

Or some stupid shit like that

tepid olive
#

what is tweak development like

#

do yall have to JB the simulator

grim sparrow
#

but its often easier to just run it on a jb device

tepid olive
#

i dont have one 😦

#

i just want to play around

grim sparrow
#

It's possible to run tweaks in the sim but I'm not sure when stuff was last updated

#

omg simject is still active??

#

shoutout Karen and Poomsmart

grim sparrow
#

yeah i have a few

tepid olive
#

would live reload work

grim sparrow
#

aemulo cant really be tested in the sim cause it requires nfc

grim sparrow
tepid olive
#

yeah

#

or do you have to rebuild on each change

grim sparrow
#

well thats what live previews does

#

it rebuilds the binary in the background

#

it just does it sneakily

tepid olive
#

doesnt the regular build take a lot of time

grim sparrow
#

not really

#

obviusly it depends on ur machine but even on m1 you can do debug builds in a second or so

#

(assuming you havent cleared previous build cache)

tepid olive
#

yeah am on m1

#

8gb of ram but i make do 😔

timid furnace
#

ie. once they made everything read only

#

i have a fork that basically turns it into rootless but its not perfect

#

some issues with the theos modding i had to do

grim sparrow
#

Yeah that’s more or less what I guessed

timid furnace
#

ellekit for sim works, and people have suggested that i just replace simject with an injector bundled with ellekit

#

might do that

wooden yarrow
#

i keep thinking of the Subscriber Identity Module instead of the SIMulator

timid furnace
#

they don't really overlap

placid kraken
#

naming things is so hard 😭

#

what do i call this function

string i = "me";
i.push_strings("wo");
io::assert(i.equals("mewo"), "result is ".concat(i));
#

push_strings

#

i already have pop for popping the last char, so that means i need push to push a char to the end

#

to maintain the convention

#

but then i also want a method where you can push strings to the string

fn string::push_strings(ElleMeta meta, string *self, ...) {
    // - 1 to account for `string *self` which isnt variadic
    variadic args[meta.arity - 1];
    string res = *self;

    for i32 i = 0; i < meta.arity - 1; i += 1 {
        res = res.concat(args.yield(string));
    }

    *self = res;
}
#

its not like concat because it edits the string in-place

#

theres quite a lot of string methods now though lol

fn string::len(string self);
fn string::is_empty(string self);
fn string::contains(string self, string needle) -> bool;
fn string::starts_with(string self, string prefix) -> bool;
fn string::ends_with(string self, string suffix) -> bool;
fn string::equals(string self, string other);
fn string::to_upper(string self);
fn string::to_lower(string self);
fn string::ascii_lower();
fn string::ascii_upper();
fn string::slice(string self, i32 start, i32 end) -> string;
fn string::concat(ElleMeta meta, ...) -> string;
fn string::push_strings(ElleMeta meta, string *self, ...);
fn string::color(string self, string color, bool reset);
fn string::repeat(string self, i32 count);
fn string::insert(string *self, i32 index, char c);
fn string::pop(string *self) -> char;
fn string::push(string *self, char c);
wooden yarrow
placid kraken
#

thank you

placid kraken
#

it just uses the shell color codes and optionally adds the reset code at the end of the string

wooden yarrow
#

different terminals have different escape sequences though

placid kraken
#

yeah that function is very unfinished

wooden yarrow
#

also if ur going to add that might as well add the other bold italics ...

placid kraken
#

its part of .color for now though

wooden yarrow
#

hm

placid kraken
#

io::println("All string tests have passed!".color("bold", false).color("green", true);

wooden yarrow
#

also should probably use like an enum for that instead of string

#

that way you can't just use color "eogbeorbg3"

placid kraken
#

lmao true

#

if it doesnt find a valid color it just returns the original string

wooden yarrow
#

silent failure

wooden yarrow
#

.

#

and most other arguments

#

shoukdnt they be u32

placid kraken
wooden yarrow
#

oh

#

wtf

#

get to fixing troll

wooden yarrow
#

oh

placid kraken
#

its funny how insanely sugared an expression like this is:

"All string tests have passed!"
        .color("bold")
        .color("italic")
        .color("underline")
        .color("green")
        .reset()

unsugared (without dot chaining, this is what compiler turns the expr above into):

string::reset(
    string::color(
        string::color(
            string::color(
                string::color(
                    "All string tests have passed!", 
                    "bold"
                ), 
                "italic"
            ), 
            "underline"
        ),
        "green"
    )
)
#

(i changed the api to make reset a thing you put at the end instead of a bool in every .color)

placid kraken
#

🙏

wooden yarrow
#

reminds me of 0x7ff code lmao

placid kraken
#

wtf 😭

wooden yarrow
#

actually this one is worse

#

oh god found one i needed to zoom out from lmao

placid kraken
#

WHAT THE FUCK

#

AJKBDAKWDJADBA

wooden yarrow
#

bro writes programs that work great! it's just that, y'know

#

i dont think he's ever had a lesson on readability

#

💀

placid kraken
#

i hope they learn you can do

#                if TARGET_OS_OSX
                 puts("im running on macos");
#                else
                 puts("im running on a superior OS");
#                endif
``` with macros
native orbit
#

BxihirJaJb.o

placid kraken
#

lmfao

placid kraken
#

"small update"

native orbit
#

my commits be like:

placid kraken
#

real

gentle grove
#

like jt wouldnt load on web github

hasty ruin
#

Cleanest Java

gentle grove
#

It was just them chaining the same async callback to repeat it

wooden yarrow
#

😭 what the hell

hasty ruin
gentle grove
#

theres no indentation on. Mobile

gentle grove
#

you cant make this up

#

minecraft plugin developers are a different breed

acoustic imp
#

@slim bramble

slim bramble
wooden yarrow
#

absolute perfection (had to change screen resolutions to take a screenshot of this)

placid kraken
#

simplest java code

olive peak
#

is NSString containsString case sensitive?

placid kraken
#

yes

olive peak
placid kraken
#

this is case sensitive

NSString *string = @"Hello, World!";
BOOL contains = [string containsString:@"world"];
#

if you want insensitive you can do something like

NSString *string = @"Hello, World!";
BOOL contains = ([string rangeOfString:@"world" options:NSCaseInsensitiveSearch].location != NSNotFound);
``` i think?
#

someone correct me if im wrong

acoustic imp
placid kraken
#

i love that video

acoustic imp
#

it was used as media when testing 16Player on my potato ipad troll

placid kraken
#

😭

granite frigate
placid kraken
#

least over-complicated system

// struct access
if ty.is_struct() {
    should_get_address = true;
    name = format!("{}.{}", ty.get_struct_inner().unwrap(), name)
// struct * access
} else if ty.is_pointer() && ty.clone().get_pointer_inner().unwrap().is_struct()
{
    name = format!(
        "{}.{}",
        ty.get_pointer_inner().unwrap().get_struct_inner().unwrap(),
        name
    )
// string access
} else if ty.is_pointer()
    && ty.clone().get_pointer_inner().unwrap() == Type::Char
{
    should_get_address = true;
    name = format!("string.{}", name)
// string * access
} else if ty.is_pointer()
    && ty.clone().get_pointer_inner().unwrap().is_pointer()
    && ty
        .clone()
        .get_pointer_inner()
        .unwrap()
        .get_pointer_inner()
        .unwrap()
        == Type::Char
{
    name = format!("string.{}", name)
// primitive access
} else {
    name = format!("{}.{}", ty.id(), name)
}
sonic totem
#

Why do you do this to yourself