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 - "5 easy steps"
-
(Written March 13th at 2am.)
This morning (yesterday), my computer decided not to boot again: it halts on "cannot find firmware rtl-whatever" every time. (it has booted just fine several times since removing the firmware.) I've had quite the ordeal today trying to fix it, and every freaking step along the way has thrown errors and/or required workarounds and a lot of research.
Let's make a list of everything that went wrong!
1) Live CD: 2yo had been playing with it, and lost it. Not easy to find, and super smudgy.
2) Unencrypt volume: Dolphin reports errors when decrypting the volume. Research reveals the Live CD doesn't incude the cryptsetup packages. First attempts at installing them mysteriously fail.
3) Break for Lunch: automatic powersaving features turned off the displays, and also killed my session.
4) Live CD redux: 25min phonecall from work! yay, more things added to my six-month backlog.
5) Mount encrypted volume: Dolphin doesn't know how, and neither do I. Research ensues. Missing LVM2 package; lvmetad connection failure ad nauseam; had to look up commands to unlock, clone, open, and mount encrypted Luks volume, and how to perform these actions on Debian instead of Ubuntu/Kali. This group of steps took four hours.
6) Chroot into mounted volume group: No DNS! Research reveals how to share the host's resolv with the chroot.
7) `# apt install firmware-realtek`: /boot/initrd.img does not exist. Cannot update.
8) Find and mount /boot, then reinstall firmware: Apt cannot write to its log (minor), listed three install warnings, and initially refused to write to /boot/initrd.img-[...]
9) Reboot!: Volume group not found. Cannot process volume group. Dropping to a shell! oh no..
(Not listed: much research, many repeated attempts with various changes.)
At this point it's been 9 hours. I'm exhausted and frustrated and running out of ideas, so I ask @perfectasshole for help.
He walks me through some debugging steps (most of which i've already done), and we both get frustrated because everything looks correct but isn't working.
10) Thirteenth coming of the Live CD: `update-initramfs -u` within chroot throws warnings about /etc/crypttab and fsck, but everything looks fine with both. Still won't boot. Editing grub config manually to use the new volume group name likewise produces no boots. Nothing is making sense.
11) Rename volume group: doubles -'s for whatever reason; Rebooting gives the same dreaded "dropping to a shell" result.
A huge thank-you to @perfectasshole for spending three hours fighting with this issue with me! I finally fixed it about half an hour after he went to bed.
After renaming the volume group to what it was originally, one of the three recovery modes managed to actually boot and load the volume. From there I was able to run `update-initramfs -u` from the system proper (which completed without issue) and was able to boot normally thereafter.
I've run updates and rebooted twice now.
After twelve+ hours... yay, I have my Debian back!
oof.rant nightmare luks i'm friends with grub and chroot now realtek realshit at least my computer works again :< initrd boot failure8 -
Data Engineering cycle of hell:
1) Receive an "beyond urgent" request for a "quick and easy" "one time only" data need.
2) Do it fast using spaghetti code and manual platforms and methods.
3) Go do something else for a time period, until receiving the same request again accompanied by some excuse about "why we need it again just this once"
4) Repeat step 3 until this "only once" process is required to prevent the sun from collapsing into a black hole
5) Repeat steps 1 to 4 until it is impossible to maintain the clusterfuck of hundreds of "quick and simple" processes
6) Require time for refactoring just as a formality, managers will NEVER try to be more efficient if it means that they cannot respond to the latest request (it is called "Panic-Driven Development" or "Crappy Diem" principle)
7) GTFO and let the company collapse onto the next Data Engineering Atlas who happens to wander under the clusterfuck. May his pain end quickly.2 -
!Rant
> Go to co-workers working machine
> install tmux and mps-youtube
> play very subtle sounds from console
> close console but keep session running with tmux
> watch coworker go insane because he can't detect the sound source
How to make your coworker go insane in 5 easy Steps3 -
Everyone and their dog is making a game, so why can't I?
1. open world (check)
2. taking inspiration from metro and fallout (check)
3. on a map roughly the size of the u.s. (check)
So I thought what I'd do is pretend to be one of those deaf mutes. While also pretending to be a programmer. Sometimes you make believe
so hard that it comes true apparently.
For the main map I thought I'd automate laying down the base map before hand tweaking it. It's been a bit of a slog. Roughly 1 pixel per mile. (okay, 1973 by 1067). The u.s. is 3.1 million miles, this would work out to 2.1 million miles instead. Eh.
Wrote the script to filter out all the ocean pixels, based on the elevation map, and output the difference. Still had to edit around the shoreline but it sped things up a lot. Just attached the elevation map, because the actual one is an ugly cluster of death magenta to represent the ocean.
Consequence of filtering is, the shoreline is messy and not entirely representative of the u.s.
The preprocessing step also added a lot of in-land 'lakes' that don't exist in some areas, like death valley. Already expected that.
But the plus side is I now have map layers for both elevation and ecology biomes. Aligning them close enough so that the heightmap wasn't displaced, and didn't cut off the shoreline in the ecology layer (at export), was a royal pain, and as super finicky. But thankfully thats done.
Next step is to go through the ecology map, copy each key color, and write down the biome id, courtesy of the 2017 ecoregions project.
From there, I write down the primary landscape features (water, plants, trees, terrain roughness, etc), anything easy to convey.
Main thing I'm interested in is tree types, because those, as tiles, convey a lot more information about the hex terrain than anything else.
Once the biomes are marked, and the tree types are written, the next step is to assign a tile to each tree type, and each density level of mountains (flat, hills, mountains, snowcapped peaks, etc).
The reference ids, colors, and numbers on the map will simplify the process.
After that, I'll write an exporter with python, and dump to csv or another format.
Next steps are laying out the instances in the level editor, that'll act as the tiles in question.
Theres a few naive approaches:
Spawn all the relevant instances at startup, and load the corresponding tiles.
Or setup chunks of instances, enough to cover the camera, and a buffer surrounding the camera. As the camera moves, reconfigure the instances to match the streamed in tile data.
Instances here make sense, because if theres any simulation going on (and I'd like there to be), they can detect in event code, when they are in the invisible buffer around the camera but not yet visible, and be activated by the camera, or deactive themselves after leaving the camera and buffer's area.
The alternative is to let a global controller stream the data in, as a series of tile IDs, corresponding to the various tile sprites, and code global interaction like tile picking into a single event, which seems unwieldy and not at all manageable. I can see it turning into a giant switch case already.
So instances it is.
Actually, if I do 16^2 pixel chunks, it only works out to 124x68 chunks in all. A few thousand, mostly inactive chunks is pretty trivial, and simplifies spawning and serializing/deserializing.
All of this doesn't account for
* putting lakes back in that aren't present
* lots of islands and parts of shores that would typically have bays and parts that jut out, need reworked.
* great lakes need refinement and corrections
* elevation key map too blocky. Need a higher resolution one while reducing color count
This can be solved by introducing some noise into the elevations, varying say, within one standard div.
* mountains will still require refinement to individual state geography. Thats for later on
* shoreline is too smooth, and needs to be less straight-line and less blocky. less corners.
* rivers need added, not just large ones but smaller ones too
* available tree assets need to be matched, as best and fully as possible, to types of trees represented in biome data, so that even if I don't have an exact match, I can still place *something* thats native or looks close enough to what you would expect in a given biome.
Ponderosa pines vs white pines for example.
This also doesn't account for 1. major and minor roads, 2. artificial and natural attractions, 3. other major features people in any given state are familiar with. 4. named places, 5. infrastructure, 6. cities and buildings and towns.
Also I'm pretty sure I cut off part of florida.
Woops, sorry everglades.
Guess I'll just make it a death-zone from nuclear fallout.
Take that gators!5 -
We were a small startup with only 5-6 developers. I had to design the UI and develop most of the Android frontend, It was quite an easy and fun job for me because I don't get to see people rant about the design that needed to be implemented so, usually I design something that can be easily implemented.
We got 2 projects with a tight deadline and I took care of both project's design part and after completing the design I took the entire frontend of one project and rest of em started working with the other one. Usually we were a strong team and was able to deliver things real quick because we were expert in our intrested fields, I had a fast start in my project where the other project lagged a lot because of the desifn which was hard to implement by them, and the frontend was bo where near to get completed by the deadline and I couldn't help them out because it was all messed up shit handling both projects together.
Finally we were in a situation where none of our project are ready and the deadline was about to hit within a week, so we halted the other project and asked them to join me to complete the project am Working on, I had built most of the Android part and these fellows had a hard time figuring out stuff I made up (yeah, documentation was shit while you go agile), and finally things messed up and I had to work 2 continuous day and night without any sleep just to get the app ready 10 minutes before the official proto presentation.
The best part is I couldn't even get up from my chair and had a headache, fainted instantly when I took a few steps, but the product launch went good.
We fucked uo the code and both the projects just because we weren't available for each other considering the size of the team. Anyway we completed the project but It was a huge failure for us being first time to manage a startup.
Learned a lot of lessons,
Always make a team with people who are good at each of the aspect of development and never divide it to get shit done faster. -
PM comes into my office: "Hey, if <client> asks about his edits, just tell him they're scheduled for this week."
me: "I thought they were scheduled for this week, I thought that you were currently in a meeting to get final specs so you could tell me what needed changed."
PM: "Yeah, he wants to take the plugin from 5 steps down to 3, we told him it wouldn't be a problem and we would have it done this week."
me: "Ok, there are limitations as far as what I can cut out of the process, his tag line when he started as a client was '5 easy steps' and I built something that did what he wanted in 5 steps. Changing things this late in the game is not simple, I'm talking a minimum 6 hours of work."
PM: "Well I tried to make sure that what he wanted was possible but I didn't have a developer in the meeting. It shouldn't change anything that much."
He ended up scheduling a meeting with me and the designer to go over the edits Thursday afternoon. So I will have the new specifications which I said would be a minimum 6 hours of work and I will be given ~10 hours in which to do it. I sure hope nothing unexpected pops up while I'm working on this.
I'm also the only developer this week (and technically speaking I'm junior) since our senior dev wrecked his car over the weekend and isn't planning on being in all week. I'm the only computer literate person in the office of 50 or so, which means that if there is any kind of tech issue I'm ripped away from my desk for 'emergency help'. I have two other sites to get ready for client approval meetings by Friday afternoon and if the clients approve I will be launching their sites that afternoon as well.
The sign on my door currently says "Error 500: unable to handle your request" I need something to throw at these people.4 -
An analytical essay basically requires university students to understand, study, interpret and critique a literary piece, a piece of artwork, a film, trouble or a movement. It can be something which incorporates van Gogh's starry night time, or Shakespeare's Romeo and Juliet.
The idea is to divide and dissect the artwork and figure out the primary factors, how they work on their very down and how do they arrive collectively to perform. In such essays, you shouldn't argue and make the reader accept as true with your factor of view, actually analyze the topic and allow the reader to see what you’re attempting to mention and why.
Comply with those steps to craft a thrilling analytical essay:
1-Find What You Are Interested In:
Look for the element that pursuits you the maximum. Is it a play, or a singular, a movie, or some hassle that is being faced through the society at big.
2-Narrow Your Recognition:
After you are easy about the relevant concept of your paper, you must decide the subject. Write on a topic which you are enthusiastic about because it will make the whole system fun and easy.
3-Enlarge a Thesis Assertion:
Retaining the topic in mind, craft a robust thesis declaration that states the foremost declare, idea and normal reason for the paper.
4-Look for Supporting Proof:
To back up your claim and arguments, do your research and accumulate supporting proof. You have to additionally insert contextual evidence from the textual content that you are reading.
5-Craft an Outline:
Divide the essay into precise sections – advent, body, and end.
6-Proofread & Edit:
Undergo your essay once and cast off all mistakes and typos.
In case you face any problem, in place of filing a poorly-written paper, it’s higher to ask for professional help. Get in contact with a reliable essay creator and ask them to help you together along with your [write my essay](https://www.writemyessay.help) requests.3 -
So this is kinda shocking but expected and deep and with layers:
layer 1 :
I just realised that : AI +Junior dev + 10% senior dev = 1 Senior Dev. This doesn't quite sit well technically, but for certain managers, this logic works and I got to see it working.
So I got cancer and took a sabbatical of 2 months. I am a dev with 6+ yrs of experience, and before I had gone , I was making PRs that consisted of adding features which required 3-4 screens , numerous logics, multiple APIs and which sould add significant impact. Basically a 3-4 days worth of task, all done solely by me to perfection, which comes with years of experience with nitty gritties of android.
And just a month ago, our team was joined by a fresh college passout, who did basic course of flutter, had 0 knowledge of Native Android and was making terrible screens using xml and viewbinding as a part of his initial training.
Now when I come back, I see a weird dynamics in group: he is always sitting around another SE1 , and is working on a task of similar intensity as I would do. He asked for an estimate of 5 days(!) and was able to create all the screens apis logics etc in those days.
1. during this time, he was near our seats every 10 mins, showing what he has made, asking next steps, and then going back to his seat.
2 on his seat, he would open chat gpt, put all his code there, get some response, put it back in AS gemini, then put it in AS, fix red lines again using gemini, run and come back to us to show if its correct.
3. and somehow his code did ended up working.
4. I reviewed his pr and apart from some basic fixes, all seemed fine. His code didn't considered various edge cases but I said fuck it, its responsibility of dev and qa to identify those cases (my PRs are essentially reviewed like this only, that's how i learnt to write quality code which won't burst on input of "abc" instead of "123")
5. but then his code got merged in temp branch from where we were to give the qa build and it crashed 3 seperate screens unrelated to his feature but related to the shitshow he had done on the data layer.
6. he and his SE1 senior then again fixed that shit and the that feature got merged, reviewed by QAs , got fixed for more bugs and finally got merged in our code.
7. however all this (stuff before qa review) happened in those 5 days and thus the managers thought that the task was done by this junior trainee in 5 days only .
thus trainee + AI + 10-30 mind per hour per day of SE1 (~3hrs) = 1 feature.
now my salary = 2x of trainee..
if i am layed off and 10% increment is given to that SE1, the total cost saved by company is around 40% of my salary.
And this blows my mind coz ever since I came, I am getting menial tasks while freshers are being given large scale tasks.
layer 2 : is it good for company?
I might sound biased but company would soon need to realise if they could afford cutting on reliability of experienced devs with this weird "hack the system with AI" style of development.
Even we seasoned devs use AI but review it on our own and think of cases before putting it in front of stakeholders as "yes sir, done!"
Additionally I don't think putting confidential code from codebase onto grmini and chat gpt would always be considered okay. Its like no one is caring for data now, but if those companies tried to come up with competition or something , we are digging our own grave.
layer 3 : is it impacting users(i e the devs?)
Well, I am scared that they might think of me as a burden and fire me for a junior trainee, so yeah its highly impacting me.
But that SE1 that is helping this trainee guy, is this part of his job role now?is it part of every Senior dev's role to train trainees via AI bots?
And what about that trainee himself? Is this really beneficial for him to learn Android Development like that?
---------
I personally have always valued folks who could write efficient code . I don't care about their ds algo knowledge, or if they deeply understand the working of apis and core code underneath. Just writing efficient, easy to understand and reliable quality code was enough for me to hire u and vice versa.
But AI is changing things for the bad and I think we will be seeing an even more increase in ds algo questions and other shitty ways by which faang like companies seperate cream devs from the rest. And this would be coming from every startup/mnc/small scale company , not just the FAANG