Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "major missing"
-
--- HTTP/3 is coming! And it won't use TCP! ---
A recent announcement reveals that HTTP - the protocol used by browsers to communicate with web servers - will get a major change in version 3!
Before, the HTTP protocols (version 1.0, 1.1 and 2.2) were all layered on top of TCP (Transmission Control Protocol).
TCP provides reliable, ordered, and error-checked delivery of data over an IP network.
It can handle hardware failures, timeouts, etc. and makes sure the data is received in the order it was transmitted in.
Also you can easily detect if any corruption during transmission has occurred.
All these features are necessary for a protocol such as HTTP, but TCP wasn't originally designed for HTTP!
It's a "one-size-fits-all" solution, suitable for *any* application that needs this kind of reliability.
TCP does a lot of round trips between the client and the server to make sure everybody receives their data. Especially if you're using SSL. This results in a high network latency.
So if we had a protocol which is basically designed for HTTP, it could help a lot at fixing all these problems.
This is the idea behind "QUIC", an experimental network protocol, originally created by Google, using UDP.
Now we all know how unreliable UDP is: You don't know if the data you sent was received nor does the receiver know if there is anything missing. Also, data is unordered, so if anything takes longer to send, it will most likely mix up with the other pieces of data. The only good part of UDP is its simplicity.
So why use this crappy thing for such an important protocol as HTTP?
Well, QUIC fixes all these problems UDP has, and provides the reliability of TCP but without introducing lots of round trips and a high latency! (How cool is that?)
The Internet Engineering Task Force (IETF) has been working (or is still working) on a standardized version of QUIC, although it's very different from Google's original proposal.
The IETF also wants to create a version of HTTP that uses QUIC, previously referred to as HTTP-over-QUIC. HTTP-over-QUIC isn't, however, HTTP/2 over QUIC.
It's a new, updated version of HTTP built for QUIC.
Now, the chairman of both the HTTP working group and the QUIC working group for IETF, Mark Nottingham, wanted to rename HTTP-over-QUIC to HTTP/3, and it seems like his proposal got accepted!
So version 3 of HTTP will have QUIC as an essential, integral feature, and we can expect that it no longer uses TCP as its network protocol.
We will see how it turns out in the end, but I'm sure we will have to wait a couple more years for HTTP/3, when it has been thoroughly tested and integrated.
Thank you for reading!27 -
curl cheat.sh — get an instant answer to any question on (almost) any programming language from the command line
tldr
do curl cht.sh/go/execute+external+program to see how to execute external program in go
And this question: why I actually should I start the browser, and the browser has to downloads tons of JS, CSS and HTML, render them thereafter, only to show me some small output,
some small text, number or even some plot. Why can't I do a trivial query from the command line
and instantly get what I want?
I decided to create some service that will work as I think such a service should work.
And that is how wttr.in was created.
Nowadays you probably know, how to check the weather from the command line, but if not:
curl wttr.in
or
curl wttr.in/Paris
(curl wetter in Paris if you want to know the weather in Paris)
After that several other services were created (the point was to check how good the console
can solve the task, so I tried to create services providing information
of various nature: text, numbers, plots, pseudo graphic etc.):
curl rate.sx/btc # to check exchange rate of any (crypto)currency
curl qrenco.de/google.com # to QRenco.de any text
And now last but not least, the gem in this collection: cheat.sh.
The original idea behind the service was just to deliver a various UNIX/Linux command line cheat sheets via curl. There are several beautiful community driven cheat sheet repositories such as tldr, but the problem is that to use them you have to install them first, and it is quite often that you have no time for it, you just want to quickly check some cheat sheet.
With cheat.sh you don't need to install anything, just do:
curl cheat.sh/tar (or whatever)
you will get a cheat sheet for this command (if such cheat sheet exists inf one of the most popular community-driven cheat sheet repositories; but it surely does).
But then I thought: why actually show only existing cheat sheets? Why not generate cheat sheets or better to say on the fly? And that is how the next major update of cheat.sh was created.
Now you can simply do:
curl cht.sh/python/copy+files
curl cht.sh/go/execute+external+program
curl cht.sh/js/async+file+read
or even
curl cht.sh/python/копировать+файл
curl cht.sh/ruby/Datei+löschen
curl cht.sh/lua/复制文件
and get your question answered
(cht.sh is an alias for cheat.sh).
And it does not matter what language have you used to ask the question. To be short, all pairs (human language => programming language) are supported.
One very important major advantage of console oriented interfaces is that they are easily
programmable and can be easily integrated with various systems.
For example, Vim and Emacs plugins were created by means of that you can
query the service directly from the editor so that you can just write your
questions in the buffer and convert them in code with a keystroke.
The service is of course far from the perfection,
there are plenty of things to be fixed and to be implemented,
but now you can see its contours and see the contours of this approach,
console oriented services.
The service (as well as the other mentioned above services) is opensource, its code is available here:
https://github.com/chubin/cheat.sh
What do you think about this service?
What do you think about this approach?
Have you already heard about these services before?
Have you used them?
If yes, what do you like about them and what are you missing?26 -
!rant
Hey guys! We are really happy to share the pre-alpha version of devRantron. The purpose of this pre-release is to test it on different platforms and get some feedback on the features that we have already implemented.
Download it here: https://github.com/tahnik/...
Massive thanks to all the contributors especially @Dacexi, @sirwindfield and @phantomBKB: https://github.com/tahnik/...
Please feel free to open any issues that you encounter.
Major missing features are Notifications, Settings and User Profile. They will come soon.8 -
New guy at work asks me for a code review. 16 lines added, and I have 4 comments, all about readability. Only the major stuff because I went easy on him. I even ignored a missing semicolon.
Guy comes to me and explains that code review is about if code works, not what it should look like. "You want me to write it your way, and we'll have endless arguments if that's how you do code reviews. But I'll do your requested changes." Reduces his entire code to two lines, which make a lot more sense.
Later, I ask him why he used "void 0" anyway. I was wondering if he's thinking of security aspects or if there's another reason. His answer: "because it looks cool and nobody else does it". -
The code is a freaking mess. Shared behavior, terrible variable/method naming, misleading module naming, dynamic polymorphic spaghetti, whitespace errors, no consistency, confusing even if you understand what the code is doing, ... . It should never have passed code review. It probably wasn't code reviewed.
The comments are sparse and useless. Quality level: // This is bridge.
The documentation does not exist.
Testing steps for QA are missing several steps, including setup, so actually using the feature is bloody challenging. If one thing is wrong, the feature just doesn't show up (and ofc won't tell you why).
The specs for the feature are outdated and cover only 4 of 19+ cases. And are neigh useless for those 4.
The specs for the report I'm fixing don't even check the data on the report; it just checks for one bit of data on each row it creates -- a name -- which is also the same on each row. gg.
The object factories (for specs) are a mess, and often create objects indirectly, or in backwards order with odd post-create overwriting to make things work. Following the factories is a major chore, let alone fixing or extending them.
The new type has practically zero test coverage.
The factory for the new type also only creates one variant -- and does so incorrectly.
And to top it all off: the guy who wrote the feature barely ever responds. If he does, he uses fewer words than my bird knows, then stops responding. I've yet to get a useful answer out of him. (and he apparently communicates just fine, according to my micromanager.)
But "it's just fixing a report; it'll be easy!"
Oh, fuck off.8 -
Spent an entire day trying to fix a major bug that made the entire application fall over... It was an unclosed div tag. Literally one missing / can cause so much pain!3
-
Two places: At a major NYC firm, I was in charge of social media. I was also involved with an intranet community. Something went bad with the intranet community project politics and I got blamed for it even though I had emails to prove I hadn't said/done what I was accused of. But to assert their dominance, my bosses called me to their office, sat me in literally a corner of the room, and interrogated me for 2 hours. The only thing missing was the bright light in my eyes and the "good cop" part of the routine. I'm ashamed to say they "broke" me and I just gave up and did what they told me to do to "fix" it even though I hadn't done anything wrong. The bosses were old enough to be my parents, so I wonder how much of that worked its way into the psychology of it all.
The second toxic workplace was where each month the boss would come from his home by the beach to tell us plebes what new ideas he wanted us to work on. We would just get done reporting on the results of his delusions of grandeur from the month prior and he'd pull the rug out and start us on some new thing. Never got any consistent traction on anything. He was the ultimate seagull manager: fly in, make a lot of noise, poop all over everything, and leave us cleaning up the mess. Oh, and we had to change the locks because we had to fire a customer service guy who was a little bit on the ragey side of things. Because of high turnover, I had seniority within 4 months of starting there.1 -
I'm going to kill management.
After a serious migration fiasco at one of our biggest costumers the platform was finally usable again (after two days instead of 10 hours) and, of course, users started to report bugs. So good old po came in ranting that we as qa did a horrible job and basically tried to fault us for a fucked up update (because we produced user pain, which of course not being able to log in didn't do). Among the issues: If the user has more than a hundred web pages the menu starts looking ugly, the translation to dutch in one string on the third submenu of a widget doesn't work and a certain functionality isn't available even if it's activated.
Short, they were either not a use case or very much minor except for that missing function. So today we've looked through the entire test code, testing lists, change logs and so on only to discover that the function was removed actively during the last major update one and a half years ago.
Now it's just waiting for the review meeting with the wonderful talking point "How could effective QA prevent something like this in the future" and throwing that shit into his face.
I mean seriously, if you fuck shit up stand by it. We all make mistakes but trying to pin it on other people is just really, really low.8 -
> be me
> work on a nice project with friends: A, B and C
> joined in a bit later, but before any real progress was made + we scrap the existing code, because it was Python2 or something
> decide on a framework
> A wants to create one himself, instead of using an existing one
> we fight for a little, but let A do his thing
> 2 months later
> been waiting the whole time
> +1000 lines on github, but still not finished
> "Wouldn't it be better if we would use the normal framework?"
> "No, mine is hand-crafted for that task"
> "But it is full of bugs"
> "If you find one major bug, we'll ditch my framework"
> finds major bug
> "That's fixed, just give me a min-"
> finds another bug
> "Thats just because you don't know how to use the framework"
- Documentation inside ONE gigantic README
- Library is missing the core features we needed/those which are implemented don't work
- Both B and C were on my side from the beginning (in that we should use "Already Existing Fully Documented Popular And tested Framework Which Does Everything We Need")
> "But i dont understand this framework so explain it to me"
> send him a few code examples + a tutorial??? (dont remember if i actually sent im the tutorial before i left)
> "explain it to me, i can't understand it"
> I CANT UNDERSTAND YOUR FUCKING FRAMEWORK DUMBASS
> ragequitted the server+project
To this day i still don't know, which framework they are using..
Also that Python 2 code in the beginning was because A didnt know the difference and copied (yes by hand) the code from atom to github without testing anything.4 -
That feeling when the business wants you to allow massive chunks of data to simply be missing or not required for "grandfathered" accounts, but required for all new accounts.
Our company handles tens of thousands of accounts and at some point in the past during a major upgrade, it was decided that everyone prior to the upgrade just didn't need to fill in the new data.
Now we are doing another major upgrade that is somewhat near completion and we are only just now being told that we have to magically allow a large set of our accounts to NOT require all of this new required data. The circumstances are clear as mud. If the user changes something in their grandfathered account or adds something new, from that point on that piece of data is now required.
But everything else that isn't changed or added can still be blank...
But every new account has to have all the data required...
WHY?!2 -
Well today we got to test our system to the extreme and I'm pleased to say it passed. Major power surge followed by a black out. UPS for all networking and servers kicked in without missing a beat and the standby generator outside about 45 seconds later. After explaining to users how to turn on their computer (😑), we were able to get everyone working again in about 5 minutes. Lasted three hours without power from the grid without any client downtime1
-
Has been a long time since I'm appreciating working with GRPC.
Amazingly fast and full-featured protocol! No complaints at all.
Although I felt something was missing...
Back in the days of HTTP, we were all given very simple tools for making requests to verify behaviours and data of any of our HTTP endpoints, tools like curl, postman, wget and so on...
This toolset gives us definitely a nice and quick way to explore our HTTP services, debug them when necessary and be efficient.
This is probably what I miss the most from HTTP.
When you want to debug a remote endpoint with GRPC, you need to actually write a client by hand (in any of the supported language) then run it.
There are alternatives in the open source world, but those wants you to either configure the server to support Reflection or add a proxy in front of your services to be able to query them in a simpler way.
This is not how things work in 2018 almost 2019.
We want simple, quick and efficient tools that make our life easier and having problems more under control.
I'm a developer my self and I feel this on my skin every day. I don't want to change my server or add an infrastructure component for the simple reason of being able to query it in a simpler way!
However, This exact problem has been solved many times from HTTP or other protocols, so we should do something about our beloved GRPC.
Fine! I've told to my self. Let's fix this.
A few weeks later...
I'm glad to announce the first Release of BloomRPC - The first GRPC Client GUI that is nice and simple,
It allows to query and explore your GRPC services with just a couple of clicks without any additional modification to what you have running right now! Just install the client and start making requests.
It has been built with the Electron technology so its a desktop app and it supports the 3 major platforms, Mac, Linux, Windows.
Check out the repository on GitHub: https://github.com/uw-labs/bloomrpc
This is the first step towards the goal of having a simple and efficient way of querying GRPC services!
Keep in mind that It is in its first release, so improvements will follow along with future releases.
Your feedback and contributions are very welcome.
If you have the same frustration with GRPC I hope BloomRPC will make you a bit happier!3 -
*packing for a school-hosted graduation celebration with friends*
let's see, first rule of packing for a trip, count on every slim chance happening...
List of things now in backpack:
3 changes of clothes (1-night trip for an all night party in <100-MILE-AWAY MAJOR CITY>)
Laptop
3DS
3x 4-port USB Hubs
10-port power strip (not fully in bag, but mostly so.)
Extra pair of shoes
3.5" external floppy drive
First aid kit
SAK
precision driver set
soldering set
multitool
pliers (1x farmer's, 1x bent needlenose)
multimeter
empty laptop HDD (250GB)
magnet in Altoids tin (can't have it trashing the HDD!)
VGA to RGB (Composite ends) adapter
Composite/S-VIDEO USB capture card
Portable USB chargers (1x 30k mAh 2-port, 1x superslim 3k mAh 1-port)
Enough phone chargers to replace all chargers within 30 miles
Smelling salts
2x 16GB thumbdrives
Boot disc set
$200
School IDs (for bag's ID slot)
3 pairs of decent earbuds (no el cheapo $1 ones because they break trying to get them out of the package)
Serial to USB adapter
Rehydration salts
Magnesium fire striker
Plenty of pens and pencils
Emergency radio locator beacon
Emergency cellular locator beacon
SD/eMMC/CF/TF/MCP(D) USB reader
external HDD reader (2.5" IDE/3.5" IDE/SATA, external power)
am i missing anything?11 -
Sooooo ok ok. Started my graduate program in August and thus far I have been having to handle it with working as a manager, missing 2 staff member positions at work, as well as dealing with other personal items in my life. It has been exhausting beyond belief and I would not really recommend it for people working full time always on call jobs with a family, like at a..
But one thing that keeps my hopes up is the amount of great knowledge that the professors pass to us through their lectures. Sometimes I would get upset at how highly theoretical the items are, I was expecting to see tons of code in one of the major languages used in A.I(my graduate program has a focus in AI, that is my concentration) and was really disappointed at not seeing more code really. But getting the high level overview of the concepts has been really helpful in forcing me to do extra research in order to reconnect with some of the items that I had never thought of before.
If you follow, for example, different articles or online tutorials representing doing something simple like generating a simple neural network, it sometimes escapes our mind how some of the internal concepts of the activity in question are generated, how and why and the mathematical notions that led researchers reach the conclusions they did. As developers, we are sometimes used to just not caring about how sometimes a thing would work, just as long as it works "we will get back to this later" is a common thing in most tutorials, such as when I started with Java "don't worry about what public static main means, just write it up for now, oh and don't worry about what System.out.println() is, just know that its used to output something into bla bla bla" <---- shit like that is too common and it does not escape ML tutorials.
Its hard man, to focus on understanding the inner details of such a massive field all the time, but truly worth it. And if you do find yourself considering the need for higher education or not, well its more of a personal choice really. There are some very talented people that learn a lot on their own, but having the proper guidance of a body of highly trained industry professionals is always nice, my professors take the time to deal with the students on such a personal level that concepts get acquired faster, everyone in class is an engineer with years of experience, thus having people talk to us at that level is much appreciated and accelerates the process of being educated.
Basically what I am trying to say is that being exposed to different methodologies and theoretical concepts helps a lot for building intuition, specially when you literally have no other option but to git gud. And school is what you make of it, but certainly never a waste.2 -
Do not trust Unity Collab.
Been using unity collab as a VCS for months on a project, regularly saving the files, working well.
Today i decided to refactor some code but lost track of some things, so i reverted to a version i checked in 2h before.
Unity replaced my files with the stable build back then, except... half of the files were missing. of course no undo functionality.
months of work were simply not saved in collab. no version had these files, i did modify them regularly and they never caused collab issues.
how can a company not make the vcs they add for their main product work to its minimal requirements?!
Im not sure how i could motivate myself to fix this mess. fuck this trash company, cant have a single project without major issues.2 -
New JoyRant TestFlight build 11:
* Posting Rants
* Improved Notifications Category selection UI with unread indicators (screenshot attached)
Posting this rant from JoyRant right now 😄
The app is now in a state what I consider to be the first major milestone.
There are still features missing (see github https://github.com/WilhelmOks/...) but the most important and most frequently used stuff is done.
https://testflight.apple.com/join/...3 -
so i am on notice period and suddenly my manager has realised that there are a lot of tasks that i have to pickup. well fuck this guy.
i was initially dumb enough to think that i leaving is a bad thing,and i should be doing everything to make the transition easier. the task was also interesting enough , as we were trying to add a new and complex feature and i was the main dev there.
so i started at full pace. i would work on my tasks for hours , even missing on my personal projects. but since last week he would keep adding new tickets in my jira boards every few days , followed by a quick huddle telling how this is a very small and high priority ticlet and i should look at that first.
and me being me, i would not only just finish those small tickets in time, but have a progress on my major feature, as well as answer doubts of other team mates and attend meetings.
--------
i always forget how hypnotising this work culture usually get. the above scenario that i explained? i have no problem with that in a general day. i love to work, solve problems and help others. but these are no normal days, this is my fuckin notice period.
And i am here coz of a reason. if they rely on me so much, why did they forced me to relocate when i just can't? why don't they gove me a lucrative salary + worthy relocation benefits ? fuck them. i even have to serve for a fucking 60 days coz they are not willing to reduce my notice period .
fake promises everytime.
"you don't worry about different office mentioned in your offer letter. we will always keep the environment remote" ~ lie
"even if we go wfo, our company will open an office in your city too, your city is the capital and we had an office there before" ~ lie
"your notice period will get reduced, dont worry about the 60 days" - another fucking lie
______
notice period experts, i need some devil advice to not get exploited by a lier corp. how to utilise my notice period and what should he the excuses to not attend any nloody meetings?9 -
I'm considering quitting a job I started a few weeks ago. I'll probably try to find other work first I suppose.
I'm UK based and this is the 6th programming/DevOps role I've had and I've never seen a team that is so utterly opposed to change. This is the largest company I've worked for in a full time capacity so someone please tell me if I'm going to see the same things at other companies of similar sizes (1000 employees). Or even tell me if I'm just being too opinionated and that I simply have different priorities than others I'm working with. The only upside so far is that at least 90% of the people I've been speaking to are very friendly and aren't outwardly toxic.
My first week, I explained during the daily stand up how I had been updating the readmes of a couple of code bases as I set them up locally, updated docker files to fix a few issues, made missing env files, and I didn't mention that I had also started a soon to be very long list of major problems in the code bases. 30 minutes later I get a call from the team lead saying he'd had complaints from another dev about the changes I'd spoke about making to their work. I was told to stash my changes for a few weeks at least and not to bother committing them.
Since then I've found out that even if I had wanted to, I wouldn't have been allowed to merge in my changes. Sprints are 2 weeks long, and are planned several sprints ahead. Trying to get any tickets planned in so far has been a brick wall, and it's clear management only cares about features.
Weirdly enough but not unsurprisingly I've heard loads of complaints about the slow turn around of the dev team to get out anything, be it bug fixes or features. It's weird because when I pointed out that there's currently no centralised logging or an error management platform like bugsnag, there was zero interest. I wrote a 4 page report on the benefits and how it would help the dev team to get away from fire fighting and these hidden issues they keep running into. But I was told that it would have to be planned for next year's work, as this year everything is already planned and there's no space in the budget for the roughly $20 a month a standard bugsnag plan would take.
The reason I even had time to write up such a report is because I get given work that takes 30 minutes and I'm seemingly expected to take several days to do it. I tried asking for more work at the start but I could tell the lead was busy and was frankly just annoyed that he was having to find me work within the narrow confines of what's planned for the sprint.
So I tried to keep busy with a load of code reviews and writing reports on road mapping out how we could improve various things. It's still not much to do though. And hey when I brought up actually implementing psr12 coding standards, there currently aren't any standards and the code bases even use a mix of spaces and tab indentation in the same file, I seemingly got a positive impression at the only senior developer meeting I've been to so far. However when I wrote up a confluence doc on setting up psr12 code sniffing in the various IDEs everyone uses, and mentioned it in a daily stand up, I once again got kickback and a talking to.
It's pretty clear that they'd like me to sit down, do my assigned work, and otherwise try to look busy. While continuing with their terrible practices.
After today I think I'll have to stop trying to do code reviews too as it's clear they don't actually want code to be reviewed. A junior dev who only started writing code last year had written probably the single worst pull request I've ever seen. However it's still a perfectly reasonable thing, they're junior and that's what code reviews are for. So I went through file by file and gently suggested a cleaner or safer way to achieve things, or in a couple of the worst cases I suggested that they bring up a refactor ticket to be made as the code base was trapping them in shocking practices. I'm talking html in strings being concatenated in a class. Database migrations that use hard coded IDs from production data. Database queries that again quote arbitrary production IDs. A mix of tabs and spaces in the same file. Indentation being way off. Etc, the list goes on.
Well of course I get massive kickback from that too, not just from the team lead who they complained to but the junior was incredibly rude and basically told me to shut up because this was how it was done in this code base. For the last 2 days it's been a bit of a back and forth of me at least trying to get the guy to fix the formatting issues, and my lead has messaged me multiple times asking if it can go through code review to QA yet. I don't know why they even bother with code reviews at this point.18 -
We use at our company one of the largest Python ORM and dont code ourselfs on it, event tough I can code. Its some special contract which our General Manager made, before we as Devs where in the Project and everything is provided from the external Company as Service. The Servers are in our own Datacenter, but we dont have access.
We have our Consultants (Project Manager) as payd hires and they got their own Devs.
Im in lead of Code Reviews and Interfaces. Also Im in the "Run" Team, which observes, debuggs and keeps the System alive as 3rd-Level (Application Managers).
What Im trying to achieve is going away from legacy .csv/sftp connections to RestAPI and on large Datasets GraphQL. Before I was on the Project, they build really crappy Interfaces.
Before I joined the Project in my Company, I was a Dev for a couple of Finance Applications and Webservices, where I also did coding on Business critical Applications with high demand Scaling.
So forth, I was moved by my Boss over to the Project because it wasn't doing so well and they needed our own Devs on it.
Alot of Issues/Mistakes I identified in the Software:
- Lots of Code Bugs
- Missing Process Logic
- No Lifecycle
- Very fast growing Database
- A lot of Bad Practices
Since my switch I fixed alot of bugs, was the man of the hour for fixing major Incidents and so on so forth. A lot of improvements have been made. Also the Team Spirit of 15+ People inside the Project became better, because they could consult me for solutions/problems.
But damn I hate our Consultants. We pay them and I need to sketch the concepts, they are to dumb for it. They dont understand Rest or APIs in general, I need to teach them alot about Best Practices and how to Code an API. Then they question everything and bring out a crooked flawed prototype back to me.
WE F* PAY THEM FOR BULLCRAP! THEY DONT EVEN WRITE DOCUMENTATION, THEY ARE SO LAZY!
I even had a Meeting with the main Consultant about Performance Problems and how we should approach it from a technical side and Process side. The Software is Core Business relevant and its running over 3 Years. He just argumented around the Problem and didnt provide solutions.
I confronted our General Manager a couple of times with this, but since 3 Years its going on and on.
Im happy with my Team and Boss, they have my back and I love my Job, but dealing with these Nutjobs of Consultants is draining my nerves/energy.
Im really am at my wits end how to deal with this anymore? Been pulling trough since 1 year. I wanna stay at my company because everything else besides the Nutjob Consultants is great.
I told my Boss about it a couple of times and she agrees with me, but the General Manager doesnt let go of these Consultants.
Even when they fuck up hard and crash production, they fucking Bill us... It's their fault :(3 -
Here, a full retrospective of my Apple products ownership.
iPhone SE – after Android, I was absolutely amazed by how fast it worked. No UI lags, camera works absolutely instantly no matter the light conditions, all the GPU-heavy games work butter smooth.
After camera and charging port failures on Xperia flagship and CPU literally melting through screen rendering it unusable on Meizu, it was enough to make me interested in Apple products.
When I was using Meizu, I actually got a twitching eye which was triggered by UI lags. After two months of using iPhone, I noticed that something was missing – my eye wasn't twitching anymore.
iPhone actually cured me.
MacBook 12 – a 900 grams laptop with passive-cooled mobile CPU running many Chrome tabs, heavy Webpack HMR build, VSCode and Slack just fine. Yes, you can't play games, but I don't even require it from a laptop this tiny.
Butterfly keyboard that internet hates so much actually increased my typing speed and comfort compared to MX Red mechanical keyboard, and ForceTouch trackpad made me forget about mouse. I learned how to disassemble the Butterfly keyboard if I ever need this but the keyboard never failed.
I use this laptop to this day and it still even smells like the day one, a beautiful smell of a new Apple product.
iPhone X – got it because of the camera, stayed for great battery life and amazing OLED display. I use telephoto lens exclusively and it made me lay off my Canon DSLR with Helios lens which stays on my bookshelf covered in dust to this day.
True black of OLED display which is undistinguishable from the screen bezel is stunning. To this day, battery surely works for one and a half days and I watch youtube really often.
I sometimes struggled to unlock iPhone SE with wet fingers, but with FaceID, as soon as I look at the screen the phone is unlocked. Works perfect every time, never had an issue with this.
Stainless steel body feels premium compared to aluminum. Stereo sound is a major selling point if you're like watching videos and playing games on your phone. Overall amazing product and a huge improvement over SE.
Apple Watch series 4 – really comfortable fit. Nice battery life, once I forgot about it for like ten days during lockdown and it was still working, even though on power reserve mode. Really reliable in terms of battery life and liquid protection. Very satisfying Taptic Engine crown clicks. I run every day and Apple watch always measure my heart rate correctly, and the running app is well designed and a pleasure to use. Overall a nice accessory to have if you use iPhone.
Powerbeats Pro – great sound and battery life. I switched from Shure SE215 which was great, but it had wires. I listen to a lot of music so the sound quality is important for me. When I was choosing earphones I visited a store where you can listen to them all. I listened through earphones like Noble Audio Kaiser Encore and JH Audio Layla, and of course $4000 Laylas sound better than $249 bluetooth earphones, but the difference in sound doesn't justify the difference in price to me.
Powerbeats pro is the Apple H1 chip true wireless earphones with largest driver of them all which makes them sound better than AirPods Pro – it's just physics. Bass in Powerbeats is amazing, which is also true for my Shures, but Powerbeats also win in clarity.
It connects seamlessly to both my MacBook and my iPhone, and everyone in voice chats can hear me really good.
Huge case is a major throwback compared to AirPods, but the battery life of earphones themselves is so great that I just leave the case at home and only carry earphones and it works for me.
Apple Link bracelet in space black – really better than I expected. Intricate detailing, literally the steel that Rolex uses, top-notch finishing and polishing – all that for just 450 dollars. I only used it for several days now, but it already feels like a really satisfying product.
Before all that I was using Linux. It took a year for elementaryos devs to fix wifi for my laptop. Ubuntu looks and feels ugly. Pop OS felt like garbage. Manjaro was also just that – garbage. KDE Plasma – I don't even want to talk about that. A monstrocity where you accidentally click a wrong switch in the settings and your system won't boot up again. Also, PulseAudio. Struggles with proprietary drivers and software updates.
Windows? I serviced a lot of Windows PCs through my career and it never, never worked as intended. I'm no dumbass, I always managed the rights correctly and never installed sketchy apps. My latest ryzen gaming build with a lot of ram also lags somehow even in Windows 10 UI.
Before I switched, I defended Linux.
My life was a lie.
I'm sorry to everyone who I offended based on their opinion on Linux.33 -
I've just used https://gtmetrix.com to see how devRant fares. Pretty well actually, with one major gotcha that should be easy to fix. There are a lot of static resources without browser cache expiration date.
A little image optimisation could also be done, see the PageSpeed tab. And scaling down images in CSS could also be replaced by proper scaling of the image itself.
The YSlow tab shows that a little JS minification is missing, and maybe 4 external scripts could be combined into one.1 -
To use Unity with VS you have to get Unity Build Tools as a plugin.
Alright, I'll download that.
Oh but now there's an error with connecting to unity, I need to get a newer VS and switch to the 2018 version of the engine.
Ok fine that's annoying but I guess I might as well upgrade.
Oh now there's no Intellisense? I guess I need to reload my project.
Oh what's this? Some major build error due to a missing component from Vs 2015?
This is getting stupid, fine let me install it.
Oh but to install the component you need to rerun the installer for VS, fine I'll redownload that.
Oh but apparently the installer _I JUST DOWNLOADED A FEW SECONDS AGO_ is outdated and needs to be upgraded. I can't _not_ update the installer and still install the components because that would be stupid, why would we let the developer decide what versions to use obviously they don't know what they're doing I mean it's not like they know how to use computers?
To get simple code completion, let's force developers to download an installer that then needs to be updated to install a component for this giant IDE that also requires the 2015 version of the IDE to be installed alongside a special plugin and patch designed for a specific game engine.
All this. For fucking code completion. I can't even get Intellisense to work in VSCode without fixing the issue since the C# extension in VSCode just binds to Visual Studio tools and runs the same shit with a different GUI.10 -
!tech #off_my_chest
when I look back to the earlier years of my life, I see nothing but loneliness. I had no friends in school, people didn't sit with me, only a few people barely talked with me and it was a mess.
I used to blame my parents for it: I thought they isolated me in a lot of areas which lead to hampering my growth and relations.
However, I recently got a taste of my old days and realized the root cause of the problem: DISEASES.
I used to be a very weak and sick child. I had extreme cough so much so that i will go on coughing for 1 min in every 2 mins. Cough hasn't touched me in last 10 years, but recently i caught cough again and it lead to a whole lot of revelations.
I currently have a good social network. I have one friend from past 10 years with whom I used to goto the park every day. I took off this park routine for 2 days citing sickness and he was worried. So once I felt better on 3rd day, i went to the park with him. While walking I again started coughing (albeit very less), but I could notice his expressions. he wanted to just get out of this whole situation. Next day, he didn't even bothered to message, and when i did, he started making excuses.
I had another group of home friends, who are so close to me that we went for snacks at any random time on any random day. Last year i went onto 3 road trips with them. but last weekend they straight up declined meeting me saying get better first.
---------------------------
I don't blame any of my friends or parents.
no one wants to be around a sick person, thinking that if the situation worsens, then the ill guy might need help that they couldn't provide, and if the situation went out of hand, then they would be the one to blame. And it's not just my illness, I think this might apply to anyone with an illness or a disability. everyone treats them as liabilities or time ticking bombs
Everyone wants to be in a homogenous group of healthy people with no one having any life problems so everyone could enjoy a movie life.
Guess what? THAT'S NOT HOW LIFE WORKS!!
People are at different stages of life in terms of age, knowledge, power, health, and finances. in a group of 5, if people come together to watch a movie, there maybe 1 person who is giving away his evening's dinner money for affording the tickets. another might be missing out on her sick grandma or office work just to be part of this one gathering for 3 hours.
And regarding ill people, we are not your responsibility once we are out of our patient bed!
I understand that I might need my friend's help in calling my parents or an ambulance if the situation worsens, but isn't that normal for healthy people too? what if 2 guys are walking on the street and one is hit by a car? won't the other call the ambulance?
And suppose My friend is not able to the help I needed, would I blame him for it?
NO!
Absolutely no! It was my decision to go out and meet people even when sick even if it was a risky move. Life only goes forward if we take risks. But if it backfired, then the instance where he was not able to help would be much less significant than the instance where i decided to get up and go out. That would be the only major blame area and the only person to blame would be me, myself!
The sick is just an inconvenience on people's souls, that's it.
--------
This whole experience makes me so worried about my office and professional situation. I am an excellent engineer working from home and this WFH has helped me keep my cough from worsening while working in a professional capacity.
But our office is shifting to WFO and that is a concern.
1. being in a different state, and working in office takes so much attention and focus that i often forget eating lunch or going to washroom. idk how i will treat my sickness if i got sick there.
2. being in home, i can do my work without bothering other people with my cough. at office, people will want to sit away from me and that ewould be not possible. eventually i would be forced by people to take leaves to "get better" as am bothering everyone
3. if i don't get "better" soon, which is there definition of being healthy enough to come to the office without any sickness (even though my illness doesn't hamper my efficiency), they will fire me .
i am royally fucked. even when i get better, WFO will always have a negetive factor like this. for cases of self illness, family illness, parents illness, if you are not being an 'office' slave (just being the 'work' slave isn't enough), you won't get the money4 -
I think the following is all in my head, or I am heading towards an office rivalry situation between my tech lead and me.
characters :
me : a no nonsense android guy who is sometimes very blunt when requested for unwarranted demands. i am also realising that i have been a bit too arrogant, as i come up with a lot of counter questions too fast (not related to story tho)
tech lead : an android guy who has been android dev for a total of 4 years (same as me), 3 of them in current company and somehow got promoted to TL
story: I find this guy to be too much political, delegating a lazy bum, and i kinda called him out in public , once during a discussion where other folks were also kinda calling him out and another time when we were having a small meeting of 3 people. he in turn has taken some actions (like giving me a lower kpi, not giving me appropriate data for doing some work and then asking about it in public, casually ignoring my leave requests) which looks he is taking out a revenge.
at first time i called him out in a discussion where everyone was getting against his havit of giving buttery responses to his boss (who occasionally joins our standups) . he says "we are on track" while we are already dependent on him to provide data/decisions.
he then says to us to do it faster , and when the work does not get completed ( because how it could be, without him doing his job), he blames it on devs.
i called him out on a similar but different topic of him making last moment task additions when we are already on brim with our planned tasks.
on second time i called him out on him not looking into the current task enough as he was expecting me to take decisions on my own.
the decision was about how a screens ui will be populated and there was no api payload available that would match the ui . i created 2 mock api jsons which would appropriately load that screen but was not sure if the 2 apis would be enough for the screen and wondered whete some missing data will come from?
this task is a long one, nd i did took a decision, but he should had validated them to make sure we are on track. the issue came when i took some questions to him and instead of answering them , he blamed on me not being mature enough to work without the data!
All things aside, I am on my weary ends with thins guy. He is my boss and holds incredible powers over me, but he is incredibly incompetent and his habits of delay, delegation and blaming is making my work life worse. I don't wanna leave this job too, because as much as i hate it, its currently one of the major names in industries and giving a solid power to my resume -
So I'm basically fucked.
There's a major bug on an SPA I developed for a client, but I can't reproduce it because I don't have a recent iPhone or iPad (the only ones I have a way too old and either way I can't debug them without a mac) and I can't reproduce the bug on my android.
To overcome this in the past I installed a hackintosh on my pc and used it's iphone emulator, but I fucked it up and had to reinstall all my OSs but was too lazy to reinstall macos. Now I don't remember how to install it anymore, idk where I downloaded the fucking mojave virtual box image and the macos bootable usb stick I have just doesn't work anymore (probably some missing kext or whatever).
I really do not know what I'm gonna do. There's this ios-webkit-debug-proxy thing that might help me, but it just looks like it's a hassle to install and since I don't know what I'm doing the chances of it working are pretty slim. I might try that but I'm fairly confident it won't work. And even if it does, I still can't install chrome on the iphone I own because it's too old and my dad probably won't let me upgrade it to a new version.13 -
You can't make this shit up. Google it. WTF.
-----
Question: Why are my <<Major Bank>> reports missing transactions, or why don't they reconcile?
Answer:
Issue
Data is missing from your <<Major Bank>> reports.
Cause
System issues at <<Major Bank>> can compromise the completeness of your report data.1 -
Man, I enjoy the work I do and my boss is a great guy, but being rushed is never fun. And it's hard to say "it'll be done soon" if there's still some major features missing and the implementation is still unclear.
Can't a junior just take his time to make some decent code that won't end as spaghetti? I have enough PTSD of the first project I did here, which I still have to bugfix at least once a month 😂 -
This is an actual transcript...
Since it's way too long for the normal 5000 characters, hence splitting it up...
Infra Guy: mr Dev, could you please give some rational for update of jjb?
Dev: sparse checkout support is missing
Infra Guy: is this support mandatory to achive whatever you trying to do?
Dev: yes
Infra Guy: u trying to get set of specific folder for set of specific components?
Dev: yes
Infra Guy: bash script with cp or mv will not work for you?
Dev: no
Infra Guy: ?
Dev: when you have already present functionality why reinvent the wheel
Dev: jenkins has support for it
Dev: the jjb is the bottle neck
Infra Guy: getting this functionality onto our infra would have some implications
Dev: why should I write bash script if jenkins allows me to do that
Dev: what implications ??
Infra Guy: will you commit to solve all the issues caused by new jjb?
Dev: you show me the implications first
Infra Guy: like a year ago i have tried to get new jjb <commit_url>
Infra Guy: no, the implications is a grey area
Infra Guy: i cant show all of them and they may hit like in week or eve month
Dev: then why was it not tackled
Dev: and why was it kept like that
Infra Guy: few jobs got broken on something
Dev: it will crop up some time later
Dev: if jobs get broken because of syntax
Dev: then jobs can be fixed
Dev: is it not ???
Infra Guy: ofc
Infra Guy: its just a question who will fix them
Dev: follow the syntax and follow the guidelines
Dev: put up a test server and try and lets see
Dev: you have a dev server
Dev: why not try on that one and see what all jobs fails
Dev: and why they fail
Dev: rather than saying it will fail and who will fix
Dev: let them fail and then lets find why
Dev: I manually define a job
Dev: I get it done
Infra Guy: i dont think we have test server which have the same workload and same attention as our prod
Dev: unless you test how would you know ??
Dev: and just saying that it broke one with a version hence I wont do it
Infra Guy: and im not sure if thats fair for us to deal with implication of upgrading of the major components just cause bash script is not good enough for u
Dev: its pretty bad
Infra Guy: i do agree
Infra TL Guy: Dev, what Infra Guy is saying is that its not possible to upgrade without downtime
Infra Guy: no
Dev: how long a downtime are we looking at ??
Infra Guy: im saying that after this upgrade we will have deal with consequences for long time
Infra Guy-2: No this is not testing the upgrade is the huge effort as we dont have dev resources to handle each job to run
Dev: if your jjb compiles all the yaml without error
Dev: I am not sure what consequences are we talking of
Infra Guy: so you think there will be no consequences, right?
Dev: unless you take the plunge will you know ??
Dev: you have a dev server running at port 9000
Infra Guy: this servers runs nothing
Dev: that is good
Dev: there you can take the risk
Infra Guy: and the fack we have managed to put something onto api doesnt mean it works
Dev: what API ?
Infra Guy: jenkins api
Infra Guy: hmmm
Dev: what have you put on Jenkins API ??
Infra Guy: (
Dev: jjb is a CLI
Infra Guy: ((
Dev: is what I understand
Dev: not a Jenkins API
Infra Guy: (((
Dev: (((((
Infra Guy: jjb build xmls and push them onto api
Infra Guy: and its doent matter
Dev: so you mean to say upgrading a CLI is goig to upgrade your core jenkisn API
Dev: give me a break
Infra Guy: the matter is that even if have managed to build something and put it onto api
Infra Guy: doesnt mean it will work
Dev: the API consumes the xml file and creates a job
Infra Guy: right
Dev: if it confirms to the options which it understands
Dev: then everything will work
Dev: I am actually not getting your point Infra Guy
Infra Guy: i do agree mr Dev
Dev: we are beating around the bush
Infra Guy: just want to be sure that if this upgrade will break something
Infra Guy: we will have a person who will fix it
Dev: that is what CICD is supposed to let me know with valid reasons
Dev: why can't that upgrade be done
Infra Guy: it can be done
Infra Guy: i even have commit in place3 -
Why do companies waste serious cash in office parties? I'm talking about those hundred-thousand-dollar extravaganzas that major tech companies seem to be addicted to.
Poll after poll finds that most employees would rather have the cash, so "kissing the collective asses of tech staff so that they won't leave" is not an explanation that holds up.
The "Roman Triumph" explanation also does not make any sense. If rich assholes want to flex their immeasurable riches, why would they invite mere mortals that do not put a lot of effort in being famous or pretty? Couldn't they invite the entire Victoria's Secret catalogue of models and the NE Patriots? Surely it would make for much more impressive photos of decadence.
The "Michael Scott" explanation also falls short. Companies spend serious cash on consultants and professional party planners, that are sure to know a lot of people. Money can and often does buy personality, so no rich asshole is ever a party dud.
Why else do they force most of their own staff into what they perceive as a "do not relax or you may get fired" loud and poorly lit meeting that takes hours to dress up for? What am I missing?5 -
Storytime.
The Prometheus tales
Part IV - A new FUBAR.
A new and very fascinating problem emerged a few days, after feeding some node definitions to the new titan instance.
It's a storage fuck-up. A major one.
If I'm informed correctly, the latest prometheus should have the same (or even better) log compression algorithms for metrics, as the old one - because these fuckers are so damn good at what they are doing: compress some fucking logs.
The new instance is agregating metrics as planned. Grafana work's like a fucking charm.
Nethertheless, because of very fascinating but unknown reasons, the new instance creates 50GB of metrics in under 4 fucking hours.
Am I missing something here? Some magic parameter that has to be passed to the titan, that enables the hardcore compress-them-fuckers-feature?
Debugging session is tomorrow.
To be continued. -
Know that feeling when you break out of a really deep relationship, end up with someone else who's prettier and better in many ways than your ex yet still, during those intimate moments, you can't help but think about your ex and how good life was with them?
My previous laptop even though it had the same processor, lesser RAM, was less prettier and the SSD being the only upgrade to my new one, somehow worked faster, smoother and felt a lot better. :( -
This currently project I'm working on is taking a turn for the worse. I keep finding missing features from the designs, but then also the project manager remembered that there were these other requirements that were needed. She only remembered after I raised an issue about another problem because NOTHING has been written down. A wireframe is NOT a fucking requirements document.
So now I have to refactor 2 major components just to include this sudden new requirement. I really hope I don't work with this project manager ever again on any future projects. -
Immediately after the last major release, I enabled CheckStyle to fail on unused methods and variables, and then I proceeded to delete all dead code. The test suite passed and I got approval to merge. Two months later, the next major release went out the door…guess how that went :)
Using TDD or at the very least writing unit tests ensures your code won’t break, or go missing!1 -
It's these individually tiny annoyances in products and software that together form a huge annoyance.
For example, it's 2022 and Chromium-based web browsers still interrupt an upload when hitting CTRL+S. This is why competition is important. If there was no Firefox, the only major web browsers would, without exception, have this annoyance, since they're all based on Chrmoium.
I remember Chromium for mobile formerly locking scrolling and zooming of the currently viewed page while the next page was loading. Thankfully, this annoyance was removed.
In 2016, the Samsung camera software was updated to show a "camera has been opened via quick launch" pop-up window when both front and rear sensors of the smartphone were covered while the camera was launched by pressing the home button twice, on the camera software Samsung bundled with their custom version of Android 6. What's more, if that pointless pop-up was closed by tapping the background instead of the tiny "OK" button or not responded to within five seconds, the camera software would exit itself. Needless to say, this defeats the purpose of a quick launch. It denies quick-launching while the phone is in the pocket, and the time necessary to get the phone out could cause moments to be missed.
Another bad camera behaviour Samsung introduced with the camera software bundled with their customized Android 6 was that if it was launched again shortly after exiting or switching to stand-by mode, it would also exit itself again within a few seconds. It could be that the camera app was initially designed around Android 5.0 in 2015 and then not properly adapted to Android 6.0, and some process management behaviour of Android 6.0 causes this behaviour. But whatever causes it, it is annoying and results in moments to not be captured.
Another such annoyance is that some home screen software for smartphones only allows access to its settings by holding a blank spot not occupied by a shortcut. However, if all home screen pages are full, one either needs to create a new page if allowed by the app, or temporarily remove a shortcut to be able to access the settings.
More examples are: Forced smartphone restart when replacing the SIM card, the minimum window size being far too large in some smartphones with multi-windowing functionality, accidental triggering of burst shot mode that can't be deactivated in the camera software, only showing the estimated number of remaining photos if less than 300 and thus a late warning, transition animations that are too slow, screenshots only being captured when holding a button combination for a second rather than immediately, the terminal emulator being inaccessible for the first three minutes after the smartphone has booted, and the sound from an online advertisement video causing pain from being much louder than the playing video.
Any of these annoyances might appear minor individually, but together, they form a major burden on everyday use. Therefore, developers should eliminate annoyances, no matter how minor they might seem.
The same also applies for missing features. The individual removal of a feature might not seem like a big of a deal, but removing dozens of small features accumulates to a significant lack of functionality, undermining the sense of being able to get work done with that product or software when that feature is unexpectedly needed. Examples for a products that pruned lots of functionality from its predecessor is the Samsung Galaxy S6, and newer laptops featuring very few USB ports. Web browsers have removed lots of features as well. Some features can be retrofitted with extensions, but they rely on a third-party developer maintaining compatibility. If many minor-seeming features are removed, users will repeatedly hit "sorry, this product/software can not do that anymore" moments.