Details
-
About🏳️⚧️ Bipolar type I. Autistic. Probably dead in a year. There are other receivers
-
SkillsCSS is all you need really. There are other receivers…
-
Location2013 there are other receivers
-
Website
-
Github
Joined devRant on 2/19/2018
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
Hurry up, you’re late to your Boss Appreciation Meeting
-
COMMON
LISP ! -
But the quality isn’t over the top there is it
If you really want over the top quality, you find an American/European/Japanese dude who runs his own custom shop and does it for the sake of it as his hobby on his own CNC machine in his garage. The concepts of product-market fit, economy of scale and marketing in general should be alien to him.
A good example is The New Model F keyboard shop. -
@Grumm oh yes. Seeing a bear cub is way more scary than seeing a grown up bear because it means there is a mother somewhere around. Bear mothers act very aggressive and irrational
I never encountered boar mothers, but I suspect they’re just as aggressive -
@PaperTrail this one might, yep
-
@cprn agree. I never extend types at all. Maybe I'm too influenced by being exposed to Clojure at very young career-age, but I would love element.querySelector(selector) to become querySelector(selector[, element]). This is why my "qs" sugar works like qs(selector[, element]), with element defaulting to document.
I structure my programs in the same way: they're functions acting on primitives/built-ins -
@Grumm the problem with wild boars is that they're very fast WHILE being burly. That's the same formula as a hippo.
A pistol won't stop it — it's just too big and too powerful. You need a direct hit with buckshot, but those guns are long and unwieldy, they're hard to use when you're panicking.
Your best bet is to climb your nearest tree, and do it fast. Hogs can't climb bc they have hooves.
Not the case with bears though! Bears can climb very well when they need to. -
@Grumm man, if there's a lot of them, they're scared and the cage is small enough that you can't adequately fight, it's a matter of minutes that one of your larger veins gets punctured and you bleed out.
Wild boars are terrifying. We call them секач (sekach), where сек- means to cut, and -ач is the same thing as "-er" in English.
In Russian, if something is called after what it does, you know it does the thing really well. On top of that, if the thing being done well is cutting, you stay away from whatever was granted that name. -
@Demolishun no, because the analysis of JoyRant shows that it has essentially the same structure as any web app.
-
@retoor yeah, parsers are legit algos. This is why you write them in C
-
@CoreFusionX sorry, I confused cpython with that thing that compiles python code into binaries. You're right.
-
@CoreFusionX don't know about cpython. I say that Python's timsort as implemented will be faster than quicksort written from scratch in C
-
@Lensflare what do you make at work?
-
@Lensflare see, oh mister destroyer of clown languages whose code is above us peasants, that your code is mostly boilerplate, and what isn't boilerplate is the same declarative UI which is exactly as declarative as HTML and CSS, plus 20% of imperative code that (surprise-surprise) glues native APIs together and wraps things, AND THAT'S OKAY.
My point was that this is typical and this is okay, in any modern app that isn't an OS core, a compiler or other stuff neither you not me is good at.
Your native Swift app has exactly the same contents as any (nicely written, because your code is quite solid) React or Angular app. The only difference is that yours is written in a more modern language with less footguns that only managed to be like this because it didn't have to provide unprecedented levels of compatibility with 20 years worth of legacy code of all kinds. -
@Lensflare
- Profile and user management specific to DevRant
- Weekly rants and community projects features
- Notification handling specific to DevRant's system
The codebase appears to be well-structured with a clear separation of concerns. The high percentage of declarative UI code (40%) is typical for a modern SwiftUI app, while the relatively low percentage of raw business logic (20%) suggests that much of the app's functionality is either handled by the SwiftUI framework or the underlying DevRant API client.
The app seems to be primarily focused on providing a native iOS interface to DevRant's features, with most of the complex business logic being handled by the SwiftDevRant library, which is why the percentage of original business logic is relatively low. This is actually a good thing as it means the app is leveraging existing, tested code for the core DevRant functionality while focusing its efforts on providing a great user experience through its UI implementation. -
@Lensflare
Networking and Data: ~400 lines
Total estimated LOC: ~5,000-6,000 lines
Boilerplate Code (~25%):
- App configuration files (Info.plist, entitlements)
- Standard SwiftUI app structure (SwiftUIRantApp.swift)
- Standard iOS app lifecycle management
Declarative UI Code (~40%):
- SwiftUI view declarations in the UI/Views directory
- Screen layouts and navigation
- Custom UI components (LoadingButton, SegmentedPicker, etc.)
- Style definitions and theme management
- Layout and presentation logic
Original Imperative Algorithms (~15%):
- Custom business logic for handling DevRant-specific features
- Vote management and state handling
- Content filtering and sorting
- Custom data transformation logic
- State management specific to the app's needs
Raw Business Logic (JoyRant-specific) (~20%):
- DevRant API integration specifics
- Custom content handling for rants and comments -
@Lensflare
— Please scan the codebase and give me the rough breakdown consisting of the following:
1. Total LOC count
2. How much of the codebase can be considered boilerplate, e.g. all sorts of administrative code not directly responsible for the business logic of this particular app and instead common of every app written using the same stack;
3. How much of the codebase is declarative UI, e.g. code fulfilling roughly the same role as HTML + CSS does in web-based apps;
4. How much of the codebase can be considered original imperative algorithms, e.g. business logic that doesn't act as a wrapper to native APIs such as networking or other OS APIs
5. Overall, what percentage of the code is raw business logic that makes JoyRant JayRant?
— Based on my analysis of the codebase, I can provide the following breakdown:
Total LOC Count:
Core app files: ~1,500 lines
UI Views: ~1,000 lines
Screens: Multiple directories with varying sizes, approximately 2,000+ lines -
@Lensflare I did some exploring of JoyRant's code with Cursor:
— Do you see the code?
— Let me check what files are available in the workspace.
I can see that this appears to be a SwiftUI project called JoyRant, likely a client for DevRant. I can see several key files and directories:
A SwiftUIRant directory which likely contains the main app code
A SwiftUIRant.xcodeproj directory containing the Xcode project configuration
Standard repository files like .gitignore, LICENSE, README.md, and a privacy.md file
Would you like me to examine any specific files or parts of the codebase? I can help you better if you let me know what specific aspect of the code you'd like to look at. -
@CoreFusionX oh yes it will if you write quicksort from scratch in C
-
@iiii non-web Python development is no different:
- statistics is just talking to numpy
- ai is just talking to torch/tf
- scripting is just scripting -
@Lensflare bold of you to assume I don’t do backend every day
-
Remember kids, sorting array in Python is always faster than sorting array in C, because Python's sort was written by someone else who's smarter than you, went through years of scrutiny and iteration, and doesn't have stupid novice algo complexity errors.
Grow up. -
I never understood the programming language discussion thing. In modern programming, all you do is gluing APIs together, no matter if they're third party or built-in. My JS code is literally 95% fetch() followed by querySelector.
All built-in APIs that do something useful are just linking C++ modules. If you're not doing stupid shit, Python is exactly as fast as C++ or Rust.
The only scenario where speed matters is algos. Guess what? You should write your algos in C and link them to your Node/Python/Go/whatever code. And don't even get me started on reinventing algos. Do you really think you can write an algo in one evening that will be more efficient than what the guy whose PhD thesis it was a part of?
Just because some engine parts require the precision only a million-dollar CNC machine can provide, doesn't matter you have to cut the whole car out of a solid block of high-performance engine block alloy. -
@AvatarOfKaine more secure? Ever heard of Ubuntu pro? They patch vulnerabilities faster than Fedora does
With GNU/Linux, you have two options: Ubuntu and Linux From Scratch. You either build everything yourself to gain ultimate control, or you let someone else build everything for you. Everything in between is the worst of both worlds. -
@AvatarOfKaine Ubuntu is more compatible and more secure
-
Why not ubuntu?
-
@lorentz there is no context when a successful conversation between those two people is a priority. The priority is that both of them live in their respective states, peacefully, under surveillance, paying taxes.
-
@lorentz really hot and really cold for The American Taxpayer™ — the ruler of the world. They don’t even know what continent Nepal is in. They barely know Nepal exists. Smartest of them know that Nepal has a weirdly shaped flag, but that’s about it.
-
@cuddlyogre nasa uses metric
-
@retoor femtofeet, kiloinches, centigallons, attoounces