• В каких случаях использовать импортируемые поля в структуре go?

    @calculator212
    Я слышал, что желательно делать поля неимпортируемыми и использовать геттеры и сеттеры
    А где слышали?Вообще это не всегда верно, например даже стандартная библиотека для работы с csv там можно настраивать поля напрямую. В целом если у вас поля с простыми типами данных то в целом это не имеет особого смысла. Это имеет смысл если нужно работать с интерфейса или спрятать за ними часть сложной логики. Насколько я знаю эти идеи тащат люди из других языков, но паттерны которые распространены в Java или C# не всегда подходят для го поэтому не стоит все буквально воспринимать.
    На редите есть обсуждение этого вопроса тут.
    Ответ написан
    2 комментария
  • Какие есть сервисы для автоматического создания субтитров по api?

    @calculator212
    Whisper
    В нём же вроде есть тайминги тут
    Ответ написан
    Комментировать
  • Как использовать рекомендуемый нейминг интерфейсов?

    @calculator212
    В целом там написано для большинства случаев, если нет возможности добавить -er то не нужно натягивать сову на глобус, ниже пример из исходников самого языка
    642f2c660601c893729082.png
    Ответ написан
    Комментировать
  • Как перейти с Python Django на Go?

    @calculator212
    Из похожего - это beego, но стоит прочесть https://habr.com/ru/post/444022/. Многие используют gin или что-то в этом духе(всё это обертки над стандартной net/htpp) или используют обертки над fasthttp.
    Подскажите как это сделать
    Если опыт в вебе есть, то просто пройти го тур, загуглить go roadmap и гуглить/читать книги/маны по нужному направлению.
    Ответ написан
    Комментировать
  • Как правильно организовать поиск по большому кол-во бд?

    @calculator212
    Есть несколько больших postgresql таблиц(по ≈ 1млн строк в каждой).
    1млн не так много данных, но если не хватает скорости то можете попробовать создать индексы. Со стороны клиента можно создать пул соединений.
    Ответ написан
  • Можно ли программно отправлять сообщения от лица человеческих аккаунтов Telegram?

    @calculator212
    Хочу написать несколько ботов, которые будут от имени телеграм-аккаунтов, не помеченных как боты
    tdlib, это оф. апи, чтобы работать от пользовательского аккаунта, от него можно нормально писать. Иногда нужно скачать tdlib(с гитхаба) снизить версию до версии поддерживаемой в либе и потом использовать.
    Ответ написан
    Комментировать
  • Перспективно ли изучения GO для начинающих?

    @calculator212
    JS, CSS, HTML и конечно Python
    с этим стеком проще найти работу.
    Но правильно ли я понимаю что backend и GO в частности, если говорить о чем-то более менее коммерчески значимом, то это ТОЛЬКО более менее крупная компания и коллектив?
    Go есть и в небольших конторах, но обычно джуны на го никому не нужны.
    А если рассчитывать на фриланс - то это "ни о чем", несерьезно и нет перспектив, ну разве что боты в телеграм писать.
    Специалист с опытом может учавтсвовать в среднесрочных проектов. Писать ботов можно на го, но он не особо популярен для этого.
    Ответ написан
    5 комментариев
  • Как правильно выводить длину видео?

    @calculator212
    Просто делать проверку на то, что длительность меньше одного часа. Если использовать ваш код, то можно сделать так
    arr.map((item) => {
      let media = new Audio(item);
      media.onloadedmetadata = function () {
        
        let ac = new Date(media.duration * 1000);
        const hours = ac.getUTCHours();
        
        if (hours == 0){
          console.log(ac.toISOString().slice(14, 19))
        } else {
          console.log(ac.toISOString().slice(11, 19))
        }  
        
      };
    });
    Ответ написан
    Комментировать
  • Как прочитать конкретную строку в файле по её номеру(golang)?

    @calculator212
    тут можно посмотреть
    Ответ написан
    Комментировать
  • Как описать функцию в интерфейсе?

    @calculator212
    как мне правильно описать эту функцию в интерфейсе?
    Если вы имеете ввиду, как скомпилировать код во втром случае, то вам нужно сделать так, чтобы структура удовлетворяла бы вашему интерефейсу, т.е. нужно возвращаемое значение SetNum поменять на IGroup.
    type IGroup interface {
    	SetNum(num int) IGroup
    }
    
    type Group struct {
    	num int
    }
    
    
    func (r Group) SetNum(num int) IGroup {
    	r.num = num
    	return r
    }
    
    func NewGroup(num int) Group {
    	return Group{
    		num: num,
    	}
    }
    И всё скомпилируется
    Ответ написан
  • На сколько глубоко могут уходить подколлекции в нэйминге URI в REST?

    @calculator212
    На сколько глубоко могут уходить подколлекции в нэйминге URI в REST?
    До 2к символов, в целом написание таких длинных запросов не противоречит идеологии rest, т.к. rest это не про то какой длины должен быть url, а про стиль взаимодействия.
    :id/profiles/:id/tags/:id/color/:id/more-fields/:id/more-fields/:id/more-fields/:id
    Конкретно в этом случае используется странное решение(на мой взгляд), и не совсем понятно зачем так делать, т.к. задавать это все через параметры проще. Но т.к. rest это просто стиль архитектуры, то вам никто не запретит так делать, но если кому-то достанется такой код, то он будет не в восторге.
    И теперь я хочу сделать апишку для получения информации о каждом тэге. Или хочу его изменить. С одной стороны мы можем использовать
    GET /accounts/:id/profiles/:id/tags/:id
    в данном случае возможно имеет еще смысл таких url до 2-го id на id тегов уже явно бесполезно и его проще задать параметром, хотя можно сделать, чтобы только id аккаунта был в url, всё остальное можно засунуть в параметры, но тут я не знаю архитектуры приложения, возможно вам так удобнее или проще.
    Ответ написан
    2 комментария
  • Как менять подключения к базе данных во время работы веб-сервера?

    @calculator212
    Когда я запускаю сервер, я подключаюсь к бд как админ
    Может я чего-то не понял, но где связь между запуском бд и подключением к ней, postgres же примерно так запускается sudo service postgresql start, а подключение уже идёт отдельно.
    Как это сделать(сменить подключение)?
    Закрыть текущее и открыть новое, например считать данные из конфига и по ним сделать новое подключение, конкретнее сказать сложно, т.к. не знаю структуру вашего проекта.
    подключаться под нужной ролью?
    В целом можно сделать соединения(пулы) с разными ролями в зависимости от прав пользователя.

    (сменить подключение)?
    Так конечно можно делать, но база может быстро упасть под нагрузкой, т.к. открытие/закрытие соединения довольно тяжелый процесс.
    Ответ написан
  • Достаточно ли будет чтения cppreference для освоения STL?

    @calculator212
    Как по мне ваш вопрос не совсем корректен, т.к. непонятно что именно вы хотите.
    По идее я всегда вместо книг по стд либам читаю документацию

    Если вам достаточно документации то да. В книгах обычно представлена более структурированная информация. Проблема может возникнуть с тем, что стандартная бибилиотека большая и по документации её довольно тяжело изучать, но если вы знаете нужные вам темы/разделы, то наверное не сильно вам нужны книги, возможно хватит бегло просмотреть оглавление. Обзор стандартов можете глянуть тут(узнаете какой стандарт что добавлял, и как всё примерно внутри работает).
    Ответ написан
    Комментировать
  • Как посоветуете хранить словарь python в бд?

    @calculator212
    Есть словарь, достаточно большой(id: name).
    если тут только словарь то можно просто в редис засунуть, думаю вам хватит производительности
    Ответ написан
    Комментировать
  • Чем можно заменить связку MS Excel + VBA в Linux?

    @calculator212
    3. LO и OO открытое ПО, но не входят в реестр российского ПО, однако многие российские дистрибутивы Linux поставляются именно с LO.
    Честно говоря не совсем понятен этот пункт, вы можете использовать LO ,т.к.законопроект запрещает закупать иностранное ПО, про open source ничего не говорится. Во-вторых запрет идёт не для всех подряд сфер, а для ограниченной области. На хабре вам в комментах писали, что можно увелечить производительность LO при необходимости. В целом конечно лучший вариант написать свое ПО для работы, но как я понял этот вариант не подходит.
    Вы конечно можете предположить, что LO тоже могут запретить, но это маловерятно, т.к. этот пакет уже используется в astra linux, который используется для работы с критической информацией немного инфы. Поэтому если нет желания писать свой софт стоит выбрать LO.
    Ответ написан
  • Как надежно хранить фото и видео?

    @calculator212
    - Ставить ли отдельный ПК с несколькими дисками под нужды домашнего файл-сервера? Или хватит своего ПК.
    Если хотите надежно хранить то вам нужен RAID, какой именно решайте сами.

    Сколько лет живут диски, если просто "лежат"?
    Тут не угадаете, может попасться диск, который проработает 10 лет(не редкость для домашних пк), а может диск сломаться через год если не повезет.

    - Достаточно ли будет например Acronis'а, чтобы делать резервное копирование на 2 разных диска?
    В целом особой разницы нет через что бэкап делать.
    Ответ написан
    6 комментариев
  • Как построить систему рассылки?

    @calculator212
    Я написал такую систему, но после того как код был написан, я задал себе вопрос, всё ли я сделал правильно или как вообще правильно ?
    Стоит поподробнее описать как вы сделали, из описания не очень понятно, как вы реализовали это функцию, также непонятно что рассылает система и какой язык вам нужен для кода.

    Если это система рассылки писем на электронную почту и вам не нужно спамить на миллионы адресов, то можно оформить в небольшой модуль, в котором есть класс или функция для создания ящика отправителя с именем паролем, функция для отправки по определенному адресу.


    Я так понимаю нужно использовать базу данных, в которой нужно хранить состояние рассылки для конкретного пользователя по полю(телефон/почта) и из этой базы можно было бы брать данные и отменять запланированные задачи по рассылке для пользователя.
    В целом да, лучше создать нужные таблицы в БД и брать данные для отправки оттуда. Планировщик лучше сделать внутри приложения, который при наступлении определенного времени будет делать запрос в БД, получать список людей, которым нужно отправить письмо и затем отправлять.
    Ответ написан
    Комментировать
  • Как написать расширение для браузера в виде dll?

    @calculator212
    Если в целом, то вопрос слишком большой. Но у вас явно прослеживаются проблемы с пониманием работы веба.
    как сертификаты проверяются, при необходимости говорить, что сертификат на сервере дохлый, или что, наоборот, сертификат плохой, но жить можно, как бы на http без ssl.
    Браузер сам говорит об этом и куче подозрительных вещей, непонятно зачем для этого писать отдельный софт.

    Слышала, что расширения для браузеров пишут на java script - но мне это видится извращением каким-то.
    Честно говоря наобот, js создавался для браузера.

    У меня вопрос: я хочу написать расширение для браузера, изменяющее содержимое веб-страниц. Всех. Абсолютно всех. Без исключения.
    Что именно должно делать расширение?

    И чтобы со стороны сайтов это расширение невозможно было детектировать.
    Можете сказать зачем - это нужно? И в целом содержимое страниц постоянно меняется из-за динамических запросов.

    ...как распарсить html
    парсинг в целом это не проблема, большая проблема получить html, который получит конечный пользователь, для примера попробуйте получить html-код для конечного пользователя с переводом текста из google translate без selenium.

    Возможно, работать со внутренними структурами данных браузера.
    Что это значит, слишком расплывчато сформулировано?

    не загружать скрипты совсем.
    Любой браузер это умеет

    В общем всё что вы описали решается с помощью js в разы проще(на счет сокетов только уверен), то что вы хотите сделать выглядит очень специфично, возможно вам смогут помочь на тематических формах конкретного браузера.
    Из всего вопроса я понял, что вам расширение для блокировки скриптов, в целом можно сказать, что блокировщики рекламы не всегда с этим справляются, т.к. нет универсальных правил блокировки.

    P.S. а зачем писать расширение на C? Так же не делают как раз из-за вопросов безопасности.
    Ответ написан
    Комментировать
  • Назовите примеры средств автоматического и автоматизированного программирования?

    @calculator212
    Вообще в таком определении понятие сильно размыто, но на мой взгляд примером может служить, Qt Designer, c++ builder, в данных программах вы можете создавать интерфейсы для desktop приложений в специальном редакторе в целом без знаний о программировании просто тыкая кнопки. Есть еще кодогенерация, суть в том, что вы можете написать несколько функций/прототипов которые будут отражать логику программы, а генератор уже сгенерит большую часть кода. Но в целом как я и говорил понятие слишком размытое, поэтому стоит уточнить вопрос и написать что конкретно вы хотели узнать.
    Ответ написан
    Комментировать
  • Golang как отправить GET запрос?

    @calculator212
    400 Bad Request
    cloudflare

    Да интересно, что же не так с эти запросом
    Ответ написан
    Комментировать