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 - "magic mirror"
-
!rant & story_time
This happend to the startup I was working for at ~2011. I was a junior Android dev, working on a very popular app.
During experiments for a new feature, I discovered that the system AlarmManager has a serious bug - you can set a repeating alarm with interval=0ms. If your app takes more then 1 ms to handle the Intent, then the AlarmManager will start to fill up the intent Queue, with unexpected results to the OS. causing it to slow down, and reboot when it ran out of Ram. Why? my guess was that because the AlarmManager was part of the OS, then any issues caused by it caused the system process to ran out of ram, crashing it, and the whole system with it. the real kicker was that even after a reboot, the AlarmManager still had Intents queued, causing the device to bootloop for a while, untill the queue was cleared. My boss decided to report the problem to google, as this was an issue in the OS. I built an example app, that caused the crash 10-30 seconds after starting, and submitted to Google. Google responded later that day with "not an issue, no one will ever do this".
Well... At this point I decided to review the autoupdate feature in our app, to make sure this will not happen to us. We just released a new feature where a user can set an update schedule option in the app settings - where you could setup a daily, weekly, or hourly update for the app. after reviewing it, It looked good, and the issue was not triggered in the manual QA I did. So, it was all good. And we released an updated version to the store.
After we did an update-install, we discoverd that, there was a provlem reading the previous version SharedPrefs value for the update schdule settings, and the value defaulted to 0...
the result was, our app caused all our users to go into a bootloop, and because the alarm was reset when the devices booted up, the bootloop could only be solved in a factory reset, or removing our app, before the device rebooted, and then waiting a few reboot cycles.
We lost 50 places in the market, and it took us 6 months to get back to where we were.
It was not my fault, but it sucked big time!4 -
Always remeber:
The interview goes both ways. Ask the interviewer how he likes to solve problems, and how he works with ppl. This will give you the information to decide if you want to work with him or the company.
This is especially effective on HR: ask about thier corporate culture and how they deal with promotions/good people and how they deal with bad people.
And make sure you visit glassdoor.com before the interviews begin. -
"If builders built houses the way programmers built programs, the first woodpecker to come along would destroy civilization." Gerald weinberg.
-
Sales: "There is a problem in complicated feature A, in a client system!
Dev: "What is the problem"
Sales: "I don't know exactly"
Dev: "which client system? What version is installed?"
Sales: crickets.
Dev: "Do you a Jira ticket, or an email with more details?"
Sales: "It is urgent that we fix the problem ASAP!"
Dev: "what problem"
Sales: "The problem! I talked to the VP RnD, So he can make sure you are on it!"
Dev: "What exactly do you me to fix"
Sales: "The Problem!"8 -
DevOps is like working in sanitation. If everything works as it should, no one cares about you. But if there is a problem, everyone is up to their eyeballs in shit, and it is your fault.
Same as IT btw.3 -
during code review...
peer: "you should pass this variable, and extract the logger from it"
me: "why? it is a 3 line logging function. why not pass the logger instance?"
peer: "because that is our best practice. It is the way we do things"
me: "why is it a best practice?"
peer: "because it is. We use it everywhere!"
me: "No we don't. And I still don't understand why is this a best practice. can you explain?"
peer: gives ups, did not look at the mr, and was not going to.
mr stays open. probably forever.11 -
long time ago....
Feature request: We want an android backup solution in Our app!
UI guy has already developed it, you just need to see if his solution is solid!
Ok then - lets look at the UI: Nice progress bars, that turn into green checkmarks. Looks good.
Now lets look at the code: ... Ok. loading some files into memory.... and... dafuq? does not write to a file?
Backup to RAM. With no restore. 🤦♂️.3 -
Trying to get my 'patience for Idiots' threshold back up to 15 minures. Not easy.
The problem is - you need to listen to them talking for 20 minutes before 30 seconds of relevant and actual info comes up.4 -
Worst recruiter experience:
Recruiter sets up interview with a company. I get to their office - the most packed place I have ever seen - devs practically sitting on each other, and the QA guys are being used as chairs....
So I wait for 15 minutes near the doot till the interviewer gets to me through the incredibley noisy openspace, and shakes hands. We go into a mess of a meeting room - and he explains that they will be moving to a bigger office soon. I say - looks like you should have moved by now....
Anyways - he askes me to tell him about myself - and I explain my background, Focusing on Android dev experience - The recruiter told me this was a senior Android dev position. The interviewer has a huge question mark above his head, but waits for me to finish. Then he tells me: so... no backend experience? so Now I have a huge question mark above my head...
turns out he is looking for BackEnd devs - Not android devs.1 -
This was a long time ago, when I was working part time in my uni helpdesk. as part of the uni IT service, they offered ISP services at the dorms. It was cheap, and fast. This essentially allowed students living in the dorms to connect thier personal computers to the uni LAN. Then one day...
An ARP poison malware infected some of those computers. An arp poison attack is simple (look at ettercap) - it redirects network traffic via the affected computer, and adds malware to webtraffic to infect more computers. One of these on a network is bad enough, but when there more then one... traffic was redirected a lot. this caused the Dorm switches to collapse under the load. Fun times to work at the helpdesk...
The IT guys came up with a solution for this: they blocked the arp poision attacks at the firewall, and then disabled the switch port for the infected computer for 24 hours. so, when someone called with 'I have no internet!', we told them to bring us the computer, and installed an AV on it.
3-4 month the problem was cleared. -
On A privacy research focused Hackaton, my team lead got up, and said:
Our group is going to look at porn sites privacy issues! and @magicMirror is going to lead that effort!
And went on to say Porn+@magicMirror in every sentence. Very loudly.
fukin 🤡.9 -
there is always somone smarter then you doing this shit.
Also, wait a week after you hear bright ideas from manament, and don't start work untill then.1 -
Idiots. Just... Fucking Idiots.
Junior Frontend dev got a feature to implement. Decided to add a field to a set of mongo collections. I'm the responsible adult for those collections. Talked to the junior - told it, "don't do that, you will lose the data you are adding later". Junior says "will not happen", and goes on to try and prove It is "Right". Problem? Junior is an Idiot. did not trigger the data loss scenario. So... Junior got his TL to talk to the RND manager. And those Idiots Decided that the implementation will go forward as is.
Data loss will happen. QA will not find it. Only the client will experience the data loss, and complain....4 -
Most memorable co-worker was a daft idiot.
this was 10 years ago - I was working as a junior in my very first job, fresh out of uni, for a very small startup. It was me, and the 3 founders, for a very long time. Then this old (45, from my perspective then..) dev was hired.
This guy had no idea how to do the job. no common sense. the code confused him. the founders confused him. I was focusing on my work - and was unable to help him much with his. His only saving grace? He was a nice guy. Really nice.
But why was he so memorable, out of all the people I ever worked with? simple. He had a short term memory problem. Could not, even if he really tried, remember what he did yesterday.... when I asked him what his issue was, he decribed his life is like a car going in reverse in a heavy fog. "I can only see a short distance backwards, with no idea where I'm going".
Startup was sold to a big company. I became a teamlead/architect. He? someone decided he should be a PM. -
ffs.
Got to the office in the morning. Boss says, ok we want to do a toast for one thing or the other. Got a nice glass of red wine. drank it. Nice wine. got back to my computer, and started to work. the boss man calls me back. I say whats up? he says, bottle of whiskey....
drunk coding is fun!5 -
u+200b.
Who made that shit? and whhhyyyyy?
I spent 20 minutes trying to figure out why the code file, a mac using co-worker sent me, does not compile.
Intlij did not help, np++ did not help, textmate did not help!
Only hex editing the file worked!
kill it with fire!7 -
About slightly more than a year ago I started volunteering at the local general students committee. They desperately searched for someone playing the role of both political head of division as well as the system administrator, for around half a year before I took the job.
When I started the data center was mostly abandoned with most of the computational power and resources just laying around unused. They already ran some kvm-hosts with around 6 virtual machines, including a cloud service, internally used shared storage, a user directory and also 10 workstations and a WiFi-Network. Everything except one virtual machine ran on GNU/Linux-systems and was built on open source technology. The administration was done through shared passwords, bash-scripts and instructions in an extensive MediaWiki instance.
My introduction into this whole eco-system was basically this:
"Ever did something with linux before? Here you have the logins - have fun. Oh, and please don't break stuff. Thank you!"
Since I had only managed a small personal server before and learned stuff about networking, it-sec and administration only from courses in university I quickly shaped a small team eager to build great things which would bring in the knowledge necessary to create something awesome. We had a lot of fun diving into modern technologies, discussing the future of this infrastructure and simply try out and fail hard while implementing those ideas.
Today, a year and a half later, we look at around 40 virtual machines spiced with a lot of magic. We host several internal and external services like cloud, chat, ticket-system, websites, blog, notepad, DNS, DHCP, VPN, firewall, confluence, freifunk (free network mesh), ubuntu mirror etc. Everything is managed through a central puppet-configuration infrastructure. Changes in configuration are deployed in minutes across all servers. We utilize docker for application deployment and gitlab for code management. We provide incremental, distributed backups, a central database and a distributed network across the campus. We created a desktop workstation environment based on Ubuntu Server for deployment on bare-metal machines through the foreman project. Almost everything free and open source.
The whole system now is easily configurable, allows updating, maintenance and deployment of old and new services. We reached our main goal for this year which was the creation of a documented environment which is maintainable by one administrator.
Although we did this in our free-time without any payment it was a great year with a lot of experience which pays off now. -
Had to interview an iOS dev.
When I asked what was better - xib/nib or storyboard? He told me He prefers to write custom c++....
WTF?6 -
teach meta language concepts: what is an operator, literal, constant, statment, control flow. the recursive nature of staments. then go into objects/methods vs structs/procedures. then teach some java. then go into reflection concepts. then use reflection for something simple. then teach a bit of perl. then let them build something in python. Anyone who can pass through that will know how to Program in whatever you give him/her.
I wish my teachers talked about the meta programing, instead on focusing on the minutia. -
Finally got my wall up to my desk in whiteboard. 4' by 8' sheets cut to fit the whole wall with a 1/8" clearance at the top. Ignore the raspberry pi, I have to set it up this way because I have no USB network adapter or long enough Ethernet cable. There should have been a magic mirror where the box is but on that specific spot in the wall the studs are only 13 1/2" instead of 14" like they should be...3
-
merged a complicated pipeline script based on 3 other scripts, and it worked the first time I run it.
Pretty sure There was a Disturbance in Force... -
bug comment in the tracker, from the new junior dev, during her first week:
"probably fixed by [other dev]".
Among the unhelpful comments, this was a special gem. really special. a What the Fuck did you mean by that special. Was it fixed or not? who fixed it? [other dev]? someone else?
it was better not to have any comment at all.
later that junior became a really good dev... -
cables. lots of cables. also, an ethernet switch.
But the toys I have (and other ppl keep burrowing) is a dalek, tardis minuatures - about 6cm Height (2.1"), and lvl 5/6 hanayama metal puzzles.4 -
I used to work with another dev who had memory problems. This guy *literaly* could not remeber what he did yesterday...
So, he was trying to change one of the password screens we had in the app. This was a really simple screen. Logo, password prompt, and two buttons. He worked on this small change for two days, but everything he did did not affect the screen at run time.
So finally, he gave up and called me to help him... I come over, and look at his code. It looks ok. I make a small change, and see what happens. Nothing. I think for a moment, and delete the entire screen UI elements. Run the app. Nothing happens - screen still the same.
Then I got it - he kept changing the wrong screen... for two days....
took me a whole 5 minutes to figure out.2 -
worst: codeSourcery cross compile tool chain. The stuff of nightmares.
Best: textmate or notepad++. Never code in them, but really usefull for a quick edit, or log analysis.1 -
started by writing a perl script to crawl a website. The problem with that, is the fact ot affected the way I program. And not in a g/ood/i way.
-
Wrote a perl script to spam group sms to my friends, in perl. Also - web scrapers.
Ugly AF stuff. never heard of strict, or warn when I did it.....
really fun times! -
I’ve been thinking of making a magic Mirror lately as a side project. I know that they are traditionally made with TVs or computer monitors but I don’t have the space to make a mirror that big. I have a bunch of old Amazon kindles and android phones that I thought would be good to use instead (even though they all have cracked screens). I want the reflective aspect and the touch screen aspect. I think the hardest part is figuring out how to get whatever device that is behind the glass to register touch events on the glass. Any ideas or recommendations? Anybody done anything similar?