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 - "off-key"
-
7 am. Dog wants out. I roll out of bed after trying to pretend I am dead.
Walk down the stairs to the side door. Half asleep and notice that the door has daylight shining through on the lock side. Didn't shut it all the way the night before. Walk outside. Dog does his thing. Turn around. Doors locked.
Fuck.
Go for my phone. In the house. Go for my keys. In the house. Fuck. Fuck a duck.
Start checking my windows. One opens a fraction of an inch. Doesn't do me any good. Dog is outside with me. Freezing his ass off. It's like 5 degrees here.
Both of my neighbors don't answer their door. Life flashes before my eyes. Put my dog in my jacket to warm him up. Little 15lb rat terrier. Not made for snow.
He's fine for now. I grab a piece of rebar from my backyard and lever my window a bit more open, busting one of the locks.
And then I yell "ALEXA. OPEN THE FRONT DOOR." The voice of an angel responds. "OK." Whirrr. Click. Door opens. Sweet warmth.
I need a fake rock with a key under it.
Great Sunday.18 -
Bought a Logitech G13 a few years ago knowing that the Linux support isn't good. Thought fuck it, I'll develop something for it.
That didn't go as planned. Tried numerous times to write something but the fucker is proprietary and I couldn't figure out how to get data from it.
Decided to try it again tonight with a "You're not winning this time, motherfucker!" mindset.
Figured out how to read data from it, looked long enough at the data coming in to discover patterns and started programming while testing my ass off.
Two hours later I have "mapped" all specific data points that the device sends to the hardware keys and now, whenever I have the device connected and run the program (node, no kidding), it displays which key I'm pressing when I press a key!
I finally fucking won.23 -
And here comes the last part of my story so far.
After deploying the domain, configuring PCs, configuring the server, configuring the switch, installing software, checking that the correct settings have been applied, configuring MS Outlook (don't ask) and giving each and every user a d e t a i l e d tutorial on using the PC like a modern human and not as a Homo Erectus, I had to lock my door, put down my phone and disconnect the ship's announcement system's speaker in my room. The reasons?
- No one could use USB storage media, or any storage media. As per security policy I emailed and told them about.
- No one could use the ship's computers to connect to the internet. Again, as per policy.
- No one had any games on their Windows 10 Pro machines. As per policy.
- Everyone had to use a 10-character password, valid for 3 months, with certain restrictions. As per policy.
For reasons mentioned above, I had to (almost) blackmail the CO to draft an order enforcing those policies in writing (I know it's standard procedure for you, but for the military where I am it was a truly alien experience). Also, because I never trusted the users to actually backup their data locally, I had UrBackup clone their entire home folder, and a scheduled task execute a script storing them to the old online drive. Soon it became apparent why: (for every sysadmin this is routine, but this was my first experience)
- People kept deleting their files, whining to me to restore them
- People kept getting locked out because they kept entering their password WRONG for FIVE times IN a ROW because THEY had FORGOTTEN the CAPS lock KEY on. Had to enter three or four times during weekend for that.
- People kept whining about the no-USB policy, despite offering e-mail and shared folders.
The final straw was the updates. The CO insisted that I set the updates to manual because some PCs must not restart on their own. The problem is, some users barely ever checked. One particular user, when I asked him to check and do the updates, claimed he did that yesterday. Meanwhile, on the WSUS console: PC inactive for over 90 days.
I blocked the ship's phone when I got reassigned.
Phiew, finally I got all those off my chest! Thanks, guys. All of the rants so far remind me of one quote from Dave Barry:7 -
Things have been a little too quiet on my side here, so its time for an exciting new series:
practiseSafeHex's new life as a manager.
Episode 1: Dealing with the new backend team
It's great to be back folks. Since our last series where we delved into the mind numbing idiocy of former colleagues, a lot has changed. I've moved to a new company and taken a step up as a Dev manager / Tech lead. Now I know what you are all thinking, sounds more dull and boring right? Well it wouldn't be a practiseSafeHex series if we weren't ...
<audience-shouting>
DEALING! ... WITH! ... IDIOTS!
</audience-shouting>
Bingo! so lets jump right in and kick us off with a good one.
So for the past few months i've been on an on-boarding / fact finding / figuring out this shit-storm, mission to understand more about what it is i'm suppose to do and how to do it. Last week, as part of this, I had the esteemed pleasure of meeting face to face with the remote backend team i've been working with. Lets rattle off a few facts to catch us all up:
- 8 hour time difference to me
- No documentation other than a non-maintained swagger doc
- Swagger is reporting errors and several of the input models are just `Type: String`
- The one model that seems accurate, has every property listed as optional, including what must be the primary key
- Properties go missing and get removed at the drop of a hat and we are never told.
- First email I sent them took 27 days to reply, my response to that hasn't been answered so far 31 days later (new record! way to go team, I knew we could do it!!!)
- I deal directly with 2 of them, the manager and the tech lead. Based on how things have gone so far, i've nick named them:
1) Ass
2) Hole
So lets look at some example of their work:
- I was trying to test the new backend, I saw no data in QA. They said it wouldn't show up until mid day their time, which is middle of the night for us. I said we need data in our timezone and I was told: a) "You don't understand how big this system is" (which is their new catch phrase) b) "Your timezone is not my concern"
- The whole org started testing 2 days later. The next day a member from each team was on a call and I was asked to give an update of how the testing was going on the mobile side. I said I was completely blocked because I can't get test data. Backend were asked to respond. They acknowledged they were aware, but that mobile don't understand how big the system is, and that the mobile team need to come up with ideas for the backend team, as to how mobile can test it. I said we can't do anything without test data, they said ... can you guess what? ... correct "you don't understand how big the system is"
- We eventually got something going and I noticed that only 1 of the 5 API changes due on their side was done. Opened tickets. 2 days later asked them for progress and was told that "new findings" always go to the bottom of the backlog, and they are busy with other things. I said these were suppose to be done days ago. They said you can't give us 2 days notice and expect everything done. I said the original ticket was opened a month a go *sends link* ......... *long silence* ...... "ok, but you don't understand how big the system is, this is a lot of work"
- We were on a call. Product was asking the backend manager (aka "Ass") a question about a slight upgrade to the new feature. While trying to talk, the tech lead (aka "Hole") kept cutting everyone off by saying loudly "but thats not in scope". The question was "is this possible in the future" and "how long would it take", coming from management and product development. Hole just kept saying "its not in scope", until he was told to be quiet by several people.
- An API was sending down JSON with a string containing a message for the user with 2 bits of data inside it. We asked for one of those pieces to also come down as a property as the string can change and we needed it client side. We got that. A few days later we found an edge case and asked for the second piece of data to be a property too. Now keep in mind, they clearly already have access to them in order to make the string. We were told "If you keep requesting changes like this, you are going to delay the release of the backend by up to 2 weeks"
Yes folks, there you have it, the most minuscule JSON modifications, can delay your release by up to 2 weeks ........ maybe I should just tell product, that they don't understand how big the app is, and claim we can't build it on our side? Seems to work for them
Thats all the time we have for today,
Tune in for more, where we'll be looking into such topics as:
- If god himself was an iOS developer ... not
- Why automate when you can spend all day doing it by hand
- Its more time-efficient to just give everything a story point of 5
- Why waste time replying to emails ... when you can do nothing instead
See you all next week,
practiseSafeHex14 -
Years ago I was an application developer at a medium sized corporation and was also responsible for support for an HR department. This occurred early one morning shortly after I arrived at work.
User: My app doesn't work.
Me: What's wrong with it?
User: I just get a blank screen.
Me: A blank screen? What happens when you hit a key?
User: Nothing.
Me: Do any apps work?
User: No, I just get a blank screen.
Me: Is your monitor on?
User: Yes, I turned it on.
This type of witty banter went on for several minutes when the answer suddenly hit me.
Me: Is your computer turned on?
User: Do I need to turn it on?
Me: Did you turn it off before you went home last night?
User: Yes.
Me: And do you normally turn it on in the morning when you come in?
User: Yes.
Me: Then why didn't you turn it on this morning when you came in?
User: I didn't know I needed to.
It was at this point I heard the programmer over the cubicle wall from me burst out laughing. He had been listening to the conversation and couldn't take it anymore.
The really sad part is that this was not an isolated incident. This kind of stuff occurred on a semi-regular basis with this individual's department.10 -
This actually happened today
Colleague: Hey man I think there's a problem with my computer.
Me: Alright, I'll check it out.
(I go to his desk and find that his screen was turned off)
Colleague: It just suddenly turned off.
Me: (presses a random key on his keyboard)
(Screen lights up)5 -
I work in a company where I'm the only developer, with everyone being designers or marketing or sales. Typically like the scene from Silicon Valley.
Moto was to create a ticket selling website for their products, and make sure they worked as well. It was all fine, until deadlines were discussed. They wanted it done within 2 weeks, the entire backend dashboard, API and front end.
I told them it's almost impossible to do it, but they insisted on it. So, I made a minimal dashboard and told them, I haven't completed a few things, such as if you edit data in one place, it won't reflect in other tables. So, be careful while editing the data.
They nodded their head for everything, yesterday was site launch and 2 hours before that one bastard decided to changed the product names to something "catchy" but failed to change the same in other places.
I had used the name as foreign key, so querying other DBs became a fuck all issue, and eventually API stopped giving any response to front end calls.
I got extremely pissed, and shouted at that dude, for fucking everything up. He said, you're the tech guy and you should've taken all this into account.
I sat and hardcoded all the data into database again, made sure site is live. Once it was live, these guys call a company meeting and fire me saying I was incompetent in handling the stressful situation.
At that moment, I lost my shit and blasted each of those people. The designer started crying since her absurd designs(though great) couldn't be realised in CSS that too within 2 weeks time.
One of the worst experience for working for a company. I could've taken the website down, and told them to buzz off if they'd called, I couldn't get myself to do it, hence ranting here.
I seriously feel, all these tech noob HRs need to get a primer course on how to deal with problems of a programmer before they get to hire one, most of these guys don't know what we're trying to tell in itself.
I find devRant to be the only place where I can get someone to understand the issues that I face, hence ranted.
TL;DR: Coded ticket selling site in 2 weeks. 3 hours to launch, data entry dude fucks up. I clean all the mess, get the site online. Get fired as soon as that happens.
Live long and prosper. Peace.16 -
Apple has a real problem.
Their hardware has always been overpriced, but at least before it had defenders pointing out that it was at least capable and well made.
I know, I used to be one of them.
Past tense.
They have jumped the shark.
They now make pretentious hipster crap that is massively overpriced and doesn't have the basic features (like hardware ports) to enable you to do your job.
I mean, who needs an ESC key? What is wrong with learning to type CTRL-[ instead? Muscle memory? What's that?
They have gone from "It just works" to "It just doesn't work" in no time at all.
And it is Developers who are most pissed off. A tiny demographic who won't be visible on the financial bottom line until their newly absent software suddenly makes itself known two, three years down the line.
By which time it is too late to do anything.
But hey! Look how thin (and thermally throttled) my new laptop is!19 -
The Orange Juice Saga ....
I've just come off one of the stupidest calls ever.
Firstly, I am not in tech support, I'm a software developer - read the below with this in mind.
My client called up to say the system I created as been compromised. When he attempts to login, he is logged off his Windows machine.
He'd also apparently taken his PC to ***insert large UK computer superstore here***, who took £100 plus to look at the machine and conclude his needs to buy a new PC.
I remoted into his computer to see WTF was going on.
As he described, visiting my login form did log you out. In fact, whenever you pressed the "L" key you were logged out. Press the "M" key, all windows were minimized. Basically, all Windows hotkeys appeared to be active, without the need to press the Windows key.
Whilst connected to his PC I spent a good 30 minutes checking keyboard settings and came up short.
After asking all the normal questions (has anything changed on your PC, have you installed stuff lately etc.) without any useful answers I got nothing.
I then came across an article stating several presses of the Windows in quick succession will solve the issue.
I got the client to try this, pressed the "L" key (which would have logged me off previously) and the issue was resolved.
Basically, the Windows key was "stuck", which oddly makes your PC kind of useless.
I asked the client if they'd split anything on the keyword whilst working. His exact word were simply lol:
"Oh yer, yesterday, I was trying to drink a glass of orange quickly and split some in the corner of keyboard. I did clean it up quickly though".
Yep, the issue was due to the client spilling orange juice on their keyboard , which in turn made the Windows key stick.
Disaster averted.
A call that started with the client stating I made a system that was easily compromised (i.e. my fault), morphed into a sorry saga of cold drinks.
The client did ask why the ***superstore name*** charged him money for that and recommended a new machine. That is a good question and demonstrated some the questionable tech support practices we see nowadays, even at very large stores.
To be fair to the client, he told me to bill him for half a days work as it was his own fault.
When I'm able to stop myself involuntarily face palming, I'm off for a swim to unwind :)7 -
More sysadmin focused but y’all get this stuff and I need a rant.
TLDR: Got the wrong internship.
Start working as a sysadmin/dev intern/man-of-many-hats at a small finance company (I’m still in school). Day 1: “Oh new IT guy? Just grab a PC from an empty cubicle and here’s a flash drive with Fedora, go ahead and manually install your operating system. Oh shit also your desktop has 2g of ram, a core2 duo, and we scavenged your hard drive for another dev so just go find one in the server room. And also your monitor is broken so just take one from another cubicle.”
Am shown our server room and see that someone is storing random personal shit in there (golf clubs propped against the server racks with heads mixed into the cabling, etc.). Ask why the golf clubs etc. are mixed in with the cabling and server racks and am given the silent treatment. Learn later that my boss is the owners son, and he is storing his personal stuff in our server room.
Do desktop support for end users. Another manager asks for her employees to receive copies of office 2010 (they’re running 2003 an 2007). Ask boss about licensing plans in place and upgrade schedules, he says he’ll get back to me. I explain to other manager we are working on a licensing scheme and I will keep her informed.
Next day other manager tells me (*the intern*) that she spoke with a rich business friend whose company uses fake/cracked license keys and we should do the same to keep costs down. I nod and smile. IT manager tells me we have no upgrade schedule or licensing agreement. I suggest purchasing an Office 365 subscription. Boss says $150 a year per employee is too expensive (Company pulls good money, has ~25 employees, owner is just cheap) I suggest freeware alternatives. Other manager refuses to use anything other than office 2010 as that is what she is familiar with. Boss refuses to spend any money on license keys. Learn other manager is owners wife and mother of my boss. Stalemate. No upgrades happen.
Company is running an active directory Windows Server 2003 instance that needs upgrading. I suggest 2012R2. Boss says “sure”. I ask how he will purchase the license key and he tells me he won’t.
I suggest running an Ubuntu server with LDAP functionality instead with the understanding that this will add IT employee hours for maintenance. Bosses eyes glaze over at the mention of Linux. The upgrade is put off.
Start cleaning out server room of the personal junk, labeling server racks and cables, and creating a network map. Boss asks what I’m doing. I show him the organized side of the server room and he says “okay but don’t do any more”.
... *sigh* ...20 -
My brother (14, at that time 12) is in puberty and just doesn't get off his computer to learn or do anything useful. He actually got bad grades because of this.
I made an app for my mom as well as a "virus" for my brother's computer that she could use to start and stop my brother's mouse wobble around randomly. Whenever he should be learning, my mother would press a button and he couldn't do anything anymore.
He eventually found out how to start YouTube videos using only his keyboard, so the next update came with a feature that simulated a random keypress instead of the one my brother was actually intending to type whenever he pressed a key.
The fun thing was, that he never found out why that was happening and just assumed his computer was broken.3 -
You know side projects? Well I took on one. An old customer asked to come and take over his latest startups companys tech. Why not, I tought. Idea is sound. Customer base is ripe and ready to pay.
I start digging and the Hardware part is awesome. The guys doing the soldering and imbedded are geniuses. I was impressed AF.
I commit and meet up with CEO. A guy with a vision and sales orientation/contacts. Nice! This shit is gonna sell. Production lines are also set.
Website? WTF is this shit. Owner made it. Gotta give him the credit. Dude doesn't do computers and still managed to online something. He is still better at sales so we agree that he's gonna stick with those and I'll handle the tech.
I bootstrap a new one in my own simplistic style and online it. I like it. The owner likes it. He made me to stick to a tacky logo. I love CSS and bootstrap. You can make shit look good quick.
But I still don't have access to the soul of the product. DBs millions rows of data and source for the app I still behind the guy that has been doing this for over a year.
He has been working on a new version for quite some time. He granted access to the new versions source, but back end and DB is still out of reach. Now for over month has passed and it's still no new version or access to data.
Source has no documentation and made in a flavor of JS frame I'm not familiar with. Weekend later of crazy cramming I get up to speed and it's clear I can't get further without the friggin data.
The V2 is a scramble of bleeding edge of Alpha tech that isn't ready for production and is clearly just a paid training period for the dev. And clearly it isn't going so well because release is a month late. I try to contact, but no reaction. The owner is clueless.
Disheartening. A good idea is going to waste because of some "dev" dropping a ball and stonewalling the backup.
I fucking give him till the end of the next week until I make the hardware team a new api to push the data and refactor the whole thing in proper technologies and cut him off.
Please. If you are a dev and don't have the time to concentrate on the solution don't take it on and kill off the idea. You guys are the key to making things happening and working. Demand your cut but also deserve it by delivering or at least have the balls to tell you are not up for it. -
Actual rant time. And oh boy, is it pissy.
If you've read my posts, you've caught glimpses of this struggle. And it's come to quite a head.
First off, let it be known that WINDOWS Boot Manager ate GRUB, not the other way around. Windows was the instigator here. And when I reinstalled GRUB, Windows threw a tantrum and won't boot anymore. I went through every obvious fix, everything tech support would ever think of, before I called them. I just got this laptop this week, so it must be in warranty, right? Wrong. The reseller only accepts it unopened, and the manufacturer only covers hardware issues. I found this after screaming past a pretty idiotic 'customer representative' ("Thank you for answering basic questions. Thank you for your patience. Thank you for repeating obvious information I didn't catch the first three times you said it. Thank you for letting me follow my script." For real. Are you tech support, or emotional support? You sound like a middle school counselor.) to an xkcd-shibboleth type 'advanced support'. All of this only to be told, "No, you can't fix it yourself, because we won't give you the license key YOU already bought with the computer." And we already know there's no way Microsoft is going to swoop in and save the day. It's their product that's so faulty in the first place. (Debian is perfectly fine.)
So I found a hidden partition with a single file called 'Image' and I'm currently researching how to reverse-engineer WIM and SWM files to basically replicate Dell's manufacturing process because they won't take it back even to do a simple factory reset and send it right back.
What the fuck, Dell.
As for you, Microsoft, you're going to make it so difficult to use your shit product that I have to choose between an arduous, dangerous, and likely illegal process to reclaim what I ALREADY BOUGHT, or just _not use_ a license key? (Which, there's no penalty for that.) Why am I going so far out of my way to legitimize myself to you, when you're probably selling backdoors and private data of mine anyway? Why do I owe you anything?
Oh, right. Because I couldn't get Fallout 3 to run in Wine. Because the game industry follows money, not common sense. Because you marketed upon idiocy and cheapness and won a global share.
Fuck you. Fuck everything. Gah.
VS Code is pretty good, though.20 -
Paypal Rant #3
One day I'll go to Paypal HQ and...
... change all the toilet rolls to face the wrong way
... remap all the semicolons to be the Greek equivalent character
... change all the door signs so they say "pull" instead of "push" and vice versa
... modify all the stairs to have variable heights
... programmatically shuffle the elevator buttons and randomly assign the alarm key to any of the most visited floors
... pour cocoa onto all the keyboards and wipe them off cleanly
... attach clear duct tape over their mouse sensors and insert really weak batteries or mess with their cables
I'll wait a day or two until they experience a sudden shortage of developers, then bombard them with thousands of fake applications from seemingly amazing candidates, then write an AI bot to continue argumentation with HR.
I'll wait another week or so until the company dissolves and with them, all my issues in life.
No need to be overly vulgar this time because you all know the deal. I hate this fucking company. Please Paypal do us all a favor and go fuck yourself.9 -
Wow... this is the perfect week for this topic.
Thursday, is the most fucked off I’ve ever been at work.
I’ll preface this story by saying that I won’t name names in the public domain to avoid anyone having something to use against me in court. But, I’m all for the freedom of information so please DM if you want to know who I’m talking about.
Yesterday I handed in my resignation, to the company that looked after me for my first 5 years out of university.
Thursday was my breaking point but to understand why I resigned you need a little back story.
I’m a developer for a corporate in a team of 10 or so.
The company that I work for is systemically incompetent and have shown me this without fail over the last 6 months.
For the last year we’ve had a brilliant contracted, AWS Certified developer who writes clean as hell hybrid mobile apps in Ion3, node, couch and a tonne of other up to the minute technologies. Shout out to Morpheus you legend, I know you’re here.
At its core my job as a developer is to develop and get a product into the end users hands.
Morpheus was taking some shit, and coming back to his desk angry as fuck over the last few months... as one of the more experienced devs and someone who gives a fuck I asked him what was up.
He told me, company want their mobile app that he’s developed on internal infrastructure... and that that wasn’t going to work.
Que a week of me validating his opinion, looking through his work and bringing myself up to speed.
I came to the conclusion that he’d done exactly what he was asked to, brilliant Work, clean code, great consideration to performance and UX in his design. He did really well. Crucially, the infrastructure proposed was self-contradicting, it wouldn’t work and if they tried to fudge it in it would barely fucking run.
So I told everyone I had the same opinion as him.
4 months of fucking arguing with internal PMs, managers and the project team go by... me and morpheus are told we’re not on the project.
The breaking point for me came last Wednesday, given no knowledge of the tech, some project fannies said Morpheus should be removed and his contract terminated.
I was up in fucking arms. He’d done everything really well, to see a fellow developer take shit for doing his job better than anyone else in [company] could was soul destroying.
That was the straw on the camels back. We don’t come to work to take shit for doing a good job. We don’t allow our superiors to give people shit in our team when they’re doing nothing but a good job. And you know what: the opinion of the person that knows what they’re talking about is worth 10 times that of the fools who don’t.
My manager told me to hold off, the person supposed to be supporting us told me to stand down. I told him I was going to get the app to the business lead because he fucking loves it and can tell us if there’s anything to change whilst architecture sorts out their outdated fucking ideas.
Stand down James. Do nothing. Don’t do your job. Don’t back Morpheus with his skills and abilities well beyond any of ours. Do nothing.
That was the deciding point for me, I said if Morpheus goes... I go... but then they continued their nonsense, so I’m going anyway.
I made the decision Thursday, and Friday had recruiters chomping at the bit to put the proper “senior” back in my title, and pay me what I’m worth.
The other issues that caused me to see this company in it’s true form:
- I raised a key security issue, documented it, and passed it over to the security team.
- they understood, and told the business users “we cannot use ArcGIS’ mobile apps, they don’t even pretend to be secure”
- the business users are still using the apps going into the GDPR because they don’t understand the ramifications of the decisions they’re making.
I noticed recently that [company] is completely unable to finish a project to time or budget... and that it’s always the developers put to blame.
I also noticed that middle management is in a constant state of flux with reorganisations because in truth the upper managers know they need to sack them.
For me though, it was that developers in [company], the people that know what they’re talking about; are never listened to.
Fuck being resigned to doing a shit job.
Fuck this company. On to one that can do it right.
Morpheus you beautiful bastard I know you’ll be off soon too but I also feel I’ve made a friend for life. “Private cloud” my arse.
Since making the decision Thursday I feel a lot more free, I have open job offers at places that do this well. I have a position of power in the company to demand what I need and get it. And I have the CEO and CTO’s ears perking up because their department is absolutely shocking.
Freedom is a wonderful feeling.13 -
I had to open the desktop app to write this because I could never write a rant this long on the app.
This will be a well-informed rebuttal to the "arrays start at 1 in Lua" complaint. If you have ever said or thought that, I guarantee you will learn a lot from this rant and probably enjoy it quite a bit as well.
Just a tiny bit of background information on me: I have a very intimate understanding of Lua and its c API. I have used this language for years and love it dearly.
[START RANT]
"arrays start at 1 in Lua" is factually incorrect because Lua does not have arrays. From their documentation, section 11.1 ("Arrays"), "We implement arrays in Lua simply by indexing tables with integers."
From chapter 2 of the Lua docs, we know there are only 8 types of data in Lua: nil, boolean, number, string, userdata, function, thread, and table
The only unfamiliar thing here might be userdata. "A userdatum offers a raw memory area with no predefined operations in Lua" (section 26.1). Essentially, it's for the API to interact with Lua scripts. The point is, this isn't a fancy term for array.
The misinformation comes from the table type. Let's first explore, at a low level, what an array is. An array, in programming, is a collection of data items all in a line in memory (The OS may not actually put them in a line, but they act as if they are). In most syntaxes, you access an array element similar to:
array[index]
Let's look at c, so we have some solid reference. "array" would be the name of the array, but what it really does is keep track of the starting location in memory of the array. Memory in computers acts like a number. In a very basic sense, the first sector of your RAM is memory location (referred to as an address) 0. "array" would be, for example, address 543745. This is where your data starts. Arrays can only be made up of one type, this is so that each element in that array is EXACTLY the same size. So, this is how indexing an array works. If you know where your array starts, and you know how large each element is, you can find the 6th element by starting at the start of they array and adding 6 times the size of the data in that array.
Tables are incredibly different. The elements of a table are NOT in a line in memory; they're all over the place depending on when you created them (and a lot of other things). Therefore, an array-style index is useless, because you cannot apply the above formula. In the case of a table, you need to perform a lookup: search through all of the elements in the table to find the right one. In Lua, you can do:
a = {1, 5, 9};
a["hello_world"] = "whatever";
a is a table with the length of 4 (the 4th element is "hello_world" with value "whatever"), but a[4] is nil because even though there are 4 items in the table, it looks for something "named" 4, not the 4th element of the table.
This is the difference between indexing and lookups. But you may say,
"Algo! If I do this:
a = {"first", "second", "third"};
print(a[1]);
...then "first" appears in my console!"
Yes, that's correct, in terms of computer science. Lua, because it is a nice language, makes keys in tables optional by automatically giving them an integer value key. This starts at 1. Why? Lets look at that formula for arrays again:
Given array "arr", size of data type "sz", and index "i", find the desired element ("el"):
el = arr + (sz * i)
This NEEDS to start at 0 and not 1 because otherwise, "sz" would always be added to the start address of the array and the first element would ALWAYS be skipped. But in tables, this is not the case, because tables do not have a defined data type size, and this formula is never used. This is why actual arrays are incredibly performant no matter the size, and the larger a table gets, the slower it is.
That felt good to get off my chest. Yes, Lua could start the auto-key at 0, but that might confuse people into thinking tables are arrays... well, I guess there's no avoiding that either way.13 -
You want to write a minus? No, better turn off the computer. What did you do to us, asus...
Ps: note where did the num lock gone. You have to press fn+home to get numlock enabled. But better have awesome rog key instead of numlock so you can randomly open it's software.14 -
The coolest project I've worked on was for a certain country's Navy. The project itself was cool and I'll talk about it below but first, even cooler than the project was the place were I worked on it.
I would go to this island off the coast where the navy had its armoury. Then to get into the armoury I'd go through this huge tunnel excavated in solid rock.
Finally, once inside I would have to go thru the thickest metal doors you've ever seen to get to crypto room, which was a tiny room with a bunch of really old men - cryptographers - scribbling math formulae all day long.
I can't give a lot of technical details on the project for security reasons but basically it was a bootable CD with a custom Linux distro on it. Upon booting up the system would connect to the Internet looking for other nodes (other systems booted with that CD). The systems would find each other and essentially create an ad-hoc "dark net".
The scenario was that some foreign force would have occupied the country and either destroyed or taken control of the Navy systems. In this case, some key people would boot these CDs in some PC somewhere not under foreign control (and off the navy grounds.) This would supposedly allow them to establish secure communications between surviving officers. There is a lot more to it but that's a good harmless outline.
As a bonus, I got to tour an active aircraft carrier :)8 -
With all the people showing off their setup and input devices i thought it's time to show you my keyboard...
Key features:
- mechanical keys
- sturdy af; best for ranting (survived more angry fist strokes than any device should ever receive)
- older than me and outlived 5 (!) mice
- awesome retro look
- would beat a nokia in hunger games
- best code buddy ever (and propably oldest, too)
Hope i'll be able to continue coding on it another 20 years... Someday i may gift it to my grandchildren.18 -
It's not motivation that you need, it's dedication.
You see, motivation is temporary thing, that sudden flow of dopamine running through your body that you get after some success or after being admired by someone or simply after good sleep and nice morning shower.
But the problem with motivation is that it's just temporary thing. After a while (hours, days, if you're lucky weeks) it just wears off and you're left pretty much where you started.
But there's one thing that remains and that's persistent. It's called DEDICATION. If you dedicate yourself to something, you are willing to do it no matter what it takes from you. Even if it frustrates you along the way or makes you angry, you wanna be able to say "It's finished. I'm satisfied with it" after you finish it. You are willing to crawl to the finishing line but no matter the obstacle, just knowing that you're getting closer to the finishing line is gonna motivate you. Your dedication is gonna become motivation generator. And that's the key. You need the passion and dedicate yourself to it.
But hey, sound simple but we all know the struggle. Sometimes it's even hard to recognize dedication from motivation. And sometimes you just go "Ok. Fuck it. I'm done" and leave it and that's okay AS LONG AS you get back to it after a while. As long as the inner you, the dedicated you that got you here in the first place, goes "Dude, it's tough. But it's alright, we refreshed a bit and now we're gonna fucking make it" (nope, I don't have schizophrenia) and you listen and get back at it.
Dedication is tough. It's about self control and understanding yourself deeply and balancing your mind. It's nirvana of success. It's the ultimate balance. But you can get there. If you want. Badly.
TL;DR You need dedication, not motivation. Punish yourself and reward yourself. Not too harsh and not too much. Just so that you don't lose track.
But most of all, GOOD LUCK YOU AMAZING FUCKS!5 -
Last week, my entire team was out including my manager.
I had to define the roadmap for Q4 and present it to everyone along with my skip level manager (Sr Director).
Now with 12 hour time difference, the call was scheduled at 04:30 AM India time.
Now since I am new, this was my first time (an opportunity to build trust), one off event, and some new learning experience, I decided to give it a shot because I am professional enough to fill in during critical times.
Everything went well.
I come back from vaccine break and this happened: https://devrant.com/rants/4595608/...
Now here is the interesting part. I had my 1:1 with my manager yesterday and she asked me the details of how things went the previous week yada yada..
Then she proceeds to tell me that Sr Director and herself are super impressed with me and by my work.
She was like, "we are thankful that we have you because after the lead left, you managed everything so well"
Then proceeds to asks me, "You had a conversation with lead that you'd be open to relocation. She mentioned me before she quit. Do you think that if you are with the team in US, you'd be able to perform better?"
I agree and tell her that in person socialising is a key tool that helps me a lot in my job.
Manager: "Cool. If you ever want to move to US or anywhere, just let me or Sr Director know and we'd be happy to do so. It's very easy and can be done quickly."
Me: "Do you mean visiting different offices or relocating full time?"
Manager: "Both."
For someone like me, coming from a third world nation who has seen nothing but hardship, this was one of the most rewarding career experience I have had. The decision lies with me. And she asked me that as soon COVID is over, I'll have to frequently visit different offices around the world.
This is my third international offer in 1.5 years that too in times of COVID. All by themselves and I wasn't even looking for them.
Holy fuck! Now I feel more confident and valued for my work.
Hard work is indeed paying off23 -
Forget stress balls!
Relieve your stress with this giant enter button!
Punch it like you mean it.
Tell your boss off with every punch of the enter button!
Smash those bugs with the might of Zues!
Cause a lotta damage!
https://amazon.com/Hongxin-Novelty-...10 -
Who is the guy who designed the AZERTY keyboards ? 😠
Seriously... Alt Gr + 5 = [
And the most horrible thing is the "(" char... WHY THE FUCK DID HE PUTS IT IN THE "5" KEY WHEN KEYBOARD IS IN LOWERCASE ? YES, IN LOWERCASE, NOT ONLY WHEN SHIFT IS HOLD.
There are more than 100 keys in a keyboard, so why here? WHY?
Half of time I check if CapsLock is off just to be sure if I can open a bracket just because someone thought it was a good idea to put it here. It annoys me.13 -
1.
!dev
Found a gray hair and plucked it. 😢 I'm too young for this shit. Whyyyyy oh god whyyyyy.
2.
Linux 5.8 has been breaking my shit. Like, keyboard and track pad stop working. Apparently, a fn key is to blame. Fixed it for now, but can Linux kernel fuck off? I can't have my system break so often. This is the third time I'm reverting or man handling the shit in the last two months.
3.
I need a good expensive fucking vacation. 😢 And a dedicated eye candy (gender doesn't apply) to keep in my line of sight. Maybe then I can recover.
4.
The last 7 days were an emotional rollercoaster. Specifically, from work perspective. I need many hugs. Like, real hugs. Also need good food. 😢
5.
Overall, I shouldn't be stressed but shit is not going great. 😭😭😭21 -
Mini rant ahead:
So just wanted to get something off of my chest in relation to something that continues to prop up constantly in the OSS community.
OSS is not better than proprietary software and proprietary software is not greater than OSS.
Sick of seeing people complain when they see someone using proprietary software like google chrome and the like in comparison to open source alternatives.
We understand that the freedom offered by OSS is clearly better but we should not 'hate' or 'actively avoid' proprietary software.
Key example for me personally is that I use Gamemaker Studio 2 to develop my games and the amount of people who keep negatively branding that choice and tell me to use Godot because it is 'better' and 'open source'
People just really need to respect other peoples choices, if you have something to say on the matter when you see someone using something you may not agree with, sure say your opinion, but don't defend it and go on the attack because other people use differently licensed software.
* And end scene *28 -
Just need to get this off my chest. Started a new job 3 weeks ago at a company that has been around ~18 years, it is only recently that they have started to grow more rapidly. I was brought in under the guise that they wanted to embrace change and better practices and so said I was up for the challenge.
In my 2nd week I was asked to produce a document on tackling the technical debt and an approach to software development in the future for 3 consultants who were coming in to review the development practices of the company on behalf of the private equity firm who has taken a major stake in the company. I wrote the document trying to be factual about the current state and where I wanted to go, key points being:
Currently a tightly coupled monolith with little separation of concerns (73 projects in one solution but you have to build two other solutions to get it to build because there are direct references.).
Little to no adherence to SOLID principles.
No automated testing whatsoever.
Libraries all directly referenced using the file system rather than Nuget.
I set out a plan which said we needed to introduce TDD, breaking dependencies, splitting libraries into separate projects with nuget packages. Start adhering to SOLID principles, looking at breaking the project down into smaller services using the strangler pattern etc. After submitting what I had written to be part of a larger document I was told that it had been tweaked as they felt it was too negative. I asked to see the master document and it turns out they had completely excluded it.
I’ve had open and frank discussions with the dev team who to me have espoused that previously they have tried to do better, tackle technical debt etc but have struggled to get management to allow them. All in all a fairly poor culture. They seem almost resigned to their fate.
In my first 2 weeks I was told to get myself acquainted and to settle myself in. I started looking at the code and was quite shocked at how poorly written a lot of it was and in discussions with my manager have been critical of the code base and quite passionate and opinionated about the changes I want to see.
Then on Friday, the end of my third week, I was invited to a meeting for a catch up. The first thing I was told was that they felt I was being too openly critical in the office and whether I was a good fit for the company, essentially a stay or go ultimatum. I’ve asked for the weekend to think about it.
I’ve been a little rocked by it being so quickly asked if I was a good fit for the company and it got my back up. I told them that I was a good fit but for me to stay I want to see a commitment to changes, they told me that they had commitments to deliver new features and that we might be able to do it at some point in the future but for now I just needed to crack on.
Ordinarily I would just walk but I’ve recently started the process to adopt kids and changing jobs right now would blow that out the water. At the same time I’m passionate about what I do and having a high standards, I’m not going to be silenced for being critical but maybe I will try and tackle it in a different way. I think my biggest issue is that my boss who was previously a Senior Developer (my current position) has worked at the company for 12 years and it is his only job, so when I’m being critical it’s most likely criticising code he wrote. I find it hard to have the respect of a boss who I had to teach what a unit test was and how to write one. It makes it hard to preach good standards when by all accounts they don’t see the problems.
Just wondering if anyone has suggestions or experience that might help me tackle this situation?12 -
Tl;Dr - It started as an escape, carried on as fun, then as a way to be lazy, and finally as a way of life. Coding has defined and shaped my entire life from the age of nine.
When I was nine I was playing a game on my ZX spectrum and accidentally knocked the keyboard as I reached over to adjust my TV. Incredibly parts of it actually made a little sense to me and got my curiosity. I spent hours reading through that code, afraid to turn the Spectrum off in case I couldn't get back to it. Weeks later I got hold of a book of example code to copy out to do various things like making patterns on the screen. I was amazed by it. You told it what to do, and it did it! (don't you miss the days when coding worked like that?) I was bitten by the coding bug (excuse the pun) and I'd got it bad! I spent many late nights on that thing, escaping from a difficult home life. People (especially adults) were confusing, and in my experience unpredictable. When you did things wrong they shouted at you and threatened to take you away, or ignored you completely. Code never did that. If you did something wrong, it quietly let you know and often told you exactly what was wrong. It wasn't because of shifting expectations or a change of mood or anything like that. It was just clean logic, simple cause and effect.
I get my first computer a year later: an IBM XT that had been discarded by a company and was fitted with a key on the side to turn it on. With the impressive noise it made it really was like starting an engine. Whole most kids would have played with the games, I spent my time playing with batch scripts and writing very simple text adventures. And discovering what "format c:" does. With some abuse and threatened violence I managed to get windows running on it. Windows 2.1 I think it was.
At 12 I got a Gateway 75 running Windows 95. Over the next few years I do covered many amazing games: ROTT, Doom, Hexen, and so on. Aside from the games themselves, I was fascinated by the way computers could be linked together to play together (this was still early days for the Web and computers networked in a home was very unusual). I also got into making levels for Doom, Heretic, and years later Duke Nukem 3D (pretty sure it was heretic; all I remember is the nightmare of trying to write levels entirely by code!). I enjoyed re-scripting some of the weapons and monsters to behave differently. About this time I also got into HTML (I still call this coding, but not programming), C, and java. I had trouble with C as none of the examples and tutorial code seemed to run properly under a Windows environment. Similar for my very short stint with assembly. At some point I got a TI-83 programmable calculator and started rewriting my old batch script games on it, including one "Gangster Lord" game that had the same mechanics as a lot of the Facebook games that appeared later (do things, earn money, spend money to buy stuff to do more things). Worried about upcoming exams, I also made a number of maths helper apps, including a quadratic equation solver that gave the steps, and a fake calculator reset to smuggle them into my exams. When the day came I panicked and did a proper reset for fear of being caught.
At 18 I was convinced I was going to be a professional coder as I started a degree in Computer Science. Three months later I dropped out after a bunch of lectures teaching what input and output devices were and realising we were only going to be taught Java and no C++. I started a job on the call centre of a big company, but was frustrated with many of the boring and repetitive tasks we had to do. So I put my previous knowledge to use, and quickly learned VBA to automate tasks. It wasn't long before I ended up promoted to Business Analyst where I worked on a great team building small systems in Office, SAS, and a few other tools.
I decided to retrain in psychology, so left the job I was in and started another degree. During my work and placements my skills came in use a number of times to simplify and automate tasks. I finished my degree, then took a job as a teaching assistant while I worked out what I wanted to do next and how to pay for it. Three years later I've ended up IT technican at the school, responsible for the website, teaching a number of Computing lessons each week, and unofficial co-coordinator for Computing as a subject. I also run a team of ten year old Digital Leaders who I am training in online safety and as technical experts; I am hoping to inspire them to a future in coding. In September I'll be starting teacher training with a view to becoming a Computing specialist teacher. Oh, and I'm currently doing a course in Android Development in my free time.
And this all started with an accidental knock on the keyboard of a ZX Spectrum.6 -
Turns laptop off
Writes key todo list on mini white board for tomorrow.
Thinking occures
Wait a minute, i think i know how to do that!
Turns laptop back on to see if i'm right.
Gets too exited for sleep because thing works3 -
Step 1: Run to the store to buy a USB card reader because all of a sudden you have a need to use a 16Mb CF card that was tossed in a junk drawer for 20 years (hoping it still works, of course), but that was the easy part...
Step 2: Realize that the apps - your own - you want to run on your new (old) Casio E-125 PocketPC (to re-live "glory" days) are compiled in ARM format, not MIPS, which is the CPU this device uses, and the installer packages you have FOR YOUR OWN APPS don't include MIPS, only ARM (WHY DID I DO THAT?!), so, the saga REALLY begins...
Step 3: Get a 20-year old OS to install in a Hyper-V VM... find out that basic things like networking don't work by default because the OS is so damn old, so spend hours solving that and other issues to get it to basically run well enough to...
Step 4: Get that OS updated so that it's at least kind/sorta/maybe (but between you and me, not really!) safe online, all without a browser that will work on ANY modern site (oh, and good luck finding a version of Firefox that runs on it - that all took a few hours)...
Step 5: Okay, OS is ready to go, now get 20-year old dev tools that you haven't even seen in that many years working. Oh, do this with a missing CD key and ISO's that weren't archived in a format that's usable today, plus a bunch of missing dependencies because the OS is, again, SO old (a few MORE hours)...
Step 6: Get 20-year old code written in a language you haven't used in probably almost that long to compile, dealing with pathing issues, missing libs, and several other issues, all the while trying to dust off long-dormant knowledge somewhere in the deep, dark recesses of your brain... surprisingly, it all came back to me, more or less, in under an hour, which lead to...
Step 7: FINALLY get it all to work, FINALLY get the code to compile, FINALLY get it transferred to the device (which has no network capabilities, by the way, which is where the card reader and CF card came into play) and re-live the glory of your old, crappy PocketPC apps and games running on the real thing! WOO-HOO!
Step 8: Realize it's 3:30am by the time that's all done and be VERY thankful that you're on vacation this week or work tomorrow would SSUUCCKK!!!!
Step 9. Get called into work the next day for a production issue despite being tired from the night before and an afternoon of errands, lose basically a whole day of vacation (7 hours spent on it) and not actually resolve it by after midnight when you finally say that's enough :(
Talk about your highs and your lows.6 -
i am fucking tired of companies that come to me expecting to magically fix their STEAMING PILE OF BULLSHIT AND TRASH CODE. how about when i ask "can i get a project brief", instead of saying "just fix it" or "it just needs to do this", GIVE ME A FUCKING COHERENT AND DESCRIPTIVE WRITEUP OF EXACTLY WHAT YOU NEED. i can't read your minds, let alone read the code the previous cock sucking developer wrote, so guess what? i'm left with no other option but to completely rewrite it. to top it off, instead of giving me god damn excuses as to why you can't get me the api key for your order processing, MAKE A NEW ACCOUNT AND GET IT TO ME. how the fuck do you expect me to test an application when i don't even have access to the fucking api the whole shit pile is based around? i swear to god if these people expect me to have this done by the end of the week but want to be little cunt nuggets they can go eat shit. fuck you, fuck your "contract", fuck your company, FUCK EVERYTHING. greedy, shit faced bastards2
-
Deleted a servers crontab by executing crontab -r instead of crontab -e (typo mistake)
crontab -r deletes the users crontab without any confirmation and, just to top it off, the e key is located right next to r. WTH
At least we have backups.3 -
Grr the feeling when one of your interviewers has a hard-on for trying to find ways to sink your boat.
Went to a job interview yesterday during my lunch break for a mid level dev job in central London , i have been trying to transition from a junior role.
First were two senior devs , that went quiet well...
Next up was the tech lead and a team lead, lets call the latter Mc-douche for some problem
The tech lead was fine, very relaxed and clam guy more interested in seeing the logic of my answers and questions as to why i did certain things in this or that manner....
Mc-douche, he would always try to find something wrong then smile smugly and do that sideways head waggle thing
His tech lead is like " yup that's correct"
But he would be like " yeeess but you didn't think about bla bla bla" then talk about shit not even present in the context of the question
Ah also he would ask a question then cut me off as soon as I begin to say that i didnt mention or take into account x or y even though literally my next sentence is about address those details he wanted.
let me fucking finish you dickbag 😡
Had a js question, simple stuff about dom manipulation, told not to bother with code... yet McD starts asking me to write the code for it....managed it , quite easy stuff
Then a sql and db test , again technlead was happy with the answers and the logic am approaching the question when writing my query, yet mc d Is bitching about SQL syntax....
Ok fine, i made a simple mistake, I forgot and used WHERE instead of HAVING in a group by but really?! Thats his focus ?!
Most devs I know look up syntax to do stuff , they focus on their logic first the do the impl.
Then a general question on some math and how i would code to impl a solution on paper
That was a 20 mins one, the question said they didn't expect me to finish it totally so
I approached it like an exam question.
First
I focussed on my general flow of my process, listing out each step.
Then elaborated each step with pseudo code showing my logic for each of the key steps.
Then went deeper and started on some of the classes and methods , was about to finish before it was time up.
Mc douch went through my solution
And grudgingly admitted my logic was "robust enough" it was like he really had to yank that deep out of his colon.
I didn't really respond to any of his rudeness throughout the whole interview,i either smiled politely or put on a keen looking poker face.
Really felt awful the rest of the day, skipped the gym and went home after work, really sucks to have a hostile interviewer.
Pretty sure i wont be hearing anything good from them even though the three other interviewers were happy with me I felt.4 -
@localhost that's my setup. btw its saturday, so I aint hitting a single key that's why the screens are off3
-
Took me 6+ full days.
The feature does not work. Repro is unknown, so only prod is experiencing the issue.. Which rules out the debugger option. Sometimes there's an entry seen in logs: "java.lang.StringIndexOutOfBoundsException". Nothing more - just that. No stack, no class, no nothing. Is it my code that's buggy? Is it some config? Integration? Unexpected response...? A bug in a lib? Is dimm faulty ir maybe server's shared libs are off?
Turns out I used a closing parentheses instead a closing curly bracket in an error message that's supposed to be interpolated...
String message = "{some-business-rule-related-error-message-key)";
took me 6+ full days... But I found it. Took the rest of that Friday off to walk in a park and enjoy my life :)9 -
I am the manager of a customer service team of about 10-12 members. Most of the team members are right out of school and this is their first professional job and their ages range from 22-24. I am about 10 years older than all of my employees. We have a great team and great working relationships. They all do great work and we have established a great team culture.
Well, a couple of months ago, I noticed something odd that my team (and other employees in the building) started doing. They would see each other in the hallways or break room and say “quack quack” like a duck. I assumed this was an inside joke and thought nothing of it and wrote it off as playful silliness or thought I perhaps missed a moment in a recent movie or TV show to which the quacks were referring.
Fast forward a few months. I needed to do some printing and our printer is in a room that can be locked by anyone when it is in use (our team often has large volumes of printing they need to do and it helps to be able to sort things in there by yourself, as multiple people can get their pages mixed up and it turns into a mess). The door had been locked the entire day and this was around noon, and the manager I have the key to the door in case someone forgot to unlock it when they left. I walked in, and there were two of my employees on the couch in the copier room having sex. I immediately closed the door and left.
This was last week and as you can imagine things are very awkward between the three of us. I haven’t addressed the situation yet because of a few factors: This was during both of their lunch hours. They were not doing this on the clock (they had both clocked out, I immediately checked). We have an understanding that you can go or do anything on your lunch that you want, as long as you’re back after an hour. Also, as you mentioned in your answer last week to the person who overheard their coworker involved in “adult activities,” these people are adults and old enough to make their own choices.
But that’s not the end of the story. That same day, after my team had left, I was wrapping up and putting a meeting agenda on each of their desks for our meeting the next day. Out in broad daylight on the guys desk (one of the employees I had caught in the printing room) was a piece of paper at the top that said “Duck Club.” Underneath it, it had a list of locations of places in and around the office followed by “points.” 25 points – president’s desk, 10 points – car in the parking lot, 20 points – copier room, etc.
So here is my theory about what is going on (and I think I am right). This “Duck Club” is a club people at work where people get “points” for having sex in these locations around the office. I think that is also where the quacking comes into play. Perhaps this is some weird mating call between members to let them know they want to get some “points” with the other person, and if they quack back, they meet up somewhere to “score.” The two I caught in the copier room I have heard “quacking” before.
I know this is all extremely weird. I wasn’t even sure I wanted to write you because of how weird this seems (plus I was a little embarrassed). I have no idea what to do. As I mentioned above, they weren’t on the clock when this happened, they’re all adults, and technically I broke a rule by entering the copier room when it was locked, and would have never caught them if I had obeyed that rule. The only company rule I can think of that these two broke is using the copier room for other purposes, preventing someone else from using it.
I would love to know your opinion on this. I tend to want to sweep it under the rug because I’m kind of a shy person and would be extremely embarrassed to bring it up.21 -
Hello everybody. First time ranter, so please be nice.
Starting off with a classic: text editors.
I'm mainly a .net developer, so I mostly use Visual Studio (with vim key bindings), and (g)vim for everything else. However, visual studio code is slowly winning me over. It's sleek, it's pretty, and does a lot of cool stuff. It doesn't do all that vim does though (or does it in ways I don't yet know), and is slightly less customizable. On the other hand, vim sometimes feels like too much overhead for what I use it for.
What do you guys think? What do you use, and what personal gripes do you have?10 -
Want to make someone's life a misery? Here's how.
Don't base your tech stack on any prior knowledge or what's relevant to the problem.
Instead design it around all the latest trends and badges you want to put on your resume because they're frequent key words on job postings.
Once your data goes in, you'll never get it out again. At best you'll be teased with little crumbs of data but never the whole.
I know, here's a genius idea, instead of putting data into a normal data base then using a cache, lets put it all into the cache and by the way it's a volatile cache.
Here's an idea. For something as simple as a single log lets make it use a queue that goes into a queue that goes into another queue that goes into another queue all of which are black boxes. No rhyme of reason, queues are all the rage.
Have you tried: Lets use a new fangled tangle, trust me it's safe, INSERT BIG NAME HERE uses it.
Finally it all gets flushed down into this subterranean cunt of a sewerage system and good luck getting it all out again. It's like hell except it's all shitty instead of all fiery.
All I want is to export one table, a simple log table with a few GB to CSV or heck whatever generic format it supports, that's it.
So I run the export table to file command and off it goes only less than a minute later for timeout commands to start piling up until it aborts. WTF. So then I set the most obvious timeout setting in the client, no change, then another timeout setting on the client, no change, then i try to put it in the client configuration file, no change, then I set the timeout on the export query, no change, then finally I bump the timeouts in the server config, no change, then I find someone has downloaded it from both tucows and apt, but they're using the tucows version so its real config is in /dev/database.xml (don't even ask). I increase that from seconds to a minute, it's still timing out after a minute.
In the end I have to make my own and this involves working out how to parse non-standard binary formatted data structures. It's the umpteenth time I have had to do this.
These aren't some no name solutions and it really terrifies me. All this is doing is taking some access logs, store them in one place then index by timestamp. These things are all meant to be blazing fast but grep is often faster. How the hell is such a trivial thing turned into a series of one nightmare after another? Things that should take a few minutes take days of screwing around. I don't have access logs any more because I can't access them anymore.
The terror of this isn't that it's so awful, it's that all the little kiddies doing all this jazz for the first time and using all these shit wipe buzzword driven approaches have no fucking clue it's not meant to be this difficult. I'm replacing entire tens of thousands to million line enterprise systems with a few hundred lines of code that's faster, more reliable and better in virtually every measurable way time and time again.
This is constant. It's not one offender, it's not one project, it's not one company, it's not one developer, it's the industry standard. It's all over open source software and all over dev shops. Everything is exponentially becoming more bloated and difficult than it needs to be. I'm seeing people pull up a hundred cloud instances for things that'll be happy at home with a few minutes to a week's optimisation efforts. Queries that are N*N and only take a few minutes to turn to LOG(N) but instead people renting out a fucking off huge ass SQL cluster instead that not only costs gobs of money but takes a ton of time maintaining and configuring which isn't going to be done right either.
I think most people are bullshitting when they say they have impostor syndrome but when the trend in technology is to make every fucking little trivial thing a thousand times more complex than it has to be I can see how they'd feel that way. There's so bloody much you need to do that you don't need to do these days that you either can't get anything done right or the smallest thing takes an age.
I have no idea why some people put up with some of these appliances. If you bought a dish washer that made washing dishes even harder than it was before you'd return it to the store.
Every time I see the terms enterprise, fast, big data, scalable, cloud or anything of the like I bang my head on the table. One of these days I'm going to lose my fucking tits.10 -
Here's an even meaner prank. Make it just a tad more difficult on them.
Set chrome in kiosk mode, so they can't switch out of the browser.
Unfortunately 'Alt + F4' still works, but they'd have to know that ahead of time.
And then kill off `explorer.exe` so they can't press the windows key.
You can either set this up as a bat, or you can do all of this from the Task Manager.
```
chrome --chrome-frame --kiosk "http://fakeupdate.net/win10/"
taskkill /f /im explorer.exe
```
And to really piss them off, set it up such that every time they reboot it just goes straight to the update screen
You can set Chrome to run as the Windows shell instead of explorer.exe. Just set the registry
```
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon Shell =
[chrome path]
```5 -
I'm basically an introvert. I've lived most of my childhood with my mother alone with few friends and the ones I had betreyed me real hard at some point. So how come that I'm now founding a startup, speaking in front of a big audience at meetups and have a nearly 60/40 work/social life?
At some point I decided to be more social. Making that decision alone had a huge impact. It took several years though, to implement this decision. Some day I cut off my draining social bounds and found energyzing relationships by simple doing what I wanted to do. I started to reach out and experiment with a lot of hobbies like bow casting and going to board games evenings. I made little steps. E.g bow casting is a sport where you don't necessarily interact with others within the sport, but you have the opportunity to interact about the sport.
A physiologist once told me the neat fact, that being an introvert is just an attribute that does not contradict the skill being socially involved. So it is possible with training and decisions to learn how to be more extroverted. For in introvert this is more exhausting and challanging, but definitely possible.
So today I balance my social life and work by visiting meetups, playing board games and all that stuff that makes me comfortable. There I get to know people with similar interests and similar struggle ;)
At some point the work was just not enough to be happy, I identified my missing social interactions as the root cause so I decided to change that.
On the other hand, don't think you have to be social. Don't think you have to care about everything others expect you to care about. It's bullshit. Don't care about that. Rather ask yourself what you want for yourself. Certainly a social life is part of that, but you alone decide how this will look like. E.g. After I decided hey I just don't give a fuck if you like cuddling your cat and when it's birthday is, several months or years later I started to be interested in these things from my own, not because some dippshit society construct expects me to care about it.
So to wrap up:
Introvert is an attribute, social life is a skill.
Deciding for yourself and giving a fuck about others is key.
It takes a shit load of time. But it works. -
Update on my Facebook and Booking.com interviews. I had them back to back today.
Even before I start, I accept and admit that I am a hypocrite. I hate Amazon yet order stuff from there. I hate Microsoft yet use their products. I hate Facebook yet went ahead to interview with them.
I fucking hate myself for compromising my ethics, values, and integrity. I had promised myself that even if I work for any major shit company, I'd never go with Facebook. Here I am after many years. Not an excuse, but I am doing it because I see it as an entry point into the UK. That's all.
Community's hate towards me is justified and I'd accept the discrimination from this community because this place is my digital home and you all are my family. Infact first thing I told mom was, dR boys are gonna disown me when they get to know about this.
Anyway, coming to the update part.
I had applied leave at work from last Friday. 4 days of leave earned me 10 days off (including weekends and 2 days of Diwali company holiday).
Last Thursday I got to know that Facebook has scheduled their interview today (Friday). I spent insane amount of time preparing. Approximately 8 hours everyday including weekend. I added nearly 40+ hours preparing for it in last 7 days, because I had to get in. Failure isn't an option now.
I sacrifice my family time, preparing for the interview.
I sacrifice Diwali break, sitting in front of the screen and studying.
I sacrifice my only vacation of 2021, doing mock interviews as late as 11.30 PM.
I sacrifice my free time and enjoyment, stressing over what could happen.
I was prepared like perfect for screening stage.
Interview 1: this guy comes and ask 'what is the best compliment you have got as a PM?' and 'Why do you want to quit the current company?'
He wasn't supposed to ask those as per Facebook's policy and interview stage.
Then he gave me a shit problem to solve and rejected my approach and wanted it his was. I tried to follow him and made sure I was able to convince with the reasoning but he kept pushing me back. He kept putting me down. Did not listen to me or what I had to convey or what was expected as an answer. He had certain output in his mind and wanted me to come up with it as an answer.
For the uninitiated: Facebook gives ton of preparation material and tells upfront the kind of questions they'll ask they just focus on few things. Moreover, in Product interviews, there isn't right or wrong answer.
Anyway, this guy started making funny expressions which put my morale down and I stood my ground with losing my cool. I managed to get all my answers right and the key points the look into a candidate. It went decent. Yet the interviewers attitude was something I did not like.
Interview 2: the lady was really kind and warm. Very accommodating and easy person to deal with. It went amazingly well.
I have two observations I want to share with you all.
1. I hate what Facebook does. Lizardberg is awful human being. But I absolutely liked HOW they are doing things, at least from an interview stand point. They even had mock sessions by their PMs and upfront told how to prepare and how to answer.
2. While it seems to be a 5 star experience, I found them to function mechanically. No small talk, no human connection (ironic to their mission), no conversational flow of the interview (again something that they kept saying a zillion times in all their material). They came, formally introduced themselves, and had a checklist kind of attitude, and left.
I now await for the feedback.
In the next hour, I had Booking.com first round.
Amazing people. Warm friendly experience. Treated me as a human. Heard me. Made me feel part of the conversation rather than someone just being judged.
It went 1000x better than Facebook.
I await the feedback from them as well.
I don't know what's gonna happen but one thing for sure, the kind of expectations Facebook set for their interviews, was nowhere close to the reality. It was awful.
180° was for Booking.com
Guess the saying stands true, expectations always lead to disappointment.
Finally I feel de-stressed and my Diwali vacation starts AFTER Diwali ended. Or rather just a regular weekend.
2021 has been terribly awful year for me. Hope this shitty year ends soon.36 -
The company I work at sends their developers out to other companies to help them work on projects and help them in other ways (advice when communicating to customers of on demand software for example).
While not on a project you are working in house training trainees and interns. Part of that is teaching them to show initiative and treating them as full developers. The 30 interns all discussed a git flow and code format.
During the third sprint (two weeks sprints) a team messaged me if I wanted to check their merge request for the sprint.
It took me a glance at the first file to know they didnt do any review themselves. I used my flywheel to check all their changes and without being able to read the code I saw indentation was all over the place, inconsistent bracket placements etc. I let them know I wouldnt check their code until it was according to their own standards.
Two days later I got the message to check it again. At first glance the indentation was fine so I started reading the code. Every single thing was hardcoded, not made to support mobile (or any resolution other than 1920×1080).
A week later they improved it and still not good. Gave them a few pointers like I would for any colleague and off they went to fix things. The code became worse and indentation was all over the place.
I told them the next time it shouldnt be a quick glance to be able to reject it again. By this time other teams came to me asking why it wasnt merged yet and I explained it to them. One of the teams couldnt do anything u til this was merged so I told them to implement it themselves. I was surprised that 4 teams came to me asking about a merge request, that was every team except the team whose pull request it was.
4 weeks after the intitial sprint the other team made a merge request and I had three small comments and then an hour later it was merged.
The other team messaged me why their merge request did went through (still havent seen any of their team in person, Im sitting 10 meters away from them behind a wall)
They also said that it was easier for them because they started from scratch. Thats when I called them in to discuss it all and if they were not interns but full time developers they would have been fired. I told them communication is key and that if you dont understand something you come in person to ask about it. They all knew I like teaching and have the patience to explain a single thing ten times, but the initiative should be theirs.
One of the team members is my current coworker and he learned his lesson by that. The others stopped with their study and started doing something completely else.
TL;DR
Merge request is open for 4 weeks, in the end another team started from scratch and finished it within a week. The original team didnt ask me questions or come to me in person, where other teams did.
DISCLAIMER: some of you might find it harsh, but in our experience it works the best for teaching and we know when people don't dare to ask questions and we help them in that too. It's all about the soft skills at our company.4 -
not universal, but works for me:
1. start listening to long video/podcast/talkshow i'm interested in
2. (optional) think about all the physical things i should do, such as cleaning the house, running errands, etc. conclude "nah, i'd rather stay at the computer".
3. open the project i'm working on, thinking "while i listen, i might as well muck about with this for a bit". the key is for the thought to be duration-indeterminate and non-commital, so it feels like an idea for a voluntary idle activity.
4. start mucking around with the project, starting with the simplest smallest tasks, to slowly shift my focus away from what i'm listening to, so it gradually becomes the background thing as the work gets into foreground of my concentration without me even noticing. this also naturally shifts me towards the more important and complicated tasks in the project
5. naturally lose track of time, realizing i've been working for 2 to 3 hours without break only after what i'm listening to ends (sometimes not even then)
6. at that point, take a break, stretch my legs, get some food, watch some 20-30 minute thing with full attention.
7. find a new long-form mostly audio thing to listen to, and go to step 4. repeat.
8. i found i can work like this 8 to sometimes 20 hours straight in a nice atmosphere, without feeling like i spent the time working with all the mental exhaustion it brings, instead it feeling like "i was listening to interesting/entertaining things and mucking around with some stuff on the side", with all the feeling of "i've been idling the whole time" except the work is actually done, or at least i made a progress. it feels almost like procrastinating except without the guilt because i can see i've done a lot through that time. kind of a good compromise between total procrastination and working your ass off into complete anxiety/depression2 -
I tried to look for ParrotSec on Google because a friend of mine told me about it and instead of typing in what I should I typed, I was off by one key and had actually typed in "ParrotSex".rant smh wft typo fail why is x and c so close to each other get back to work are you that jobless sigh i hope you're reading this5
-
Most painful code error you've made?
More than I probably care to count.
One in particular where I was asked to integrate our code and converted the wrong value..ex
The correct code was supposed to be ...
var serviceBusMessage = new Message() {ID = dto.InvoiceId ...}
but I wrote ..
var serviceBusMessage = new Message() {ID = dto.OrderId ...}
At the time of the message bus event, the dto.OrderId is zero (it's set after a successful credit card transaction in another process)
Because of a 'true up' job that occurs at EOD, the issue went unnoticed for weeks. One day the credit card system went down and thousands of invoices needed to be re-processed, but seemed to be 'stuck', and 'John' was tasked to investigate, found the issue, and traced back to the code changes.
John: "There is a bug in the event bus, looks like you used the wrong key and all the keys are zero."
Me: "Oh crap, I made that change weeks ago. No one noticed?"
John: "Nah, its not a big deal. The true-up job cleans up anything we missed and in the rare event the credit card system goes down, like now. No worries, I can fix the data and the code."
<about an hour later I'm called into a meeting>
Mgr1: "We're following up on the credit card outage earlier. You made the code changes that prevented the cards from reprocessing?"
Me: "Yes, it was my screw up."
Mgr1: "Why wasn't there a code review? It should have caught this mistake."
Mgr2: "All code that is deployed is reviewed. 'Tom' performed the review."
Mgr1: "Tom, why didn't you catch that mistake."
Tom: "I don't know, that code is over 5 years old written by someone else. I assumed it was correct."
Mgr1: "Aren't there unit tests? Integration tests?"
Tom: "Oh yea, and passed them all. In the scenario, the original developers probably never thought the wrong ID would be passed."
Mgr1: "What are you going to do so this never happens again?"
Tom: "Its an easy addition to the tests. Should only take 5 minutes."
Mgr1: "No, what are *you* going to do so this never happens again?"
Me: "It was my mistake, I need to do a better job in paying attention. I knew what value was supposed to passed, but I screwed up."
Mgr2: "No harm no foul. We didn't lose any money and no customer was negativity affected. Credit card system may go down once, or twice a year? Nothing to lose sleep over. Thanks guys."
A week later Mgr1 fires Tom.
I feel/felt like a total d-bag.
Talking to 'John' later about it, turns out Tom's attention to detail and 'passion' was lacking in other areas. Understandable since he has 2 kids + one with special-needs, and in the middle of a divorce, taking most/all of his vacation+sick time (which 'Mgr1' dislikes people taking more than a few days off, that's another story) and 'Mgr1' didn't like Tom's lack of work ethic (felt he needed to leave his problems at home). The outage and the 'lack of due diligence' was the last straw.1 -
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 -
Subaru's Symmetrical AWD is the best thing in the world at the moment. Also, warning: !dev
Tl;dr: I'm getting another RPi3 thanks to awesome engineering.
Got a couple of inches of light snow here, and on my way home I came across a GMC Sierra dually stuck at the bottom of a moderately sized ditch. Naturally, I stopped by in my Forester and offered to tow it out.
With my 20ft tow rope stretched to its full length I was barely touching the road. He signalled that he was ready, and I gunned it. Slowly but surely the truck crawled out of the 6ft deep trench. She crested the hill with much applause (from me and the driver of the truck). As a thanks, he gave me $30.
Looks like I'm gonna get a new Raspberry Pi to play with. I think I'll turn this one into a countertop MAME arcade machine.
And for those of you wondering why I'm praising Symmetrical AWD as opposed to AWD in general, here's a quick lesson in drivetrains:
Most all wheel drive cars power the front wheels most of the time. This saves on fuel economy. The thing is, power is only transmitted to the rear wheels when the front wheels start to lose traction. At that point you're already screwed; only two wheels at any one time are putting useful power to the road.
Symmetrical AWD systems, like you'll find in all Subarus and most performance cars, distribute the vehicle's torque eaqually front-rear at all times. So instead of waiting until the front wheels start slipping, all of the wheels are powered right off the bat.
To make this more devvy: grrrr php, vim is best, I configured the tab key to enter four spaces, js has too many damn frameworks and they're still being pumped out faster than rabbits in a bunny farm.3 -
Not as much of a rant as a share of my exasperation you might breathe a bit more heavily out your nose at.
My work has dealt out new laptops to devs. Such shiny, very wow. They're also famously easy to use.
.
.
.
My arse.
.
.
.
I got the laptop, transferred the necessary files and settings over, then got to work. Delivered ticket i, delivered ticket j, delivered the tests (tests first *cough*) then delivered Mr Bullet to Mr Foot.
Day 4 of using the temporary passwords support gave me I thought it was time to get with department policy and change my myriad passwords to a single one. Maybe it's not as secure but oh hell, would having a single sign-on have saved me from this.
I went for my new machine's password first because why not? It's the one I'll use the most, and I definitely won't forget it. I didn't. (I didn't.) I plopped in my memorable password, including special characters, caps, and numbers, again (carefully typed) in the second password field, then nearly confirmed. Curiosity, you bastard.
There's a key icon by the password field and I still had milk teeth left to chew any and all new features with.
Naturally I click on it. I'm greeted by a window showing me a password generating tool. So many features, options for choosing length, character types, and tons of others but thinking back on it, I only remember those two. I had a cheeky peek at the different passwords generated by it, including playing with the length slider. My curiosity sated, I closed that window and confirmed that my password was in.
You probably know where this is going. I say probably to give room for those of you like me who certifiably. did. not.
Time to test my new password.
*Smacks the power button to log off*
Time to put it in (ooer)
*Smacks in the password*
I N C O R R E C T L O G I N D E T A I L S.
Whoops, typo probably.
Do it again.
I N C O R R E C T L O G I N D E T A I L S.
No u.
Try again.
I N C O R R E C T L O G I N D E T A I L S.
Try my previous password.
Well, SUCCESS... but actually, no.
Tried the previous previous password.
T O O M A N Y A T T E M P T S
Ahh fuck, I can't believe I've done this, but going to support is for pussies. I'll put this by the rest of the fire, I can work on my old laptop.
Day starts getting late, gotta go swimming soonish. Should probably solve the problem. Cue a whole 40 minutes trying my 15 or so different passwords and their permutations because oh heck I hope it's one of them.
I talk to a colleague because by now the "days since last incident" counter has been reset.
"Hello there Ryan, would you kindly go on a voyage with me that I may retrace my steps and perhaps discover the source of this mystery?"
"A man chooses, a slave obeys. I choose... lmao ye sure m8, but I'm driving"
We went straight for the password generator, then the length slider, because who doesn't love sliding a slidey boi. Soon as we moved it my upside down frown turned back around. Down in the 'new password' and the 'confirm new password' IT WAS FUCKING AUTOCOMPLETING. The slidey boi was changing the number of asterisks in both bars as we moved it. Mystery solved, password generator arrested, shit's still fucked.
Bite the bullet, call support.
"Hi, I need my password resetting. I dun goofed"
*details tech support needs*
*It can be sorted but the tech is ages away*
Gotta be punctual for swimming, got two whole lengths to do and a sauna to sit in.
"I'm off soon, can it happen tomorrow?"
"Yeah no problem someone will be down in the morning."
Next day. Friday. 3 hours later, still no contact. Go to support room myself.
The guy really tries, goes through everything he can, gets informed that he needs a code from Derek. Where's Derek? Ah shet. He's on holiday.
There goes my weekend (looong weekend, bank holiday plus day flexi-time) where I could have shown off to my girlfriend the quality at which this laptop can play all our favourite animé, and probably get remind by her that my personal laptop has an i2350u with integrated graphics.
TODAY. (Part is unrelated, but still, ugh.)
Go to work. Ten minutes away realise I forgot my door pass.
Bollocks.
Go get a temporary pass (of shame).
Go to clock in. My fob was with my REAL pass.
What the wank.
Get to my desk, nobody notices my shame. I'm thirsty. I'll have the bottle from my drawer. But wait, what's this? No key that usually lives with my pass? Can't even unlock it?
No thanks.
Support might be able to cheer me up. Support is now for manly men too.
*Knock knock*
"Me again"
"Yeah give it here, I've got the code"
He fixes it, I reset my pass, sensibly change my other passwords.
Or I would, if the internet would work.
It connects, but no traffic? Ryan from earlier helps, we solve it after a while.
My passwords are now sorted, machine is okay, crisis resolved.
*THE END*
If you skipped the whole thing and were expecting a tl;dr, you just lost the game.
Otherwise, I absolve you of having lost the game.
Exactly at the char limit9 -
> phone has OEM unlock disabled
> phone is vulnerable to like 300 race conditions
> reboot phone, get to menu as fast as possible
> sure enough, what do you fucking know, option is unblocked for a split second if I get to and open the dev settings perfectly
> manage to pull it off again
> SETTING STAYS ON AFTER REBOOTING we have ourselves a winner
it's never this easy, i have yet to check if it has a key or not, will keep you posted, but if this all works this will have been the most retardedly-simple unauthorized bootloader unlock ever5 -
My phone fell down for the thousandth time and i thought it was okay as it usually has been in previous attempts at suicide.
Pressed power button ...
Screen turned on showing lock screen...
Touched back key .... phone vibrated....
Hmmm... It's okay. Didn't try unlocking screen...
Received a call later on....
Swiped to pick up call.... Nothing moved...
Turned the screen off. Turned it on again. Tried opening screen lock. Again nothing moved...
Got an OTG and plugged a mouse into phone.
Cursor moves.
Alas... My Phone's Touch Unit is DEAD :/7 -
The fucking defective Caps Lock on Apple keyboards drives me fucking ballistic!
WHY would they ever think it would be a good idea to introduce a minimum press time for a key?!?
EVERY. FUCKING. TIME. I use the damn thing it inevitably fails and I have to backspace, delete the non-caps text I just entered after HITTING THE FUCKING CAPS LOCK KEY, tap the damn thing again (harder this time) and try again. It usually takes 2 or 3 tries before it actually catches. I'm sorry, but training myself to type slower is not as easy as you think!
Who the fuck thought up this nonsensical bullshit?? And who the fuck is going around accidentally tapping their caps lock key to the point where such a delay would be needed?? Do you not know where your own fingers are??
Seriously, all this does is penalize fast typists and people who actually want to USE the caps lock key for what it was meant for.
I swear to god this one little thing pisses me off SO much. And what's worse is they don't even give you an option to disable it, AND it's bloody fucking impossible to disable yourself even through the terminal.
(Also, typing this rant with so many caps was probably not as cathartic as I was going for!) 😂9 -
I just got the book "The C Programming Language, 2nd Edition" from Amazon.
I've had my wars with Amazon in the past for not protecting packages properly, and now it happened again. For the third time in 6 months.
The cover of the book is damaged, pages are bend a bit and it looks like someone took a key and tried to draw something on the front cover.
I contacted customer support to get a replacement, which was no problem, but still fucking annoying that I have to spend time on this shit.
Anyway, what pisses me off is the amount of work I have to do in order to send this shit back to them. Holy fuck!
First of all, I haven't met a single competent employee at a "post office" here in Denmark, as all of the offices are now a part of a either hyper markets or grocery stores. This means, that it's the stores employees handling this.
In this process from Amazon I have to actually clear it for customs with a form they need to take care of.
I have to print 4 labels, 2 which I need to sign and 2 I need to do something else with...
But I'm so freaking scared that they'll fuck this up and I'll get billed for 2 books. It wouldn't fucking surprise me, considering how fucking shit our postal service is in Denmark and how I've been screwed over by Amazon in the past4 -
tl;dr - why you no read this?
Here I am pondering why I continue to return to my job everyday when we are currently at month 13 of a 4 month project... yea let that set in for a minute... which is still at least 3-4 months away from being deployed due to annual leave of key stake holders and the whole Christmas period creeping up and things just not going as planned every step of the way.
There's no greater demotivater - is that even how you spell it - then being stuck in a project for so long you really just don't give a shit if it works or not anymore.
This has gone from a simple - relatively speaking - project to some monolithic mayhem of requirement changes and process adjustments, that have not only delayed our team, but 3rd party vendors needing to change things as well, or the requirements being wrong early so when you get up to business testing it's like "nope, that's not what we wanted" .... despite all the sessions of you personally giving the PM all the damn requirements.
But in saying that, they (3rd party) aren't innocent either, we have found nothing but issue after issue with their product since we started this project that who ever signed off on going forward with the thing should have been shot from both sides - it's not designed for the scale we will be using it yet we didn't find that out till we got so far into the rabbit hole we had a chance to be able to do load testing.
Meh, guess I'll go to work Monday and spend another week in misery trying to deliver something that just doesn't want to know what the finish line is.4 -
Who thought it would be a good idea to limit the length of a dns record to 255 chars?
Is one really not allowed to use a proper dkim key in 2018!
The funny thing was that they just cut off the rest without informing the user!
Had to convince the guy to switch dns „provider“9 -
VIM! ViM! vim! Vi Improved! Emacs (Wait ignore that one). What’s this mysterious VIM? Some believe mastering this beast will provide them with untold mastery over the forces of command line editing. Others would just like to know, how you exit the bloody thing. But in essence VIM is essentially a command line text editor at heart and it’s learning curve is so high it’s a circle.
There’s a lot of posts on the inter-webs detailing how to use that cruel mistress that is VIM. But rather then focus on how to be super productive in VIM (because honestly I’ve still not got a clue). This focus on my personal journey, my numerous attempts to use VIM in my day to day work. To eventually being able to call myself a novice.
My VIM journey started in 2010 around the same time I was transiting some of my hobby projects from SVN to GIT. It was around that time, that I attempted to run “git commit” in order to commit some files into one of my repositories.
Notice I didn’t specify the “-m” flag to provide a message. So what happened next. A wild command line editor opened in order for me to specify my message, foolish me assumed this command editor was just like similar editors such as Nano. So much CTRL + C’ing CTRL + Z’ing, CTRL + X’ing and a good measure of Google, I was finally able to exit the thing. Yeah…exit it. At this moment the measure of the complexity of this thing should be kicking in already, but it’s unfair to judge it based on today’s standards of user friendly-ness. It was born in a much simpler time. Before even the mouse graced the realms of the personal computing world.
But anyhow I’ll cut to the chase, for all of you who skipped most of the post to get to this point, it’s “:q!”. That’s the keyboard command to quit…well kinda this will quit the program. But…You know what just go here: The Manual. In-fact that’s probably not going to help either, I recommend reading on :p
My curiosity was peaked. So I went off in search of a way to understand this: VIM thing. It seemed to be pretty awesome, looking at some video’s on YouTube, I could do pretty much what Sublime text could but from the terminal. Imagine ssh’ing into a server and being able to make code edits, with full autocomplete et al. That was the dream, the practice…was something different. So I decided to make the commitment and use VIM for editing one of my existing projects.
So fired the program up and watched the world burn behind me. Ahhh…why can’t I type anything, no matter what I typed nothing seemed to appear on screen. Surely I must be missing something right? Right! After firing up the old Google machine, again it would appear there is this concept known as modes. When VIm starts up it defaults to a mode called “Normal” mode, hitting keys in this mode executes commands. But “Insert” entered by hitting the “i” key allows one to insert text.
Finally I thought I think I understand how this VIM thing works, I can just use “insert” mode to insert text and the arrow keys to move around. Then when I want to execute a command, I just press “Esc” and the command such as the one for saving the file. So there I was happily editing my code using “Insert” mode and the arrow keys, but little did I know that my happiness would be short lived, the arrow keys were soon to be a thorn in my VIM journey.
Join me for part two of this rant in which we learn the untold truth about arrow keys, touch typing and vimrc created from scratch. Until next time..
:q!4 -
I'm forced by my job to use this fucking unusable piece of horse shit also know as a Windows operating system.
And it's not only that I have experienced every fucking corner case bug that is possible to occur in our universe.
Not only that that for last 2 years I seen more blue screen than blue sky.
Not only that forced updates fucked my schedules so many times that now I'm really *afraid* to turn off my computer off because I have zero guarantee that I will be able to restart it in a reasonable amount of time.
No, neither of those broke me.
The thing that kills me everyday is, piece by piece ...
WHY THE FUCK THERE IS NO SINGLE, USEABLE, SANE TERMINAL EMULATOR ON WINDOWS
I JUST WANT TO TYPE SOME COMMANDS, COPY/PASTE TEXT AND SCROLL
IS IT TO MUCH ?????
FUCK CMD
FUCK POWERSHELL
FUCK WSL
FUCK ALL THOSE WANKY THIRD-PARTY EMULATORS
FUCK EVERY-COMMAND-LINE-REALATED THING ON WINDOWS
FUCKING USLESS SHIT
CANT EVEN DO SOME SSH COPY/PASTE SHIT
WITHOUT SOME WEIRD CHARACTERS POPING OUT EVERYWHERE.
AND FUCK THAT EVERY ONE OF THOSE MUST HAVE TOTTALY DIFFERENT SET OF KEY SHORTCUTS
AND THAT FUCKING BELL
WHY WOULD YOU EVEN PUT A FUCKING BELL SOUND AS DEFAULT SETTING ??
GO TO HELL MICROSOFT
I WANT MY LINUX BACK7 -
Me and tech coworker opens office front door. Another coworker starts ranting how he accidentally hit som key combo and started some speech synthesis feature in Windows. Me and tech coworker both declared we had never heard of that feature before.
Ten minutes goes by, then muggle coworker comes by asking for help to turn it off. Tech coworker Googles solution in literally 6 seconds on the phone without even stopping the conversation we had going on when muggle interrupted.
How is it that muggles haven't found out that the Internet contains stuff?! And that it's searchable!!
Gaaaahhh -
rant = Rant.STORY_TIME
<<<Story
This is still something funny me and my friends often remember.
There was once upon a time we were young and stupid, playing on the internet with fake credit card numbers, sometimes we had luck and the orders passed.
We were on the living room, checking who could put an order for a coffee machine, while another friend of mine was talking about the deep web and what he found there.
Suddenly, someone knocks really hard on the door... We went silent...
Me: "Who's there?"
Voice: Federal Police, open up!
Me: *shiiiit*
I went blank, close my laptop as fast as possible, I thought of throwing it away through the window. My friends panicked, I had my laptop upside down, opening the lid to remove the HDD.
One of my friends stood up and went to the door, looked through the eyehole.
Friend: *whispering* The eyehole's covered!
We quickly stood up and looked at each other, like we were acknowledging our wrong doing and getting ready to face the consequences.
I took a deep breath and put the key in the door to open it. Sudden heavy knock again. I jumped and yelled "I'm on it, wait a minute!".
Slowly I opened the door... And there they were, another two of my friends.
F1: hey...what, what happened? Why are you so scared.
They stepped in while we told them what we were doing and they laughed their asses off.
We were shit scared, and those two were laughing.
Story;
So, nowadays, I don't even think about doing that kind of stuff again and I'm hoping to make a Master's degree in security...or electronics, whatever happens first. -
!dev, just a couple little things that happened to me recently.
First off, I just (like 20 minutes ago) replaced the save battery in my Pokemon Silver, so that's fun. Now I want to start modding my GBC (new shell, glass screen, all the fun stuff)
My friend is talking to me again, as of yesterday. The whole situation is still kinda touchy so I'm gonna be careful about talking to her for now, but after some time it should be all good.
I recently took up vaping (I know, it's bad and I shouldn't do it, but I'm an adult and that's my fucking decision).
Then yesterday, I gave a friend a ride home from school. He didn't have his house key so he was locked out and had to wait for his dad to get home. The neighborhood I live in, you don't really leave someone sitting outside for too long, cause shit might happen to them (drug deals are a regular thing across the street from my house, gunshots aren't too common, but still), so I stayed with him.
I'd never met his dad, and I didn't want his first impression to be me letting out a huge vape cloud, so if I was going to take a hit, I would check to make sure nobody was around. At one point, I checked, then took a huge hit. Then I heard my friend say "oh there's my dad". Cue me practically gluing my mouth shut, not breathing at all as I waved bye, turned my car on, pulled out of the driveway, and drove down the street some.
When I let the cloud out, it was a HUGE fucking cloud too. Much bigger than the ones I've normally had. Definitely would have been a bad introduction, especially considering that friend's family is not very fond of that type of stuff (smoking/vaping, drinking, etc) from what I know. -
First off murphy is a bitch. Week started off good, nothing bad happening then friday night came and i get an email about a site being down. Ok check it out real quick, cert is expired. No real big deal just a 20 minute fix, didn't bother me that i didn't get an expiry alert. Now is where murphy decided to be the biggest fucking bucktoothed cocksucker, generate a csr for a wildcard domain using an existing key and sent it off when i get it back the private key doesn't match the cert. Again ok maybe i fucked up, generate a selfsigned cert no fucking problem. Contact support to see if they have an idea. Oh now is when it gets fun, the fucking dumbass preceded to tell me how i didn't know what i was doing and how i just had to generate a csr and private key at the same time after i explained to the bastard that I've already tested it with a selfsigned cert. (How does this fucker have a job) By now apparently i was pissed off enough to scare murphy's pansy ass away cause i told the fucker to refund my money, got a list of 30 subdomains and setup letsencrypt on it. Now the part on this that is fucking hilarious is that it took me damn near 24 hours to be called a fucking idiot from a guy that doesn't know his ass between a hole in the fucking ground and 30 minutes of being pissed off more than i have been since i took anger management classes in the 9th grade to say fuck it and switch.7
-
!dev
What a fucking son of a bitch day...
I’m hungover as fuck so i don’t wanna drive, so I want to pay parking for a few hours.
I didn’t find my fucking key, when I pulled up the couch to look under it, my XPS fell of it and smashes the screen. At that moment my landlord knocks on the door to take a look at the kitchen ceiling and t he kitchen is a fucking MESS! You know when you’re drunk and get a late night cooking attack? Yea, that sort of mess.
Completely fucked in my head I got the reserve key for the car, unlocked it and the bloody alarm went of because the keys battery is empty. So managed to turn it off, went back into my apartment and found the key BEHIND the motherfucking couch.. BEHIND THE COUCH, HOW WOULD IT EVEN GET THERE? Ffs...
I’ll just continue drinking now and hope tomorrow is gonna be a better day.. and order a new screen for my laptop, it’s not at all like I’m short on money this month anyway..4 -
Part two of: a day off an iOS developer life:
1. App crashed and stack trace gives no info in which file it happened, I have a generic table view cell that is used in so many places and Xcode just wrote: xcell does not support key value.
2. Mac freezing when Xcode is creating IPA file thanks to a new feature in Xcode 9 (Mac freezing is the new feature, even mouse pointer doesn't move -.-)
3. Let's check the value of this class property, Xcode: fuck off and either print it in console (after hitting a break point) or expand that shitty tree at the bottom to reach your class property!
An advice: never click jump to definition when Xcode is indexing, it will either freezing Xcode or crash it.
Part 1 link: https://devrant.com/rants/1137208/...1 -
After a lot of work I figured out how to build the graph component of my LLM. Figured out the basic architecture, how to connect it in, and how to train it. The design and how-to is 100%.
Ironically generating the embeddings is slower than I expect the training itself to take.
A few extensions of the design will also allow bootstrapped and transfer learning, and as a reach, unsupervised learning but I still need to work out the fine details on that.
Right now because of the design of the embeddings (different from standard transformers in a key aspect), they're slow. Like 10 tokens per minute on an i5 (python, no multithreading, no optimization at all, no training on gpu). I've came up with a modification that takes the token embeddings and turns them into hash keys, which should be significantly faster for a variety of reasons. Essentially I generate a tree of all weights, where the parent nodes are the mean of their immediate child nodes, split the tree on lesser-than-greater-than values, and then convert the node values to keys in a hashmap to make lookup very fast.
Weight comparison can be done either directly through tree traversal, or using normalized hamming distance between parent/child weight keys and the lookup weight.
That last bit is designed already and just needs implemented but it is completely doable.
The design itself is 100% attention free incidentally.
I'm outlining the step by step, only the essentials to train a word boundary detector, noun detector, verb detector, as I already considered prior. But now I'm actually able to implement it.
The hard part was figuring out the *graph* part of the model, not the NN part (if you could even call it an NN, which it doesn't fit the definition of, but I don't know what else to call it). Determining what the design would look like, the necessary graph token types, what function they should have, *how* they use the context, how thats calculated, how loss is to be calculated, and how to train it.
I'm happy to report all that is now settled.
I'm hoping to get more work done on it on my day off, but thats seven days away, 9-10 hour shifts, working fucking BurgerKing and all I want to do is program.
And all because no one takes me seriously due to not having a degree.
Fucking aye. What is life.
If I had a laptop and insurance and taxes weren't a thing, I'd go live in my car and code in a fucking mcdonalds or a park all day and not have to give a shit about any of these other externalities like earning minimum wage to pay 25% of it in rent a month and 20% in taxes and other government bullshit.4 -
We had 1 Android app to be developed for charity org for data collection for ground water level increase competition among villages.
Initial scope was very small & feasible. Around 10 forms with 3-4 fields in each to be developed in 2 months (1 for dev, 1 for testing). There was a prod version which had similar forms with no validations etc.
We had received prod source, which was total junk. No KT was given.
In existing source, spelling mistakes were there in the era of spell/grammar checking tools.
There were rural names of classes, variables in regional language in English letters & that regional language is somewhat known to some developers but even they don't know those rural names' meanings. This costed us at great length in visualizing data flow between entities. Even Google translate wasn't reliable for this language due to low Internet penetration in that language region.
OOP wasn't followed, so at 10 places exact same code exists. If error or bug needed to be fixed it had to be fixed at all those 10 places.
No foreign key relationships was there in database while actually there were logical relations among different entites.
No created, updated timestamps in records at app side to have audit trail.
Small part of that existing source was quite good with Fragments, MVP etc. while other part was ancient Activities with business logic.
We have to support Android 4.0 to 9.0 of many screen sizes & resolutions without any target devices issued to us by the client.
Then Corona lockdown happened & during that suddenly client side professionals became over efficient.
Client started adding requirements like very complex validation which has inter-entity dependencies. Then they started filing bugs from prod version on us.
Let's come to the developers' expertise,
2 developers with 8+ years of experience & they're not knowing how to resolve conflicts in git merge which were created by them only due to not following git best practice for coding like only appending new implementation in existing classes for easy auto merge etc.
They are thinking like handling click events is called development.
They don't want to think about OOP, well structured code. They don't want to re-use code mostly & when they copy paste, they think it's called re-use.
They wanted to follow old school Java development in memory scarce Android app life cycle in end user phone. They don't understand memory leaks, even though it's pin pointed by memory leak detection tools (Leak canary etc.).
Now 3.5 months are over, that competition was called off for this year due to Corona & development is still ongoing.
We are nowhere close to completion even for initial internal QA round.
On top of this, nothing is billable so it's like financial suicide.
Remember whatever said here is only 10% of what is faced.
- An Engineering lead in a half billion dollar company.4 -
Rant.TYPE_REAL_LIFE
So I go for a run for the first time, well, ever. I put my keychain in my pocket and I'm off with my headphones on. Come back home I FUCKING LOST MY WHOLE KEYCHAIN. Key to my house, my apartment, the garage remote, .. fucking dogshit man. Tried to track it down by going down the same path twice but no luck so now my only hope is the police but what are the odds :/3 -
Company has a severe lack of fresh blood.
"let's recruit everyone who has an IQ over room temperature and barely passes the mark".
Me protesting bloody murder cause I know that the idea is not just profoundly dumb, but frustration from high staff turnover takes a toll on *everyone*.
"nah can't be that bad".
Then the discussion started who could do monitoring and mentoring, so we can sort out the bad apples *quickly*.
Me reminding again that this is exactly what leads to a high staff turnover, as this is nothing else than "hire, hire - quickly fire".
Guess who won the award of being the mentor / monitor ....
*drum roll*
Come on, I know you would NEVER expect this.
Let me surprise you: M E.
Yeah. They chose the person that was absolutely against this idea...
Because that person is "most qualified for the task at hand and has the necessary qualifications".
Today was the first 4 h workshop with a new recruit.
The Lord has had zero mercy on me.
I started to mute myself after 30 minutes in regular intervals to just scream and curse the world.
How profound dumb a person can be amazes me.
Person has had a "very expensive 6 month boot camp course".
I was close asking if the boot camp course was in watching porn and wanking their brain cells out....
Git... Yeah he knew what he was doing...
Except that he messed up every commit by either not sticking to the companies format or - what I found funny the first 2 times, then not so much anymore - just writing a git commit message like a 15 year old teenage girl would write to their diary.
Programming. Oh yeah. He should be a programmer.
He had much Bootcamp.
Bootcamp expensive. Bootcamp good.
If someone is unable to iterate over an iterator... And instead starts creating an integer based array of a map's key name to then fetch the map value in an for loop based on the created key array.
Yeah. Bootcamp much good.
Creating DTOs...
It took an hour to write a DTO with him... Cause constructors are hard and it's even harder when you have to explain primitive datatypes in Java, null safety, constructors, NPEs, final, ...
Like really no experience at all.
The next week's will be amazing.
Either I get a valium drop or I'm gonna blow my head off, cause mentoring will drain the last bit of hope I had left in me.
Note that I do not blame the recruit (yeah he's dumb. But he has ZERO work experience, so it's not unexpected), I'm just too fed up with getting the poo crown despite being against the whole process.
I think the recruit could make it..........
But that I got the shittiest job ever is really haunting me.
I dunno how I survive the next weeks.
And this is just the first recruit... There will be more.2 -
Recently, I had to make a minor modification to some Node.js code a coworker wrote a year ago which buffers stringified JSON into Kinesis. I just needed to add a new key to the input object, it took minutes to make the change, but hours to make sense out the absolute trash spaghetti code this guy wrote. After spending half a day trying to make his code readable, I just got so pissed off. I replaced his 15 files/+1,500 lines of uncommented code, filled with classes, factory functions, poorly named functions and vars, and so, so many spelling mistakes.
We now have a single, well commented, 300 line file that does the same thing.
Get that shit code out of here. -
Am I the only developer in existence who's ever dealt with Git on Windows? What a colossal train wreck.
1. Authentication. Since there is no ssh key/git url support on Windows, you have to retype your git credentials Every Stinking Time you push. I thought Git Credential Manager was supposed to save your credentials? And this was impossible over SSH (see below). The previous developer had used an http git URL with his username and password baked in for authentication. I thought that was a horrific idea so I eventually figured out how to use a Bitbucket App password.
2. Permissions errors
In order to commit and push updates, I have to run Git for Windows as Administrator.
3. No SSH for easy git access
Here's where I confess that this is a Windows Server machine running as some form of production. Please don't slaughter me! I am not the server admin.
So, I convinced the server guy to find and install some sort of ssh service for Windows just for the off times we have to make a hot fix in production. (Don't ask, but more common than it should be.)
Sadly, this ssh access is totally useless as the git colors are all messed up, the line wrap length and window size are just weird (seems about 60 characters wide by 25 lines tall) and worse of all I can't commit/push in git via ssh because Permissions. Extremely aggravating.
4. Git on Windows hangs open and locks the index file
Finally, we manage to have Git for Windows hang quite frequently and lock the git index file, meaning that we can't do anything in git (commit, push, pull) without manually quitting these processes from task manager, then browsing to the directory and deleting the .git/index.lock file.
Putting this all together, here's the process for a pull on this production server:
Launch a VNC session to the server. Close multiple popups from different services. Ask Windows to please not "restart to install updates". Launch git for Windows. Run a git pull. If the commits to be pulled involve deleting files, the pull will fail with a permissions error. Realize you forgot to launch as Administrator. Depending on how many files were deleted in the last update, you may need to quit the application and force close the process rather than answer "n" for every "would you like to try again?" file. Relaunch Git as Administrator. Run Git pull. Finally everything works.
At this point, I'd be grateful for any tips, appreciate any sympathy, and understand any hatred. Windows Server is bad. Git on Windows is bad.10 -
New MacBook Pro: one type of connection port, no MagSafe, base drive is 256gb, and they killed off the goddamn physical esc key.
Apple you dumb.1 -
If there was an anime Based on developers.
==Start===
Dev : here comes my favorite browser.
Mouse : No, not until I'm here.
Hand : whattttt? What's happening??
Mind : oh NO!! I why's Internet Explorer is loading?!?
Faster Mind : it's mouse, he's behind all this. Only he's powerful enough to pull off something like this.
Time : Developer-san SAVE me!!
IE : it's too late now, if you do anything it will just slow everything down!!! Hahahah
Dev : No it won't, don't ever underestimate a true developer. It's not over yet!!
*Some keyboard key combination
Time : *screams* developerrr-saaaan!!
Hand : wait, I know it, it's happening. We can still save Time-chan.
IE : WHAT!! No, it can't be!!
Dev : here comes Ctrl+Alt+Del. Be gone....
IE : Nooooooooooooo, this isn't happening, Aaaaaa *dead*
Hand : we did it!!!10 -
Mozilla really knows how to nudge one to not use email encryption by default.
Since Thunderbird has native support for OpenPGP encryption, i can only chose to encrypt all or no messages by default. There is no opportunistic mode and there are no per-reciepient encryption preferences. The Enigmail addon had both.
So i obviously have gone for encrypt-by-default.
But since then, whenever i want to send a message to the majority of my contacts, i have to manually disable the encryption or get annoyed by the no-key-found dialog.
I thought, i would get the muscle memory to just disable encryption for recipients for wich i don't expect to have a key.
But they also made the GUI so i have to open a dropdown and then click on the right item to do that. All the items basically look the same, as there is no color coding or specific icon for them. The item labels are also too long for unconscious pattern recognition.
So i didn't got that muscle memory.
I now have turned off encryption by default and will probably forget to enable it for some emails wich i actually could send encrypted...4 -
"The thing I want to change is very simple.."
Day starts off great again by manager saying the above - which is already problem with her limited technical knowledge - and then she proceeds by wanting to change multiple properties of a primary key in our live db.
I really hope my interviews go well this week and I can leave this place soon.. -
I just want to thank Steam for making steam guard key in all caps. So I dont need to fucking think about if its uppercase i or lowercase L. It would be much better if they do it on all captcha services or just fucking dont use i l o and 0 characters. These are pisses me off. They are so fucking annoying.1
-
This stupid computer is in clamshell mode connected to my screen and mech %99.999999 of the time. I take it with me on a trip and the down arrow key breaks off (little plastic shit-thing snapped off)..WTF? 2013 Macbook that has about 5 hours of total keyboard-use, at best.
Walk into the Apple shop in Varna, 3 Euros and I'm back in action.
ahhhh fuck..it was probably my fault clacking too hard.
Good sushi here and my dry February has happily turned into large pints of Kamenitza...
Cheers from Bulgaria, you fucks..5 -
So I've identified a key demographic that's excluded from social networks, by their very definition.
Misanthropes.
Misanthropic individuals need their own little area of the internet too.
I propose "MySpaceNowFuckOff.com" although this would probably result in a protracted legal battle. I'm open to name changes.
It would be a site for socialising with others like you, who don't actually want to socialize, where you don't get "likes" you get "disinterested acknowledgement", there isn't a share button but a "shame this idiot" button. And you don't have friends but a list of "people who haven't pissed me off... yet". -
I love our industry but it’s filled with way too many tech grifters, fakes and waste men pretending to know what they’re doing. A lot of whom low key hate coding and the people that do it, wish they were as good and those people yet lack the self awareness and humility to see where they fall short and actually learn the technology.
Even if you see the industry as just a way to make some money, learn how to code and if you can’t do that then learn to appreciate the process. Stop talking as if you know what you are doing while embarrassing yourself and coming off as a dunce and condescending to those that do.5 -
LXC, no doubt.
I mean to be fair, LXC is an amazing container runtime once you manage to set it up. But setting it up is the hard bit. Starting off with LXC 2.x, it was a nightmare to find out how to get things like the storage backends working. But with ZFS it ended up being alright. Find some arcane values to stick in the /etc/lxc/default.conf to use ZFS as the backend and then the default storage location on those ZFS pools (I'll get back to that later), and it worked alright. Again, once it works it's great, but setting it up and finding the right configuration keys is absolute hell.
So, LXC 2.x for a while and a few months ago I finally ended up upgrading to 3.x. Every single configuration key changed. Every single one of them, and that's why I had to 1) learn LXC all over again, and 2) redeploy each and every one of my containers. That process is still not entirely completed. ZFS backend was once again a dive into arcane configuration keys found on forums and whatnot. Yeah.. official documentation has none of it. Oh and in 3.x you now also have to dodge the torrent of "just use LXD m8" messages. Yeah, very helpful when LXD is also the ONLY way to reasonably configure it. Absolutely beautiful. Oh and as far as the ZFS default storage location goes (such as ssd/lxc/ct)? Yeah forget about it. There's no configuration option for it anymore, and the default is "lxc". In ZFS lingo that means that LXC has the audacity to demand a whole pool for itself. No. No you don't deserve a whole pool for yourself. But hey at least you can define the storage location to use in the lxc-create command! Every single time you have to define it in lxc-create. I abstracted it away into my own LXC interface, so no big deal really. But yeah... That could absolutely be better. And in 2.x it was actually better.
Oh and btrfs, the filesystem I'd like to use on low memory systems because ZFS' ARC is too much on such systems? Yeah forget about it. I still have no idea how to do it. Thank you LXC and its amazing documentation!
And if you want the icing on the cake for LXC's terrible documentation, see their repo's index page at https://github.com/lxc/lxc/.... Yeah, it's totally still at 2.x... That's how well they maintain that. Even Debian has 3.x now. And if you look at the branches, you'll find that even 4.x is already available and considered stable. -
I have a rant. A genuine rant, not a funny story, etc.
I want a keyboard. I need one. It can cost €500, as long as it won't break in a year and fulfils all my needs. Make it a €1000, I don't care. What are my needs then? Well...
It has to be a split keyboard - two halves. But wireless in every aspect, ergonomic, with multimedia keys on its outer edges (preferably pointing outwards, not up) and a heavy metal trackball on the right outer edge (preferably upper right corner). That's a bare minimum.
On top of that it probably some magnetic scrolls for things like navigating pages, changing volume and fidgeting in general wouldn't hurt. Also I'd prefer it to snap back into a one-piece whenever I need it to lie on my knees, e.g. when I type while sitting on a coach (I have a coach PC setup, no desk, and there's a reason). Why do I need it to split then...?
I had an accident. Kind of broke my back when I was 11. It's mostly okay now after couple years of rehabilitation and many more years of careful living. Luckily the only two wheels I ride on are powered by a 105.97 hp @ 9,970 rpm engine. Still, I try to be careful so I tried tons of work hygiene techniques over the years and I found out anything over 2 hours is best done while lying flat.
Coding while lying flat has its challenges, mostly focused around screen and input. Ever since I got a VR headset half of them got solved but the other half - acquiring a suitable keyboard - it's very hard to satisfy. I tried that with a one-piece keyboard lying on my stomach. Turns out actively bending elbows quickly wears them out (hello tennis players). So a split keyboard it has to be. So far I tried 4 different ones and I had to modify the cable connecting both halves in each and every one of them so that it'd be long enough to go behind my back. The main cable itself I only had to modify once because usually there're extensions available.
Apart from cables, all of those keyboards had issues. Starting from some kind of de-syncing when keys from both halves would randomly register in a wrong order - I didn't know it's possible with a cable connected halves... I did try two generic WiFi keyboards (using one for each hand) and they unfortunately suffered from that very same issue but I was sure it wouldn't happen if the device was designed to be a one unit from the very beginning, right? And yet it in 2 of the tested devices.
Other than that, plugs disconnecting on their own forcing me to take off the headset and fiddle around, too high key travel that'd strain the wrists after a few hours, even the noise that would wake up my girlfriend sleeping in a separate room were all a common issue (I briefly had an almost completely silent WiFi mechanical keyboard from Logitech we both really liked, but it was a one-piece). Once I got a split keyboard that was "natively" WiFi but not only the two halves were still connected with a cable that turned out to be way too short for my needs, it also had a very noticeable lag despite the high price - a lag way higher than any of the cheap WiFi keyboards I owned in the past. So I sent it back. Now IDK what to do because AFAICT there are no more models available, at least where I live.
So yeah, I need a keyboard and I'll probably have to make one myself. Sorry, just had to vent.5 -
This is gonna be a long post, and inevitably DR will mutilate my line breaks, so bear with me.
Also I cut out a bunch because the length was overlimit, so I'll post the second half later.
I'm annoyed because it appears the current stablediffusion trend has thrown the baby out with the bath water. I'll explain that in a moment.
As you all know I like to make extraordinary claims with little proof, sometimes
for shits and giggles, and sometimes because I'm just delusional apparently.
One of my legit 'claims to fame' is, on the theoretical level, I predicted
most of the developments in AI over the last 10+ years, down to key insights.
I've never had the math background for it, but I understood the ideas I
was working with at a conceptual level. Part of this flowed from powering
through literal (god I hate that word) hundreds of research papers a year, because I'm an obsessive like that. And I had to power through them, because
a lot of the technical low-level details were beyond my reach, but architecturally
I started to see a lot of patterns, and begin to grasp the general thrust
of where research and development *needed* to go.
In any case, I'm looking at stablediffusion and what occurs to me is that we've almost entirely thrown out GANs. As some or most of you may know, a GAN is
where networks compete, one to generate outputs that look real, another
to discern which is real, and by the process of competition, improve the ability
to generate a convincing fake, and to discern one. Imagine a self-sharpening knife and you get the idea.
Well, when we went to the diffusion method, upscaling noise (essentially a form of controlled pareidolia using autoencoders over seq2seq models) we threw out
GANs.
We also threw out online learning. The models only grow on the backend.
This doesn't help anyone but those corporations that have massive funding
to create and train models. They get to decide how the models 'think', what their
biases are, and what topics or subjects they cover. This is no good long run,
but thats more of an ideological argument. Thats not the real problem.
The problem is they've once again gimped the research, chosen a suboptimal
trap for the direction of development.
What interested me early on in the lottery ticket theory was the implications.
The lottery ticket theory says that, part of the reason *some* RANDOM initializations of a network train/predict better than others, is essentially
down to a small pool of subgraphs that happened, by pure luck, to chance on
initialization that just so happened to be the right 'lottery numbers' as it were, for training quickly.
The first implication of this, is that the bigger a network therefore, the greater the chance of these lucky subgraphs occurring. Whether the density grows
faster than the density of the 'unlucky' or average subgraphs, is another matter.
From this though, they realized what they could do was search out these subgraphs, and prune many of the worst or average performing neighbor graphs, without meaningful loss in model performance. Essentially they could *shrink down* things like chatGPT and BERT.
The second implication was more sublte and overlooked, and still is.
The existence of lucky subnetworks might suggest nothing additional--In which case the implication is that *any* subnet could *technically*, by transfer learning, be 'lucky' and train fast or be particularly good for some unknown task.
INSTEAD however, what has happened is we haven't really seen that. What this means is actually pretty startling. It has two possible implications, either of which will have significant outcomes on the research sooner or later:
1. there is an 'island' of network size, beyond what we've currently achieved,
where networks that are currently state of the3 art at some things, rapidly converge to state-of-the-art *generalists* in nearly *all* task, regardless of input. What this would look like at first, is a gradual drop off in gains of the current approach, characterized as a potential new "ai winter", or a "limit to the current approach", which wouldn't actually be the limit, but a saddle point in its utility across domains and its intelligence (for some measure and definition of 'intelligence').4 -
Heres some research into a new LLM architecture I recently built and have had actual success with.
The idea is simple, you do the standard thing of generating random vectors for your dictionary of tokens, we'll call these numbers your 'weights'. Then, for whatever sentence you want to use as input, you generate a context embedding by looking up those tokens, and putting them into a list.
Next, you do the same for the output you want to map to, lets call it the decoder embedding.
You then loop, and generate a 'noise embedding', for each vector or individual token in the context embedding, you then subtract that token's noise value from that token's embedding value or specific weight.
You find the weight index in the weight dictionary (one entry per word or token in your token dictionary) thats closest to this embedding. You use a version of cuckoo hashing where similar values are stored near each other, and the canonical weight values are actually the key of each key:value pair in your token dictionary. When doing this you align all random numbered keys in the dictionary (a uniform sample from 0 to 1), and look at hamming distance between the context embedding+noise embedding (called the encoder embedding) versus the canonical keys, with each digit from left to right being penalized by some factor f (because numbers further left are larger magnitudes), and then penalize or reward based on the numeric closeness of any given individual digit of the encoder embedding at the same index of any given weight i.
You then substitute the canonical weight in place of this encoder embedding, look up that weights index in my earliest version, and then use that index to lookup the word|token in the token dictionary and compare it to the word at the current index of the training output to match against.
Of course by switching to the hash version the lookup is significantly faster, but I digress.
That introduces a problem.
If each input token matches one output token how do we get variable length outputs, how do we do n-to-m mappings of input and output?
One of the things I explored was using pseudo-markovian processes, where theres one node, A, with two links to itself, B, and C.
B is a transition matrix, and A holds its own state. At any given timestep, A may use either the default transition matrix (training data encoder embeddings) with B, or it may generate new ones, using C and a context window of A's prior states.
C can be used to modify A, or it can be used to as a noise embedding to modify B.
A can take on the state of both A and C or A and B. In fact we do both, and measure which is closest to the correct output during training.
What this *doesn't* do is give us variable length encodings or decodings.
So I thought a while and said, if we're using noise embeddings, why can't we use multiple?
And if we're doing multiple, what if we used a middle layer, lets call it the 'key', and took its mean
over *many* training examples, and used it to map from the variance of an input (query) to the variance and mean of
a training or inference output (value).
But how does that tell us when to stop or continue generating tokens for the output?
Posted on pastebin if you want to read the whole thing (DR wouldn't post for some reason).
In any case I wasn't sure if I was dreaming or if I was off in left field, so I went and built the damn thing, the autoencoder part, wasn't even sure I could, but I did, and it just works. I'm still scratching my head.
https://pastebin.com/xAHRhmfH33 -
Unrelated to programming:
If I'm doing async karaoke (i.e., I'm using an app like Smule where one person records one part and you join or vice versa) and the other person decides to randomly COME INTO MY LANE and not just sing my part, but sing it off-key, I get irrationally annoyed about it. It's great if they do that at the beginning of the song because then you can just bail. But when they do it at like the very end, I'm like ... 😬 -
Ok so was dating this girl who n has a 8 year old I was with her for 4 year her son calls me dad... Long fucked up shit story short. She cheated fucked me over all that cool I stayed for the kid... A few months later I catch her in my son's bed with another dude.. ya I know right my apartment my everything!!!! How could she right.... but as most men knows Once Upon and gets caught doing something they turn into something completely unrecognizable in ridiculous. If I do whatever she says and wants to still let me in her son's life!! And as soon as I left my apartment to her she moved some dude in with his two kids and stole everything that I had.. so I had to get coppers involved to try to get some stuff... I mean I was free balling to work with no socks .. no towels nothing... you can only imagine how badly I wanted to go into my apartment and destroy this dude.... But for my son's sake I bit my lip and took it... she got a hold of my spare car keys both spare key tab and keys... shortly after I left they run my truck of all my HVAC technician tools... Then to make it worse some months later she emptied out my truck again... and you can only imagine how upset I was about everything because I love that kid and I don't want him to have to go through anything.... Someway somehow her and her new boyfriend got some guys off GitHub I mean I'm getting torn up out here ... GPS trackers .. people following me... and everytime I leave my truck or leave anything that gets broken into and stolen... it was so bad that they even made me lose my job at three different stores that I was working not because of my performance but every time I would walk outside of work my truck wouldn't start or it would be completely ransacked. Someone plz HELPPPPP and yes that's like the 4th GPS tracker that I've taken out of my second vehicle now because of this crap it is literally almost ruined my life6
-
About a month ago I sorted out some old electronic stuff and found my old laptop from 2011. A 2:nd Gen i7 8gb ram. I replaced it due to several bluescreens a day that later turned out to be caused by a faulty RAM module (was 16Gb back then).
Well, back then it became a backup laptop and went on the shelf and almost forgotten.
I went through all the old files on it and copied them to the NAS, replaced the mechanic drive with cheep SSD.
Used the old Win7 license key to upgrade to win 10 , dust off the fan, and it turned out to be usable.
I have much better computers so I would not use it for anything but today I gave it to my 6 year old nephew so he can start using a computer and build his knowledge. Worse case; If he spills soda on it he'll learn not to do that with the more expensive computers he will use in future.
So win win. I got to get rid of some junk that had been gathering dust for many years by giving my nephew an opportunity to get started with computers.
Finally, the timing: Microsoft announced a few days back that any new upgrade from windows 7&8 to 10 is no longer supported, but that computer still has a valid win 10 license as it was updated a month ago. -
Needed my Windows 10 vm for parallax propeller development again. Should be pretty straightforward:
Start VM. Very unresponsive and Interface glitches with 2GB RAM so I give it 4GB to get on the desktop. Bruh, off to a good start.
Turns out that there are a few updates. So I try to install them. After two fucking hours Virtualbox screams at me for being out of storage. FFS Window$ updates managed to take up like 20GB extra.
Had to install it from scratch since my drive is full. Now my key won't activate because it is already activated. 15min support hotline, because 6*8 characters are necessary for a f*cking Phone activation.
Damage assessment:
1h of my life I will never get back, a barely viable operating system and I'm not even sure if USB passthrough works.
PSA:Gnome-Boxen has a superb unattended installer.8 -
I just got my third 128GB MicroSD card off Amazon, this time SanDisk. Yet again, trying to do anything not involving the OEM full-disk exFAT partition staying intact (which, fuck that, all that uses that is Windows and Linux, i'm looking for splitting this thicc bih up) shifts EVERYTHING, including MBR+PT/GPT down the disk by 16MB exactly inserting data from... the atmosphere? whatever's using it? ...do SD cards have that secure key/DRM store space thing still?
(EDIT: I do verify that they ARE genuinely the right size after purchasing before reformatting or repartitioning, by the way.)
First it was a Silicon Power card, then a Samsung card, now a SanDisk.
(Also, why all S?)
Luckily, this time it wasn't a pain in the ass to get it to read as anything but "Bad Card" or a 0-byte/empty/non-existent device in Windows/Linux (respectively) so I was able to see that it was indeed the same issue without taking 3 days to jump through device hoops to finally get it to do it again but in such a way that it shifts out and back in all zeroes.2 -
StackOverflow locked my account. I'm hoping someone here might be kind enough to help me with a bash script I'm "bashing" my head with. Actually, it's zsh on MacOS if it makes any difference.
I have an input file. Four lines. No blank lines. Each of the four lines has two strings of text delimited by a tab. Each string on either side of the tab is either one word with no spaces or a bunch of words with spaces. Like this (using <tab> as a placeholder here on Devrant for where the tab actually is)
ABC<tab>DEF
GHI<tab>jkl mno pq
RST<tab>UV
wx<tab>Yz
I need to open and read the file, separate them into key-value pairs, and put them into an array for processing. I have this script to do that:
# Get input arguments
search_string_file="$1"
file_path="$2"
# Read search strings and corresponding names from the file and store in arrays
search_strings=()
search_names=()
# Read search strings and corresponding names from the file and store in arrays
while IFS= read -r line || [[ -n "$line" ]]; do
echo "Line: $line"
search_string=$(echo "$line" | awk -F'\t' '{print $1}')
name=$(echo "$line" | awk -F'\t' '{print $2}')
search_strings+=("$search_string")
search_names+=("$name")
done < "$search_string_file"
# Debug: Print the entire array of search strings
echo "Search strings array:"
for (( i=0; i<${#search_strings[@]}; i++ )); do
echo "[$i] ${search_strings[$i]} -- ${search_names[$i]}"
done
However, in the output, I get the following:
Line: ABC<tab>DEF
Line: GHI<tab>jkl mno pq
Line: RST<tab>UV
Line: wx<tab>Yz
Search strings array:
[0] --
[1] ABC -- DEF
[2] GHI -- jkl mno pq
[3] RST -- UV
That's it. I seem to be off by one because that last line...
Line: wx<tab>Yz
never gets added to the array. What I need it to be is:
[0] ABC -- DEF
[1] GHI -- jkl mno pq
[2] RST -- UV
[3] wx -- Yz
What am I doing wrong here?
Thanks.17 -
Hit it with a LITTL solution: Leave It Till Tomorrow or Later. I normally do a commit and a push then clock out of the office at a reasonable time. I go home, spend some time with the wife and in the quiet hours of the night, if I'm bored, I pull down the troublesome code and take another swing at it. Normally the solution comes to me within 5 to 10 minutes. If I don't solve it within the hour, I close it off and try again at work the next day.
A change of environment and a rested mind both form parts of the key to solving troublesome code. -
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've been using Visual Studio and I'm really starting to get pissed off at the key combinations.
Like Ctrl+K+Ctrl+D
Just to auto format code. So I'm now thinking of speeding up my workflow by using AutoHotKey which by the way is the best thing ever invented.
If anyone uses VS and is interested in me sharing the ahk script then let me know. I just feel like pressing 4 keys for simple tasks is just a waste of time and easy to forget.3 -
Fuuuuuuuck!!
CR estimates:
Part 1: 2h including testing
Part 2: 2h-2days-maybe never (small changes on horrifically fucked up project noone understands with tons of tech debt)
Managed to pull off the part two in one day.. //yay me?!
Additional day to unfuckup git fuckups (including but not limited to master head not compiling because a smartass included *.cs in .gitignore file which he also pushed..don't ask, I have no clue why..) which was a huuuge deal for me as I usually use only local repo and had no idea how to tackle this.. coworker helped out.. seems I was on the right way, but git push branchy was acting up & said I had to login & ofc I had no clue what the pass was set to (first setup was more than 2yrs ago)..so new key, new pass.. all good.. yay!
Back to the original story/rant: Now I'm stuck with writing jira explanation why it was done this way & not the way customer suggested. They offered only vague description anyways which would require me to do a hacky messy thing, ew.. + it most probably would require major data modifications after deployment to even make it work..
Anyhow, this expanation is also easy peasy in english..
BUT...
I must write it in my native tongue.. o.O FML! Spent almost 40mins on one paragraph..
Sooo.. if anyone will petition to ban non english in IT, I'm all for it!!2 -
Alright guys, I need some advice now from you..
My employer is super impressed with my worked and they are willing to relocate me to the US (Seattle).
As you all are aware that I am actively trying to move out of my country but lately have realised that no matter what, it's home.
Also, I am way to close to my mother and don't want to leave her alone for an extended period of time as both my parents are ageing and I cannot be a selfish fuck to ignore them during their last phase of life.
I want to make the most to spend time with them.
Some key points that I need help with
- I am more inclined towards the UK/EU than US
- Need to spend time with parents/family
- Need to secure some cash for some key life moments
Some challenges:
- Cannot take parents along because they'd not be able to settle for more than 1.5 month outside for various reasons
- If I am moving out, why shouldn't I go to a place I love than a place I don't?
Some plans:
Plan A: Move to Seattle (6 months) > FAANG > Get a high paying high in India (all this in 2 year duration) > Settle down > Periodically travel Europe and explore hobbies
Plan B: Move to Seattle (6 months) > FAANG (optional) > Find a job in the UK/EU (4.5 year duration) > Fullfill EU dreams > Get a high paying job in India > Settle > Continue exploring hobbies
Plan C: Stay in India with current company (6 months) > IJP or EJP to the UK/EU (5 year duration) > Fullfill EU dreams > Get a high paying job in India > Settle > Continue exploring hobbies
I need to pick one while keeping in my that I can spend more time with parents and fullfill my dreams as well. I am confident that money will follow and I'll save enough for my retirement. Willing to trade off some extremely high paying jobs for a happier lifestyle.28 -
First post and of course it's a rant.
I work for a mid sized development agency with approx 50 developers heading up the main development backend team.
So, on this one project the head of design goes through the client agreed spec but starts adding loads off additional UI elements and data that isn't in the spec, isn't collected anywhere and isn't needed
When reviewing the mock ups I raise this and push back saying it all needs to be taken out as we dont have that data and that the additional elements are not recoverable in the sprint time.
Designer sends the mockups to the client anyway and gets sign off from the client, who now expects all this additional work in the same sprint and at no extra cost to what we agreed for the sprint.
After an aggravating day trying to figure wtf we are going to do, I end up working until 3am (having started at 8am the previous day) implementing the addition shit, which needed to be collected and surfaced throughout the entire back end.
Owner of the business walks in this morning and gets told by the management team about how late I was working and what had gone on.
His response........
Pay for all employees in the business to have a takeout lunch on the company.
Best of it all, I was so busy catching up on the shit I should have been doing, that I didnt even get my free food!!!!
Why do designers think everything is so simple and just takes a few key presses?!?1 -
Crypto. I've seen some horrible RC4 thrown around and heard of 3DES also being used, but luckily didn't lay my eyes upon it.
Now to my current crypto adventure.
Rule no.1: Never roll your own crypto.
They said.
So let's encrypt a file for upload. OK, there doesn't seem to be a clear standard, but ya'know combine asymmetric cipher to crypt the key with a symmetric. Should be easy. Take RSA and whatnot from some libraries. But let's obfuscate it a bit so nobody can reuse it. - Until today I thought the crypto was alright, but then there was something off. On two layers there were added hashes, timestamps or length fields, which enlarges the data to encrypt. Now it doesn't add up any more: Through padding and hash verification RSA from OpenSSL throws an error, because the data is too long (about 240 bytes possible, but 264 pumped in). Probably the lib used just didn't notify, silently truncating stuff or resorting to other means. Still investigation needed. - but apart from that: why the fuck add own hash verification, with weak non-cryptographic hashes(!) if the chosen RSA variant already has that with SHA-256. Why this sick generation of key material with some md5 artistic stunts - is there no cryptographically safe random source on Windows? Why directly pump some structs (with no padding and magic numbers) into the file? Just so it's a bit more fucked up?
Thanks, that worked.3 -
TLDR: Being taken of my assigned dev tasks to do a basic word mail merge.
Why am I doing a word mail merge again?
Oh yeah because the business are that used to oh well if it's more than two clicks IT will do it. The only bit that would be considered hard (using that word loosely) is the address block.
No totally not mad that you had me write a mail merge for dip shits guide which isn't being used. No totally not pissed that you now want me to drop everything I'm doing for this basic task.
The fucks can't even pull the right data. Here's the data for the mail merge. Great your missing some key bits. The fucking addresses and names of the people.
I think what's pissing me off the most is I'm not being technically challenged at all and any chance I get to do something that would be is taken away to do something basic you learn in school. -
I once was working on my family's business during summer and was doing something on the laptop that was there (according to the owner, it was in a "good shape" - oh my god that laptop nearly gave me cancer: an old Toshiba, running W10, with half the F keys not working - specially F5. I CAN'T LIVE WITHOUT F5 OH MY GOD -, and also the ➡ key (arrow keys). It was bought in a flea market and some IT guy, a friend of the owner, repaired it a bit and installed the OS because a laptop that old ran WinXP or Win Vista for sure) when suddenly it died on me.
I rebooted the thing and right before the time it should be showing the windows logo, the screen froze (on a black screen with some text) and it started to beep. Loudly. A loud continuous beep. I turned it off and on some times after that, seeing if turning it off and on did something (as it seems to work LoL) and it continued with the beeping. After a quick search I found out that that was a common problem with Toshibas that old, and that I needed to press F2 (that key worked thank god) when the black screen with the text showed up (I don't remember what was written there, it were some booting instructions, I think).
It worked. Great. Now the N key doesn't work when I press it. Greeeeeeeaaaaaat. Also it seemed that, when I opened the start menu, it would automatically write "nnnnnnnn(...)" without me pressing any key (pressing any key would make it stop though, maybe it was stuck).
Then I told the owner not to turn it off, because the laptop would start beeping and such (and I know he'd panic about it).
From then on I think it went off for good and now he's been using his own Toshiba, that runs Vista and is slow as all hell.
Moral of the story: he should have been used his crappy PC from the beginning, at least all its keys work
(Note: watching him type hurts my soul. When one is used to use both hands to type, and is fast-ish on the keyboard and uses tabs to change fields, watching someone type with only one hand every 2" or so and using the mouse to change fields hurts. So much time wasted 😭) -
Am I the only one to this date who still doesn't feel comfortable using the NumPad? I always have the NumLock key turned off and people who borrow my computer get annoyed by that. I've always typed numbers using the row above the letters. Typing numbers on the NumPad is very slow and unnatural to me. Is someone else out there feeling the same?4
-
On page 19 of the ethereum yellow paper: http://gavwood.com/paper.pdf it defines the address of a wallet as: A(pr) = Β[96...255](KEC(ECDSAPUBKEY(Pr))), which is the right most 160-bits of the Keccak hash of the public key generated by the private key.
If I expose the public key to the network, do I allow people to impersonate me and sign transactions even though they don't have Tr, Ts, or Tw? My understanding is no, that without those values you can't hash the transaction.
Subsequently, this leads me to wonder if the purpose of the address (besides identifying users) to obscure the public key so that the private key is at a less risk of being reversed? Or can the public key of any address be captured?
If the public key of any address can be identified on the network or off network (without actually being the owner of that key), how do you do that? Are there any resources on how to perform this that are computationally easy?1 -
Chinese remainder theorem
So the idea is that a partial or zero knowledge proof is used for not just encryption but also for a sort of distributed ledger or proof-of-membership, in addition to being used to add new members where additional layers of distributive proofs are at it, so that rollbacks can be performed on a network to remove members or revoke content.
Data is NOT automatically distributed throughout a network, rather sharing is the equivalent of replicating and syncing data to your instance.
Therefore if you don't like something on a network or think it's a liability (hate speech for the left, violent content for the right for example), the degree to which it is not shared is the degree to which it is censored.
By automatically not showing images posted by people you're subscribed to or following, infiltrators or state level actors who post things like calls to terrorism or csam to open platforms in order to justify shutting down platforms they don't control, are cut off at the knees. Their may also be a case for tools built on AI that automatically determine if something like a thumbnail should be censored or give the user an NSFW warning before clicking a link that may appear innocuous but is actually malicious.
Server nodes may be virtual in that they are merely a graph of people connected in a group by each person in the group having a piece of a shared key.
Because Chinese remainder theorem only requires a subset of all the info in the original key it also Acts as a voting mechanism to decide whether a piece of content is allowed to be synced to an entire group or remain permanently.
Data that hasn't been verified yet may go into a case for a given cluster of users who are mutually subscribed or following in a small world graph, but at the same time it doesn't get shared out of that subgraph in may expire if enough users don't hit a like button or a retain button or a share or "verify" button.
The algorithm here then is no algorithm at all but merely the natural association process between people and their likes and dislikes directly affecting the outcome of what they see via that process of association to begin with.
We can even go so far as to dog food content that's already been synced to a graph into evolutions of the existing key such that the retention of new generations of key, dependent on the previous key, also act as a store of the data that's been synced to the members of the node.
Therefore remember that continually post content that doesn't get verified slowly falls out of the node such that eventually their content becomes merely temporary in the cases or index of the node members, driving index and node subgraph membership in an organic and natural process based purely on affiliation and identification.
Here I've sort of butchered the idea of the Chinese remainder theorem in shoehorned it into the idea of zero knowledge proofs but you can see where I'm going with this if you squint at the idea mentally and look at it at just the right angle.
The big idea was to remove the influence of centralized algorithms to begin with, and implement mechanisms such that third-party organizations that exist to discredit or shut down small platforms are hindered by the design of the platform itself.
I think if you look over the ideas here you'll see that's what the general design thrust achieves or could achieve if implemented into a platform.
The addition of indexes in a node or "server" or "room" (being a set of users mutually subscribed to a particular tag or topic or each other), where the index is an index of text audio videos and other media including user posts that are available on the given node, in the index being titled but blind links (no pictures/media, or media verified as safe through an automatic tool) would also be useful.12 -
Ugh. So for one of my classes (Projects In Computer Science) we have to break up into groups; Around 4-6 people per group and build some software for different local companies in the city that I live in.
Well.... the company that my group chose is so damn frustrating. Essentially we are making a glorified Applicant Form system for their website (there's more to it than just that). So you would think that the company knew what sort of fields would be needed for these forms.... Well no, we are over a month into this project and still have barely began coding shit because they are so fucking slow to respond to our emails, don't pick up our calls, or put off doing absolutely anything related to our project! Our professor asked that we would have a written copy of the project requirements made and signed off by the client within the first 2 weeks of classes starting. Took them over a month to get around to that, and still even after signing off on the requirements said that they were missing key forms that we needed to account for... Its your damn fault for not telling us that. We completely wasted our time planning out the database and structuring the front-end/back-end to work for the forms they had given us, and now there's yet another one with inconsistent fields, meaning we need to rethink out most of our system to account for this data. We only have 3 months total, 1 which is already gone and practically wasted, and even still we don't have any sort of confirmation on what form fields we have to account for.
Fucking hell just spend a little bit of time for both our sake, and your own to get us the finalized forms fields and requirements for this project. Honestly at the rate things are going we probably wont be able to finish, which sucks ass since this project is perfect resume material.
Seriously this company desperately needs us to make them this program since their current system is absolute shit. They are literally getting a system that would cost upwards of $20,000 for free, yet they don't seem to care much that we probably wont be able to finish due to their faults. If we didn't have a time cap on this project I wouldn't really care, but the fact that we only have 3 months, plus school work in other classes, exams and a personal life, its making this project a lot more stressful than it needs to be.
Its not like we have a project manager either, so all the emailing and communication is being done by myself. Honest to god, all they have/had to do was sit down for 1 hour of time to decide what they all needed and we would probably have been able to finish this project.5 -
I hate group project so much.
I yet again successfully stirred up a big drama in my project group. For project, I proposed a CDN cache system for a post only database server. Super simple. I wanted to see what ideas other people come up with. So I said I am not good at the content and the idea is dumb. Oh man, what a horrible mistake. One group member wants to build a chat app with distributed storage. We implemented get/put for a terribly designed key value store and now they want to build a freaking chat app on top of a more stupid kV store using golang standard lib. I don't think any of those fools understand the challenges that comes with the distributed storage.
I sent a video explaining part of crdt. "That's way too complicated. Why are you making everything complicated."
Those fools leave too much details for course stuff's interpretation and says
"course stuff will only grade the project according to the proposal. It's in the project description".
I asked why don't they just take baby steps and just go with their underlying terribly designed kV store.
"Messaging app is more interesting and designing kV store with generic API is just as difficult"
😂 Fucking egos
Then I successfully pissed off all group members with relatively respectful words then pissed off myself and joined another group.1 -
Make sure your software does not lose data when improperly quit, and does not allow deletion without a proper confirmation dialogue.
I have experienced pre-installed voice recorder applications that leave behind an unsalvageable corrupt file if the smartphone shuts down due to running out of battery charge, or powers off due to battery undervoltage (as a result of an aged battery).
As often, third-party software beats pre-installed software, and the voice recorder "ASR" by "NLL apps" leaves behind a playable file when unexpectedly quit. Might be because it uses the OGG vorbis format rather than M4A or 3GP audio.
Also, the camera software of the Samsung Galaxy Pocket smartphone from 2012 (which was crap anyway) would discard a video file if the recording was quit through the "back" navigation key.
Perhaps this was done deliberately, but it is a terrible idea due to the possibility of accidents happening.
Some gallery software for Android lets the user delete photos and videos by swiping vertically. After this, a so-called "toast" notification appears with an undo button. If not responded to within seconds, or when tapping next to it due to stress, the photo or video is gone. This is, needless to say, terrible design.2 -
I have a Lenovo IdeaPad 330s and it shows the battery percentage remaining when we press any key on the keyboard while the laptop is switched off. This is a really handy feature. Does anyone know how it is implemented or how could it be implemented (on other laptops) ?
Don't just ++, favorite this post, pin it (so, you can comment on it if you find the way later) and please, mention it in the comments if you know it.4 -
I have no clue what I just did.
2 months ago I changed my repository name and today when I attempted to pushed an update I realised I had to update my remote key. Which I did.
Now..my repository now contains someone else's repository and my entire code base is non-existent.
Slightly pissed off that I'm now having to redo the entire work again but at same time I'm kinda amused on how I did this.8 -
I'm fucking tired of my computer having random
2 seconds latency on any basic action and being slow as fuck regardless of powerful processor, ssd and 32GB RAM. Music via bluetooth is basically unusable since every few seconds the music stops for a 0.2s then plays again. I installed this system (opensuse tumbleweed) in February this year and it's just sad that I have reinstall again (any ideas for distro) ?
I made a dummy mistake of buying a CPU without internal graphics and this resulted in having to buy a GPU. So I got myself Nvidia(another mistake) since i though i would be using CUDA on the university. Turnes out CUDA cannot be installed for some retarded reason.
With Nvidia GPU the screens on my two monitors are swapping every time I use a hdmi switch to use other computer. On AMD GPU this problem does not exist. AMD GPU pro drivers are impossible to install. Computers barely fucking work, change my mind. Shit is breaking all the time. Everything is so half assed.
The music player that i use sometimes swaps ui with whatever was below it like for example the desktop background and i need to kill the process and start again to use the program. WTF.
Bluetooth seems to hate me. I check the bluetooth connected devices on my computer, it says headphones connected. BULLSHIT. The headphones are fucking turned OFF. How the fuck can they be connected you dumbass motherfucker computer. So I turn on the headphones. And I cannot connect them since the system thinks that they are already connected. So I have to unpair them and pair them again. WTF. Who fucking invents this bullshit?
Let's say i have headphones connected to the computer. I want to connect them to phone. I click connect from the phone settings. Nothing happens. Bullshit non telling error "could not connect". So I have to unpair from computer to pair to phone. Which takes fucking minutes, because reasons. VERY fucking convenient technology.
The stupid bluetooth headphones have a loud EARRAPE voice when turning them on "POWER ON!!! PAIRING", "CONNECTED", "DISCONNECT". Loudness of this cannot be modified. The 3 navigation buttons are fucking unrecognizable so i always take few seconds to make sure i click the correct button.
Fucking keyboard sometimes forgets that I remapped esc key to caps lock and then both keys don't work so i need to reconnect the keyboard cable. At least it's not fucking bluetooth.
The only reason why hdmi switches exist is because monitor's navigation menus have terrible ui and/or infrared activated, non-mechanical buttons.
Imagine the world where monitors have a button for each of it's inputs. I click hdmi button it switches it's input to hdmi. I click display port button - it switches to display port. But nooo, you have to go through the OSD menu.
My ~ directory has hundred of files that I never put there. Doesn't feel like home, more like a crackhead crib.
My other laptop (also tumbleweed) I click on hibernate option and it shuts down. WTF. Or sometimes I open the lid and screen is black and when i click keyboard nothing happens so i have to hold power button and restart.
We've been having computers for 20 + years and they still are slow, unreliable and barely working.
Is there a cure? I'm starting to think the reason why everything is working so shitty and unreliable, is because the foundations are rotten. The systems that we use are built with c, ridden with cryptic abbreviated code, undefined behavior and security vulnerabilities. The more I've written c programs the more convinced I am, that we should have abandoned it for something better long ago. Why haven't we? And honestly what would be better? Everything fucking sucks. The rust seems to be light in the tunnel but I don't know if this is only hype or is it really better. I'm sure it can't be worse than c or c++. Either we do something with the foundations or we're doomed.22 -
what. fucking. day.
my ex blonde whore got mentally,
T O R M E N T E D.
ripped apart.
absolute, psychological, Destruction.
a great, great Evil, is gonna be born out of what ive done
worse than frankenstein evil
and this evil, will be spread across the entire world
it will infect and affect, you
i cannot imagine how fucked up the future is going to become
this day is completely FUCKED and i cannot wait for the moment till this shit is over
what happened?
too much random fucking bullshit happened! this day is as random as it can fucking get
warning: you'll gonna get a headache reading this fucking rollercoaster of emotions
1) worked
2) was angry at my ex blonde whore cause she doesnt want to block the fuckboy she cheated on me with
3) told her this. argued with her. shes stubborn and doesnt want to block him
4) i blocked her everywhere (for 500th fucking time). this time including ig. she cried at work. barely could focus
5) after work from a fake acc i saw she posted MY fucking bmw
6) second story she posted SITTING INSIDE OF MY FUCKING BMW WITHOUT MY FUCKING PERMISSION
7) WHAT THE FUCK. MAD AS FUCK, I called her on phone asap. she answered. i said i wanna talk. she wanted to go out for coffee. fuck that. lets go to her place. she asked u wanna fuck me. i said i fucking do. im horny too, she said
8) came over. fucked her. discussed. talked. argued afuckinggain. unblocked. i pretended ig glitched out and i saw that story. told her who the fuck u think u is to steal my fucking key of my bmw and sit in my fucking brand new bmw?!!! WHORE
9) then fucked her again. but cuddled her kissed her gently, she said "you're such a fucking mentally ill maniac", while smiling hugging me and kissing me. she loves The Joker type of guy who fucks with her emotions. "you give me rollercoaster of emotions" she said. when she went in shower to wash off my cum i grabbed her phone and blocked her fuckboy she cheated on me with (shes secretly in love with him)
10) when she saw this her whole fucking mood swapped. 180. asked why did u go through my phone. i said why did you fucking steal my bmw key and sit inside of it
11) now we're even. i crossed the red line and blocked your fucktoy from your phone and you crossed the red line stealing my fucking key of an expesnive car and sitting inside it at 7:30am while i was sleeping. Fuck you WHORE
12) she sent the pics of my fucking bmw to chatgpt and asked how much this car costs so she estimates how rich i fucking am. This relation is BEYOND FUCKING TOXIC AND LETHAL THAN YOU CAN IMAGINE
13) "now that hes blocked can you drive me in ur bmw now for the first time" she asked. i was resistent. I FUCKING blocked him not YOU, whore. and you're giving me an attitude now. she looked at me angry, deadly, the look of "im gonna do you dirty for this i promise". fuck that whore
14) at the end i said i can drive u only under the condition that he remains blocked forever
15) deal. i repeated the fucking seriousness of this numerous times. its gonna get more fucked and toxic if she ever unblocks him. we agreed so i drove the bitch whore for first time. she was amazed of my bmw
16) when i thought it was all over and i can relax, as we were driving ANOTHER BITCH CALLED ME ON MY PHONE. AND HER NAME AND NUMBER WAS DISPLAYED ON THE BMW SCREEN. FUUUUUUUUUUUCK. please
17) i completely forgot that i set up a coffee meeting with this new bitch. (this new bitch is fat and ugly btw i just wanted to go out with her cause she has good personality and wanted to talk random stuff so i shift my mind off blonde ex whore)
18) blonde ex whore was not happy. asked me who is that. FUCK. i said some random girl
19) i left my blonde whore home. kissed. then went over with that new girl for a drink. talked. drove her. blond ex attacked me who is she, and to give her phone number so she calls her to check what she has to do with me. FUCK!!!
20) as i was sitting with that new girl i had to explain her all this bullshit. embarrassed. belittled. fuckwd up. whilw i was explaining my blonde whore found her ig and told me to tell her everything or else shes blocking me.
21) the blonde whore blocked me! everywhere! lol. for the first time ever. fuck off. now she knows how i felt, betrayed!
22) fucked up. blonde ex wrote to new girl why did she call me and what do we have between each other cause shes my gf. WHAT FUCKING GF YOU DUMB BITCH YOU FUCKING CHEATED ON ME!!!!! FUCK YOU
23) i told this new girl to write her she needed me for college cause I'm an IT guy and they dumb af dont know how to use word or excel
24) blonde ex bought it (i think)
25) when i got home i called my blonde whore on phone. she answered. her voice seemed like she overdosed on drugs. "did u fuck that girl" she asked. No. i was riding my bmw.
26) explained her the new girl is ugly and just wanted college help. i wouldnt fk her (truth). ex whore unblocked me and said she wants me to cuddle her tomorrow and sleep in bed14 -
One user could report that the data they saw didn't make sense. Turns out there was a one-off hardcoded caching detail for one of our services that cached based on a search query (yes, the entire query was the key) and before any auth checks. The system would return the results owned by whoever asked first, no matter who asked after that point.
There's "Oh dear but we all make mistakes" and there's surrender cobra. This is what PRs are for.1 -
So I'm at the office today. Really missing singing along off key at the top of my lugs while I drink on the job and work in just underwear.
Also missing all my screen real estate2 -
So me and my team went to this hackathon, and we were in the last 4 hours of the event.
Me being the dumb type, I forgot that my laptop's keyboard was broken (when numlock is pressed the whole keyboard spams everything, weird).
I was typing up my last lines for the algorithm and instead of enter I end up hitting guess what, the numlock key.
I should've told you that when I hit the numlock key the keys go crazy, I cant stop it. The numlock wont shut off after i tapped on it again. The only way to fix this is by restarting the computer.
I try to backspace the crazy spam that happened (this was before restarting) the keys typed so fast never got the chance to select the stuff.
I end up restarting my laptop and turned out I selected most of my algorithm, instead of the spam, and now thats been replaced by the spam.
I couldn't ctrl z cuz I restarted and Android Studio auto saved. Had to freakin write everything from scratch and my team ended up not doing 2-3 features that were originally planned.
Rip. Gotta get the keyboard fixed ASAP.1