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 - "google suggestion"
-
This code review gave me eye cancer.
So, first of all, let me apologize to anyone impacted by eye cancer, if that really is a thing... because that sounds absolutely horrible. But, believe me, this code was absolutely horrible, too.
I was asked to code review another team's script. I don't like reviewing code from other teams, as I'm pretty "intense" and a nit-picker -- my own team knows and expects this, but I tend to really piss off other people who don't expect my level of input on "what I really think" about their code...
So, I get this script to review. It's over 200 lines of bash (so right away, it's fair game for a boilerplate "this should be re-written in python" or similar reply)... but I dive in to see what they sent.
My eyes.
My eyes.
MY EYES.
So, I certainly cannot violate IP rules and post any of the actual code here (be thankful - be very thankful), but let me just say, I think it may be the worst code I've ever seen. And I've been coding and code-reviewing for upwards of 30 years now. And I've seen a LOT of bad code...
I imagine the author of this script was a rebellious teenager who found the google shell scripting style guide and screamed "YOU'RE NOT MY REAL DAD!" at it and then set out to flagrantly violate every single rule and suggestion in the most dramatic ways possible.
Then they found every other style guide they could, and violated all THOSE rules, too. Just because they were there.
Within the same script... within the SAME CODE BLOCK... 2-space indentation... 4-space indentation... 8-space indentation... TAB indentation... and (just to be complete) NO indentation (entire blocks of code within another function of conditional block, all left-justified, no indentation at all).
lowercase variable/function names, UPPERCASE names, underscore_separated_names, CamelCase names, and every permutation of those as well.
Comments? Not a single one to be found, aside from a 4-line stanza at the top, containing a brief description of that the script did and (to their shame), the name of the author. There were, however, ENTIRE BLOCKS of code commented out.
[ In the examples below, I've replaced indentation spacing with '-', as I couldn't get devrant to format the indentation in a way to suitably share my pain otherwise... ]
Within just a few lines of one another, functions defined as...
function somefunction {
----stuff
}
Another_Function() {
------------stuff
}
There were conditionals blocks in various forms, indentation be damned...
if [ ... ]; then
--stuff
fi
if [ ... ]
--then
----some_stuff
fi
if [ ... ]
then
----something
something_else
--another_thing
fi
And brilliantly un-reachable code blocks, like:
if [ -z "$SOME_VAR" ]; then
--SOME_VAR="blah"
fi
if [ -z "$SOME_VAR" ]
----then
----SOME_VAR="foo"
fi
if [ -z "$SOME_VAR" ]
--then
--echo "SOME_VAR must be set"
fi
Do you remember the classic "demo" programs people used to distribute (like back in the 90s) -- where the program had no real purpose other than to demonstrate various graphics, just for the sake of demonstrating graphics techniques? Or some of those really bad photo slideshows, were the person making the slideshow used EVERY transition possible (slide, wipe, cross-fade, shapes, spins, on and on)? All just for the sake of "showing off" what they could do with the software? I honestly felt like I was looking at some kind of perverse shell-script demo, where the author was trying to use every possible style or obscure syntax possible, just to do it.
But this was PRODUCTION CODE.
There was absolutely no consistency, even within 1-2 adjacent lines. There is no way to maintain this. It's nearly impossible even understand what it's trying to do. It was just pure insanity. Lines and lines of insanity.
I picture the author of this code as some sort of hybrid hipster-artist-goth-mental-patient, chain-smoking clove cigarettes in their office, flinging their own poo at their monitor, frothing at the mouth and screaming "I CODE MY TRUTH! THIS CODE IS MY ART! IT WILL NOT CONFORM TO YOUR WORLDLY STANDARDS!"
I gave up after the first 100 lines.
Gave up.
I washed my eyes out with bleach.
Then I contacted my HR hotline to see if our medical insurance covers eye cancer.32 -
Me: *types "recursion" into google*
Google: Did you mean: recursion
Me: *clicks the suggestion, even tho I see no error*
Google: Did you mean: recursion
Me: ohh I see. I feel stupid6 -
Freaking tech support.
Freaking sparkhire.
Their 'one-way interview' bs only supports flash. Flash. in production. in 2019. Flash died years ago, and its support ends next year. What the crap?
Anyway, I finally decided I should do the interview since they already have all of my information anyway. Thanks, "privacy-conscious" third party. Totally appreciate it.
I spent half an hour and couldn't get flash working on their site (but all other sites were fine), so I contacted their support. I gave them all the relevant specs (inc. ofc browser), the steps to reproduce, and all of my attempts at fixing the issue.
To their credit, I recieved a response within a few minutes. To their discredit: their response was: "What browser are you using?" This question was followed by my report (including, ofc, my browser and all the other overlooked details), immediately followed by a "debugging info" section appended by their support service that also included my browser, os, and other specs.
Learn to fucking read.
Their suggestion? Use google chrome. Barring that: record your 20-30 minute video by holding your phone in front of your face the entire time. I am so not kidding.
They also asked what page i was having difficulty on. You guessed it: the page url was also included within that "debugging info" section.
It wasn't a form letter, either. I'd understand if it was all automated, but it was a real person who was really typing up the emails, and really didn't bother reading a damned thing.
I did end up getting flash working, but their "tech support" (script-reader) was entirely useless.16 -
My friend told me stories about his colleague who's always against him.
One time, during their management meeting, that colleague suggested that they should have a suggestion box in the office.
So my friend proposed that they use Google forms. He presented how Google forms work and the majority got really impressed(except the colleague).
Naturally the colleague is against him, he said "this is not what I had in mind". He wanted to have an actual box and people write suggestions on paper and drop it in(suggesting the ancient way).
Every meeting, the colleague complains a lot, and my friend provides techy and convenient solutions.7 -
WHAT THE FUCK? WHAT THE FUCK IS THIS SHIT? ARE YOU FUCKING SERIOUS.. I WAKE UP IN THE MIDDLE OF THE FUCKING NIGHT BECAUSE MY FUCKING PHONE VIBRATED UNDER MY FUCKING PILLOW WHICH I KNOW ISN'T VERY HEALTHY BUT WHATEVER, I CHECK MY PHONE AND IT'S A GODDAMN GOOGLE PLAY AD... IN THE FUCKING NOTIFICATIONS. THEY FUCKING SENT ME AN APP SUGGESTION IN MY NOTIFICATIONS EVEN THOUGH THAT OPTION IS SPECIFICALLY TURNED OFF IN THE FUCKING SETTINGS.
FUCK YOU GOOGLE YOU BOTNET GREEDY BLOATED "muh AI" PIECE OF SHIT. I HOPE YOUR SERVERS IN ALL CONTINENTS GET BURNED DOWN BY SOME SADIST NIHILIST HACKER WITH A 0DAY AND YOU SEIZE TO EXIST.
Goodnight.10 -
@linuxxx
I have a suggestion for you,
Please set up an Unbound resolver so people does not have to depend on big actors like Google, Cloudflare or quad9.13 -
Got a dental crown a couple of weeks ago. I still have pain. Decided to ask google.. was not disappointed by the suggestion1
-
And once again, Spotify just leaves me speechless.
I guess I don't actually need to talk about this clusterfuck of a mobile app getting more and more slow and unstable with every update. So let's talk about something else.
When I cracked the first limit, I thought it had to be a joke. 9.999 songs can be downloaded at once. But not all on one device. You can download 3.333 songs each to three separate devices - regardless of the fact that there is more than enough space left on the device and you are not even using any other device.
When I read this one [-> https://goo.gl/43YwKm ], I really got angry:
"If you move, or enter the wrong details, you need to create a new account (make sure you cancel the plan on your old account beforehand, and sign out everywhere) and subscribe to Premium for Family on that new account."
I don't even know how to respond to this except with insane wrath.
So now I cracked the next one. My library is full. The maximum number of songs that can be stored in the library is 10.000 and not one more.
If they wanted more money for the additional ressources, I'd even understand that. Yes, the suggestion calculations become more expensive, I do know that. And I would even pay for that. But there is no such option.
Instead, the company is making the most customer hostile decisions I could imagine.
Even though the competition proves that a multiple of such a limit is not a problem at all (Google Music: 50.000 songs / Apple Music: 100.000 songs).
And you have to create a new account when you move? That's hard to beat for impudence, especially wigh regard of the fact that no migration service is provided, so a person like me would spend a long time transferring all the stored music and playlists.
I'm not even sure it's complying with European law not to be able to see your address online, let alone change it.
And all of that because they know they can afford it anyway, since although the competition is a lot better on that score, they simply can't keep up in the matter of spectrum and algorithms.
And if I can only take 70% of my music with me when I change the service, I can just as well delete 3.000 songs from my library and stay with Spotify.
What a fucking wreck. I really don't get it.8 -
Hello world in different languages. Everyone can add a suggestion :) . No google translate!!! I give the first ones :)
Only one language per person! 😂
English: hello world53 -
So a few months ago, I got a half-broken old iPhone (microphone, speaker and cameras not working) for testing purposes and it lays 99.9% of the time on my shelf turned off. Today, I turned it on and after I opened Safari, I surprised in not exactly the most pleasant way.
When I started writing in the address bar a strange suggestion from Siri came up for a website my mom searched a few hours ago on her android tablet. Like what the actual fuck?? There is absolutely 0 connection between these 2 devices, there is PiHole running on local network. The only thing that I can think of is that she is using Google (logged out) and it looks like they are actively sharing their data based on IP addresses. Wow...1 -
Being addict to IDE is when you hit ctrl + space while searching on google hoping to get suggestion ..1
-
What the absolute fuck is this!
Fucking bash needs to get its shit together with its fucking strings.
I don't fucking know why str1 + var2 = var2tr1
Like who designed this fucking bullshit!
I've spent the past 8 hours today counting all my ' and " and making sure everything is getting passed correctly.
And how do you even google this shit anyways!
And why the fuck is the official suggestion from the bash FAQ to load everything into an array and to call it with "${ARRAY[@]}"
WHO THE FUCK DECIDED THAT WAS READABLE!!
AUGH!!!
In case anyone was wondering. It didn't work anyways.
I think I'm done for today... I can't anymore...
for anyone wondering. This is bash getting executed by nodejs with execSync()
and those tokens are temporary and only exist on my dev machine. Sorry for getting your hopes up.11 -
So at our company, we use Google Sheets to for to coordinate everything, from designs to bug reporting to localization decisions, etc... Except for roadmaps, we use Trello for that. I found this very unintuitive and disorganized. Google Sheets GUI, as you all know, was not tailored for development project coordination. It is a spreadsheet creation tool. Pages of document are loosely connected to each other and you often have to keep a link to each of them because each Google Sheets document is isolated from each other by design. Not to mention the constant requests for permission for each document, wasting everybody's time.
I brought up the suggestion to the CEO that we should migrate everything to GitHub because everybody already needed a Github account to pull the latest version of our codebase even if they're not developers themselves. Gihub interface is easier to navigate, there's an Issues tab for bug report, a Wiki tab for designs and a Projects tab for roadmaps, eliminating the need for a separate Trello account. All tabs are organized within each project. This is how I've seen people coordinated with each other on open-source projects, it's a proven, battle-tested model of coordination between different roles in a software project.
The CEO shot down the proposal immediately, reason cited: The design team is not familiar with using the Github website because they've never thought of Github as a website for any role other than developers.
Fast-forward to a recent meeting where the person operating the computer connected to the big TV is struggling to scroll down a 600+ row long spreadsheet trying to find one of the open bugs. At that point, the CEO asked if there's anyway to hide resolved bugs. I immediately brought up Github and received support from our tester (vocal support anyway, other devs might have felt the same but were afraid to speak up). As you all know, Github by default only shows open issues by default, reducing the clutter that would be generated by past closed issues. This is the most obvious solution to the CEO's problem. But this CEO still stubbornly rejected the proposal.
2 lessons to take away from this story:
- Developer seems to be the only role in a development team that is willing to learn new tools for their work. Everybody else just tries to stretch the limit of the tools they already knew even if it meant fitting a square peg into a round hole. Well, I can't speak for testers, out of 2 testers I interacted with, one I never asked her opinion about Github, and the other one was the guy mentioned above. But I do know a pixel artist in the same company having a similar condition. She tries to make pixel arts using Photoshop. Didn't get to talk to her about this because we're not on the same project, but if we were, I'd suggest her use Aseprite, or (at least Pixelorama if the company doesn't want to spend for Aseprite's price tag) for the purpose of drawing pixel arts. Not sure how willing she would be at learning new tools, though.
- Github and other git hosts have a bit of a branding problem. Their names - Github, BitBucket, GitLab, etc... - are evocative of a tool exclusively used by developers, yet their websites have these features that are supposed to be used by different roles other than developers. Issues tabs are used by testers as well as developers. Wiki tabs are used by designers alongside developers. Projects and Insights tabs are used by project managers/product owners. Discussion tabs are used by every roles. Artists can even submit new assets through Pull Requests tabs if the Art Directors know how to use the site interface (Art Directors' job is literally just code review, but for artistic assets). These websites are more than just git hosts. They are straight-up Jira replacement with git hosting as a bonus feature. How can we get that through the head of non-developers so that we don't have to keep 4+ accounts for different websites for the same project?4 -
As we all know(or suppose) that Google is silently listening to us, is there any way to stop him without covering the microphone physically (I know it can be a suggestion)?
Like some trustable app to take the mic permissions so that Google will not be able to use that resource, or something else.16 -
!rant
Any game developers here?
What are some get started books to read for game development?
I know I can google. But what is yours suggestion?12 -
Im having a sort of dilema. I recently started taking freelance work for web developement (and design ack) and Im uncomfortable with the state of the industry. Ill explain: Say if I bid a client for a simple 1-3 page site w contact form (a new page, not migration) My suggestion is to use djangocms, django, or just static html/css/js (ie bootstrap), which produces clean, fairly secure, and fast sites. Of course I can throw a templated unoriginal wordpress site together in a few hours 2 days latest, so I offer that option as a sidenote on the bid, charging almost 2x more. For some reason I dont understand they choose the wp shitshow. I explain all the reasons that not the way to go( which I wont list, if u dont know, u never used it. google up) but they dont care abt the details, they rather pay more for shit job. OFC I reluctantly deliver what they want, but as a result my portfolio is full of unoriginal shit Im not happy showing off. I have a few sites Ive done on the side my prefered way, but they not deployed and sit in my github for all intents n purposes unviewable to potential clients.
I want to be proud of my portfolio, and it to be a representation of what Im capable of. BUT, I gotta eat, and work is better than no work.
There are so many "wordpress designers" oversaturaring the field and it lowering the overall standard of what we are capable of. I just begining my dev journey, but if I cant have a body of work Im proud of, theres no way I can see doing this the rest of my life, and that makes me really sad. My love of developing, coding, and IT/computers in general drove me to change careers from audio engineering to web development, and the fact that this fucking mr. potatoe head of a CMS is slowly turning that love into hate really pisses me off. So Im ending this !rant looking for hope.
Your thoughts?1 -
I really don't like this trend of building command line applications for controlling some <buzzword> cloud app or <buzzword> framework.
Why should I need or want to learn the exact wording of your gcloud command, or the path to your Ng cli, or some ass-backwards AWS search syntax when I can get the same functionality from your web app, where I can use my FUCKING EYES to work out where the "Create Instance" button is and how to click it!!!??
Stop pushing your shitty python monolith of a client where possibilities for the above task range from:
- google-cloud instances --add "subfjfechye thiq"
To
- gcloud /create /type=INSTANCE "rogdhyuffhue"
"BuT iT mAkEs iT MoRe aUtomaTaBLe"
I DON'T CARE. What is the point when I can use a proper programming language instead of bash, with actual code-completion and syntax rather than the horrendous excuse for a suggestion system that is the Tab key where it probably doesn't even work in the first place and I have to copy and paste some mysterious dbus command buried in an old documentation page on the Wayback Machine using a utility I don't have installed and a broken URL?
Go away.8 -
A bit longer rant, somehow triggered by the end of this rant:
https://devrant.com/rants/7145365/...
The discussion revolved around strpos returning false or a positive integer.
Instead of an Option or a Exception.
I said I'm a sucker for exception, but I'm also a sucker for typing.
Which is something most languages lack - except the lower level ones like C / C++.
I always loved languages which have unsigned and signed types.
There, I said it... :) I know that signed / unsigned is controversial, Google immediately leads to blog entries screaming bloody murder because unsigned can overflow – or underflow, if someone tries to use a -1on an unsigned integer.
Note that my love is only meant for numeric types, unsigned / signed char is ... a whole can of insanity on its own.
https://phoronix.com/news/...
If you wanna know more.
Back to the strpos problem, now with my secret love exposed:
strpos works on a single string, where a string is a sequence of chars starting with 0.
0 is a positive integer.
In case the needle (char that should be looked up in the string) cannot be found in the haystack (the string), PHP returns "false".
This leads to the necessity of explicitly checking the type as "0" (beginning of string, a string position)... So strpos !== false.
PHP interprets 0 as false, any other integer value is true.
In the discussion, the suggestion came up to return -1 if a value could not be found – which some languages do, for example Scala.
Now I said I have a love for unsigned & signed integers vs. just signed integers...
Can you guess why the -1 bothers me very much?
Because it's a value that's illogical.
A search in a sequence that is indexed by 0 can only have 0 or more elements, not less than zero elements.
-1 refers to a position in the sequence that *cannot* exist.
Which is - of course - the reason -1 was chosen as a return value for false, but it still annoys me.
An unsigned integer with an exception would be my love as a return value, mostly because an unsigned integer represents the return value *best*. After all, the sequence can only return a value of 0 ... X.
*sigh*
Yes, I know I'm weird.
I'm also missing unsigned in Postgres, which was more or less not implemented because it's not in the SQL standard...
*sob*29 -
So the last two weeks Ive been trying to flash lineageOS on my new OnePlus6. Ive done multiple phones with custom roms without issue, but the new A/B partitioning makes it a lot more impossible.
I followed LineageOS their official guide for the phone twice and also suggestions from both OP subreddit as LineageOS subreddit.
After every fail I end up with a black screen and a blue LED, both when booting the OS and when booting TWRP from fastboot. Then Im doing a factory reset through a windows only tool and start over.
Im getting pretty frustrated, to a level I am almost saying FUCK it I will use google, since my current phone only works while connected to a charger. Since I really hate google I hope any of you can give a suggestion of flashing my phone.10 -
It's been one month since I joined devRant, the community is awesome and it is good to be here.
It was the second-best suggestion given by Google in recent times. -
Thinking to reduce google foot print by replacing google map with here map... Any suggestion before I do?10
-
I read this rant about IE (https://www.devrant.io/rants/514347) but could not relate to it (I use Linux MS suckers!) So I thought I'd post a browser rant of my own, and this time it is about Chrome (or Blink since it also affects Opera). Whenever I start typing localhost Chrome suggests "localhost" but when I click this suggestion it takes me to a Google search result when all I really wanted was to test a webapp on my dev box. This is very annoying every time.
-
After not using Intel XDK for a year. I just noticed that they dropped support for this tool in early 2018 and removed all the keystores stored in their system.
Now I'm unable to update my android app because I don't have the key anymore.
And now soon google play will remove my app due to security issue on certain module.
I should've kept the keystore myself...
Oh well mistakes were made and lessons are learned the hard way.
Does anyone have any suggestion to retrieve a keystore file? -
suggestion?
Maybe we can have some sort of weekly rantcast podcast (maybe with @dfox hosting it or something through Google Hangouts) where we talk about certain topics and let a group of ranters take the word or something. Not sure if anyone would be interested or would listen to it but it sounded like a good idea to me (it would also grant the ability for people who don't live in NYC or in the US to kind of meet other ranters more personally and stuff like that)
Thoughts on this?3 -
Idiot: "You should use this thing for that ! It's way better than your suggestion "
Me: " ok cool can you explain to me why it's better or even what it does for me? "
Idiot: " well .. It's kind of ... Like .. Erm ....google it man"
Me: "face palm"