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
Search - "elegant"
-
Dear people who complain about spending a whole night to find a tiny syntax error; Every time I read one of your rants, I feel like a part of me dies.
As a developer, your job is to create elegant optimized rivers of data, to puzzle with interesting algorithmic problems, to craft beautiful mappings from user input to computer storage and back.
You should strive to write code like a Michelangelo, not like a house painter.
You're arguing about indentation or getting annoyed by a project with braces on the same line as the method name. You're struggling with semicolons, misplaced braces or wrongly spelled keywords.
You're bitching about the medium of your paint, about the hardness of the marble -- when you should be lamenting the absence of your muse or the struggle to capture the essence of elegance in your work.
In other words:
Fix your fucking mindset, and fix your fucking tools. Don't fucking rant about your tabs and spaces. Stop fucking screaming how your bloated swiss-army-knife text editor is soooo much better than a purpose-built IDE, if it fails to draw something red and obnoxious around your fuck ups.
Thanks.62 -
So I told my wife one week ago: "Yeah, you should totally learn to code as well!"
Yesterday a package arrived, containing a really beautiful hardcover book bound in leather, with a gold foil image of a snake debossed into the cover, with the text "In the face of ambiguity -- Refuse the temptation to guess" on it.
Well, OK, that's weird.
My wife snatches it and says: "I had that custom made by a book binder". I flip through it. It contains the Python 3.9 language reference, and the PEP 8 styleguide.
While I usually dislike paper dev books because they become outdated over time, I'm perplexed by this one, because of how much effort and craftsmanship went in to it. I'm even a little jealous.
So, this morning I was putting dishes into the dishwasher, and she says: "Please let me do that". I ask: "Am I doing anything wrong?"
Wife responds: "Well, it's not necessarily wrong, I mean, it works, doesn't it? But your methods aren't very pythonic. Your conventions aren't elegant at all". I don't think I've heard anyone say the word "pythonic" to me in over a decade.
And just now my wife was looking over my shoulder as I was debugging some lower level Rust code filled with network buffers and hex literals, and she says: "Pffffff unbelievable, I thought you were a senior developer. That code is really bad, there are way too many abbreviated things. Readability counts! I bet if you used Python, your code would actually work!"
I think I might have released something really evil upon the world.29 -
Me and my love-hate Linux.
I lost virginity really early. In the age of 5 it was my first time with windows 95. I spend almost 10 years with Windows before something happened that would change everything. I met Linux. Her forename was Arch. I had a crush on her right from the beginning. It didn't take long for me to abandon windows. Arch had everything I wanted. She had latex which was pretty hot and looked simply and elegant on her. Sometimes she was really hard to deal with and almost drove me crazy, but I knew I fell in love.
Until that day. I had to write a short paper which was quite fun and Linux helped me alot. It was a breeze to work with her. The evening before the deadline she was quite thoughtful. She sometimes was, so I thought it'll be alright, but this time was different. She struggled a bit, so I put her to sleep and she never woke up. I brought her to the emergency lab which was open 24/7. Since no one was there I had todo the surgery myself. After 5 hours I was almost to tired to continue when she finally woke up. I asked her about the things she should remember for me - then I killed her. I started to hate Linux for what she had done to me. The unbelievable stress and horror.
I returned to Windows. Besides that she got a bit more curious what I was doing when and where nothing really changed and she was glad to have me back. I just was happy how simple our relationship was.
One day then, I couldn't believe it at first, I met Archs sister. Manjaro. No matter how strange that is, but it was as if I would meet Linux again for the first time. She was just a bit simpler but as flexible as arch. Since then we are happy together. It seems that we both just grew up a little.
And with Windows? She got even more curious! Actually I have the feeling she is stalking me now, but I don't regret anything!15 -
Colleague: OOP is so elegant, isn't it? *Stares at me with a greedy smile*
Me: ?
Colleague: look how classy it gets!
Kms2 -
I challenged my girlfriend (and myself) for the FizzBuzz thingy. I did it in js (because I suck at js) and she in Java. I never saw such a way to write FizzBuzz. Turns out she forgot there is a thing called modulo operator.
I know there are more elegant ways to solve it! Feel free to post your favorites.46 -
A year ago I would have said:
"Because I love solving logic puzzles, there's no greater joy than finding a very simple, elegant translation of a user's requirements into code"
Then 2020 came. I'm SO FUCKING FED UP with coworkers and managers who miss all the required competence to organize and communicate about projects as they are fundamentally incompatible with the concept of working from home.
I'm quite sure I'm the last one to give up at my work.
The company chat has completely died down. I've tried setting up meetings, but even my bosses show up irregularly, confused about why I'm calling them in the middle of their Netflix marathon.
So if you can't beat 'em, join 'em. My answer is now:
"I'm a developer because I get nearly 6 figures, for going through my Steam Library while completely shitfaced at 11AM. When I sober up in the afternoon, I work on some hobby projects. I get to spend 500/m on ordering sandwiches"8 -
I love coding
But I hate coding
But I love coding
But I hate my buggy IDE
But I love coding
But my back hurts from all that sitting
But I want to work on my side project
But at times, it's frustration.MaxValue
But anything remotely related to coding I find interesting
But it's so hard to abide by good practices
But I love coding
But progress is so fizzlingly slow
But I love that elegant solution of the other day
But it took me 57 attempts to arrive at that elegant solution
But the shit I'm building is so cool
But
But
😦1 -
When you show the senior developer your clever solution to a problem and they come back with "you can also do XYZ" and his solution is much more elegant. Appreciate your superiors kids.4
-
Being one of the top devs (and a good student admired by most lecturers) at college, my most humbling experience was when I joined my first job. I thought I knew SQL, I thought I knew C#. I realized in the first week, the thing I didn't know was "I don't know jack".
Thanks to a couple of great mentors (it took a few of them to bring me up to speed :P), I learned that the more I learn something, the more I will realize how much more there is to learn. I used tools to create storyboard animations in WPF, and my mentor would write it all in XAML! I'd write messy SQL and the other mentor just reduces it to a couple of elegant lines. They were like tech gods to my college self, all while being humble and friendly.
They also imbibed in me a sense of responsibility to carry on the culture of mentoring my juniors, which taught me much more than just the technical side of our profession.3 -
I wrote a piece of code. A logic. My senior changed it. And.. I am glad she did.
My descriptive variables and her conditional breakup of logic made up for a very beautiful piece of code. Simple and elegant. So much so that it makes total sense without any need of a comment.
Never thought I would be loving a 5-lines code piece this much.
This is one of those days when collaboration happens for the betterment.
Simply. Beautiful.4 -
How my keyboard evolves:
0. Like any normal man, I started with a cheap standard Qwerty keyboard. As I began learning programming, I wanted something more elegant, so...
1. I've been using layout Dvorak (and then Programmer Dvorak) for like 5 years+ now. Anyone has intention to type on my machine soon gives up or even is blocked by me from the very start. It always takes a couple of minutes to explain to them what's going on here. They think I'm weird. I feel untouchable :)
2. My first mechkey was a 104-key Filco. Time flew by and I wanted my thing to be more compact so I went for a 66% and a TKL.
3. Recently I find out that though my keyboard is not a full-sized, there're yet some keys I've never touched (the bottom right modifiers, scroll lock, etc), so I look for a leaner one: HHKB and its alike but with slight remappings. Now I'm satisfied with the tiny, corners-trimmed keyboard but others look at it and ask how it is even possible to scroll the web page using the thing.
Prob 1: my boss can never type on my keyboard. Sometimes he still grumbles when he cannot correct my fouls right on my machine.
Prob 2: my keyboards at home and at work are not the same and some keymapping cannot applied to one of the two. That's async.21 -
Root gets ignored.
I've been working on this monster ticket for a week and a half now (five days plus other tickets). It involves removing all foreign keys from mass assignment (create, update, save, ...), which breaks 1780 specs.
For those of you who don't know, this is part of how rails works. If you create a Page object, you specify the book_id of its parent Book so they're linked. (If you don't, they're orphans.) Example: `Page.create(text: params[:text], book_id: params[:book_id], ...)` or more simply: `Page.create(params)`
Obviously removing the ability to do this is problematic. The "solution" is to create the object without the book_id, save it, then set the book_id and save it again. Two roundtrips. bad.
I came up with a solution early last week that, while it doesn't resolve the security warnings, it does fix the actual security issue: whitelisting what params users are allowed to send, and validating them. (StrongParams + validation). I had a 1:1 with my boss today about this ticket, and I told him about that solution. He sort of hand-waved it away and said it wouldn't work because <lots of unrelated things>. huh.
He worked through a failed spec to see what the ticket was about, and eventually (20 minutes later) ran into the same issues Idid, and said "there's no way around this" (meaning what security wants won't actually help).
I remembered that Ruby has a `taint` state tracking, and realized I could use that to write a super elegant drop-in solution: some Rack middleware or a StrongParams monkeypatch to mark all foreign keys from user-input as tainted (so devs can validate and un-taint them), and also monkeypatch ACtiveRecord's create/save/update/etc. to raise an exception when seeing tainted data. I brought this up, and he searched for it. we discovered someone had already build this (not surprising), but also that Ruby2.7 deprecates the `taint` mechanism literally "because nobody uses it." joy. Boss also somehow thought I came up with it because I saw the other person's implementation, despite us searching for it because I brought it up? 🤨
Foregoing that, we looked up more possibilities, and he saw the whitelist+validation pattern quite a few more times, which he quickly dimissed as bad, and eventually decided that we "need to noodle on it for awhile" and come up with something else.
Shortly (seriously 3-5 minutes) after the call, he said that the StrongParams (whitelist) plus validation makes the most sense and is the approach we should use.
ffs.
I came up with that last week and he said no.
I brought it up multiple times during our call and he said it was bad or simply talked over me. He saw lots of examples in the wild and said it was bad. I came up with a better, more elegant solution, and he credited someone else. then he decided after the call that the StrongParams idea he came up with (?!) was better.
jfc i'm getting pissy again.9 -
Recently I've played around with the Seam Carving algorithm for the content-aware image resizing.
It turned out that the algorithm is pretty powerful, elegant but yet simple. One of the interesting parts was that it might be optimized with the Dynamic Progrming approach. Also, it may perform a simple object removal from the image without even modern ML algorithms.
I've tried to describe my experience here in the interactive article:
https://trekhleb.dev/blog/2021/...5 -
I've found and fixed any kind of "bad bug" I can think of over my career from allowing negative financial transfers to weird platform specific behaviour, here are a few of the more interesting ones that come to mind...
#1 - Most expensive lesson learned
Almost 10 years ago (while learning to code) I wrote a loyalty card system that ended up going national. Fast forward 2 years and by some miracle the system still worked and had services running on 500+ POS servers in large retail stores uploading thousands of transactions each second - due to this increased traffic to stay ahead of any trouble we decided to add a loadbalancer to our backend.
This was simply a matter of re-assigning the IP and would cause 10-15 minutes of downtime (for the first time ever), we made the switch and everything seemed perfect. Too perfect...
After 10 minutes every phone in the office started going beserk - calls where coming in about store servers irreparably crashing all over the country taking all the tills offline and forcing them to close doors midday. It was bad and we couldn't conceive how it could possibly be us or our software to blame.
Turns out we made the local service write any web service errors to a log file upon failure for debugging purposes before retrying - a perfectly sensible thing to do if I hadn't forgotten to check the size of or clear the log file. In about 15 minutes of downtime each stores error log proceeded to grow and consume every available byte of HD space before crashing windows.
#2 - Hardest to find
This was a true "Nessie" bug.. We had a single codebase powering a few hundred sites. Every now and then at some point the web server would spontaneously die and vommit a bunch of sql statements and sensitive data back to the user causing huge concern but I could never remotely replicate the behaviour - until 4 years later it happened to one of our support staff and I could pull out their network & session info.
Turns out years back when the server was first setup each domain was added as an individual "Site" on IIS but shared the same root directory and hence the same session path. It would have remained unnoticed if we had not grown but as our traffic increased ever so often 2 users of different sites would end up sharing a session id causing the server to promptly implode on itself.
#3 - Most elegant fix
Same bastard IIS server as #2. Codebase was the most unsecure unstable travesty I've ever worked with - sql injection vuns in EVERY URL, sql statements stored in COOKIES... this thing was irreparably fucked up but had to stay online until it could be replaced. Basically every other day it got hit by bots ended up sending bluepill spam or mining shitcoin and I would simply delete the instance and recreate it in a semi un-compromised state which was an acceptable solution for the business for uptime... until we we're DDOS'ed for 5 days straight.
My hands were tied and there was no way to mitigate it except for stopping individual sites as they came under attack and starting them after it subsided... (for some reason they seemed to be targeting by domain instead of ip). After 3 days of doing this manually I was given the go ahead to use any resources necessary to make it stop and especially since it was IIS6 I had no fucking clue where to start.
So I stuck to what I knew and deployed a $5 vm running an Nginx reverse proxy with heavy caching and rate limiting linked to a custom fail2ban plugin in in front of the insecure server. The attacks died instantly, the server sped up 10x and was never compromised by bots again (presumably since they got back a linux user agent). To this day I marvel at this miracle $5 fix.1 -
Python, the language, is fine.
Some aspects of it are even kind of elegant.
But Python, the VIRTUALENV ANACONDA BLEEDING ASSHOLE WHEELING PIPPING FUCKING TOOLCHAIN IS MORE RAGE INDUCI̵N̵G̵ THAN ANY O̶͔̔̄T̶̊̆ͅH̵̥͒Ȇ̶̥̓R̷̹̳̎̒ ̴M̴o̸d̵u̷l̸e̶N̴o̷t̴F̸o̸u̸n̶d̶E̵r̷r̴o̵r̴:̵:̶̼̳̙̾̈ ̷̧̲̗̓́̾͂N̶̙̆ó̵̱ ̷͔̔m̴͇̔ơ̸͕ď̷̲ư̷̢ḻ̷̉ê̷̼ ̸̗̓n̷̝̔a̷̙̓m̶̖̄è̷̡d̸̳̋ ̷̝̍ ̷͎̚'̷̻̌ḋ̷͔i̴͓͌ṡ̵͍t̵̘̽ṵ̵̊t̷̹͝i̴̛̦l̴̒͜s̸̩͝.̸̱̚u̵̪͆t̵̥͑ỉ̸͍l̵͚͠'̶͚͘14 -
One of the biggest barriers to the wide(r) scale adoption of functional programming languages like Haskell, F#, and Scala is how snooty and condescending your average FP developer is. And beginner-unfriendly.
Ask them a question about an intermediate topic (in my case, the Free monad) you're likely to get a whole torrent of category theoretic rubbish in return.
This is a common pattern I see when "experts" answer questions.
Now, it didn't bother me much because I've studied a fair amount of category theory and can usually follow such answers, but, for the sake of the general case, I'd like to shove these rules into the heads of everyone writing an answer to a question (not just FP):
1. If you can't illustrate a concept clearly without going into verbal diarrhoea with phrases like "monad homomorphism" and "just a monoid in the category of endofunctors" then you clearly haven't understood it properly (unless, of course, the answer absolutely requires it). An answer is not the place to show off your knowledge of a topic.
2. Please remember that everyone was a beginner at some point. Including you. Understand that some concepts can be extremely frustrating at first and yet incredibly simple after you grok them (eg. monads).
3. If the person asking the question is a beginner, using complex concepts in an answer just because it's a more "elegant" way to explain it doesn't really help them. They are more likely to get confused and drop the topic.
(Kudos to those people who give highly relevant, insightful, simple, and intuitive answers, you guys are the best).2 -
Well, shit... I may have just shot myself in the foot. 🤔
5 years worth of asking my boss to get a Mac development machine for me, thereby allowing me to better create and maintain the hybrid mobile apps I've been building for him for years...
I finally got a definitive "yes, we'll do that" about 2 or 3 weeks back.
Now, running into stupid startup crashes on the aging iPad (6th gen) that I have for testing, I asked if I can just get a "Mac in cloud" subscription IN THE MEANTIME, you know, to help me meet deadlines...
His response: "Ah, yes.. that's a nice elegant solution, now you don't need a Mac! Well done."
F.. M.. L..8 -
My favourite side project that I built solo is called Chat Journal, it's a simple and elegant, one-of-a-kind chat-based journal/notes application for android, built with flutter.
Almost spent around 3 months building and improving the app (and still publishing updates every 2 weeks). It literally defines what I've done outside of work for the past few months.
Do check it out and let me know what you think about it ☺️
Playstore url:
https://play.google.com/store/apps/...17 -
Hardcore loli porn.
Just kiddig. Video games and math study. I believe that the most elegant solutions come in the form of math and the challenge they impose as well as the satisfaction of getting the correct result (or the estimate for it) are comparable to running a succesfull application.11 -
Three days thinking of a solution to a problem in HackerRank...
Came up with a very elegant O(n+m) solution... failing several test cases...
Check here, there, over there. Everything seems flawless...
Re-read the problem statement letter by letter. There it is, I misread the requirement. FML8 -
Python is such a elegant language, but why can't I have an if-clause on a simple for-statement when I can have it in a list comprehension??22
-
Me: I want to learn Clojure
Me: But I need real tasks to learn
Me: OK, reconnecting device with wireless adb
Inner me: Are you kidding? 5 lines with bash
Me: In clojure it will be more elegant and faster to write similar tasks in future
*2 hours later*
Me: IT WORKS
Internal me: Really? This is ugly as fuck. And the only clojure feature it uses - sh and re-find
Me: But... It... Works... *cries* -
A couple of months back we were discussing sh with a third party vendor for a very large ass fuck system that another department uses. I had been called into the meeting because the entire I.T department counts on me to at least act as an assessor to the many issues that other departments might have.
the department for which i was working with manages the databases that our institution uses, and in this particular question the DBA (my best friend mind you) was part of the meeting.
Mind you, issues that the third party vendor were having were all fixed by our DBA, and he had documented and mentioned these items to me as I provided assistance to him through the 3 weeks prior to this meetings. Once such case was that we needed a transitioning as well as intermediary system for some processes to happen from one DB to the other and a lot of other technical babble. Well, the DBA used to be an excellent (fuck you) VB developer who recently re-learned the language into .net. He had shown me many of his old programs and even by the limitations of the language they were elegant and fascinating. They really are and ya'll devrant fam know that I ain't one to hate on tech at all.
When the DBA explained how he went around some of the issues by generating programs that could assist him, he mentioned the tech stack, I had coached him into knowing that being descriptive about the tools he used would be beneficial to everyone else. While he mentioned VB.NET the vendor snickered and my boy got quiet.
Then I broke the silence, fuck you. "what was that?" and the dude said "nothing, sorry"
So I said "no no, I want to know, I am not going past this point until you, the dude getting paid over $100 an hour for something YOU couldn't fix explain to me the little hehe moment you had"
The mfker went silent. then explained how he was aware that people were moving past vb.net and shit like that, me "imagine that, someone used a tech stack that your ignorance thought obsolete to fix something you could not solve, even though we are paying you for it, were it me or in my hands, and mind you i have direct access to the VP so this foolishness might change, I would have cut you and your little sect loose months ago, I have no patience, or appreciation from leeches like you or the rest of the "professionals" that work for your company or other similar entities, much less, as you can see, my patience runs even less when you people snicker at the solutions that our staff has to take when you all slack"
The entire meeting was uncomfortable as high heaven.
Fuck you, if someone I know manages to run shit on fucking liberty basic then so fucking be it. I will slap you 10 fucking times over, and then fuck your girl, if you try to put someone else down for the tech stacks you use.
I hate neck beards, BUT I hate fake ass neckbeards ever more
*Colin Farrell in true detective mode: FUCK....YOU13 -
“Yes Haskell is my favorite language, so elegant yet so powerful, a pure form of expression of my complex thoughts”
*proceeds to code nothing but crappy hacky CRUDs in php5.4 for five years straight* -
All I'm wondering is how did @dfox manage to keep this avatar feature a secret while it was in the works? If I was in the process of coding something so elegant, I'd be telling people left and right! Bravo!4
-
The moment when all your tests cases for the first assignment of the term pass, your code is refactored and have adequate comments but you only get a 52/100 because your marker says your code is not "elegant enough" as a feedback.
Yeah, those were his exact words with no specific context or reasons. He didn't even explain when I went to him for explanations. I don't mind a bad grade, I could be wrong and that is fine.
#rantend13 -
I wish all newbies would read clean code. I feel if you understand the concepts you can more easily join an established team and contribute more quickly with less do overs. I realize writing elegant, testable code is like making good whiskey. It takes time.5
-
Consumers ruined software development and we the developers have little to no chance of changing it.
Recently I read a great blog post by someone called Nikita, the blog post talks mostly about the lack of efficiency and waste of resources modern software has and even tho I agree with the sentiment I don't agree with some things.
First of all the way the author compares software engineering to mechanical, civil and aeroespacial engineering is flawed, why? Because they all directly impact the average consumer more than laggy chrome.
Do you know why car engines have reached such high efficiency numbers? Gas prices keep increasing, why is building a skyscraper better, cheaper and safer than before? Consumers want cheaper and safer buildings, why are airplanes so carefully engineered? Consumers want safer and cheaper flights.
Wanna know what the average software consumer wants? Shiny "beautiful" software that is either dirt ship or free and does what it needs to. The difference between our end product is that average consumers DON'T see the end product, they just experience the light, intuitive experience we are demanded to provide! It's not for nothing that the stereotype of "wizard" still exists, for the average folk magic and electricity makes their devices function and we are to blame, we did our jobs TOO well!
Don't get me wrong, I am about to become a software engineer and efficient, elegant, quality code is the second best eye candy next to a 21yo LA model. BUT dirt cheap software doesn't mean quality software, software developed in a hurry is not quality software and that's what douchebag bosses and consumers demand! They want it cheap, they want it shiny and they wanted it yesterday!
Just look at where the actual effort is going, devs focus on delivering half baked solutions on time just to "harden" the software later and I don't blame them, complete, quality, efficient solutions take time and effort and that costs money, money companies and users don't want to invest most of the time. Who gets to worry about efficiency and ms speed gains? Big ass companies where every second counts because it directly affects their bottom line.
People don't give a shit and it sucks but they forfeit the right to complain the moment they start screaming about the buttons not glaring when hovered upon rather than the 60sec bootup, actual efforts to make quality software are made on people's own time or time critical projects.
You put up a nice example with the python tweet snippet, you have a python script that runs everyday and takes 1.6 seconds, what if I told you I'll pay you 50 cents for you to translate it to Rust and it takes you 6 hours or better what if you do it for free?
The answer to that sort of questions is given every day when "enganeers" across the lake claim to make you an Uber app for 100 bucks in 5 days, people just don't care, we do and that's why developers often end up with the fancy stuff and creating startups from the ground up, they put in the effort and they are compensated for it.
I agree things will get better, things are getting better and we are working to make programs and systems more efficient (specially in the Open Source community or high end Tech companies) but unless consumers and university teachers change their mindset not much can be done about the regular folk.
For now my mother doesn't care if her Android phone takes too much time to turn on as long as it runs Candy Crush just fine. On my part I'll keep programming the best I can, optimizing the best I can for my own projects and others because that's just how I roll, but if I'm hungry I won't hesitate to give you the performance you pay for.
Source:
http://tonsky.me/blog/...13 -
Boss: we can't accept your MR request until you fix the problems we highlighted, everything is blocked and the client is getting angry
My brother in Christ, I understand your concerns but I need you to understand: you decided to block a perfectly working and documented PR because you didn't like having "<!-- -->" in a couple of HTML files and menial bullshit like that.
It may not be the most elegant thing ever but don't put on me the responsibility of your blocks or I'll smash your face with the coffee mugs I've used to work until midnight so that you could deliver the product in time after someone else delayed the deadline twice already.
Thanks and get fucked ASAP.3 -
Anyone ever run across some code that was so succinct and elegant, that you couldn't imagine ever doing something like that and start to feel bad?
<Look up who committed it>
Oh, well, damn... I used to be so good at this coding thing. -
Best/worst career choices.
Worst: working overtime and performing awesome feats of superhuman strength to the point of being burnt out and bitter. Turns out I'm just a human being. Cool.
Best: learning, implementing, pushing my comfort zone, and sharing/learning with others. Standing by my design decisions and seeing them blossom into elegant/robust solutions is so incredibly satisfying, and kinda scary. Believe in your abilities, yo. -
In the course of our development, one day we switched to a different, more elegant bootstrap theme. One of our users called me to appreciate the improvement. He said, the new firmware on the system looks great.
-
love-hate relationship with Python semi-rant
The year is 2020.
I have already grown accustomed to the idea that in order to do ML without worrying too much about having to completely jump through hoops with the tech stack I have chosen that I would have to settle with Python, which I like.....for small scripts that don't do much other than piping data around or doing simple admin tasks, that is generally our use of Python at work.
For anything bigger I would prefer something else. Not because I find anything inherently horrible in Python, I find it to be a nice language overall, that has made it possible for many to find a passion inside of the world of development and possibly an interesting in overall engineering and computer science principles. Much respect Python, good game Guido VR, what you did changed the world.
But it is that damn whitespace that gets me, the need to use it as a way to properly write blocks, I just can't make myself like syntactical whitespace no matter what I do. I can do without static typing, shit I did it for the longest time with JS way tf before Node and Typescript were a thing, and I have done it before PHP's attempt at having type hints, which still leave much to be desired. Ruby(imho) the most elegant language around doesn't have it and that is fine really, it does not bother me as much, if mypy gets powerful and widely adopted enough it will then be a non-issue.
But another thing that the 4 languages i mentioned before have is non-existent syntactical whitespace......I just can't stand it.
So, why am I saying all of this nonsense? Today I wanted to recreate a conda environment and landed on the use of YAML............which has syntactic whitespace and I lost my shit.
I seldom bitch about languages and technologies, shit, I used VBScript before, not only did I get paid handsomely for it, but I fucking enjoyed it(probably cuz I am a masochist).
But two things I cannot abide: VBA and syntactic whitespace.
Once I get enough knowledge for it I will push for the same level of tooling in Python to be ported to Scala.
Thank you for coming to my whiny post about something as small as bitching about syntactic whitespace.8 -
Those little moments when you finish writing and refactoring the code and the result is elegant and just works
-
Announcing devRant 2.0! It is time for exciting overhaul, sponsored by our good friends at Tencent, that will bring life back to this amazing platform.
- elegant simplicity of Viber meets excellent minimalism of AWS
- custom avatars for ++ members
- exciting mini-games
- animated stickers
- ChatGPT integration for ++ members
What a time to be alive!9 -
When I realized my job isn't to code, it is to hack for hacks.
As smart developers our job is to be accountable to non-technical product management types who care nothing for elegant system design or DRY code. They expect features get done fast and "technically complete." They use terms like "minimum viable product (MVP)" to imply we'll go back and improve things like refactoring and tech debt later.
They will not. Most likely they won't even be around. Producers and scrumlords have the highest turnover rate of any role on a team. By design they get bored or frustrated easily and are constantly looking for greener pastures. Many people in self-proclaimed "non-technical" roles like this never had the patience and attention span to learn a real vocation, and they've discovered a career path that doesn't require one.
These are our masters. As developers, we will answer to them forever and always.1 -
So I ended up installing Arch Linux as the primary OS in my laptop, and to be honest, I'm not very crazy about it. Because I'm someone who likes an elegant UX, I spent three days and over 50 reboots and 5 reinstalls just trying to get Plymouth to work correctly (in the end, I just said screw it and gave up.) I know, I probably messed something up in the installation or configuration, but I didn't really want to deal with it anymore.
I'm not a big fan of the pacman package manager; I prefer apt. There were several applications I couldn't get to work properly, such as Steam, the Tor Browser, and Wine. All in all, I've basically wasted a week trying to get Arch Linux to work as the daily driver on my laptop, but I guess it's just not the distro for me.
I'm going to give Arch one last shot with the Manjaro distro. I'm hoping that Manjaro's simplified installation and configuration will produce a more usable (in my case) OS, and if not, I'll probably be going back to something Debian-based.
I'm not at all saying Arch is a bad distro. I know many people use it as their daily driver, and I have absolutely no problem with that. I'm not writing this to debate which distro is better, I'm just writing about my experience with it. Arch just may not be the distro for someone like me. At least I gave it a shot, right?10 -
I just want to say,
wow the Cloudflare API is awesome.
In less then an hour (from a blank file - to automation and tested) I was able to setup a DDNS task that basically just pulls my public ip (see https://devrant.com/rants/2050450/... for details) comparing it to the current DNS records for and update them if anything has changed in the past 30 minutes.
So kudos to these guys letting me in next to no time having a simple yet elegant way of dealing with my missing static ip.
Why can’t all APis be this simple?3 -
Write a piece of code that works just fine and it's fairly extensible in 20 minutes.
Then proceed to spend the rest of your night rethinking and replacing said piece of code numerous times, with slightly more elegant code.
7 hours later and I'm still not done. Although a fine way to improve your skills, I seriously need to stop doing that for every single thing I write and start managing my time better. Got lots of other stuff I need to be working on...
Surely I can't be the only one doing this4 -
Sometimes at the end of the day if a solution to a problem seems inefficient I just leave the task rather than writing buggy code. It gives me a day's time, away from the screen, to come up with much better and elegant solution which I eventually code up the next day.
After years of experience I have realised that its better to wait for a day and not write inefficient code rather than trying to fix a hell lot of bugs later.4 -
Absolutely the best quote from Tao Of Programming...
A novice asked the Master: "Here is a programmer that never designs, documents or tests his programs. Yet all who know him consider him one of the best programmers in the world. Why is this?"
The Master replied: "That programmer has mastered the Tao. He has gone beyond the need for design; he does not become angry when the system crashes, but accepts the universe without concern. He has gone beyond the need for documentation; he no longer cares if anyone else sees his code. He has gone beyond the need for testing; each of his programs are perfect within themselves, serene and elegant, their purpose self-evident. Truly, he has entered the mystery of Tao."1 -
I appreciate “elegant” code the same way I appreciate fine wine: pretending to care while quietly sitting, passively listening to snobs drone on about barrel aging and vineyards and languages, statically-typed while simultaneously shutting my brain off, ordering another shot of tequila and working up the courage to fight my dad.
-
This might not resonate with many ranters here... but FUCK Taylor Otwell & Graham Campbell.
Like, not on a personal level. Maybe they're great to drink a beer with. But as framework devs... fuck everything about them.
Laravel seems so nice, it takes away many annoyances of developing in PHP. Collections are the array object you've always needed. The route bindings, middlewares, request validation objects, it's all sweet.
But eventually your company serves a few million customers, you run into specific performance problems or missing features on a deeper level. You open the issue tracker... and see a few hundred issues about the problems you are encountering, they already exist.
Some just have a short paragraph with a request for a feature, some complete PRs with tests in the style of the framework. All of them closed.
Reasons?
"We don't think anyone will ever need this"
"This seems complicated, you can just do <super non-DRY hacky code>"
FUCK YOU WITH YOUR TODO APP SNIPPETS AND USER-POST-ARTICLE EXAMPLES. I'M NOT BUILDING THE NEXT WORDPRESS. I'M DEALING WITH THE REALITY OF GRAPH DATABASE CLUSTERS, COMPLEX AUDITING LOGS AND A GAZILLION QUERIES PER SECOND.
Sigh... the problem with all these "simple" and "elegant" languages & frameworks is that they don't fucking scale.
Not because the language, server or framework intrinsically can't do it, but because the maintainers are stuck thinking in terms of their retarded non-realistic example apps.
I think I'll go back to my cave and write some Haskell or Rust to calm down.2 -
I need some advice here... This will be a long one, please bear with me.
First, some background:
I'm a senior level developer working in a company that primarily doesn't produce software like most fast paced companies. Lots of legacy code, old processes, etc. It's very slow and bureaucratic to say the least, and much of the management and lead engineering talent subscribes to the very old school way of managing projects (commit up front, fixed budget, deliver or else...), but they let us use agile to run our team, so long as we meet our commitments (!!). We are also largely populated by people who aren't really software engineers but who do software work, so being one myself I'm actually a fish out of water... Our lead engineer is one of these people who doesn't understand software engineering and is very types when it comes to managing a project.
That being said, we have this project we've been working for a while and we've been churning on it for the better part of two years - with multiple changes in mediocre contribution to development along the way (mainly due to development talent being hard to secure from other projects). The application hasn't really been given the chance to have its core architecture developed to be really robust and elegant, in favor of "just making things work" in order to satisfy fake deliverables to give the customer.
This has led us to have to settle for a rickety architecture and sloppy technical debt that we can't take the time to properly fix because it doesn't (in the mind of the lead engineer - who isn't a software engineer mind you) deliver visible value. He's constantly changing his mind on what he wants to see working and functional, he zones out during sprint planning, tries to work stories not on the sprint backlog on the side, and doesn't let our product owner do her job. He's holding us to commitments we made in January and he's not listening when the team says we don't think we can deliver on what's left by the end of the year. He thinks it's reasonable to expect us to deliver and he's brushing us off.
We have a functional product now, but it's not very useful yet and still has some usability issues. It's still missing features, which we're being put under pressure to get implemented (even half-assed) by the end of the year.
TL;DR
Should I stand up for what I know is the right way to write software and push for something more stable sometime next year or settle for a "patch job" that we *might* deliver that will most definitely be buggy and be harder to maintain going forward? I feel like I'm fighting an uphill battle in trying to write good quality code in lieu of faster results and I just can't get behind settling for crap just because.9 -
!Rant
Having been working with JavaScript so intensively, I have a newfound appreciation for Python. It really is an elegant language.
I'm looking forward to returning to Python one day in the near future.3 -
"A good designer finds an elegant way to put everything you need on a page. A great designer convinces you half that shit is unnecessary." - Mike Monteiro3
-
When you're really fuckin proud of that extremely clean, elegant, efficient 30 lines of code. It might not be important, but holy shit it's pretty!!3
-
I really appreciate the idea of unlocking items for avatars with a raising amount of ++s!
It's an awesomely elegant way to motivate devs without pushing them and keep them in the regular user base of devrant.
Dear sirs @dfox and @trogus.
You done a very fine job :)1 -
I am making an LDAP user manager and porting application for my workplace.
The thing is, i made the first version of it in PHP already. Shit works fine and it without an issue.
But
I had an itch to redesign it using another tech stack that would be speedier, more tested and using a more established platform.
Enter Clojure, a Lisp dialect for the JVM. In a single day I managed to get 80% of the application done. We have about 80k users inside of our ldap system(maybe more) and I tested it with 150 accounts, so far so good.
If this works I will be the first person to deploy a Clojure application, not only for my organization, but for the city as a whole while simultaneously being able to say that I got a Lisp app deployed and working :D
I am loving this. Really wanna have a Lisp app out there and add it to my resume.
The head of my department, an old timer and really ancient dev smiled heavily when I showed him the codebase. Not only is it minimal, it is concise and elegant :D
I love Clojure
And Texas17 -
Never had the situation to give advice to a new dev. But I have an idea anyways: Give that dev a problem, which is above beginner level and watch the dev. If the dev rage quits and doesn't want to try again, then the new dev will not be happy with the job. But if the dev achieves to collect all knowledge to handle the problem, even if the solution is not the most elegant way, then the dev will have fun with the profession.2
-
Wow apple really did - they arrived where microsoft was 20 years ago.
Apple ads used to be about the experience, the lifestyle, simple and elegant.
Now all we get is ‚3.7 times faster‘, ‚13x faster graphics card‘, max and pro CPUs (probably home, home pro and home premium too some time …).
‚advanced thermal architecture‘ ….
Bullshit bingo deluxe …🤦13 -
Some fuckin ppl man wtf, as a said here before I'm not the most skilled or elegant developer at my company but fuck me am not as dumb as some fuckin cunts
We have 2 separate packages dedicated to add reusable components but some asshole with shit for brains just keeps adding these components in one of the main repos and it's like r u retarded or something, like u know that's not what's meant to happen cause you've used the components from those other repos. Sometime I jus wanna die and I've only been working as a dev for about 2 yrs 🤦♂️3 -
Here's something not quite a rant, but relatable. And an issue. For me at least.
------
You get really proficient with a set of tools.
- Can solve things in an efficient & elegant manor.
But it's now boring.
You find some new exciting stack, research like a madman. Possessed.
Your perfectionist self, seldom doesn't want to settle.
You burn out from pressure & deadlines.
You feel inadequate, imposter syndrome settles in.
You reminisce of the easy days when you (thought) knew everything.
Decide to rebuild using that past stack.
Gets bored.
You notice something new & exciting.. loop iterates to next repetition.1 -
I just can't stress enough how fascinated I am by biology and biochemistry.
I mean, we, who call ourselves engineers, are no more but a gang of toddlers having a blast with jumbo legos on Aunt Lucy's dining room carpet on a sunny Sunday afternoon. Our solutions using "modern tools" and "modern engineering" are mere attempts to *very* remotely mimic what beautiful and elegant solutions are around us and inside of each of us.
IC/EC engines, solar batteries, computers and quantum computers, spaceships and ISSes, AI/ML, ... What are they? just the means to leverage what's been created all around us to create something that either entertains us, encourages our laziness or helps us to look at the other absolutely fascinating engineering solutions surrounding us so we could try and "replicate" their working principles to further embrace our laziness and entertain us.
Just look at the humble muscle - a myofibril made out of actin and myosin. The design is soooo simple and spot on, so elegant and efficient, the "battery" and signalling system are so universal and efficient.
Look at all those engineering miracles, small and big. Look how they work, how they leverage both big and small to create holistic, simplistic and absolutely efficient mechanisms. And then come back to me, and tell me again that all these brilliant solutions came out of nothing just by an accident we call "evolution".
How blinded by our narcissism are we to claim that there can't be a grand designer of any kind, that there's nothing smarter than us and that the next best thing than us is an incomprehensible series of accidental mutations over an unimaginable amount of time?
I mean.. could it be that someone/something greater than us created us and everything around us? naaaah.. we are the crown jewel of this universe. Everything else must be either magic or an accident. /s
Don't read this as yet another crazy-about-God person's ramblings. I'm not into religion fwiw. But science has taught me enough critical thinking to question its merit. Look at it all as engineers. Which is more probable: that everything around us happened by an accident or that someone/something preceding us had a say in the design?random biology humanity think about it biochemistry creation big and small shower thoughts narcissism had to be said naive evolution20 -
I love elementary os. Light weight and elegant. I do all my coding and developing in EOS. Current version Loki. Anyone else here using eOS?8
-
Look, I get it. Wordpress sucks. It’s bloated. It’s slow. It’s not elegant. It’s a nightmare to debug and code for. The plugin ecosystem is an insecure, confusing mess of outdatedness and issues.
We can all agree that in a perfect world all power to determine everything about a website, from the code to the content, would be in our power as developers. But we don’t live in a perfect world. People want convenience, even at the cost of performance and security, and they will inevitably resent technologists who refuse to give it to them. We do ourselves and our customers a disservice when we only do what we feel is in our own best interests or preferences and not what will help them with their realities.
Yes, it sucks. Yes, it’s a pain. Yes, it’s in demand and there’s nothing any of us can do to change that.
And that’s all I have to say about that.5 -
why do people hate java? it is the most elegant and simple language one can learn and code powerful apps and software. i don't get it11
-
It is easy to believe something is over-engineered as a junior. You open a solution and get slapped in the face with a wet fish of many classes, with strange names, doing very little, with everything coming together in ways you don't understand.
My advice is to learn about design patterns, clean code, clean architecture, and model driven design. Until that point I don't think you can make such a distinction. And indeed once knowledgeable of patterns and techniques as well as the domain, the same solution can look obvious, elegant and readable.
In a field where everyone is saying 'dont over-engineer', one must be able to tell if something is actually bad, or just uses techniques you don't recognise.
Telling your senior you think something is over done just because you don't understand it is not good. First learn techniques, understand the code, then form opinions that are at least relevant then.
From someone who committed that crime.4 -
GOD ALMIGHTY I HATE SWIFT & XCODE...
Why the fuck does it take a horrendous amount of time to muck about with layout constraints. Why the heck does xcode choose to add constraint layouts to elements that already have pissing constraints! Why does dealing with something as trivial as tables have to be so god damn fucking involved when HTML and CSS let me create and style tables in fuck all lines.
And what the hell is up with how pissing long xcode takes just to figure out that 1 extra line of code I've just added. You jump to another file and xcode finally decides to be an ide again and bitch at the fact that you've forgotten to add some parameter or that they've decided to rename paramter "x" since version fuck nows what.
Working with abstract classes is fun, lets use protocols (because interfaces are too old school) and then lets tack on something we call extensions and then lets make people piss about with convenience initializers.
And lord almighty, what the fuck is up with casting, what all this ?! BS. What's wrong with just checking if the value is null in the first place, or whats wrong with giving something an initial value, oh because having to unwrap shit is more elegant right??
And good god, I need to own a fucking cinema screen just to have the storyboard open, there's less fucking panels on the Sistine Chapel ceiling
then there is in xcode.1 -
I used to think I was the kind of programmer that was good with people. That somehow I was special because I could get on with colleagues and make clients happy.
But fuck people. It’s so easy to be nice, just don’t be not nice. Don’t say rude things and be surprised when I’ve had enough.
For some reason my latest colleagues think it’s too confrontational to talk to each other and instead give management anonymous feedback on who they don’t get on with. Which obviously gets fed back to everyone immediately.
I’m done putting on a smile. Elegant code speaks for itself. I’m getting a PA to talk to people from now on because fuck this.5 -
I just got my stickers in the mail... looking very elegant on my computer. I can't wait to show off at work 😍
Thanks for everything @dfox and @trogus, and thanks to all the devRanters 😉2 -
!dev
I'm always torn at the gym:
As a former rower, it gives me almost physical pain to see people on the rowing machines, flailing around and almost falling off sideways (rowing is an elegant, albeit masochistic sport).
However, as a swiss person, strangers are my natural predator and might eat me alive if I dare speak to them...3 -
I spend far more time on making my workspace look elegant (organising files, editor themes, plugins, syntax color, look and feel, custom changes in .<file>rc files, etc), than in actual learning and creating.1
-
@dfox @trogus : Do we have a feature of auto complete @ mentions ? If not, there can be an elegant feature to provide drop down suggestions to mention / tag user in comments after we type @ in comments of any rant ( not all the users , but author of the rant and those who previously commented on that particular rant previously. For example, if I commented on a rant of dfox, and trogus also comments and types @, me and dfox will be in the drop down, tapping on which will select and tag that user on that comment ). I bet users will love this devRant update. Sorry for long post , I don't have any potato :p3
-
I hate React. I keep reading that people have problem of grasping it, but that's not the case for me. I get it, I understand it, but I hate with passion HOW it's done knowing how nice it's done elsewhere. What really triggers me is how ugly it looks, both from architecture and code level. To me it really say a lot when even code shown in documentation looks ugly, and while reading it you ask ourself constantly "why it's done this way?". When I read React being called an "elegant" solution something explodes in me. Did you saw Svelte? Vue? Damn, even Alpine.js?
I just cannot how overengineered this API is. Even doing simplest things there produces so much junk code written only because this is what library requires. Why? I feel like working with it is a punishment.
And scalability and maintainability? I've never seen large-scale projects more messed up than those wrote with React. And yes, you can blame teams working on them for lack of skills, but it is the library which encourages or not good practices also, and I've never seen such bad situation with other libraries/frameworks.8 -
Question - is this meaningful or is this retarded?
if
2*3 = 6
2*2 = 4
2*1 = 2
2*0 = 0
2*-1 = -2
then why doesnt this work?
6/3 = 2
6/2 = 3
6/1 = 6
6/0 = 0
6/-1 = -6
if n/0 is forbidden and 1/n returns the inverse of n, why shouldn't zero be its own inverse?
If we're talking "0" as in an infinitely precise definition of zero, then 1/n (where n is arbitrarily close to 0), then the result is an arbitrarily large answer, close to infinite, because any floating point number beneath zero (like an infinitely precise approximation of zero) when inverted, produces a number equal to or greater than 1.
If the multiplicative identity, 1, covers the entire set of integers, then why shouldn't division by zero be the inverse of the multiplicative identity, excluding the entire set? It ONLY returns 0, while anything n*1 ONLY returns n.
This puts even the multiplicative identity in the set covered by its inverse.
Ergo, division by zero produces either 0 or infinity. When theres an infinity in an formula, it sometimes indicates theres been
some misunderstanding or the system isn't fully understood. The simpler approach here would be to say therefore the answer is
not infinity, but zero. Now 'simpler' doesn't always mean "correct", only more elegant.
But if we represent the result of a division as BOTH an integer and mantissa
component, e.x
1.234567 or 0.1234567,
i.e. a float, we can say the integer component is the quotient, and the mantissa
is the remainder.
Logically it makes sense then that division by zero is equivalent to taking the numerator, and leaving it "undistributed".
I.e. shunting it to the remainder, and leaving the quotient as zero.
If we treat this as equivalent of an inversion, we can effectively represent the quotient from denominators of n/0 as 1/n
Meaning even 1/0 has a representation, it just happens to be 0.000...
Therefore
(n * (n/0)) = 1
the multiplicative identity
because
(n* (n/0)) == (n * ( 1/n ))
People who math. Is this a yea or nay in your book?25 -
"A good designer finds an elegant way to put everything you need on a page. A great designer convinces you half that shit is unnecessary." - Mike Monteiro
-
I clearly don't understand how StackOverflow works. I posted a solution I came up with in a Q&A style, thinking it's a way for me to contribute to the community.
When I researched the challenge I needed to solve, I didn't find any elegant solutions that would have helped me achieve what I was aiming for.
One commentator said my post wasn't a real question about a real coding challenge, and wasn't compliant with SO guidelines.
Another commented that my search provider was clearly inadequate.
My submission was voted down so I just removed it with the intention of sharing it elsewhere.
It's almost as if StackOverflow resists contributions from newer users. Or, as I suggested at the outset, I clearly don't understand how to be a productive member of that community.10 -
I spend all morning on trying to solve an Algo problem for upcoming interview practice (Euler #3) that comes down to implementing IsPrime.
I remember reading once how Sieve of Eratosthenes
Isa the right way to go do when I first started I wanted to use that.
Then I couldn't think of the right code though so I went with Brute Force (for all numbers upto X see X is divisible by it)
It actually worked but I wanted to just try the "right way".
It's way slower and actually ended up with the wrong answer...
But at this point I don't give a **** anymore.
I guess lesson learned... Use Brute Force first... Then optimise for a problem more elegant solution.10 -
Conclusion:
Cross-Platform mobile development sucks.
I will spend more tie but deliver more elegant app2 -
Today I wrote the most epic code.
The kind that breaks your brain, but when you're done with it you know it's time to go home and kick back coz you've done good.
It used recursion, did backflips to avoid unnecessary db calls, featured no code repitition. Hell I even commented the business rules it was following in there to explain what was happening.
I hope it works tomorrow when I test it 😂😂😂5 -
To be honest, Windows Vista looks undeniably beautiful, no matter how unpopular it might was.
The user interface looked amazing. It looks decent even by today's standards. Windows XP looks more like a toy with its over-saturated colours, but Windows Vista appears elegant.
The stock wallpaper of Vista, "Aurora", is among the most beautiful out-of-the-box wallpapers I have seen.
Remember, Windows 7, arguably the most popular version of Windows, is a rebranding for a slightly altered Windows Vista Service Pack 2. Microsoft realized the reputation of the "Vista" trademark was ruined beyond repair, so they had to rebrand.
Image source: https://reddit.com/r/WindowsVista/... ( https://i.redd.it/dr4vqiqqi0q81.png ).
Also see: "Was Windows Vista THAT bad?" - Linus Tech Tips ( https://youtube.com/watch/... )4 -
Greatest language of all times is still C. It stood against the test of time. Any new language including Rust can hope to ba barely performant than C with too much overload.(I know most cpp abstractions if more efficient handwritten C equivalent but still).
Language is small, simple, elegant.17 -
So annoying when you get 80% of the way through a project then figure out a more elegant way of solving it, but can't change it now because of time constraints1
-
Well this is the thing. I have been starting to replace a lot of my shit with Golang. I think it is a great language because of one small fact: it is a boring language.
With this I don't mean that it is not incredibly fun to use. It is and honestly I feel that a lot of the concepts that I had from C passed quite nicely with some additions. The language does not do anything special and there is no elegant code. It works in a very procedural fashion without taking into consideration any of the snazzy things found in JS, Python, c# etc etc. Interfaces and struct make sense to me, way more than oop does in other languages. I don't need generics with the use of interface parameters and I have hadly found a situation in which I have to strive too far away from the way things are done with Go to be happy with it, then again my projects are not hard or by any means groundbreaking (most of them deal with logistics or content management and a couple of financial apps that I am rewriting in Go from work)
The outcome is fast and easy to read since idiomatic go is for the most part very readable(no people...single letter variable names are by no means a standard and they should feel ashamed from it)
I miss the idea of a framework, but not so much and the docs and internal code for Go is just way top inviting. I believe the code to be readable enough than anyone that has gotten used to the syntax and ideas of the language can just jump in and start learning. This is the first language that I have learnt from studying the code as it is inside of the standard lib, the same I cannot say for any other language or framework.
Also, it play beautifully nice with vs code.
I dunno man, I feel that I am doing something wrong. I have projects built in Node, php, python, ruby and spring java as well as .net core and I still find Golang way more appealing simply because it goes harder than Python with "one preferred way" to do things.
The lang does not make me feel like a pro, i certainly develop in it at pro speeds, but it was made with beginners in mind to built fast and concurrent apps, with the most minimal syntax possible.
I guess my gripe with it is that it gets shunned from this, saying that it ignored years of lang research to make it as dumbed down as possible. Which it did, lack of generics amongst other things certainly make it seem like, but I will not say that it was poorly designed. Not at all, I believe it is a testament of amazing engineering. To be able to create such a simple yet amazingly powerful language.
Wish there were more to it. Wish there was a nice gui lib or a ml framework comparable to the ones offered by python and java. But I guess such things will come with time.
I feel stupid with this language.
And that is fine.5 -
The 'hamburger menu' is now like, and industry standard for basic UX everywhere.
Am I the only one who feels that it in its entirety, sucks?
the way iPhone implements its commands on the bottom or the way windows used to (before it gave in to hamburgers in UWP) implement charms was a way more efficient and elegant way to show commands..
I cant think of a better way without sacrificing screen space, but this for sure isn't the best way to handle commands.6 -
I'm finding myself stuck trying to find only the most elegant solutions to the problems from my hobby project.
Being a perfectionist is hard sometimes.5 -
Managed to derive an inverse to karatsuba's multiplication method, converting it into a factorization technique.
Offers a really elegant reason for why non-trivial semiprimes (square free products) are square free.
For a demonstration of karatsubas method, check out:
https://getpocket.com/explore/item/...
Now for the reverse, like I said something elegant emerges.
So we can start by taking the largest digit in our product. Lets say our product is 697.
We find all the digits that produce 6 when summed, along with their order.
thats (1,5), (5,1), (2,4), (4,2), and (3,3)
That means for one of our factors, its largest digit can ONLY be 1, 5, 2, 4, or 3.
Lets take karatsubas method at step f (in the link) and reverse it. Instead of subtracting, we're adding.
If we assume (3,3)
Then we take our middle digit of our product p, in this case the middle digit of 697. is 9, and we munge it with 3.
Then we add our remaining 3, and our remaining unit digit, to get 3+39+7 = 49.
Now, because karatsuba's method ONLY deals with multiplication in single digits, we only need to consider *at most* two digit products.
And interestingly, the only factors of 49 are 7.
49 is a square!
And the only sums that produce 7, are (2,5), (5,2), (3,4), and (4,3)
These would be the possible digits of the factors of 697 if we initially chose (3,3) as our starting point for calculating karatsubas inverse f step.
But you see, 25 can't be a factor of p=697, because 25 is a square, and ends in a 5, so its clearly not prime. 52 can't be either because it ends in 2, likewise 34 ending in 4.
Only 43 could be our possible factor of p.
And we *only* get one factor because our starting point has two of the same digit. Which would mean p would have to equal 43 (a prime) or 1. And because p DOESNT (it equals 697), we can therefore say (3,3) is the wrong starting point, as are ALL starting points that share only one digit, or end in a square.
Ergo we can say the products of non-squares, are specifically non-prime precisely because if they *were* prime, their only factors would HAVE to be themselves, and 1.
For an even BETTER explanation go try karatsuba's method with any prime as the first factor, and 1 as the second factor (just multiply the tens column by zero). And you can see why the inverse, where you might try a starting point that has two matching digits (like 3,3), would obviously fail, because the values it produces could only have two factors; some prime thats not our product, or the value one, which is also not our product.
It's elegant almost to the level of a tautology. -
Worst experience of my teachers?
I had handed in an exercise, which the teacher ostensibly thought was so elegant that he wanted to show it in class. I felt complimented and recognized. But then he proceeded to show the code on the screen, and I objected: "this is not my code, don't give me credit for this piece of shit". It had written-by-said-teacher all over it, because his coding style includes mysterious omnipresent acronyms that you could never guess the meaning of. My peers didn't believe me and thought I had written said not-so-elegant code, and the fuss about it degraded my reputation.
To this day I'm wondering as to why he humiliated me like that. He probably had best intent, but I don't get it -
Jinja2 is so awful compared to simple and elegant erb, but you can't go over python whitespace limitations.
-
Does anyone here reject a requirement because there exists no elegant solution to it and you shall die before writing spaghetti code?🤔6
-
I was tinkering around with my linux installation and trying to decide on a new terminal to use, and I ended up compiling st (suckless terminal). On a whim, I decided to look through the source code and see how much of it I would understand.
There was a C header file called arg.h that uses the preprocessor and macros to parse argument flags and songs by setting up a switch statement in a loop, all in under 50 LoC. To use it, just wrap the switch body between ARGBEGIN and ARGEND, and that's it. The comment at the top simply read "copy me if you can", a challenge to future programmers such as myself.
It was the most beautiful, elegant solution I have ever seen. I tried to tell my girlfriend about it, but she just didn't get it. Maybe some of you will appreciate it more:
https://github.com/chjj/st/... -
You ever sit down to code, all pumped up and ready to conquer the digital world, only to have your computer decide it's the perfect time to install updates? "Sorry, can't work right now, I'm busy optimizing your experience," it says, while you sit there twiddling your thumbs and wondering who asked for this update in the first place.
And let's talk about variable names. Who thought naming things would be the hardest part of programming? You start with `count` and `index`, but by the end of the project, you're using variables like `reallyLongVariableNameThatDescribesExactlyWhatThisThingDoes`. It's like playing a game of how many characters can you type before your fingers revolt.
Then there's the joy of debugging. You sprinkle `console.log()` like breadcrumbs through your code, trying to find where things went off the rails. Half the time, you realize you've been chasing the wrong rabbit down the wrong hole, and the other half, you discover the bug is some obscure edge case that you couldn't have predicted in a million years.
But hey, it's not all doom and gloom. There's a weird satisfaction in solving those coding puzzles, like when you finally get that algorithm to work or refactor your code into something so elegant, it feels like you've sculpted a masterpiece out of digital clay.
So here's to all the coders out there, navigating the ups and downs of curly braces and semicolons with a mix of determination and exasperation. May your code compile, your bugs be minor inconveniences, and your computer never decide to update right when you're on a coding roll!!3 -
I've ranted about this before, but here we go again:
Go Plugins.
I was racking my brains trying to figure out how one could possibly implement plugins easily in Go.
I had a look at using RPC, which requires far to much boilerplate to be realistic. I looked at using Lua, but there doesn't seem to be a straight forward way of using it. I was even about to go with using WASM (yes, WASM). But then I came across Yaegi ("Yet another elegant Go interpreter", you heard right: "interpreter"), Yaegi is also very easy to use.
There are a few issues (including some I haven't solved yet), including flexibility (multiple types of plugins), module support, etc. Fortunately, Traefik just released their plugin system which is based on Yaegi (same company), and I got to learn a few tricks from them.
Here's how module loading works: The developer vendors their dependencies and pushes them to a repo. The user downloads the repo as a zip and saves it to the plugins folder. I hash the zip, unzip it to a cache, and set the the GOPATH for the interpreter to be that extracted folder. I then load the module (which is defined by a config file in the folder), and save it for later. This is the relatively easy part.
The hard part is allowing for different types of plugins. It looks easy, but Go has a strict typing system, makes things complicated. I'm in the process of solving this problem, and so far it should go like this: Check that the plugin fits an arbitrary interface, and if it does, we're good the go. I will just have to apply the returned plugin to that interface. I don't like this method for a few reasons, but hopefully with generics it will become a bit more clean.1 -
heres something interesting:
The golden ratio is 1.618...
If you're not familiar with it, doing 1/goldenratio
the result is 0.618...
It gives you back the float component exactly.
Discovered that it is actually part of a series.
First of all:
2-(((5-sqrt(5))/2)-1) =
1.618033988749895 -> thats our golden ratio
In other words:
(2%gold) =
0.381966011250106
While:
((5-sqrt(5))/2) =
1.381966011250105
Ok, now we're getting somewhere. We can turn these into variables
First of all, lets see if we can get the golden ratio back out:
2-(((5-sqrt(5))/2)-1) = 1.618033988749895
Okay good.
The formula looks something like
j-(((i-sqrt(i))/2)-1)
Where j = (i*2)+1
That means we can easily figure out what j we need from our i value. (i-1)/2 = j
We run it back far enough we get
1-(((3-sqrt(3))/2)-1) =
1.3660254037844386
Thats the golden ratios little brother. Doesn't look anything like it, but it is part of the series.
And I found a boat load of research documents scattered *all* over the net, where this number and others in the series inexplicably crop up in power series, in chemistry, and elsewhere. Just looks like random floats if you don't know better.
We can actually go lower in the series:
0.5-(((2-sqrt(2))/2)-1)
1.2071067811865475
At the lowest positive value for j, we get
0-(((1-sqrt(1))/2)-1) = 1
It's kinda elegant.
I even wrote a little script to do the conversions:
def gr(k):
....i = k
....j = (i-1)/2
....return j-(((i-sqrt(abs(i)))/2)-1)
The dots are so devrant doesn't break pythons formatting.3 -
I always thought wordpress was ok, not great not terrible, from a coding perspective. Now every new framework I have worked on makes me see why Wordpress is on 40% of the internet.
Now I love wordpress not because of what it did do, but because of all the really stupid things it managed to avoid doing including: over abstraction, trend chasing, using "new transformative technology" that disappears in 2 years, breaking plugin economy with updates and making devs start over, making everything OOP for the sake of making everything OOP, making adding on a bit of code take multiple files of multiple formats and boiler plate code, boiler plate code, compiling dependencies, composer, twig, laravel, one page applications, react, angular, vue, javascript only stacks (MEAN), not letting you control sql queries, protected/private scopes and design that doesn't let you fix or alter bad code others did, and the list goes on and on.
Wordpress did a lot right, and devs should try learning from it instead of making more problems to solve. Sure it's not elegant, but you known what it does do? Focus on a solving a problem. Then it does. Without inventing new ideas or concepts to inject into the code and create new problems.
And you know what else? Hooks are actually very well implemented in Wordpress. I've seen it done much worse.
Honestly my main gripe with the entire platform is a slow moving to OOP for no reason and the database design should separate post type into different tables, the current design makes it less scalable for large data sets for multiple reasons so I'd fix that.5 -
A bad dev habit I should unlearn?
How about being too stubborn to take an idea out back and put it out of it's misery. You know what I'm talking about. Got some elegant idea in your head, it looks so pretty and masterful. You begin to implement it but straight away, things start looking pretty fucking ugly. You persist though, and persist.
Sooner or later that pretty idea looks like Donald and Hillary decided to spawn a love child. You close your eyes and grit your teeth, unwilling to put the abomination out of it's misery.
You stop and finally open your eyes to look at what you've done. A hideous beast with Gary Johnson's nose, Bernie's voice. Donald's hair, and Hillary's lips stares back at you. Yeah. Now you've wasted hours upon hours and only have a mistake worse than the 2016 American Presidential Election to speak for it.2 -
Welcome to post 2 of WHY WOULD I WANT TO WORK WITH YOU?, a saga of competence, empathy and me being dick, even tho I didn't want to be one.
This is a follow-up to: https://devrant.com/rants/2363374 It's title is: "Oh, you can post only every 2h. Didn't know that". I also didn't know that the rest of my rant would be put into a comment. For consistency tho, this time I am still splitting the story.
A wise person once wrote in their book: "People judge other people by two things: Empathy and competence." This may not be an accurate quote, but it carries the same message. Also, I don't really remember who was the author. I only know they were probably quite wise. Anyway, I just wanted to share that sentence. Have a moment and think about it. Or don't. Here's my story:
A was a software house that looked pretty promising. They were elegant, their page and offer looked nice. Well, unless you consider the fact that they offered me internship. Unpaid. But I decided to meet with them anyway, since I had hope that I could negotiate some sort of paid internship or a job contract even. I did my homework after all, and I was confident I am able to keep up with their requirements. I arrived a little bit... no, way to early. One damn hour. Whatever, I waited. I was greeted by a woman. We had a cultural conversation, she had a list of 12 questions I needed to answer, as a form of a test. We begun. First question: How do you change a value in Oracle Database? "Wait a minute", I thought, "What kind of question is that?". Why in seven hells would you want your frontend developer to know how to handle oracle db? Well, I gave my answer, I did lick some of that SQL in my life. Next question: Java stuff. The bloody gal didn't even care to check what position I am applying to before the interview! At this point I didn't really have very high hopes. A shame on them forever.
The story of B and C is connected and a little bit more complicated. More on that in part 2. B stands for Bank. A big corporation then, by definition. A person I know decided called me that day and told me they're hiring, that he referred me and that they would like to arrange a meeting. And so we did. It was couple of days before Christmas. C was a software house again. Or a startup. Idk really. Their website wasn't finished so I couldn't read anything useful up on them. They didn't tell me much about themselves either. They also started with "unpaid internship".
In C, they would greet me and instantly sit me down next to a mac laptop and told me, "hey, do this stuff in python". What the fuck, not again... I told them that I am frontend dev, they guy said "it's no problem, you said you know python, it's a simple task". And yeah, I did host some apps in Flask and I did use psycopg2. It was in my CV. But never, ever, have I mentioned knowing heuristics nor statistics. I'm no data scientist, monsieur. Whatever, I tried, I failed a little bit, I told them that maybe if I did want to spend half of my day there I would finish this task, but back then I was way too nervous to focus and code. I told them what should be done in code and that I just was unable to code this at the very moment. They nodded, we said goodbye and I was sure not to hear from them ever again.
In B, I was greeted by a senior frontend dev. He told me the recruiter is sick and he couldn't come, so we're talking alone. I can buy it. We sat down in said meeting room, and he asked me if I wanted a drink. No thx, I had digested so much caffeine during last 24h, next dose could be an overdose. And then, he took out my resume printed in paper. With notes on it. With some stuff encircled. That bloody bastard did his homework. We spent over an hour, just talking in friendly atmosphere. It was an interview, but it was a conversation also. We shared our experiences, opinions and it went just perfect.
On December 20, I was heading home for Christmas. My situation looked like this: A called me they could offer me only unpaid internship. I was getting kinda bored of rice and debts, tbh. I gracefully rejected their generous offer. B didn't give me feedback yet(it was a most recent interview, so I didn't expect any message until after Christmas anyway). C told me that they could give me internship, but I managed to convince them to make it paid internship. After three months of very bad times, things were starting to get better.
On part III we will explore further events of my very recent past. That post will be same amount of storytelling and possibly a lesson for those who seek an employer and for those who seek an employee.6 -
What do you think about Dart? They pitch it as an elegant language for everything: browser, WASM, servers, plus every native platform with Flutter.4
-
For learning purposes, I made a minimal TensorFlow.js re-implementation of Karpathy’s minGPT (Generative Pre-trained Transformer). One nice side effect of having the 300-lines-of-code model in a .ts file is that you can train it on a GPU in the browser.
https://github.com/trekhleb/...
The Python and Pytorch version still seems much more elegant and easy to read though...6 -
You know that stage you reach when you no longer feel like you can't format text without Googling how to do it, and you confidently build well-designed apps with elegant code?
That stage does arrive, eventually? Right?5 -
Into a bunch of open source hogging meat heads because no one likes paying for things their own peers toil days and nights creating and creating more under documented over expensive licensed stuff (because agile) while throwing buzzwords to clients just make business while simultaneously choking the life out of underpaid overworked devs and engineers with the skill of running away from responsibility trying to save their own skin with the inept ability to look like a hero/King at the end of the day with a single mail sent with psychic communication or the lack thereof with people who are slogging their asses off to fix a problem created to the vulnerabilities and bugs introduced due to the impatience of the same moron who couldn't afford to give his employees/subordinates more time to figure out an elegant solution to a non existent problem created in the confusion of improperly documenting unnecessary requirements of an ignorant or unknowing client who is way too eager to process way too much load with way too less resources all the while whining about lack of features theyre not gonna use.3
-
Today is one of those magnificent days for my code. One of those days where I stumble up on the weirdest bugs and pull a fix out of my hat barely looking at any doc. One of those days where I find out there is a very tricky flaw in our project design and yet I end up finding an elegant solution to circumvent future problems. One of those days where I find the informations I want even though the documentation is the worst I've ever seen.
I love that productive feeling.random efficient docs efficiency i actually don't like tags bugfix bug fix doc bug documentation productive -
does recursion have any practical use outside of being a cute/elegant solution under constraints where stack overflow isn't a concern due to small input size, and leetcode?
im having trouble thinking of anywhere you could justify using recursion in industry outside of leetcoding people
i assume the iterative approach would be preferred in scenarios where scaling matters18 -
You ever get the feeling that you work with a chisel and there's that one colleague that works with a 16lb sledge hammer?
I'll make a nice elegant fix for a problem, they'll struggle to work with it so pound it with a hammer, I'll come back to it and try to iron out some of the dents...1 -
Smart contact lenses and the appropriate software. It would be the ultimate AR experience. I have no idea how to produce them, as they would need to be super high resolution, lag free, completely wirelessly powered and connected, safe to use and to wear and useable 24/7.
My current concept is a ultrabook sized block that can be taken around in a backpack.
Oh and wireless handoff ...
meaning everything I grab and throw in your general direction becomes available to you, kind off like they do it in Avatar. This should also work with PCs, tablet and everything else.
Speaking of grabbing you would also need some kind of minority report glove so every bit of hand movement can be tracked precisely. But probably a bit more elegant meaning only small stickers on the back of your hand.
Did I mention that sharing stuff should enable working together on the same object in real-time?
Also this system should integrate seamlessly with a smart environment, meaning looking at the light, opening its context menu and changing its brightness or colour should be no effort at all.
And of course all of it should be open source, highly scalable and either hosted on public infrastructure (funded by taxes or smt) or by each individual for himself to protect his or her privacy.
So who is with me?2 -
Working on complex invoicing systems. For once, the code is clear, elegant, readable and unit-tested... but I keep forgetting how reality works. If only tax laws were self-documenting.
-
Grails 2.x all groovy syntax for code and configuration. Simple and elegant.
Grails 3.x all groovy syntax except for the main configuration file. Let's make that a YAML file. F#%king genius!1 -
"Cutesy tool" is a delightful and beautiful handcrafted tool for doing shit in a slightly different but arguably slightly more elegant way. Our home-grown, pure vegan, batteries-included, framework has taken all the right vitamins to save you time developing so you can spend all that time you saved flossing more. 😬
- Inspired by PWAs, Ohmyzsh, and countless other bullshit cutesy descriptions.3 -
Me writing Bash when I only knew Bash: ah yes ageless, timeless, forged in the crucible of 30 years of Unix production systems, an elegant weapon from a more civilized age
Me writing Bash after 6 months of Python: wtf is this shit2 -
I fucking hate the black matte finish!
I mean, it's nice and elegant, but for things that will be used, it sucks, they get this ugly glossy wear that makes them look dirty.
Do you guys have a laptop with this issue? Does it annoys you?6 -
I'm trying to get into react for side projects but my java and backend background in general really make things tough. Let's say I have a few data manipulation functions that I want to extract to a separate service and inject it using react hooks (since that's what everyone is using nowadays apparently). I can see it being much more elegant than props, but all the examples I can find resolve around passing state here and there, not passing actual dependencies like a stateless service. Any ideas how I should solve this?7
-
I’m learning Haskell and my mind is blown by how elegant functional programming is, it might take a while for me to get accustomed to FP but I can’t wait to get there. Thinking of making the 2048 game in Haskell as a learning exercise3
-
Spending days on a recursion problem and never solving it. That was a low time for me-especially when I looked at how short and elegant the solution was online. I've recovered now and have gotten better at it, but damn that's one thing I need master or it'll haunt me to I die.1
-
How come that every time you've made something elegant and wonderful on a web page, one browser has to ruin everything.
Today it's IE/Edge and data URIs.1 -
The one in which I am rn is the reason why so many people dislike php, jquery and Java on the server.
Then previous to this one, classic ASP for the web interface and our desktop components were delphi (OLD ass delphi)
Mind you, these are all tech stacks that I do like (php, java and O Pascal in particular) but really dislike in:
php: we have just your standard procedural spaghetti php on some old ass shit.
Classic ASP: Same as with php, no proper structure, made more apparent by the intense limitations of VBScript, I did enjoy the language tho, had it evolved better It would have been more tolerable, but the hoops i had to take to build a propee API in it....boooooy that shit was an eye opener.
Delphi: Not bad in itself, but the original dev had a shit notion about how architecture should work.....or what architecture is for that matter.
The Java one: this shit was coded when Spring was already an alternative to just fucking around with JSP, or any other framework for that fucking matter. Dude tried....TRIED to implement design patterns in it and it failed on every single fucking component. Worst of all, it was coded in such a shit way that during certain...err...conditions, the bottleneck proved too massive of an ubdertaking and the app chokes and needs to be restarted ... constantly
their use cases for jquery are not bad, but loading all of jquery for the shit they mostly do could have been easily done with just standard vanilla JS.
I got more, but thede are just from the top of my head
I love php, mind you, but shit like this makes me see why some people GREATLY dislikes it.
I alsp have some old web forms in c# and vb net that I loathe, funny enough the code for thise in vb.net is more elegant, almost as if it were from a different developer.3 -
VBA, not even the documentation is fine. I still have to use it. PHP just looks an elegant and charismatic language near VBA.
-
I so f#!ing hate how "font-weight: bold" looks on mozilla (the bottom one) compare to the chrome.
Chrome looks so modern and elegant >< .
Or is this some compatibility properties that i got to add ?6 -
Anyone else here who really enjoys writing pure functions or domain classes?
It's so amazing to be able to write dependency-less classes that have such simple, elegant logic and sometimes just a bunch of getters and setters. Pure functions with type hints are also one of my favorites.1 -
Anyone here currently employed as a perl developer? I wanted to know how your experience with the language and the environment has been? I have been going on and off in the perl world for a while know. Currently some interesting perl jobs have been comming up. I have always liked the language but I know that there is a major difference between liking a language for basic scripts and using it in a work environment.
Currently, I have experimented with a few web projects using Perl and I am really digging what I see, the code can be as hacky as you want it to be or as elegant and readable as you make it, such freedom and flexibility is great. -
Thunderbird mail client switched to compact mode or a new look, so I suspected that's the announced "update that many users won't like".
Googled how to revert Thunderbird to its old UI and found that people posted that question, but 4 years ago? As yesterday's UI wasn't exactly elegant and beautiful either, I'll just get used to the new one!1 -
I'll put it this way. Svelte is like Kotlin. It's modern, elegant and a pleasure to work with.
React is like Java. Old, bloated and a pain to work with.
Svelte makes React look like it was built by masochists.
I don't work on frontend often, mostly because I despise the frameworks.
Svelte is a breath of fresh air.
I just want to ship a product quickly and it doesn't get in the way.2 -
I've mentioned this before, but I never really understood bit flags until I tried out Cocos 2D and read about how you implement hit detection. You identify different rendered objects with an enum value, and it would spit out a result every frame that you use bitwise logic on with the enum to determine which objects were touching. Such a simple and elegant way to represent combined state.
It may be elementary for some folks but I was not a CS major.1 -
Why the fuck is it not possible to pass a pointer to a multidimensional array in C++? Like who the fuck though a pointer to a pointer to an array was an elegant solution? I still can’t get my head around how to access the fucking array!!! And this is for a project too that solves poisons equation using the finite difference method none of which was EVER explained!!! Does anyone have a clue about this??????
-
"There are too many elements on most web pages to affix or align each one to the baseline grid. Doing so would require a mathematical rigor that, if it can be achieved, might produce rationally exact measurements and placements but will most likely be something less than elegant. The result would be a design driven by math, rather than a design that uses math to create an elegant product." - Khoi Vinh
-
In most businesses, self-proclaimed full-stack teams are usually more back-end leaning as historically the need to use JS more extensively has imposed itself on back-end-only teams (that used to handle some basic HTML/CSS/JS/bootstrap on the side). This is something I witnessed over the years in 4 projects.
Back-end developers looking for a good JS framework will inevitably land on the triad of Vue, React and Angular, elegant solutions for SPA's. These frameworks are way more permissive than traditional back-end MVC frameworks (Dotnet core, Symfony, Spring boot), meaning it is easy to get something that looks like it's working even when it is not "right" (=idiomatic, unit-testable, maintainable).
They then use components as if they were simple HTML elements injecting the initial state via attributes (props), skip event handling and immediately add state store libraries (Vuex, Redux). They aren't aware that updating a single prop in an object with 1000 keys passed as prop will be nefarious for rendering performance. They also read something about SSR and immediately add Next.js or Nuxt.js, a custom Node express.js proxy and npm install a ton of "ecosystem" modules like webpack loaders that will become abandonware in a year.
After 6 months you get: 3 basic forms with a few fields, regressions, 2MB of JS, missing basic a11y, unmaintainable translation files & business logic scattered across components, an "outdated" stack that logs 20 deprecation notices on npm install, a component library that is hard to unit-test, validate and update, completely vendor-& version locked in and hundreds of thousands of wasted dollars.
I empathize with the back-end devs: JS frameworks should not brand themselves as "simple" or "one-size-fits-all" solutions. They should not treat their audience as if it were fully aware and able to use concepts of composition, immutability, and custom "hooks" paired with the quirks of JS, and especially WHEN they are a good fit. -
Anyone from Service Based IT Companies.? How much it really sucks to convince everyone around you about the idea you want to implement, but it cannot because the client is not happy and if he is not happy the management is also not happy. Its like we are chained to the chairs and systems, not letting us look at the outside world, where elegant solutions exists for smiple problems.
-
Any cool buttons and inputs CSS library?
I just need cool / elegant / nice buttons and inputs. If it has some image niceties or something else it's ok.
I did little Googling, ngl; I'll look a bit more later in the day, but I figured maybe someone here may have something interesting to comment.8 -
Frustrating feature/bug of SO is when you don't have enough rep to leave comments or have your vote truly counted, and the best answer is the bottom comment, and you have absolutely no way to thank the person! @Adiii no idea if you are on here but thanks so much for your simple and elegant nodejs solution to checking for and creating directories.
-
Sometimes I just code some ugly crap that does the job and create a To Do to revisit it later and try to make it elegant.
When I revisit the code I always can't believe that I thought it was bad.
Seems like my past Me is a better programmer than present Me. Ouch. -
I do all this work to make an elegant solution to, frankly, a dumb requirement. And a newer dumber requirement comes out that requires someone to modify my solution. Normally not a problem. But this is a backend solution given to a frontend developer to modify. I told them how my solution works since it did 90% of what she needed. But instead, they reinvent the wheel and I have to fix it. I was supposed to be done with this 3 hours ago, but unraveling this knot is taking for fucking ever.2
-
I love coding, but there are some days when it drives me absolutely crazy. Like when I spend hours trying to debug a single line of code, only to realize that the problem was actually something completely different.
Or when I'm working on a project and I'm pretty sure I know what I'm doing, only to discover that there's a better, faster, and more elegant way to do it. It's like my entire codebase is taunting me: "You thought you were good at this, didn't you?"
But you know what? Despite all of the frustrations and setbacks, I keep coming back to coding. Because there's nothing quite like the feeling of finally getting that piece of code to work, or seeing your project come together in a way that you never thought possible.
Coding can be a rollercoaster of emotions, but I wouldn't have it any other way. Here's to all the developers out there who know what it's like to ride that coding rollercoaster, and who keep coming back for more.1 -
Trying to understand why there is an absurd amount of tooling for most nodejs apps. Is this present in other languages as well? Is it worth learning? From my viewpoint as a new developer, it seems like there should be more consolidation there. Or a more elegant way to build1
-
In Kotlin or Java, I have a list of items that have an ID property. This list is generated based on another list. Now I get a List of mentioned list items and I want to select all items in the parent list, selecting by ID equality.
Is there a more elegant way than just iterating the parent lost for each derived item? Thank you :)5 -
Modern Web Developer
(To the tune of "I Am the Very Model of a Modern Major-General" from Gilbert and Sullivan's "The Pirates of Penzance")
I am the very model of a modern web developer
I’m quite fluent with JavaScript; An HTML whisperer
My code is clean and elegant, I genuinely innovate
And even know my way around a Promise and async / await
I’m very well acquainted too with matters vector graphical
I understand why SVG coordinates seem magical
And even without Photoshop I elegantly can produce
A mockup or a logo in most any format that you choose
[Chorus]
A mockup or a logo in most any format that you choose
A mockup or a logo in most any format that you choose
A mockup or a logo in most any format that you choose
I'm quite adept at ES6 expressions like destructuring
I know the ins and outs of functional reactive programming
In short, in matters browser-based or Node.js if you prefer
I am the very model of a modern web developer
[Chorus]
He is the very model of a modern web developer
I know our mythic history, the humble start, the browser wars
I know why Douglas Crockford fought the battle over ES4
The World Wide Web Consortium and Ecma International
My knowledge of our legacy is truly supernatural
With LESS and SASS and CSS, designing for mobility
I’ll perfectly apply the right amount of specificity
From custom fonts and parallax to grid and flex and border-box
I know most every tip and trick both common and unorthodox
[Chorus]
He knows most every tip and trick both common and unorthodox
He knows most every tip and trick both common and unorthodox
He knows most every tip and trick both common and unorthodox
And when it comes to lazy loading, bundling up and splitting code
There’s nothing quite like Webpack, which of course is built on top of Node
Considering my resume, I’m certain that you will concur
I am the very model of a modern web developer
[Chorus]
He is the very model of a modern web developer
When new frameworks and libraries emerge I must be ravenous
And gobble up the hot new thing, my appetite is bottomless
React and Vue and Angular, Immutable, RxJS
The list will be outdated long before I'm finished singing this
My pull requests rely on multitudinous utilities
To help me lint and test and build, a deluge of analyses
And every single day there are a hundred thousand more to learn
The web is going through an irresponsible amount of churn
[Chorus]
The web is going through an irresponsible amount of churn
The web is going through an irresponsible amount of churn
The web is going through an irresponsible amount of churn
This pace is agonizing! Code from yesterday is obsolete!
The speed of innovation is enough to knock me off my feet!
It's happening too fast! I can’t keep up! I’m tired! It’s all a blur!
I am the very model of a modern web developer!
[Chorus]
He is the very model of a modern web developer!1 -
!rant
Help a future Linux convert out!
So far over the past year I've gone through Mint, Fedora, Ubuntu and REHL and all have had their issues or just didn't agree with me. Currently I've been using OpenSuSE Leap I haven't had much an issue with... But I'm looking to try out Arch, though I'm not a fan of the whole CLI install. Doing some more research I saw Antergos which is just Arch but more n00b friendly and more elegant to me. Has anyone had experience with Antergos? Is it as it seems? Any pros and cons with Arch Linux based things? Running it in a VM first doesn't do it justice for me.5 -
What are some Python GUI frameworks that are capable of sleek and elegant UIs? I want to avoid vanilla OS, but still be cross platform.6
-
I am busting moves rn. I'm in the bathroom but the surge of energy is making me pump my arms like the time Leo Messi scored a clutch winner against Valencia in 2019
Remember the plugin I referred to in this rant? https://devrant.com/rants/6019851/...
Yup! I managed to subdue that fossilised codebase. Effected all changes required. To have a rough idea about how ancient the code is, its classes use constructors predating PHP 5. It throws away the ~15 years of autoloading, view templates, routing engines, DI, ORMs (NO PDO!!), lower-cased multi word variable names, etc. I'm looking at SCRIPTS with raw functions north of 4-600 lines. The client insisted I zip the folder across
BUT! The good news is, we surmounted it. In fairness to them, it's commendable for one man to have pulled this off. The codebase is massive and appears to have been predominantly written by some Gideon dude. Who knows where he is now
There is one pattern I appreciate –something I wish Transphporm does–some segments of the rendered view are composed using class methods ie instead of having the HTML file mixed with templating syntax, you have class methods that receive the raw data. Then you can extend this class as you wish, overriding just the method that composes the segment you intend to modify. That was elegant to work with. But it can become dreadful if the class expects a specific structure of data (an array with weird keys) that you have no access to sourcing
So, I finally get to enjoy one good evening in 2/3 weeks. I called 2 friends to express an emotion that's not gloomy, but they were unavailable. Will probably get some sleep4 -
So let's say I kinda came up with a pattern/architecture for Unity scripting which I find really useful and elegant.
It uses some features which are quite new, and I can't find anything similar on Google. So I suspect I might actually have invented something new.
What should I do?6 -
How do you guys like to name things, do you prefer being specific/verbose or generic? Say, we have a vue component to which we need to pass props. Would you prefer:
<todo-list todo-model="TodoModel" />
or rather:
<todo-list model="TodoModel" />
For me, the first is easier to search for, the other is more elegant and decouples what is happening from why is it happening.5 -
Holy crap, Meta Developer Connect keynote. Amazing innovation. This is what Apple **used to be**
Granted, the hardware is not as elegant as Apple but the cost is 1/10 and the capabilities are close, same, or exceed (Llama) what Apple is offering.
Now here is the gut punch, they figured out that the mobile app build system needs to build AR/VR/MR apps. That was Apple's edge.
As a developer, I am not enamored with Swift and it is pretty clear that if I have to change and use a niche language like Swift or change and do dev on Android, to target new Meta hardware and AI... well... lets just say I think Swift is crap from a language standpoint and I suspect it is the reason Apple's hardware uses so much more memory, battery and storage than it should. At the same time Meta's Orion runs on a god damn battery in the early piece of glasses. My AVP's have a huge brick.
#define kApple kGigaBloat
If I were Apple I would be shitting my pants watching this Meta presentation.6 -
(after morning coffee) Today I’ll change the world and write the most elegant and revolutionary piece of code ever.
(end of day, after 8 zoom meetings and 5 gdocs comment rounds) guess i’ll do these 2 PR reviews tomorrow.1 -
Fuck you, linux modules!! I know tinkering with you was going to be dangerous, but I've already spent 4 hours just rebuilding virtual machines from every screwup.
I personally love the architecture of Linux, it tickles my fancy and it's super elegant... But fuck you!1 -
Hey guys, so i'm just about to complete my android application project which I started a year ago.
You can say it's sort of my baby. I've put all my efforts into it. The backend is almost done. The problem which i'm struggling with is the front end.
The front end of my app looks like shit. I tried to do everything to make it look elegant and classy, but all in vain.
And I can't afford to hire a front end developer or graphic designer. Can someone suggest me what to do.
I'm open to any suggestions as it's the first app i'll upload on the play store, I just want it to be perfect.26 -
"Google has the functionality of a really complicated Swiss Army knife, but the home page is our way of approaching it closed. It’s simple, it’s elegant, you can slip it in your pocket, but it’s got the great doodad when you need it. A lot of our competitors are like a Swiss Army knife open – and that can be intimidating and occasionally harmful." - Marissa Mayer1
-
The joys of being a multi-project, multi-language developer! You think you'll juggle a couple of balls, but suddenly you're in a full-blown circus act, with chainsaws, flaming torches, and a monkey on your back yelling "more features!"
In the morning, you're all TypeScript: "Yes, of course, types make everything more reliable!" By lunch, you're neck-deep in Python and realize types are a vague suggestion at best, leaving you guessing like some bug-squashing mystic. And then just when you’ve finally wrapped your head around that context switch, FastAPI starts demanding things that make you wonder, "Why can’t we all just get along and be JavaScript?"
Oh, and don’t even get me started on syntax. One minute it’s req.body this and express.json() that. The next, Python’s just there with a smug look, saying, "Indentation is my thing, deal with it!" And don’t look now, because meanwhile, Stripe’s trying to barge in with a million webhooks, payment statuses, and event types like “connect” and “payment,” each a subtle bomb to blow up your error logs.
Of course, every language has its "elegant" way of handling errors—which, translated, means fifty shades of “Why isn’t this working?” in different flavors! But hey, at least the machines can’t see us crying through the screen.10 -
I just thought of an elegant solution to a problem in prod. Basically need to run 2 different versions of a app.
Just deploy it to uat and point it to prod db for the data.
I guess if we were following microservices architecture though we could deploy both versions to prod but we don't....3 -
Lemme just say... Wow. Wireguard... It's so incredibly simple and elegant. I cannot believe how easy and how little reading it needed to set it up.
And unlike OpenVPN, the Android client is even able to override the system's DNS servers, meaning I can finally start blocking nosy apps from contacting their big brothers in the cloud via DNS blackholing!
Wow. Wireguard... 10/10. Simple, fast to set up, elegant.4 -
DevOps With Ruby and Chef on FreeBSD (and Linux)
I am Ops and Dev by heart. I have always automated *nix systems long before any automation framework was invented because I am pretty lazy. Doing stuff more than once manually is just one time too often for me. Imho Ruby is a really elegant language. The same applies for the tools that are built around it. The Chef ecosystem fits into this with its own elegance and stability perfectly because the server is Erlang driven and the rest is Ruby.
Being a Linux and BSD user since the early 90s I have always loved a *nix system for it's concepts and simplicity. One command for exactly one purpose and everything is combineable like letters are combinable to words in my mother language. I have always loved FreeBSD more though. Imho it is even more focused on simplicity. Because it is a really clean approach of system design that envies a base system and keeps 3rd party separated in a clean way for example. It also values classic UNIX philosophies that most Linux distros these days abandon but which saved my life multiple times through better design and execution that also focuses alot more on stability, fault tolerance and ease of use than any Linux I have come across. The hardcore guys should read "Design and Implementation of the FreeBSD Operating System", compare the readings to the Linux way of things and see for themselves.*
*The author acknowledges that this text is his opinion and just his wet dream alone and may not be of any relevance for the sexual lifes of everybody else -
"A good designer finds an elegant way to put everything you need on a page. A great designer convinces you half that shit is unnecessary." - Mike Monteiro3
-
Damn, I hate Spring and most CoC frameworks. We’re using it from 2 years, I read most of the docs and it still gives issue for basic taks which takes hours to fix because I have to guess the exact convention which allows the program to process corner cases which aren’t explained in the docs. Yes, in the end the code is more elegant but it’s worth it when issues which could be solved in minutes by a trivial if/else statement takes hours (rigorously on pair programming™️ since being one of the few which actually read the docs I end up with lots of calls for help for Spring related issues by other teammates) and huge headaches to fix following the framework’s way?2
-
Why, oh why, must every project succumb to the siren call of feature creep? We start with a simple, elegant design, but before long, we're drowning in a sea of unnecessary bells and whistles. Let's stick to the essentials, folks. Quality over quantity, simplicity over complexity. Less is more, remember?2
-
How to Create Beautiful and Durable Pie Boxes
Whether you are looking for a unique gift to give, or you are looking to protect the delicate items you hold, there are many ways to do so with the right pie boxes. By using a custom designed box, you can capture the essence of the delicacies you are storing and protect them for a longer period of time.
Protect delicate items
Using pie boxes is a good way to protect delicate items such as pies, cakes and desserts. However, you need to be sure that the box is the right size and shape to ensure that your item is safely packed. If you don't pack your delicate products properly, they could suffer from moisture and change in temperature.
Before you begin packing your goods, consider whether you should use bubble wrap or paper. While bubble wrap provides an extra layer of protection, it can also leave your product vulnerable to scratching. Choose paper to wrap your items, as it will prevent scratches and will keep them from shifting during transport.
When wrapping fragile items, you need to use a lot of packing tape to secure your package. You should also fill any empty space in the box. You can do this by using bubble wrap, or by adding extra padding. Make sure to mark your box as fragile and to place a label with your name and delivery address on all sides of the box.
Once you've completed the packaging process, you need to seal the box and place it in the shipping box. Besides bubble wrap, you may also want to include ice packs to add extra protection. A cushioned ice pack is another option for additional protection.
You should also use quality packing tape, and make sure to cover all the openings of your box. You can also use zip-up bags to help you keep your things in place.
It is important to know the best way to protect delicate items, so you can prevent them from damage during the shipping process. There are many ways to do this, but you should use the right tools for the job. Purchasing a box that is the right size and shape for your items is the most effective way to do it.
When you use custom pie boxes, you can rest assured that your pies, chocolate pies and other edibles will be safe. They're manufactured with modern equipment and environmentally friendly printing techniques.
Make a gift
Whether you are giving a pie for a birthday, wedding, or as a thank you gift, you can make pie boxes that are beautiful and durable. Several pie box designs are available online, but you can also create your own. Here are some simple instructions to make a simple, yet elegant box.
The first step is to print out a template of a pie box. You can use a piece of scrap paper or decorative paper for your design. If you are using decorative paper, cut out a rectangle the size of your box. If you are using colored cardstock, you will need to cut out a pie filling layer. Once you have a pie filling layer, copy it for several boxes. You can also add other designs or embellishments to your boxes.
Next, place your colored cardstock on your cutting mat. With your x-acto knife, cut out a rectangle that is as large as your box. You will need to fold it on the dotted line. If you are using an x-acto knife, it will be easier to fold the box. Alternatively, you can use a scoring stylus. If you have a Cricut, you can score the cardstock to make a scalloped box top. You can also use burlap ribbon or twine to wrap your box.
Once you have the box finished, you can decorate it with other decorations or embellishments. You can even use calligraphy or other techniques to make the box more special. To close the box, you will need a sticker or piece of tape. You can decorate the lid with patterned paper and a clear plastic screen. This will allow you to see the contents of your pie. You can also use embellishments such as ribbon, glitter, or other materials to make the box more fun.
If you are giving a pie for a holiday or party, you can decorate your box with a festive theme. For example, you can have a holiday tree on the front of your box. Or, you can dress it up for a tailgate party.2 -
https://i.imgur.com/Y1Z7Ohk.png
I've never used Python much, but my network class had an assignment to make a program that would convert a physical MAC address to an EUI-64 address (as well as some other, easier functions). It's not the most elegant solution, I'm sure, but I'm proud of what I created.
(Reposted due to needing to rehost image)1