Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "iteration"
If EA had developed their own Programming Language:
Iteration DLC ~20€
Condition DLC ~15€
Connectivity DLC ~12,99€
Gold Edition ~120€14
Not a rant, but I found this funny enough to share.
About two weeks ago, I’m contacted by a third party development firm that is responsible for building the next iteration of a control board were are developing. Alongside build of the PCB they were scoped to flash the firmware and verify all connected components.
During the call, they tell me they don’t have the resources to build our testing environment with the Ansible script I provided, and they don’t know if the updates they have made will work with our control system. Ugh...really...
I attempt to walk them through the 3 pretty simple commands to launch the playbook. Instead of listening, their project manager insists that I need to load up the environment and send them a ready to go system.
I quickly load up a RaspberryPi and prepare it for shipping. I hand the box to our shipping clerk and fill out the shipping request documentation. Then about a week goes by and this is where the story really begins.
I get an email from the same rep asking where the environment is, and I head down to the warehouse to inquire where the RaspberryPi might be. After speaking with the head clerk, we can’t seem to track down the package. I’m assured that they will find the Pi and send me the shipment update.
I pass the information along and after about a day and a half I still didn’t receive word back from the warehouse team. I load up another Pi and head back down to the warehouse. I follow up with the warehouse staff. They inform me that they have not been able to locate my package and another warehouse worker is called over. He says he hasn’t seen it, but they they were having a food day that day and he thinks more than likely someone ate it.
Like it didn’t even click at first but after a few seconds I realize that these guys have literally been looking for a pie for the past two days...and I JUST DIE.
After the 5 or so minutes of laughing I show them the newly flashed RaspberryPi, and of course they know exactly where the original one was.
It’s shipped out now, but wow. Also, it turns out the PCB manufacturing company didn’t even really need this and it was all a guise to hide that they are behind schedule and that they will not be able to finish the work scoped. FML!6
How reading E-Mail is hard:
please send the pictures for content A and Content B.
We also found content C in your spreadsheet. Do you want content C to be uploaded? Please us where to place it.
Me (who does not consider this a difficult text)
"Hello. Please find attached the pictures for A"
Thank you for the pictures for A.
What about the pictures for B?
And what about that content for C?
(Looking at the attachment and finding pictures for A and B)
Please look at the new iteration <here/>
And by the way.. what about that content C?"
"Thanks and find the images for Content C attached."
Extremely fatalistic and desolate Me:
"Well thank you. Where shall we put it then?"
Client (answer to the unanswered mail above)
"Thank you. Please don't forget to put in C."
* Updates and adds unit tests *
* Runs unit tests *
* All tests pass *
What the fuck? I'm not THAT good to write tests that pass on the first iteration.
* Runs unit tests *
* All tests pass *
Someting's not right here.
* Checks terminal *
FUCK I'm in the wrong project folder3
About two years ago I get roped into a something when someone was requesting an $8000 laptop to run an "program" that they wrote in Excel to pull data from our mainframe.
In reality they are using our normal application that interacts with the mainframe and screen scrapping it to populate several Excel spreadsheets.
So this guy kept saying that he needed the expensive laptop because he needed the extra RAM and processing power for his application. At the time we only supported 32 bit Windows 7 so even though I told him ten times that the OS wouldn't recognize more than 3.5 GB of RAM he kept saying that increasing the RAM would fix his problem. I also explained that even if we installed the 64 bit OS we didn't have approval for the 64 bit applications.
So we looked at the code and we found that rather than reusing the same workbook he was opening a new instance of a workbook during each iteration of his loop and then not closing or disposing of them. So he was running out of memory due to never disposing of anything.
Even better than all of that, he wanted a faster processor to speed up the processing, but he had about 5 seconds of thread sleeps in each loop so that the place he was screen scrapping from would have time to load. So it wouldn't matter how fast the processor was, in the end there were sleeps and waits in there hard coded to slow down the app. And the guy didn't understand that a faster processor wouldn't have made a difference.
The worst thing is a "dev" that thinks they know what they are doing but they don't have a clue.7
A friend was writing a small game. He asked me to take a look at why the FPS where horrible although he was only drawing the background each tick.
He had about 10 different images that were used to draw the background tiles. Each iteration of the game loop he would loop over all tile positions, determine which image to use for this tile, load the image from disk and create a new tile using the image, which then would be drawn and forgot.4
Dev: This is the first version of this new app, we’re still experimenting with how it’s going to work but initial headway is looking promising. It cost very little to make, came together very quickly and is already resulting in productivity increases for users. We’re just doing a bit of code cleanup now and we’ll make a move on the next iteration.
Corporate IT: This project is being completely mishandled! In order to successfully build an app you have to determine every single requirement beforehand! It takes millions upon millions of dollars due to the complex system of governance and approval that needs to exist. Massive numbers of stakeholders need to be involved and coordinated to even make so much as a login screen! I bet your project doesn’t even have a documented list of core values.
Dev: Has you ever successfully built an app using that methodology?
Corporate IT: 😡 That’s a loaded question. I went to school to study project management and have over 25 years of experience in the field. If you had the training and experience I do you would know that tech projects are naturally very volatile and there’s nothing you can do about that!
So my localization algorithm actually runs onboard my YouBot :)
My paper was basically torn apart by my professor, so I had to write some new classes and redo the whole experimental section. And all the other sections too. I resubmitted it to him after revisions, and the second iteration was way better - I'm really close to final paper level :)
I told my professor and postdoc that I will appreciate more support and positive feedback, because so far our communication was only very dry criticism. For me it's really devastating, because feeling like I constantly disappoint people just kills me on the inside.
It seems like they took it to heart, they have been nicer to me in the last few days :)6
I discovered a function in our database that converts integers to ordinals by concatenating the number and a suffix:
- ends in 1: add “st”
- ends in 2: add “nd”
- ends in 3: add “rd”
- else: add “th”
Simple! Except I guess nobody considered the 11st, 12nd, and 13rd iteration of this function…9
First of all, I hate crammers so much. These people kill the industry without even understanding it. They turned interviews into exams, missed the point of hiring, and saw no distinction between knowledge and information all the time. They don't understand that if you can google an answer in five seconds, it's not knowledge. It's information.
They don't understand that questions like 'what will Python do if you delete an item from a dict while iterating over it' are complete nonsense. They don't understand that it's not 'dig deep'; it's just a bad practice that leads to errors, thus must be avoided. The fact of remembering 'RuntimeError: dictionary changed size during iteration' means that you haven't been avoiding it enough.
One more example. Which signature is correct?
Second. What's the point of forcing you to write compilable code in google docs? Do they really expect that one could possibly remember 'import org.springframework.beans.factory.annotation.Autowired;'? Seriously?
Third. Why do they expect me to know Spark, Java, J2EE, Spring Boot, Python, Kafka, Postgres, React/Redux, TypeScript, and work for miserable 70K EUR?
What's wrong with the European IT job market? Are they fucking nuts?9
To be able to learn, is an opportunity. To be able to teach, is a privilege.
Cheers to another successful iteration of The #HourOfCode, by Team ACM BVP in association with Code.org. It was amazing teaching the students of 5th standard the basics of programming and logic building, and quite surprising to see how quickly they were able to grasp the concepts!17
- Project for a 40+b$ company.
- No business analysis.
- Only some 64 pages tech paper dividing the project in 4 iterations (pretty well written).
- « Please estimate the first iteration ».
- Can we do it in 2 weeks? Only items in first iteration, I think we can but we need a BA before we accept the project.
- Confirmed by senior dev front. 10 days, says we need a BA before we accept.
- Confirmed by senior dev back. 12 days, says we need a BA before we accept.
- UX/UI senior designer says he can't estimate such a technical, says we defo need a BA before any estimations.
PM, who is actually the department manager, says OK we can do it. No BA and estimations are halved, UI/UX 2 days.
He fucking signs the contract.
SURPRISE MOTHERFUCKER, WE NEED STUFF FROM FUTURE ITERATIONS IF WE DON'T WANT TO THROW AWAY ALL THE FIRST ITER WORK.
PROJECT BECOME A CLUSTERFUCK.
NOBODY UNDERSTANDS ANYTHING. THE CLIENT HAS NO CLUE EITHER.
The fucking dep. mgr assigns another PM and says he don't have time anymore.
NOBODY HAS A CLUE WHAT THE PROJECT IS AT THIS POINT.
We have 3 days left.
Whole team came to a conclusion: the only sane thing to do is to give our grouped resignation letters.
Thanks. It was fun while it lasted. Your dep. can go to hell.5
Writes code in C
Terminal: Seg fault
Terminal: Seg fault
Rewrites again, opens gdb:
"I should open a brewery, I like beer. I've always wanted to make beer, it's analogic for the most part. No seg faults, can you believe that? Perhaps even a pub next to the brewery..."
"Oh, I was doing one extra iteration in a for loop. Nevermind"7
So after coding the first iteration of a big project on some whack office supplied logitech keyboard I rewarded myself with a new proper keyboard that suits my character. I am as happy as a kid on Christmas :)
Vortex Race 3 Brown Cherry MX15
Necessary context for this rant if you haven't read it already: https://devrant.com/rants/2117209
I've just found my LUKS encrypted flash drive back. It was never stolen.. it somehow got buried in the depths of my pockets. No idea how I didn't look into my jacket for the entire time since that incident happened... But I finally found it back. None of my keys were ever compromised. And there's several backups that were stored there that have now been recovered too. Time to dd this flash drive onto a more permanent storage medium again for archival. Either way, it did get me thinking about the security of this drive. And I'll implement them on the next iteration of it.
For now though.. happy ending. So relieved to see that data back...
Full quality screenshot: https://nixmagic.com/pics/...11
My development process seems to go:
1. Write code
2. Believe that said code is amazing
3. Write more code
4. Revisit earlier code and start to doubt it's amazing-ness
5. Get frustrated that it could be done better
6. Redo 1 and repeat cycle
Seems a massive waste of time but I tend to like taking a different approach as soon as I find I'm getting stuck with the previous one.
I then get encouraged to take the quick/easy approach which seems like a backwards step and not worthwhile because I know it won't be as fast/efficient.2
Ok, YOU fuck up THREE (!) times, and send me new text for the app, each time saying its '100% finished, no errors' and expect me (each iteration) to do it IMMEDIATELY
Why don't you go fuck yourself, do your damn job, do it right, and THEN contact me instead of running around like an childish preschooler with a pair of scissors4
Is "++i" more efficient or "i++" ?
P.S. I already wasted more cpu cycles by posting this, than I would ever waste by using either of them....8
The built-in array is also an hashmap. Actually, it's always a hashmap, but you can append to it without specifying indexes and PHP will use consecutive integers. Its performance characteristics? Who knows. Oh, and only strings, ints and null are valid keys.
What's the iteration order for arrays if you use them as hashmaps (string keys)? Well, they have their internal order. So it's actually an ordered hashmap that's being called an array. And you can produce an array which has only integer keys starting with 0, but with non-sequential internal (iteration) order.
This array weirdness has some non-trivial implications. `json_encode` (serializes argument to JSON) assumes an array corresponds to a JSON array if its keys are consecutive integers in increasing order starting with 0, otherwise the array becomes a JSON object. `array_filter` (filters arrays/hashmaps using callback predicate) preserves keys, so it will punch holes in the int key sequence if non-last items are removed, thus turning arrays into hashmaps and changing your JSON structure if you forget to discard keys before serialization.
You may wonder how JSON deserialization works, then? There's a special class for deserialized JSON objects, `stdClass`. It's basically a hashmap too, but it's an object, not an array, and all functions that would normally accept arrays won't work with it. So basically its only use is JSON (de)serialization. You can even cast arrays to objects, producing `stdClass`.
Bonus PHP trivia:
Many functions return nonsensical values. `preg_match`, the regex matching function, returns 1 for success, 0 for no matches and false for malformed regular expression. PHP supports exceptions, so it could just throw one on errors. It would even make more sense to return true, false and null for these three cases. But no, 1, 0 and false. And actual matches are returned by output arg.
`array_walk_recursive`, a function supposed to recursively apply callback to each element of an array. That's what docs say. It actually applies it to leafs only. It will also silently accept object instead of array and "walk" it, but without recursing into deeper objects.
Runtime type enforcing is supported for function arguments and returned values. You can use scalar types, classes, array, null and a few special keywords. There's also a `mixed` keyword, which is used in docs and means "anything". It's syntactically valid, the parser will accept it, but it matches no values in runtime. Calling such function will always cause a runtime error.
Strings can be indexed with negative integers. Arrays can't.
ReflectionClass::newInstanceWithoutConstructor: "Creates a new class instance without invoking the constructor". This one needs no commentary.
`array_map` is pretty self-explanatory if you call it with a callback and an array. Or if you provide more arrays of equal length via varargs, callback will be called with more arguments, one from each array. Makes sense so far. Now, you can also call `array_map` with null instead of callback. In that case it treats provided arrays as rows of a matrix and returns that matrix, transposed.5
So terrible language in so many ways, the code is a absolute mess, the shit of the callback hell of functions inside functions inside functions.
The only good thing is it's getting better with each ES iteration, but it is still a really big piece of crap with hundreds of frameworks.13
I have successfully employed a function that uses recursion....
Because I stubbornly tried every possible iteration of the code until it became right.
I still don't get why it works.7
Part of the commit message I wrote yesterday after discovering that I used break instead of continue to skip a foreach iteration.
Apple... Isn't it obvious?
They once built machines and software that were tested and ready for customers but they went into a direction where saving money and generating more income has the highest priority.
The more recent the version (hard- and software) the more unstable it became. On top of that the crap they produce gets more expensive each iteration. I do own a 2015 MB Pro, that's it. I used to own:
- iPhone X
- MB Pro 2017
- Apple Watch
- Apple TV
- iPad Pro
... All at the same time ... But I sold everything and switched (back) to Android and Linux and no tablet at all. The MB Pro I own is just my travel notebook because of battery life.
I'm very disappointed of Apple's strategical direction and that's why I'm boycotting it as good as I can.13
If this isn't the worst thing.
I was asked to develop a WordPress plugin as an intern developer and I've been on it since last week. I got stuck when i finally had the loops running but couldn't find a way to format the output without overwriting the existing values on each iteration.
For the last one week I've been showing the progress on my code to the CTO and this is how it has been.
Me: Hello. Everything is coming along fine, I have most of the functions running properly, do you mind looking into the algorithm?
CTO: Oh not at all, let's see what you got. Omg great code for an intern. I think you should add a new variable there and maybe clean up that function over there because it's deprecated now and yeah HaHa, Great work.
Me: Thanks xD I'll have it finished latest next week.
CTO: Oh great. I can't wait to see what you'd have by next week so we can install it on our WordPress.
*Next finally week comes and I'm done with the code.
Me: Hello, I'm done with the entire code! Want to take a look? The plugin works just exactly as described.
*CTO takes a look
CTO: This is completely bad programming practice, so you are running 4 nested loops that all send queries to our data base and make changes to data. This would have a very drastic effect on the server considering the traffic we get.
Me: But you saw this exact code last week and said it was okay, I only changed some CSS since the last time.
CTO: Omg, we can't accept this, you have to develop it again from the scratch without using those loops and queries.
Me: What? Okay, fine. Any hints?
CTO: Just start. That's the greatest hint I could ever give. And also, always have a plan before you begin.
Me: Yeah, thanks for those. It's the first time I'm hearing them and they would totally be applicable to building this thing.2
I really think there should be a subject in every CS course to teach us how to handle/work-under Grade-A assholes and dumbfucks. Not that it would help, but atleast warn us on what we are getting into.
In my opinion, development is not *that* hard or frustrating but is made so by these shitty people. But again, what do I know.
I was scolded by my boss for using for-loop to iterate through an array recently. Apparently for-loop is not used in real world projects and this iteration should be done "in-memory". My colleagues and I are still trying to understand and process that.
I was asked to add fitbit integration to a project within 2 hours just because I had "already done it a week ago" in *another* project. Luckily, it was then given to a "senior" developer who took 4 days for it and essentially copy-pasted my work without much changes, ofcourse it stopped working every now and then.
I am given unreal deadlines on my tasks, on technologies I haven't worked on before, and then expected to churn out production ready code with no bugs in them.
My boss literally just sends me the links of 1st three google results on the problems I encounter and report, after humiliating me ofcourse. Yes, I did google it and yes I went through all I could find from Google forums to GitHub issues. When the library/plugin author himself says that this feature is not yet available, don't expect me to develop it in 2 hours you dumbfuck.
And for the love of God, please stop changing the data model every single day and justify it with agile development. Think before making any changes to it. Ever heard of Join queries? Foreign keys? Or any other basic database concepts.
We reached a point where each branch in the repo had different data model. Not kidding. And we were a team of just 4 developers. Atleast inform us when you change models after discussing it with your shit for knowledge "senior" developer, so we don't have to redo it all over again. The channels on slack are not for sharing random articles only.
I am just waiting to complete my year here.
I should have known what I got myself into the day he asked me to remove the comments I had added to explain what my code does. Why you ask? Because "we don't write comments".
My coworker is... something else. He's "coded in Java for six years", bear in mind and this is a bit of .py code he's written. First a doNothing() function (probably didn't hear about pass) and then there's about 400 lines of creating values. No iteration whatsoever. I have no idea how he's got the job. Not to mention that whenever he talks about anything technical it's like listening to Gertrude from Accounting talking about 'mouse not working'.11
Today I celebrate nice round birthday 100000b. There will not be another one like this for 32 years.8
So, I've been working as a developer for 15 years almost. I recently started what could reasonably be described as my dream job. As in absolutely fucking awesome. Really interesting product, sane technology, nice co-workers, decent salary, 100% remote.
So, why am I suffering from motivation issues? I find it difficult to get started on the simplest tasks. and looking at the check-ins from my coworkers is intimidating. I had a phase of burnout previously so I'm watching that in myself too...
So far the best solutions I've found are.
1 Coffee, lots of coffee.
2 quick catch-up calls so that I'm reassured I'm actually doing the right work and the quality is good enough.
3 following TDD strictly and not thinking too far ahead on each iteration. (I recommend "99 bottles of OOP")9
We did retrieve the whole list 20 lines ago, didn't we?
Well, who cares... Let's retrieve it again IN A LOOP, im EACH ITERATION.
and then for good measure lets make another query for each item, each time we retrieve the list. Why not?
I have to make an effort not to swear right now. I have been asked to optimize a particular oiece of code...
I ask for your help.
I need to pass this exam, and at the same time a client is angry.
I invoke you.
Like the function I'm in.
A function of time, a function that will probably never halt but you cannot prove it. You hope it will stop soon, but deep inside you know it will continue to compute.
I beg you, Coffee. Make this function of procrastination stop. Please.
I see no escape.
It is a tail-recursive function. You realize it as soon as you reach the end.
You can do nothing about it, you're trapped inside this loop. At each iteration you hope to reach the bottom, but you never know. You can only hope that the bottom is close.
This is the last one, you keep repeating to yourself.
Please Coffee, let it be a non-pure function.
Make the environment change.
Only then we can be saved.3
you know what i !love?
-project managers that can't manage something as simple as pivotal tracker
-project managers that schedule repeated stakeholder demo sessions when none of my stakeholers show up (ever)
-project managers that hold repeated grooming sessions that no one gives a fuck about because they can't manage what the fuck is going on the current iteration and therfore cannot forecast a proper next iteration
-project managers that complain about what doesn't get done in a current iteration because they don't don't pay attention to high priority stories that are added by developers in the current iteration even though they have (OWN) pivotal tracker
-project managers who have no clue about the business but want to turn grooming sessions into some sort of requirements gathering meeting only so they can appear halfway competent in the stupid little pivotal tracker notes
-cats that can't decide whether they want to go outside or stay inside
i'll take cats. at least their cuddly. sometimes. fuckers.2
Next week I'm starting a new job and I kinda wanted to give you guys an insight into my dev career over the last four years. Hopefully it can give some people some insight into how a career can grow unexpectedly.
While I was finishing up my studies (AI) I decided to talk to one of these recruiters and see what kind of jobs I could get as soon as I would be done. The recruiter immediately found this job with a Java consultancy company that also had a training aspect on the side (four hours of training a week).
In this job I learned a lot about many things. I learned about Spring framework, clean code, cloud deployment, build pipelines, Microservices, message brokers and lots more.
As this was a consultancy company, I was placed at different companies. During my time here I worked on two different projects.
The first was a Microservices project about road traffic data. The company was a mess, and I learned a lot about company politics. I think I never saw anything I built really released in my 16 months there.
I also had to drive 200km every day for this job, which just killed me. And after far too long I was finally moved to the second company, which was much closer.
The second company was a fintech startup funded by a bank. Everything was so much better than the traffic company. There was a very structured release schedule, with a pretty okay scrum implementation. Every team had their own development environment on aws which worked amazingly. I had a lot of fun at this job, with many cool colleagues. And all the smart people around me taught me even more about everything related to working in software engineering.
I quit my job at the consultancy company, and with that at the fintech place, because I got an opportunity I couldn't refuse. My brother was working for Jordan Belfort, the Wolf of Wallstreet, and he said they needed a developer to build a learning platform. So I packed my bags and flew to LA.
The office was just a villa on the beach, next to Jordan's house. The company was quite small and there were actually no real developers. There was a guy who claimed to be the cto of the company, but he actually only knew how to do WordPress and no one had named him cto, which was very interesting.
So I sat down with Jordan and we talked about the platform he wanted to build. I explained how the things he wanted would eventually not be able with WordPress and we needed to really start building software and become a software development company. He agreed and I was set to designing a first iteration of the platform.
Before I knew it I was building the platform part by part, adding features everywhere, setting up analytics, setting up payment flows, monitoring, connecting to Salesforce, setting up build pipelines and setting up the whole aws environment. I had to do everything from frontend to the backest of backends. Luckily I could grow my team a tiny bit after a while, until we were with four. But the other three were still very junior, so I also got the task of training them next to developing.
Still I learned a lot and there's so much more to tell about my time at this company, but let's move forward a bit.
Eventually I had to go back to the Netherlands because of reasons. I still worked a bit for them from over here, but the fun of it was gone without my colleagues around me, so I quit last September.
I noticed I was all burned out, had worked far too much, so I decided to take a few months off and figure out what I wanted to do with my life. I even wondered whether I wanted to stay in programming.
Fast forward to last few weeks. I figured out I actually did want to work in software still, but now I would focus on getting the right working circumstances. No more driving 3 hours every day, no more working 12 hours every day. Just work close to home and find a company with the right values.
So I started sending out resumes and I gave one recruiter the chance to arrange some interviews too. I spoke to 7 companies in the span of one week. And they were all very interested. Eventually I narrowed it down to 2 companies and asked them for offers. And the company that actually had my preference offered me significantly more than I asked for, which settled the deal.
So tomorrow I'm officially signing with them, and starting next week I'll be developing in Kotlin, diving into functional programming and running our code in serverless environments. I'm very excited!
Was wondering why my callback wouldn't run when I intended.
> console.log each iteration
> realizes it skips the goal and goes up one
> decided to cheat use greater than instead
> ACCIDENTAL RECURSION
> Oh, there's the problem
> Thinks about going to bed for the night7
4 months into the journey at an ambitious streaming startup we, a team of 10 engineers (primarily full stack), sets up a tiny and performant express.js api setup.
We document plans for improving the maintainability, including outlining specific practices (not very different from general node best practices) that need to be followed for all new development.
Enter a new engineering manager (dedicated backend manager), henceforth referred to as S, with a rat face and brain that belongs in a rat hole.
S: let's push this new feature out asap
Dev: it'll need a couple of weeks to get done right
S: let's push out a functional version tomorrow, and revamp in the next iteration
Dev: ... (long pause) there's documented practices specifically directing against this
S: can you not do it by tomorrow
Dev: not if it needs to be done right
S: all you need to do is.. (simplifies changes spanning 5 modules into a 3 line summary)
Dev: yes, (outlines how each changes chains into the others, and how to keep the development maintainable for atleast a few months)
S: (interrupts every sentence saying "yes dev, I understand, yes yes")
Dev: could you please tell me how you expect me to connect (outlines two modules that would fail unless developed as standalone services)
S: Yes dev, I understand, yes yes. I don't have much experience with Node.js, so I can't tell you that.
Our.. entire.. backend.. stack.. is.. Node. (Months of motivation, cultivated through hard work over late nights, dies inside)
I need a J and some sleep.6
Going over his first iteration of his assigned project...
Me: "This looks awfully familiar..."
"Senior Developer": "Well, I took some inspiration from your apps"
Me: "No, you copied and pasted all of it, down to my breadcrumbs..."
Senior Developer: "No, I only made it LOOK like yours, I didn't copy any of your code..."
Aws Lambda and serverless framework. Yes FaaS is cool. Love it. But it is pain in ass when you have the only way for you deploy is zip the fucking code with all the dependencies. Comm'on AWS you can do better. Look at azure functions. Please give me a git deployment support. Please I beg. Each test iteration takes like for ever. Also no proper local emulator. Fuck you AWS. Fuck you serverless.3
A random story that just popped back into my head while reading another rant:
Long ago, we developed our own webmail platform at the request of clients. After it was finished, it was never updated and eventually turned into an outdated insecure steaming pile of crap. Up until ~2015, it looked like the first iteration of AOL Mail from the 1990s (and it functioned as such too.) Years, we decided to sunset the platform, and allotted 6-months or so to transition all the active users off the platform and over to an alternative email provider. We had to call each client multiple times and send multiple emails with a deadline detailing when the service would be shut down, and we'd explain that if they didn't transition over to a new service and transfer all their emails before that date, then the emails would be lost forever. Lo and behold, a handful of clients ignored our repeated contact attempts, and we shut down their email service (as we told them that we would.) Of course, they called screaming and panicking "OUR EMAIL IS DOWN OUR EMAIL IS DOWN WE'RE LOSING MONEY FIX IT NOW!!!!," and we told them "We attempted to contact you multiple times, and you neglected to return our numerous calls or emails. We're happy to help you transition your old email addresses to this new provider, but because you neglected to follow the cushy deadline we provided you, all of your emails are gone."
Of course, they denied having ever received our calls/emails, and we'd have to provide them with our outgoing call recordings to prove that we did in fact contact them multiple times. Then they'd blame the mishap on their secretary, who would blame it on the intern, who would blame it on the IT guy, who would blame it on the janitor, and so on and so forth.
Moral of the story: always keep outgoing call recordings when you're sunsetting a product.1
Creating a stripped down version of a product is a big red flag to me (e.g. "easy/light mode").
It means the main product is too complicated; it handles too many things. Instead, shift the focus back to the core of the product by removing features.
In the our day-to-day it is completely normal to stumble upon things that used to work but now have been changed: they have been deprecated.
Deprecating and removing features should be added to any product iteration. Thus being "normal" and a common occurrence in any changelog; just like features and bug fixes.
This gives non-tech product owners "permission" to remove bloat. Devs stop whining about "the big rewrite". And end-users don't suddenly have to learn yet another tool with "basic" features missing.
I think the best example is google (https://killedbygoogle.com/) and the worst is the amazon shopping website (what a mess!).3
So, I've had a personal project going for a couple of years now. It's one of those "I think this could be the billion-dollar idea" things. But I suffer from the typical "it's not PERFECT, so let's start again!" mentality, and the "hmm, I'm not sure I like that technology choice, so let's start again!" mentality.
Or, at least, I DID until 3-4 months ago.
I made the decision that I was going to charge ahead with it even if I started having second thoughts along the way. But, at the same time, I made the decision that I was going to rely on as little external technology as possible. Simplicity was going to be the key guiding light and if I couldn't truly justify bringing a given technology into the mix, it'd stay out.
That means that when I built the front end, I would go with plain HTML/CSS/JS... you know, just like I did 20+ years ago... and when I built the back end, I'd minimize the libraries I used as much as possible (though I allowed myself a bit more flexibility on the back end because that seems to be where there's less issues generally). Similarly, any choice I made I wanted to have little to no additional tooling required.
So, given this is a webapp with a Node back-end, I had some decisions to make.
On the back end, I decided to go with Express. Previously, I had written all the server code myself from "first principles", so I effectively built my own version of Express in other words. And you know what? It worked fine! It wasn't particularly hard, the code wasn't especially bad, and it worked. So, I considered re-using that code from the previous iteration, but I ultimately decided that Express brings enough value - more specifically all the middleware available for it - to justify going with it. I also stuck with NeDB for my data storage needs since that was aces all along (though I did switch to nedb-promises instead of writing my own async/await wrapper around it as I had previously done).
What I DIDN'T do though is go with TypeScript. In previous versions, I had. And, hey, it worked fine. TS of course brings some value, but having to have a compile step in it goes against my "as little additional tooling as possible" mantra, and the value it brings I find to be dubious when there's just one developer. As it stands, my "tooling" amounts to a few very simple JS scripts run with NPM. It's very simple, and that was my big goal: simplicity.
On the front end, I of course had to choose a framework first. React is fine, Angular is horrid, Vue, Svelte, others are okay. But I didn't want to bother with any of that because I dislike the level of abstraction they bring. But I also didn't want to be building my own widget library. I've done that before and it takes a lot of time and effort to do it well. So, after looking at many different options, I settled on Webix. I'm a fan of that library because it has a JS-centric approach. There's no JSX-like intermediate format, no build step involved, it's just straight, simple JS, and it's powerful and looks pretty good. Perfect for my needs. For one specific capability I did allow myself to bring in AnimeJS and ThreeJS. That's it though, no other dependencies (well, at first, I was using Axios because it was comfortable, but I've since migrated to plain old fetch). And no Webpack, no bundling at all, in fact. I dynamically load resources, which effectively is code-splitting, and I have some NPM scripts to do minification for a production build, but otherwise the code that runs in the browser is what I actually wrote, unlike using a framework.
So, what's the point of this whole rant?
The point is that I've made more progress in these last few months than I did the previous several years, and the experience has been SO much better!
All the tools and dependencies we tend to use these days, by and large, I think get in the way. Oh, to be sure, they have their own benefits, I'm not denying that... but I'm not at all convinced those benefits outweighs the time lost configuring this tool or that, fixing breakages caused by dependency updates, dealing with obtuse errors spit out by code I didn't write, going from the code in the browser to the actual source code to get anywhere when debugging, parsing crappy documentation, and just generally having the project be so much more complex and difficult to reason about. It's cognitive overload.
I've been doing this professionaly for a LONG time, I've seen so many fads come and go. The one thing I think we've lost along the way is the idea that simplicity leads to the best outcomes, and simplicity doesn't automatically mean you write less code, doesn't mean you cede responsibility for various things to third parties. Those things aren't automatically bad, but they CAN be, and I think more than we realize. We get wrapped up in "what everyone else is doing", we don't stop to question the "best practices", we just blindly follow.
I'm done with that, and my project is better for it!
I am starting new iteration of microservice X.
The new repository is named: new-new-new-X
And as you suspect, previous iterations are named:
My first software.. Okay. So first time I ever attempted was with my father, i was around 8 or so, i remember very little from it, but in nutshell, i somehow ended up at his job having day off school or something, no idea.
Apparently he was bored, so he decided yo show me... Basic. Yep, thats right. Frking basic. Anyway, he shown me some really basic stuff in basic, and pushed the envelope really hard, just trying to force into me more and more in these 8hrs. I started with filling screen with "o" characters. Most of times he was telling me what to write with elaborate explanation why. At the end of the day, we finished with simple maze game where player was "o" and maze walls was #. Without any goal, or anything.
Next day i was at point 0, understood nothing from it except how to handle keystrokes (and belive me, that for me was huge mindblow, and even bigger mindblow that it actually made prefect sense).
I dont remember much, but later i started with father-assisted c++ and some pascal. I immidietly loved c++ but dropped learning it for (NullPointer) reason.
Thats not really project imho, so now time for my actual first project.
It was about time when ARK survival evolved was a fresh thing, i was playing it a lot. Server admin became buddy. We all complained about max level cap, but to change it in config you needed to input whole new xp curve.
At that time i had great familiarity with google and computers, some thought i was some kind of PC god (seriously I heard someone saying so about me lol) just becouse I could ressurect most cases of broken windows. And I had next to zero programming expirience. It was about to change. I made first c++ actual program, that was making xp curve for you. It took me just bearly 2 days and was series of cin, cout, one file open, some maths in loop, and done. Maths was very bad. But i pushed it into steam forums, and one guy responded how.bad my math was, so we colabed on making 2 iteration. Took around week. Than half a year passed and we wanted go big. Go gui. I had no freaking idea how making gui looks like. Community liked my cli tool, we had quite a lot of downloads, why not go GUI. And thats when I discovered QT framework. And we had few features in mind... It took us half a year to make it. From 60 lines of code i jumped into 1k lines of code. We pushed it and immidietly started working on 4th version with much greater customizability etc.
Than i finished 18 and found a job. Job in php. I got it becouse I made this project.
Now project is abandon. This project also gave me a lesson that donations will not feed you.
Edit: and before you think about my father that he was nice person to show me code, trust me, i dont know bigger dick than him.
I don't generally agree with the death sentence, but maaaybe it should be allowed specifically for the person who created the current iteration of Windows Update. Just got woken up by a video playing on my computer, which happened because Windows fucking Update thought it was a good time to reboot for no reason.
- finish mEMeOs
- learn about cryptography and finish dogecrypt
- finish translation iteration and get it to 2500 unique visitors on awstats
- make a good, solid android app
- tell people i know python (i dont😉)
I guess that’s it ¯\_(ツ)_/¯
I kinda wish there were more…2
Is it just me that feels there now no longer a need to upgrade your phone whenever the next iteration is out?
The next big thing I can see is VR.... and well that's nowhere near happening as much as they've tried...8
Our "agile" process uses one-month long sprints, ending on the last day of the month with a demo. (I'll rant some other time about non-consistent iteration lengths.)
Our sprint ends today (Monday). What was the most logical time to introduce changes that affect the architecture and break every single build? How about 4PM last Friday?
We're still waiting on the build breaker to show up while trying to figure out what the heck we can cobble together and run to show that we actually did something in the last month.2
Got the iphone mini cuz I was ecstatic to have a small phone that I could use on one hand on the IOS ecosystem.
Found out that apple might discontinue the line for the next iteration due to "poor sales".
It really doesn't matter to me what operating system I am using for the phone, I wanted to give the IOS ecosystem a go with the release of this model. But man it kinda hurts that everyone is hell beant on large screens. Even the standard pixel phone feels too big. I do not want a "tiny" phone, even if one of my favorite Android devices was my Sony Ericsson XPERIA. To me the size of the iphone 5s was perfect. I just want companies to go to that again man. And I do know that there are models for Android that are capable of reaching similar sizes, its just that finding a premium level experience on a phone that size from the Android size gets hard to adjust to carriers etc.
I am liking this little fucker though, very speedy, nifty, decent battery time, camera etc.18
My non-developer friend (who knows some very rudimentary basics about front-end web dev through me) asked ChatGPT to create a game with an arrow-key (left, right) movable player that shoots bullets.
He pasted the answer in a jsfiddle. The first iteration didn't work. It used DOM and CSS, so I told him he needed to instruct it to use HTML canvas. Lo and behold: https://jsfiddle.net/mehp8jay/16
A programmer's wife sends him in a grocery store with instructions "Get a loaf of bread, and if they have eggs, get a dozen". He comes back with a dozen loaf of Bread and Tells her "They had eggs"4
I used to love JS until I learned it properly. Shit is a fucking hodge-podge of concepts. Still not as mature as I thought it was. And each new iteration is just fixing the mistakes of its past. Fucking language is a mistake in itself!8
I'm learning Rust as a case study for my own programming language. It's funny how many approaches exist to the humble loop.
- In classic procedural languages, a loop's job is to repeat actions, and as such it provides a multitude of tools to control this repetition.
- In all languages with iterators, a for-in loop is a construct that does something with every element of a collection. In languages with both iterators and generator functions, this can even be used to define a sequence in terms of another.
- In Rust, a loop is an expression that obtains its value through repeated execution. It can also be used like a classic loop, of course, but this is the interesting part.
- My little language is a functional language, so "loop" is the Y combinator. To loop means to define the value of an expression in terms of itself. It's the only looping construct, gets special treatment from the type checker and it's also used in recursive type definitions.
Story of my first successful project
Being part of a great team, I've shared in a lot of successes, one I am particularly proud of is my first attempt to use agile methodologies in a deeply waterfall-managment culture.
Time was June/July-ish and we applied for a national quality award where one key element in the application stated how well we handled customer complaint resolution.
While somewhat true (our customer service is the top-shelf good stuff), we did not have a systematic process in resolving customer complaints. Long story short,
the VP lied on her section of the application. Then came the 'emergency', borderline panic meeting (several VPs, managers, etc) to develop a process to better manage
complaints before the in-house inspection in December.
As most top priority projects go, the dev manager allocated 3 developers, 2 DBAs, and any/all network admins we would need (plus all the bureaucratic management that wanted their thumb in the pie).
Fast forward to August, after many, many planning meetings, lost interest, new shiny bouncing balls, I was the only one left on the project. The VP runs into the dev manager in the hallway and asks "Is my program done yet? If its not ready before December with report-able data, we will not win the award."
The <bleep> hit the fan...dev manager comes by...
Frank: "How the application coming along? Almost done?"
Me:"No, haven't really started coding. You moved Jake and Tom over to James's team, Tina quit, and you've had me sidetracked helping other teams because the DBAs are too busy."
Frank: "So, it's excuses. You really think the national quality award auditors care about your excuses? The specification design document has been done for months. This is unacceptable."
Me: "The VP finished up her section yesterday and according to the process, we can't start coding until the document is signed off."
Frank: "Holy f<bleep>ing sh<bleep>t! No one told you *you* couldn't start. You know how to create tables and write code."
Me: "There is no specification to write to. The design document is all about how they plan on reporting the data, not how call agents will be using the application to serve customers."
Frank: "The f<bleep> it isn't. F<bleep>ing monkeys could code against that specification, I helped write it! NO MORE F<bleep>ING EXCUSES! This is your top priority from now on!"
I was 'cleared' to work directly with the call center manager and the VP to develop a fully integrated customer complaint management system before December (by-passing any of the waterfall processes that would get in the way).
I had heard about this 'agile' stuff, attended a few conference tracks on the subject, read the manifesto, and thought "I could do this.".
Over the next month, I had my own 'sprints' and 'scrums' with the manager (at the time, 'agile' was a dirty word so I had to be careful of my words and what info I shared) and by the 2nd iteration had a working prototype.
Feature here, feature there (documenting the 'whys' and 'whats' along the way), and by October, had a full deployed application.
Not thinking I would get a parade or anything, the dev manager came back from a meeting where the VP was showing off the new app to the other VPs (and how she didn't really 'lie' on the application)
Frank: "Everyone is pleased how well the project turned out, except one thing. Erin said you bothered him too much with too many questions."
Me: "Bothered? Did he really say that?"
Frank: "No, not directly, but he said you would stop by his office every day to show him your progress and if he needed you to change anything. You shouldn't have done that."
Me: "Erin really seemed to like the continuous feedback. What we have now is very different than what we started with."
Frank: "Yes, probably because you kept bothering him and not following the specification document. That is why we spend so much time up front in design is so we don't waste management's time, which is exactly what you did."
Me: "We beat the deadline by two months, so I don't think I wasted anyone's time. In fact, this is kind of a big win for us, right?"
Frank: "Not really. There was breakdown in the process. We need better focus on the process, not in these one-hit-wonders."
End the end, the company won the award (mgmt team got to meet the vice president, yes the #2 guy). I know I played a very small, somewhat insignificant role in that victory, I was extremely proud to be part of the team.
So I recently finished a rewrite of a website that processes donations for nonprofits. Once it was complete, I would migrate all the data from the old system to the new system. This involved iterating through every transaction in the database and making a cURL request to the new system's API. A rough calculation yielded 16 hours of migration time.
The first hour or two of the migration (where it was creating users) was fine, no issues. But once it got to the transaction part, the API server would start using more and more RAM. Eventually (30 minutes), it would start doing OOMs and the such. For a while, I just assumed the issue was a lack of RAM so I upgraded the server to 16 GB of RAM.
Running the script again, it would approach the 7 GiB mark and be maxing out all 8 CPUs. At this point, I assumed there was a memory leak somewhere and the garbage collector was doing it's best to free up anything it could find. I scanned my code time and time again, but there was no place I was storing any strong references to anything!
At this point, I just sort of gave up. Every 30 minutes, I would restart the server to fix the RAM and CPU issue. And all was fine. But then there was this one time where I tried to kill it, but I go the error: "fork failed: resource temporarily unavailable". Up until this point, I believed this was simply a lack of memory...but none of my SWAP was in use! And I had 4 GiB of cached stuff!
Now this made me really confused. So I did one search on the Internet and apparently this can be caused by many things: a lack of file descriptors or even too many threads. So I did some digging, and apparently my app was using over 31 thousands threads!!!!! WTF!
I did some more digging, and as it turns out, I never called close() on my network objects. Thus leaving ~30 new "worker" threads per iteration of the migration script. Thanks Java, if only finalize() was utilized properly.1
Are sql joins a bad practice? :o
I recently did some work on a page for a site ive never worked on cause my boss told me to. So they recently added product detail video urls to a table that has a relationship to the products table. The existing code was querying for the products on that said page and then during the loop that was outputting the products ,there was another query for getting the url for the current iteration/product. Told my coworker that this imo was pretty inefficient way to do it and switched it to a join and did 1 query then output that but his words were "The way it is now maybe ineffecient in your opinion but it works. Also combining inner joins with left or right is not a good practice. If the data is changed upstream the entire query would need to be redone to accommodate the change". Mind you that they query views a lot which are all made from queries that use joins and I'm also pretty sure these views were written by someone who used to be here because these guys are not good at sql or at least that's what there queries show. I'm at the point now where I'm realizing that my boss and this other guy don't give a fuck about efficiency or doing things the right way they just want it "to work". So this coworker changed my query back to the way it was because he said it broke the shopping cart even though that was already broken when I started... What is life? Maybe I'm the stupid one?7
why cant google just index my fucking website?
its been two weeks and the last one I did took so little time
if you go to https://google.com/search/... it shows up, but not the most common query for the site https://google.com/search/...
I hate project managers trying to stay relevant to a agile development methodology. Our PM doesn't care if we are working and providing value to the customer, only about checking off his Project check boxes.
tech lead CANCELS Monday stand-up becuase they cannot attend. and I work and status and update my tasks in or virtual task board. I forget to send a message mentioning I'll be kissing Tuesday standup. Then he sends me emails like the following sent to me, my manager, and my tech lead: "please remember to notify your team if you cannot attend the standup, and to send an agile status to the team. This is something that is required and not optional. We are trying to firm up all stories and tasks and need to hear a status. We are in week 1 of iteration 4.3. Thanks."
I'm coding and delivering value to the customer. Wtf are you doing dude?
Feeling over stressed, over worked and highly underpaid for all this effort. Worst of all I feel the passion leaving me for this work.
I graduated a boot camp last April and was blessed to contract part time at a startup learning how to work in the unity game engine. The team is two other guys, both super smart snd been working in this field for a long time. Since then I’ve added personal projects, finished a data structures and algorithms course and started the Leet code grind. I told this startup that I’d start looking for full time employee positions soon and they understand. They couldn’t offer me much money, or stock options, just experience they said. I feel like I’ve basically been grinding 24/7 since May. I’m going to run out of money soon and it’s all starting to take a toll on my body and mind. I never really sit on the couch or watch something anymore because I feel I should be doing something productive. This just makes me feel like everything I’m doing is meaningless and without impact. I feel like a wheel turning endlessly in sand and not moving forward. I even feel it zapping my passion for developing.
I just can’t help but feel that I’m burning out here. I have a new experimental feature to do for the startup and the amount of things to learn seems overwhelming. Especially with Leet code and interviews coming up. The two other devs on the team are extremely busy as this is a part time endeavor for everyone. I’m also in a relationship I started to feel detached from which causes it’s own stress. I love VR and AR which is why I chose this startup to learn Unity. Now I just feel like I’m dividing my efforts too much. I’m shitty at unity and also less good at web dev than I would have been if I focused on it purely after boot camp grad. On the plus side I will say I’m doing what I want. I just can’t help but feel like that damn tire in the sand turning without traction. And I feel the patience in me for self learning the basics and iteration over a complex project is waning. Without patience the learning is rushed and I don’t learn shit. I also make dumb mistake and “hope” I don’t run into errors. I feel I’m just trying to bang it out for the startup instead of use it learn cool shit. Anyways it feels good to rant. I can’t wait for a full time job, established work hours, and decent pay so I can live life and have off time.
I assume wherever I go I’ll always be in a spot where I need to figure how to get xyz done with minimal help or oversight. I just would like to be paid for it.8
One of the most stupid phrases I hear again and again is "to not reinvent the wheel". Guess what, if no one had ever dared to take the first iteration of something, throw it out the window and start from scratch, we'd still be living in the stone age. If you're gonna use a library or a framework, fine, that's totally valid. Just make sure to actually understand the tools and code you're working on. People now tend to use these without knowing exactly what they do. And then once the original authors retire, no one knows what to do if something breaks. There can't be innovation if you don't try to reinvent. Don't shy away from writing from scratch sometimes.
Opend up my first website project, commits goes back to jan 24 2013 but i think i started coding this project around late 2011 (version 2).
Made with php and i found some interesting TODO's and other stuff, over 1k of handwritten css and right above 10k lines of PHP.
Index.php everywhere (no mod rewrite)
Everything in the www root.
By pixel css.
Thank god this is my own website and not for someone else, think i would be tourtured to death if someone had to maintain this heap of shit. To think of i probobly spent around 1000 hours on all iteration.
- Lead: we need an iteration of 3 weeks to stabilize our code (bugs, code quality, ...)
- Manager: ok go ahead
- Lead: cool thank
3 weeks later one day before the end of the iteration :
- Manager: are you ready for the demo ?
- Lead: ...
- Manager: I invited the boss and the clients
- Lead: ...
We are discussing what to show them.5
List iteration - Implementation
How do you manipulate lists? In what language?
In my very limited knowledge:
1. C++ Iterators
2. D Ranges
3. Linked Lists
See for ranges vs iterators http://informit.com/articles/...
Does anybody have links for advantages for iterators? Why should I use them?2
I'm starting to look at how to get devices to send data to an endpoint for storage and analysis. I'm looking at AWS iot stuff like core and green grass but then I'm thinking that a REST API could also do the job. I don't need to connect devices to each other (in first iteration). Dont think I need any edge stuff either. Anybody have any experience with this?3
Me : Here, a list with multiple strings, do your job, Foreach block
Code : *do only one iteration*
that code is lazier than me1
I used to work in the culture and entertainment field. Some work days during festivals and tours were long. It wasn’t uncommon for me to work 24h+ straight, but I think the longest uninterrupted work session was during the first iteration of a big music festival, where I ended up doing a 53h (to my recollection) day, then taking a 3h nap, and continuing for another several hours. Dev work is so much easier comparatively in that regard - and the money’s better.
If anyone is good with dart (or) other single threaded programming languages, i have this small doubt about the inner workings of the event loop and such and i would like an explanation if possible.
If you're too lazy to goto the link:
1. I have a future returned from a http request.
2. a future.then is declared that prints the http result.
3. A separate while(true) loop is declared that runs forever that just prints natural numbers.
4. the while loop also has an await future.delay that waits for 1ms before continuing with the next iteration
My question :
1. There's only one thread so how does the http download code run WHILE my main loop is still executing.
2. my future.then event is not processed unless i await a future.delay separately for 1ms. returning control to the event loop ? i don't get it how does adding an event help it process a prior event? It's FIFO ?
When C output questions to an Interview seem like an infinite loop,
But end up simply getting solved on the nth iteration.
And you feel like, if this was in python, this load of crap won't be torturing you!
When you work on a project for months, the newly appointed tech lead says "we all (him, the boss and other colleagues not involved in this project) looked at your code and decided that it should be dropped and we are starting from scratch again....now I'm not against code review (which we never did) so I welcome the input but allow me to vent my frustrations about how this is being done. Also to have a review & verdict without me being present?
So I ask what was so wrong:
* You changed the database structure. Valid, I tried to make your db an actual db with relationships, so I added some foreign keys, delete fields that were never used, all because they told me to use an ORM.
* You used to much logic in setters, validation etc, valid again but this would be something we could look at and fix imho.
* You are passing classes in your constructor, valid I wanted to use DI to make unit testing possible. Ohh but I don't like unit testing so I don't see the point and it makes it to complicated was the response.
So not only was the project cancelled, the new iteration is being developed without me, I'm shunned from all meetings. Ohh and from what I see they are now using 5 tables instead of 25 and completely started the db model from scratch...5
I've been playing around with Nim lately, and I'd have a question. Already asked on StackOverflow, but my question disappeared without a trace (if you allow others to delete stuff, at least notify me it got deleted!).
Question is: if I have "defer: doSomething()" in an iterator, does doSomething get called when I break iteration early (before consuming everything) using a break statement?1
So turns out my manager wants me to do QA automation (not in Espresso btw) of my own items "because we're all in the same team". The weirdest thing is that she's obsessed with "best practices" about daily iteration work such as not starting to work on something until test planning is done (she gets CRAYZEEE about that). Violating one of the core development principles is out the window so I guess the question is am I in a good place to ask for a raise since I'm going to have dual roles?2
I was learning gw basic in school.
Instructor showed us how to draw a circle. I started graphics mode, set red as primary color and gave a loop to the circle, which reduced width at every iteration and turned it into an ellipse.
Woah .... That was the best Opera logo I ever saw
If you got the chance.
Always improve your iteration times!
The faster you can go from change to result. more things could get done.
And more time is left to work on other tasks that always get pushed away.2
What's the correct way to do an iterator in a for loop?
Some teachers tells me that every iterator be named like line and row and other says i and j are the convention and you should name your iterator like that.8
#Suphle Rant 2: Michael's obduration
For the uninitiated, Suphle is a PHP framework I built. This is the 2nd installment in my rants on here about it.
Some backstory: A friend and I go back ~5 years. Let's call him Michael. He was CTO of the company we worked at. After his emigration, they seem to have taught him some new stack and he needed somewhere to practise it on. That stack was Spring Boot and Angular. He and his pals convinced product owner at our workplace to rebuild the project (after 2+ years of active development) from scratch using these new techs. One thing led to the other, and I left the place after some months.
Fast forward a year later, dude hits me up to broach an incoming gig he wants us to collab on. Asks where I'm at now, and I reply I took the time off to build Suphle. Told him it's done already and it contains features from Spring, Rust, Nest and Rails; basically, I fixed everything they claimed makes PHP nonviable for enterprise software, added features from those frameworks that would attract a neutral party. Dude didn't even give me audience. I only asked him to look at the repo's readme to see what it does. That's faster than reading the tests (since the docs are still in progress). He stopped responding.
He's only the second person who has contacted me for a gig since I left. Both former colleagues. Both think lowly of PHP, ended up losing my best shot at earning a nickel while away from employed labour. It definitely feels like shooting myself in the foot.
I should take up his offer, get some extra money to stay afloat until Suphle's release. But he's adamant I use Spring. Even though Laravel is the ghetto, I would grudgingly return to it than spend another part of my life fighting to get the most basic functionality up and running without a migraine in Spring. This is a framework without an official documentation. You either have to rely on baeldung or mushroom blogs. Then I have to put up with mongodb (or nosql, in short).
I want to build a project I'm confident and proud about delivering, one certified by automated tests for it, something with an architecture I've studied extensively before arriving at. Somewhere to apply all the research that was brainstormed before this iteration of Suphle was built.
I want autonomy, not to argue over things I'm sure about. He denied me this when we worked together. I may not mind swallowing them for the money, but a return to amateur mode in Spring is something I hope I never get to experience soon
So, I'm wondering: if his reaction reflects the general impression PHP has among developers globally, it means I've built a castle on a sinking ship. If someone who can vouch for me as a professional would prefer not to have anything to do with PHP despite my reassurance it'll be difficult to convince others within and beyond that there could be a more equipped alternative to their staple tool. Reminds me of the time the orchestra played to their deaths while the titanic sank16
Jordan Castillo: Happy birthday sire.
Eddie: Thank you Maestro.
Jordan Castillo: 😊 How do you feel now that your life's code just ran past an age++?
*10 minutes later.
Jordan Castillo: Oh what? I didn't see your reply.
Jordan Castillo: You maybe forgot to echo it out.
Eddie: Oh well Jordan, I feel like an iteration I guess.2
Today I submitted to code review the first iteration of a microservice done with Ramda and flow by request of my collegues. This is the first time they look at anything similar to functional code or typed js, and only one of them took the time to actually do a review.
I really like having my code reviewed and reviewing others', but please don't pester me to make a PR for a microservice you'll never look only to bail off as soon as you see something new that scares you. Buckle up and learn new stuff!