Joined devRant on 6/25/2017
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Started a new job recently. Super cool place, awesome people and I get to do something that actually matters.
But I did get caught up in some organizational changes and have been in a bit of a weird situation. I'm employed in one department, but hired to participate in a project owned by another department. The project is sort of ongoing, but currently in a bit of a twilight zone because a new project team is being put together, and it'll be a few weeks before we're all ready.
Until that time, I am learning tons of new stuff. About the project, the technologies currently used and also exploring new tech and other ways we could go with it.
There's a lot of freedom granted to me, and I've had some good experiences and successes. But it's also a LOT to take in; starting a new job, learning multiple new technology stacks, and waiting for everything to really kick off for good. At which point things might get really hectic.1
I'm starting a new job in a month!
I'm simultaneously excited and anxious about it.
Excited because I get to work on some new cool projects, use new tech, get great pay and benefits, and it really seems like a great place for me.
Anxious because I am currently on sick leave with stress, because my current job wore me down. Not so much the tasks themselves, but the atmosphere and attitude of management. So I have to hope that I can manage to get enough rest in the coming month that I am well enough to perform well at my new job.4
I am a passionate software engineer.
That means that I strive towards excellence, in all aspects of software engineering. It also means that I cannot abide impediments towards those goals.
In practicality, it means that I will try as hard as I can to make the best possible solution for any specific problem. And that if I can make an improvement to the codebase that will make it easier for the next developer to work with it, I will absolutely make it.
I used to believe that my immediate manager had an understanding of my philosophy and why it was important not just to me personally, but to how the company had to move forwards in general also.
I just had a conversation today that completely flipped my perception of him and his role in the company.
I need a new job. Again. Because business people do not understand software, even if their entire business is based on software.4
You know, I've been fired from my first two jobs, currently on my third. I thought it was stressful enough to look for work when you absolutely need it to keep up your income.
But now I realize that it can be just as hard to look for new work when you are unhappy in your current position. Even if your skills are highly valued.
I've tried having two offers and accepting the one that felt right. Turned out bad in the end.
I've tried getting really excited about the first thing that fell in my lap and just jumping in to it. Did not go well either, as it turns out.
So now, even though I technically have all the time in the world to find the right place, I am second guessing myself constantly.
Should I go for something I'm not sure about because it pays well? - I really need the money, actually.
Or should I tough it out if I find 'The Perfect Place', but they can't pay me what I need?
And a lot of things also make me want to stay and try to fix the situation at my current job.
It's exhausting -_-7
One of my main hobbies is composing music. I had been in a creative funk for almost half a year when, during my vacation, I randomly discovered this little music production program for Nintendo Switch called Korg Gadget.
So far I've created 6 finished tracks, and this latest one I took a step further by giving some extra time and care.
I'm really glad to have the creative juices flowing again, especially since work has not been great lately...
Give it a listen, if you like. The other tracks are available as well :-)
New track. Sort of Synthwave. Composed with Korg Gadget on Nintendo Switch, mixed on a pc.
TFW your place of employment is slowly self-destructing because the owners have their heads in the sand.
Time for an exit strategy.3
That thing where you stay up way too late and end up dereleasing and refactoring a huge chunk of The Monolith....
I'm trying out blazor at the moment, building a couple of prototypes. I really need to brush up on my html/css for the view stuff, and of course there are a few gotchas. But other than that, I really think Microsoft has nailed browser apps with this!
Client side, server side, a mix of both, runs in all major browsers + as PWA or Electron.
All logic and view manipulation in C#, no JS. And the performance is great.
I have a huge axe to grind about companies sending me emails I have not consented to. Sometimes they have a checkbox for it, which I always, ALWAYS make sure I do not check. Sometimes they just add you automatically as soon as you enter your email adress.
Sometimes the 'Unsubscribe' link leads to a dead page, or just doesn't work.
And sometimes... They send you a bunch of emails to let you know they will absolutely stop sending you emails 😑
Why. Why? WHY? WHYYYYY?!?!?
Why are so many, even otherwise respected and very customer satisfaction minded companies so disgustingly cavalier or downright dirty about emails?
Even after this whole GDPR thing!1
Been bughunting the last week or so on this import job that is suddenly running so slowly that it takes more than 24h and is restarting on top of itself.
It used to run in anywhere from 4 to 8 hours, which was bad enough. You see, it ran on timer scheduled by our main site. So our deployment window was determined by when this job finished, and if it didn't finish during work hours, then no deployment that day.
So we got the idea to move it to a separate service to eliminate that deployment window bottleneck. And now, seemingly unrelated, it is just running slow as shit.
There is a lot of bad design in the code, and we know we want to build a completely new solution. But we also absolutely need this import to run every day until a better solution can take over.
We've taken care of some of the most obvious problems that could cause the poor performance, but it's unclear whether it's going to be enough. And with a runtime of about a day and wild variations of the most atomic partial imports, it's extremely tedious to test as well...3
I will turn this unholy, steaming, volatile, fubar, absolute shitstorm of a codebase into a thing of beauty, if it's the last thing I do!2
So after two and a half months of waiting 30-40 minutes for every build on the build server, and trying my best to start refactoring the hugeness of our main solution with limited success...
I discover that 2/3 of the build time is caused by the Get Source step deleting and getting EVERY BRANCH IN THE MAIN REPO!!!
This was taking 15-25 minutes. Every. Build.
I changed the build definition to map and cloak the repo correctly, so now the Get Source step takes less than a minute, and the whole build completes in 12-14 minutes...
Yowza! I guess that's a pretty good win to start my two week's vacation on ;-)
That feeling when...
...you can't build a project because you can't autogenerate some files because they rely on some other autogenerated files that rely on some other autogenerated files that can't be generated because the project can't build...
Just another day in the eye of the dependency hurricane!
Have spent the better part of two days trying to fix the build because I foolishly tried to update some NuGet packages :-(
Unit testing with NSubstitute and Autofac
For the most part, I find it a lot simpler than SimpleInject (hmm) and Moq, which I have used previously.
But there are still some of those 'Oh, for fucks sake!'-gotchas.
I was trying to test a class today where I wanted to substitute all other methods in the class than the one I wanted to test == an actual unit test.
I had previously found out how to do this:
1. Make sure the methods that should be substituted are internal to allow substitution.
2. Substitute class with Substitute.ForPartsOf<T>(args)
3. Set up methods that should not be called with instance.When(a => a.Method()).DoNotCallBase()
This way, you can unit test a class properly and only call the method that you want to test, and also control the return values of the other methods if needed.
So as I said, I have used this before to great effect. But today I just could NOT get it to work! I checked and rechecked everything but the test code kept calling the implementations of the substituted methods!
I even called over another dev for help, but he couldn't see the problem either.
I scoured the internet, but everyone just told me what I already knew: follow the 3 steps, and all is well. Not so!
I ALMOST considered doing the test improperly, as in, increasing the scope beyond that of the method I wanted to test.
But then it hit me... My project was missing this line in AssemblyInfo.cs:
I always add a line to make internals visible to the test project, but I had forgotten that NSubstitute needs this line as well to work properly.
Sometimes when a test fails it will tell you that you are missing this line. And sometimes it just doesn't work.
Maybe I will remember this in the future now. Maybe 😅
Just got a warning email from OneDrive saying my account would be frozen soon because I had used 28.1Gb of my alotted 5Gb...
Erm... First off, I do not use OneDrive. I use Google Drive and JottaCloud. I have actively tried to get RID of OneDrive in Win10, with all those damn notifications all the time.
Secondly, I guess it's nice that if you DO use OD and hit the limit, they don't just cut you off instantly. But nearly 500% overuse seems a little late to react, no?
So I logged in and looked around to find out what the hell was in there. Turns out, MS had decided to upload my entire images folder. I did not ask them to do that. Deleted them, but will have to check the damn OD service when I get home so I can KILL IT!
And I am going to have (yet another) talk with MS support as well, I think...7
I am currently looking for a DAW (Digital Audio Workstation), because my music projects are starting to get a little too complex for Audacity.
So I started looking for a good, easy-to-learn, ideally free program, and quickly learned that Avid now has a free version of Pro Tools called First.
So I go to their site and fill out the registration form to get the download. In addition to creating an account with Avid, you also need to create one with iLok, which apparently has something to do with how they manage their licenses. Kinda overkill for a free program, but okay...
I download the program (about 3gigs...), install it and try to start it. It gives me an error message about missing some service. Okay? I'm confused because I notice that an 'Application Manager' service has appeared in my tray, and when I open that I can log into my new account just fine. But it still doesn't work.
There's a link in the error message to the iLok website, and it looks like ai need to dowload and install another component. Why didn't that get installed with the program if it's required?
So I go to the iLok site, download it and install it. Pro Tools First still won't start. I realize that the PTF installer asked me to reboot, which I didn't do because: a) I always have a lot of windows open, and b) How often is a reboot ACTUALLY required? Why would you need to reboot?
So I (begrudgingly) reboot, and now the program seems to start initializing... but then it throws an error message about some plugin that it can't load because it doesn't work for the 64 bit version. Then... why are you even looking for it?
And then it says something like: 'I can't handle that, I'm just gonna shut down'.
I try starting it again. Same error appears, but then it gets past it this time... Only to throw another error message about something else it can't load, and therefore it must shut down.
Third time is the charm, the program actually made it to the project create/load screen! Huzzah!
So I look around a bit, but don't do much. It doesn't seem too intuitive to me, so I start watching some tutorials on YouTube from Avid themselves. It's a little late by now, so I don't get my hands dirty that day.
Next time I want to try out the program I start it up, still get error messages, but it does seem to initialize okay. But then the 'Create project' button doesn't react when I press it.
It turns out that the program takes a looong time to log in to the avid account, even though the manager service is running and logged in...
When it finally logs on I create a new blank project, but it doesn't ask me where to save it to. I see there is a counter saying 1/3 and looking around I find some info about 'cloud based projects'.
It would seem that this program only supports saving projects to the cloud, and you get only 3 projects total. Three. THREE?
I add an instrument track to my new project and select the one and only plugin, which is a synth. I don't see the plugin window, like in the tutorials I watched. I fiddle around with the windows, but I only manage to get the layout fucked up. There's a handy 'Window' menu, but none of the options resets the view. The main window is now sporting a WINDOWS FUCKING 7 BORDER! And partially blocking the view of the top menu.
Frustrated, I shut the program down and restart it. I now select one of the project templates (after waiting for it to LOG IN AGAIN!) in the hope that I might have a bit more luck with that starting point.
But when the template has loaded, out of nowhere, the program goes from maximized to windowed mode! And the fucking Win7 border is back again, still messing with the main menu!
I get the sucker maximized again and select one of the synth tracks, and Lo and Behold! The synth plugin window actually shows up! But of course there is no sound produced when I play, neither with the keyboard or my midi keyboard.
Oh no, that would have been too easy.
I see some the meters moving when I play, but no sound is produced. I check the options menu, but find out nothing useful except for the fact that the program only support 48kHz sample rate. That's pretty disappointing when you have a 192kHz/24bit soundcard.
I'm done. This piece of shit software is NOT for me. It's bloated, complicated to sign up for and install, extremely limited and buggy as hell!
The final insult is that it takes 5 minutes to uninstall because there is no uninstall option in the so-called 'Application Manager' (of course fucking not!), and doing it through Programs & Features there are 5 (FIVE!!) different apps and services to uninstall, one by one.
0/10, would not recommend.11
Today I finally finished editing the video for my new song. I have been working on the song itself, recording hundreds of takes of instruments and vocals, for almost four weeks now.
Editing the video took about 3 days, partly because I am using Hitfilm 4 Express for the first time. It's definitely a huge step up from Windows Movie Maker, but I did hit one mindboggling snag which delayed me for more than an hour.
When the editing was done and I exported the finished video, I play it, only to discover that the first second or so of audio is missing. That's kind of important for a music video.
So I try all kinds of things. Reimporting the audio into the project in different resolutions, trying different rendering settings, deleting or adding audio tracks, you name it. And each time the finished video is missing that first second of audio.
And each render takes about 10 minutes to complete, which is a long time to wait for one second of silence!
Out of desperation I start thinking about adding the audio to the video in Windows Movie Maker, just because I know that always works, even if that will degrade the quality.
But before I do that I try one more thing: I add a few seconds of silence at the beginning of the song in Audacity, then import into Hitfilm one more time.
And then it works!
I shall report my findings to Hitfilm shortly :-)4
So on top of my Windows update frustrations, I just found out that Microsoft has been scamming me out of money for two years!
I bought an android tablet in 2016 which came with a free 1 year subscription to Office365. They demanded credit card info, so I made sure to pre-cancel it to avoid getting charged when the year was up.
Today I find a line on my bank statement that just says 'MICROSOFT', and I think to myself: 'What the hell is that?!?'
It takes some digging for the email adress I used and trying to navigate various MS sites until I realize that those bastards have auto-renewed the subscription twice now!
I missed it last year, but luckily since I caught the latest one within 30 days I can get a full refund.
Will contact their support tomorrow to get the rest of it back. Too tired right now to deal with their support jungle of circular links and virtual assistants...2
Windows 10 updates. I see many posts about singular events that people have experienced, so I thought I'd try to sum up all the problems I have had.
Home computer, always on:
Is scheduled to update during 'inactive hours' but the options for that window are too narrow. So almost daily the 'required updates' overlay pops up WHILE I'M DOING STUFF and I have to say 'Ok' then close the update settings window that opens automatically so I can get on with what I'm doing.
Now, if I'm just browsing, writing or something like that, it's just really annoying.
But when I'm gaming and it causes the game to freeze up (because, you know, ubisoft and ea and such) and I lose my progress, that pisses me off.
When I'm hosting movie night with my friends and the movie gets interrupted, that pisses me off.
Even when I'm just trying to relax with a good show after a hard day and THAT gets interrupted, it really bugs me.
And then when there's a major update and I don't want to schedule it right away, they decide that I probably meant 'do it in an hour'. And then a message pops up every hour with only the option to postpone one more hour. What happened to all the options for scheduling it for several days in the future? Nope! Can't decide? We'll do it RIGHT NOW, NO TAKEBACKS, THAT'S FINAL!
I cannot fathom that they can't find a way to ACTUALLY do the 'inactive hours' thing.
And then there's the work computer. For the last two years, that has been a laptop that I shut down and take home every day. The common problem with that is that it always tells me it has to update when I want to shut down for the day because I have to go home. I can't leave the pc turned on in my bag, it would overheat. So since there is no option to shut down without updating anymore, I have had to rely on the fact that using the power button to shut down circumvents the update.
And if I don't remember to update at home, it's then going to waste my time the next morning at work.
Just give me the option to delay for a bit, then remind me NON-INTRUSIVELY so I can do it when I have the time.
And then there was the update that prevented the machine from booting and I had to waste TWO working days reinstalling EVERYTHING! And we were about 6-7 people hit by that update in our organization.
So yeah. Windows updates are a real fucking problem. Yes, I wan't critical fixes for security problems and other serious software flaws.
But the current policy of 'fuck you, we're doing this' is just not fucking acceptable in any way.3
Once took over a bunch of webservices from a coworker who had found another job.
Worst bunch of copy-pasted, anti-pattern, duplicates-ridden, dead-code infected spaghettimess I ever saw.
I spent a year getting that shit into a semblance of order. You could tell for certain the guy had no professional pride or sense of maintainability.
The kicker is, after that year of getting everything in shape, I got laid off due to cutbacks.
'Hey, great work, Refactor Ninja!
Now leave, you must be needed elsewhere!'
My team and I are working on a huge project that's been in development for years.
First deadline was in the fall last year. We were never going to make that.
Then we were supposed to be ready just after the summer holidays (months ago). We didn't make that either.
Then we were supposed to launch last week. Didn't happen, still too many critical errors and unfinished, untested features.
Now we are having daily meetings to discuss whether we'll be ready to release... that day!
Meanwhile, stability issues and other critical errors keep popping up. The product is barely finished and has not been through rigorous testing with all the latest features and bug fixes. Not to mention that we don't really have a deployment pipeline either.
And here's the kicker: The customers don't know this is coming. It's highly anticipated, but only internally. It is a replacement for an existing product, which strives towards not changing the frontend too much.
Why do we rush it so? I get that a deadline can help motivate you to reach your goal, but how motivated will we be if the launch fails and we get buried in bugs and missing features?
Would it not be better to launch it with at least the confidence of knowing that we've tried to test it properly?9
Just spent about a day and a half debugging my code a million different ways, only to discover that the third party call that kept failing needed the id in UPPERCASE.
Was struggling with depression and stress for an extended period. So, naturally, I had more sickdays than average.
However, I was still managing to overperform on my goals, so when it came time to discuss salary I was hopeful.
Didn't get a raise, not even a pat on the back. My manager told me he couldn't justify giving me the raise I had earned simply because I had had too many sick days. So my actual performance didn't count. Everybody else got raises though.
On a previous occasion he told me that I had to 'Learn what it means to have a job' and get my priorities straight. I told him I already had very little social life so I could spend what little energy I had on work. I tried to explain to him how depression works and he assured me he understood.
Yeah, right. My colleague with back problems, who suddenly couldn't walk, didn't get that treatment.
Depression is real. I'm so glad they ended up firing me so I could work for a place that cares.8
That's an impressive algorithm there, cdkeys. You found nothing in 2ms.
Ask yourself: 'What do I really care about?'
Then find a company that makes a positive difference regarding those things.1
UI control packs. They look amazing in the demos, and are so easy to add...
And then they start breaking for no reason. Documentation is outdated. Examples never cover real world uses. There are a million versions, and the one you use is suddenly no longer available for download.
In the end you realize you could either have lived without that one feature you wanted it for, or rolled your own with much less work.