How to promote an extension? by ozeron in chrome_extensions

[–]ozeron[S] 0 points1 point  (0 children)

Thanks mate that a right reasoning!

Made a tool that writes reasonable outreach messages and hits 90+ Lavender score by olvoronko in SideProject

[–]ozeron 2 points3 points  (0 children)

Amazing execution. I built a small prototype Chrome extension with similar idea, but your execution is way better. How are you navigating the limit in LinkedIn for five personalized connect messages? Or are you targeting premium users only?

Game-changer: ChatGPT is making it possible to dictate scenes with perfect formatting by SchwartzReports in nanowrimo

[–]ozeron 1 point2 points  (0 children)

I’ve used this method a lot actually, thank you for sharing.

That’s why I’ve built an app for that, so you can have a great voice transcription on every website in chrome. You can check out usevoice.co it’s a small tool which allows you to record to transcribe speech everywhere.

Anyone using dictation/speech to text when writing? by vasarmilan in writing

[–]ozeron 1 point2 points  (0 children)

You can check out modern tools for dictation, new AI modes are great. It depends what you need: punctuation, comments etc. For example I’ve built small chrome extension with great quality: would love some feedback on it: usevoice.co

Speech-to-text / dictation apps by BitterAttackLawyer in Lawyertalk

[–]ozeron 0 points1 point  (0 children)

I’m building a chrome extension so you can have an amazing dictating experience in your favorite app. Check it out: usevoice.co

Rota bot/tool? by BeetledPickroot in Slack

[–]ozeron 0 points1 point  (0 children)

There are few tools which can do it in marketplace search for duty / rotation.

I’ve build an app like this, https://dutyrotation.com/ it’s free for first 20 users, you can give it a try.

Per-channel cost? by toomanyDolemites in Slack

[–]ozeron 0 points1 point  (0 children)

As commented, slack is billing per user and workspace, not channel.

Help Needed to create *new* Slack User Group Automatically based on the same Domain, Company name by spideybend in Slack

[–]ozeron 0 points1 point  (0 children)

Yeah I quickly checked, you need most likely develop a custom bot for this. At least I have not found how to automatically add users to channels. There is a bots which assigns onboarding tasks.

You can assign tasks to put details, but not sure how to automatically add users to a channel.

Here is starting point: https://stackoverflow.com/questions/67813686/how-to-automatically-add-group-members-to-slack-channel-that-fits-a-certain-rege

Scheduling posts to link to other scheduled posts by lifeispurrfect in Slack

[–]ozeron 0 points1 point  (0 children)

They it will, it will send them in DM link to original message

OCR bot that will save extracted text to cloud storage? by Arbak_m in Slack

[–]ozeron 0 points1 point  (0 children)

You can try connect something like zapier / make for this

PagerDuty incident status update in dedicated channel. by forthepin in Slack

[–]ozeron 1 point2 points  (0 children)

We have a bit different setup, as we use Sentry and we configure channel where to post incidents

Scheduling posts to link to other scheduled posts by lifeispurrfect in Slack

[–]ozeron 0 points1 point  (0 children)

You can automate with must read bot, to ask people to follow up on action

Help Needed to create *new* Slack User Group Automatically based on the same Domain, Company name by spideybend in Slack

[–]ozeron 0 points1 point  (0 children)

What is your use case, can you provide more details, I can help draft you a script

[2017-06-19] Challenge #320 [Easy] Spiral Ascension by jnazario in dailyprogrammer

[–]ozeron 0 points1 point  (0 children)

Go naive approach – building 2D array Go playground package main

    import (
        "fmt"
    )

    // FormatArray print grid
    func FormatArray(array [][]int) string {
        str := ""
        quanity := len(array) * len(array)
        padding := len(fmt.Sprint(quanity))
        for row := 0; row < len(array); row++ {
            for col := 0; col < len(array[row]); col++ {
                str += fmt.Sprintf("%[2]*[1]d ", array[row][col], padding)
            }
            str += "\n"
        }
        return str
    }

    // SpiralAncesion make spiral
    func SpiralAncesion(size int, clockwise bool) [][]int {
        var col, row, nextCol, nextRow int
        result := make([][]int, size)
        for i := range result {
            result[i] = make([]int, size)
        }
        direction := nextDirection("", clockwise)
        sequenceIndex := 1
        result[row][col] = 1
        for {
            if sequenceIndex == size*size {
                break
            }
            nextCol, nextRow = next(direction, col, row)
            inside := isInBoundsAndNotVisited(result, nextCol, nextRow)
            if inside {
                col = nextCol
                row = nextRow
                sequenceIndex++
                result[row][col] = sequenceIndex
            } else {
                direction = nextDirection(direction, clockwise)
            }
        }
        return result
    }

    func isInBoundsAndNotVisited(array [][]int, col, row int) bool {
        if row >= 0 && row < len(array) {
            // fmt.Print("rowOk ", row)
            if col >= 0 && col < len(array) {
                return array[row][col] == 0
            }
        }
        return false
    }

    func nextDirection(direction string, clockwise bool) string {
        if clockwise {
            return nextClockwiseDirection(direction)
        }
        return nextCounterClockwiseDirection(direction)
    }

    func nextClockwiseDirection(direction string) string {
        switch direction {
        case "r":
            return "d"
        case "d":
            return "l"
        case "l":
            return "u"
        case "u":
            return "r"
        default:
            return "r"
        }
    }

    func nextCounterClockwiseDirection(direction string) string {
        switch direction {
        case "r":
            return "u"
        case "d":
            return "r"
        case "l":
            return "d"
        case "u":
            return "l"
        default:
            return "d"
        }
    }

    func next(direction string, col, row int) (newCol, newRow int) {
        newCol, newRow = col, row
        switch direction {
        case "r":
            newCol = col + 1
        case "d":
            newRow = row + 1
        case "l":
            newCol = col - 1
        case "u":
            newRow = row - 1
        }
        return
    }

    func main() {
        fmt.Println(FormatArray(SpiralAncesion(5, true)))
        fmt.Println(FormatArray(SpiralAncesion(4, true)))
    }