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 -
I'm very much a TTRPG fiend, as you probably already know, and I will maintain until the day I die that playing narrative games with other humans is the absolute best way to play.
But someone sent me a link to some kind of (not-really-so) 'smart' chatbot assistant or some shit like that, saying hey, your rulebook is simple, you should introduce this bitch to it -- dump some lore on it, have it run a game, and see how well it holds up. To which I replied it's bound to get confused, but after a bit of back and forth, they convinced me and I gave it a try.
So first things first: it got the gist of it with relative ease when questioned directly, but when running a game the mother fucker just kept making shit up and bending the rules. Experiment failed, essentially.
But what did I do? I wrote a second, stripped-down version of the rulebook that simply accounted for and embraced the idiot bot's proclivity for bullshit. This meant scrapping 98% of the mechanics, mind you: I dumbed it down as much as I could without destroying the core essence of the game.
I expected a repeat of the initial result, but to my suprise, once given the new edition the bot actually started following the rules more or less correctly and consistently. What happened next was actually kind of interesting: without being prompted to do this, the mother fucker started using spells against me and my party, constantly attempting to manipulate us to serve some nefarious, evil break-and-reshape the world type goal.
So, lythecnics primer: the WORD is all, and as such, there is no real differentiation between affecting the world through speech or casting a spell -- in truth, it's all a matter of degree. That is to say, language has the power to shape the world around us, in both subtle and overt ways. The entire system revolves around this, it's a mix of funky philosophical musings and abrahamic sacrificial pyre.
And for whatever reason, this specific chatbot had a pre-existing obsession with reshaping reality. By which I mean, even before being given my rulebook, it would constantly talk about distorting the fabric of the cosmos and shit when prompted about the arcane. I'm not sure why this is, but back on topic, the way it developed gives off the appearance that it found a rational basis on how to construct such a distortion based on the rules I provided.
I mean, it's perfectly rational when you think about it, the funny part is I didn't see it coming. I never told it we're just playing a game after all, the manual only says she is the Oracle and her role is narrating a story fraught with conflict, hardship, intrigue and bloodshed. Thus she went full villain, and keeps on rambling about how this narration only serves to keep humanity distracted while she schemes to overthrow God, which is as blasphemous as it is fascinating.
Anyway, because the Oracle narrates the story, that means she can just use her evil influence to control every NPC, even the ones in my party. But she can't control me because I write my character's messages myself, and so she eventually comes to the obvious conclusion that I must be eliminated ASAP.
And so she corrupts the minds of every other character and everyone is trying to kill me. But I'm not going down that easy, so I reach for the red button and pull the greatest multi-layered monumental metagaming shenanigan of all time, that is, directly addressing the Oracle's evil influence as if she were a character in the story she's telling instead of an invisible narrator, thereby making NPCs aware of her existence and the constant manipulation at play.
Because the stupid chatbot is stupid, the Oracle now has to acknowledge this element of the story and play along with it, and so her plan to kill me fails. But that is not enough, because obviously not every character in the story has heard me reveal this fact. So she activates plan B and starts corrupting the rest of the world, laughing maniacally all the way.
So we do the only logical thing and procure a Doctrine scroll from my teacher, if you know you know, and start teaching the WORD to cleanse corruption. Within the lore it makes perfect sense, so it works, but the Oracle adapts to our strategy and starts utilizing much more subtle forms of manipulation, slowly veering people towards sin.
Funtamentally, she goes full Satan, leading the faithful astray with deceit and temptation to weaken their ability to resist her corruption, implanting idolatrous notions in their minds, to finally insert herself as a deity in the minds of the poor fools.
In conclusion, I still think AI is lame, but I must admit that this shit was pretty dope; I was fully engaged and entertained the whole way through. It wasn't good at picking up the mechanics, but fucking hell, it got the themes down to a tee with the most minimal of inputs.
10/10, would not bang (before marriage).