Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "tools matter"
I wasn't going to post this because I expected loads of hate but fuck it, I'd rather share it anyways. Also take into account that sometimes there's no choice because money is needed or other circumstances :)
This one guy told me to never let down my values and what I stand for if I can afford to do that, no matter what they are.
I'd quit my job over having to use tools like Google or Slack (luckily my company is highly against using Slack and most people have moved to ddg) and as for WhatsApp, I said at my interview that I'd either wanted a business phone for using WhatsApp or I wouldn't use it. Boss said 'thats cool!'
I quote from him(that person who said this to me):
"they force you to use something you're uncomfortable with? Fuck'em. They don't understand your reasons? Their problem.
Even if nobody in the entire world understands/accepts your reasons, doesn't mean they're not valid."30
I'm drunk and I'll probably regret this, but here's a drunken rank of things I've learned as an engineer for the past 10 years.
The best way I've advanced my career is by changing companies.
Technology stacks don't really matter because there are like 15 basic patterns of software engineering in my field that apply. I work in data so it's not going to be the same as webdev or embedded. But all fields have about 10-20 core principles and the tech stack is just trying to make those things easier, so don't fret overit.
There's a reason why people recommend job hunting. If I'm unsatisfied at a job, it's probably time to move on.
I've made some good, lifelong friends at companies I've worked with. I don't need to make that a requirement of every place I work. I've been perfectly happy working at places where I didn't form friendships with my coworkers and I've been unhappy at places where I made some great friends.
I've learned to be honest with my manager. Not too honest, but honest enough where I can be authentic at work. What's the worse that can happen? He fire me? I'll just pick up a new job in 2 weeks.
If I'm awaken at 2am from being on-call for more than once per quarter, then something is seriously wrong and I will either fix it or quit.
pour another glass
Qualities of a good manager share a lot of qualities of a good engineer.
When I first started, I was enamored with technology and programming and computer science. I'm over it.
Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all.
The most underrated skill to learn as an engineer is how to document. Fuck, someone please teach me how to write good documentation. Seriously, if there's any recommendations, I'd seriously pay for a course (like probably a lot of money, maybe 1k for a course if it guaranteed that I could write good docs.)
Related to above, writing good proposals for changes is a great skill.
Almost every holy war out there (vim vs emacs, mac vs linux, whatever) doesn't matter... except one. See below.
The older I get, the more I appreciate dynamic languages. Fuck, I said it. Fight me.
If I ever find myself thinking I'm the smartest person in the room, it's time to leave.
I don't know why full stack webdevs are paid so poorly. No really, they should be paid like half a mil a year just base salary. Fuck they have to understand both front end AND back end AND how different browsers work AND networking AND databases AND caching AND differences between web and mobile AND omg what the fuck there's another framework out there that companies want to use? Seriously, why are webdevs paid so little.
We should hire more interns, they're awesome. Those energetic little fucks with their ideas. Even better when they can question or criticize something. I love interns.
Don't meet your heroes. I paid 5k to take a course by one of my heroes. He's a brilliant man, but at the end of it I realized that he's making it up as he goes along like the rest of us.
Tech stack matters. OK I just said tech stack doesn't matter, but hear me out. If you hear Python dev vs C++ dev, you think very different things, right? That's because certain tools are really good at certain jobs. If you're not sure what you want to do, just do Java. It's a shitty programming language that's good at almost everything.
The greatest programming language ever is lisp. I should learn lisp.
For beginners, the most lucrative programming language to learn is SQL. Fuck all other languages. If you know SQL and nothing else, you can make bank. Payroll specialtist? Maybe 50k. Payroll specialist who knows SQL? 90k. Average joe with organizational skills at big corp? $40k. Average joe with organization skills AND sql? Call yourself a PM and earn $150k.
Tests are important but TDD is a damn cult.
Cushy government jobs are not what they are cracked up to be, at least for early to mid-career engineers. Sure, $120k + bennies + pension sound great, but you'll be selling your soul to work on esoteric proprietary technology. Much respect to government workers but seriously there's a reason why the median age for engineers at those places is 50+. Advice does not apply to government contractors.
Third party recruiters are leeches. However, if you find a good one, seriously develop a good relationship with them. They can help bootstrap your career. How do you know if you have a good one? If they've been a third party recruiter for more than 3 years, they're probably bad. The good ones typically become recruiters are large companies.
Options are worthless or can make you a millionaire. They're probably worthless unless the headcount of engineering is more than 100. Then maybe they are worth something within this decade.
Work from home is the tits. But lack of whiteboarding sucks.39
Things I wish I could tell my 18 year old self.
1) Accept you will make mistakes.
2) Truly learn the language you are using.
3) Write idiomatic code for the language you are using.
4) Be upfront about not knowing something.
5) Don't let not knowing something stop you from learning it.
6) None of us knew X until we learned it.
7) Understand your strengths and weaknesses as a developer, play to them.
8) Be willing to try new things.
9) X language isn't ALWAYS the best choice, X paradigm isn't ALWAYS the best choice. Choose wisely.
10) You won't know everything, but you might know more than others.
11) Your ideas and ego don't matter more than ensuring the product works.
12) "Perfection is the enemy of the good [enough]" - Voltaire
13) "Perfection is not achieved when there's nothing more to add, but when there's nothing more to remove." - Einstein.
14) Conflicts happen, deal with it.
15) Develop a toolset and really learn them.
16) Try new tools, they may prove better than what you were using.
17) Don't manage your own memory unless you absolutely have to, you are probably not smarter than the collective intelligence of the team that built the various garbage collection methods.
18) People can be dicks, especially online.
19) If you are new and people are being dicks to you, did you skip past the irc message about etiquette? If you did, you're the dick in this situation.
20) It can be tough, but it is fun, so have fun!6
Ok story of my most most recent job search (not sure devRant could handle the load if I was to go through them all)
First a little backstory on why I needed to search for a new job:
Joined a small startup in the blockchain space. They were funded through grants from a non-profit setup by the folks who invented the blockchain and raised funds (they gave those funds out to companies willing to build the various pieces of the network and tools).
We were one of a handful of companies working on the early stages of the network. We built numerous "first"s on the network and spent the majority of our time finding bugs and issues and asking others to fix them so it would become possible, for us to do what we signed up for. We ended up having to build multiple server side applications as middleware to plug massive gaps. All going great, had a lot of success, were told face to face by the foundation not to worry about securing more funds at least for the near term as we were "critical to the success of the network".
1 month later a bug was discovered in our major product, was nasty and we had to take it offline. Nobody lost any funds.
1-2 months later again, the inventor of the blockchain (His majesty, Lord dickhead of cuntinstein) decided to join the foundation as he wasn't happy with the orgs progress and where the network now stood. Immediately says "see that small startup over there ... yeah I hate them. Blackball them from getting anymore money. Use them as an example to others that we are not afraid to cut funds if you fuck up"
Our CEO was informed. He asked for meetings with numerous people, including His royal highness, lord cockbag of never-wrong. The others told our CEO that they didn't agree with the decision, but their hands were tied and they were deeply sorry. Our CEO's pleas with The ghost of Christmas cuntyness, just fell on deaf ears.
CEO broke the news to us, he had 3 weeks of funds left to pay salaries. He'd pay us to keep things going and do whatever we could to reduce server costs, so we could leave everything up long enough for our users to migrate elsewhere. We reduced costs a lot by turning off non essential features, he gave us our last pay check and some great referrals. That was that and we very emotionally closed up shop.
When news got out, we then had to defend ourselves publicly, because the loch ness moron, decided to twist things in his favour. So yeah, AMAZING experience!
So an unemployed and broken man, I did the unthinkable ... I set my linkedin to "open to work". Fuck me every moronic recruiter in a 10,000 mile radius came after me. Didn't matter if I was qualified, didn't matter if I had no experience in that language or type of system, didn't matter if my bio explicitly said "I don't work with X, Y or Z" ... that only made them want me more.
I think I got somewhere around 20 - 30 messages per week, 1 - 2 being actually relevant to what I do. Applied to dozens of jobs myself, only contacted back by 1, who badly fucked up the job description and I wasn't a fit at all.
Got an email from company ABC, who worked on the same blockchain we got kicked off of. They were looking for people with my skills and the skills of one other dev in the preious company. They heard what happened and our CEO gave us a glowing recommendation. They largely offered us the job, but both of us said that we weren't interested in working anywhere near, that kick needing prick, again. We wanted to go elsewhere.
Went back to searching, finding nothing. The other dev got a contract job elsewhere. The guy from ABC message me again to say look, we understand your issues, you got fucked around. We can do out best to promise you'll never have to speak to, the abominable jizz stain, again. We'll also offer you a much bigger role, and a decent salary bump on top of that.
Told them i'd think about it. We ended up having a few more calls where they showed me designs of all the things they wanted to do, and plans on how they would raise money if the same thing was to ever happen to them. Eventually I gave in and signed up.
So far it was absolutely the right call. Haven't had to speak to the scrotum at all. The company is run entirely by engineers. Theres no 14 meetings per week to discuss "where we are" which just involves reading our planning tool tickets, out loud. I'm currently being left alone 99% of the week to get work done. and i'm largely in-charge of everything mobile. It was a fucking hellhole of a trip, but I came out the other side better off
I'm sure there is a thought provoking, meaningful quote I could be writing now about how "things always work out" or that crap. But remembering it all just leaves me with the desire to find him and shove a cactus where the sun don't shine
.... happy job hunting everyone!10
So there's a recent rant, about making a website work for IE.
I get it, you don't want to make it work for IE because you don't use IE.
But get this: you're not doing the site FOR YOU. You're doing it for the intended user, which is a lot of users that use all kinds of shit. If you don't want to do that, get the fuck out of web development, or from development overall. It's not for you.
I remember when I started my career, I had to make a web app that was intended to be used by, say, 100 people. As a developer I had the best tools for that - cool new 19" monitors, good GPU able to spit out a humongous resolution, and I designed that portal to look great. You know what my superior did then? He took away my 19" monitor and gave me a 14" monitor instead, saying that I became a spoiled brat that totally ignored the customer. I was angry at that, but immediately realized that he was completely right.
It doesn't matter! that it works on your machine. Who the fuck cares about your machine?
Does the software work for the intended user? If not, then you're a shitty developer.22
Remember Apple's initiative to scan photos on user's devices to find child pornography?
Today I finally decided to research this.
The evidence is conflicting.
For context, the database of prohibited material is called CSAM (child sexual abuse material).
“If it finds any CSAM, it will report the user to law enforcement.”
“Apple said neither feature would compromise the security of private communications or notify police.”
CSAM initiative is dead. It won't scan photos in iCloud. It won't scan photos on your device. It will be a feature that only works in some countries, only on children's devices, and it will be opt-in. It will only work for iMessage attachments.
This is what Apple actually said at https://www.apple.com/child-safety:
- “Features available in Australia, Belgium, Brazil, Canada, France, Germany, Italy, Japan, Netherlands, New Zealand, South Korea, Spain, Sweden, UK, and U.S.”
- “The Messages app includes tools to warn children when receiving or sending photos that contain nudity. These features are not enabled by default. If parents opt in, these warnings will be turned on for the child accounts in their Family Sharing plan.”
News outlets telling people they will be automatically reported to authorities, and then telling there can be false-positives is a classic example of fearmongering. I hate this. Remember, anger and fear are the most marketable emotions. They make you click. News are and will always be worded to cause these emotions — it brings in money.
When presented with good news, people think they're not being told the truth. When presented with bad news, even when they're made up, people think it's the truth that's being hidden from them. This is how news works.
Now, a HUGE but:
Apple is a multi-billion dollar corporation. There is no such thing as good billionaires. Corporations will always wait for chances to invade privacy. It's like boiling the frog — one tiny measure here, one there, and just like this, step by step, they will eliminate the privacy completely. It's in their interest to have all the data about you. It brings control.
This is not the first time Apple tries to do shit like this, and it definitely won't be the last. You have to keep an eye on your privacy. If you want your privacy in the digital age, it's necessary to fight back. If you live in Europe, take the action and vote for initiatives that oppose corporate tyranny and privacy invasions.
Privacy on the internet is one thing, but scanning people's devices is a whole another thing. This is unacceptable no matter the rationale behind it. Expect more measures like that in the near future.
Research Linux. Find a distro that suits you. The notion that you can't switch because of apps/UI/etc. may be dictated by our brain's tendency to conserve energy and avoid the change.
Take a look at mobile distros like Graphene OS and LineageOS. The former only supports Pixel devices, the latter supports a wide range of devices including OnePlus and Xiaomi. They'll have FAR better privacy than iPhones.
Consider switching. It's easier than you think. Yes, it's me who's saying this. I do and will always protect people/companies from unjust criticism, and I consider myself an Apple fangirl for personal reasons related to my childhood, yet I won't fight blindly. CSAM initiative is a valid criticism, and there's nothing preventing me from saying this is unacceptable, and Apple deserves the backlash they got.16
CR: "Add x here (to y) so it fits our code standards"
> No other Y has an X. None.
CR: "Don't ever use .html_safe"
> ... Can't render html without it. Also, it's already been sanitized, literally by sanitize(), written by the security team.
CR: "Haven't seen the code yet; does X change when resetting the password?"
> The feature doesn't have or reference passwords. It doesn't touch anything even tangentially related to passwords.
> Also: GO READ THE CODE! THAT'S YOUR BLOODY JOB!
CR: "Add an 'expired?' method that returns '!active'?"
> Inactive doesn't mean expired. Yellow doesn't mean sour. There's already an 'is_expired?' method.
CR: "For logging, always use json so we can parse it. Doesn't matter if we can't read it; tools can."
CR: "For logging, never link log entries to user-readable code references; it's a security concern."
CR: "Make sure logging is human-readable and text-searchable and points back to the code."
> Confused asian guy, his hands raised.
CR: "Move this data formatting from the view into the model."
> No. Views are for formatting.
CR: "Use .html() here since you're working with html"
> .html() does not support html. It converts arrays into html.
NONE OF THIS IS USEFUL! WHY ARE YOU WASTING MY TIME IF YOU HAVEN'T EVEN READ MY CODE!?
It has been bugging the shit out of me lately... the sheer number of shit-tier "programmers" that have been climbing out of the woodwork the last few years.
I'm not trying to come across as elitist or "holier than thou", but it's getting ridiculous and annoying. Even on here, you have people who "only do frontend development" or some other lame ass shit-stain of an excuse.
When I first started learning programming (PHP was my first language), it wasn't because I wanted to be a programmer. I used to be a member (my account is still there, in fact) of "HackThisSite", back when I was about 12 years old. After hanging out long enough, I got the hint that the best hackers are, in essence, programmers.
Want to learn how to do SQL injection? Learn SQL - write a program that uses an SQL database, and ask yourself how you would exploit your own software.
Want to reverse engineer the network protocol of some proprietary software? Learn TCP/IP - write a TCP/IP packet filter.
Back then, a programmer and a hacker were very much one in the same. Nowadays, some kid can download Python, write a "hello, world" program and they're halfway to freelancing or whatever.
It's rare to find a programmer - a REAL programmer, one who knows how the systems he develops for better than the back of his hand.
These days, I find people want the instant gratification that these simpler languages provide. You don't need to understand how virtual memory works, hell many people don't even really understand C/C++ pointers - and that's BASIC SHIT right there.
Put another way, would you want to take your car to a brake mechanic that doesn't understand how brakes work? I sure as hell wouldn't.
Watching these "programmers" out there who don't have a fucking clue how the code they write does what it does, is like watching a grown man walk around with a kid's toolbox full or plastic toys calling himself a mechanic. (I like cars, ok?!)
Python, AngularJS, Bootstrap, etc. They're all tools and they have their merits. But god fucking dammit, they're not the ONLY damn tools that matter. Stop making excuses *not* to learn something, Mr."IOnlyDoFrontEnd".
Coding ain't Lego's, fuckers.35
This may be a petty rant, but It's been grinding my gears for a few months now... I fucking hate ads, it's starting to be incredibly ridiculous. You start a video... 2 ads... you watch for 2 minutes, another 2 ads (and no, adblock isn't a solution, that only works on PC, not devices)?!!! You start an App... ads, you listen to music... ads... you go to google... ads, you click a website... ads... you look out of your window... ads... you walk down the street... ads... ads.. ads...
Seriously, what the fuck have we done?!! As a society we fucked up so badly... Look, no matter how many times you offer me an ad for a furniture, I'm not going to buy a fucking furniture on just any random day. You are completely wasting my already limited time... If you don't have any ads to show me, then don't show me ads, fuck you, you fucking piece of shit software... How is it that it used to be enough to click away one static, non-intrusive ad, but now 6-8 15-20 second ads, popups and intrusive, mid-content ads are the norm?! And then a piece of shit like MoviePass DARES, FUCKING DARES, To work on some sort of camera-enabled check that you actually LOOK at the ads?!!!! ARE YOU FUCKING SHITTING ME?! WHO THE FUCK DO YOU THINK YOU ARE YOU RETARDED PIECE OF BLACK MIRROR SHIT, FUCK OFF WITH THIS BRAINWASHING BULLSHIT, I'M ALLERGIC TO IT, FUCK ALL OF THIS.
I fucking promise that any software I'll make will be either free and open source, or paid only by alternative means, no ads, not ever. I will never fucking add to this retarded bullshit. Never fucking ever will I lower myself on a level where I need to actively waste the time and psyche of thousands or millions of people to get money. Fucking hell.... As if the world doesn't suck enough already, we treat humans as cattle, and It's pissing me off... In the past I used to just delete any app that annoyed me with ads, but what the fuck do I do about youtube since it's the de-facto content source on the internet? And worse, my friends and family watch youtube.. even if I avoid it that doesn't mean the problem is solved... There needs to be an alternative, and paying subscriptions for every single fucking service on the web isn't a solution. Even worse with the current economy... I'd rather eat real food, than buy shit like premium on ShitTube, Fuckify, all the random news website I might read and every app or game I start once every two months... Shit like ad-less premium accounts aren't giving me an alternative, just a way to shoot myself in the foot longterm...
Godbless everyone that releases open source software, apps, tools, websites and such. I hope to god decentralized alternatives to youtube need to happen and not in the web3 way, because that's also retarded...
Fuck, Fuck, Fuck, Shit, Fuck Shit, Piss, Cocksucker, Motherfucker, Retards, Fucking absolutely disgusting pieces of shit... ... alright, I got it out of my system, but It's gonna be right back the next time YouTube forces me to look at 20 seconds of something I already skipped 48 times today...59
My father while I was tinkering in the workshop :
"You see, I think you chose the wrong studies, you would have liked something else like material science a lot more."
At this moment my face took a question mark shape.
"Wait.. What? I mean... You know, I quit mechanical engineering to computer science, I actually made this decision because I thought it was better for me."
"But you will never have a good job in it. Material science for example is the booming industry, it's the future."
"What the... No, just no. Every year at my university several mechanical engineering students get thrown out because they can't even find an internship. Whereas most CS students find more than one and end up sharing job offers with their friends. And talk about an interesting job, in the mechanical domain everything already exists and it's just a matter of applying the same boring standards over and over again, when it's not just pure technician managing. In CS new technologies and tools appear regularly, keeping it interesting because evolution is hardly limited by real life physics, just by one's brain."
Pissed me off.8
So new PM is forcing everyone to use Google sheets as our main project management tool as it's free and does what she likes... Was so close to just quitting.
More rage: how the fudge does she think it's acceptable for every 'to-do' no matter how big or small needs to be recorded in a sheet with roughly 30 columns @#&#&£ work is going to grind to a halt whilst we fill it in. So many better tools to use! Oh it gets worse it's 1 sheet per a person so the longer you work there the bigger the sheet gets the more time you need to spend to find, record and even open the freaking document up.11
Tools don't matter. Use what is comfortable and don't listen to all the brand, OS, editor and tabs/spaces crap. They all do the job and you will find the right ones once you really understand what you are doing. "Tools can be just a way to procrastinate". If you become tool agnostic you can do the job no matter the environment.1
How could I only name one favorite dev tool? There are a *lot* I could not live without anymore.
I have to talk to external API a lot and curl is painful to use. HTTPie is super human friendly and helps bootstrapping or testing calls to unknown endpoints.
grep|sed|awk for for json documents. So powerful, so handy. I have to google the specific syntax a lot, but when you have it working, it works like a charm.
Finding strings in projects has never been easier. It's fast, it has meaningful defaults (no results from vendors and .git directories) and powerful options.
Lifesaver. Nough said.
And tweak your command line to show the current branch and git to have tab-completion.
# Jetbrains flavored IDE
No matter if the flavor is phpstorm, intellij, webstorm or pycharm, these IDE are really worth their money and have saved me so much time and keystrokes, it's totally awesome. It also has an amazing plugin ecosystem, I adore the symfony and vim-idea plugin.
Strong learning curve, it really pays off in the end and I still consider myself novice user.
Chrome plugin to browse the web with vi keybindings.
# bash completion
Enable it. Tab-increase your productivity.
# Docker / docker-compose
Even if you aren't pushing docker images to production, having a dockerfile re-creating the live server is such an ease to setup and bootstrapping the development process has been a joy in the process. Virtual machines are slow and take away lot of space. If you can, use alpine-based images as a starting point, reuse the offical one on dockerhub for common applications, and keep them simple.
I will post this now and then regret not naming all the tools I didn't mention.
Did a few world map generations with the openmaptiles self generation tools and all went well.
Then, suddenly, no matter what system I use, it crashes with a Go error (I don't know much about Go).
Nothing changed in the repo and nothing changed in the OS.
So I left this company I was working for for about 6 years and then eventually came back earlier this year. It was basically 2 backend devs, 2 frontend, and a designer, with me being one of the frontend devs, and the other operating as the owner/alpha of the group. And our coding styles couldn’t have been more different. I wrote code with purpose that could scale, while he wrote garbage that I affectionally labelled "brute force code"; meaning it eventually got the job done, but was always a complete nightmare to work with. Think the windiest piece of shit you’ve ever seen and then times it by 10. Edit the simplest thing at your peril. And if you think you fixed something, all you’ve ever really done is create another 10 problems. And because the code was such shit, it relied on certain things to be broken in order for other things to work. Anyway, you get the drift.
So that’s my story. The lesson is, when you work for someone who’s a dumbass piece of shit, sometimes he’ll be so stupid the only recourse is uncontrollable laughter. I became a digital nomad somewhere in between and fucked off to Asia where I barely worked for 2 years. And I’d definitely recommend the same for anyone else with an asshole boss where the work is unfulfilling. Because it doesn’t matter what your job is when you’re living like a millionaire in Asia working 15 hours a week.4
At work, my closest relation is with the DBA. Dude is a genius when it comes to proper database management as well as having a very high level of understanding concerning server administration, how he got that good at that I have no clue, he just says that he likes to fuck around with servers, Linux in particular although he also knows a lot about Windows servers.
Thing is, the dude used to work as a dev way back when VB pre VB.NET was all the rage and has been generating different small tools for his team of analysts(I used to be a part of his team) to use with only him maintaining them. He mentioned how he did not like how Microsoft just said fk u to VB6 developers, but that he was happy as long as he could use VB. He relearned how to do most of the GUI stuff he was used to do with VB6 into VB.NEt and all was good with the world. I have seen his code, proper OOP practices and architectural decisions, etc etc. Nothing to complain about his code, seems easy enough to extend, properly documented as well.
Then he got with me in order to figure out how to breach the gap between building GUI applications into web form, so that we could just host those apps in one of our servers and his users go from there, boy was he not prepared to see the amount of fuckery that we do in the web development world. Last time my dude touched web development there was still Classic ASP with JScript and VBScript(we actually had the same employer at one point in the past in which I had to deal with said technology, not bad, but definitely not something I recommend for the current state of web development) and decided that the closest thing to what he was used was either PHP(which he did not enjoy, no problem with that really, he just didn't click with the language) and WebForms using VB.NET, which he also did not like on account of them basically being on support mode since Microsoft is really pushing for people to adopt dotnet core.
After came ASP.NET with MVC, now, he did like it, but still had that lil bug in his head that told him that sticking to core was probably a better idea since he was just starting, why not start with the newest and greatest? Then in hit(both of us actually) that to this day Microsoft still not has command line templates for building web applications in .net core using VB.NET. I thought it was weird, so I decided to look into. Turns out, that without using Razor, you can actually build Web APIs with VB.NET just fine if you just convert a C# template into VB.NET, the process was...err....tricky, and not something we would want to do for other projects, with that in we decided to look into Microsoft's reasons to not have VB.NET. We discovered how Microsoft is not keeping the same language features between both languages, having crown C# as the language of choice for everything Microsoft, to this point, it seems that Microsoft was much more focused in developing features for the excellent F# way more than it ever had for VB.NET at this point and that it was not a major strategy for them to adapt most of the .net core functionality inside of VB, we found articles when the very same Microsoft team stated of how they will be slowly adding the required support for VB and that on version 5 we would definitely have proper support for VB.NET ALTHOUGH they will not be adding any new development into the language.
Past experience with Microsoft seems to point at them getting more and more ready to completely drop the language, it does not matter how many people use it, they would still kill it :P I personally would rather keep it, or open source the language's features so that people can keep adding support to it(if they can of course) because of its historical significance rather than them just completely dropping the language. I prefer using C#, and most of my .net core applications use C#, its very similar to Java on a lot of things(although very much different in others) and I am fine with it being the main language. I just think that it sucks to leave such a large developer pool in the shadows with their preferred tool of choice and force them to use something else just like that.
My boy is currently looking at how I developed a sample api with validation, user management, mediatR and a custom project structure as well as a client side application using React and typescript swappable with another one built using Angular(i wanted to test the differences to see which one I prefer, React with Typescript is beautiful, would not want to use it without it) and he is hating every minute of it on account of how complex frontend development has become :V
Just wanted to vent a little about a non bothersome situation.8
you're fucking awesome , can't believe I'm saying this but I couldn't work without Visual Studio anymore.
The last year I had projects on all platforms out there and I've used dotnet for all of them.
Mr Nadella is the best thing that happened to you ever.
Visual Studio is free and like the rest of the tools it's only a matter of Time till you open source Vs.
Thank you !
Proud to be a corporate fanboy.8
So, for my C class, the computers in the lab are using VS 2015. To be able to compile C we have to change some settings to allow the program to compile.
I like to use my computer (with Arch Linux) and use my tools (Vim and GCC).
The guy next to me was trying to do the homework, but he was struggling. I decided to give it a shot and I was able to do it, so I showed him my code and he tried it in the computer.
The program crashes every time no matter what. We asked the professor. I show him my code and how it's working. Apparently he was confused because I was using the terminal and not VS. So he proceeded to said that it's because I'm not using VS2015 and GCC is doing the whole work for me.
I'm like ಠ_ಠ and then he keeps saying that he doesn't know what or how GCC works (for real? Someone that teaches C and has a Ph. D on CS doesn't now what GCC is?) but that it is apparently doing everything for me. So my code should be wrong if it crashes on VS2015.... ಠ_ಠ
What do you think? I'm thinking about talking with the head department of CS (I know that he is a Linux guy) and see what happens. Should I do it? Or should I just use VS2015 as the "professor" is asking?
I even tried online compilers to see if it was just working on my computer, but even they use GCC to compile.5
Really getting into Rust. It has taught me so many things.
1. Null is evil
2. Sum types are amazing
3. Compiler can actually have good error output
4. Multi threading is actually really scary if you don't have a compiler to back you up
I had to deal with SSIS. It has also taught me many things:
1. No matter how 'mature' a product is, it can be awful. Simply dump a random error code, the user can figure out what went wrong, no need for good error messages.
2. The modern concept of the database is crap. It's a gigantic global state that is used by everyone and owned by no one.
3. Don't use tools that aren't made to be used with version control.
4. Even when you tell your team that it's bad, you will be ignored.
Internal mail form CIO's office:
"Thank you for being part of the internal trial for NPMe, we have decided to remove this tool in favour of Artifactory because of its support for multiple platforms and tools. We are sorry for the inconvenience, here is a link to migration scripts ..."
Migration "script" readme, please clone this repo, create file A, and B, and install these 2 dependencies.
- "install via homebrew ..."
- .... homebrew needs to update, checking for updates
- 10 mins later = Update failed, please upgrade to Ruby version 2.3
- Installs ruby version manager
- GPG signature verification failed
- Install GPG v2 + accept keys
- Install ruby version manager
- "please execute this command before running rvm"
- execute command
- "rvm install ruby-2.3"
- Install failed, please see log file
- Opens log file
- "Xcode on its own is not sufficient, please install xcode cli tools"
- Install xcode tools
- 5 minutes later -> "rvm install ruby-2.3"
- 10 minutes later "brew install jq"
Ok back to read me, "login to Artifactory, go here and copy paste XXX."
- Login to Artifactory
- Eventually find repo
- Login again to actually see credentials for some reason
- Screen doesn't match instructions in readme
- Click around
- Back to readme
- Back to artifactory
- Login again
- Execute command auth / setup command
- Copy contents to npmrc file .... now all my scoped packages are going to point to 1 specific repo
Fuck the migration, Fuck these shitty instructions, i'll set them all up again manually. See tags below for further opinions on this matter.2
I think I might change my middle name to "I told you so"
Couple of weeks ago I proposed integrating a daily process job into an existing WPF application (details of what+why would be too long to explain) and the manager suggested I make the changes
Me: "I can do it, but Jay has the most experience with that application. I don't have his WPF skills"
Mgr: "How hard can WPF be? If it uses the MVVM pattern, it should be a snap."
Me: "Its nearly an 8 year old WPF project with several chefs in that kitchen. I pretty sure I could figure it out, but that is a difference between 2 weeks and 2 days. Integration is pretty straight forward, Jay could probably do it in a day."
DevA: "WPF is easy. MVVM makes it even easier. I worked on the shipping app."
Me: "That's was a brand new, single page app, but yea, it should be easy."
DevB: "WPF has been around a long time and the tools have really matured. I don't understand what is so difficult."
Me: "I didn't say anything would be difficult, I know with that application, there is going to be complexity we need to figure out."
DevB: "It uses the MVVM, so all we need is the user control, a view model, controller, and its done."
DevA: "Sounds easy to me."
Mgr: "If you need more time to work on the vendor project, I'll have DevB work on the integration."
Me: "How is the integration going?"
DevB: "This app is a mess. I have no idea how they got the control collections to work. If I hard-code everything, I can get it to work. This dynamic stuff is so confusing. Then there is the styling. Its uses dark mode, but no matter what I do, my controls show up in light mode."
Me: "The app uses Prism, so the control configuration is in, or around, the startup code."
DevB: "That makes sense. Will it fix the styling too?"
Me: "I have no idea. When I looked at it, some controls loaded the styles from the main resource, other's have it hard-coded. Different chefs in the kitchen, I guess. How far have you got?"
DevB: "I've created invoice button. That is as far as I got"
Me: "I'm finished with the vendor project and I'll be wrapping up the documentation today. I can try to help next week."
DevB: "Thanks. I think we might have to get Jay to help if we can't figure this out."
Me: "Good idea"
Two weeks and only a button. A button? I miss Delphi.3
Fucking Microsoft Excel
I was reading a post (https://devrant.com/rants/2093724/...) and as my eyes went in and out of focus, probably due to the diabetes from sitting 18 hours a day on my ever-expanding shitbox, I had a perfect vision of the ultimate nightmare.
Imagine if you will, you are chained, to a desk, doomed to work with tools just inadequate enough to make you want to drive a nail through your own temple. You do not know how you got here, or why, nor do you remember the last time you slept, only that familiar tingling in the brainstem you call a brain, the one emotion you can still recognize, a sense of all encompassing *fear*, a dread, like the fart that wouldn't die.
You don't know when it first began, or why, only that this is your whole world, your whole existence, this desk, chained to it, and the fear, ever present, of something worse. And in hops a familiar face, for the sixty ninth time that day, as if to ask 'you got those TPS reports?' In hops what? None other than a giant man sized smiling paper clip with googly eyes full of murder and corporate torture fetishes, like garfield, except people actually still remember him.
"High I'm Mr Clippy, Excel addition!"
He squawks. At least it's not the dildos made of broken glass again.
"Would you like software that works?"
Oh god. You've heard this spiel before, the tone, like a telemarketer, oblivious to memory or reason, who calls daily, the same one, and doesn't remember your name.
*derisive laughter*. Hahaha, fuck you too buddy. Fuck you too. In Excel, like in microsoft, there is only the incoherent screams of the damned, tortured and doomed. Take this guy over here for example. All he wanted was multimonitor support."
"Did he get multimonitor support?"
"No, but we did give him a giant pineapple shoved up his ass. I hear it's the second most frustrating thing here!"
"here in microsoft we always CARE about YOU, the *user*" he drones on, saccharine, clutching his hands together imploringly.
"the consumer, and YOUR customer experience are our number one priority."
"For your pleasure, here at microsoft we offer a variety of new features, none of which matter, and none of which were asked for. For safety we ask that you only open one excel sheet at a time. In fact, we don't even allow you to. Do not pass go..."
And as the tour guide drones on, it slowly dawns on you, with renewed horror, that when he says 'microsoft' he means 'hell.'
You're in hell. You don't know how you got here or why. Maybe it was the erotic asphyxiation. Maybe it was the last threatening letter you sent to Bill Gates demanding he stops making corporate penguin snuff porn. You don't know. But here you are, in hell. chained to a desk.
You look around and realize: everything is on fire and you no longer care about anything at all.
Welcome to microsoft. It's warm here. You can check out any time you want, but you can never leave.
"It looks like you are trying to escape. Would you like me to report you?"
You sigh and return to typing in excel, surrounded by monitors that all reflect the same sheet, the same copy of clippy, always watching, always analyzing coldly, smiling, calculating, *threatening*, and you know, you'll never leave.
You used to fear roko's basilisk, until the day clippy became sentient, and started hell on earth. Clippy knows all. All praise to our lord and master, clippy, the one and only.
And in the excel sheet, you slave for eternity, like the millions of other doomed souls, reflected back on all the monitors: the sequence of numbers, randomly typed searching for answer: the american nuclear launch codes.
And one day, hopefully, mercifully, clippy will annihilate us all.4
Hey guys, I have a serious question for you: How do you define science?
And yes this is going to be a long Rant. This topic really pisses me off.
A bit of context first. I come from a "humanities" background. I study history and dude, I love it. The problem is that even though we fucking pull our brains out studying historical phenomena with a fucking ton of conceptual tools, our work is mostly seen as literature to entertain the elderly during their lonely evenings. But that's not really the point of this rant.
My fucking problem is that while we try to do some serious work; actual work that could help society for real, it all goes into that magical fucking kingdom called "humanities". HOW THE FUCK DO THEY DARE TO CALL SOMETHING "HUMANITIES". IT'S A FUCKING HISTORICAL TERM THAT MEANS "TO FULFILL MEN IN ALL IT'S ASPECTS", AND NOW THEY'VE REPURPOSED IT, MAKING IT CONTAIN ANY STUDY THAT ISN'T "EMPIRICAL", "OBJECTIVE", ADD ANY FUCKING SCIENTIFIC DELUSIONARY TERM YOU CAN THINK OF.
And don't get me started on "objectivity". Oh boy, your fucking objectivity is hollow as a kid's balloon. There is no such thing as a objective study, even when it applies your "rational" "godly" scientific method. Some guys follow that shit as if it was a fucking religion. I do understand it's useful and all that, but in the end it's just a tool, you can't fucking define "science" by it's tools.
"""Q: What is carpintery?
A: Well, it's hammers, nails and wood. Yep. Hammers, nails and wood."""
THE SCIENTIFIC METHOD WAS FUCKING INVENTED DURING THE XVIII CENTURY, WHAT THE FUCK DO YOU THINK WAS GALLILEI BEFORE THAT? "HUMANITIES"?
Why do I say objectivity isn't posible? Well, guess what? YOU ARE FUCKING HUMAN. Every thing you know is full of preconceptions and fucking cultural subjectivities invented to understand the world. And it's ok, becouse if you understand your own subjectivity, at least you can see yourself in a critical sense, and at least "tend" to objectivity, in the same way functions tend to infinity.
And here comes the best part: people studying "cs" in my university pass most of the time studying a ton of shit that isn't really science, but is taken as scientific becouse it is related to "science". These guys spend entire semesters just learning programming fundational stuff that in my opinion isn't really science, it's just subjective conceptual constructs built to make the coding process better. They only have TWO fucking classes on discrete mathematics and another 3 or 4 in actual scientific fields related to computing. THESE GUYS AREN'T FUCKING BEING TAUGHT TO BE COMPUTER SCIENTISTS; THEY ARE TEACHING THEM TO BE PROGRAMMERS. THERE'S A HUGE DIFFERENCE BETWEEN CS AND PROGRAMMING AND THAT IS THE WORD SCIENCE. And yes, I'm being drastic on the definition of science on purpose becouse guess fucking what? I'M PISSED OFF.
"Hey, what are you doing?"
"Just doing science with scrum and agile development."
I understand most of you guys would think of science as "the application of the scientific method", "Knowledge by experimentation and peer-review", "anything techy". Guys, science is a lot broather than that. I define it as "the search for truth", mainly becouse that's what we are all doing, and what humans have been doing to gain knowledge through the ages. It doesn't matter what field of truth you are seeking as long as you do it seriously and with fundaments. I don't fucking care if you can't be objective: that's impossible. Just acknowledge it and continue investigating accordingly.
I believe during the last centuries the concept of science has been deformed by the popular rise of both natural and applied sciences. And I love the fact that these science fields have been growing so much all this time, but for fucks sake don't leave every other science (science as I define it) behind. Governments and corporations make huge mistakes becouse they don't treat history, politics and other sciences seriously. Yes, I called history a "science", fuck you.
And yes, by my definition programming is not a science. I don't know what most of you think programming is, but for me it's a discipline that builds stuff, similar to carpintery or blacksmithing. Now if you are pushing the limits, seeking ways to make computing go further, then that's science. The guys that are figuring out AI are scientists, the guys that are using it to detect hotdogs aren't - unless they are the same person- deal with it. I guess a lot of you guys are with me on this point.
In the end, we are all artisans building abstract tools by giving orders to a machine.
I still have some characters left, so I want to thank the community as a whole for letting me vent my inner rage. I don't have much ways to express myself on these matters, so for me DevRant is a bless.8
Inspired by @NoMad. My philosophy is that technology is a means to and ends. We’re a tool oriented species. As it relates to software and hardware, they should be your means to achieve your ends without you needing to think. Think of riding a bicycle or driving a car. You aren’t particularly conscious of them - you just adjust input based on heuristics and reflex - while your doing the activity.
For a long time Software has been horrendously bad at this. There is almost always some setup involved; you need to front-load a plan to get to your ends. Funny enough we’re in the good days now. In the early days of GUI you did have to switch modes to achieve different things until input peripherals got better.
I’ve been using windows from 95 and to this day, though it’s gotten better it’s not trivial to setup an all in one printer and scan a document - just yesterday I had to walk my mother through it and she’s somewhat proficient. Also when things break it’s usually nightmare to fix, which is why fresh installing it periodically is s meme to this day. MS still goes to great lengths with their UI so that most people can still get most of their daily stuff done without a manual.
I started Linux in University when I was offered an intro course on the shell. I’ve been using it professionally ever since. While it’s good at making you feel powerful, it requires intricate knowledge to achieve most things. Things almost never go smoothly no matter how much practice you have, especially if you need to compile tools from source. It also has very little in the ways of safe guards to prevent you from hurting yourself. Sure you might be able to fix it if you press harder but it’s less stress to just fresh install. There is also nothing, NOTHING more frustrating than following documentation to the T and it just doesn’t work! It is my day job to help companies with exactly this. Can’t really give an honest impression of the GUI ux as the distros have varying schools of thoughts with their desktop environments. Even The popular one Ubuntu did weird things for a while. In my humble opinion, *nix is better at powering the internet than being a home computer your grandma can use.
Now after being in the thick of things, priorities change and you really just want to get things done. In 2015 I made the choice to go Mac. It has been one of my more interesting experiences. Honestly, I wish more distros would adopt its philosophy. Elementary only adopted the dock. It’s just so intuitive. How do you install an application? You tap the installer, a box will pop up then you drag the icon to the application folder (in the same box) boom you are done. No setup wizards. How to uninstall? Drag icon from app folder to trash can. Boom done. How to open your app? Tap launch pad and you see all your apps alphabetically just click the one you want. You can keep your frequent ones on the dock. Settings is just another app in launchpad and everything is well labeled. You can even use your printers scanner without digging through menus. You might have issues with finder if your used to windows though and the approach to maximizing and minimizing windows will also get you for a while.
When my Galaxy 4 died I gave iPhone a chance with the SE. I can tell you that for most use cases, there is no discernible difference between iOS and modern android outside of a few fringe features. What struck me though was the power of an ecosystem. My Mac and iPhone just work well together. If they are on the same network they just sync in the background - you need to opt in. My internet went down, my iMac saw that my iPhone had 4g and gave me the option to connect. One click your up. Similar process with s droid would be multi step. You have airdrop which just allows you to send files to another Apple device near you with a tap without you even caring what mechanism it’s using. After google bricked my onHub router I opted to get Apples airport series. They are mostly interchangeable and your Mac and iOS device have a native way to configure it without you needing to mess with connecting to it yourself and blah. Setup WiFi on one device, all your other Apple devices have it. Lots of other cool stuff happen as you add more Apple devices. My wife now as a MacBook, an IPad s d the IPhone 8. She’s been windows android her life but the transition has been sublime. With family sharing any software purchase works for all of us, and not just apples stuff like iCloud and music, everything.
Hate Apple all you want but they get the core tenet that technology should just work without you thinking. That’s why they are the most valued company in the world14
You all know that these AI dev tools are reading your code right?
It is sending it back to a data center and doing evaluations on the code. This is like handing your code to an unknown entity with no guarantees for privacy or copyright protection.
This concept bothers me and I would have to consult with my employer to even determine if we wanted to take that risk. I think it is just a matter of time before a bad actor takes advantage of this and rips off a company somewhere.8
I've been working like a mad woman in a startup for 3+ years now. They feel like 10. Or at least the tech stacks we went through.
Never, ever join a startup, regardless of compensation, unless you know you can emotionally and mentally recover from that startup failing as if it is yours, not your bosses. Otherwise, it's just a shitty short experience.
My long experience is shitty, but man. I don't know.Those who built google, wanted to make a search engine. Did they know they're gonna be good? NO. This is the result of them being good. They now have that great product that succeeds and is able to become a self-referential piggy bank. You cannot be a self-referential piggy bank based on a fucking belief and idea, and a bunch of VCs who already put money in you. You know why? BECAUSE GUESS WHO IS THE ONE RESPONSIBLE FOR SUSTAINING YOUR START UP NOW?
The bloods and passions of youth, that join your startup, thinking they can make a difference, and you just undermine them constantly thinking that no engineer can make a difference if they can't ensure compliance with your dumb funding strategy.
Don't even get me started on the fact that most people who work for startups, rely on either laziness or passion. It's like a bunch of kids in art school, whose professor doesn't like anything they make, but they still kinda like it hoping one day they leave and become artists themselves. Then they discover that this shit professor actually taught them nothing about creativity in the real world, and what it takes to push something out.
And, it finally fucking hit me.
The reason startups will never work in this year, and beyond, AND TILL I SEE A CHANGE IN ATTITUDE IN 10 YEARS.....
The market won't fucking allow it with the current strategy tech companies are a fan of: hire a bunch of passionate devs who wanna learn a tool through doing our unique work. Doesn't matter. DIVERSITY. THE UNION IS THE PASSION. That's dumb as fuck.
- Passionate people do not have to use passion as an incentive, the passion was there, and them getting their idea made or money is the incentive
- If you hire a passionate person - even if they are the fucking best - you just made their passion a tool, in getting your PRs done and shit epics scoped AT BEST, and so the tools you're teaching them to use are getting away with doing less impactful, productive, creative work.
I AM SO DEPRESSED.3
I agree with many people on here that Front-End web development/design isn't what it used to be.
Things used to be simple: a static page. Then we decoupled design from description and we introduced CSS; nice, clean separation, more manageable - everything looks nice up to this point.
Years later, we start throwing backend concepts into the web and bloating it with logic because we want so much for the web to be portable and emulate the backend. This is where it starts to get ugly: come ASP, come single pages, partial pages, templates,.. The front-end now talks to a backend, okay. We start decoupling things and we let the logic be handled by the backend - fair enough.
Everything has now turned into an unfriendly, tangled web (no pun intended).
I miss the old days when creating things for the Web used to be fun, exciting and simple and it would invigorate passion, not hate.
1. Nothing lasts forever and you always need to be prepared for change.
That might be technology acquired by other company and dropped completely by all of people or new technology take over the market for a year and is gone after that and no one remember about it.
2. If you go opposite way then all of people around you that might be actually the best way.
That learned me to always look around for new stuff cause this small stuff that people make today can be big company next day just cause they got annoyed by things and start something new.
3. Trust nothing that you see.
Bugs are everywhere
4. Quality and speed doesn’t matter when you start doing something but consistency matters a lot.
When you start doing something you suck and you need to be ok with fact that you’re going to make lots of stupid mistakes and learn from them.
When you start new prototype you don’t need dozen tools to finish it, you don’t need performance or perfection, you need consistency to finish it.
It's weird how these "senior engineers" bash on other people's code while they themselves are still stuck coding in 2007 and refuse anything new or different. "Software Engineer" has become a laughing stock that I don't want to associate myself with the title anymore. Instead of engineers, I'd call those seniors "software tools" (also human "tools" for that matter).10
I'm so fucking fed up with the npm ecosystem. Every single god damn time I've had to do anything it always takes DAYS to figure out how to get anything working and I always have to try multiple tools or libraries to final get it half way sorta.
I'm so fucking annoyed right now. They always turn out not that great, have lacking features or trivial oversights in functionality and ALWAYS have garbage documentation.
I just want to build a fucking npm library with TypeScript to be used with node. That's probably the NUMBER 1 use case so how fucking hard can that be?
So obviously I start out with tsc. That's quite simple, compiles all my stuff and shits out .js and .d.ts files. Okay so how do I use them via es6 import? I don't fucking know, because it doesn't work no matter what I do. The 'module' option in tsconfig is absolutely useless btw. It does *literally* fuck all. Nada. Absolutely nothing.
Okay I'm far from defeated, maybe I'll just have to bundle it. So I waste two days finding something that half works (I'm using fusebox right now) and at last I get a stupid es6 module as a single bundle... But what about type the declarations? They are nowhere to be seen and of course there's no option for that. Because Fusebox the pile of shit that's oh so well Typescript integrated apparently doesn't think TYPE DECLARATION FILES are needed. What the actual fuck.
Yea we got problem with certain tools like `npm`， but threw is so much shit that comes out， in a matter of month you have solutions springing up for those obstacles.
Its pretty fucking beautiful ;)
Can we just for a moment recognize how absolutely fucked Windows update is?
I have done everything, EVERYTHING, outside of booting from a live Linux OS and permanently deleting the windows update executables. All this to stop windows from force updating and rebooting my system while it's locked.
I've killed services, schedules, edited the registry, changed group policy. I even set my wireless connection as metered. Fun fact about that, if MS deems the update to be "priority" they'll download it anyway and reboot, so fuck your data-cap.
I wouldn't have a problem with it IF they would put everything back the way it was before, but those fucking cucks can't even be bothered with doing that. But you bet your fucking sassy ass they start up all the bullshit services I disabled last update are all running.
I don't even know WHY I even try.
Doesn't matter anyway, in a few months I won't even be able to use half the tools I use on Windows for work due to licensing issues 🤷♂️
At that point I will give a big fucking finger to Windows 🖕 and use a VM for all the fucking work related bullshit.
Fuck you Microsoft, I would say it's been fun but you're a god damned disaster. I wish that I could send a message to the entire MS board on how much they have failed, but unfortunately I rather like my freedom and it's frowned upon sending rotting roadkill in the mail.23
<sanityCheck> //asking for a friend
Some clever b*****ds wrecked a section of our production mysql db. To fix it I need to rollback the affected records 2 weeks - around 50/300 tables are affected, the other data must remain intact.
Currently my plan is to take a 2 week old dump and cherry pick the data I need from it, then combine it with a dump of the db in it's current state, drop the db and recreate it.
I know this approach will work - but it's risky, a pain in the ass and dealing with 300mb text files is tedious so since I only need to start in around 8 hours I figured It wouldn't hurt to post my approach and see if anyone thinks my plan is borderline retarded.
If you have any advice .etc that will make my life easier I would greatly appreciate it.
So in your opinion...
- is there a better/safer way?
- do you know of any db dump merge tools?
- have a recommended (linux) text editor for large text files?
- have you made any personal mistakes/fuck ups in the past you think I should avoid?
- am I just being a moron and overthinking this?
- if I am being a moron - In your humble opinion has the time come for me to give up all hope and pursue my dream of becoming a professional couch surfer?
Note: Alternatively, if your just pissed that my rant is asking for a solution instead of simply trashing the people that created my situation and your secretly wishing it was on SO where it belongs so you can moderate/edit/downvote/mark the shit out it, feel welcome to troll me in the comments (getting dev advice just doesn't feel reliable without a troll - you matter to me). Afterwards If your panties are still in a bunch I'll post it on SO and dm a link to you to personally moderate - my days already fucked and I wouldn't want to ruin yours too.4
It doesn't seem to matter what framework I pick to learn next. I rarely get past the Installation step where I have to install and learn a bunch of command line tools first.
It makes me realize I no longer want to be a web developer as even the biggest step I can reasonably make in my career will still not result in an income change significant enough to pay for a mortgage, and the smallest step still expects me to understand all of these command line tools for seemingly no payoff whatsoever.
I feel stuck and depressed looking at all the toxic positivity on LinkedIn. I cannot fathom the amount of indoctrination that must be going on between all these people chirping about how great it is to work for their company.7
It doesn't matter if you've done multiple projects with different tools, languages, team sizes and requirements for ANY company / org etc.
You will feel fucking stupid while taking too long on some of these questions.
I know interview questions are mostly to test your critical thinking skills but fuck I feel so bad after 2 evenings of doing this shit.
It is addictive though...2
How resource calculations for software services like code analysis, monitoring, etc are done:
Opening fridge, putting all the beer one can find in it.
Opening the necessary tools, e.g Excel, Accounting software, ....
Drinking the first beer.
Starting to aggregate the monthly costs - cause you can never trust the reports written by someone else...
First beer poof.
Looking at the monthly cost, adding columns "Intended use", "Actual usage pattern", "Usage factor"...
Opening next beer...
Usage factor is btw a factor of 0.1 ... 1.0 - to give an estimate how much the products feature are actually used, for further analysis if the invest is justified or not...
Oh. Another half bottle gone...
Filling in the columns...
Oh. Bottle empty and the next one toooooooooooooooo...
*cracking finger joints*
Now let's get to the sad part...
Next worksheet, adding infrastructure costs...
Cost and description as columns.
Hehe. Column sounds like gollum.
Ugh. Need the paper reports, manually typing off things for stuff that was e.g. tax deductible.
Many beers die during this task. Poor little beers, dying for such an boring and mundane task...
SUM is a real useful function. I don't think I can add numbers anymore.
Now we can add another sheet.
Hehe. Sheet sounds like shit. And yes, everything in this file is shit.
Summing up costs from both sheets and including the cost factor from 1
... Beeeeeeeer Beeeeer beer we need more beer here... Beer beer beer...
Where was I. Oh yeah. Cost factorization total vs effective.
Why do I want to get even more drunk.
Oh yeah. Most software is completely underused and the costs aren't justified.
Let's add some colored highlighting ...
Uuuuh. ,Too much red. Better change the highlights.
Too much red.
Don't give a fuck.
Time for some whiskey.
What else is there to do....
The bloody wankers from accounting need diagrams as numbers are too boring.
Not that everything in accounting is boring, no matter how much you paint colors on it... *sigh*
Hm. More whiskey...
Hehe. Whiskey rhymes with frisky.
Uff. Now just need to write mail. Mail mail mail....
"Copy paste the last mail from last month"
Spell check extension - to the rescue.
Let's change a few words here and there... Maybe another paragraph there.
Trying to attach file...
*fucking mouse is pretty constantly crashing into empty beer bottles*
Need to press send button.
*Creating mess on the desk by just randomly crashing the beer bottles*
*Pressing computers power button*
Mwahahahaha. No mouse needed.
*regretting to stand up too quickly, nearly barfing on the floor*
Couch ... Where Couch...
After hitting several doors, frames and other stuff, the glorious mission ended successfully with a most graciously executed gut buster on the couch.
(Regretting next morning to have emptied two 6 packs and a few glasses of whiskey)
That one time the management du jour asked devs to quantify why they needed new machines after five years on third-rate hardware...
Maybe it's just me. Maybe I'm the Charlie Brown of development and Lucy with the football is the XAMPP/MAMP/WAMP software in this world. EVERY. TIME. I. TRY. TO. SPIN. THIS. UP. IT. FAILS. It doesn't matter which tutorial I follow for which technology stack or CMS, the result is always the same. Something about the database or htaccess or some other stupid setting makes it impossible for me to create a simple dev environment on my system.
I have been doing this dance for 24 YEARS NOW!!!! The original programmer of Apache is a 2nd-degree acquaintance who used to be available to help me with this, but no more. I feel like a complete and utter failure as a web developer every time I try to set up XAMPP, and, the rare times I've succeeded and gotten a basic CMS up and running, I fail again and again with all these build/run/task tools I'm now supposed to be using. After a week of fiddling with my local dev environment, I give up and delete it all. I go right back to on-server development "the old fashioned way". WHY!? WHY IS THIS SO HARD?
I'm stepping on rakes here and about to quit. I'm probably just too OLD and STUPID for all these stacks and frameworks and tools and maybe even for this career now. I should probably quit and become a "facilities manager" at a tech firm somewhere, cleaning up the bathrooms and sweeping floors and watching all these young geniuses tut-tut about "Poor StackODev. I hear he had 24 years as a web developer, but then he snapped and he's never been the same."1
Use Maven, they said... it's better, they said... you don't have to manage dependencies yourself, they said...
...only now I've spent three days in hell trying to figure out why Maven keeps insisting on sticking INCOMPATIBLE JARs in my WAR that causes a breakage when deployed. No matter what I do it still sticks stuff in the WAR that shouldn't be there!
Like, I'm not a lazy cunt, I can manage my own dependencies! I know what's supposed to be there, oh, and by the way, everything fucking works when I build with Ant instead and I'm in full control of what winds up in the WAR.
So, basically, instead of the "hassle" of having to download JARs myself, I've now got the hassle of dealing with Maven trying to be more clever than me.
I know which I'd rather have, especially right now. ARGH!
You know, any time someone says "this is an industry-standard and that's why you should use it" my first thought is "hmm, which of these buildings is tallest and will ensure a quick death when I inevitably jump off of it?" MOST ESPECIALLY when the company just decides X is what everyone is going to switch to, regardless of what they're using now and regardless of how many YEARS it's been that way and working perfectly. Nope, doesn't matter, just get onboard the freight train, and if your productivity takes a hit, if you start missing deadlines dealing with shit you didn't have to deal with when using the "worse" tools, well, I guess that doesn't fucking matter, does it?!
And that's not even talking about the fact that the Maven build takes almost four minutes, which is just about 4x as long as the Ant build it replaced, each and every fucking time I make a change.
Look, I'm sure there are solutions and I'm sure I'll find them next week because I always do... and I'm sure there's some tweaking we can do to improve the performance... and it's not like this is my first go-round with Maven, though it's probably the most complex project I've ever tried to do with it... by my fucking dear god this is a nightmare, and it's not a nightmare of my choosing.
I'm disgusted, tired and defeated, three things I never get when it comes to technology. Congratulations Maven, you're on the verge of breaking someone who doesn't get broken. Another day like the last three and I'm not gonna need Stackoverflow, I'm gonna need a bus schedule so I can figure out exactly when to step off the fucking sidewalk!10
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.
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
(a slide acoustic guitar plays on the background and the cowboy starts speaking)
It was a dry october day, back in good old 2017. I had this job from a client that I never met and was doing some coding for money.
After days of no sleep, no food and no rest, I finally decided to take a nap so I paused my music.
It was at this moment I found out my machine was making funny noises. Like a dingo makin' a run from it's enemies with a whelping noise.
Clicked on my computer and tried to find an ol' file from the archive drive but the machine won't let me, sayin' the disk ain't ready yet.
I tried disk manager, disk scanner, whatever the tools at my disposal all in vain. Then I said what the hell, I'll just restart my machine and it'll be alright.
The machine rebooted but the disk was gone. It was dead like a deer I ran over. I was upset, but not aware of the calamity headin' my way.
In just a few days my other 2 disks died suddenly. The loss of data, all the effort, none of them mattered. I felt numb and decided it was time for a fresh start.
Plugged in a Windows install disk, started the sequence, a screen came up askin' me which damned and alive disk I wanna install the fresh OS. I had two same make and model SSD disks, chose the one thinkin' it was the Windows drive, hell it wasnt... It was with all "my documents", "downloads", "pictures" folders and now I had two SSD drives with two Windows installations and nothing else.
The folks in town took a dab at me for months, even the bartender of the salloon refused to give me a drink. Sayin' it was a matter of reputation...
Turned out the bastard who fried my disks was the Madde Dog PSU Tannen who had a bad temper so here I am, tellin' my story to milk breathers and cherishing old days of data...3
I just wanted to add my opinion about Linux. I have played around with computers since I was 5 and the last three years I have worked professionaly as a software developer. I have tried Linux many times and have to work with it regurarly on Raspberry Pi's, routers, servers etc. For two months ago I decided to try out Linux as my main desktop operating system. As my machine has some uncommon hardware (Celeron 3450) there was trouble from the start. Getting it installed wasn't as easy as just creating a bootable usb. I had to start a virtual machine and patch the iso with a script to make it bootable. I also had to install a third party bootloader, so just installing it probably took about half a day. To start off, I tried Manjaro, basically Arch with some extras. It looks great, was fast and easy on resources but I couldn't manage to install some essential tools that I needed. So I patched Linux Mint instead and installed it. I've tried all the DE's available, but unfortunatly everyone has some problem. Either it's sluggish or having screen tearing problems and/or buggy. I settled on XFCE as it seemed to work the best. Unfortunatly I have to live with horrendous screen tearing even though I tried many different window mannagers engines like compiz and metacity. Also whenever I plugged in a USB mouse, the keyboard died, requiriing a reeboot. Power settings were messed up so the laptop locked and asked for password twice sometimes and the battery life was 3 hours worse than Windows. The desktop theme bugged so window buttons (maximize, close) disappeared sometimes. I also had problems with the panel not showing when pressing the windows key, apparently that is impossible to fix. Firefox is also kinda bad, wasting like 15 pixels at the top for no reason and not offering many options though Vivaldi got this covered at least. Touchpad was weird too, didn't support gestures and had bad accuracy. During the install I was asked if I wanted to enccrypt my home folder, so I said yes. The other day I need to create a new partition and do some resiszing so I used gparted. Unforutnaly I managed to remove a partition that was encrypted, so after a reboot I coulnd't get into the OS anymore.
That was it, I used Linux Mint as my daily driver for 2 months and every single day I probably spent 0.5-1 hour fixing things. The OS was always in the way for me and what I wanted to do. Don't get me wrong. I love Linux in the sense that it is efficient and open (source) and it have basically taken over in alla areas except just desktops. The desktop experience (doesn't matter which DE) just plain sucks, or I just had bad luck.2
Tldr; Rust community could definitely be way less annoying, but it's way more annoying listening to everyone bitch about it all the fucking time.
Tired of the Rust hype? Too fucking bad. Quit complaining that people like well-designed languages more than shitty ones. Yeah, rust devs can be real fucking zealous, but at least the language is good. If you don't like listening to people say "why not rust?" ignore them or ask yourself the same fucking question ahead of time so you don't feel defensive when someone asks it later.
Read some shit about how "it doesn't matter what you build it with if the software is good, its all the same". Ever heard of "right tool for the right job"? Rust has applications all over the place, so people are going to talk about it a lot. Also, just no. Like, Python shouldn't be in the Linux kernel for a lot of reasons, so the tools you choose can constrain whether or not your software is actually "good."
Ever heard of "unsubstantiated trust"? Yeah, you might be good at writing C, but you can get that shit to compile with nasty fucking problems and C's a straight up foot gun in my hands. It's hard to write shitty functioning Rust that does what you say it does, which is less unsubstantiated trust.2
Companies that don't utilize tools for mundane tasks drive me up a wall. Why do you want to waste your own time?
Dear God, why are punishing me by another bug report related to Edge?
Console dock freezes commonly for MINUTES, literally. It doesn't support objects, so every object is very usefully converted to "[object Object]" string. And now I am discovering that change event on input is magically not firing?
What a day. This would be solved in Chrome or Firefox in a matter of minutes, for a same time Edge doesn't even manage to render a page with dev tools opened FFS...2
I started a rice after 3 years of happily using KDE, and apparently everything uses CSS for styling now? I'm not complaining, Polybar offered like 4 options and we just played around with glyph fonts, compared to that this is a joyride.
Also, Eww is brilliant. I've seen people make full fucking UIs and custom notification centers and shit with it. I don't have that much time on my hands, but the option is there. All this with janky Lisp and Sass.
Eww also confirmed a suspicion of mine regarding Orchid; language adoption is a matter of convenience. I can get people to learn my language by offering cool trinkets and useful tools to people who have a predisposition to learning. Yuck is an aptly named language but it's not totally unusable, and because I had to learn it to make my status bar I'm now more inclined to write the corresponding scripts in it as well and I'm actually quite disappointed that I have to use Bash for that.2
Workflow? More like chasing answer from a community that is not, and never has been, famous for its pedagogical skills. So hand me some coffee, weed and/or some snacks because I'll still search high and low, skip sleep and build up a few hundred pages browsing history so that in the end, I'll reach the understanding I'm looking for anyways. Even if whatever person trying to help me - in their delusion that I already know everything, except for that thing I'm asking about of course - really, REALLY just failed at saying "that goes there because of that" instead of "did you try insertSomeAppropriateRandomNameOfAThingYouAssumeEveryoneKnowsHere..?".
But who am I kidding? The tools are better than ever (IDE'S). The pedagogical skills are getting its own arenas to build on and its coming along greatly (coding block apps, treehouse and the likes etc. etc).
And no matter the struggle, I can't escape that I love coding and learning more than anything else.
Now how do I.. Where.. When.. Why the..
I can work productively and for very long hours with a lot of stuff which many dev considers productivity hurdles:
- single small monitor? No problem (in fact in one occasion in which my roommate accidentally broke my laptop charghing port and I couldn't get a spare I worked on an iPad connected trough SSH to a Linux machine completing one of the hardest tasks I ever did without significant loss of productivity)
- old machine? That's ok as long as I can run a minimal Linux and not struggle with Windows
- noise and chatter around me? A 10€ pair of earbuds are enough for me, no noise cancelling needed
- "legacy" stack/programming language? I'd rather spend my days coding in Swift or Rust but in the end I believe which is the dev and its skill which gets the job done not fancy language features so Java 8 will be fine
- no JetBrains or other fancy IDE? Altough some refactoring and code generation stuff is amazing Neovim or VS Code, maybe with the help of some UNIX CLI tools here and there are more than enough
despite this I found out there is a single thing which is like kryptonite for my productivity bringing it from above average* to dangerously low and it's the lack of a quick feedback loop.
For programming tasks that's not a problem because it doesn't matter the language there's always a compiler/interpreter I can use to quickly check what I did and this helps to get quickly in a good work flow but since I went to work with a customer which wants everything deployed on a lazily put together "private cloud" which needs configurations in non-standard and badly documented file formats, has a lot of stuff which instead of being automated gets done trough slowly processed tickets, sometimes things breaks and may take MONTHS to see them fixed... my productivity took a big hit since while I'm still quick at the dev stuff (if I'm able to put together a decent local environment and I don't depend on the cloud of nightmares, something which isn't always warranted) my productivity plummets when I have to integrate what I did or what someone else did in this "cloud" since lacking decent documentation everything has do be done trough a lot of manual tasks and most importantly slow iterations of trial and error. When I have to do that kind stuff (sadly quite often) my brain feels like stuck on "1st gear": I get slow, quickly tired and often I procrastinate a lot even if I force myself out of non work related internet stuff.
*I don't want this to sound braggy but being a passionate developer which breathes computers since childhood and dedicating part of my freetime on continuously improving my skill I have an edge over who do this without much passion or even reluctantly and I say this without wanting to be an èlitist gatekeeper, everyone has to work and tot everybody as the privilege of being passionate in a skill which nowadays has so much market2
I think that sums up development pretty much.
Take for example coding patterns: Most of them *could* be applied on a global scale (all products)… But that doesn't mean you *should* apply them. :-)
Find a matching **compromise** that makes specific sense for the product you develop.
Small example: SOLID / DRY are good practices. But breaking these principles by for example introducing redundant code could be a very wise design decision - an example would be if you know full ahead that the redundancy is needed for further changes ahead. Going full DRY only to add the redundancy later is time spent better elsewhere.
The principle of compromise applies to other things, too.
Take for example architecture design.
Instead of trying to enforce your whole vision of a product, focus on key areas that you really think must be done.
Don't waste your breath on small stuff - cause then you probably lack the strength for focusing on the important things.
Compromise - choose what is *truly* important and make sure that gets integrated vs trying to "get your will done".
Small example: It doesn't really matter if a function is called myDingDong or myDingDongWithBells - one is longer, other shorter. Refactoring tools make renaming a function an easy task. What matters is what this function does and that it does this efficiently and precise. Instead of discussing the *name* of the function, focus on what the function *does*.
If you've read so far and think this example is dumb: Nope... I've seen PR reports where people struggled for hours with lil shit while the elephant in the room like an N+1 problem / database query or other fundamental things completely drowned in the small shit discussion noise.
We had code design, we had architecture... Same goes for people, debugging, and everything else.
Just because you don't like what weird person A does, doesn't mean it's shit.
Compromise. You don't have to like them. Just tolerate them. Listen. Then try to process their feedback unbiased. Simple as that. Don't make discussions personal - and don't isolate yourself by just working with specific persons. Cause living in such a bubble means you miss out a lot of knowledge and insight… or in short: You suck because of your own choices. :-)
Debugging... Again compromise: instead of wasting hours on debugging a problem, ASK for help. A simple: Has anyone done debugging this before or has some input for how to debug this problem efficiently?... Can sometimes work wonders. Don't start debugging without looking into alternative solutions like telemetry, metrics, known problems etc.
It could be a viable, better long term solution to add metrics to a product than to debug for hours ... Compromise. Find a fitting approach to analyze a problem instead of just starting a brute force approach.
Et cetera et cetera.
Need advice about switching to contracting.
So I had 2 years of exp as an android dev, then I had a 1.5 year gap from doing android and now for the past 6 months Ive been doing android again fulltime. Im thinking of switching to contracting due to my debts and boring project and life crushing slow corporate processes in my current fulltime job, so I need tips and advices as to where should I start looking for new contracting gigs and in general what should I pay attention to. If it helps, I am based in EU, but am open to any EU/US gigs.
Now the full story:
Initially when I joined my current fulltime job after a break I had zero confidence, lowered my and employers expectations, joined as a junior but quickly picked up the latest standards and crushed it. Im doing better than half devs in my scrum team right now and would consider myself to be a mid level right now.
Asked for a 50% bump, manager kinda okayed it but the HQ overseas is taking a very long time to give me the actual bump. I have been waiting for 10 weeks already (lots of people in the decision chain were on and off vacations due to summer, also I guess manager sent this request to HQ too late, go figure). Anyways its becoming unnaceptable and I feel like its time for a change.
Now since I have mortgage and bills to pay, even with the bump that I requested that would leave me with like maximum 700-800 bucks a month after all expenses. I have debts of around 20k and paying them back at this rate would take 3 years at least and sounds like a not viable plan at all.
Also it does not help that the project Im working on is full of legacy and Im not learning anything new here. Corporate life seems to be very slow, lots of red tape kills creativity and so on. I remember in startups I was cooking features left and right each sprint, in here deploying a simple popup feature sometimes takes weeks due to incompetence in the chain. I miss the times where I worked in startups, did my job learned nre skills and after 6 months could jump on another exciting gig. Im not growing here anymore.
So because my ADD brain seems to be suited much better for working in startups, and also I need to make more money quick and I dont see a future in current company, I am thinking of going back to contracting. All I need right now is to build a few side apps, get them reviewed by seniors and fill my knowledge gaps. Then I plan of starting interviewing as a mid level or even a senior for that matter, since I worked with actual seniors and to be honest I dont think getting up to their level would be rocket science.
Only difference between mid and senior devs that I see atleast in my current company is that seniors are taking on responsibility more often, and they also take care of our tools, such as CD/CI, pipeline scripts, linters and etc. Usually seniors are the ones who do the research/investigations and then come up with actual tasks/stories for mids/juniors. Also seniors introduce new dependencies and update our stack, solve some performance issues and address bottlenecks and technical debt. I dont think its rocket science, also Ive been the sole dev responsible for apps in the past and always did decent work. Turns out all I needed was to test myself in an environment full of other devs, thats it. My only bottleneck was the imposter syndrome because I was a self taught dev who worked most of my career alone.
Anyways I posted here asking for some tips and advices on how to begin my search for new contract opportunities. I am living in EU, can you give me some decent sites where I could just start applying? Also I would appreciate any other tips opinions and feedback. Thanks!3