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 - "who needs tests"
-
I was asked by our tester and scrum master to ignore some failing unit tests yesterday. The tester literally said "no time for tests, we need the build now". The scrum master is also a tester and agreed. I dont think I can respect either of them as testers anymore.3
-
Was asked to help a team of interns in a remote country, finish an app. Not only were they terrible at literally every aspect of development, but were arrogant and argued their "new" ways were right.
Spent weeks on the project being nice, trying to help them, sending them links to standards and documents, pointing out unit tests shouldn't be failing, everyone needs to have the same versions of the tools etc. You know, basic shit.
Things got quite heated a few weeks in when they started completely ignoring me. Shit was breaking all over the place and crashing, as I thought we were going to build it one way, and they went and built it another.
Was practically begging the team architect and my manager for help dealing with them. Only reply I got was the usual "were aware of the problem and looking into it" bullshit.
Eventually after the app was done, a mutual agreement was reached that the 2 teams would split (I maintain they were kicked out). All the local devs were happy, managers had mentioned how difficult they were and it would be great for us to finally work on our own.
So I thought everything was fine ... until my end of year performance review came along.
Seems I'm quite poor at "working with others" and I "don't try hard enough with others", it was clear I was struggling with the remote team and "made no effort".
WELL FUCK RIGHT OFF
Not being cocky, but I've never had anything like that in a performance review for the past 7 years. I'm a hard worker, and never have trouble making friends with colleagues. Everyone in the country complained about these remote fuckers, even the manager, who I begged for help. And the end result is I need to work harder.
I came in early, stayed late to fit their timezone, took extra tasks, did research for them, wrote docs. And I was told to work harder.
Only reason I didn't quit, was my internal transfer request was approved lol. New team is looking at projects orders of magnitude more impressive, never been happier.3 -
Day of the interview sr. Architect says: "We have near 100% unit test coverage in our code."
One month later when I tell him there are 0 unit tests written against 300 projects: "Yeah, I knew that was a problem."
What can you do when the people who want to hire you lie outright to your face?
Oh yeah, and not a god damned one was written using any sense of object oriented programming at all. Every single damned project is written like its on a motherfucking punchcard put together by a cs 101 student with a 2 hour fucking deadline.
I can understand if it needs some work, just tell me. Don't fucking lie to me just to get me in the door to fix a problem you know you have. JUST HAVE SOME FUCKING RESPECT FOR YOUR CANDIDATES AND DON'T FUCKING LIE TO THEM!
Off to drink some scotch and think about what it would be like to shove a finger deep enough into my nostril to hear a pop and smell popcorn before going off into that good night.
I said good day.3 -
There are three things in my workflow that I don't like:
1. Feature requests appearing out of thin air.
It's common to be handled work at 2pm that needs to be deployed by the end of day. Usually it's bug fixes, and that's ok I guess, but sometimes it's brand new features. How the fuck am I supposed to do a good job in such a short time? I don't even have time to wrap my head around the details and I'm expected to implement it, test it, make sure it doesn't break anything and make it pass through code review? With still time to deploy and make sure it's ok? In a few hours? I'm not fucking superman!
2. Not being asked about estimates.
Everything is handed to me with a fixed deadline, usually pulled off my PM's ass, who has no frontend experience. "You have two weeks to make this website." "You must have this done this by tomorrow morning." The result, of course, is rushed code that was barely tested (by hand, no time for unit or integration tests).
3. Being the last part of the product development process.
Being the last part means that our deadlines are the most strict. If we don't meet the deadline, the client will be pissed. The thing is, the design part is usually the one that exceeds its time (because clients keep asking for changes). So when the project lands on our desks it's already delayed and we have to rush it.
This all sounds too much like bad planning to me. I guess it's the result of not doing scrum. There are no sprints, no planning meetings, only weekly status update meetings. Are your jobs similar? Is it just usual "agency work"?
I'm so tired of the constant pressure and having to rush my work. Oh, and the worst part is we don't have time for anything else. We're still stuck with webpack 2 because we never have time to update it ffs.6 -
After a few weeks of being insanely busy, I decided to log onto Steam and maybe relax with a few people and play some games. I enjoy playing a few sandbox games and do freelance development for those games (Anywhere from a simple script to a full on server setup) on the side. It just so happened that I had an 'urgent' request from one of my old staff member from an old community I use to own. This staff member decided to run his own community after I sold mine off since I didn't have the passion anymore to deal with the community on a daily basis.
O: Owner (Former staff member/friend)
D: Other Dev
O: Hey, I need urgent help man! Got a few things developed for my server, and now the server won't stay stable and crashes randomly. I really need help, my developer can't figure it out.
Me: Uhm, sure. Just remember, if it's small I'll do it for free since you're an old friend, but if it's a bigger issue or needs a full recode or whatever, you're gonna have to pay. Another option is, I tell you what's wrong and you can have your developer fix it.
O: Sounds good, I'll give you owner access to everything so you can check it out.
Me: Sounds good
*An hour passes by*
O: Sorry it took so long, had to deal with some crap. *Insert credentials, etc*
Me: Ok, give me a few minutes to do some basic tests. What was that new feature or whatever you added?
O: *Explains long feature, and where it's located*
Me: *Begins to review the files* *Internal rage wondering what fucking developer could code such trash* *Tests a few methods, and watches CPU/RAM and an internal graph for usage*
Me: Who coded this module?
O: My developer.
Me: *Calm tone, with a mix of some anger* So, you know what, I'm just gonna do some simple math for ya. You're running 33 ticks a second for the server, with an average of about 40ish players. 33x60 = 1980 cycles a minute, now lets times that by the 40 players on average, you have 79,200 cycles per minute or nearly 4.8 fucking cycles an hour (If you maxed the server at 64 players, it's going to run an amazing fucking 7.6 million cycles an hour, like holy fuck). You're also running a MySQLite query every cycle while transferring useless data to the server, you're clusterfucking the server and overloading it for no fucking reason and that's why you're crashing it. Another question, who the fuck wrote the security of this? I can literally send commands to the server with this insecure method and delete all of your files... If you actually want your fucking server stable and secure, I'm gonna have to recode this entire module to reduce your developer's clusterfuck of 4.8 million cycles to about 400 every hour... it's gonna be $50.
D: *Angered* You're wrong, this is the best way to do it, I did stress testing! *Insert other defensive comments* You're just a shitty developer (This one got me)
Me: *Calm* You're calling me a shitty developer? You're the person that doesn't understand a timer, I get that you're new to this world, but reading the wiki or even using the game's forums would've ripped this code to shreds and you to shreds. You're not even a developer, cause most of this is so disorganized it looks like you copy and pasted it. *Get's angered here and starts some light screaming* You're wasting CPU usage, the game can't use more than 1 physical core, and after a quick test, you're stupid 'amazing' module is using about 40% of the CPU. You need to fucking realize the 40ish average players, use less than this... THEY SHOULD BE MORE INTENSIVE THAN YOUR CODE, NOT THE OPPOSITE.
O: Hey don't be rude to Venom, he's an amazing coder. You're still new, you don't know as much as him. Ok, I'll pay you the money to get it recoded.
Me: Sounds good. *Angered tone* Also you developer boy, learn to listen to feedback and maybe learn to improve your shitty code. Cause you'll never go anywhere if you don't even understand who bad this garbage is, and that you can't even use the fucking wiki for this game. The only fucking way you're gonna improve is to use some of my suggestions.
D: *Leaves call without saying anything*
TL;DR: Shitty developer ran some shitty XP system code for a game nearly 4.8 million times an hour (average) or just above 7.6 million times an hour (if maxed), plus running MySQLite when it could've been done within about like 400 an hour at max. Tried calling me a shitty developer, and got sorta yelled at while I was trying to keep calm.
Still pissed he tried calling me a shitty developer... -
Two big moments today:
1. Holy hell, how did I ever get on without a proper debugger? Was debugging some old code by eye (following along and keeping track mentally, of what the variables should be and what each step did). That didn't work because the code isn't intuitive. Tried the print() method, old reliable as it were. Kinda worked but didn't give me enough fine-grain control.
Bit the bullet and installed Wing IDE for python. And bam, it hit me. How did I ever live without step-through, and breakpoints before now?
2. Remember that non-sieve prime generator I wrote a while back? (well maybe some of you do). The one that generated quasi lucas carmichael (QLC) numbers? Well thats what I managed to debug. I figured out why it wasn't working. Last time I released it, I included two core methods, genprimes() and nextPrime(). The first generates a list of primes accurately, up to some n, and only needs a small handful of QLC numbers filtered out after the fact (because the set of primes generated and the set of QLC numbers overlap. Well I think they call it an embedding, as in QLC is included in the series generated by genprimes, but not the converse, but I digress).
nextPrime() was supposed to take any arbitrary n above zero, and accurately return the nearest prime number above the argument. But for some reason when it started, it would return 2,3,5,6...but genprimes() would work fine for some reason.
So genprimes loops over an index, i, and tests it for primality. It begins by entering the loop, and doing "result = gffi(i)".
This calls into something a function that runs four tests on the argument passed to it. I won't go into detail here about what those are because I don't even remember how I came up with them (I'll make a separate post when the code is fully fixed).
If the number fails any of these tests then gffi would just return the value of i that was passed to it, unaltered. Otherwise, if it did pass all of them, it would return i+1.
And once back in genPrimes() we would check if the variable 'result' was greater than the loop index. And if it was, then it was either prime (comparatively plentiful) or a QLC number (comparatively rare)--these two types and no others.
nextPrime() was only taking n, and didn't have this index to compare to, so the prior steps in genprimes were acting as a filter that nextPrime() didn't have, while internally gffi() was returning not only primes, and QLCs, but also plenty of composite numbers.
Now *why* that last step in genPrimes() was filtering out all the composites, idk.
But now that I understand whats going on I can fix it and hypothetically it should be possible to enter a positive n of any size, and without additional primality checks (such as is done with sieves, where you have to check off multiples of n), get the nearest prime numbers. Of course I'm not familiar enough with prime number generation to know if thats an achievement or worthwhile mentioning, so if anyone *is* familiar, and how something like that holds up compared to other linear generators (O(n)?), I'd be interested to hear about it.
I also am working on filtering out the intersection of the sets (QLC numbers), which I'm pretty sure I figured out how to incorporate into the prime generator itself.
I also think it may be possible to generator primes even faster, using the carmichael numbers or related set--or even derive a function that maps one set of upper-and-lower bounds around a semiprime, and map those same bounds to carmichael numbers that act as the upper and lower bound numbers on the factors of a semiprime.
Meanwhile I'm also looking into testing the prime generator on a larger set of numbers (to make sure it doesn't fail at large values of n) and so I'm looking for more computing power if anyone has it on hand, or is willing to test it at sufficiently large bit lengths (512, 1024, etc).
Lastly, the earlier work I posted (linked below), I realized could be applied with ECM to greatly reduce the smallest factor of a large number.
If ECM, being one of the best methods available, only handles 50-60 digit numbers, & your factors are 70+ digits, then being able to transform your semiprime product into another product tree thats non-semiprime, with factors that ARE in range of ECM, and which *does* contain either of the original factors, means products that *were not* formally factorable by ECM, *could* be now.
That wouldn't have been possible though withput enormous help from many others such as hitko who took the time to explain the solution was a form of modular exponentiation, Fast-Nop who contributed on other threads, Voxera who did as well, and support from Scor in particular, and many others.
Thank you all. And more to come.
Links mentioned (because DR wouldn't accept them as they were):
https://pastebin.com/MWechZj912 -
Boss: "we're going to take over a project from another company. that's what we know so far - any other questions?"
Me: "do we get the history (svn/git) or just current source? unit tests?"
Other company: "no history for you. no unit tests - app was only tested manually"
Me: *sigh* :'(3 -
Forgot to change code in my api for rate limiting, after development. No unit tests.. because who really needs that right? 🤦♂️🙅♂️🤷♂️lolololol
Long story short, API went to production eventually, and stopped working almost immediately. Rate limiting was set for 2000 requests in a 1 hour time period. Not my finest moment.. fml 🤦♂️ -
Not as much of a rant as a share of my exasperation you might breathe a bit more heavily out your nose at.
My work has dealt out new laptops to devs. Such shiny, very wow. They're also famously easy to use.
.
.
.
My arse.
.
.
.
I got the laptop, transferred the necessary files and settings over, then got to work. Delivered ticket i, delivered ticket j, delivered the tests (tests first *cough*) then delivered Mr Bullet to Mr Foot.
Day 4 of using the temporary passwords support gave me I thought it was time to get with department policy and change my myriad passwords to a single one. Maybe it's not as secure but oh hell, would having a single sign-on have saved me from this.
I went for my new machine's password first because why not? It's the one I'll use the most, and I definitely won't forget it. I didn't. (I didn't.) I plopped in my memorable password, including special characters, caps, and numbers, again (carefully typed) in the second password field, then nearly confirmed. Curiosity, you bastard.
There's a key icon by the password field and I still had milk teeth left to chew any and all new features with.
Naturally I click on it. I'm greeted by a window showing me a password generating tool. So many features, options for choosing length, character types, and tons of others but thinking back on it, I only remember those two. I had a cheeky peek at the different passwords generated by it, including playing with the length slider. My curiosity sated, I closed that window and confirmed that my password was in.
You probably know where this is going. I say probably to give room for those of you like me who certifiably. did. not.
Time to test my new password.
*Smacks the power button to log off*
Time to put it in (ooer)
*Smacks in the password*
I N C O R R E C T L O G I N D E T A I L S.
Whoops, typo probably.
Do it again.
I N C O R R E C T L O G I N D E T A I L S.
No u.
Try again.
I N C O R R E C T L O G I N D E T A I L S.
Try my previous password.
Well, SUCCESS... but actually, no.
Tried the previous previous password.
T O O M A N Y A T T E M P T S
Ahh fuck, I can't believe I've done this, but going to support is for pussies. I'll put this by the rest of the fire, I can work on my old laptop.
Day starts getting late, gotta go swimming soonish. Should probably solve the problem. Cue a whole 40 minutes trying my 15 or so different passwords and their permutations because oh heck I hope it's one of them.
I talk to a colleague because by now the "days since last incident" counter has been reset.
"Hello there Ryan, would you kindly go on a voyage with me that I may retrace my steps and perhaps discover the source of this mystery?"
"A man chooses, a slave obeys. I choose... lmao ye sure m8, but I'm driving"
We went straight for the password generator, then the length slider, because who doesn't love sliding a slidey boi. Soon as we moved it my upside down frown turned back around. Down in the 'new password' and the 'confirm new password' IT WAS FUCKING AUTOCOMPLETING. The slidey boi was changing the number of asterisks in both bars as we moved it. Mystery solved, password generator arrested, shit's still fucked.
Bite the bullet, call support.
"Hi, I need my password resetting. I dun goofed"
*details tech support needs*
*It can be sorted but the tech is ages away*
Gotta be punctual for swimming, got two whole lengths to do and a sauna to sit in.
"I'm off soon, can it happen tomorrow?"
"Yeah no problem someone will be down in the morning."
Next day. Friday. 3 hours later, still no contact. Go to support room myself.
The guy really tries, goes through everything he can, gets informed that he needs a code from Derek. Where's Derek? Ah shet. He's on holiday.
There goes my weekend (looong weekend, bank holiday plus day flexi-time) where I could have shown off to my girlfriend the quality at which this laptop can play all our favourite animé, and probably get remind by her that my personal laptop has an i2350u with integrated graphics.
TODAY. (Part is unrelated, but still, ugh.)
Go to work. Ten minutes away realise I forgot my door pass.
Bollocks.
Go get a temporary pass (of shame).
Go to clock in. My fob was with my REAL pass.
What the wank.
Get to my desk, nobody notices my shame. I'm thirsty. I'll have the bottle from my drawer. But wait, what's this? No key that usually lives with my pass? Can't even unlock it?
No thanks.
Support might be able to cheer me up. Support is now for manly men too.
*Knock knock*
"Me again"
"Yeah give it here, I've got the code"
He fixes it, I reset my pass, sensibly change my other passwords.
Or I would, if the internet would work.
It connects, but no traffic? Ryan from earlier helps, we solve it after a while.
My passwords are now sorted, machine is okay, crisis resolved.
*THE END*
If you skipped the whole thing and were expecting a tl;dr, you just lost the game.
Otherwise, I absolve you of having lost the game.
Exactly at the char limit9 -
As I was refactoring a class in a TypeScript project, I changed calls from `this.config` to `this.getConfig()`.
Suddenly, the tests were failing as somehow the live credentials were used from within the test.
Digging deeper I discovered this.
interface Base {
public config;
public getConfig();
}
So far so good. Wondering why config needs to be public, though nothing too shabby, let's look further:
class MyImpl implements Base {
constructor() {
this.config = this.getConfig()
}
getConfig = () => someGlobalVar;
}
┻━┻︵ \(°□°)/ ︵ ┻━┻
Why would you do this? This breaks dependency injection completely.
In the tests, we were of course doing:
testMe = new MyImpl();
testMe.config = testConfig;
So even though you have a getter, you cannot call it safely as the global var would take precedence. It's rather used as a setter within the constructor. WTF.
Sad part is that this pattern is kept throughout the entire codebase. So yeah for consistency!?
(And yes, I found a quick workaround by doing
getConfig = () => this.config || someGlobalVar;
though still, who in their right mind would do something like this?)1 -
"Could you help on project X and implement that straight forward feature?"
So I clone the repo. Run the tests in the main branch. 20 tests fail.
Yes, this will be fun and very simple ...2 -
My work product: Or why I learned to get twitchy around Java...
I maintain a Java based test system, that tests a raster image processor. The client is a Java swing project that contains CORBA bindings to the internal API of the raster image processor. It also has custom written UI elements and duplicated functionality that became available in later versions of Java, but because some of the third party tools we use don't work with later versions of Java for some reason, it's not possible to upgrade Java to gain things as simple as recursive directory deletion, yes the version of Java we have to use does not support something as simple as that and custom code had to be written to support it.
Because of the requirement to build the API bindings along with the client the whole application must be built with the raster image processor build chain, which is a heavily customised jam build system. So an ant task calls out to execute a jam task and jam does about 90% of the heavy lifting.
In addition to the Java code there's code for interpreting PostScript files, as these can be used to alter the behaviour of the raster image processor during testing.
As if that weren't enough, there's a beanshell interface to allow users to script the test system, but none of the users know Java well enough to feel confident writing interpreted Java scripts (and that's too close to JavaScript for my comfort). I once tried swapping this out for the Rhino JavaScript interpreter and got all the verbal support in the world but no developer time to design an API that'd work for all the departments.
The server isn't much better though. It's a tomcat based application that was written by someone who had never built a tomcat application before, or any web application for that matter and uses raw SQL strings instead of an orm, it doesn't use MVC in any way, and insane amount of functionality is dumped into the jsp files.
It too interacts with a raster image processor to create difference masks of the output, running PostScript as needed. It spawns off multiple threads and can spend days processing hundreds of gigabytes of image output (depending on the size of the tests).
We're stuck on Tomcat seven because we can't upgrade beyond Java 6, which brings a whole manner of security issues, but that eager little Java updated will break the tool chain if it gets its way.
Between these two components we have the Java RMI server (sometimes) working to help generate image data on the client side before all images are pulled across a UNC network path onto the server that processes test jobs (in PDF format), by reading into the xref table of said PDF, finding the embedded image data (for our server consumed test files are just flate encoded TIFF files wrapped around just enough PDF to make them valid) and uses a tool to create a difference mask of two images.
This tool is very error prone, it can't difference images of different sizes, colour spaces, orientations or pixel depths, but it's the best we have.
The tool is installed in both the client and server if the client can generate images it'll query from the server which ones it needs to and if it can't the server will use the tool itself.
Our shells have custom profiles for linking to a whole manner of third party tools and libraries, including a link to visual studio 2005 (more indirectly related build dependencies), the whole profile has to ensure that absolutely no operating system pollution gets into the shell, most of our apps are installed in our home directories and we have to ensure our paths are correct for every single application we add.
And... Fucking and!
Most of the tools are stored as source bundles in a version control system... Not got or mercurial, not perforce or svn, not even CVS... They use a custom built version control system that is built on top of RCS, it keeps a central database of locked files (using soft and hard locks along with write protecting the files in the file system) to ensure users can't get merge conflicts by preventing other users from writing to the files at all.
Branching is heavy weight and can take the best part of a day to create a new branch and populate the history.
Gathering the tools alone to build the Dev environment to build my project takes the best part of a week.
What should be a joy come hardware refresh year becomes a curse ("Well fuck, now I loose a week spending it setting up the Dev environment on ANOTHER machine").
Needless to say, I enjoy NOT working with Java. A lot of this isn't Javas fault, but there's a lot of things that Java (specifically the Java 6 version we're stuck on) does not make easy.
This is why I prefer to build my web apps in python or node, hell, I'd even take Lua... Just... Compiling web pages into executable Java classes, why? I mean I understand the implementation of how this happens, but why did my predecessor have to choose this? Why?2 -
Hey guys. I am in a situation where I need to decide wether to take on a new project or not. And if not, how to turn down that client so that I would not burn any bridges. So I need your opinions on this matter in order to make the final decision.
To make things clear heres some background info. 10 months ago I quitted my fulltime position in another EU country and went back to my own home country. 10 months forward till today and I have my own ltd company which currently has 5 projects. Its doing pretty well money wise. All projects combined, I already earn more then I ever did and I need to work max 10 hours a week since all projects are remote projects so I dont waste time on useless meetings and etc. However I dont feel fulfilled or challenged anymore because surprise surprise doing well paid projects doesnt guarante your sense of fulfillment.
So I noticed that I have lots of spare time which I spend diving into rabbitholes with hobby projects. I decided that its time to scale my company and take on more projects and maybe even hire more people.
So I started searching for other projects I could work on (prefferibly remote projects or flexible ones where I could come in 2-3 days a week in office and work remotely rest of the week). Reason being that I am already out of sync with fulltime position lifestyle and I am totally result oriented, not punch in my hours and go home oriented.
For exampleIf i get my weekly tasks I prefer to do them in 1-2 days (even if it requires doing double shifts which rarely but happens) but then I want to have rest of the week off. Thats how my brain works and thats how Im wired. I cant stand fulltime positions especially in enterprise bigger companies where I come in and do maybe 2 hours of actual work everyday because of all useless meetings and blockers from backend/etc. Its soul crushing to me.
So I posted linkedin ads and started searching for new clients/projects. One month ago I went to an interview for an android project in a startup.
The project looked interesting enough. Main task was to rewrite their android app from java to kotlin. Apparently their current current app was built by a backend developer who wants to focus solely on backend.
So during the interview they showed me their app which was quite simple frontend wise but not so simple backend wise from what I was able to figure out.
Their project lead (also a backed guy) asked me my estimation of price and completion of task. I told them maybe 2-3 months to do everything properly.
Project lead was basically shocked because all other candidates told him they can rewrite the app from java to kotlin in 2-3 weeks. I told him that everything is possible but his app quality will suffer and for a better estimation he would we would need to sign an NDA so I could evaluate the costs. So we ended the interview.
After that we kept in touch for one month (it took them one month to google a generic NDA and sign it digitally with me).
So heres the redflags I noticed:
1. They dont respect my time. Wasted 1 month of my time and after signing NDA gave me 2days to estimate their project and go to a meeting and give them detailed info about what I can offer. I thats not a brain rape then I dont know what it is
2. They are changing initial conditions we talked about. We agreed on rewriting the codebase and be done with it. Now they prefer a fulltime worker who would be responsible for android app as his own product. So basically project lead was not able to find a fulltime dev so now hes trying to convert me (a company owner) to his fulltime worker.
3. Lack of respect. During the interview he started speaking in his own native language to me with some expression (he seemed pissed off at that moment when he switched languages).
4. Bad culture fit. As I said Im used to relaxed clients and projects where I dont need to be chained to a desk a monitored and be micromanaged. I mean lets sign a contract give me access to your codebase and tell me what to do, I will produce results and lets be done with it.
5. Project lead is a backend guy who doesnt understand how complicated android apps can be. No architecture and no unit tests are in his frontend app. He doesnt care about writing proper app since he ships it in his own device so he doesnt need to worry about supporting custom devices or different api levels of android and etc. But not having any architecture? Cmon.
So basically I am confused. Project lead needs a fulltime dev but hes in contact with me in hopes that I would sign a fulltime contract. But how I can work fulltime if all what I can see are redflags?
Basicaly I thinkthis was a misundersanding. Im searching for fulltime remote projects and hes offering fulltime inhouse projects. Project lead never outsourced so hes confused as well.
As you can see decision is already basically made to turn him down, I just need to know how to tell him to fck off in the most polite manner and thats it.6 -
Let me create the Drupal train.
Fuck Drupal, its verbose shit, how it's supposed to inherit from Symfony, how it's not (at all), how it needs to create a WHOLE FUCKING TABLE FOR EVERY SINGLE TEXT INPUT, how it's required to write TWO LONG ASS PHP lines of code to display ONE FUCKING IMAGE.
Fuck these millions of hooks that allows you to do "incredible stuff" that you could normally do without Drupal.
Fuck how templates are generated, you wouldn't believe how bad it is, and how web integrators are loosing their mind to try to correctly display datas that are contained
Finally, the people who wants some "modern stuff" and make the tests even harder to write and the site uglier.
I just can't believe that recruiters still want to hire people for some Drupal shit.2 -
These goddamn fuckers who every week spam people because their CI or code is broken. Apparently it's more important than other projects. Douchenuggets send an email and CCs the whole department and all the bosses and basically says "It's all broken, the whole company needs to work on this asap, it's possibly x other person's fault".
Then when you try to troubleshoot it because bosses want it fixed, the dumb pieces of fuck made a bug in their code that they could have easily fixed if they took the time to troubleshoot themselves instead of panicking like jackasses. Or better, have good tests and actual error handling.
I swear some day I am gonna get into a fistfight I started because of this bullshit. -
I'm an iOS developer and I cringe when I read job specs that require TDD or excessive unit testing. By excessive I mean demanding that unit tests need to written almost everywhere and using line coverage as a measure of success. I have many years of experience developing iOS apps in agencies and startups where I needed to be extremely time efficient while also keeping the code maintainable. And what I've learned is the importance of DRY, YAGNI and KISS over excessive unit testing. Sadly our industry has become obsessed with unit tests. I'm of the opinion that unit tests have their place, but integration and e2e tests have more value and should be prioritised, reserving unit tests for algorithmic code. Pushing for unit tests everywhere in my view is a ginormous waste of time that can't ever be repaid in quality, bug free code. Why? Because leads to making code testable through dependency injection and 'humble object' indirection layers, which increases the LoC and fragments code that would be easier to read over different classes. Add mocks, and together with the tests your LoC and complexity have tripled. 200% code size takes 200% the time to maintain. This time needs to be repaid - all this unit testing needs to save us 200% time in debugging or manual testing, which it doesn't unless you are an absolute rookie who writes the most terrible and buggy code imaginable, but if you're this terrible writing your production code, why should your tests be any better? It seems that especially big corporate shops love unit tests. Maybe they have enough money and resources to pay for all these hours wasted on unit tests. Maybe the developers can point their 10,000 unit tests when something goes wrong and say 'at least we tried'? Or maybe most developers don't know how to think and reason about their code before they type, and unit tests force them to do that?12
-
So the saga of broken fucking everything continues at work, and I'm managing it, effectively, and doing it correctly on the first go-round. It's a long process though, because the two retards who preceded me were equally inept for completely different, yet equally disruptive and destructive reasons. The first dude was just plain psychotic, probably still is. I'd post some of his code, but I don't want anyone's face to melt off like those Nazi dudes at the end of Raiders of the Lost Ark. I can handle it because I'm constantly inebriated, which is not as fun as it sounds. If you have to ask yourself if you can handle it, you probably aren't, unless you've had to Uber to/from work due to still being fucking drunk. Anyway, enough about that, and it was only like twice. The rest of the times, I was more blazed than Jerry Garcia at a weed smoking contest. Moving along.
UPS shipping labels broke two weeks ago, I fixed it, but these fucking 10xers jointly decided to not only never implement anything resembling error handling, other than EMPTY GOD DAMN "try/catch"es (empty catch, wow so efficient), and instead of using COMMENTS, which I know are a new thing, they'd wrap blocks of code in something like: if 1 = 0 {} FUCK YOU DICKFACES. As I was saying before I got emotional again, they tied the success to all kinds of unrelated, irrelevant shit. I'm literally needle/haystacking my way through the entire 200GB codebase, ALONE, trying to find all the borked things. Helpfully, my phone is ringing all the time from customer service, complaining about things that are either nothing to do with the site, or due to user stupidity, 75% of the time.
A certain department at my company relies on some pretty specific documents to do their job, and these documents are/were generated from data in the database. So until I can find and fix all of the things, I've diverted my own attention as much as possible to the rapid implementation of a report generation microservice so that no one elses work is further disrupted while I continue my cursed easter egg hunt from fucking hell.
After a little more than two days, I'm about to lauch a standalone MS to handle the reports, and it's unfortunately more complicated than I'd like, because it requires a certain library that isn't available on Winblows, so I've dockerized the application. Anyway, just after lunch, I've finished my final round of tests, and I'm about ready to begin migrating it to the server and setting up (shitty fucking shit) IIS to serve it appropriately. At this point, this particular report has been unavailable by web for about 8 days.
A little after lunch, and with no forewarning of any kind, the manager of managers runs upstairs and screams at me to "work faster" and that "this needs to be back online RIGHT NOW", but I also know that this individual is going to throw a fit if things on this pdf aren't a pixel perfect match. So I just say "that's some amazing advice, I wish I'd had the foresight to just do it better and work faster". Silence for a good five seconds, then I follow up with "please leave and let me get back to my work". At that moment from around the corner, my "supervisor" suddenly, magically even, remembers that he has had the ability to print this crucial, amazingly super fucking important document all along, despite me directly asking him a week ago, and he prints it and takes it where it needs to go. In the time that it takes him to go to that other department and return, I deploy my service.
I spent the rest of the day browsing indeed and linkedin jobs, but damn this market is kinda weird right now, yeah?2 -
What the fucking fuck. Arquillian you piece of shit.
I have a service that needs to go to production soon, it contains Arquillian tests. The tests work locally but not when going through our new Jenkins pipeline. The error message simply says: "Could not start Arquillian container".
Well fuck you too.
After 3 fucking days of rewriting configs, changing up things and I dont know what else I did, I stubled upon the most hidden error message in the history of error messages, a small little line that says "Could not find or load main class ".
Those 2 spaces are intentional btw, because the fucking error was that when starting arquillian and reading the config there was A FUCKING SPACE too much in my JVM arguments. This piece of shit iterpreted it as my FUCKING MAIN CLASS. Whhhhyyyyy, whhhyyyy. Who the fuck... AAAAAAAAAHHH
Btw I snuck myself on devrant a few weeks back and managed to get my 100++ today. Really love this place 😊1 -
[CONCEITED RANT]
I'm frustrated than I'm better tha 99% programmers I ever worked with.
Yes, it might sound so conceited.
I Work mainly with C#/.NET Ecosystem as fullstack dev (so also sql, backend, frontend etc), but I'm also forced to use that abhorrent horror that is js and angular.
I write readable code, I write easy code that works and rarely, RARELY causes any problem, The only fancy stuff I do is using new language features that come up with new C# versions, that in latest version were mostly syntactic sugar to make code shorter/more readable/easier.
People I have ever worked with (lot of) mostly try to overdo, overengineer, overcomplicate code, subdivide into methods when not needed fragmenting code and putting tons of variables.
People only needed me to explain my code when the codebase was huge (200K+ lines mostly written by me) of big so they don't have to spend hours to understand what's going on, or, if the customer requested a new technology to explain such new technology so they don't have to study it (which is perfectly understandable). (for example it happened that I was forced to use Devexpress package because they wanted to port a huge application from .NET 4.5 to .NET 8 and rewriting the whole devexpress logic had a HUGE impact on costs so I explained thoroughly and supported during developement because they didn't knew devexpress).
I don't write genius code or clevel tricks and patterns. My code works, doesn't create memory leaks or slowness and mostly works when doing unit tests at first run. Of course I also put bugs and everything, but that's part of the process.
THe point is that other people makes unreadable code, and when they pass code around you hear rising chaos, people cursing "WTF this even means, why he put that here, what the heck this is even supposed to do", you got the drill. And this happens when I read everyone code too.
But it doesn't happens the opposite. My code is often readable because I do code triple backflips only on personal projects because I don't have to explain anyone and I can learn new things and new coding styles.
Instead, people want to impress at work, and this results in unintelligible, chaotic code, full of bugs and that people can't read. They want to mix in the coolest technologies because they feel their virtual penis growing to showoff that they are latest bleeding edge technology experts and all.
They want to experiment on business code at the expense of all the other poor devils who will have to manage it.
Heck, I even worked with a few Microsoft MVPs.
Those are deadly. They're superfast code throughput people that combine lot of stuff.
THen they leave at you the problems once they leave.
This MVP guy on a big project for paperworks digital acquisiton for a big company did this huge project I got called to work in, which consited in a backend and a frontend web portal, and pushed at all costs to put in the middle another CDN web project and another Identity Server project to both do Caching with the cdn "to make it faster" and identity server for SSO (Single sign on).
We had to deal with gruesome work to deal with browser poor caching management and when he left, the SSO server started to loop after authentication at random intervals and I had to solve that stuff he put in with days of debugging that nasty stuff he did.
People definitely can't code, except me.
They have this "first of the class syndrome" which goes to the extent that their skill allows them to and try to do code backflips when they can't even do code pushups, to put them in a physical exercise parallelism.
And most people is like this. They will deny and won't admit, they believe they're good at it, but in reality they aren't.
There is some genius out there that does revoluitionary code and maybe needs to do horrible code to do amazing stuff, and that's ok. And there is also few people like me, with which you can work and produce great stuff.
I found one colleague like this and we had a $800.000 (yes, 800k) project in .NET Technology, which consisted in the renewal of 56 webservices and 3 web portals and 2 Winforms applications for our country main railway transport system. We worked in 2 on it, with a PM from the railway company.
It was estimated 14 months of work and we took 11 and all was working wonders. We had ton of fun doing it because also their PM was a cool guy and we did an awesome project and codebase was a jewel. The difficult thing you couldn't grasp if you read the code is if you don't know how railway systems work and that's the only difficult thing.
Sight, there people is macking me sick of this job11 -
Everyone who runs tests on our platform complains about the speed and says that it needs to be optimised ASAP. Then assumes someone else will do it. Then a few weeks later they complain again!
Vicious cycle...Vicious cycle! -
Unit tests are like the second half of a watermelon. It exists, yet no one needs it.
You only need it if you're a misanthrope who wasn't invited when everyone else ate the first half.5 -
Math Doctor: The Best Math Tutoring Services Near You in Toronto
Are you in search of the best math tutors near me or reliable math tutoring services near me in Toronto? Look no further! At Math Doctor, we are dedicated to helping students at all levels achieve success in math. Whether you’re struggling with basic math concepts or preparing for advanced courses, our expert tutors are here to guide you every step of the way.
Located at 2300 Yonge St, Toronto, ON M4P 1E4, Canada, Math Doctor offers top-notch math tutoring services for students of all ages. Our team of professional tutors is committed to providing personalized instruction that ensures academic success, boosts confidence, and helps you master the skills you need to excel in math.
Why Choose Math Doctor for Your Math Tutoring Needs?
When it comes to finding the best math tutors near me, it’s essential to choose a tutoring service that is both knowledgeable and supportive. Here’s why Math Doctor stands out:
Highly Experienced Tutors: Our team consists of highly qualified and experienced tutors who specialize in all areas of math—from elementary school math to advanced high school and university-level courses. With their deep understanding of the subject, they’re able to break down complex concepts and present them in ways that are easy to understand.
Personalized Approach: At Math Doctor, we recognize that every student learns differently. That's why we tailor each lesson to meet the individual needs of the student. Whether you’re looking to improve your grades, get ahead of the class, or simply gain a better understanding of the subject, we customize our sessions to focus on your specific goals.
Wide Range of Math Subjects: We offer math tutoring services in a variety of subjects, including:
Basic Arithmetic: Building foundational skills for young learners.
Algebra: Understanding variables, equations, and problem-solving.
Geometry: Mastering shapes, angles, and spatial reasoning.
Calculus and Advanced Math: Preparing for higher-level courses and exams.
Statistics and Probability: Learning how to analyze data and make predictions.
SAT, ACT, and Other Test Prep: Preparing for standardized tests with expert guidance.
Convenient Location and Flexible Hours: We are conveniently located at 2300 Yonge St, Toronto, ON M4P 1E4, Canada, making it easy for students throughout the city to access our tutoring services. We also offer flexible hours, including evenings and weekends, to accommodate busy schedules. Need tutoring from home? We provide online sessions as well for added convenience.
Math Tutoring Services Near Me: The Benefits of Choosing Math Doctor
When searching for math tutoring services near me, it’s important to find a provider that offers more than just basic lessons. Here’s why Math Doctor is the best choice:
In-Depth Assessments: We begin by assessing the student's current level of understanding, identifying strengths and areas that need improvement. This allows us to create a personalized tutoring plan that targets the specific areas that need the most attention.
Proven Results: Our tutoring methods have helped countless students improve their math grades, gain a deeper understanding of math concepts, and feel more confident in their abilities. Whether you're preparing for an exam or trying to catch up on missed lessons, our tutors are committed to helping you succeed.1 -
Kingston Hearing Services: Your Trusted Partner for Hearing Aids, Ear Wax Removal, and Invisible Hearing Aids
At Kingston Hearing Services, we are dedicated to providing expert hearing care that enhances your quality of life. Whether you’re in need of hearing aids, professional ear wax removal, or seeking invisible hearing aids for a discreet solution, our team is here to assist you. Conveniently located at 16 The Triangle, Kingston upon Thames KT1 3RT, we offer personalized care and high-quality services to ensure you hear life’s sounds clearly and comfortably.
Why Choose Kingston Hearing Services?
At Kingston Hearing Services, we understand that hearing health is important for your overall well-being. Our team of audiologists takes the time to evaluate your specific needs and provide solutions that work for you. From comprehensive hearing tests to fitting the perfect hearing aids and providing ear wax removal, we are committed to delivering the best care for your hearing health.
Hearing Aids: Tailored Solutions for Every Need
Whether you're experiencing mild hearing loss or more significant hearing challenges, hearing aids are an effective solution to help you regain a clearer and more vibrant hearing experience. At Kingston Hearing Services, we offer a wide range of hearing aids from trusted brands that cater to various hearing needs.
Our team of audiologists will work closely with you to choose the right hearing aids based on your hearing test results, lifestyle, and preferences. Whether you need a behind-the-ear model, a in-the-ear hearing aid, or invisible hearing aids, we ensure a perfect fit and optimal sound quality. Additionally, we offer continuous support and adjustments to ensure that your hearing aids work efficiently and comfortably.
Ear Wax Removal: Essential for Clear Hearing
Ear wax removal is an essential service for maintaining healthy ears and clear hearing. When ear wax accumulates in the ear canal, it can cause discomfort, muffled hearing, and even temporary hearing loss. At Kingston Hearing Services, we offer safe and effective ear wax removal using advanced techniques such as microsuction to gently and precisely remove the excess wax.
Our audiologists are trained to perform ear wax removal procedures that ensure the health of your ears while improving the performance of your hearing aids. If you're experiencing a blocked feeling in your ears, discomfort, or a decrease in hearing, our ear wax removal service is the solution to restore clarity and comfort.
Invisible Hearing Aids: Discreet and Effective Solutions
For those who prefer a more discreet hearing solution, invisible hearing aids are the perfect option. These tiny hearing aids are designed to fit comfortably inside your ear canal, making them nearly invisible to others. Despite their small size, invisible hearing aids offer excellent sound quality and performance, helping you hear better without drawing attention to your device.
At Kingston Hearing Services, we offer a variety of invisible hearing aids from leading brands. These devices are equipped with advanced features like noise reduction, automatic sound adjustments, and Bluetooth connectivity, ensuring you can hear clearly in any environment. Our expert audiologists will work with you to ensure the best fit and performance for your invisible hearing aids, making sure they are customized to suit your hearing needs.
Comprehensive Hearing Services
In addition to hearing aids, ear wax removal, and invisible hearing aids, Kingston Hearing Services offers a full range of audiological services, including:
Comprehensive hearing assessments to evaluate your hearing and identify any underlying issues
Hearing aid fitting and programming to ensure optimal sound clarity and comfort
Follow-up support to fine-tune and adjust your hearing aids for the best experience
Tinnitus management to help alleviate symptoms of ringing in the ears
General ear health services, including ear wax removal and ear care advice
Our team is here to support you in every step of your hearing journey, ensuring that you always have the right solution for your hearing needs.
Visit Kingston Hearing Services Today
If you’re in need of hearing aids, professional ear wax removal, or want to explore invisible hearing aids, visit Kingston Hearing Services today. Located at 16 The Triangle, Kingston upon Thames KT1 3RT, we are here to provide expert care and personalized solutions to help you achieve better hearing.
Call us at +442078560319 to schedule a consultation with one of our friendly and knowledgeable audiologists. Let us help you experience the world of sound in its fullest with the latest hearing technology and expert care.1 -
GREEN ENERGIE HEATING: Your Reliable Heating and Plumbing Experts in Ely and Cambridge
At GREEN ENERGIE HEATING, we are dedicated to providing top-quality heating services, plumbing solutions, and gas installations throughout Ely and Cambridge. With years of experience in the industry, we offer a full range of services designed to keep your home comfortable, safe, and running smoothly. Whether you're in need of heating services, gas hob installation, or emergency plumbing, our skilled team is ready to assist you.
Reliable Heating Services in Ely
When it comes to heating services in Ely, GREEN ENERGIE HEATING is the trusted name in the area. We offer a comprehensive range of heating solutions, including installation, maintenance, and repair of central heating systems and boilers. Whether you need a new heating system installed, routine servicing to keep your system running efficiently, or repairs to restore warmth to your home, we have the expertise to handle all your heating needs. Our team works quickly and efficiently, ensuring that your heating system performs at its best all year round.
Expert Gas Hob Installation in Cambridge
If you're looking to install a gas hob in your kitchen, GREEN ENERGIE HEATING is here to help. Our experienced engineers offer professional gas hob installation in Cambridge, ensuring your appliance is set up safely and in compliance with all safety regulations. We take extra care to check for gas leaks and perform thorough safety tests to ensure your new gas hob operates perfectly. Whether you're upgrading your kitchen or replacing an old appliance, we provide efficient and safe installation services that give you peace of mind.
Emergency Plumbing Services in Cambridge
Plumbing issues can happen at any time, and when they do, you need a trusted professional who can respond quickly. GREEN ENERGIE HEATING offers reliable emergency plumbing services in Cambridge to address urgent plumbing issues as soon as they arise. From burst pipes and blocked drains to water leaks and more, our skilled plumbers are available to help you resolve the issue fast. We understand the stress that plumbing emergencies can cause, so we offer quick, efficient solutions to get your plumbing system back in working order with minimal disruption.
Comprehensive Plumbing Solutions in Ely
At GREEN ENERGIE HEATING, we also provide a wide range of plumbing solutions in Ely to meet your home or business needs. Whether you need a complete plumbing system installation, repairs, or maintenance, our team is equipped with the tools and expertise to provide high-quality plumbing services. From fixing leaks and replacing pipes to installing new fixtures and appliances, we offer professional plumbing solutions that keep your water systems running smoothly. We prioritize customer satisfaction and ensure every job is completed to the highest standards.
Why Choose GREEN ENERGIE HEATING?
Experienced and Certified Professionals: Our team consists of qualified heating engineers and plumbers with years of experience in the industry.
Comprehensive Services: Whether you need heating, plumbing, or gas installations, we offer a wide range of services to meet all your needs.
Fast and Efficient Service: We understand the importance of a quick response, especially in emergencies, and we’re committed to providing fast and effective solutions.
Customer-Focused: Your satisfaction is our priority, and we go above and beyond to ensure you receive the best possible service every time.
Get in Touch with GREEN ENERGIE HEATING Today
For all your heating services in Ely, gas hob installation in Cambridge, emergency plumbing in Cambridge, and plumbing solutions in Ely, GREEN ENERGIE HEATING is here to provide the expert service you need. Call us at +441638614625 or visit us at 37 Toyse Lane, Cambridge, CB25 0DF to schedule an appointment or to get immediate assistance. Let us take care of your heating and plumbing needs, ensuring your home or business stays safe, comfortable, and efficient all year long.
Reach out today to experience professional, friendly, and reliable service from the experts at GREEN ENERGIE HEATING!2 -
Understanding Medicare Part B with Variety Benefits Insurance Services
At Variety Benefits Insurance Services, we know that navigating the complexities of Medicare can be overwhelming, especially when it comes to understanding the different parts of the program. One of the key components of Medicare is Medicare Part B. Whether you are just starting with Medicare or reviewing your coverage, we are here to guide you through the ins and outs of Part B and help you choose the best options for your healthcare needs.
Located in Scottsdale, AZ, our experienced team of insurance professionals is here to provide personalized service and expert advice, ensuring you make informed decisions about your healthcare coverage.
What is Medicare Part B?
Medicare Part B is the part of Medicare that covers outpatient care, certain preventive services, and medically necessary services and supplies needed to diagnose or treat health conditions. While Medicare Part A covers inpatient care (such as hospital stays), Part B helps pay for services that you receive outside the hospital setting, including visits to your doctor, medical tests, and preventive care.
Enrolling in Medicare Part B is essential for comprehensive coverage, but it’s important to understand exactly what it includes and how it works with other Medicare options.
Why Do You Need Medicare Part B?
Here are some reasons why Medicare Part B is an important part of your healthcare coverage:
1. Outpatient Care
Medicare Part B covers outpatient care, including routine doctor visits, specialist consultations, lab tests, and diagnostic screenings. Whether you need a physical exam, a check-up with your specialist, or diagnostic tests like bloodwork, Part B helps cover these essential services.
2. Preventive Services
One of the key benefits of Medicare Part B is that it helps cover preventive services, such as cancer screenings, vaccinations, and wellness visits. Preventive care can help detect health issues early and keep your healthcare costs down. Services like flu shots, diabetes screenings, mammograms, and colonoscopies are covered under Part B with no additional out-of-pocket costs if received from a doctor who accepts Medicare.
3. Durable Medical Equipment (DME)
Medicare Part B also helps cover the cost of certain medical equipment that is necessary for your health, such as:
Wheelchairs
Oxygen equipment
Walkers
Hospital beds These items can be crucial in managing chronic conditions and improving your quality of life, and Part B provides coverage to help offset the cost.
4. Mental Health Services
Medicare Part B also covers services related to mental health, such as individual and group therapy sessions. Mental health is an important aspect of overall well-being, and Part B ensures you have access to the care you need to support your mental health.
What Does Medicare Part B Cover?
Medicare Part B covers a wide range of services, including but not limited to:
Doctor’s visits: Whether for routine check-ups or specialized care, Part B covers physician visits.
Emergency room services: Medicare Part B helps cover the costs of emergency services if you need treatment in an emergency room.
Diagnostic tests and lab services: Includes blood tests, X-rays, MRIs, and other diagnostic services that help detect or treat medical conditions.
Outpatient surgeries: If you need surgery that doesn't require an overnight stay, Part B covers the procedure.
Ambulance services: If you need emergency transportation to the hospital, Part B helps cover the cost.
Preventive care: Services such as flu shots, cancer screenings, and other preventive tests that help catch health issues early.
How Does Medicare Part B Work?
To get Medicare Part B, you must sign up during your Initial Enrollment Period (IEP), which typically occurs when you turn 65. Medicare Part B has a monthly premium, which is automatically deducted from your Social Security benefits.
Why Choose Variety Benefits Insurance Services?
Expert Knowledge: We have extensive knowledge of Medicare and Medicare Part B, and we’re here to answer all your questions.
Tailored Plans: We work with you to find the best Medicare Part B options and Medicare Supplement Plans to fit your unique needs.
Local Service: As a local business in Scottsdale, AZ, we offer personalized, face-to-face consultations and guidance for your Medicare decisions.
Ready to Learn More About Medicare Part B?
If you’re ready to get started or have questions about Medicare Part B, Variety Benefits Insurance Services is here to help. We will make sure you fully understand your options and find the right coverage for your healthcare needs.
Contact Us Today
Call +1 (480) 951-5860 or visit us at 28150 N Alma School Pkwy Ste 103-102, Scottsdale, AZ 85262. Let us help you navigate Medicare Part B and find the best options to meet your healthcare goals.
1 -
Numi Scan Derby - Pregnancy Ultrasound Clinic: Expert Care for Your Pregnancy Journey in Derby
At Numi Scan Derby - Pregnancy Ultrasound Clinic, we are committed to providing expectant parents with the highest quality ultrasound services and diagnostic tests to ensure a healthy and informed pregnancy experience. Our clinic is conveniently located at 482 Nottingham Rd, Chaddesden, Derby DE21 6PF, and we offer a wide range of services to support your pregnancy journey, including the early gender blood test Derby, private pregnancy scan clinic Derby, and baby scan clinic Derby.
Whether you are looking for early reassurance or excited to find out your baby’s gender, we are here to offer expert care, advanced technology, and a compassionate approach.
Early Gender Blood Test Derby – Discover Your Baby’s Gender Early
One of the most exciting milestones in pregnancy is learning your baby’s gender. At Numi Scan Derby, we offer the early gender blood test Derby, which provides you with the opportunity to know your baby’s gender as early as 10 weeks into pregnancy. This non-invasive blood test analyzes fragments of your baby’s DNA that are present in your bloodstream, providing accurate results with minimal risk.
The early gender blood test is one of the safest and most reliable ways to find out whether you're expecting a boy or a girl. It’s especially ideal for parents eager to know their baby’s gender early or those who want to make early preparations for their baby. At Numi Scan Derby, we ensure that your experience with us is stress-free and full of excitement, providing you with fast and reliable results.
Private Pregnancy Scan Clinic Derby – Confidential and Professional Care
At Numi Scan Derby, we understand the importance of privacy and comfort during your pregnancy scans. Our private pregnancy scan clinic Derby offers a safe, confidential environment where you can receive expert ultrasound services, all while feeling relaxed and supported.
Our clinic specializes in providing private scans, from early pregnancy scans to gender determination and 3D/4D imaging, all tailored to your needs. Whether you're seeking an early reassurance scan, a dating scan, or any other type of diagnostic scan, our private clinic ensures you receive personal attention and the highest level of care. We value your privacy and are committed to making your experience as comfortable and reassuring as possible.
Our experienced sonographers use the latest ultrasound technology to provide accurate and high-quality results. You can trust our team to explain every step of the process and ensure you are fully informed throughout your visit.
Baby Scan Clinic Derby – Comprehensive Ultrasound Services
As a leading baby scan clinic Derby, we offer a wide range of ultrasound services to help you bond with your baby and monitor their development throughout pregnancy. From your first early pregnancy scan to 4D baby scans, our clinic offers the latest imaging technology to provide you with clear and detailed pictures of your little one.
Our baby scan clinic Derby offers a full range of services:
Early Pregnancy Scans: Confirm your pregnancy, check for a healthy heartbeat, and assess early fetal development.
Gender Scans: Discover the gender of your baby with clarity and accuracy.
3D and 4D Scans: See your baby’s features in stunning detail, including facial expressions, movements, and even yawns or hiccups!
Reassurance Scans: Gain peace of mind by knowing that your pregnancy is progressing as expected.
No matter what type of baby scan you're looking for, Numi Scan Derby is here to provide you with the most accurate, high-quality imaging and compassionate care.
Why Choose Numi Scan Derby?
Advanced Technology: We use the latest ultrasound and blood test technology to provide you with accurate, reliable results.
Experienced Team: Our highly skilled sonographers and medical professionals are dedicated to giving you the best care possible.
Private and Comfortable Environment: Our private pregnancy scan clinic Derby ensures that you receive personal care in a calm, welcoming environment.
Comprehensive Services: Whether you're looking for an early gender blood test Derby, a baby scan clinic Derby, or a private pregnancy scan, we offer a wide range of services to support your pregnancy needs.
Convenient Location: Located at 482 Nottingham Rd, Chaddesden, Derby DE21 6PF, we are easily accessible to expectant parents in Derby and surrounding areas.
Affordable Pricing: We offer competitive pricing for all of our services, ensuring you receive high-quality care without the high cost.
Book Your Appointment Today
If you’re looking for an early gender blood test Derby, a private pregnancy scan clinic Derby, or a baby scan clinic Derby, look no further than Numi Scan Derby.5 -
Kingston Hearing Services: Comprehensive Hearing Solutions in Kingston upon Thames
At Kingston Hearing Services, we are dedicated to providing the highest quality hearing care in the heart of Kingston upon Thames. From Ear Wax Removal to offering Invisible Hearing Aids, we are your trusted partner in achieving better hearing. Our services are tailored to meet your unique needs, ensuring that you receive the best possible care and the most advanced hearing solutions available. Whether you are searching for hearing aids near me or need assistance with ear wax removal, we’ve got you covered.
Why Choose Kingston Hearing Services?
We understand that hearing is a vital part of your life, and we are here to help you enhance your auditory experience with expert care and advanced technology. Here’s why Kingston Hearing Services should be your first choice for hearing solutions:
1. Ear Wax Removal: Clear the Way for Better Hearing
One of the most common causes of hearing difficulties is ear wax buildup. At Kingston Hearing Services, we offer professional Ear Wax Removal services to help you clear any blockages and improve your hearing. Our trained professionals use safe and effective methods to ensure your ears are cleaned properly without causing harm or discomfort. Regular ear wax removal is an essential step in maintaining optimal hearing health, and our team is here to provide the care and support you need.
2. Invisible Hearing Aids: Discreet, Comfortable, and Effective
For those who want a more discreet hearing solution, Invisible Hearing Aids are the perfect choice. These hearing aids are designed to sit deep in the ear canal, making them virtually invisible to others. Despite their small size, invisible hearing aids offer powerful sound amplification and can significantly improve your hearing quality. Whether you are in a busy social setting or at home, invisible hearing aids can help you stay connected with the world around you without drawing attention to your device.
At Kingston Hearing Services, we offer a variety of invisible hearing aids from trusted brands, ensuring that you get a solution that fits your lifestyle and hearing needs. Our hearing experts will help you find the right fit and guide you through the process of wearing and maintaining your device.
3. Hearing Aids Near Me: Expert Care Just Around the Corner
If you’re searching for hearing aids near me, you’ve come to the right place. Kingston Hearing Services is located conveniently at 16 The Triangle, Kingston upon Thames KT1 3RT, making it easy for residents of Kingston and the surrounding areas to access high-quality hearing care. We offer a wide selection of hearing aids to suit every need, from entry-level models to advanced devices with the latest technology.
Our team of hearing care professionals will work closely with you to assess your hearing, recommend the best devices, and provide ongoing support to ensure you get the most out of your hearing aids.
Comprehensive Hearing Care for Your Needs
At Kingston Hearing Services, we believe in offering a holistic approach to hearing care. Our services go beyond just fitting hearing aids – we provide ongoing support, hearing tests, consultations, and treatments to ensure that your hearing remains in top condition. Whether you're dealing with ear wax buildup, looking for invisible hearing aids, or need expert advice on hearing aids near me, we’re here to help every step of the way.
Contact Us Today
Ready to take control of your hearing health? At Kingston Hearing Services, we’re here to provide you with personalized hearing solutions and expert care. Our services include Ear Wax Removal, Invisible Hearing Aids, and a wide range of hearing aids to fit your needs.
Location:
16 The Triangle, Kingston upon Thames KT1 3RT, United Kingdom
Phone:
+44 20 7856 03198

