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 - "slack bot"
-
Welcome back to practiseSafeHex's new life as a manager.
Episode 2: Why automate when you can spend all day doing it by hand
This is a particularly special episode for me, as these problems are taking up so much of my time with non-sensical bullshit, that i'm delayed with everything else. Some badly require tooling or new products. Some are just unnecessary processes or annoyances that should not need to be handled by another human. So lets jump right in, in no particular order:
- Jira ... nuff said? not quite because somehow some blue moon, planets aligning, act of god style set of circumstances lined up to allow this team to somehow make Jira worse. On one hand we have a gigantic Jira project containing 7 separate sub teams, a million different labels / epics and 4.2 million possible assignees, all making sure the loading page takes as long as possible to open. But the new country we've added support for in the app gets a separate project. So we have product, backend, mobile, design, management etc on one, and mobile-country2 on another. This delightfully means a lot of duplication and copy pasting from one to the other, for literally no reason what so ever.
- Everything on Jira is found through a label. Every time something happens, a new one is created. So I need to check for "iOS", "Android", "iOS-country2", "Android-country2", "mobile-<feature>", "mobile-<feature>-issues", "mobile-<feature>-prod-issues", "mobile-<feature>-existing-issues" and "<project>-July31" ... why July31? Because some fucking moron decided to do a round of testing, and tag all the issues with the current date (despite the fact Jira does that anyway), which somehow still gets used from time to time because nobody pays attention to what they are doing. This means creating and modifying filters on a daily basis ... after spending time trying to figure out what its not in the first one.
- One of my favourite morning rituals I like to call "Jira dumpster diving". This involves me removing all the filters and reading all the tickets. Why would I do such a thing? oh remember the 9000 labels I mentioned earlier? right well its very likely that they actually won't use any of them ... or the wrong ones ... or assign to the wrong person, so I have to go find them and fix them. If I don't, i'll get yelled at, because clearly it's my fault.
- Moving on from Jira. As some of you might have seen in your companies, if you use things like TestFlight, HockeyApp, AppCenter, BuddyBuild etc. that when you release a new app version for testing, each version comes with an automated change-log, listing ticket numbers addressed ...... yeah we don't do that. No we use this shitty service, which is effectively an FTP server and a webpage, that only allows you to host the new versions. Sending out those emails is all manual ... distribution groups?? ... whats that?
- Moving back to Jira. Can't even automate the changelog with a script, because I can't even make sense of the tickets, in order to translate that to a script.
- Moving on from Jira. Me and one of the remote testers play this great game I like to call "tag team ticketing". It's so much fun. Right heres how to play, you'll need a QA and a PM.
*QA creates a ticket, and puts nothing of any use inside it, and assigns to the PM.
*PM fires it back asking for clarification.
*QA adds in what he feels is clarification (hes wrong) and assigns it back to the PM.
*PM sends detailed instructions, with examples as to what is needed and assigns it back.
*QA adds 1 of the 3 things required and assigns it back.
*PM assigns it back saying the one thing added is from the wrong day, and reminds him about the other 2 items.
*QA adds some random piece of unrelated info to the ticket instead, forgetting about the 3 things and assigns it back.
and you just continue doing this for the whole dev / release cycle hahaha. Oh you guys have no idea how much fun it is, seriously give it a go, you'll thank me later ... or kill yourselves, each to their own.
- Moving back to Jira. I decided to take an action of creating a new project for my team (the mobile team) and set it up the way we want and just ignore everything going on around us. Use proper automation, and a kanban board. Maybe only give product a slack bot interface that won't allow them to create a ticket without what we need etc. Spent 25 minutes looking for the "create new project" button before finding the link which says I need to open a ticket with support and wait ... 5 ... fucking ... long ... painful ... unnecessary ... business days.
... Heres hoping my head continues to not have a bullet hole in it by then.
Id love to talk more, but those filters ain't gonna fix themselves. So we'll have to leave it here for today. Tune in again for another episode soon.
And remember to always practiseSafeHex13 -
Before I continue, I should mention that I have a quality: I observe, find repetitive patterns and find ways to automate them. It just happens naturally, hardly ever intentionally.
I have been in this role for quite a while now. Most of my colleagues are of nationality X (I guess we all know what X is in IT projects). Naturally, there are lots of repetitions all over the place. So I started the automation.
The Frontend of the automation is a slack bot. It's just like another member of our team. And my goal was to make it as human-like as I could.
I launched the bot a few months ago.
Today I start my shift and see other employees of nationality X persistently asking my bot to join the conference call. Apparently, they assumed that the bot is just another X fellow...
Took them a while to give up.
What does that tell us about X.....
P.S. I have coded human-like conversation capability to keep on chatting even when the bot doesn't understand what it's asked to do.24 -
I built our slack bot messages so that they are prefixed in BIG LETTERS with whatever system they originate from, i.e.:
"DEVELOP: You are a useless product manager"
"STAGING: You are a useless product manager"
"PRODUCTION: You are a useless product manager"
One of these is when a payment is made on our platform. Our lovely product manager proceeds to message me, "did you just trigger a payment in the test system?".
YES, OBVIOUSLY I DID SEEING AS THE MESSAGE HAS THE GIANT WORD "STAGING" IN FRONT OF IT!!!
https://lmgtfy.app/?q=how+to+read1 -
Me: API support, please check why I'm getting ECONNTIMEDOUT for 3% of requests
supp: before we look into this, please answer these questions: a), b), c), d), e)
Me and coleague: *spend 20 minutes gathering all the details into a nice answer. Post the answers*
Slack bot: *removes the answer [allegedly for compliance/security]*
api supp: any update?
..... I really want to smash smth. Hulk SMASH!!!3 -
oh, it got better!
One year ago I got fed up with my daily chores at work and decided to build a robot that does them, and does them better and with higher accuracy than I could ever do (or either of my teammates). So I did it. And since it was my personal initiative, I wasn't given any spare time to work on it. So that leaves gaps between my BAU tasks and personal time after working hours.
Regardless, I spent countless hours building the thing. It's not very large, ~50k LoC, but for a single person with very little time, it's quite a project to make.
The result is a pure-Java slack-bot and a REST API that's utilized by the bot. The bot knows how to parse natural language, how to reply responses in human-friendly format and how to shout out errors in human-friendly manner. Also supports conversation contexts (e.g. asks for additional details if needed before starting some task), and some other bells and whistles. It's a pretty cool automaton with a human-friendly human-like UI.
A year goes by. Management decides that another team should take this project over. Well okay, they are the client, the code is technically theirs.
The team asks me to do the knowledge transfer. Sounds reasonable. Okay.. I'll do it. It's my baby, you are taking it over - sure, I'll teach you how to have fun with it.
Then they announce they will want to port this codebase to use an excessive, completely rudimentary framework (in this project) and hog of resources - Spring. I was startled... They have a perfectly running lightweight pure-java solution, suitable for lambdas (starts up in 0.3sec), having complete control over all the parts of the machinery. And they want to turn it into a clunky, slow monster, riddled with Reflection, limited by the framework, allowing (and often encouraging) bad coding practices.
When I asked "what problem does this codebase have that Spring is going to solve" they replied me with "none, it's just that we're more used to maintaining Spring projects"
sure... why not... My baby is too pretty and too powerful for you - make it disgusting first thing in the morning! You own it anyway..
Then I am asked to consult them on how is it best to make the port. How to destroy my perfectly isolated handlers and merge them into monstrous @Controller classes with shared contexts and stuff. So you not only want to kill my baby - you want me to advise you on how to do it best.
sure... why not...
I did what I was asked until they ran into classloader conflicts (Spring context has its own classloaders). A few months later the port is not yet complete - the Spring version does not boot up. And they accidentally mention that a demo is coming. They'll be demoing that degenerate abomination to the VP.
The port was far from ready, so they were going to use my original version. And once again they asked me "what do you think we should show in the demo?"
You took my baby. You want to mutilate it. You want me to advise on how to do that best. And now you want me to advise on "which angle would it be best to look at it".
I wasn't invited to the demo, but my colleagues were. After the demo they told me mgmt asked those devs "why are you porting it to Spring?" and they answered with "because Spring will open us lots of possibilities for maintenance and extension of this project"
That hurts.
I can take a lot. But man, that hurts.
I wonder what else have they planned for me...rant slack idiocy project takeover automation hurts bot frameworks poor decision spring mutilation java11 -
So after the original idea getting scraped during a hackathon this week, we created a slack bot to fetch most relevant answers from StackOverflow using user's input. All the user had to do was input few words and the bot handled all typos, links etc and returned the link as well as the most upvoted or the accepted amswer after scraping it from the website.
The average time to find an answer was around 2 seconds, and we also told that we're planning to use flask to deploy a web application for the same.
After the presentation, one of the judge-guys called me and told me that "It isn't good enough, will not be used widely" and "Its similar to Quora".
Never ever have I wanted to punch a son of a bitch in the balls ever.3 -
I'm so tired yo... I'm on 2 startups, one is mine the other some dude I'm working with. Both sites built in PHP. Another side gig slack bot thing in Node JS. And then 2 day time jobs in which I'm deciding which one to quit out of... 🫠😵💀5
-
We did it guys, devRant bot is now on the Slack marketplace so hopefully we will see some new faces around.
https://slack.com/apps/...3 -
So i have been talking to @dfox about working on some integrations.
One idea was a slack bot, would you use it and what commands would you use?12 -
Can someone explain some of my colleagues that THEY DON'T FUCKING NEED A DIFFERENT SLACK TEAM FOR EVERYTHING!
Want to have some random talk? Let's create a new Slack team
Want to add notifications from Git? Let's create a new Slack team
Want to try some new bot they found? Let's create another fucking Slack team3 -
1. using "if... then... else..." When explaining something tru slack to non tech people
2. buying lamps i can program
3. dreaming abt my code
4. dreaming abt the solution
5. trying to make bot to send happy birthday msg -
The fun with the Slack continues (context: https://devrant.com/rants/5552410/...).
I got in touch with their support (VERY pleasant experience!). Turns out, even though I specify a `filetype` when uploading a file via Slack's API, Slack ignores it and still scans the payload and tries to determine its type itself. They say Slack needs to be absolutely certain that the file will be readable within Slack.
IDK about you, but that raises some flags for me. I again have that itch to password-zip all the files I'm sending over.
I've raised this concern to the support rep. Waiting for his comments.6 -
My Boss Abuses me, should I leave my job?
I overheard this tidbit on a bus recently. Okay I'm lying. But in the great spans of
time I've spent reading "dear annie" type articles, many involving how often my meth head step dads beat me while growing up, or in turn how often *I* beat me (oh yeah)..I've come across this in one form another, this, and other dumbfuck questions from the stuttering meek and halfhearted.
They say there are no dumb questions. Well, like that guy who smoked too much weed and
asked "what is the sound of one hand clapping?" (fap fap fap), there are in fact dumb questions.The world is overflowing with them, like a clogged shitter full of tacobell and glitter covered brown gutter wisdom. And it smells like roses, if roses smelled like shit.
Questions like "How do I make sure my cats don't feel lonely once I have my first child?"
I don't know, they're fucking cats. Did you even google this before asking?
Or
"How to make spaghetti?"
Really, is this question written by a bot?
"What is the best javascript framework in year x?"
All of them and none of them. Welcome to hell.
"Whats your favorite color?"
My answer: I'm not five years old any more. And obviously you are. Why are you on this site instead of eating crayons at daycare?
Yes indeed, this and many more dumbfuck questions await you and can be found on the preeminent quora, amongst other sites.
A place, which censored an eminently reasonable answer of mine (I was totally not being a shithead btw).
I responded in kind by removing a whole mess of long form answers of mine.
What I have learned from the experience is this: Humanity is greatly comprised of many people who, having no brains to speak of, wander aimlessly like beasts of the field, glass eyed and slack jawed, in search of a savior. But their savior came a long time ago, once, and many times before. An engineer, or programmer, or perhaps in another reincarnation a guy parting a sea of koolaid after the local ruler swindled his peeps out of another payment for moving some heavy ass stone blocks, but I digress.
And in response to peoples worries, anxieties, everyday problems and concerns, every one of these would be wiseman, every one of these saviors, leaders, and great men spoke these magic words which resonate now down through the ages like the voice of reason and providence:
"Read the FUCKING manual."
"And don't bother me again asshole." (well this last bit is all me, but I'm sure others said it too.)2 -
well that's curious... Apparently, when uploading a csv file via bot, Slack now appends a .py suffix to it.
I wonder what's the logic behind it. Trick as many users as possible into executing potentially malicious code?21 -
Do you have a listing of the devRant open source projects - devRant slack bot, analyzer...?
Thanks1 -
devRant bot will be going down shortly while it is moved to Beep Boop.
After this transition, you will be required to reauthorize the bot with your Slack team.
You will be able to do this here: https://beepboophq.com/bots/... -
just saw MS' presentation on bing+chatgpt. It could actually lead to something.
If someone could make a kanban-to-slack bot that can answer my Sprint status, it could vastly reduce my time spent answering the same question over and over to different people.
That is yet again AI doing what it was born to do: creative, artistic and engaging personal connections so that humans can focus on tedious calculations and repetitive labour.
If someone could make a bot to answer my emails for me I could spend the whole day without having to interrupt my workflow to interact with a single "professional" human!7 -
Here are some:
1. email filters for crap
2. know wtf is your current task and stay on it with minimal context switch
3. get a bot to automate some of your work (build, deploy, health, run tests) inside slack/rocket.chat/otjer-irc-like-software -
I created a bit that posts Simpsons scenes in slack chats. Mostly because I was bored and wanted to learn
https://github.com/vj--/droidbot -
My favorite slack bot throwing some crap on my face right before my week ends. Then, tries to motivate me at the same time.1
-
I would like to supercharge my workflow this year. I want to setup a slack team for our clients in order to help track task progress better. I would like to integrate slack with Trello in order to use boards. I would also like to integrate an email bot that clients can forward todo emails to and then convert these to Trello Todos. I know how to integrate bots but how can I convert emails from the email bot to Trello todos? Do I need to create a bot of my own for that?1
-
I found this article today ( http://thenextweb.com/apps/2016/... ) and within minutes my team started abusing poor scorebot on slack. Didn't take long until we had to uninstall.
-
That feeling when it takes you three hours to figure out that the reason it seems like your application is running the same logic following a match as it does before a match is made is because it is. Because the post route being used by the Slack bot to notify users of a match is the same post route being used when users message the Slack bot looking for a match.
*face desk*
I feel like an idiot. -
People not using FaaS (like aws lambda or azure functions ) to build chat bots (facebook, slack) but using express based (or any webserver based) application deserves a place in hell.
Can't think why would you use expressJS based app for chat bot. Especially with event emitter shit. At least for Lucifers sake document which event triggers what. Please. -
Most fun I've had coding was writing a Slack bot for the team. All of it utter nonsense, but fun to do2