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 - "resist temptation"
-
Friend of mine killed his MacBook with some Softdrink.
Just poured it all over his poor a1502.
He let it dry for a few days, it starts to work again.
Except the battery.
Goes on Amazon and buys a new battery.
New battery doesn't work either and so he tells me about it and I as stupid as I am couldn't resist the temptation to finally work on a MacBook like my "hero" Lois Rossmann does.
So turns out the board is good.
Cleaned it up and basically nothing happened to it.
So what's the deal with "los batlerias"?
The first got hit by liquid, the second had a broken connection to a cell.
That could have happened through my friend, installing it without testing it first, or at the seller, so it being a DOA battery.
Now away from the stupidity of my friend and the situation to the actual source for this rant.
Once something happens to a modern Managed battery, the Battery Management System (BMS) disconnects the voltage from the system and goes into an error state, staying there and not powering anything ever again.
For noobs, it's dead. Buy a new one.
But It can be reset, depending you know how to, and which passwords were set at the factory.
Yes, the common Texas instruments BQ20Zxx chips have default passwords, and apple seems to leav them at default.
The Usb to SMBus adaptors arrived a few days ago and I went to prod the BMS.
There is a very nice available for Windows called BE2works, that I used the demo of to go in and figure out stuff. The full version supports password cracking, the demo not.
After some time figuring out how Smart Battery Systems (SBS) "API" works, I got to actually enter the passwords into the battery to try get into manufacturer and full access mode.
Just to realise, they don't unlock the BMS.
So, to conclude, my friend bought a "new" battery that was most likely cut out of a used / dead macbook, which reports 3000mah as fully charged instead of the 6xxx mah that it should have, with 0 cycles and 0hours used.
And non default access.
This screams after those motherfuckers scaming the shit out of people on Amazon, with refurb, reset, and locked fucken batteries.
I could kill those people right now.
Last but not least,
My friend theoretically can't send it back because I opened the battery to fix the broken connection.
Though maybe, it'll get send back anyway, with some suprise in the package.9 -
Lessons I've learnt so far on programming
-- Your best written code today can be your worst tomorrow (Focus more on optimisation than style).
-- Having zero knowledge of a language then watching video tutorials is like purchasing an arsenal before knowing what a gun is (Read the docs instead).
-- It's works on my machine! Yes, because you built on Lenovo G-force but never considered the testers running on Intel Pentium 0.001 (Always consider low end devices).
-- "Programming" is you telling a story and without adding "comments" you just wrote a whole novel having no punctuation marks (Always add comments, you will thank yourself later for it I promise).
-- In programming there is nothing like "done"! You only have "in progress" or "abandoned" (Deploy progressively).
-- If at this point you still don't know how to make an asynchronous call in your favourite language, then you are still a rookie! take that from me. (Asynchronous operation is a key feature in programming that every coder should know).
-- If it's more than two conditions use "Switch... case" else stick with "If... else" (Readability should never be under-rated).
-- Code editors can MAKE YOU and BREAK YOU. They have great impact on your coding style and delivery time (Choose editors wisely).
-- Always resist the temptation of writing the whole project from scratch unless needs be (Favor patching to re-creation).
-- Helper methods reduces code redundancy by a large chunk (Always have a class in your project with helper methods).
-- There is something called git (Always make backups).
-- If you don't feel the soothing joy that comes in fixing a bug then "programming" is a no-no (Coding is fun only when it works).
-- Get angry with the bugs not the testers they're only noble messengers (Bugs are your true enemy).
-- You would learn more than a lot reading the codes of others and I mean a lot! (Code review promotes optimisation and let's you know when you are writing macaroni).
-- If you can do it without a framework you have yourself a big fat plus (Frameworks make you entirely dependent).
-- Treat your code like your pet, stop taking care of it and it dies! (Codes are fragile and needs regular updates to stay relevant).
Programming is nothing but fun and I've learnt that a long time ago.6 -
I just interviewed the guy who is interested in my Linux SysAdmin position. He's really cool and I think he'll get the job, but he is a Windows admin actually. (No problem, since he'll work with me for three month's as a mentoring program and it's supposed for him to learn the stuff)
My question to all other Linux Witchers and Witches out there, do you know a mighty spell to seal his windows daemon away, such that he's able to resist the sore temptation by my co-workers (windows enthusiasts)?rant magic seal windows daemon linux syswizards linux wizardry linux wizards witches linux sysadmin witchers2 -
Some time ago, when exactly the fuck I don't quite remember and promise I never will unless just the right amount of ass is provided in a timely fashion, I start going about how I want to work on some utils to make writing prompts easier.
What I do remember and will remind you with strongly renewed vigor is the fact that I signed a legally-binding document to grant the general public a full pardon for my own ritualistic assassination should I ever use the term "prompt-engineering" unironically.
This pact still holds, and were I to break my solemn oath, then I will hold you fully accountable every single second I find myself still breathing.
Anyhoo, today was the first test of my resolve, for I have implemented both the stupid preprocessor and the local database prototype that allows it to fetch long ass definitions from disk, and both have been published (main: https://github.com/Liebranca/...).
I must admit to you all that though I have not failed, I felt weakness for a second when filling out tags in the repo description, as only "prompt-engineering" was recognized as a legit tag, and not "prompt-writing". In that moment, I almost gave in to temptation, as the accursed Satan whispered in my ear, appealing to my desire for recognition.
However, I reminded this ill buttrape daemon that their fate lies in the burning fires of hell, and as a result was allowed to resist it's alluring diabolical seduction. And for not giving in to greed, I have kept my life, my honor, and my anal virginity.
Also I wrote *some* documentation, it's shit but it's something.12