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 - "save-system"
-
So this was a couple years ago now. Aside from doing software development, I also do nearly all the other IT related stuff for the company, as well as specialize in the installation and implementation of electrical data acquisition systems - primarily amperage and voltage meters. I also wrote the software that communicates with this equipment and monitors the incoming and outgoing voltage and current and alerts various people if there's a problem.
Anyway, all of this equipment is installed into a trailer that goes onto a semi-truck as it's a portable power distribution system.
One time, the computer in one of these systems (we'll call it system 5) had gotten fried and needed replaced. It was a very busy week for me, so I had pulled the fried computer out without immediately replacing it with a working system. A few days later, system 5 leaves to go work on one of our biggest shows of the year - the Academy Awards. We make well over a million dollars from just this one show.
Come the morning of show day, the CEO of the company is in system 5 (it was on a Sunday, my day off) and went to set up the data acquisition software to get the system ready to go, and finds there is no computer. I promptly get a phone call with lots of swearing and threats to my job. Let me tell you, I was sweating bullets.
After the phone call, I decided I needed to try and save my job. The CEO hadn't told me to do anything, but I went to work, grabbed an old Windows XP laptop that was gathering dust and installed my software on it. I then had to build the configuration file that is specific to system 5 from memory. Each meter speaks the ModBus over TCP/IP protocol, and thus each meter as a different bus id. Fortunately, I'm pretty anal about this and tend to follow a specific method of id numbering.
Once I got the configuration file done and tested the software to see if it would even run properly on Windows XP (it did!), I called the CEO back and told him I had a laptop ready to go for system 5. I drove out to Hollywood and the CFO (who was there with the CEO) had to walk about a mile out of the security zone to meet me and pick up the laptop.
I told her I put a fresh install of the data acquisition software on the laptop and it's already configured for system 5 - it *should* just work once you plug it in.
I didn't get any phone calls after dropping off the laptop, so I called the CFO once I got home and asked her if everything was working okay. She told me it worked flawlessly - it was Plug 'n Play so to speak. She even said she was impressed, she thought she'd have to call me to iron out one or two configuration issues to get it talking to the meters.
All in all, crisis averted! At work on Monday, my supervisor told me that my name was Mud that day (by the CEO), but I still work here!
Here's a picture of the inside of system 8 (similar to system 5 - same hardware)
15 -
Job interview goes really well. Senior Dev 90-100k.
Ok, so for your "test" write up a proposal for a web based bulk email sending system with its own admin panel for building list, tracking emails, and with reporting.
I write up an estimate. Low ball the absolute fuck out of it because I'm trying to get a job. Know a few good libraries I can use to save some time. Figure I can just use sendmail, or PHPMailer, or NodeMailer for the emailing, and DataTables Editor for a simple admin CRUD with reporting. Write the thing up. Tell them they can have it in LAMP or Node.
Come in at 36 hours.
Then these fucking wanks told me they wanted me to actually do the project.
My exact response was:
"I bill $50 an hour, let me know"
They did not let me know.
Young devs, jobless devs, desperate devs. I've seen a fair amount of this. And for the right job I might go as high as maybe 4 - 6 hours of unpaid work for some "programming test". But please be careful. There are those who will try to exploit lack of experience or desperation for free work.15 -
We're using a ticket system at work that a local company wrote specifically for IT-support companies. It's missing so many (to us) essential features that they flat out ignored the feature requests for. I started dissecting their front-end code to find ways to get the site to do what we want and find a lot of ugly code.
Stuff like if(!confirm("blablabla") == false) and whole JavaScript libraries just to perform one task in one page that are loaded on every page you visit, complaining in the js console that they are loaded in the wrong order. It also uses a websocket on a completely arbitrary port making it impossible to work with it if you are on a restricted wifi. They flat out lie about their customers not wanting an offline app even though their communications platform on which they got asked this question once again got swarmed with big customers disagreeing as the mobile perofrmance and design of the mobile webpage is just atrocious.
So i dig farther and farthee adding all the features we want into a userscript with a beat little 'custom namespace' i make pretty good progress until i find a site that does asynchronous loading of its subpages all of a sudden. They never do that anywhere else. Injecting code into the overcomolicated jQuery mess that they call code is impossible to me, so i track changes via a mutationObserver (awesome stuff for userscripts, never heard of it before) and get that running too.
The userscript got such a volume of functions in such a short time that my boss even used it to demonstrate to them what we want and asked them why they couldn't do it in a reasonable timeframe.
All in all I'm pretty proud if the script, but i hate that software companies that write such a mess of code in different coding styles all over the place even get a foot into the door.
And that's just the code part: They very veeeery often just break stuff in updates that then require multiple hotfixes throughout the day after we complain about it. These errors even go so far to break functionality completely or just throw 500s in our face. It really gives you the impression that they are not testing that thing at all.
And the worst: They actively encourage their trainees to write as much code as possible to get paid more than their contract says, so of course they just break stuff all the time to write as much as possible.
Where did i get that information you ask? They state it on ther fucking career page!
We also have reverse proxy in front of that page that manages the HTTPS encryption and Let's Encrypt renewal. Guess what: They internally check if the certificate on the machine is valid and the system refuses to work if it isn't. How do you upload a certificate to the system you asked? You don't! You have to mail it to them for them to SSH into the system and install it manually. When will that be possible you ask? SOON™.
At least after a while i got them to just disable the 'feature'.
While we are at 'features' (sorry for the bad structure): They have this genius 'smart redirect' feature that is supposed to throw you right back where you were once you're done editing something. Brilliant idea, how do they do it? Using a callback libk like everyone else? Noooo. A serverside database entry that only gets correctly updated half of the time. So while multitasking in multiple tabs because the performance of that thing almost forces you to makes it a whole lot worse you are not protected from it if you don't. Example: you did work on ticket A and save that. You get redirected to ticket B you worked on this morning even though its fucking 5 o' clock in the evening. So of course you get confused over wherever you selected the right ticket to begin with. So you have to check that almost everytime.
Alright, rant over.
Let's see if i beed to make another one after their big 'all feature requests on hold, UI redesign, everything will be fixed and much better'-update.5 -
[This makes me sound really bad at first, please read the whole thing]
Back when I first started freelancing I worked for a client who ran a game server hosting company. My job was to improve their system for updating game servers. This was one of my first clients and I didn't dare to question the fact that he was getting me to work on the production environment as they didn't have a development one setup. I came to regret that decision when out of no where during the first test, files just start deleting. I panicked as one would and tried to stop the webserver it was running on but oh no, he hasn't given me access to any of that. I thought well shit, I might as well see where I fucked up since it was midnight for him and I wasn't able to get a hold of him. I looked at every single line hundreds of times trying to see why it would have started deleting files. I found no cause. Exhausted, (This was 6am by this point) I pretty much passed out. I woke up around 5 hours later with my face on my keyboard (I know you've all done that) only to see a good 30 messages from the client screaming at me. It turns out that during that time every single client's game server had been deleted. Before responding and begging for forgiveness, I decided to take another crack at finding the root of the problem. It wasn't my fault. I had found the cause! It turns out a previous programmer had a script that would run "rm -rf" + (insert file name here) on the old server files, only he had fucked up the line and it would run "rm -rf /". I have never felt more relieved in my life. This script had been disabled by the original programmer but the client had set it to run again so that I could remake the system. Now, I was never told about this specific script as it was for a game they didn't host anymore.
I realise this is getting very long so I'll speed it up a bit.
He didn't want to take the blame and said I added the code and it was all my fault. He told me I could be on live chat support for 3 months at his company or pay $10,000. Out of all of this I had at least made sure to document what I was doing and backup every single file before I touched them which managed to save my ass when it came to him threatening legal action. I showed him my proof which resulted in him trying to guilt trip me to work for him for free as he had lost about 80% of his clients. By this point I had been abused constantly for 4 weeks by this son of a bitch. As I was underage he had said that if we went to court he'd take my parents house and make them live on the street. So how does one respond? A simple "Fuck off you cunt" and a block.
That was over 8 years ago and I haven't heard from him since.
If you've made it this far, congrats, you deserve a cookie!6 -
I have been a mobile developer working with Android for about 6 years now. In that time, I have endured countless annoyances in the Android development space. I will endure them no more.
My complaints are:
1. Ridiculous build times. In what universe is it acceptable for us to wait 30 seconds for a build to complete. Yes, I've done all the optimisations mentioned on this page and then some. Don't even mention hot reload as it doesn't work fast enough or just does not work at all. Also, buying better hardware should not be a requirement to build a simple Android app, Xcode builds in 2 seconds with a 8GB Macbook Air. A Macbook Air!
2. IDE. Android Studio is a memory hog even if you throw 32GB of RAM at it. The visual editors are janky as hell. If you use Eclipse, you may as well just chop off your fingers right now because you will have no use for them after you try and build an app from afresh. I mean, just look at some of the posts in this subreddit where the common response is to invalidate caches and restart. That should only be used as a last resort, but it's thrown about like as if it solves everything. Truth be told, it's Gradle's fault. Gradle is so annoying I've dedicated the next point to it.
3. Gradle. I am convinced that Gradle causes 50% of an Android developer's pain. From the build times to the integration into various IDEs to its insane package management system. Why do I need to manually exclude dependencies from other dependencies, the build tool should just handle it for me. C'mon it's 2019. Gradle is so bad that it requires approx 54GB of RAM to work out that I have removed a dependency from the list of dependencies. Also I cannot work out what properties I need to put in what block.
4. API. Android API is over-bloated and hellish. How do I schedule a recurring notification? Oh use an AlarmManager. Yes you heard right, an AlarmManager... Not a NotificationManager because that would be too easy. Also has anyone ever tried running a long running task? Or done an asynchronous task? Or dealt with closing/opening a keyboard? Or handling clicks from a RecyclerView? Yes, I know Android Jetpack aims to solve these issues but over the years I have become so jaded by things that have meant to solve other broken things, that there isn't much hope for Jetpack in my mind 😤
5. API 2. A non-insignificant number of Android users are still on Jelly Bean or KitKat! That means we, as developers, have to support some of your shitty API decisions (Fragments, Activities, ListView) from all the way back then!
6. Not reactive enough. Android has support for Databinding recently but this kind of stuff should have been introduced from the very start. Look at React or Flutter as to how easy it is to make shit happen without any effort.
7. Layouts. What the actual hell is going on here. MDPI, XHDPI, XXHDPI, mipmap, drawable. Fuck it, just chuck it all in the drawable folder. Seriously, Android should handle this for me. If I am designing for a larger screen then it should be responsive. I don't want to deal with 50 different layouts spread over 6 different folders.
8. Permission system. Why was this not included from the very start? Rogue apps have abused this and abused your user's privacy and security. Yet you ban us and not them from the Play Store. What's going on? We need answers.
9. In Android, building an app took me 3 months and I had a lot of work left to do but I got so sick of Android dev I dropped it in favour of Flutter. I built the same app in Flutter and it took me around a month and I completed it all.
10. XML.
If you're a new dev, for the love of all that is good in this world, do NOT get into Android development. Start with Flutter or even iOS. On Flutter and build times are insanely fast and the hot reload is under 500ms constantly. It's a breath of fresh air and will save you a lot of headaches AND it builds for iOS flawlessly.
To the people who build Android, advocate it and work on it, sorry to swear, but fuck you! You have created a mess that we have to work with on a day-to-day basis only for us to get banned from the app store! You have sold us a lie that Android development is amazing with all the sweet treat names and conferences that look bubbly and fun. You have allowed to get it so bad that we can't target an API higher than 18 because some Android users are still using devices that support that!
End this misery. End our pain. End our suffering. Throw this abomination away like you do with some of your other projects and migrate your efforts over to Flutter. Please!
#NoToGoogleIO #AndroidSummitBoycott #FlutterDev #ReactNative16 -
Ladies and gentlemen, prepare yourselves for a rant with a capital R, this is gonna be a long one.
Our story begins well over a year ago while I was still in university and things such as "professionalism" and "doing your job" are suggestions and not something you do to not get fired. We had multiple courses with large group projects that semester and the amount of reliable people I knew that weren't behind a year and in different courses was getting dangerously low. There were three of us who are friends (the other two henceforth known as Ms Reliable and the Enabler) and these projects were for five people minimum. The Enabler knew a couple of people who we could include, so we trusted her and we let them onto the multiple projects we had.
Oh boy, what a mistake that was. They were friends, a guy and a girl. The girl was a good dev, not someone I'd want to interact with out of work but she was fine, and a literal angel compared to the guy. Holy shit this guy. This guy, henceforth referred to as Mr DDTW, is a motherfucking embarrassment to devs everywhere. Lazy. Arrogant. Standards so low they're six feet under. Just to show you the sheer depth of this man's lack of fucks given, he would later reveal that he picked his thesis topic "because it's easy and I don't want to work too hard". I haven't even gotten into the meat of the rant yet and this dude is already raising my blood pressure.
I'll be focusing on one project in particular, a flying vehicle simulator, as this was the one that I was the most involved in and also the one where shit hit the fan hardest. It was a relatively simple-in-concept development project, but the workload was far too much for one person, meaning that we had to apply some rudimentary project management and coordination skills that we had learned to keep the project on track. I quickly became the de-facto PM as I had the best grasp on the project and was doing a lot of the heavy lifting.
The first incident happened while developing a navigation feature. Another teammate had done the basics, all he had to do was use the already-defined interfaces to check where the best place to land would be, taking into account if we had enough power to do so. Mr DDTW's code:
-Wasn't actually an algorithm, just 90 lines of if statements sandwiched between the other teammate's code.
-The if statements were so long that I had to horizontal scroll to see the end, approx 200 characters long per line.
-Could've probably been 20 normal-length lines MAX if he knew what a fucking for loop was.
-Checked about a third of the tiles that it should have because, once again, it's a series of concatenated if statements instead of an actual goddamn algorithm.
-IT DIDN'T FUCKING WORK!
My response was along the lines of "what the fuck is this?". This dipshit is in his final year and I've seen people write better code in their second semester. The rest of the team, his friend included, agreed that this was bad code and that it should be redone properly. The plan was for Mr DDTW to move his code into a new function and then fix it in another branch. Then we could merge it back when it was done. Well, he kept on saying it was done but:
-It still wasn't an algorithm.
-It was still 90 lines.
-They were still 200 characters wide.
-It still only checked a third of the tiles.
-IT STILL DIDN'T FUCKING WORK!
He also had one more task, an infinite loop detection system. He watched while Ms Reliable did the fucking work.
We hit our first of two deadlines successfully. We still didn't have a decent landing function but everything else was nice and polished, and we got graded incredibly well. The other projects had been going alright although the same issue of him not doing shit applied. Ms Reliable and I, seeing the shitstorm that would come if this dude didn't get his act together, lodged a complaint with the professor as a precautionary measure. Little did I know how much that advanced warning would save my ass later on.
Second sprint begins and I'm voted in as the actual PM this time. We have four main tasks, so we assign one person to each and me as a generalist who would take care of the minor tasks as well as help out whoever needed it. This ended up being a lot of reworking and re-abstracting, a lot of helping and, for reasons that nobody ever could have predicted, one of the main tasks.
These main tasks were new features that would need to be integrated, most of which had at least some mutual dependencies. Part of this project involved running our code, which would connect to the professor's test server and solve a server-side navigation problem. The more of these we solved, the better the grade, so understandably we needed an MVP to see if our shit worked on the basic problems and then fix whatever was causing the more advanced ones to fail. We decided to set an internal deadline for this MVP. Guess who didn't reach it?
Hitting the character limit, expect part 2 SOON7 -
Friend just asked me to quickly type some stuff he quoted. Fair enough, I like helping out!
"you'll have to do it on windows though"
Ah that's alright haha.
*types in word for 15 minutes, one page done*
(note: genuine word and windows 10 without bloatware etc etc)
*presses ctrl+s*
*clicks save as*
*computer freezes*
😓😨
*waits anxiously*
*computer unfreezes*
*phew*
*presses save as again*
*BLUE SCREEN*
MOTHERFUCKING PIECE OF FUCKING SHIT. SOMEONE PLEASE DESTROY THIS FUCKING SNAKE LICKING, DOG EATING, COCK SUCKING OPERATING SYSTEM.
FUUUUUUUUUCK.29 -
"Fuck JavaScript, its such a shitty language" seems to be quite a common rant today. It seems as if JS is actually getting more hate than PHP, which is certainly odd, considering the stereotype.
So, as someone who has spent a lot of time in JS and a lot of time elsewhere, here are my views. Please, discuss your opinions with me as well. I am genuinely interested in an intelligent conversation about this topic.
So here's my background: learned HTML/CSS/JS in that order when I was 12 because I liked computers. I was pretty shitty at JS until U was at least 15, but you get the point, Ive had it sploshing about in my brain for a while.
Now, JS certainly has its quirks, no doubt, but theres nothing about the language itself that I would say makes it shitty. Its a very easy leanguage to use, but isn't overdeveloped like VB.net (Or, as I like to call it, TheresAFunctionForThat)
Most of the hate is centered around JS being used for a very broad range of systems. I doubt JS would be in the rant feed so often if it were to stay in its native ecosystem of web browsers. JS can be used in server backend, web frontent, desktop and mobile applications, and even in some system services (Although this isn't very popular as of yet). People seem to be terrified that one very easy to learn language can go so far. And, oh god, its interpreted... How can a system app run off an interpreted language? That's absurd.
My opinion on JSEverything is that it's progress. Thats what we're all about, right? The technologies already in place are unthreatened by JS, it isn't a gamechanger. The only thing JS integration is doing is making tedius and simple tasks easier. Big companies with large systems aren't going to jump ship and migrate to JS. A startup, however, could save a fucking ton of development time by using a JS framework, however. I want to live in a world where startups can become the next Google, because technology will stagnate when youre trying to protect your fortune, (Look at Apple for fucks sake) but innovation is born of small people with big ideas.
I have a feeling the hate for JS is coming from fear of abandoning what you're already doing. You don't have to do that. JS is only another option (And a very good one, which is why it's becoming so popular).
As for my personal opinion from my experiences... I've left this part til the end on purpose. I love programming and learning and creating, so I've never hated a lamguage, really. It all depends on what I want to do. In the times i've played arpund with JS, I've loved it. Very very easy. The idea of having it on both ends of web development makes a lot of sense too, no conversion, just direct communication. I would imagine this really helps with speed, as well. I wouldn't use it in a complicated system, though. Small things, medium size projects: perfect. Running a bank? No.
So what do you think about this JSUniverse?13 -
So the tax authorities in the Netherlands have this slogan that roughly translates to:
"We can't make it fun, but we can make it easier."
I'm not sure how this is going to be easy for me. This arrived in the mail today.
Even worse this is a fuck up from them. They are saying our company did not do it's taxes but when we log in their online portal we can see that we did them. But they are saying that they don't see it in their system.
Who build that system?
Trying to stay calm when they are claiming I own them more taxes then my company has earned in a year.
I did not have enough sleep for this drama.
By the way how about we save some trees and don't send 30 letters on 1 day.
11 -
Short version:
Dear devRantdairy,
today I was stupid.
The End.
Full version:
I am working on some messaging system, trying to use less as possible overhead sending data. Therefore there of course are asynchronous calls and some templating. But that's just the setting of the rant: I designed an architecture to save conversations in a database. Working with transactions in pdo I wrote a query wich in my eyes should have worked well. But the result just didn't appear in the table. So I started debugging data. Recreated the table. Rewrote the query. Went to bed. Woke up. Further tryed to make this work. And in the end I realized I just forgot to commit the transaction.
How dumb can you be? There's way too much time gone for that mistake. Is there a hole? I want do dig myself.7 -
Forgive me father, for I have sinned. Alot actually, but I'm here for technical sins. Okay, a particular series of technical sins. Sit your ass back down padre, you signed up for this shit. Where was I? Right, it has been 11429 days since my last confession. May this serve as equal parts rant, confession, and record for the poor SOB who comes after me.
Ended up in a job where everything was done manually or controlled by rickety Access "apps". Many manhours were wasted on sitting and waiting for the main system to spit out a query download so it could be parsed by hand or loaded into one of the aforementioned apps that had a nasty habit of locking up the aged hardware that we were allowed. Updates to the system were done through and awful utility that tended to cut out silently, fail loudly and randomly, or post data horrifically wrong.
Fuck that noise. Floated the idea of automating downloads and uploads to bossman. This is where I learned that the main system had no SQL socket by default, but the vendor managing the system could provide one for an obscene amount of money. There was no buy in from above, not worth the price.
Automated it anyway. Main system had a free form entry field, ostensibly for handwriting SELECT queries. Using Python, AutoHotkey, and glorified copy-pasting, it worked after a fashion. Showed the time saved by not having to do downloads manually. Got us the buy in we needed, bigwigs get negotiating with the vendor, told to start developing something based on some docs from the vendor. Keep the hacky solution running as team loves not having to waste time on downloads.
Found SQLi vulnerability in the above free form query system, brought it up to bossman to bring up the chain. Vulnerability still there months later. Test using it for automated updates. Works and is magnitudes more stable than update utility. Bring it up again and show the time we can save exploiting it. Decision made to use it while it exists, saves more time. Team happier, able to actual develop solutions uninterrupted now. Using Python, AutoHotkey, glorified copy-pasting, and SQLi in the course of day to day business critical work. Ugliest hacky thing I've ever caused to exist.
Flash forward 6 years. Automation system now in heavy use acrossed two companies. Handles all automatic downloads for several departments, 1 million+ discrete updates daily with alot of room for expansion, stuff runs 24/7 on schedule, most former Access apps now gone and written sanely and managed by the automation system. Its on real hardware with real databases and security behind it.
It is still using AutoHotkey, copy-paste, and SQLi to interface with the main system. There never was and never will be a SQL socket. Keep this hellbeast I've spawned chugging along.
I've pointed out how many ways this can all go pearshaped. I've pointed out that one day the vendor will get their shit together they'll come in post system update and nothing will work anymore. I've pointed out the danger in continuing to use the system with such a glaring SQLi vulnerability.
Noone cares. Won't be my problem soon enough.
In no particular order:
Fuck management for not fighting for a good system interface
Fuck the vendor for A) not having a SQL socket and B) leaving the SQLi vulnerability there this long
Fuck me for bringing this thing into existence5 -
TL;DR :
"when i die i want my group project members to lower me into my grave so they can let me down one last time"
STORY TIME
Last year in College, I had two simultaneous projects. Both were semester long projects. One was for a database class an another was for a software engineering class.
As you can guess, the focus of the projects was very different. Databases we made some desktop networked chat application with a user login system and what not in Java. SE we made an app store with an approval system and admin panels and ratings and reviews and all that jazz in Meteor.js.
The DB project we had 4 total people and one of them was someone we'll call Frank. Frank was also in my SE project group. Frank disappeared for several weeks. Not in class, didn't contact us, and at one point the professors didn't know much either. As soon as we noticed it would be an issue, we talked to the professors. Just keeping them in the loop will save you a lot of trouble down the road. I'm assuming there was some medical or family emergency because the professors were very understanding with him once he started coming back to class and they had a chance to talk.
Lesson 1: If you have that guy that doesn't show up or communicate, don't be a jerk to them and communicate with your professor. Also, don't stop trying to contact the rogue partner. Maybe they'll come around sometime.
It sucked to lose 25% of our team for a project, but Frank appreciated that we didn't totally ignore him and throw him under the bus to the point that the last day of class he came up to me and said, "hey, open your book bag and bring it next to mine." He then threw a LARGE bottle of booze in there as a thank you.
Lesson 2: Treat humans as humans. Things go wrong and understanding that will get you a lot farther with people than trying to make them feel terrible about something that may have been out of their control.
Our DB project went really well. We got an A, we demoed, it worked, it was cool. The biggest problem is I was the only person that had taken a networking class so I ended up doing a large portion of the work. I wish I had taken other people's skills into account when we were deciding on a project. Especially because the only requirement was that it needed to have a minimum of 5 tables and we had to use some SQL language (aka, we couldn't use no-SQL).
The SE project had Frank and a music major who wanted to minor in CS (and then 3 other regular CS students aside from me). This assignment was make an app store using any technology you want. But, you had to use agile sprints. So we had weekly meetings with the "customer" (the TA), who would change requirements on us to keep us on our toes and tell us what they wanted done as a priority for the next meeting. Seriously, just like real life. It was so much fun trying to stay ahead of that.
So we met up and tried to decided what to use. One kid said Java because we all had it for school. The big issue is trying to make a Java web app is a pain in the ass. Seriously, there are so many better things to use. Other teams decided to use Django because they all wanted to learn Python. I suggested why not use something with a nice package system to minimize duplicating work that had already been done and tested by someone. Kid 1 didn't like that because he said in the real world you have to make your own software and not use packages. Little did he know that I had worked in SE for a few years already and knew damn well that every good project has code from somewhere else that has already solved a problem you're facing. We went with Java the first week. It failed miserably. Nobody could get the server set up on their computers. Using VCS with it required you to keep the repo outside of the where you wrote code and copy and paste changes in there. It was just a huge flop so everyone else voted to change.
Lesson 3: Be flexible. Be open to learning new things. Don't be afraid to try something new. It'll make you a better developer in the long run.
So we ended up using Meteor. Why? We all figured we could pick up javascript super easy.Two of us already knew it. And the real time thing would make for some cool effects when an app got a approved or a comment was made. We got to work and the one kid was still pissed. I just checked the repo and the only thing he committed was fixing the spelling of on word in the readme.
We sat down one day and worked for 4 straight hours. We finished the whole project in that time. While other teams were figuring out how to layout their homepage, we had a working user system and admin page and everything. Our TA was trying to throw us for loops by asking for crazy things and we still came through. We had tests that ran along side the application as you used it. It was friggin cool.
Lesson 4: If possible, pick the right tool for the job. Not the tool you know. Everything in CS has a purpose. If you use it for its purpose, you will save days off of a project.1 -
Legacy code.
Honestly though, this is some of the better legacy code I've worked with at this company. It's a nifty alert system wherein you can trigger sending messages to subscribers of that alert via whatever means (phone/email) they've entered.
I'll save you the technical analysis of its internals, but suffice to say it's actually pretty nice, with good separation of concerns, internal logic hidden away, dead-simple public interface, etc. documentation is kinda crap, but it exists (!), so that's a nice change.
but.
For some unknown and bloody bizarre reason, the thing breaks when a user wants both sms AND email notifications. Either by themselves work totally fine, but both together? nonono. Email alerts give ArgumentErrors, so something internal isn't correct, and SMS alerts complain about uninitialized Twilio::Error constants.
but.
they both work fine otherwise?
also, the two notification preferences aren't stored on the same object anywhere. if a user wants both, the user creates two AlertContact objects with different info, and when performed, the Alert basically iterates over these and does its thing for each, so there is no knowledge shared between them. totally should work the same regardless.
idfgi.
ALSO.
AND THIS PART REALLY PISSES ME OFF.
WHEN THERE'S AN ERROR, THIS THING DOESN'T LOG IT. IT STRINGIFIES THE ERROR OBJECT (basically just extracting the message) AND INSERTS THAT INTO THE DATABASE INSTEAD. WHAT THE CRAP.
So, I don't get a stack trace, line number, or anything. just the basic error message. instead of my alert text. because of course that makes sense and totally helps debugging.
aklsjfak;sldfj.
legacy code.5 -
Just came back from a new café (to the pedantic among us, yes I know it's a bar.. get over it).
And I met some Apple fanboy 🤭
So the guy kept on bragging about his shiny iPhone 6.. and I figured that I'd chime in. Due to my short-term memory being terrible, I'll be paraphrasing here.
M: me
S: iPhone usar _/\_
M: iPhone 6 ey..? I've heard about some devices in which the old ones are throttled down in a system update "to save the battery".
S: Yes, biweekly updates!! You can even delay them to tune them down to the time during which your device is charging and can commence its system update.
M (thinking): You've clearly missed the point sir.. but on Android, system updates don't need to be willfully delayed even. They (usually) won't commence unless your device is 80% and charging. OnePlus has been an exception to this though, probably under the assumption that their users are mostly power users that know what they're doing.
M: You do realize that given that your iPhone 6 is quite old already, Apple will very likely start throttling your device during a system update in the next few months, right.
S: What the hell dude.. look, look how smoothly it's been going for the last few years!!! Nothing wrong with that.
M: Just wait until your repair bill comes from those Geniuses 🤭
M: Sir, you do realize that Apple quotes €600 for battery repairs nowadays, right.
S: What the hell dude!!! I can buy a whole new phone for that much!!
M: Exactly!! That's exactly Apple's business tactic!!! They design their phones as such that the battery replacement (one of the most common repairs) requires you to replace not only the battery, but the whole chassis!!! And on the XS, the battery replacement is nothing short of atrocious!!!
M: Here, have a look at this: https://youtube.com/watch/...
*shows Louis' newest video about him switching to iPhone XS*
S: Yeah that's just bullshit. I bet you're showing me this on one of those crappy Samsungs.
M: No sir. I'm showing this on my Nexus 6P, that is tethered to my OnePlus 6T. Speaking of which, let me introduce you to the Nexus 6P's (one of the crappiest Android flagships to ever exist) repair, the battery replacement of which I've done myself.
(you can watch the iFixit video about it here: https://youtube.com/watch/...)
*explains heatgun, screwdriver, heatgun battery replacement of Nexus 6P and the time each step takes - more than an hour combined*
S: Yeah that's because it's one of those crappy Androids. That'd never happen to this shiny iPhone, look, I've got a $20 battery right here!!!
*shows battery*
M: Sir... That's a battery for a MacBook. A laptop battery.... 🤨
I love how willfully ignorant these Apple users are. To them, all that exists is Apple and Samsung (both of which I hate because lockdown). And they apparently don't even know what repair they have to look for when they'll need one.. maybe that's why those Genius Bars exist? 🤭
I'd love to see the guy's face when the Geniuses quote him the price for battery replacement when his planned obsolescence time comes 🤭14 -
Never heard of a so terribly designed online game.
For starters: the client-server model is process everything on the client, then save it on the server, and due to the nature of the site design, simply changing a tag will give you another of money.
The PayPal processing system doesn't read any headers or anything of that sort. So if you cancel your payment, this game thinks you've paid anyways.
Also, the trading system is based off of what buttons you can see so if you can see the cancel button it must be yours. So if you copy the cancel button to someones trade offering (FYI this is all done locally), and you click it you have gotten said item(s).
It gets worse, but I don't remember much more than that. The one thing they actually do is make session IDs expire.12 -
Some absolute cock-monkey fuck-nugget of a marketing director asked me the other week if I could implement a discount voucher system into a new side project / prototype we’re building.
I said ‘yeah sure but it’s a bit of a pain in the ass, i’ll have a look’
He said ‘you just let someone enter a code and that takes £10 off the total order value’
REALLY?!
IS THAT HOW IT WORKS?!!
THANKS FOR EXPLAINING THAT TO ME YOU FUCKING ASS-CUNT. BECAUSE I DIDN’T KNOW HOW A FUCKING DISCOUNT VOUCHER WORKED, YOU ABSOLUTE MOUTH BREATHING WASTE OF FUCKING ORGANS.
I’LL JUST GO TYPE THAT INTO MICROSOFT WORD AND SAVE THE FILE TO THE MAGICAL CLOUD SHALL I?
“dear computer, take a voucher code from a user and take £10 off of there order value”
THERE YOU GO YOU PRICK; JOB DONE. SOFTWARE ENGINEERING IS EASY, EH?!
Wank.6 -
➡️You Are Not A Software Developer⬅️
When I became a developer, I thought that my job is to write software. When my customer had a problem, I was ready to write software that solves that problem. I was taught to write software.
But what customers need is not software. They need a solution to their problem. Your job is to find the most cost-effective solution, what software often is not.
According to the universal law of software development, more code leads to more bugs:
e = mc²
Or
errors = (more code)²
The number of bugs grows with the amount of code. You have to prioritize, reproduce and fix bugs.
The more code you write, the more your team and the team after it has to maintain. Even if you split the system into micro services, the complexity remains.
Writing well-tested, clean code takes a lot of time. When you’re writing code, other important work is idle. The work that prevents your company from becoming rich.
A for-profit company wants to make money and reduce expenses. Then the company hires you to solve problems that prevent it from becoming rich. Confused by your job title, you take their money and turn it into expensive software.
But business has nothing to do about software. Even software business is not about software. Business is about making money.
Your job is to understand how the company is making money, help make more money and reduce expenses. Once you know that, you will become the most valuable asset in the company.
Stop viewing yourself as a software developer. You are a money maker.
Think about how to save and make money for your customers.
Find the most annoying problem and fix it:
▶️Is adding a new feature too costly? Solve the problem manually.
▶️Is testing slow? Become a tester.
▶️Is hiring not going well? Speak at a meetup and advertise your company.
▶️Is your team not productive enough? Bring them coffee.
Your job title doesn’t matter. Ego doesn’t matter either.
Titles and roles are distracting us from what matters to our customers – money.💸
You are a money maker. Thinking as a money maker can help choose the next skill for development. For example:
Serverless: pay only for resources you consume, spend less time on capacity planning = 💰
Machine Learning: get rid of manual decision-making = 💰
TDD: shorter feedback cycle, fewer bugs = 💰
Soft Skills: inspire teammates, so they are more productive and happy = 💰
If you don’t know what to learn next — answer a simple question:
What skills can help my company make more money and reduce expenses?
Very unlikely it’s another web framework written in JavaScript.
Article by Eduards Sizovs
Sizovs.net17 -
Useless feature I've built?
Too many to mention. Here's #25.
Modified an existing "Are you sure..?" dialog pop-up (Yes/No buttons) to Yes/No/Cancel. Why? Managers claimed users were "accidentally" clicking 'Yes' when they should have clicked 'No' and causing all kinds of chaos, costing the company money, etc. Managers believed giving the user two chances instead of one would make it easier to avoid the problems they caused.
The meeting:
Me: "Users can click 'No', hit the 'Esc' key, or click the close 'X' button on the window, how will an extra button make it more foolproof?"
Mgr1: "It just will. Andy accidentally deleted inventory and when I asked him if an extra button would have saved them a days worth of re-counts, he said yes."
Mgr2: "Barb accidentally credited a customer $1,500. She promised me she clicked 'No', but the system credited the account anyway. An extra button would have saved us thousands of dollars!"
Me: "Um...these sound like training issues, not an extra button issue."
MyMgr: "PaperTrail, how hard is it to add an extra button?"
Dev1: "Oh yea, adding buttons is easy."
Dev2: "I can do it 5 minutes"
Dev3: "We'll save the company thousands and thousands of dollars!"
<lots of head-knodding and smiles>
MyMgr: "That settles it. PaperTrail, add the extra button!"
Users still screwed things up, but at least they couldn't blame it on not having an extra button.24 -
I am tired of toxic politics at work.
Signs of a toxic workplace:
* (good) decisions are discouraged rather than encouraged.
Someone wants to introduce a great optimization and guess what the reply is (often from someone IT-ignorant): wait a minute, you can't do that because we have all these nifty little hacks and if you dare to suggest change to our shitty system, we could not allow that! We want to stay in our comfy zone, no no!
* no one can make a decision unless Mr. favorite-developer-everyone-likes says it's a good idea. And even if he's wrong, no one cares to listen to anyone else's idea on it. Stupid Feudalism. One man decides over the entire codebase. That's just idiocy. Where's TEAM in there?
* thinking years of experience equals intellectual capacity. It certainly does not! There are senior developers with 15 years of experience who don't even know how to open commandline, or they didn't even know about Chrome developer tools, or how the HTTP spec is built. That shit just makes me cry inside. How can you give these peoples the title of senior when they know less than a freshman year kid?!
* ignoring people's education and/or capacities. "You just graduated, so you're a noob". Right, I know more than you, you idiot. You've demonstrated your ignorance often enough. Stupid ignorant colleagues.
* blaming politics (every team blames the other team and there's constant tension)
* roaming ignorance (no one in the company, and I mean no one, besides me, knows enough about Information Technology to make competent decisions or analysis)
Politics:
What gives testers the idea that they know more than other members of the team? Why do they treat devs like they are mentally challenged?
What gives PO's that same idea?
What gives managers the idea that they can just yell at developers and threaten them with time pressure? Yeah, because the customers are breathing down their neck.
Just because I am a Junior Developer, that makes me stupid? I am tired of no one caring to listen to my ideas. I could save the company at the snap of a finger but everyone ignores my opinion (and often facts) on things.
People come in and instead of asking me for help, they ask everyone else for help, including the people who don't know shit about IT; now that's insulting.
Anyway, toxic politics.3 -
I have a Windows machine sitting behind the TV, hooked to two controllers, set up as basically a console for the big TV. It doesn't get a lot of use, and mostly just churns out folding@home work units lately. It's connected by ethernet via a wired connection, and it has a local static IP for the sake of simplicity.
In January, Windows Update started throwing a nonspecific error and failing. After a couple weeks I decided to look up the error, and all the recommendations I found online said to make sure several critical services were running. I did, but it appeared to make no difference.
Yesterday, I finally engaged MS support. Priyank remoted into my machine and attempted all the steps I had already tried. I just let him go, so he could get through his checklist and get to the resolution steps. Well, his checklist began and ended with those steps, and he started rather insistently telling me that I had to reinstall, and that he had to do it for me. I told him no thank you, "I know how to reinstall windows, and I'll do it when I'm ready."
In his investigation though, I did notice that he opened MS Edge and tried to load Bing to search for something. But Edge had no connection. No pages would load. I didn't take any special notice of it at the time though, because of the argument I was having with him about reinstalling. And it was no great loss to me that Edge wasn't working, because that was literally the first time it'd ever been launched on that computer.
We got off the phone and I gave him top marks in the CS survey that was sent, as it appeared there was nothing he could do. It wasn't until a couple hours later that I remembered the connectivity problem. I went back and checked again. Edge couldn't load anything. Firefox, the ping command, Steam, Vivaldi, parsec and RDP all worked fine. The Windows Store couldn't connect either. That was when it occurred to me that its was likely that Windows Update was just unable to reach the internet.
As I have no problem whatsoever with MS services being unable to call home, I began trying to set up an on-demand proxy for use when I want to update, and I noticed that when I fill out the proxy details in Internet Options, or in Windows 10's more windows10-ish UI for a system proxy, the "save" button didn't respond to clicks. So I looked that problem up, and saw that it depends on a service called WinHttpAutoProxySvc, which I found itself depends on something called IP Helper, which led me to the root cause of all my issues: IP Helper now depends on the DHCP Client service, which I have explicitly disabled on non-wifi Windows installs since the '90s.
Just to see, I re-enabled DHCP Client, and boom! Everything came back on. Edge, the MS Store, and Windows Update all worked. So I updated, went through a couple reboots-- because that's the name of the game with windows update --and had a fully updated machine.
It occurred to me then that this is probably how MS sends all its spy data too, and since the things I actually use work just fine, I disabled DHCP Client again. I figure that's easier than navigating an intentionally annoying menu tree of privacy options that changes and resets with every major update.
But holy shit, microsoft! How can you hinge the entire system's OS connectivity on something that not everybody uses?
6 -
One of my project managers wanted a feature where the user can save over files without having to delete all information of the previous file and that they could go through previous versions. So I told him, "Okay, what you want is a versioning system." Then he proceeded to say no and describe the exact same thing as a versioning system. I wanted to yell at him that that's exactly what he wanted but kept my mouth shut because there is no point in continuing the conversation.2
-
Hi android devs! 📱📱📱
I wanted to visualize a sound file using graphview.
But since the samplerate is high, it takes a long time .
To save the phone from freezing I tried using thread witch draws 2000 frames each 500 ms but it still takes a while to fully draw the graph .(lowering thread's repeat time also causes the system to freez)
What is the technical way of doing this?7 -
Casually debugging some cuda code today. Something's not working so I add a breakpoint in the suspicious kernel. For some reason I set the display GPU as the active device from my code *GENIUS* ( I have two GPUs installed, one for compute, one for the monitors).
Starts cuda debugging... Control flow reached the kernel and eventually the breakpoint. Suddenly the whole system freezes. Mouse doesn't move, keyboard seems dead. I realize I have unsaved code on the open text editor😲 *panic*. Keyboard shortcut to stop debugging doesn't work *panic^2*. My colleague says I have to hard reset the machine *panic^3*. I don't remember the last time I saved *panic^4*.
I take a deep breath. I reset. *sidenote: WINDOWS DECIDED TO FUCKING UPDATE ON REBOOT* Once I login, 50% of my code was lost. I didn't save 😢
Fuck you Nvidia 😢
7 -
“Fullstack dev morphs into a security expert”
We have a simple user registration system. Get the user details, generate an OTP, save in Oracle, email the OTP. The SMTP host is configured to send emails only to people who have an existing @a_very_famous_bank.com email address.
As a part of an enhancement request, the other day, we were trying to register a non-bank email address. As expected, it failed.
Manager: Meeting... meeting... meeting
Me: (Explained the problem)
Fullstack dev: so the thing is.. it’s like.. (doesn’t falter to open with these lines)...what I can do is...I can send you an HTTP security header in the HTTP request. It’ll work!
Me: (I hope an adult giraffe fucks you in your belly button)
More to come!3 -
When will I fuckin learn that
a) customers lie
b) customers are sloppy
c) customers are wrong
d) customers do not do their work (properly)
e) customers want us to do their (dirty) work
f) possibly all of the freakinly above?! + khm....
They will fuckin aaaalwaaaays say sth is not working after the update..
And I will alwaaaays assume I fucked up something..even if I didn't touch that part of the code/data..
And almost aaaaalways it turns out that the bug they complain about is how the system worked (or didn't work) before the update and/or some fuckup from their side..
Anyhow, I rushed over, grabbed the files went testing in dev..wtf, output is different, mine is ok, theirs is..wtf is that shit?!
Transfer newly built dll to test..same shit as on prod..wtf?! How?!
I assumed they have thing A correctly linked to thing B.. ofc thing A was linked to thing C in their case and in another case (our test) to correct thing B..
I got chillies when grabbing files, that
I should have tripple checked that they didn't fuck up something on the link part, but I just assumed they know what they were doing & that they checked they linked correct files with correct content already, before being pissy that the update fucked up things.. riiiight!! :/
I wanted to find solutions to this fuckup asap so I disregarded my gut feeling..yet again!! Fuuuck!
I've spent too much time trying to find ways to fix a bug that wasn't even a real bug to begin with.. :/
Fuuuuuck!!
So yeah, always treat the customers like they are 3yrs old & have no clue what they are doing & check exactly wtf they were indeed trying to do..it will save you time & nerves..
And note to self: reread this shit daily!! And imprint it in your brain that everything is not always your fault!!10 -
So we are implementing a big and very complete localization management system on my company. The system has great features, indeed, but:
1. We cannot use the browser back button, because it is js and it appears no one cared about it (I am not a js Dev, but you can UAE the back button on my site that has js);
2. It is very customizable, but not intuitive. So you have one million options and you never know where to change what you need;
3. It has a save button everywhere, but most options are saved automatically, so you never know when you need to save. Actually, people from the webapp company use the save button as refresh, once we cannot use the browser refresh button;
4. Combo boxes load the elements while you scroll them, so to scroll to the bottom, you need to keep scrolling several times, waiting it to load the elements;
5. It does not allow you to open more than one tab of it at the same time. So if you need to see more than one information from different items, you need to navigate and wait the loading times to see what you need;
6. Emails are not sent in a different thread. So each action that send emails you need to keep waiting until the emails are sent (sometimes there are several emails sent in one action) to continue using it;
7. They not only store and send back your password by email if you loose it, but, as admin, if I click the button to send the user password to him/her, it keeps a copy of the email with the user password in my sent items;
8. To be able to send emails (they are really necessary), I need to include my SMTP info with login and password. So they have not only the system password saved, but everyone email login and password as well.
I am sure there is more, but I can't remember for now, and we are still trying to figure it out how to back our data, as it appears the only possible backup is their own.5 -
/* A normal day at office */
// A non tech guy sitting next to me
// Wants to save a file on his system.
Him: Moves Cursor. Clicks File->Save.
Me: *facepalm*
<!-- moments later -->
// Time to save a file
Me: Ctrl-SSS
Runs code.
<!-- insert picture here -->
Me: Alt-TAB. Ctrl-Z. Ctrl-S.
Him: *sigh*
-
Hello, world!
Soo.. I am half way done with Pre-Release 10!
Woohoo!
However.. The update log is already as long as the full update log for the last update.. Which was twice as long as the log for the update before..
I'm Starting to notice a pattern.. XD
This is all good and well, but I feel as if I'm overworking myself. I'm getting stressed out, and I'm not spending near as much time with my girlfriend. 3: But, I'm having fun. I'm genuinely enjoying myself, and I'm making a ton of progress in such a short amount of time. I also have a new team member!
Idk.. I haven't done anything the past two days really. Work nor spending time with my girlfriend. I'm stressed, and I'm not sure what I should do. I'm sooper modivated to keep working, but I feel that my situation will only get worse.
---
Because I'm sure some of you will be interested ('cause my game is very popular in this community <3), here is the update list so-far. Do note that this is not the final list, and things will be added, and may be removed.
As you can see below, this update is mostly focussed around API's. Specifically Modding, and the new FileSystem. On top of this, I will *try* and tinker with the official Patreon API for Java and see if I can't intergrate that into my game. I'll also work on a ModManager, but I'm not sure if either of these will make it into this release. I also have plans for new Apps and Commands for this release, as well as working and polishing up existing Apps and Commands.
---
* Closing the game with X button (and other ways) now also calls preExitTasks()
+ Added AddonLoader. It's literally a Mod-Loader. (Your welcome :3) A tutorial coming soon, but just know that it's standard Java codeing and you simply need to drop the mod.jar into the game's addons/ directory.
++ Added "API" - This is a bunch of methods that are added for the Mods to use. These Methods likely wouldn't of been added othewise.
+ Added in-game FileSystems (Folder, files..)
++ Added FileNavigator API for traversing the in-game FileSystems
* Fixed a major bug with the "debug" command where you could no longer run any commands after enabling debug mode.
+ Added GameSave creation
+ Added System creation
+ New Save + localsystem are generated on startup
++ Added WindowBuilder API for creating Apps. This makes creating Apps much, much simpler, and is intended for not only us, but use in Mods.
* We re-wrote the Console Class from scratch, and turned it into an API for creating custom Terminal Apps. (Commands are now created using the Command Class and are then passed to Console and registered as either a Local or Global command)
++ Added Command API for creating commands. These commands execute Java code, much like a JavaFX Button would, on each call. You also get everything after the first [space] of the command that was passed, as a String.
* Re-wrote ALL previously implimented Apps.
* Re-wrote ALL previously implimented Commands.
+ Added "debugtest" command to test debug mode. (This just prints a totally boring random message, and you shouldn't try it.) [Note: This "command will not exist" when debug mode is false.]
+ Added "cd" command. ("cd ~" "cd .." "cd /home/folder" "cd etc" "cd /")
+ Added "cat" command. ("cat file" "cat /folder/file")
+ Added "mkdir" command.
+ Added "rm" command.
+ Added "dir" command.
If you're new and you have no clue what I'm talking about, here's the info page: https://trello.com/b/0bH2SjQf1 -
On my personal journey to better privacy!
Wanted to change to Qubes, but since I wind down with games, that won't happen sadly and it seems windows still doesn't support proper gpu passthrough either, so might eventually change to linux host and windows guest or create a VM I use for everything else that isn't gaming, since I still really love the idea of having a snapshot backup system.
So since that isn't quite in my timeframe right now though: first move was to move to firefox, already done the change on mobile (love having dark reader and ublock on mobile!), now setting it all up on desktop, pleasant surprise was for sure that firefox finally seems to have chromes devtools pretty much mirrored, even the mobile suite of tools.
Loading of pages is also finally fast and much snappier than chrome from the first testing I could do (on desktop, on mobile it still kind of sucks in comparison, but I can deal with that).
Please suggest me all sort of privacy tools you got, especially with firefox in mind, but also host tools, be it windows or linux (e.g. some sort of traffic obfuscator that visits random pages that are SFW but make automatic traffic filtering hard, could probably make my own, but if there's something like that already, why not), I'll save all I can use.44 -
tl;dr:
The Debian 10 live disc and installer say: Heavens me, just look at the time! I’m late for my <segmentation fault
—————
tl:
The Debian 10 live cd and its new “calamares” installer are both complete crap. I’ve never had any issues with installing Debian prior to this, save with getting WiFi to work (as expected). But this version? Ugh. Here are the things I’ve run into:
Unknown root password; easy enough to get around as there is no user password; still annoying after the 10th time.
Also, the login screen doesn’t work off-disc because it won’t accept a blank password, so don’t idle or you’ll get locked out.
The lock screen is overzealous and hard-locks the computer after awhile; not even the magic kernel keys work!
The live disc doesn’t have many standard utilities, or a graphical partition editor. Thankfully I’m comfortable with fdisk.
The graphical installer (calamares) randomly segfaults, even from innocuous things like clicking [change partition] when you don’t have a partition selected. Derp.
It also randomly segfaults while writing partitions to disk — usually on the second partition.
It strangely seems less likely to segfault if the partitions are already there, even if it needs to “reformat” (recreate) them.
It also defaults to using MBR instead of GPT for the partition table, despite the tooltip telling you that MBR is deprecated and limited, and that GPT is recommended for new systems. You cannot change this without doing the partitions manually.
If you do the partitions manually and it can’t figure out where to install things, it just crashes. This is great because you can’t tell it where to install things, and specifying mount points like /boot, /, and /home don’t seem to be enough.
It also tries installing 32bit grub instead of 64bit, causing the grub installer to fail.
If you tell it to install grub on /boot, it complains when that partition isn’t encrypted — fair — but if you tell it to encrypt /boot like it wants you to, it then tries installing grub on the encrypted partition it just created, apparently without decrypting it, so that obviously fails — specific error: cannot read file system.
On the rare chance that everything else goes correctly, the install process can still segfault.
The log does include entries for errors, but doesn’t include an error message. Literally: “ERROR: Installation failed:” and the log ends. Helpful!
If the installer doesn’t segfault and the install process manages to complete, the resulting install might not even boot, even when installed without any drive encryption. Why? My guess is it never bothered to install Grub, or put it in the wrong place, or didn’t mark it as bootable, or who knows what.
Even when using the live disc that includes non-free firmware (including Ath9k) it still cannot detect my wlan card (that uses Ath9k).
I’ve attempted to install thirty plus times now, and only managed to get a working install once — where I neglected to include the Ath9k firmware.
I’m now trying the cli-only installer option instead of the live session; it seems to behave at least. I’m just terrified that the resulting install will be just as unstable as the live session.
All of this to copy the contents of my encrypted disks over so I can use them on a different system. =/
I haven’t decided which I’m going with next, but likely Arch, Void, or Gentoo. I’d go with Qubes if I had more time to experiment.
But in all seriousness, the Debian devs need some serious help. I would be embarrassed if I released this quality of hot garbage.
(This same system ran both Debian 8 and 9 flawlessly for years)15 -
Supervisor has me making a web app in this badass new stack called the LAP (linux, apache, php) stack because he would he would like the app to be "simple". He's spot on though.. having a three letter acronym saves so much time.... and then we don't need to worry about a database... or querying.... or efficiency.... or even the web app itself because clearly he expects the fucking code gods to come down and turn this piece of shit web app into a fucking masterpiece if he thinks this shit can be done based on a hacked together file management system. Please save me code gods4
-
Just another big rant story full of WTFs and completely true.
The company I work for atm is like the landlord for a big german city. We build houses and flats and rent them to normal people, just that we want to be very cheap and most nearly all our tenants are jobless.
So the company hired a lot of software-dev-companies to manage everything.
The company I want to talk about is "ABI...", a 40-man big software company. ABI sold us different software, e.g. a datawarehouse for our ERP System they "invented" for 300K or the software we talk about today: a document management system. It has workflows, a 100 year-save archive system, a history feature etc.
The software itself, called ELO (you can google it if you want) is a component based software in which every company that is a "partner" can develop things into, like ABI did for our company.
Since 2013 we pay ABI 150€ / hour (most of the time it feels like 300€ / hour, because if you want something done from a dev from ABI you first have to talk to the project manager of him and of course pay him too). They did thousand of hours in all that years for my company.
In 2017 they started to talk about a module in ELO called Invoice-Module. With that you can manage all your paper invoices digital, like scan that piece of paper, then OCR it, then fill formular data, add data and at the end you can send it to the ERP system automatically and we can pay the invoice automatically. "Digitization" is the key word.
After 1.5 years of project planning and a 3 month test phase, we talked to them and decided to go live at 01.01.2019. We are talking about already ~ 200 hours planning and work just from ABI for this (do the math. No. Please dont...).
I joined my actual company in October 2018 and I should "just overview" the project a bit, I mean, hey, they planned it since 1.5 years - how bad can it be, right?
In the first week of 2019 we found 25 bugs and users reporting around 50 feature requests, around 30 of them of such high need that they can't do their daily work with the invoices like they did before without ELO.
In the first three weeks of 2019 we where around 70 bugs deep, 20 of them fixed, with nearly 70 feature requests, 5 done. Around 10 bugs where so high, that the complete system would not work any more if they dont get fixed.
Want examples?
- Delete a Invoice (right click -> delete, no super deep hiding menu), and the server crashed until someone restarts it.
- missing dropdown of tax rate, everything was 19% (in germany 99,9% of all invoices are 19%, 7% or 0%).
But the biggest thing was, that the complete webservice send to ERP wasn't even finished in the code.
So that means we had around 600 invoices to pay with nearly 300.000€ of cash in the first 3 weeks and we couldn't even pay 1 cent - as a urban company!
Shortly after receiving and starting to discussing this high prio request with ABI the project manager of my assigned dev told me he will be gone the next day. He is getting married. And honeymoon. 1 Week. So: Wish him luck, when will his replacement here?
Deep breath.
Deep breath.
There was no replacement. They just had 1 developer. As a 40-people-software-house they had exactly one developer which knows ELO, which they sold to A LOT of companies.
He came back, 1 week gone, we asked for a meeting, they told us "oh, he is now in other ELO projects planned, we can offer you time from him in 4 weeks earliest".
To cut a long story short (it's to late for that, right?) we fought around 3 month with ABI to even rescue this project in any thinkable way. The solution mid February was, that I (software dev) would visit crash courses in ELO to be the second developer ABI didnt had, even without working for ABI....
Now its may and we decided to cut strings with ABI in ELO and switch to a new company who knows ELO. There where around 10 meetings on CEO-level to make this a "good" cut and not a bad cut, because we can't afford to scare them (think about the 300K tool they sold us...).
01.06.2019 we should start with the new company. 2 days before I found out, by accident, that there was a password on the project file on the server for one of the ELO services. I called my boss and my CEO. No one knows anything about it. I found out, that ABI sneaked into this folder, while working on another thing a week ago, and set this password to lock us out. OF OUR OWN FCKING FILE.
Without this password we are not able to fix any bug, develop any feature or even change an image within ELO, regardless, that we paid thausend of hours for that.
When we asked ABI about this, his CEO told us, it is "their property" and they will not remove it.
When I asked my CEO about it, they told me to do nothing, we can't scare them, we need them for the 300K tool.
No punt.
No finish.
Just the project file with a password still there today6 -
So my laptop is a Lenovo y50-70 and it's quite good. The keyboard is amazing compared to most other Laptops I've tried the screen is nice, it's durable and it's got some decent specs. With it (and also my desktop) I dual boot Kubuntu and Windows 10.
About three years ago I decided I wanted to reinstall both OS' since they were starting to get cluggered. Lo and behold I wasn't able to do that because, and I quote: "EFI USB Device boot failed".
Hours were spent trying to Google different things to the point where I was even desperate enough to go beyond page 0 on the different searches with (as you might have guessed), no luck. "Fuck that" I thought. It worked and I could clean it manually anyway.
Fast forward to the last part of August this year where I upgraded my Kubuntu from 17.10 to 18.04 and shit got weird. You can read more about it here:
https://reddit.com/r/kde/...
but the TL;DR is in the link. Windows was also quite annoing as well (but don't take my word for it).
As you might understand it made me really frustrated. I couldn't update my BIOS since they were already at the current version, but one way or another I had to fix it. After a while was almost about to give up when I decided to give this:
https://forums.lenovo.com/t5/...
https://bugs.launchpad.net/ubuntu/...
a go. It was weird though. Like imagine the conversation:
"Can't boot from USB bro, what do I do?"
"Just update your kernel, bro"
Well IT. FUCKING. WORKED.
So I imideatly installed Linux and have just now bothered installing Windows (since all of the teachers are vacation so I had plenty of time to set it all up).
But got damn.
4 -
On my project the customer has re-signed into a contract several times when they have budget to continue work. The first time they got us to build the system was a huge success story because the team was assembled quickly and we did rapid development. Initialize repo to prod in 1.5 months. The customer asked for the same dev team. Strong dev team, a PM that doesn't take shit, and pure agile. Lets call her don't-take-shit PM.
When the customer re-signed the executive decided that she didn't like don't-take-shit PM. So the project manager gets replaced by play-by-the-rules PM who will comply with stupid requests and micromanagement. He isn't a bad PM but he tries to make everyone happy. The amount of management types executive installs on the project is massive, and development team is cut down in major ways. Customer and executive shit rolls down to the development team and we can't get anything done. The customer starts to lose faith because we can't get traction. They start demanding traditional waterfall/SDLC docs. Which causes more delay in the project.
So the executive decides that the PM can take a fall for it to save face for the company. She moves play-by-the-rules PM to another project. He starts handover to a new PM that has a history of being her pushover. The customer hadn't seen him yet so now we have push-over PM.
Play-by-the-rules PM is finally out of the project and instead of moving to a different account the company decides to "lay him off because there is no work". So basically they made him take the fall for the failure while promising reassignment, and instead let him go. This is so unfair..
Meeting with push-over PM yesterday and he shows us his plan. Identical to play-by-the-rules PM's plan that got him axed.We point that out and show him the docs that were made for it. His face clearly communicates "OH SHIT WHAT DID I SIGN UP FOR?"1 -
Running a fucking conda environment on windows (an update environment from the previous one that I normally use) gets to be a fucking pain in the fucking ass for no fucking reason.
First: Generate a new conda environment, for FUCKING SHITS AND GIGGLES, DO NOT SPECIFY THE PYTHON VERSION, just to see compatibility, this was an experiment, expected to fail.
Install tensorflow on said environment: It does not fucking work, not detecting cuda, the only requirement? To have the cuda dependencies installed, modified, and inside of the system path, check done, it works on 4 other fucking environments, so why not this one.
Still doesn't work, google around and found some thread on github (the errors) that has a way to fix it, do it that way, fucking magic, shit is fixed.
Very well, tensorflow is installed and detecting cuda, no biggie. HAD TO SWITCH TO PYHTHON 3,8 BECAUSE 3.9 WAS GIVING ISSUES FOR SOME UNKNOWN FUCKING REASON
Ok no problem, done.
Install jupyter lab, for which the first in all other 4 environments it works. Guess what a fuckload of errors upon executing the import of tensorflow. They go on a loop that does not fucking end.
The error: imPoRT eRrOr thE Dll waS noT loAdeD
Ok, fucking which one? who fucking knows.
I FUCKING HATE that the main language for this fucking bullshit is python. I guess the benefits of the repl, I do, but the python repl is fucking HORSESHIT compared to the one you get on: Lisp, Ruby and fucking even NODE in which error messages are still more fucking intelligent than those of fucking bullshit ass Python.
Personally? I am betting on Julia devising a smarter environment, it is a better language already, on a second note: If you are worried about A.I taking your job, don't, it requires a team of fucktards working around common basic system administration tasks to get this bullshit running in the first place.
My dream? Julia or Scala (fuck you) for a primary language in machine learning and AI, in which entire environments, with aaaaaaaaaall of the required dlls and dependencies can be downloaded and installed upon can just fucking run. A single directory structure in which shit just fucking works (reason why I like live environments like Smalltalk, but fuck you on that too) and just run your projects from there, without setting a bunch of bullshit from environment variables, cuda dlls installation phases and what not. Something that JUST FUCKING WORKS.
I.....fucking.....HATE the level of system administration required to run fucking anything nowadays, the reason why we had to create shit like devops jobs, for the sad fuckers that have to figure out environment configurations on a box just to run software.
Fuck me man development turned to shit, this is why go mod, node npm, php composer strict folder structure pipelines were created. Bitch all you want about npm, but if I can create a node_modules setting with all of the required dlls to run a project, even if this bitch weights 2.5GB for a project structure you bet your fucking ass that I would.
"YOU JUST DON'T KNOW WHAT YOU ARE DOING" YES I FUCKING DO and I will get this bullshit fixed, I will get it running just like I did the other 4 environments that I fucking use, for different versions of cuda and python and the dependency circle jerk BULLSHIT that I have to manage. But this "follow the guide and it will work, except when it does not and you are looking into obscure github errors" bullshit just takes away from valuable project time when you have a small dedicated group of developers and no sys admin or devops mastermind to resort to.
I have successfully deployed:
Java
Golang
Clojure
Python
Node
PHP
VB/C# .NET
C++
Rails
Django
Projects, and every single fucking time (save for .net, that shit just fucking works on a dedicated windows IIS server) the shit will not work with x..nT reasons. It fucking obliterates me how fucking annoying this bullshit is. And the reason why the ENTIRE FUCKING FIELD of computer science and software engineering is so fucking flawed.
But we can't all just run to simple windows bs in which we have documentation for everything. We have to spend countless hours on fucking Linux figuring shit out (fuck you also, I have been using Linux since I was 18, I am 30 now) for which graphical drivers for machine learning, cuda and whatTheFuckNot require all sorts of sys admin gymnasts to be used.
Y'all fucked up a long time ago. Smalltalk provided an all in one, easily rollable back to previous images, easily administered interfaces for this fileFuckery bullshit, and even though the JVM and the .NET environments did their best to hold shit down, and even though we had npm packages pulling the universe inside, or gomod compiling shit into one place NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO we had to do whatever the fuck we wanted to feel l337 and wanted.
Fuck all of you, fuck this field, fuck setting boxes for ML/AI and fuck every single OS in existence2 -
It’s still to easy.
I hope one day software will get so complicated no one will be able to fix it.
Somewhere in future :
- government established law that new AI system is only one that can accept new law
- every financial operation is monitored by government supervision AI
- we developed robots that are taking care of us
- everyone is happy cause work for money, shelter and food is now optional
- education is fully digital and managed by AI
- whole knowledge is based on asking questions, we don’t need to write and read anymore
- we use one common language and our knowledge specialization increased
A little more time passed by in this utopia.
- after power loss most of data got corrupted
- last man who knew how to restore backup died last night ( R.I.P. admin we will not forget you )
- people trying to save knowledge base to rebuild part of this civilization but no one knows how to make a paper because it haven’t been used for ages
- we decided to put what is left from knowledge on stone but we forgot how to write since everything is audio or video and most of time we were spending in VR
- someone decided that we draw some pictures
- all of use are now drawing animal heads like we remember ourselves from VR, let people know our tech is good
- some people love cats so they try to make cats from stones
- volcano eruptions destroyed most of stones that we made
Starving waiting for another respawn of my DNA sequence. I hope we manage to survive this time.
4 -
I once had a PM who would consistently ask us to fix one off "bugs" (read little design tweaks). He wouldn't even bother to write them down anywhere. He once came over and asked why we hadn't fixed one of his bugs. We had no idea what he was talking about. According to him, we were supposed to organize and prioritize according to his whim. He never logged into our task management system.
When it finally came time to sell off our work to some of the business owners, we showed some of the "bug fixes" we did because that's all we ever heard we were supposed to do. The business owners were mad that we hadn't done anything they had asked us to do. PM throws us under the bus saying that we didn't know how to do our jobs and that we never listened to him. I was so glad when he moved to be lead of the QA department. Then I wasn't so glad.
He would have bug quotas that his team would have to meet. He pitted the entire QA team against all of the devs saying things like, "All the devs suck at coding. It's our job to save the company and the world from their buggy software." He got the only good QA guy fired because he faked a bunch of documents stating that they had had performance reviews and no improvement was made (these meeting never actually took place), and that he hadn't been meeting his big quotas. He was outside of our department and was buddy buddy with one of the C-levels, so his word trumped ours.
Then one glorious day, after I had already left the company, his department was absolved into the technology group. That same day was the day he was fired.
I kind of pity him. I didn't know if he had a family, but how can a man such as that support his family? Perhaps he doesn't have a good relationship with his wife and that's why he sucked at his job?1 -
You build a system to integrate into an API to save the client hours of data-entry per day and reducing the number of fields needed to be filled manually by 75% and querying for the rest of the data and filling in the blanks. It took weeks of building and researching and bug fixing and when you're finally done the client looks at you unimpressed.
The same client gets a small piece of js that gets users location(by ip address) and uses it to customize a hello message on the home page and they think 'yer a wizard, Harry!' and jump for joy over the "cool factor" of this simple hack. -
Sorta dev related.
I work at a service desk for an automotive supplier.
We've once hab out entire mobile phone system crash and for whatever reason, it won't let the phones connect, if there are more than 50 phones trying to connect at the same time. Kind of a problem if there are 400+ phones trying to connect.
My colleagues showed me what to do in order to get one phone to connect to our system.
It was basically: enter some invalid data on out webinterface, save, enter the correct data again and safe again.
It was too stupid for me. So i hacked an AutoIt script together in about 15 minutes, and let it run for the next half an hour. Showed it to my colleagues, they were excited and I went and got a coffee. -
!dev && rant
Can we talk about banks? Those fuckers! Suposed to keep our money save and be competent... They today gave me the biggest scare of my live and I've run one an update query on a prod db without a where clause! (Okay I knew we had a backup but still pretty scarry moment!)
As a few know, besides being a dev I help to organize a small openair music festival here in Switzerland. The openair was this weekend. Every thing wen't well, until I checked our ebanking account today. There was only 2/3 of the money that should be there. A quick call to the bank and they told me, nope they never received it. As we've thrown it in a secure locker during the night, we didn't receive any receipt or something like that. It took those fuckers 3.5 hours to actually go and check the looker, just to find the remaining money in the corner of it. What the fuck people, can't you open your fucking eyes and not give me a fucking heartatack? I thought you guys are professionals!
Note locker: we get a key to open it from the outside, place our payment during the night, as soon as we close it, it falls inside a vault, so there it's a pay in only system, for lack of a better word, I called it locker.
My heart is still beating like mad, because of them.4 -
I recently started working on a 3 months old project, that was outsourced to two Indians genius. One of them left just before I arrived.
I had the chance to discover those guys were not using any version control system, just exchanging a zip file. I don’t even talk about the codebase, never seen such a mess …
Even better the project managers, were not using any IT program to follow the project advancement, but just Excel!!!
After a few days I realised that the remaining dev was not committing anything, the guy was always lying, (so many people died around him + some emergencies)
So, the guy got fired, but don’t worry management found new genius to save the project 🙂
Can someone tell me if outsourcing is really working?6 -
Buying a motherboard variant without WiFi to save 100€ is the worst financial decision ever...
Here I am, after spending over 300€ in USB adapters first, then PCIe boards, buying another one because it broke again...
The alternative is to buy a new motherboard (gen 4 in 2023?!) or change the whole system... two even worse financial options.
12 -
So about 3 weeks ago I was laid off from my dream job due to corporate bullshit. From the feedback received since then it is clear that the company made a mistake hiring a brand new React dev while they really needed an experienced one. Because the consultants who were supposed to be weren't. And the other in-house front end dev was an elitist asshole. And I never received proper feedback until it was too late. Actually I still don't have proper feedback save for some vague stuff which really sounds like the kind of feedback you'd give someone in the middle of their learning process. They even said eventually given more time I could have made it. But alas they felt they had to make a call in the best interest of the company.
Things moved fast since then, I took a week to recover and then I spent time updating my resume before getting back in touch with the recruiter who got me my last job. Great guy and he was happy to help me again. Applied to some positions, got some replies, first in person interview I go to they are immediately willing to take me on.
So now I'm supposed to start tomorrow but somehow I'm having my doubts. The company isn't an IT company but rather a fashion company. They believe in developing in house tools because past attempts with external companies resulted in them trying to push their vision through. Knowing who they worked with I agree, they tried to oversell all the time. But after talking with their developers I noticed they are behind on their knowledge. But so am I. So there was no tech interview which means I am getting an easy way in. And if they honour their word I'll be signing tomorrow for around my old wages.
So you'd think that sounds good right? And yet I'm worried it's going to be another shit show working on software without proper analysis or best practices. I mean the devs aren't total idiots, they are mediors like me and I think their heart is in the right place. They want to develop a good project but it will be just us 3 making a modern .net wpf application with the same functionality of the old Access based system currently in use. I was urged by the boss to draw on my experience and I think he wants me to help teach them too. But I'm painfully aware for my decade since graduating I'm a less than average .net dev who struggles with theory and never worked a job where I had someone more experienced to teach me. I coasted most of the time in underpaid jobs due to various reasons. But I'd always get mad over shitty code and practices. Which I realize is hypocritical for someone who couldn't explain what a singleton class is or who still fails at separation of concerns.
So yeah my question for the hivemind is what advice would you give a dev like me? I honestly dislike how poor I perform but it often feels like an insurmountable climb, and being over 30 makes it even more depressing. On the other hand I know I should feel blessed to find a workplace who seems to genuinely believe that people grow and develop and wishes to support me in this. Part of me thinks I should just go in, relax, but also learn till I'm there where I want to be and see if these people are open to improving with me. But part of me also feels I'm rushing into this, picking the first best offer, and it sure feels like a step backwards somehow. And that then makes me feel like an ugly ungrateful person who deserves her bad luck because she expects of others what she can't even do herself :(4 -
This is the last part of the series
(3 of 3) Credentials everywhere; like literally.
I worked for a company that made an authentication system. In a way it was ahead of it's time as it was an attempt at single sign on before we had industry standards but it was not something that had not been done before.
This security system targeted 3rd party websites. Here is where it went wrong. There was a "save" implementation where users where redirected to the authentication system and back.
However for fear of being to hard to implement they made a second method that simply required the third party site to put up a login form on their site and push the input on to the endpoint of the authentication system. This method was provided with sample code and the only solution that was ever pushed.
So users where trained to leave their credentials wherever they saw the products logo; awesome candidates for phishing. Most of the sites didn't have TLS/SSL. And the system stored the password as pain text right next to the email and birth date making the incompetence complete.
The reason for plain text password was so people could recover there password. Like just call the company convincingly frustrated and you can get them to send you the password.1 -
Have been using redis for my new system and wanted to try some gui, so I stumbled on "redis desktop manager", it supports ssh tunnels, privatekeys and more, great isn't it?
BUT IT SAVES YOUR FUCKING PLAINTEXT PASSWORD AND PATH TO YOUR PRIVATE KEY IN %USER%\.rdm\connections.json
WHAT THE FUCK, fucking ask that password during connection, don't fucking save it in plaintext and give an attacker literally the path to my key, wanted to PR it, but fuck c++, probably thats why he doesnt have it, because hes just using some library, so he doesn't have to fuck with the actual implementation of it.2 -
Lotta Ubuntu hate on devRant today ...
Funnily enough, Wappalyzer tells me devRant runs on Ubuntu.
And anyway, Ubuntu is a good operating system. It's not my first choice, but it works well as a gateway drug to Linux. I have it running on a couple EC2s because its the simplest to provision and set up.
Ubuntu is good, save your hate for Windows and particularly MacOS17 -
Saturday 9.00 AM. I was sleeping, my colleague (on holiday) sent me a text: "We got a problem on our system, probably we ran out of space". I checked the log and found out that several cron jobs failed due to not enough space on the disk. I started deleting some unnecessary logs (we're paranoid) and ended up to squeeze the vm like a lemon to save some space. Sent an email to the sysadmin, "We got to add more space ASAP, users are getting 500 errror for almost everything". Silence. I thought to myself: "Until monday we're safe..". I did a df (96%) and sent a screen to the sysadmin, just to be sure that we understood each other. Finally monday comes, nobody worries about the issue. At noon I literally takled the guy of IT dept. "Yeah, we read your email. I think the sysadmin didn't take you seriously". "Why? Which part of 'we're running out of space' isn't serious?!!!". "He just told me that we have unlimited space on that vm". Unlimited space...sure.... "Right.....the disk is at 96%, buuuuut if he said so No news to worry. Don't call me if everything burns. Have a good day!!!"4
-
I take the train well out side of rush hour when the trains are about half empty (though most seats taken). I have to come in because it's not like I can afford to have a workspace comparable to the cockpit of the millennium falcon both at home and at work.
I don't believe going into a panic about coronavirus but take obvious basic precautions to at least reduce the chance and slow the spread and that should do a good amount to reduce overloading the system. I kid you not, at this point medical facilities are considering buying diving equipment for enriched O2 supplies to keep up.
Today, as usual, some fucking piece of shit cunt twat psycho beggar that literally needs to be in an asylum with a massive fucking great gob of snot dangling out his nose is going up the entire train, every carriage, begging groping every hand rail along the way and potentially exposing several hundred people every hour.
I told this sorry sack of shit, surprisingly politely, that he'll end up rapidly spreading coronavirus if he keeps going all the way up and down the carriage like that. After he's fucking muttering on trying to make people feel bad about fucking ignoring him not being all caring and shit and then doesn't give a shit about giving everyone coronavirus after fucking waltzing down the entire fucking length of the train his pockets stuffed with coin. Then he threatens to assault me. I was fucking this > < far away from unleashing a life changing beat down and kicking his ass off the train with no pain or injury spared.
At the same time, that piece of scum waste of skin the mayor has apparently informed the public that you can't get coronavirus on the train or buses. How the fuck did he come to that conclusion? Is this really happening? How can something that clinically fucking thick as shit be our lord and master?
I fucking thought the great toilet paper rush was brain dead. Jesus fucking Christ and people voted for this fucking championship moron. Why don't they just all save themselves the fucking hassle and all march themselves off a fucking cliff?
These dumb shits without two neurons to rub together only need to put a dozen or so plain clothed police offices on the trains to catch these fuckers.
Why am I even fucking paying taxes? Where's it all fucking going? Another fucking lets give a billion quid to Fujitsu fucking failed IT project again I bet. Can't people bloody do anything these days? Does there have to be an app for fucking everything?
Someone should make a fucking facial recognition app so I can snap a shot of these fuckers and then if one of these fucking passes the phone camera anyone else with the app it'll set of there's a fucking imbecile in the vicinity alert.
These people need to be dragged out into the street, lined up against the wall and shot. No remorse. Toss them in a pit, cover it with dirt and be done with it. Why even bother with the execution? Throw them down the hole and fill it with dirt.
You don't have to go mental like it's the plague but people could at least show some fucking common sense, common decency and basic decorum. Even minimal measures, is that much to ask? Absolute scum of the Earth. How we even allow them to walk to Earth I do not fucking know.1 -
- 5 days until customer integration test. I finished my work for the test a week ago so I am relaxed. 10 days of estimated work for other team, 1 dev scheduled for this task.
I reminded of the deadline, which seemed not realistic anymore; "Don't be so pessimistic" they said, "Everything is fine", "We'll get it done".
- 2 days to go and half of the system doesn't work, the external test system rejects all data (nobody had time to read the specs -> let's call it 'assumption based development' (ABD))
I reminded of the deadline, and that I would like to have an internal test with all components beforehand; "Don't be so pessimistic" they said, "Everything is fine", "Just some minor issues".
- 1 day to go and dev from other team called in sick... (and I can really empathize this decision); "Someone else can jump in and finish the work" they said.
- An hour later the test was cancelled not even 24 hours before it should take place. We could have rescheduled the test more than a week ago, that wouldn't have been so disgusting and even save our customer some hours of preparation effort.
I hate myself when I was right from the start but wouldn't enforce my position because I'm too kind sometimes. -
There should be an open source, Linux based Printer operating system. Like OpenWRT for routers, also works with almost every device in the wild.
This would be such a relief for everyone. Come on, most printer firmwares are crap.
Remember Scannergate? Yep, the one about professional xerox scanners changing numbers in scanned document. Went unnoticed for 8 years and affected almost every workcenter even in the highest compression setting. Just because they wanted to save a few bytes by using pattern matching. -
For the love of Jeebus and all his holyness!!
These fuckers, that I've been studying with for the last semester need to get there shit together!
It's one thing that they want to discuss every single thing and NOT come to a different conclusion after a couple of hours....
BUT I fucking draw the fucking line in the dirt, when you shit eating wimps "forget" to format your code and do the worst half-assed job I have ever seen!
Why the fuck would you only indent half of the lines, without any sort of system?!?
And what is this? A huge fucking bunch of random spaces and tabs at the end of a line? Jeebus, save me! -
Alright, guys. You have complete autonomy over this project, from ideation to execution. You can do exploratory interviews to find out what potencial customers would think, you can come up with prototypes, you can choose whatever tech stack you deem fit for the job. The only requirement is that it must be a beauty product. Oh, and that it must have a way to publish this ton of pictures of models our client has. Oh, and it must handle payments and inventory. And it may integrate with third party software. And users need to save the pictures they like. And a booking system. Is that hard to understand?2
-
So on a PowerBuilder app I worked on last year (I know right...), suddenly the business users were reporting that they couldn't edit some of their prices! When they clicked save, the screen would refresh and lose their work.
We had recently upgraded the system to allow them to enter hundreds of prices at a time, much more than there had ever been. But that code wasn't anywhere near this part!
Tracking this down was really fun... By great fortune, I discovered the row the users were editing was the 99th row in the DataWindow. As it turned out, in the distant past (this is PowerBuilder, after all) the returns code "99" had been used as a flag to mean "cancel/refresh the screen".
I of course offered to "fix it right", but the powers that be wanted it fixed cheaply, so we just changed the flag to "9999". 😬1 -
In today's episode of kidding on SystemD, we have a surprise guest star appearance - Apache Foundation HTTPD server, or as we in the Debian ecosystem call it, the Apache webserver!
So, imagine a situation like this - Its friday afternoon, you have just migrated a bunch of web domains under a new, up to date, system. Everything works just fine, until... You try to generate SSL certificates from Lets Encrypt.
Such a mundane task, done more than a thousand times already... Yet... No matter what you do, nothing works. Apache just returns a HTTP status code 403 - Forbidden.
Of course, what many folk would think of first when it came to a 403 error is - Ooooh, a permission issue somewhere in the directory structure!
So you check it... And re-check it to make sure... And even switch over to the user the webserver runs under, yet... You can access the challenge just fine, what the hell!
So you go deeper... And enable the most verbose level of logging apache is capable of - Trace8. That tells you... Not a whole lot more... Apparently, the webserver was unable to find file specified? But... Its right there, you can see it!
So you go another step deeper and start tracing the process' system calls to see exactly where it calls stat/lstat on the file, and you see that it... Calls lstat and... It... Returns -1? What the hell#2!
So, you compile a custom binary that calls lstat on the first argument given and prints out everything it returns... And... It works fine!
Until now, I chose to omit one important detail that might have given away the issue to the more knowledgeable right away. Our webservers have the URL /.well-known/acme-challenge/, used for ACME challenges, aliased somewhere else on the filesystem - To /tmp/challenges.
See the issue already?
Some *bleep* over at the Debian Package Maintainer group decided that Apache could save very sensitive data into /tmp, so, it would be for the best if they changed something that worked for decades, and enabled a SystemD service unit option "PrivateTmp" for the webserver, by default.
What it does is that, anytime a process started with this option enabled writes to /tmp/*, the call gets hijacked or something, and actually makes the write to a private /tmp/something/tmp/ directory, where something... Appeared as a completely random name, with the "apache2.service" glued at the end.
That was also the only reason why I managed fix this issue - On the umpteenth time of checking the directory structure, I noticed a "systemd-private-foobarbas-apache2.service-cookie42" directory there... That contained nothing but a "tmp" directory with 777 as its permission, owned by the process' user and group.
Overriding that unit file option finally fixed the issue completely.
I have just one question - Why? Why change something that worked for decades? I understand that, in case you save something into /tmp, it may be read by 3rd parties or programs, but I am of the opinion that, if you did that, its only and only your fault if you wrote sensitive data into the temporary directory.
And as far as I am aware, by default, Apache does not actually write anything even remotely sensitive into /tmp, so...
Why. WHY!
I wasted 4 hours of my life debugging this! Only to find out its just another SystemD-enabled "feature" now!
And as much as I love kidding on SystemD, this time, I see it more as a fault of the package maintainers, because... I found no default apache2/httpd service file in the apache repo mirror... So...8 -
Apparently you can't call the imperial system retarded, as it hurts people.
I got flagged by a university admin for posting this picture to a science memes discord channel. How retarded is that?
God save us when this snowflake generation takes power and there is a war, famine, drought, flood, or God (or gods for that matter, or Flying Spaghetti Monster, don't get offended here!) forbid, aliens attack us.
I bet these people don't ever fly an Airbus because its FMC calls the pilot a retard.
https://youtu.be/vmbzKsqKQoI?t=35
17 -
Public transport system in my city has the following option for monthly subscription: you can register your DEBIT/CREDIT CARD in some sort of whitelist and use it on the doors to access the subway or buses.
They. Save. Your. Card.13 -
A software had been developed over a decade ago. With critical design problems, it grew slower and buggier over time.
As a simple change in any area could create new bugs in other parts, gradually the developers team decided not to change the software any more, instead for fixing bugs or adding features, every time a new software should be developed which monitors the main software, and tries to change its output from outside! For example, look into the outputs and inputs, and whenever there's this number in the output considering this sequence of inputs, change the output to this instead.
As all the patchwork is done from outside, auxiliary software are very huge. They have to have parts to save and monitor inputs and outputs and algorithms to communicate with the main software and its clients.
As this architecture becomes more and more complex, company negotiates with users to convince them to change their habits a bit. Like instead of receiving an email with latest notifications, download a csv every day from a url which gives them their notifications! Because it is then easier for developers to build.
As the project grows, company hires more and more developers to work on this gigantic project. Suddenly, some day, there comes a young talented developer who realizes if the company develops the software from scratch, it could become 100 times smaller as there will be no patchwork, no monitoring of the outputs and inputs and no reverse engineering to figure out why the system behaves like this to change its behavior and finally, no arrangement with users to download weird csv files as there will be a fresh new code base using latest design patterns and a modern UI.
Managers but, are unaware of technical jargon and have no time to listen to a curious kid! They look into the list of payrolls and say, replacing something we spent millions of man hours to build, is IMPOSSIBLE! Get back to your work or find another job!
Most people decide to remain silence and therefore the madness continues with no resistance. That's why when you buy a ticket from a public transport system you see long delays and various unexpected behavior. That's why when you are waiting to receive an SMS from your bank you might end up requesting a letter by post instead!
Yet there are some rebel developers who stand and fight! They finally get expelled from the famous powerful system down to the streets. They are free to open their startups and develop their dream system. They do. But government (as the only client most of the time), would look into the budget spending and says: How can we replace an annually billion dollar project without a toy built by a bunch of kids? And the madness continues.... Boeings crash, space programs stagnate and banks take forever to process risks and react. This is our world.3 -
Time for a rant about shitstaind, suspend/hibernate, and if there's room for it at the end probably swappiness, and Windows' way of dealing with this.
So yesterday I wanted to suspend my laptop like usual, to get those goddamn fans to shut up when I'm sleeping. Shitstaind.. pinnacle of init systems.. nope, couldn't do it. Hibernation on the other hand, no problem mate! So I hibernated the laptop and resumed it just now. I'm baffled by this.
I'll oversimplify a bit here (but feel free to comment how there's more to it regardless) but basically with suspend you keep your memory active as well as some blinkenlights, and everything else goes down. Simple enough.. except ACPI and I will not get into that here, curse those foul lands of ACPI.
With hibernation you do exactly the same, but on top of that, you also resume the system after suspending it, and freeze it. While frozen, you send all the memory contents to the designated swap file/partition. Regarding the size of the swap file, it only needs to be big enough to fit the memory that's currently in use. So in a 16GB RAM system with 8GB swap, as long as your used memory is under 8GB, no problem! It will fit. After you've moved all the memory into swap, you can shut down the entire system.
Now here's the problem with how shitstaind handled this... It's blatantly obvious that hibernation is an extension of suspend (sometimes called S3, see e.g. https://wiki.ubuntu.com/Kernel/...) and that therefore the hibernation shouldn't have been possible either. The pinnacle of init systems.. can't even suspend a system, yet it can hibernate it. Shitstaind sure works in mysterious ways!
On Windows people would say it's a hardware issue though, so let's talk a bit about that clusterfuck too. And I'll even give you a life hack that saves 30GB of storage on your Windows system!
Now I use Windows 7 only, next to my Linux systems. Reason for it is it's the least fucked up version of Windows in my opinion, and while it's falling apart in terms of web browsing (not that you should on an EOL system), it's good enough for le games. With that out of the way... So when you install Windows, you'll find that out of the box it uses around 40GB of storage. Fairly substantial, and only ~12GB of it is actually system data. The other 30-ish GB are used by a hibernation file (size of your RAM, in C:\hiberfil.sys) and the page file (C:\pagefile.sys, and a little less than your total RAM.. don't ask me why). Disable both of those and on a 16GB RAM system, you'll save around 30GB storage. You can thank me later.
What I find strange though is that aside from this obscene amount of consumed storage, is that the pagefile and hibernation file are handled differently. In Linux both of those are handled by the swap, and it's easy to see why. Both are enabled by the concept of virtual memory. When hibernating, the "real" memory locations are simply being changed to those within swap. And what is the pagefile? Yep.. virtual memory. It's one thing to take an obscene amount of storage, but only Windows would go the extra mile and do it twice. Must be a hardware issue as well.
Oh, and swappiness. This is a concept that many Linux users seem to misunderstand. Intuitively you'd think that the swappiness determines what percentage of memory it takes for the kernel to start swapping, but this is not true. Instead, it's a ratio of sorts that the kernel uses when determining how important the memory and swap are. Each bit of memory has a chance to be put into either depending on the likelihood of it being used soon after, and with the swappiness you're tuning this likelihood to be either in favor of memory or swap. This is why a swappiness of 60 is default most of the time, because both are roughly equally important, and swap being on disk is already taken into account. When your system is swapping only and exactly the memory that's unlikely to be used again, you know you've succeeded. And even on large memory systems, having some swap is usually not a bad idea. Although I'd definitely recommend putting it on SSD in a partition, so that there's no filesystem overhead and so that it's still sufficiently fast, even when several GB of memory are being dumped in.6 -
I really don't understand this particular Government Department's IT Unit. They have a system and network to maintain except:
- They don't have a DBA
- They don't have a dedicated Network Engineer or Security Staff
- Zero documentation on all of the systems that they are taking care of (its all in each assigned particular staff's brain they said)
- Unsure and untested way of restoring a backup into a system
- Server passwords are too simple and only one person was holding this whole time and its to an Administrator account. No individual user account.
- System was developed by an in-house developer who is now retired and left very little documentation on its usage but nothing on how its setup.
But, the system has been up and operational for the past 20 years and no major issues whatsoever with the users using it. I mean its a super simple system setup from the looks of it.
1 App Server connected to 1 DB Server, to serve 20-30 users. But it contains millions of records (2GB worth of data dump). I'm trying to swing to them to get me on a part time work to fix these gaps.
God save them for another 20 years.3 -
Here is a little story about why I do not like to have to purchase developer tools and libraries..
Long story short it has taken at least 10 people more than 3 months to purchase two licenses of this component library which we still do not yet have licenses for.
It all starts with this guy who works here and has the job title 'solution architect'. He saw an ad on a website about some html component library. Then he asks me and the other developer here to look at it. He is super excited saying things like if we save only x days of time the cost is nothing in comparison to developer time..
The other developer and I both spend a few days reading the docs and trying some sample code. It offers some things we can use but I suggest not bothering with it.
Despite my suggestion he goes to the technical manager and they write up a business case. After about a month our receptionist cc me on an email chain from the it commercial manager who is asking for the licensing information so they can add the component creator as a vendor in the purchasing system. I send them a link to the component website which lists all that.
Jump forward two more months to last week and I got a spam email from the component company saying they have some new version out. I am wondering what has happened so I ask our receptionist she says it is with accounts payable and waiting payment - but it is marked urgent and she will find out.
Today I am cc in an email saying they have paid for it two weeks ago. So where is the license info? Nobody knows.1 -
A dev life in Queen songs:
„A Kind of Magic“ - Build successful
„A Winter’s Tale“ - Key Account Manager visits customer
„Action This Day“ - Release day
„All Dead, All Dead“ - System down
„Another One Bites the Dust“ - kill -9 4711
„Breakthru“ - 10 hour debuging session
„Chinese Torture“ - Microsft Office
„Coming Soon“ - Client asks for delivery date
„Dead on Time“ - shutdown -t 10
„Doing All Right“ - How's the progress on the new feature?
„Don’t Lose Your Head“ - git push -f
„Don’t Stop Me Now“ - In the zone
„Escape from the Swamp“ - Hand in resignation letter
„Forever“ - while(1)
„Friends Will Be Friends“ - friend class Vector;
„Get Down, Make Love“ - No rule to make target "Love"
„Hammer to Fall“ - Release day
„Hang on in There“ - 2 weeks until release
„I Can’t Live With You“- Microsoft
„I Go Crazy“ - Microsoft
„I Want It All“ - Google
„I Want to Break Free“ - free( (void*) 0xDEADBEEF );
„I’m Going Slightly Mad“ - Impossible feature requested
„If You Can’t Beat Them“ - Impossible feature promised by sales
„In Only Seven Days“ - Impossible feature ordered
„Is This the World We Created...?“ - Philosphic moments
„It’s a Beautiful Day“ - Weekend
„It’s a Hard Life“ - Weekday
„It’s Late“ - Deadline was last week
„Jesus“ - WTF?
„Keep Passing the Open Windows“ - Interprocess communication
„Keep Yourself Alive“ - Daily struggle
„Leaving Home Ain’t Easy“ - Time to get up and go to work
„Let Me Entertain You“ - Sales meets customer
„Liar“ - Sales
„Long Away“ - Project start
„Loser in the End“ - Dev
„Lost Opportunity“ - Job ad
„Love of My Life“ - emacs/vim
„Machines“ - Computer
„Made in Heaven“ - git
„Misfire“ - Unhandled exception at Memory location 0xDEADBEEF
„My Life Has Been Saved“ - Google drive/Facebook
„New York, New York“ - Meeting at customer
„No-One But You“ - Bus factor = 1
„Now I’m Here“ - Morning rush hour
„One Vision“ - Management goals
„Pain Is So Close to Pleasure“ - NullPointerExcption
„Party“ - Delivery completed
„Play the Game“ - Customer meeting inhous -
„Put Out the Fire“ - Support hotline
„Radio Ga Ga“ - GSM/GPRS/UMTS/LTE/5G
„Ride the Wild Wind“ - Arch Linux
„Rock It“ - Linux
„Save Me“ - CTRL-S/CTRL-Z
„See What a Fool I’ve Been“ - git blame
„Sheer Heart Attack“ - rm -rf /
„Staying Power“- UPS
„Stealin’“ - Stack Overflow
„The Miracle“ - It works
„The Night Comes Down“ - It doesn't work
„The Show Must Go On“ - Project cancelled
„There Must Be More to Life Than This“ - Philosophic moments
„These Are the Days of Our Lives“ - Daily routine
„Under Pressure“ - 1 day until release
„Was It All Worth It“ - Controlling
„We Are the Champions“ - Release finished
„We Will Rock You“ - Sales at customer
„Who Needs You“ - HR
„You Don’t Fool Me“ - Debugging session
„You Take My Breath Away“ - rm -rf /
„You’re My Best Friend“ - emacs/vim4 -
Boss: I want a simple form builder.
Me: Ok.
Boss: It must cover all our customers needs. They can build their own form and save their customer submission.
Me: What is their needs?
Boss: Quiz Form, Sales Form, Events Form, Bla bla bla..
Me: Ok, that's not simple so we need to analyze the system first.
Boss: It's similar to wordpress (referring to wp cms) so it must be easy.
Me: But, Wordpress already started before I work here. And..
Boss: I already have a customer and I need it in 1 months! -
TLDR;
I remissness about Yahoo site builder and talk about finding the record of the Google search that changed my life a long time ago and I think it's fucking great.
Earlier I re-installed google chrome but unlike every other time, this time I forgot to turn off the auto-sync feature. I only realized this when I opened gmail and it pre-populated my login info with the info of my very first, long forgotten gmail account.
So naturally I went exploring... after going through the mails I decided to check out the actual Google account to see if there was anything of interest there and lo and behold I found around 7 years of browsing history that I had no idea Google stored at the time.
As scary as it was to see I'm kinda glad about it now because aside from finding out that I was going through an Asian porn phase in 2008 I also found the one Google search record that changed my life.
It was a search to download Yahoo site builder followed by a bunch more on how to use it.
I had stumbled across a random article about it and it caught my eye because I needed a website for the grocery store I was a manager of back then.
Thankfully it was a fucking horrible WYSIWYG editor. I recall it acting almost identical to Word at the time - I would save and back up my site constantly because moving something 1px would fuck the layout up and burn everything to the ground, cntrl+z would try and do something, reversing only my last action while leaving the rest of the site in tatters and I didn't have the skills to understand or fix it...
Ultimately my frustration led me learn a bit of html & css and a week or so later It became apparent it would be easier to scratch code the damn thing so I uninstalled Yahoo site builder and started all over again.
Learning & building that site in notepad ignited my passion for coding and less than a year later I left my shitty dead end job to join a brand new tech company created with the help of a like minded investor officially employed as a developer. Let help you understand just how big this achievement was for me - I had been trying to find a job, ANY job in I.T even at a call center level without success for 6 years because I dropped out of school.
In 6 years as an active job seeker I only received one phone call about a job opportunity which ended very quickly once they realised they had misread my CV. In all those years I never even got a single job interview.
After that I spent the next 3 years rolling out and improving the cloud based loyalty card system I had written for my store out on a national scale and the rest is history. Since then I have never been judged by a crappy piece of paper, hated my job or struggled to find a new one.
What a beautiful search result that was to find.
I dedicate this rant to Yahoo, with my sincere gratitude for making a shitty WYSIWYG editor that was so bad it pissed me off enough to make me actually learn something.
2 -
Imagine a web way ahead of our time where its size goes beyond our imagination...
This is my first rant, and I'll cut to the chase! I don't like how web currently stands. Here's what makes me angry the most altough I know there's a myriad of solutions or workarounds:
- A gazillion credentials/accounts/services in your lifetime.
- Everyone tries to reinvent the wheel.
- There's no single source of truth.
- Why the fuck there's so much design in a vision that started as a network of documents? Why is it that we need to spend time and energy to absorb the page design before we can read what we are after?
- What's up with the JS front end frameworks?! MB's of code I need to download on every page I visit and the worse is the evaluation/parsing of it. Talk about acessibility and the energy bills. I don't freaking need a SPA just give a 20-50ms page load and I'm good to go!
- I understand that there's a whole market based on it but do we really need all that developer tools and services?
- Where's our privacy by the way? Why the fuck do I need ads? Can't I have a clue about what I wan't to buy?
Sticking with this points for now... Got plenty more to discuss though.
What I would like to see:
A unique account where i can subscribe services/forums/whatever. No credentials. Credentials should be on your hardware or OS. Desktop Browser and mobile versions sync everything seemlesly. Something like OpenID.
Each person has his account and a profile associated where I share only what I want with whom I want when I want to.
Sharing stuff individually with someone is easy and secure.
There's no more email system like we know. Email should be just email like it started to be. Why the hell are we allowing companies to send us so much freaking "look at me now, we are awesome", "hey hey buy from me".. Here's an idea, only humans should send emails. Any new email address that sends you an email automatically requests your "permission" to communicate with you. Like a friend request.
Oh by the way did I tell you that static mail is too old for us? What we need is dynamic email. Editing documents on the fly, together, realtime, on the freaking email. Better than mail, slack and google docs combined.
In order for that to work reasonably well, the individual "letter" communication would have to be revamped in a new modern approach.
What about the single source of truth I talked about? Well heres what we should do. Wikipedia (community) and Larry Page (concept) gave us tremendous help. We just need to do better now.
Take the spirit of wikipedia and the discoverability that a good search engine provides us and amp that to a bigger scale. A global encyclopedia about everything known to mankind. Content could be curated from us all just like a true a network.
In this new web, new browser or whatever needed to make this happen I could save whatever I want, notes, files, pictures... and have it as I left it from device to device.
Oh please make web simple again, not easy just simple and bigger.
I'm not old by the way and I don't see a problem with being older btw.
Those are just my stupid rants and ideas. They are worth nothing. What I know for sure is that I'll do something about or fail trying to.12 -
What a day we are testing a system which was supposed to handle 10 maybe twenty user to handle 12k users.
And i am being lectured this system is using way more resources as it is supposed to be 😔. At design time the same people just wanted to save time.8 -
(Part 1/2?)
Ohhh my god am I furious and this one's a gem.
Also I'm gonna namespoil all of the entities in my post. If this is against rant rules I'll reframe it.
So the story starts over an year ago. Me, being in a bad place, where I couldn't do a job due to external issues, wanted to try out an internship. Thought I could pull off a 5 hour shift and then attend to my problems.
THE INTERNSHALA ARC:
I apply to a bunch of applications on Angel, Internshala and Indeed.
I was contacted by a few handful of these places. One of them was called "ARCHITECTA SOFTWARE SOLUTIONS". These guys had arranged an online aptitude test for me which I promptly took.
I looked up this company and they seemed like a pretty okay big firm from the outset but didn't have many reviews on Glassdoor and likes of such. (first red flag). Post aptitude test, I was quite sure I fucked up and wouldn't get further contact. Surprisingly, a person from the company sends me his Whatsapp number over chat and asks me to save it. The message is worded like a bulk email (Starting with Hello everyone!!) which I thought was quite odd since the interaction from these platforms has always been a person-to-person contact for me. Since Internshala showed that only around 40 people applied for the position I was quite intrigued but attributed this to my lack of exp in internship operations.
THE WHATSAPP ARC:
I was contacted by the number on WhatsApp saying that they'd be interested in moving forward and I gave them my work experience details.
The person sends me over a development assignment to complete within a few days. The assignment consists of massive scope of details. I'm talking production level concept and implementation. Asks to me implement a custom emotion detection CV model (worded as "emotion camera" lmao), generate a 3d model (specified nowhere and expects to implement a mono-ocular system for the curious) and deploy it over AWS with a website to go along with it and also host that. The website should contain a VR ("360 rotatable") view that can explore the depth-map ("not worded as depth-map") of the face. My first assumption was that they had picked this work up for outsourcing and didn't bother to chip off parts so as to create an assignment out of it (I know very optimistic).
So I shoot it at him on WhatsApp asking which parts of the assignment should I do?
Him: So, which parts CAN you do?
I thought of it as an HR thing.
Me: I could do most of it but given the time-frame of the assignment and my applied position as a web developer it is perhaps out of scope for my application.
Him: Don't worry about the assignment. You can submit when you complete the whole assignment.
I was visibly angry over the stupidity of this man.
Me: This task is a Full-Stack + CV + VR task. It will take over two months to get working. Am I supposed to work on it for that long for an assignment?
Him: Okay just do the basic functionalities like add to cart. But also try to do the camera thing before next week.
At this point I'm sure that they are having trouble handling an eager client and they're offloading work to interns. So I do only the backend and minimal frontend and submit the assignment (a 2 day job done over a weekend).
Nothing. Empty. No messages since then. I tried sending in a Whatsapp message on the application and how to proceed. Then, if I could get to know if I have been rejected. Nothing.
And all this time I can clearly see the account is active as it pushes pretentious motivational quotes over it's Whatsapp status.3 -
Applying Occam's razor and I might be wrong..
Hiring a candidate and job hunt, both are fucking exhaustive process.
We, as a human race, have aimed for Moon and Mars but are unable to solve the problem at hand which can save millions of hours each year reflecting in immediate cost savings.
Here's my (idealistic) solution:
A product to connect job seekers and recruiters eliminating all the shitty complexities.
LinkedIn solved it, but then hired some PMs who started chasing metrics and bloated the fuck out of the product.
Here are some features of the product I am envisioning:
1. Job seeker signs up and builds their entire profile.
2. Ability to add/remove different sections (limited choices like certifications, projects, etc.), no custom shit allowed because each will have their own shit.
3. By default accept GDPR, Gender Identity, US equality laws, Vetran, yada yada..
4. No resume needed. Profile serves as resume. Eliminate the need to build a resume in word or resume builders.
5. Easy updates and no external resume, saves the job seeker time and gives a standard structure to recruiters to scan through eliminating cognitive load.
6. Recruiters can post their jobs and have similar sections (limited categories again).
7. Add GDPR, Vetran, etc. check boxes need basis.
8. No social shit. Recruiters can see profiles of job seekers and job seekers can see jobs. Period.
9. Employee working in Google? Awesome. Will not show Google recruiters thier profile and employee such job posts.
10. No need to apply or hunt heads. System will automatch and recommend because we are fucking in AI generation and how hard it is to match keywords!!
11. Saves job seekers and recruiters a fuck ton of time hunting the best fit.
12. This system gets you the best job that fits your profile.
Yes, there are flaws in this idea.
Yes, not all use cases are covered.
Yes, shit can be improved and this is hypothetical.
But hey! Surely doable with high impact than going on Moon or Mars right now.
Start-up world has lost its way.11 -
Regarding my previous rant where I shit talked about ubuntu 17.10
So instead of downgrading I tried a last chance (why not, system was fucked already) by installing unity, yes the same shit that ubuntu team removed from ubuntu 17.10 as major upgrade.
Well, it turns out gnome shell was taking more than half of my cpu in idle state and this unity barely reaches above 10%
Life lesson learnt: not every upgrade is better
Same goes for android studio, let's save it for another rant
10 -
I've ranted about this before, but here we go again:
Go Plugins.
I was racking my brains trying to figure out how one could possibly implement plugins easily in Go.
I had a look at using RPC, which requires far to much boilerplate to be realistic. I looked at using Lua, but there doesn't seem to be a straight forward way of using it. I was even about to go with using WASM (yes, WASM). But then I came across Yaegi ("Yet another elegant Go interpreter", you heard right: "interpreter"), Yaegi is also very easy to use.
There are a few issues (including some I haven't solved yet), including flexibility (multiple types of plugins), module support, etc. Fortunately, Traefik just released their plugin system which is based on Yaegi (same company), and I got to learn a few tricks from them.
Here's how module loading works: The developer vendors their dependencies and pushes them to a repo. The user downloads the repo as a zip and saves it to the plugins folder. I hash the zip, unzip it to a cache, and set the the GOPATH for the interpreter to be that extracted folder. I then load the module (which is defined by a config file in the folder), and save it for later. This is the relatively easy part.
The hard part is allowing for different types of plugins. It looks easy, but Go has a strict typing system, makes things complicated. I'm in the process of solving this problem, and so far it should go like this: Check that the plugin fits an arbitrary interface, and if it does, we're good the go. I will just have to apply the returned plugin to that interface. I don't like this method for a few reasons, but hopefully with generics it will become a bit more clean.1 -
Software RAID 1 is better than hardware RAID 1! Here's why:
1. Hardware RAID controllers do fail, and when they do, they kill all hard drives connected to them.
2. If your controller didn't fry your hard drives when it failed, you'll have to find the exact replacement, or you can kiss your data goodbye. You installed a hardware RAID array using second hand Broadcom controller three years ago, and now it failed? You better get on looking for the same controller of same revision running the same firmware version (of course you can't update firmware yourself) if you want your data back. Oh, Broadcom discontinued this model? Tough cookies. With software RAID, everything is easily recoverable.
3. You save a lot of money you can invest in other parts of your system. Good hardware controllers, even second hand ones, don't cost less than $200.
Performance loss is negligible.
RAID built into your motherboard is the worst of both worlds: it's just the software RAID you can't reallly control. Don't do that.
Hardware RAID is only worth it if you have a contract with your hardware supplier that says they're responsible for managing your RAID array. They have the resources to replace failed controllers properly. You know how IBM installs full rack worth of servers just to disable 70% of them because of your plan limitations? It's easier for them to do that than to physically go there and take servers away, just to reinstall them when you grow. Yeah, that kind of contract at that kind of level. If you're there, you don't need me telling you all that.
TL;DR: if you want to buy a two 8TB hard drives for $150 each on newegg and a used RAID controller to make RAID 1 array, you can make both 16TB _and_ make your system more reliable. Reliability is what you're after if you want RAID 1, isn't it?
What are you do... wha... no! stop! are you gonna buy a raid box from Aliexpress? are you fucking crazy?!8 -
v0.0005a (alpha)
- class support added to lua thanks to yonaba.
- rkUIs class created
- new panel class
- added drawing code for panel
- fixed bug where some sides of the UI's border were failing to drawing (line rendering quark)
v0.0014a (alpha) 11.30.2023 (~2 hours)
- successfully retrieving basic data from save folder, load text into lua from files
- added 'props' property to Entity class
- added a props table to control what gets serialized and what doesn't
- added a save() base method for instances (has to be overridden to be useful beyond the basics)
- moved the lume.serialize() call into the :save() method on the base entity class itself
- serialized and successfully saved an entities property table.
- fixed deserializion bugs involving wrong indexes (savedata[1] not savedata[2])
- moved deserialization from temp code, into line loading loop itself (assuming each item is on one line)
- deser'd test data, and init()'d new player Entity using the freshly-loaded data, and displayed the entity sprite
All in all not a bad session. Understanding filing handling and how to interact with the directory system was the biggest hurdle I was worried about for building my tools.
Next steps will be defining some basic UI elements (with overridable draw code), and then loading and initializing the UI from lua or json.
New projects can be set as subfolders folders in appdata, using 'Setidentity("appname/projectname") to keep things clean.
I'm not even dreading writing basic syntax highlighting!
Idea is to dogfood the whole process. UI is in-engine rendered just like you might see with godot, unity, or gamemaker, that way I have maximum flexibility to style it the way I want. I'm familiar enough with constructing from polygons, on top of stenciling, on top of nine-slicing, on top of existing tweening and special effects, that I can achieve exactly what I want.
Idea is to build a really well managed asset pipeline. Stencyl, as 'crappy' as it appeared, and 'for education' was a master class in how to do things the correct way, it was just horribly bloated while doing it.
Logical tilesets that you import, can rearrange through drag-n-drop, assign custom tile shapes to, physics materials, collisions groups, name, add tag data to, all in one editor? Yes please.
Every other 2D editor is basic-bitch, has you importing images, and at most generates different scales and does the slicing for you.
Code editor? Everything behavior was in a component, with custom fields. All your code goes into a list of events, which you can toggle on and off with a proper toggle button, so you can explicitly experiment, instead of commenting shit out (yes git is better, but we're talking solo amateurs here, they're not gonna be using git out the gate unless they already know what they're doing).
Components all have an image assignable to identify them, along with a description field, and they're arranged in a 2d grid for easy browsing, copying, modifying.
The physics shape editor, the animation editor, the map editor, all of it was so bare bones and yet had things others didn't.
I want that, except without the historic ties to flash, without the overhead of java, and with sexier fucking in-engine rendering of the UI and support for modding and in-engine custom tools.
Not really doing it for anyone except myself, and doubt I'll get very far, but since I dropped looking for easy solutions, I've just been powering through all the areas I don't understand and doing the work.
I rediscovered my love of programming after 3-4 years of learning to hate it, and things are looking up.2 -
Guys I'm very bad at staying focused on one thing.
For a bit, I've been learning web development, and I've been working on a page for myself. Past few days I haven't really done anything because I'm trying to actually fucking graduate high school and as of right now I am NOT graduating.
But today I was taking my calculus final and I ended up talking to the teacher for a bit. He said he has an older tablet that he's trying to turn into a type of wall mounted home automation system. I believe he said something about using essentially a minimal Linux install to do it.
That really got me thinking, because I had a fairly similar idea a while ago (not exactly home automation, but just using an old tablet as a small Linux device), but never put in any actual effort to get it done. Now with winter break coming up for me, I really want to try and work on it some.
So before I start doing a fuckton of research on this, has anyone here ever done something similar to an Android device? I'm not talking about using that Linux Deploy app or a chroot. I'm talking about basically removing the Android environment, taking it down to a base Linux install. I just want to know if anyone can steer me in the right direction to save me some time3 -
Games which have a save point or checkpoint system: FUCK YOU!
This is a technical limitation that was present in game consoles in the 90s.
There is no fucking need to implement save points in games made today!
It serves no purpose other than to generate frustration for the player and make the player redo the same section of the game again and again when he fails.
Oh how much fun it is to repeat 20 minutes of tedious shit as a punishment because I fell into your cheap trap and died!
And even if I don‘t fail, I want to be able to stop the game at any time and continue later where I left off. Is that too much to ask?
I don‘t want to be forced to progress in the game until you decide that NOW, after 20 minutes is the time that I am allowed to quit playing.
This is a fucking design decision. Don’t make your design suck to imitate the games from the past that did it for technical reasons!7 -
Teaching advanced IT topics like programming or system management has become much harder in only about five years, because many 20 year olds do not know how to effectively work with the file system. I don't blame them: the Microsoft Office applications nudge you strongly towards storing everything in the Cloud (saving files locally requires extra clicks), and on Windows, the folders C:\Users and C:\ are almost hidden in he respective dialogs (open file, save file). Same on macOS. Students also keep loosing files. This used to be an excuse for not doing the work; nowadays, you're able to find the files on their systems by using appropriate tools (e.g. `find`, installed with Git Bash on Windows). And don't get me started on touch-typing... hell, those kids were fast ten years ago with a proper keyboard! Now they're fast with their smartphone, but painstakingly slow on an actual keyboard.5
-
!rant
So, I've been working on a new project, it's basically a java library/package/jar with a lotta nice gadgets and stuff in.
The current functionality is limited, but will expand more as time goes on.
Right now it's able to:
apply ARGB filters to images (changing ARGB values), save objects in files on disk(Serializer/Deserializer), send emails with working create/load/unload configuration-system which saves a user-config to a file, loads and works with it, but the most coolest thing...
random char generation MY GOOOODDD
yea just wanted to post this cuz im rly proud2 -
Life-hacks for school
-----------------------------------------------------------
Extending a deadline for a paper:
Create a word file, fill it with Lorem ipsum.
Save.
Open the word document with notepad.
Delete soms gibberish code.
Save
Word will throw an error saying the file is corrupt.
Teacher will ask for the file again after the deadline.
-----------------------------------------------------------
Deceiving a plagiarism detector.
only works if you can submit multiple times and no resource is mentioned or checked by teachers
Plagiarize something but not to much, submit it. Change a few words. Submit again.
The system will check the first submission against the second one and determine its 99% plagiarism of your own paper. -
Data wrangling is messy
I'm doing the vegetation maps for the game today, maybe rivers if it all goes smoothly.
I could probably do it by hand, but theres something like 60-70 ecoregions to chart,
each with their own species, both fauna and flora. And each has an elevation range its
found at in real life, so I want to use the heightmap to dictate that. Who has time for that? It's a lot of manual work.
And the night prior I'm thinking "oh this will be easy."
yeah, no.
(Also why does Devrant have to mangle my line breaks? -_-)
Laid out the requirements, how I could go about it, and the more I look the more involved
it gets.
So what I think I'll do is automate it. I already automated some of the map extraction, so
I don't see why I shouldn't just go the distance.
Also it means, later on, when I have access to better, higher resolution geographic data, updating it will be a smoother process. And even though I'm only interested in flora at the moment, theres no reason I can't reuse the same system to extract fauna information.
Of course in-game design there are some things you'll want to fudge. When the players are exploring outside the rockies in a mountainous area, maybe I still want to spawn the occasional mountain lion as a mid-tier enemy, even though our survivor might be outside the cats natural habitat. This could even be the prelude to a task you have to do, go take care of a dangerous
creature outside its normal hunting range. And who knows why it is there? Wild fire? Hunted by something *more* dangerous? Poaching? Maybe a nuke plant exploded and drove all the wildlife from an adjoining region?
who knows.
Having the extraction mostly automated goes a long way to updating those lists down the road.
But for now, flora.
For deciding plants and other features of the terrain what I can do is:
* rewrite pixeltile to take file names as input,
* along with a series of colors as a key (which are put into a SET to check each pixel against)
* input each region, one at a time, as the key, and the heightmap as the source image
* output only the region in the heightmap that corresponds to the ecoregion in the key.
* write a function to extract the palette from the outputted heightmap. (is this really needed?)
* arrange colors on the bottom or side of the image by hand, along with (in text) the elevation in feet for reference.
For automating this entire process I can go one step further:
* Do this entire process with the key colors I already snagged by hand, outputting region IDs as the file names.
* setup selenium
* selenium opens a link related to each elevation-map of a specific biome, and saves the text links
(so I dont have to hand-open them)
* I'll save the species and text by hand (assuming elevation data isn't listed)
* once I have a list of species and other details, to save them to csv, or json, or another format
* I save the list of species as csv or json or another format.
* then selenium opens this list, opens wikipedia for each, one at a time, and searches the text for elevation
* selenium saves out the species name (or an "unknown") for the species, and elevation, to a text file, along with the biome ID, and maybe the elevation code (from the heightmap) as a number or a color (probably a number, simplifies changing the heightmap later on)
Having done all this, I can start to assign species types, specific world tiles. The outputs for each region act as reference.
The only problem with the existing biome map (you can see it below, its ugly) is that it has a lot of "inbetween" colors. Theres a few things I can do here. I can treat those as a "mixing" between regions, dictating the chance of one biome's plants or the other's spawning. This seems a little complicated and dependent on a scraped together standard rather than actual data. So I'm thinking instead what I'll do is I'll implement biome transitions in code, which makes more sense, and decouples it from relying on the underlaying data. also prevents species and terrain from generating in say, towns on the borders of region, where certain plants or terrain features would be unnatural. Part of what makes an ecoregion unique is that geography has lead to relative isolation and evolutionary development of each region (usually thanks to mountains, rivers, and large impassible expanses like deserts).
Maybe I'll stuff it all into a giant bson file or maybe sqlite. Don't know yet.
As an entry level programmer I may not know what I'm doing, and I may be supposed to be looking for a job, but that won't stop me from procrastinating.
Data wrangling is fun.
1 -
-> Had to remap all api endpoints on the backend...
-> The system architect raised a critical bug, saying he can't delete reports from the GUI even though the back-end is returning HTTP 200 (for now, say we also save some sort of reports in our DB)...
-> While remapping, I had returned get in the delete call xD
-> He thanked me for not doing the other way round, delete function in get call xD1 -
Fuck SAP!
I honestly can’t understand how anyone considers SAP a good ERP software. Either they’re brain-dead, or they actually enjoy the mind-numbing, repetitive work that turns them into the top rat in the race. AAAAAAAAAHHH!!!!
It’s an inconsistent mess—counterintuitive, clunky, and filled with absurd navigation and unnecessarily complicated database links.
And when people praise it like it’s some divine gift to humanity, I can’t help but wonder just how miserable their real lives must be.
There are some list views where you get to something you want, if there is some incomplete data in the list.
There’s a "POSITION" button to help you find what you need—but not everywhere.
Some fields require you to save at a certain step, while others don’t, leaving you to realize halfway through the next step that you forgot to save something.
Want to cancel halfway through? Too bad. You’re stuck unless you TCode your way out—because YOU HAVEN’T FILLED ALL THE FIELDS.
Every option, and its cousin, has a separate TCode.
Even for a simple concept, you need to memorize five different TCodes, create five similar-sounding tables, link them together, and at some point, connect one of them to company data—even if there’s only one company.
Why is it so complicated?! And don’t tell me “it has a lot of modules”—that’s not an excuse. Every menu is complicated on its own.
Instead of designing a logical workflow, they just wing it, throwing in sub-options as they go, then expect the end user to figure out how to link everything together.
Why not take a top-down approach—link all company-related data in one place while still allowing independent options to be linked elsewhere if needed?
I mean, you can’t even use Ctrl+Backspace to delete a word. The UI is that fragile.
And then I remember—it’s German software. That kinda explains it.
Speaking of which, the TCodes—the backbone of the system—are still based on German, even though the entire software is in English.
So the rest of the world is stuck trying to memorize bullshit codes with no logical reference.
FUCK ANYONE WHO SUPPORTS THIS SHIT.4 -
So yesterday at a client location, our support guy called me and said this thing is trimming the characters whenever I save it. It was a ckeditor in our application, so basic troubleshooting was to check the system configuration for that page and the ckeditor configuration.
Checked the system configuration, ckeditor configuration, found nothing.
Out of curiosity, checked the schema for the table in which the data is stored, so one of the idiots took the backup of original table and appended it with the date time on which it was backed up. And created a new table with field data type of varchar with a 255 limit.
This was in UAT server as well as Production server. Changed the field type to text again in UAT. Asked to team to get the same thing done on Production server as well. -
Alright got an idea I have for my game engine that I'd love some input on...
So the engine has emphasis on user made content and openness to that content (EG. open source dev tools and no licencing of art) but I also want to try and build a basic ecosystem with the engine and one way I'm doing it is with cross game mods (Take a mod from one game and drop it in another and it just works... Famous last words) but something I want to try is a companion app for the engine itself...
So it'll have a custom written save system baked in engine to make progress saving and the like simpler for the end user, thinking about building an app for smart watches and phones that would connect to the engine and actually back up and sync local saves to the app and vice versa as long as they have a connection (Hotspot your phone, bluetooth or wifi) but allow you to manage some data within the app by building a basic API to let devs show the user information about the save and the game by adding description, thumbnails to distinguish games and the like...
Just want opinions if it may be a good idea to invest some time into and if anyone has idea's that could make it better.6 -
A lot of companies are developing systems to improve the way we interact with retail stores.
Most popular trend is having no cashiers.
Can't wait for a simple and affordable system that can easily be installed at any store.
Minimize teft, save time and no judgement from cashiers. Need I say more?1 -
Random thoughts on more out of the box tools/environments.
Subject: Pharo
Some time ago I had shown one of my coworkers about Pharo and he quickly got the main idea behind it but mentioned how he didn't like the idea of leaving behind his text editor to deal with source code.
Some time last week I showed the dude some cool 3d animations you can do with Pharo while simultaneously manipulating the code to change them in real time. Now that caught his attention particularly and he decided he wanted to know more about the language but in particular the benefits of fucking around with an image based environment rather than a file based.
Both of us reached the conclusion that image based makes file based dev enviroments seem quaint in comparison, but estimated that it was nothing more than a sentiment rather than a fact.
We then considered what could be the advantage/disadvantages of such environments but I couldn't come up with anything other than the system not having something like Vim or VS Code or whatever which people love, but that it makes up for it with some of the craziest IDE tools I had ever seen. Plugins in this case act like source code repos that you can download and activate into your workflow in what feels something similar to VS Code being extended via plugins written in JS, and since the GUI is maleable as it is(because everything is basically just subsets of morp h windows) then extending functionality becomes so intuitive that its funny
Whereas with Emacs(for example) you have to really grind your gears with Elisp or Vimscript in Vim etc etc, with Pharo your plugin system is basicall you just adding classes that will convert your OS looking IDE into something else.
Because of how light the vm machine is, portability is a non issue, and passing pharo programs arround is not like installing Java in which you need the JVM.
Source code versioning, very important, already integrated into every live environment and can be extended to do pushes through simple key bindings with no hassle.
I dunno, I just feel that the tool is too good to be true. I keep trying to push limits into it but thus far I have found: data visualization and image modeling to work fine, web development with Teapot to be a cakewalk and work fine, therr are even packages for Arduino development.
I think its biggest con would be the image based system, but would really need to look into how this is bad by any reason other than "aww man I want vim!" since apparently some psychos already made Emacs and VS code packages for interfacing with Pharo source trees.
Embedded is certainly out of the question for any real project since its garbage collected and not the most performant cookie in the jar.
For Data science I can see some future, seems just as intuitive and interesting as a Jupyter Notebook actually, but the process can't and will not be the same since I still don't know of a way to save playground snippets unless you literally create classes for it, in which case every model you build gets saved inside of an object, sounds possible but, strange since it is not a the most common workflow in jupyter.
Some of the environment is sometimes glitchy, but it does have continuos development and have not found many hassles.
There is a biased factor from my side: I seem to be wired to understand the syntax and simple object model better than in other languages. To me this feels natural as if I was just writing ideas rather than code, mostly because I feel that there really ain't much in terms of syntax, the language gets out of my way and the IDE feels like the most intuitive environment in the world to me. I can see why some people would find it REALLY weird of counterintuitive tho.
Guess I really am a simple dude. -
I'm thinking about creating a central login system for all my websites, where you get redirected to and then login/sign up and then be redirect back. A bit like oAuth.
I have a few websites (and more in development) that use a login system, so that could be really useful to have... Especially because all of them are built from scratch and have their pros and cons. And security wise it's easier to concentrate on one system instead of all of them.
Another benefit is that you save some DB space, if you have lots of users!
And of course the users benefit from it as they'll be able to use all my websites with a single account.
What do you think about it?
I'll still need to do a bit of research on security but other than that, I only see benefits!2 -
Okay new Rant
INSERT TRIGGER WARNING HERE
OSX still sucks I have been using the bloody darn thing for last 8 months still I found things that are obnoxiously trivial missing.
Latest incident I was trying to plug in my android phone(soft bricked) in recovery mode and I had to push a file with ADB (i save this mutherfuker for another day). So back to the original topic now I plug it in and but turns out it doesn't recognize my device now as a preliminary check I decide to check my USB cable and my DONGLE both seem to be working fine now I try rebooting back into recovery. Now after scrapping the internet for a few hours I find that this problem is caused because sometimes due to a recurrent bug in OSX the operating system sometimes fails to recognize the difference in between directories "Adam"(just an example) and "adam" which in turn can interfere with some of the flags used while checking if a device might be connected.
I mean this is fucked why the fuck can you not simply use your device as an external storage that would have made the process easier by a fucking lot.
I think the people at Apple are going the destroy a UNIX powerhouse just to make their OS more CUPCAKE friendly.
And all of this is in addition to the problems with AFS.
I just wish I had not bought mac for development5 -
How to View Writing Documentation as a Developer
You finally have the time to sit back and tell the world (or your team) the amazing system you built over the last month and how use it to save everyone's asses a whole lot of time.
... While watching everyone else running around like headless chickens.
... But then again you've been heads down coding for the last month... -
(I'm not completely sure of what I'm saying here, so don't take this too seriously)
Settling on a language to write the api for ranterix is hard.
I'm finding a lot of things about elixir to be insanely good for a stable api.
But I'm having a lot of gripes with the most important elixir web framework, phoenix.
Take a look at this piece of code from the phoenix docs:
defmodule Hello.Repo.Migrations.CreateUsers do
use Ecto.Migration
def change do
create table(:users) do
add :name, :string
add :email, :string add :bio, :string
add :number_of_pets, :integer
timestamps()
end
end
end
Jesus christ, I hate this shit.
Wtf are create, add and timestamps. Add is somehow valid inside the create, how the fuck is that considered good code? What happens if you call timestamps twice? It's all obscure "trust me, it works" code.
It appears to be written by a child.
js may have a million problems. But one thing I like about CJS (require) or ESM (import) is that there's nothing unexplained. You know where the fuck most things come from.
You default export an eatShit() function on one file and import it from another, and what do you get?
The goddamn actual eatShit function.
require is a function the same way toString is a function and it returns whatever the fuck you had exported in the target file.
Meanwhile some dynamic langs are like "oh, I'll just export only some lang construct that i expect you to specify and put that shit in fucking global of the importing file".
Js is about the fucking freedom. It won't decide for you what things will files export, you can export whatever the fuck you want, strings, functions, classes, objects or even nothing at all, thanks to module.exports object or export statement.
And in js, you can spy on anything external, for example with (...args) => debugger; fnToSpyOn(...args)
You can spoof console.log this way to see what the fuck is calling it (note: monkey patching for debugging = GOOD, for actual programming = DOGSHIT)
To be fair though, that is possible because of being a dynamic lang and elixir is kind of a hybrid typed lang, fair enough.
But here's where i drop the shit.
Phoenix takes it one step further by following the braindead ruby style of code and pretty DSLs.
I fucking hate DSLs, I fucking hate abstraction addiction.
Get this, we're not writing fucking poetry here. We're writing programs for machines for them to execute.
Machines are not humans with emotions or creativity, nor feel.
We need some level of abstraction to save time understanding source code, sure.
But there has to be a balance. Languages can be ergonomic for humans, but they also need to be ergonomic for algorithms and machines.
Some of the people that write "beautiful" "zen" code are the folks that think that everyone who doesn't push the pretty code agenda is a code elitist that doesn't want "normal" people to get into programming.
Programming is hard, man, there's no fucking way around it.
Sometimes operating system or even hardware details bleed into code.
DSLs are one easy way to make code really really easy to understand, but also make it really fucking hard to debug or to lose "programming meaning".7 -
Hello wonderful people out there, I need some career advice and would really appreciate your help in deciding. I am sure you have perspectives and opinions that may not even have crossed my mind.
I am a Full Stack Dev with 9 years of experience. I got two overseas opportunities, one in Bucharest, Romania and the other one in Mississauga, Canada.
Now according to my research:
+ives in Romania:
> Role is good
> Low cost of living
> Money is good and company also provides 2 bed accommodation
> Access to Europe
> Is approx 8 hours far away from my country of origin
-ives in Romania (just as per my internet research when compared to Canada)
> Healthcare is not the great
> Scores low on standard of life and quality index
> Not sure I can think of settling down there
+ives in Canada
> No Language barriers
> Ample amount of opportunities in the long run
> Can strongly think of settling down there
> Scores really high in standard of life and quality index
> Strong healthcare and education system
-ives in Canada
> Living expenses are fuckin high
> Money initially is not that great and won't be able to save enough for my future goals
> Is approx 28 Hours far from my country of origin
Which one would you choose and if you can please mention why?11 -
The only thing worse than client QA is client vendor QA.
I do QA for a company that does custom implementations of a major e-commerce platform. On one of my current projects, the customer has elected to outsource their UAT, and isn't willing to wait for the site (or even individual features) to be complete before starting testing, so I've been triaging a lot of silly tickets. But today took the cake.
This system allows users to save their credit card info. The vendor QA guy filed a ticket "reporting" that if he saved a cc with a given number, then created a new cc record with the same number but a different expiration date, the original record was overwritten, rather than a new record being created.
I just stared at the thing for like five minutes, gathering the mental strength to reply with something other than "you're an idiot."3 -
Statically linking to qt5 is quickly driving me fucking insane.
I've a list of unresolved dependencies during linking longer than a really long fucking list. Ugh.
Cmake, why can't you save me?
Think I'll just go back to dynamic and build on each needed system.1 -
So my non-tech manager has started doing all the estimates for us developers on features upon high management request to save time, because of course rushing all the estimates for the work to be done in the next 6 months is the best process in software engineering.
All the estimates are based on previous work. Sometimes it will be accurate, but most of the time it is absolutely not.
So I get a task estimated to 3 weeks but I planned for 5. Just fit it in 3 weeks.
I planned for 2 weeks but the original estimate is 5. Just fit it in 5.
What kind of crap is that lol? What is the point of us estimating work if management knows apparently better than us how to design systems?
You guys got any similarly shitty project management system?1 -
I generally do not like google for many reasons, but if they added this feature to android "disable app notifications by default", I would love and kiss them to death.
Notifications these days are just about the most abhorrent feature of smart phones. I have never owned an iPhone so cannot say anything about that, but on Android its just bad. The system itself is good, but its being misused by developers. Today I checked out this app called "CPU Cooler", its one of those apps that tricks people into believing they should close apps in order to save battery life. Anyways, I opened it, I "cleaned my phone" and closed it. About an hour later I got this notification "heeey, you haven't cleaned your phone in a while".
Fuck off, uninstalled.
If it ever becomes socially acceptable, I would buy a Nokia brickphone in a heartbeat. My cousin said we would be much better off without smartphones and he is (possibly) absolutely right.9 -
To add references between projects (build units like DLLs or EXEs) within a Visual Studio solution, you need to open a popup from the context menu on a child node of the referring project in the VS solution tree, the child node set and the context menu have a different layout depending on whether that project follows the 2021 dependency system. The popup freezes VS so you can't keep it around, and it does six other things related to dependencies, except for NuGet which for some reason masquerades as an editor tab instead (equally inconvenient for different reasons). In the popup you tick checkboxes in a massive list of every project in the solution, then you close it. This doesn't save the changes and there's no explicit way to save changes to a csproj file because VS manages csproj files and presents them exclusively as visual forms. You can save either by "Save All", or by unloading the project which prompts you about unsaved changes and then reloading it to be able to actually initiate a build it's included in.1
-
!rant
I had that installation of windows 3 to 4 years now.
I'm using a third party software for backup so everyday at 23:00 the backup service starts. The image is stored on a second HDD.
First i want to point out that i set up the windows maintenance around that time too. So any updates should occur then and i remember finding my PC at login screen couple of times meaning a restart had taken place.
Everything was fine all this time.
Couple of days ago i returned home late around 2 am to find a blue screen saying that the computer did not boot property the last time. Had two options, just restart or try to fix.
Of course i will fix it, come on.
Everything failed. Everything. Even safe mode won't boot.
Who cares i have the back up system image. Boot from the bootable usb stick and restore. Well nothing is happening. It's just freezing at 5%. Cancel. Try again. Cancel. Verify the image. Success! Try again! Nothing.
Damn. Im really tired, off to bed.
Woke up tried fixing and restore but to no avail.
Fuck it i will just install Windows fresh. I was set up after an hour or so installed the necessary drivers and such. Let's see that image of any file i want to get back.
Image is corrupted. What the fuck? How? Damn it. Mount and recovery also failed.
That's it. I did not lose any important files. I save everything on a different drive and also the backup.
But I'm wondering what had gone wrong.
My guess windows rebooted when the backup was running. If that's the case shouldn't be a check if such service is running?2 -
Hire are a few tips to up productivity on development which has worked for me:
1) Use a system of at least 16gb ram when writing codes that requires compilation to run.
2) Test your code at most 3 times within an hour. This will combat the bad habit of practically checking changes on every new block you write.
3) Use internet modem in place of mobile hotspot and keep mobile data switched off. This will combat interruptions from your IM contacts and temptations to check your WA status update when working.
4) Implementation before optimisation... This is really important. It's tempting to rewrite a whole block even when other task are pending. If it works just leave it as is and move on to the next bull to kill, you can come back later to optimise.
5) Understand that no language is the best. Sometimes folks claim that PHP is faster than python. Okay I say but let's place a bet and I'll write a python code 10 times faster than your PHP on holiday. Focus more on your skill-set than the language else you'd find yourself switching frameworks more than necessary.
6) Check for existing code before writing an implementation from scratch... I bet you 50 bucks to your 10 someone already wrote that.
7) If it fails the first and then the second time... Don't try the third, check on StackOverflow for similar challenge.
8) When working with testers always ask for reproducible steps... Don't just start fixing bugs because sometimes their explanation looks like a bug when other times it's not and you can end up fixing what's never there.
9) If you're a tester always ask for explanations from the dev before calling a bug... It will save both your time and everybody's.
10) Don't be adamant to switching IDE... VSCode is much productive than Notepad++. Just give it a try an see for yourself.
My 10 cents.1 -
Previously, I half-assedly theorized that, given a timeline on which I'd store state mutations, with each mutation being an action taken ingame by either the player or computer, I could feasibly construct a somewhat generative narrative engine.
Basis: the system reads the current state, builds [some structure] holding possible choices, and prompts the player to take an action from those choices. The action modifies the state, and the loop begins anew, save that now it's the system "prompting itself", so to speak.
Utterly barebones and abstract as it may be, it was useful to build this concept in my head as it gave me a way to reason about what I wanted to build. But there were two problems which I had to grapple with:
- What would [some structure] even be?
- How would the computer make choices based on an instance of [some structure]?
I found myself striking the philosopher pose for long hours on the toilet, deeply pondering these questions which I couldn't help but merge into one due to the shared incognita; silly brain wanted trees but I kept figuring out that's not going to work as the relationships between symbols are sometimes but not always hierarchical. Shhh, silly brain, it's not trees.
So what is the answer?
Well, can you guess it?
Graphs, of course it's fucking graphs. Specifically, a state transition graph. It was right in my face the whole time and I couldn't see it. Well, close enough.
It's ideal as the system in question is a finite state machine with strong emphasis on finite -- the whole point is narrowing down choices, which now that I think about it, can also come down to another graph. Let me explain.
A 'symbol' or rather SIGIL is an individual in-game effect. To this FSM, it's an instruction. Sigils are used to compose actions, which you can think of as an encapsulation of some function, or better yet, an *undoable transaction* which causes some alteration in the game world.
But to form a narrative from a sequence of such transactions, and to allow the system to respond to them coherently, relationships need to be established between sigils in a manner that can be reasoned about in code. You may not realize this yet but this is both a language processing and text generation problem, so fuck me.
However, we have a big advantage in that we are not dealing with *natural* language, that is to say, each sigil is a structure from which we can extract valuable information on the nature of the state transformation applied.
This allows us to find relationships between sigils programmatically: two words are related if some comparison between the underlying structure -- and the transformation it describes -- holds true. Therefore, if we take the sigils that compose the last transformation in the timeline, fetch relationships for said sigils according to a given criteria, then eliminate all immediate relationships that are not shared between all members of the group, we end up with a new one that can be utilized as starting point to construct a reply.
More elimination of possibilities would have to be performed as this reply is constructed [*], but the point is that because the context (timeline) is itself made of previous transforms, the system *could* make such a reply coherent, or at the very least internally consistent.
Well... in the world of half-assed theory. I don't know whether I'm stupid, insane, both, pad for alignment, or this is an actual breakthrough. Maybe none of the above.
Anyway, it's another way to mentally model the problem which is very useful. New challenge would be the text generation part, extremely high chance of gibberish within existing vision; need more potty-pondering.
[*]: I'll break it into bits OK.
0. Determine intention. That's right, the reply isn't actually _fully_ generated, it's just making variations on a template. So pick a template depending on who is taking a turn and replying to who (think companion relationship score bullshit)
1. Sort the new group according to the number of connections the constituent sigils had to the context from which they were extracted, higher first.
2. Pop from the sorted group (least connections). If there are other nodes left in the group, and it doesn't connect back to any of the other nodes (sigils) up to a certain distance, then discard it and repeat. Else keep going.
2. Unshift from the sorted group (most connections). If can traverse up to another sigil in the same group, then go for it. Else derive search criteria from current context (including intention), so as to look for another sigil to concatenate. Some form of weighting would be needed here, need to think about that.
3. Decide when to stop. Probably some chance, as in the more sigils you have, the lower the chance a new one will be added maybe. Need to think about this too.
4. Send transform, loop begins anew.
And that's it. So alright brb I'm going to take a dump on the Agora.14 -
I need to change how payments are applied to invoices.
ApplyPolicyPayments() looks promising! Make changes to the method to look at the bills in order of the invoice due dates.
Run a test on the DEV environment, and the system is still exhibiting the same bug.
At this point, I wrote a quick logging plugin that I could attach to the DLL and start telling me what is going on.
Turns out, payments are actually applied in a method named BalancePolicy(). So what does ApplyPolicyPayments() do? It DOES apply payments to bills, but then just doesn't save the work. Having it commit the transactions breaks the billing system. FML. -
I work in a small team. As the senior dev I tens to focus on important tasks that shape the core of the product but some times I can’t divide my self when there are multiple tasks at hand, so I pass some tasks to the an other mid level dev.
So the task was to create an automation in order to CD (continuously deliver) an order from WHMCS of the (git versioned) product to customers UAT, PROD envs.
To get a background this is an old guy with “constricted” experience in PHP/jQuery/Joomla/Wordpress.
So when we were breaking up the tasks he told me he would like to implement this so i gave him the task as i was busy with core features.
I was like what could go wrong? I know he doesn’t know much about CI/CD but he can read right? He will google right? He will search for CI/CD solutions that do this out of the box right? He will design on paper or what ever and do small POCs right? He will design the flow first before starting the implementation right? RIGHT?
So fast forward to today I had a call with him this morning about some DB staff. And he wanted to show me his progress…
His solution is:
(parentheses is my brain)
1. Customer completes WHMCS order (perfect)
2. Web Hook 🪝 action (YES)
3. cpanel gets source and “automatic!” Init, all using pure PHP code ignoring the usage of the current framework (ok… something is missing)
4. cpanel web hooks(?) WHMCS to send email to customer with the envs initial setup page(?)
5. Customer opens link and adds setup info (ok fuck, fuck, fuck)
(Ok stay cool composed, lets ask some questions maybe he thought it all in a cool way I can’t get my mind around)
Me: So how are you gonna get the correct version from the repo to the env and init the correct schema?
Dev: I haven’t thought about it yet.
Me: Are we gonna save each version to a file system then your code is going to fetch them?
Dev: I haven’t really thought about it we will see. But look on customer init user setup I implemented a password strength validation and it also checks if the password is the same.
So after this Pokémon encounter I politely closed teams. Stood up drank some (a lot) coffee ☕️. Put out the washed laundry while reflecting on life’s good things, while listening to classical music 🎼 .
Then I sat on my office chair drank some more coffee, put some linking park starting with in that order:
“Numb” then “What I’ve Done” and ended with “In the end, it does really fucking matter” -
Recieving orders through mails.
PHP IMAP, fetch info, and save those orders in the ERP system.
Is this even a good idea? 😱1 -
Agency adventures: Client always asking for bespoke hardcoded changes in the system. They want to save budget, so you suggest to make a admin screen for that frequent change so they can manage themselves and not pay you to do. You make that. Client keep creativity on top levels, asking for changes not supported by the new feature and that still have to be hardcoded.
Now, after the time estimates, they kindly ask: "can't you use that admin page to speed up your work?". -
So, do any of your poor fuckers have the opportunity - nay, PRIVILEGE of using the absolute clusterfuck piece of shit known as SQL Server Integration Services?
Why do I keep seeing articles about how "powerful" and "fast" it is? Why do people recommend it? Why do some think it's easy to use - or even useful?
It can't report an error to save its life. It's logging is fucked. It's not just that it swallows all exceptions and gives unhelpful error messages with no debugging information attached, its logging API is also fucked. For example, depending on where you want to log a message - it's a totally different API, with a billion parameters most of which you need to supply "-1" or "null" to just to get it do FUCKING DO SOMETHING. Also - you'll only see those messages if you run the job within the context of SQL FUCKING SERVER - good luck developing on your ACTUAL FUCKING MACHINE.
So apart from shitty logging, it has inherited Microsoft's insane need to make everything STATICALLY GODDAMN TYPED. For EVERY FUCKING COMPONENT you need to define the output fields, types and lengths - like this is 1994. Are you consuming a dynamic data structure, perhaps some EAV thing from a sales system? FUCK YOU. Oh - and you can't use any of the advances in .NET in the last 10 years - mainly, NuGet and modern C# language features.
Using a modern C# language feature REMOVES THE ABILITY TO FUCKING DEBUG ANYTHING. THE FUCKER WILL NOT STOP ON YOUR BREAKPOINTS. In addition - need a JSON parsing library? Want to import a SDK specific to what you're doing? Want to use a 3rd party date library? WELL FUCK YOU. YOU HAVE TO INDEPENDENTLY INSTALL THE ASSEMBLIES INTO THE GAC AND MAKE IT CONSISTENT ACROSS ALL YOUR ENVIRONMENTS.
While i'm at it - need to connect to anything? FUCK YOU, WE ONLY INCLUDE THE MOST BASIC DATABASE CONNECTORS. Need to transform anything? FUCK YOU, WRITE A SCRIPT TASK. Ok, i'd like to write a script task please. FUCK YOU IM GOING TO PAUSE FOR THE NEXT 10 MINUTES WHILE I FIRE UP A WHOLE FUCKING NEW INSTANCE OF VISUAL STUDIO JUST TO EDIT THE FUCKING SCRIPT. Heaven forbid you forget to click the "stop" button after running the package and open the script. Those changes you just made? HAHA FUCK YOU I DISCARDED THEM.
I honestly cant understand why anyone uses this shit. I guess I shouldn't really expect anything less from Microsoft - all of their products are average as fuck.
Why do I use this shit? I work for a bunch of fucks that are so far entrenched in Microsoft technologies that they literally cannot see outside of them (and indeed don't want to - because even a cursory look would force them to conclude that they fucked up, and if you're a manager thats something you can never do).
Ok, rant over. Also fuck you SSIS1 -
Right, budget constraints, in out project. Shop site. Lets go with a good online shop system (shopwired) and just brand up a suitable theme. Client wants to see design flats prior to starting. OK brief designer. Pick one of the themes that is close to their current brand styling. Grab the theme pages, set your browser to 1280. Mock up over the top with brand colours/fonts etc in Indesign and png the pages over to me (make sure we have them on google fonts). Designer comes back a few days later with branded up theme page visuals. Cool, they look great, shouldn’t take too long to rework the css and get this thing working. Client approves mockups. Great, so open the theme files and realise the designer has fucking moved stuff around. This has turned into something more than a styling job. Fucking hell. there goes my budget and deadline. Why don’t you designers ever fucking listen!!!!!
I should’ve done it myself but needed to save time as I’m already busy. Fuck, fuck, fuck, fuck, fuck, fuck, fuck! -
It often feels like the logic and the equivalent final application code have nothing to do with each other.
Logic: Find the only element in this list that matches criterion, or the first element in this other list, or none. If the first list has multiple matches, fail.
Application: Produce information about the criterion checks for all elements in both lists for info logging. Find any elements in first list that match. Save the number of matches for an optimization that relies on a lot of assumptions about the search criterion that are only ever expressed in doc text. If one, return, if multiple, fail. Otherwise find first match in second list, produce debug hint on why the preceding elements in that list didn't match by aggregating the criterion check info. If multiple matched in second list, check highly specific interdependency, and if absent, produce warning about ambiguity. Return first match if any.
The first can be beautifully expressed as a 5 line iterator transform. The second takes 3 mutable arguments (cache, logger, criterion because it also may cache and log), must compute everything eagerly and has constraints that are neither strictly necessary for a correct implementation nor expressible in the type system.1 -
Need ya help
i can't figure it out. i am working on a q&a webpage and i want to make an upvote/downvote system.
How or what should i use to save when a user upvotes a question on a database without needing to refresh the page.
I have no ideea ><
PS: as backend i use php and mysql for the database3 -
Expert Garage Door Service: Professional Garage Door Tune-Up in Scottsdale, AZ
Your garage door plays a crucial role in the safety and functionality of your home or business. It’s one of the most frequently used parts of your property, and over time, regular use can cause wear and tear on its components. To ensure that your garage door remains in top working condition, it’s essential to have it properly maintained with a garage door tune-up. At Expert Garage Door Service, we provide expert garage door tune-up services in Scottsdale, AZ, and the surrounding areas. Our goal is to keep your garage door operating smoothly, extend its lifespan, and prevent costly repairs down the road.
What Is a Garage Door Tune-Up?
A garage door tune-up is a comprehensive service that involves inspecting, cleaning, and adjusting various components of your garage door system. Regular tune-ups are essential for maintaining optimal performance and ensuring that all parts of your garage door are functioning correctly. Just like a car needs regular oil changes and maintenance, your garage door requires periodic inspections and adjustments to keep it running smoothly.
Why Is a Garage Door Tune-Up Important?
There are several key reasons why a garage door tune-up is an essential service for your home or business:
1. Prevent Unexpected Breakdowns
A garage door tune-up helps identify potential issues before they become major problems. By catching issues early, such as worn-out springs or misaligned tracks, you can avoid costly repairs or complete system failure. Regular maintenance ensures that your garage door operates smoothly and reliably for years to come.
2. Extend the Lifespan of Your Garage Door
With routine tune-ups, your garage door and its components will last longer. By keeping springs, cables, tracks, and openers in good condition, you can delay the need for replacements and save money on long-term repairs. A well-maintained garage door can last anywhere from 15 to 30 years, depending on the quality of the system and how well it is cared for.
3. Enhance Safety and Security
A malfunctioning garage door can be a safety hazard. Worn-out springs or cables can lead to the door unexpectedly falling, which could cause injury or property damage. A garage door tune-up ensures that all safety features, such as auto-reverse functions and sensors, are working correctly, protecting both your family and your property.
4. Improve Performance
Regular maintenance ensures that your garage door operates efficiently. A well-tuned system runs more quietly, opens and closes more smoothly, and uses less energy. If your garage door is noisy or struggles to open, a tune-up can often resolve these issues, making your door work like new.
5. Increase Energy Efficiency
If your garage door isn’t sealed properly or its insulation is damaged, it can cause energy loss. A tune-up includes checking the seals and weather stripping around your door to ensure it’s properly insulated, helping you save on energy bills by keeping your home better protected from outdoor temperatures.
What Does a Garage Door Tune-Up Include?
At Expert Garage Door Service, we provide a thorough and detailed garage door tune-up that includes the following:
1. Visual Inspection
Our technicians will perform a complete visual inspection of your garage door system, looking for any signs of wear or damage. We check the tracks, springs, cables, rollers, and other components to identify any potential issues.
2. Lubrication of Moving Parts
We apply high-quality lubricants to the moving parts of your garage door, such as the rollers, hinges, and springs. Lubricating these components reduces friction, prevents premature wear, and ensures smoother operation.
3. Spring and Cable Tension Adjustment
Proper spring tension is essential for the safe operation of your garage door. We’ll inspect the springs and cables and make any necessary adjustments to ensure they’re properly tensioned. This helps maintain balanced operation and prevents unnecessary strain on your opener and other components.
4. Track Alignment and Adjustment
Misaligned tracks can cause your garage door to move unevenly or get stuck. We’ll inspect and adjust the tracks to ensure they’re properly aligned, which will keep your door moving smoothly without resistance.
5. Opener Adjustment
Your garage door opener is the heart of the system. During a tune-up, we’ll inspect the opener and adjust its settings to ensure it operates at peak performance. This includes checking the force settings, travel limits, and safety features.
1 -
Infinite Auto Care: Expert Car Maintenance and Professional Auto Care in Ottawa
At Infinite Auto Care - Detailing and Automotive Services, we understand how important it is to keep your vehicle in optimal condition. Whether you're driving around Ottawa or heading out on a long road trip, regular car maintenance in Ottawa is essential for safety, performance, and the longevity of your vehicle. Our team of experts provides professional auto care in Ottawa, offering a comprehensive range of services to ensure your vehicle runs smoothly and stays reliable.
Located at 8 Rue Mitchell, Gatineau, QC J8P 2A5, we proudly serve Ottawa and surrounding areas, providing top-quality auto care that you can trust.
Car Maintenance Ottawa: Keeping Your Vehicle in Top Shape
Regular car maintenance in Ottawa is key to preventing costly repairs down the road. At Infinite Auto Care, we offer a full range of maintenance services designed to keep your car running efficiently and safely. Whether you're due for a routine oil change, brake inspection, or tire rotation, our professional team is here to help.
Why is Regular Car Maintenance Important?
Enhanced Safety: Properly maintained vehicles are less likely to experience breakdowns or accidents due to worn-out parts or poor performance. Regular maintenance helps ensure that your car’s braking, lighting, and engine systems are functioning properly.
Improved Fuel Efficiency: Well-maintained vehicles run more efficiently, which can save you money on fuel. A simple oil change or air filter replacement can help your car perform better and consume less gas.
Longer Vehicle Life: Regular care and maintenance can extend the lifespan of your vehicle, keeping it in service for many years to come.
Avoid Expensive Repairs: Small issues, if caught early, can often be resolved at a fraction of the cost of major repairs. Preventive maintenance is always more cost-effective than reactive repairs.
Our Car Maintenance Services in Ottawa Include:
Oil Changes: We offer high-quality oil change services using premium oils and filters, which are essential for keeping your engine clean and lubricated.
Tire Rotation and Balancing: Ensuring that your tires are properly balanced and rotated helps improve tire lifespan and driving safety.
Brake Inspections: Brakes are vital to your safety. We inspect and service your brake pads, rotors, and fluids to ensure optimal performance.
Fluid Top-ups and Replacements: We check and replenish essential fluids such as brake fluid, transmission fluid, power steering fluid, and coolant to ensure your car runs smoothly.
Battery Checks: A dead battery can leave you stranded. We provide battery testing and replacement to ensure your vehicle is ready to start every time.
Air Filter and Cabin Filter Replacement: Clean filters improve your vehicle's engine performance and provide better air quality inside your car.
Professional Auto Care Ottawa: Comprehensive Services for Your Vehicle
At Infinite Auto Care, our mission is to offer professional auto care in Ottawa that covers every aspect of your vehicle's needs. Our experienced technicians use the latest diagnostic tools and the highest-quality products to ensure your vehicle receives the best care possible.
Our Professional Auto Care Services Include:
Engine Diagnostics: If your check engine light comes on, our team performs a thorough diagnostic to determine the root cause of the issue. We then provide clear recommendations to fix the problem and prevent future issues.
Exhaust System Services: Your exhaust system is crucial for reducing harmful emissions and maintaining engine performance. We offer inspection, maintenance, and repair services to keep your system functioning optimally.
Transmission Services: Whether it’s a fluid flush or a complete transmission repair, our technicians have the expertise to keep your transmission shifting smoothly.
Suspension Services: Your suspension system ensures a comfortable and safe ride. We offer suspension inspections and repairs to keep your car's handling and ride quality at their best.
Custom Services: For those who want to enhance their vehicle’s appearance or performance, we offer customization services, from body kits to performance upgrades.
Why Choose Infinite Auto Care for Car Maintenance and Auto Care in Ottawa?
When it comes to car maintenance in Ottawa and professional auto care in Ottawa, Infinite Auto Care stands out as a trusted partner in keeping your vehicle running at its best. Here’s why you should choose us for your automotive needs:
or model.
To schedule an appointment or learn more about our services, contact us today at +1 (819) 386-8114 or visit us at 8 Rue Mitchell, Gatineau, QC J8P 2A5. Let Infinite Auto Care keep your car in great shape with the best auto services in Ottawa!
1 -
HEV-Rescue Hybrid Battery Repair & EV Charging: Reliable Hybrid Car Service in San Diego and Trusted Hybrid Battery Shop in the Inland Empire
At HEV-Rescue Hybrid Battery Repair & EV Charging, we are dedicated to providing expert hybrid vehicle services for customers in San Diego and the Inland Empire. Whether you’re looking for a reliable hybrid car service in San Diego or searching for a hybrid battery shop in the Inland Empire, we are here to provide you with the best hybrid vehicle care and battery solutions. Located at 3235 Production Ave, Oceanside, CA 92058, we serve all of Southern California with high-quality services designed to keep your hybrid vehicle running at its best.
Why Choose HEV-Rescue for Hybrid Car Service in San Diego?
San Diego is a vibrant city with many eco-conscious drivers choosing hybrid vehicles to reduce emissions and save on fuel costs. However, like all vehicles, hybrids require regular maintenance and occasional repairs to ensure they operate efficiently and reliably. At HEV-Rescue, we offer specialized hybrid car service in San Diego, providing everything from battery diagnostics to performance checks for hybrid cars of all makes and models.
Our team of expert technicians has extensive experience working with hybrid systems, and we use the latest tools and technology to ensure your vehicle stays in optimal condition. From routine maintenance to more complex repairs, we offer a wide range of hybrid car services, including:
Hybrid Battery Diagnostics and Repair: If your vehicle is showing signs of battery issues such as reduced fuel efficiency or poor acceleration, we can diagnose and repair the battery to restore its performance.
Hybrid System Inspections: We perform detailed inspections of your hybrid car’s electric and combustion systems, ensuring both components are functioning as intended.
Routine Hybrid Car Maintenance: Regular maintenance is crucial to keeping your hybrid in top shape. We offer oil changes, tire rotations, brake servicing, and more to ensure long-lasting performance.
Choosing HEV-Rescue for your hybrid car service in San Diego means you are getting experienced technicians who specialize in hybrid technology and are committed to providing excellent customer care.
Hybrid Battery Shop in the Inland Empire
If you are in the Inland Empire and need expert hybrid battery care, HEV-Rescue is the hybrid battery shop you can trust. We specialize in hybrid battery repair, replacement, and reconditioning, offering high-quality service to keep your hybrid vehicle performing at its peak. Whether your battery is showing signs of wear or needs a complete replacement, we are here to help.
At our hybrid battery shop in the Inland Empire, we offer a range of services to meet all your hybrid battery needs:
Hybrid Battery Diagnostics and Repair: If your hybrid battery is showing signs of failure, our team will run diagnostics to identify the issue and provide efficient repair solutions.
Hybrid Battery Replacement: If your hybrid battery is beyond repair, we offer high-quality replacement batteries at competitive prices, ensuring your vehicle operates at its best.
Hybrid Battery Reconditioning: In many cases, we can restore your hybrid battery to near-new condition with our battery reconditioning services. This is a cost-effective option for extending the life of your battery without the expense of a full replacement.
Our hybrid battery shop in the Inland Empire is equipped with the latest technology and tools to ensure top-quality repairs and services. We work with a variety of hybrid car models, ensuring that we can meet your specific needs no matter the make or model of your vehicle.
Why Choose HEV-Rescue?
Experienced Technicians: Our team has extensive experience working with hybrid and electric vehicles, making us experts in hybrid car services and battery repairs.
Comprehensive Services: From hybrid car service in San Diego to hybrid battery shop solutions in the Inland Empire, we offer a full range of services to meet your needs.7 -
OMG
LVM
WHAT A PIECE OF CRAP
It's so precious that when it detects an existing mdraid signature, it just *won't* let me create a physical volume over it!
No matter that I run pvcreate with double-force switch.
It doesn't matter that the system doesn't even have a single MD device defined (Which can be easily checked in /proc/mdstat OR by checking the /dev subsystem)
I *hate* commands that are trying to be more clever than the admin sitting behind the keyboard.
Sure, leave this as the default behavior (It could save a lot of people's data I bet), but BLOODY HELL GIVE ME A SWITCH TO OVERRIDE THE CHECK YOU DUMBASS.
I swear... I feel like I'll get a frickin' brain hemorrhage from this "clever tool" -_-"5 -
GTA HVAC Services: Your Trusted Industrial HVAC Contractor in the GTA and Expert Office HVAC Repair in Toronto
At GTA HVAC Services, located at 1277 Wilson Ave, North York, ON M3M 3C6, Canada, we provide high-quality HVAC solutions for both industrial and office environments. As your reliable industrial HVAC contractor in the GTA and specialists in office HVAC repair in Toronto, we are committed to ensuring that your heating, cooling, and ventilation systems operate efficiently, creating a comfortable and safe environment for both employees and clients.
Whether you’re managing a large industrial facility or a small office space, our team of experts is here to provide the HVAC services you need to keep your space comfortable year-round.
Industrial HVAC Contractor in the GTA
As an industrial HVAC contractor in the GTA, GTA HVAC Services has the expertise and experience necessary to handle the unique demands of industrial heating, cooling, and ventilation systems. From manufacturing plants to large warehouses, we offer comprehensive HVAC services to ensure your industrial space runs smoothly and efficiently.
Our Industrial HVAC Services Include:
HVAC Installation: We provide customized installation solutions for large industrial facilities, including energy-efficient heating and cooling systems tailored to meet your specific needs.
Routine Maintenance: To avoid costly downtime and ensure the longevity of your HVAC system, we offer regular maintenance, including filter changes, inspections, and system calibrations.
HVAC Repairs: If your industrial HVAC system breaks down, our team is available to diagnose and repair any issues quickly and efficiently, minimizing disruptions to your operations.
Air Quality Solutions: We also offer air filtration, ventilation, and humidity control solutions to improve air quality and create a safer work environment in industrial settings.
With GTA HVAC Services, you can trust that your industrial HVAC systems will be running at their best, keeping your workers comfortable and your operations on track.
Office HVAC Repair in Toronto
At GTA HVAC Services, we also specialize in office HVAC repair in Toronto, understanding that a comfortable office environment is key to employee productivity and client satisfaction. Whether you’re dealing with heating problems during the winter months or cooling issues in the summer, our team is here to provide fast and reliable repairs to ensure your office remains comfortable year-round.
Common Office HVAC Issues We Repair:
Air Conditioning Problems: If your office air conditioning system isn’t cooling properly, it can create an uncomfortable working environment. Our team provides fast repairs to restore comfort and productivity.
Heating System Failure: When your office heating system breaks down, it can make the space uncomfortable for employees and clients. We offer quick heating repairs to restore warmth during cold weather.
Poor Air Quality: If your office is suffering from poor air circulation, excessive dust, or humidity problems, we can provide solutions such as air purifiers, ventilation repairs, and humidification systems.
Temperature Inconsistency: If certain areas of your office are too hot while others are too cold, we can identify and resolve issues with your HVAC system to maintain a consistent, comfortable temperature throughout the space.
Our expert technicians are well-versed in all aspects of office HVAC systems, and we offer office HVAC repair in Toronto that is fast, effective, and designed to minimize disruptions to your workday.
Why Choose GTA HVAC Services?
Experience with Industrial and Commercial HVAC: Whether you need industrial HVAC contractor services in the GTA or office HVAC repair in Toronto, our team is experienced in handling a wide range of HVAC systems, from large industrial units to office-sized systems.
Fast and Efficient Repairs: We understand the urgency of HVAC repairs, especially in industrial and office environments. Our technicians are committed to providing prompt, reliable service to get your systems back in working order as quickly as possible.
Energy-Efficient Solutions: At GTA HVAC Services, we offer energy-efficient HVAC solutions for both industrial and office spaces, helping you save money on energy bills while reducing your environmental footprint.
Comprehensive HVAC Services: From installation and maintenance to repair and air quality improvements, we offer a full range of services to keep your HVAC systems running smoothly and efficiently.
Serving the GTA
Whether you’re looking for an industrial HVAC contractor in the GTA or need office HVAC repair in Toronto, GTA HVAC Services is here to help. We provide reliable, professional HVAC services for a wide range of commercial and industrial applications, ensuring that your space stays comfortable, safe, and productive year-round.
8 -
Signify Solar Services: Affordable Solar Panel Cleaning for Homes
At Signify Solar Services, we understand the importance of maintaining your solar panels to ensure they are running at their highest efficiency. Whether you're noticing that your solar panels are not producing enough power, wondering should I clean my solar panels at home, or simply seeking affordable solar panel cleaning for homes, our team is here to help. We proudly serve homeowners in Canoga Park, Woodland Hills, Simi Valley, and surrounding areas with top-quality cleaning services designed to restore and maintain your solar system's performance.
Why Solar Panel Cleaning is Essential for Homeowners
Solar panels are a significant investment for homeowners looking to save on energy bills and reduce their environmental impact. However, over time, solar panels can accumulate dirt, dust, bird droppings, and other debris. This can block sunlight, reducing the panels' ability to generate power. If you're experiencing solar panels not producing enough power, cleaning may be the solution.
At Signify Solar Services, we offer affordable solar panel cleaning for homes, ensuring your panels are free from any obstacles that could be hindering their performance. Regular cleaning helps increase the efficiency of your solar system, ensuring it continues to operate at its best for years to come.
Should I Clean My Solar Panels at Home?
You might be asking, "Should I clean my solar panels at home?" While it's possible to clean your solar panels yourself, there are several factors to consider before attempting it. Cleaning solar panels requires careful attention to avoid causing damage, especially when working with rooftops or delicate equipment. Improper cleaning methods can lead to scratches, cracks, or even void warranties.
That’s where Signify Solar Services comes in. We are trained professionals who understand the best techniques and products to use to clean your panels safely and effectively. Our team ensures that your solar panels are cleaned without any risk of damage, preserving their efficiency and lifespan.
How to Clean Home Solar Panels
If you're wondering how to clean home solar panels, it's essential to know the proper steps and tools to use. While there are DIY methods, it is important to approach solar panel cleaning with care. Here’s a general overview of the process:
Use Soft, Non-Abrasive Materials: To avoid scratching the panels, use soft brushes or cloths designed specifically for cleaning solar panels.
Avoid Harsh Chemicals: Harsh chemicals can damage the panels. It's best to use a mild detergent mixed with water for cleaning.
Use a Hose, Not a Pressure Washer: Pressure washers can damage the panels, so it’s safer to use a regular hose with moderate water pressure.
Clean During Cooler Hours: Avoid cleaning solar panels in direct sunlight as the heat can cause the water to evaporate too quickly, leaving streaks or residue behind.
Ensure Safety: Solar panels are often installed on rooftops, which can be dangerous to access. If you're unsure about how to clean your panels safely, it’s always best to hire a professional.
While these steps can help you clean your panels, it's always recommended to hire a professional service, especially if your panels are on a roof or if you’re unsure about how to clean them properly.
Local Solar Panel Cleaning for Houses
If you're looking for local solar panel cleaning for houses, Signify Solar Services is here to serve you. We specialize in solar panel cleaning for homeowners in Canoga Park, Woodland Hills, Simi Valley, and the surrounding areas. Our local team is experienced and equipped to handle all types of solar systems, ensuring your panels are cleaned efficiently and safely.
We understand the unique needs of local homeowners and provide personalized services to ensure your solar system is functioning at its best. Our goal is to make sure you’re getting the most out of your solar investment by improving efficiency and extending the life of your panels.
Why Choose Signify Solar Services for Your Solar Panel Cleaning?
1. Affordable Pricing
We offer affordable solar panel cleaning for homes, ensuring that homeowners can keep their solar systems in top condition without breaking the bank. Our services are priced competitively, and we offer free quotes to help you plan your budget.
2. Professional, Safe Cleaning
Our team of experts is trained to clean solar panels safely and effectively. We use specialized equipment and eco-friendly cleaning solutions to ensure your panels are cleaned without any risk of damage. Our technicians follow best practices to ensure maximum efficiency and care.2 -
"I'm Done Guessing My MMR – Riot, Just Tell Me Already!"
Okay, so let me RANT for a second.
You know what's worse than losing a ranked game?
Losing one after carrying your entire team, just to lose -15 LP, and then queueing up with teammates who look like they just installed the game five minutes ago.
At this point, I'm like:
"What even is my MMR? Am I cursed? Did I anger the League gods?"
Every time I win 3 games in a row, it feels like Riot rewards me with the most questionable teammates imaginable. Like, I legit had a Yuumi who built mobility boots first. MOBILITY BOOTS. Why, bro? Where are you running? 😭
I started thinking maybe it’s not just bad luck... maybe it’s my MMR secretly tanking while my LP lies to me. So I went down the rabbit hole—looking for any way to figure it out.
LoL MMR Checker actually gives you a solid estimate of your hidden matchmaking rating. Finally, I could see if I was punching above my weight or getting soft-carried by the system. Turns out, my MMR was lower than my current rank. Riot’s matchmaking wasn’t broken—I was just barely clinging to my tier. 😅
Moral of the story?
Never trust LP.
Trust the data.
Save your sanity.
End of rant.1 -
Your Lost Crypto Back In Your Hands—>Contact Digital Hack Recovery Right Now
I thought I’d lost $41,000 forever! My account was suddenly locked, and desperate calls to customer service went unanswered. The feeling of helplessness was overwhelming. I had worked so hard to save that money, and to see it disappear without any explanation was devastating. Each day that passed without a resolution made it feel like my funds were gone for good.At first, I tried everything I could think of to get help. I called customer service repeatedly, but every time, I was met with empty promises and no real answers. The more I called, the more frustrated I became. Every unreturned call and unsatisfactory response only deepened my sense of dread. I feared that I might never see my money again. But I refused to give up. I knew I had to keep searching for a solution, no matter how impossible it seemed.That’s when I found Digital Hack Recovery. After reading reviews and hearing about their expertise in financial recovery, I decided to reach out. The idea of a professional recovery service seemed like my last hope, and I was desperate to try anything that could help. From the very first interaction, the team at Digital Hack Recovery impressed me. They were not only professional and responsive but also genuinely understanding of my situation. They took my case seriously and assured me they would do everything they could to help recover my funds.They quickly assessed my case, formulated a strategy, and began working on a solution right away. The experts at Digital Hack Recovery were incredibly efficient and kept me updated at every step of the process. Their dedication and persistence were evident. They took the time to explain the entire recovery process to me, which gave me confidence that I was in good hands. It wasn’t just about recovering my money—it was about restoring my trust in the financial system, which had been shaken by this experience.Within just a few days, they had successfully recovered my $41,000. The relief I felt when I saw my account unlocked and my funds returned was indescribable. What had seemed impossible just a week earlier was made possible thanks to the professionalism, knowledge, and expertise of Digital Hack Recovery.I can’t thank them enough for their hard work and commitment. If you ever find yourself in a similar situation, I highly recommend contacting Digital Hack Recovery.They gave me back my peace of mind and showed me that no situation is hopeless when you have the right experts by your side. For assistance contact Digital Hack Recovery via the following contact info⁚ Website⁚ https
: // digital hack recovery . com
WhatsApp +1(915)2151930
Email; digital hack recovery @ techie . com
2 -
Sometimes life gives you signs-you just got to be paying attention. One night, deep in an Uber ride, I struck up a conversation with the driver. The topic of Bitcoin came up, and he mentioned that he once lost his wallet containing $50,000.
I thought this would be the end of the story-something like regret, lessons learned, and moving on. But then he said something that stuck with me: "Thankfully, I found Lee Ultimate Hacker. They got everything back." I nodded, really interested but unconcerned. After all, I was so very careful with my wallet security. I thought, That's rough, but it could never happen to me. A week later, it happened to me. I lost the wallet holding $300,000 while overhauling my crypto storage system. In one wrong move, my funds became completely unreachable. I retraced passwords, checked backups, tried everything that normally works, but nothing worked. Panic kicked in. My mind was racing, trying to figure out my next move. And then, I remembered the Uber driver's story.
I didn't waste a moment and contacted Lee Ultimate Hacker. Right upon connecting to their team, I could feel my nerves calm down. They did not right away get to work but also asked questions, analyzed my situation, and explained how the recovery would go. It was next-level professionalism; they didn't just work on how to return my money but also how to make me understand what happened and how I could avoid it in the future. Finally, after what felt like the longest wait of my life, came the message that I had been waiting for: My wallet was recovered successfully.
Relief doesn't even begin to describe my feeling at that moment. That $300,000 wasn't just money; it was years of careful investments and strategic planning. And in an instant, it was all back where it belonged. In retrospect, I owe more than a five-star rating to that Uber driver. His story gave me a lifeline which I didn't know I needed. Lesson learned: Pay attention to those random conversations-you never know when they might save you a fortune.
LEEULTIMATEHACKER @ AOL . COM
telegram: LEEULTIMATE
wh@tsapp +1 (715) 314 - 92483 -
Sometimes life gives you signs-you just gotta be paying attention. One night, deep in an Uber ride, I struck up a conversation with the driver. The topic of Bitcoin came up, and he mentioned that he once lost his wallet containing $50,000.
I thought this would be the end of the story-something like regret, lessons learned, and moving on. But then he said something that stuck with me: "Thankfully, I found WIZARD WEB RECOVERY SERVICES . They got everything back." I nodded, really interested but unconcerned. After all, I was very careful with my wallet security. I thought, That's rough, but it could never happen to me. A week later, it happened to me. I lost the wallet holding $300,000 while overhauling my crypto storage system. In one wrong move, my funds became completely unreachable. I retraced passwords, checked backups, tried everything that normally works, but nothing worked. Panic kicked in. My mind was racing, trying to figure out my next move. And then, I remembered the Uber driver's story.
I didn't waste a moment and contacted WIZARD WEB RECOVERY SERVICES . Right upon connecting to their team, I could feel my nerves calm down. They did not right away get to work but also asked questions, analyzed my situation, and explained how the recovery would go. It was next-level professionalism; they didn't just work on how to return my money but also how to make me understand what happened and how I could avoid it in the future. Finally, after what felt like the longest wait of my life, came the message that I had been waiting for: My wallet was recovered successfully.
Relief doesn't even begin to describe my feeling at that moment. That $300,000 wasn't just money; it was years of careful investments and strategic planning. And in an instant, it was all back where it belonged. In retrospect, I owe more than a five-star rating to that Uber driver. His story gave me a lifeline which I didn't know I needed. Lesson learned: Pay attention to those random conversations-you never know when they might save you a fortune.1 -
GENUINE HACKER TO RECOVER SCAMMED CRYPTO ASSETS= VISIT SALVAGE ASSET RECOVERY
Reach out to Salvage Asset Recovery, contact info
TELEGRAM---@Salvageasset
WhatsApp+ 1 8 4 7 6 5 4 7 0 9 6
When a phishing scam drained $190,000 in Bitcoin money we’d painstakingly saved to modernize our family farm’s irrigation system, I felt like the ground had been pulled out from under me. I nearly sold the land that had been in our family for four generations. The promise of smart irrigation, reducing waste and labor, had vanished in seconds. I blamed myself for trusting the sleek website of a so-called solar supplier. I was angry, ashamed, and exhausted.
My daughter, Mia, took the loss harder than anyone. She’s the reason I ventured into cryptocurrency in the first place. A tech-savvy teenager with a mind for innovation, she convinced me that blockchain could unlock a future where our farm thrived instead of just surviving. And now, because of a single click, that future seemed like a cruel mirage.
One evening, while I brooded over the loss, Mia stormed into the kitchen, a spark of hope in her eyes. She had found a post buried deep in a cryptocurrency and subreddit a testimonial from a retired engineer turned urban farmer. The name stood out: Salvage Asset Recovery. He swore by them, claiming they had tracked down his stolen Ethereum when no one else could. It sounded too good to be true. But with nothing left to lose, I reached out.
From the first email, they were responsive and methodical. They walked me through the process with patience, never making promises they couldn’t keep. Within hours, they had traced the stolen funds to a web of fake businesses. Our "solar supplier" was just one of many scams in a sophisticated network. For days, they followed the digital breadcrumbs across anonymous wallets and obscure exchanges. I barely dared to hope.
Then, on the tenth day, the impossible happened. An alert from my crypto wallet: 89% of our stolen funds had been recovered. I read the message twice, breathless. We weren’t just getting our money back, we were getting our future back.
Today, our fields hum with smart sensors, monitoring moisture levels with pinpoint accuracy. We waste less water, save more time, and yield better crops. And Mia? She’s turned our hard lesson into a mission, teaching blockchain basics to other rural kids so they’ll be better prepared than we were.1 -
RELIABLE BITCOIN & CRYPTO RECOVERY SERVICES | CRYPTO RECOVERY SOLUTION
Tax season is a headache for anyone, but mine escalated to a complete catastrophe. While scrambling around my financial records of the year, I ended up wiping out my backup for the Bitcoin wallet-a staggering $300,000. An incorrect click at the height of overzealous cleaning, and there went my wallet.
It didn't quite dawn on me yet. Too ensconced in spreadsheets and numbers, I had no idea of the enormity of what I had just done. Later that afternoon, when I went to look in my wallet, it was as though I stared into a void: the backup was gone, and I could not access my funds. Panic ensued. I tried recovering the file myself, and with each action, I did, it seemed to get even worse. It is like, with one careless moment, all of my financial future was erased.
In my desperation for help, I looked up CRYPTO RECOVERY SOLUTION , and from the very first correspondence, they proved to be a beacon of hope. Their team listened to my frantic explanation without judging me and assured me that they had dealt with such cases before. They outlined their process and dove right into it, updating me through every step of the way.
What impressed me most was their professionalism and technical skills. Recovering a wallet from a botched backup isn't exactly straightforward, but they handled the situation with precision. It felt like they were unraveling a mess I thought was unsalvageable. Within a few days, they delivered the best news I'd heard all year: my funds were safe and fully restored.
CRYPTO RECOVERY SOLUTION didn't just save my wallet, but they saved me from months, if not years, of stress and regret. They even gave advice on how to make better backup systems and secure my assets in the future. Thanks to their guidance, I now have a solid organizational system that keeps my crypto safe and sound.
If there is one thing I learned from this experience, it is that mistakes do happen, even when one is trying to be responsible. The key is knowing whom to turn to when things go wrong. CRYPTO RECOVERY SOLUTION turned my nightmare into a manageable lesson, and for that, I'll always be grateful1 -
Secure Your Home with Battery Backup Solutions from Origin Solar, Roofing, and Generators in St. Petersburg, FL
At Origin Solar, Roofing, and Generators, we understand how important it is to have a reliable power source, especially during power outages or unexpected events. That’s why we offer state-of-the-art battery backup solutions to keep your home or business running smoothly, even when the grid goes down. Based in St. Petersburg, FL, we are committed to providing dependable energy solutions that ensure you never have to worry about losing power again.
Why Invest in Battery Backup?
Power outages are an unfortunate reality, whether caused by storms, high winds, or other unforeseen circumstances. While generators are a popular backup power source, battery backup systems are quickly becoming the preferred choice for many homeowners and businesses. Here’s why:
Reliability: Unlike gas-powered generators that require fuel, battery backup systems are fully charged and ready to kick in immediately when power is lost, providing seamless energy during outages.
Clean Energy: If you have a solar panel system installed, a battery backup system works in harmony with your solar panels to store excess energy during the day, which you can use at night or during a power outage.
Environmentally Friendly: Battery backup systems are clean, efficient, and require minimal maintenance. They don’t produce emissions, unlike gas-powered alternatives, making them a more eco-friendly option.
Quiet Operation: Unlike traditional generators that can be noisy, battery backup systems operate silently, making them perfect for residential and commercial properties that require discreet operation.
Cost-Effective: Over time, a battery backup system can save you money by reducing your reliance on the grid and providing an uninterrupted power supply. Many homeowners see long-term savings due to decreased energy costs and fewer expenses related to power outages.
Our Battery Backup Solutions
At Origin Solar, Roofing, and Generators, we offer a variety of battery backup options designed to fit your unique needs. Our team works with top-tier brands and technology to provide reliable, high-quality systems that ensure your property is never left in the dark.
Solar-Powered Battery Backup: Pair your solar panels with a battery backup system to store excess energy generated during the day. This stored energy can be used during the evening or whenever the grid is down, making your home or business more energy-independent and sustainable.
Stand-Alone Battery Backup Systems: If you don’t have a solar system, we offer stand-alone battery backup options that store electricity from the grid, providing an instant power supply when you need it most.
Custom Solutions: We understand that every property is unique, which is why we offer custom battery backup solutions tailored to your energy needs. Whether you need backup power for a small home or a large commercial building, we’ll design a system that fits your requirements.
Why Choose Origin Solar, Roofing, and Generators for Battery Backup?
As a locally owned business serving St. Petersburg, FL, Origin Solar, Roofing, and Generators is dedicated to providing expert, personalized service. Here’s what sets us apart:
Expert Installation: Our experienced team ensures a seamless installation of your battery backup system, ensuring it’s integrated with your solar panels or power supply system for optimal performance.
Comprehensive Services: In addition to battery backup systems, we also specialize in solar panel installations, roofing services, and generator installations. We provide complete energy solutions to keep your home or business powered and secure.
Ongoing Support: We don’t just install your battery backup system and walk away. Our team is here to provide ongoing maintenance, troubleshooting, and support to ensure your system is always working at its best.
Customer-Focused: We pride ourselves on offering excellent customer service. Our team is dedicated to understanding your needs and providing you with the best solutions, no matter the size or scope of the project.
Serving St. Petersburg, FL, and Surrounding Areas
At Origin Solar, Roofing, and Generators, we serve homeowners and businesses throughout St. Petersburg and the greater Tampa Bay area. Whether you're looking to install a solar-powered battery backup system or need a stand-alone solution, we’re here to help you keep your property powered and protected.
Contact Us Today for Battery Backup Solutions
Don’t wait until the next power outage to think about backup power. Origin Solar, Roofing, and Generators offers reliable, efficient battery backup systems that will give you peace of mind, knowing you have a steady power source when you need it most2 -
RECOVERY COMPANY SERVICE TO RECOVER LOST OR STOLEN BTC, HIRE SALVAGE ASSET RECOVERY
I had never thought that a read passing would one day save me from financial ruin. I was just going through some crypto blogs that evening to see security tips. I stumbled upon a pretty personal post of someone who had lost access to his Bitcoin wallet. He simply made the mistake of forgetting his password, and it had gone to catastrophic ends.
It was not the story itself that caught my attention but how it ended. The writer had finally found this company called Salvage Asset Recovery, which had successfully returned their funds to them. Their words were full of relief and gratitude toward the team that got them out of that troublesome situation.
I thought, That's terrible. But that won't happen to me. I was wrong.
A few weeks later, I had the same nightmare. I had set up a complex passphrase for my crypto wallet, one I was sure I would never forget. Fast-forward some time later, life got busy, and when the time came to access my funds, I drew a complete blank. However much I tried different combinations, none worked.
I stared down at my wallet, holding a cool $150,000 in Bitcoin that was now completely unreachable to me. Recovery phrases meant absolutely nothing because the encryption on it had changed some months prior as a measure to further beef up security; ironically, that action had managed to lock me out of my money.
It was then that the blog post came to my mind.
I searched frantically for it, found the name Salvage Asset Recovery, and reached out immediately. From the first message, their team was calm, professional, and reassuring. They explained their process step by step, analyzing my wallet's encryption and working tirelessly to regain access.
Days passed, and my anxiety only grew—until I got the call that changed everything. They had cracked my forgotten passphrase. My $150,000 was back in my hands.
I was so relieved. But more than just getting my money back, Salvage Asset Recovery structured a more secure yet workable system for the future.
That blog had undersold their brilliance-these people are lifesavers. Without them, my money would have been locked away forever.
Now, I tell everyone in my crypto circles: if you ever get locked out of your wallet, there is only one name that you need to remember: Salvage Asset Recovery. Reach Out to them via --
WhatsApp+ 1 8 4 7 6 5 4 7 0 9 6
1
