Задать вопрос
  • Как правильно парсить на Golang?

    @Starship-sn17 Автор вопроса
    У меня получилось, если кому интиресно, вот как я сделал. Всем спасибо за советы и инф.
    package main
    import (
    	"fmt"
    	"github.com/gocolly/colly"
    )
    type Car struct {
    	CarName            string
    	BodyCar            string
    	ReleaseYear        string
    	Color              string
    	DriveUnit          string
    	EngineVolume       string
    	Mileage            string
    	State              string
    	FuelType           string
    	CustomsClearedInRT string
    	Transmission       string
    	Price              string
    	Url                string
    }
    func main() {
    	scrapURL := "https://somon.tj/adv/8960821_tesla-model-y-2022/"
    	c := colly.NewCollector(
    		colly.AllowedDomains("www.somon.tj", "somon.tj"),
    	)
    	var carAttributes []string
    	c.OnHTML(".chars-column li a", func(h *colly.HTMLElement) {
    		carAttributes = append(carAttributes, h.Text)
    	})
    
    	c.Visit(scrapURL)
    
    	car := Car{}
    	car.BodyCar = carAttributes[0]
    	car.ReleaseYear = carAttributes[1]
    	car.Color = carAttributes[2]
    	car.DriveUnit = carAttributes[3]
    	car.EngineVolume = carAttributes[4]
    	car.Mileage = carAttributes[5]
    	car.State = carAttributes[6]
    	car.FuelType = carAttributes[7]
    	car.Transmission = carAttributes[8]
    
    	fmt.Println("Наша тачка -", car)
    }
    Ответ написан
    Комментировать
  • Как сделать, чтобы mPDF не выдавал ошибку 504 при обработке больших файлов?

    Adamos
    @Adamos
    504 выдает не mPDF, а nginx, не дождавшийся конца обработки файла.
    Вам нужно, получив запрос на такую обработку:
    - записывать его в очередь (в БД, например)
    - разбирать ее параллельно (по крону, например)
    - оповещая запросившего о готовности результата (по почте, например).
    Ответ написан
    3 комментария
  • Возможно ли устроиться junior golang без опыта?

    Устроиться без опыта - можно, если твои навыки отвечают требованиям работодателя и ты в итоге попал на этап с техническим собеседованием, чтобы это доказать.
    Ответ написан
    Комментировать
  • Как обновить docker-compose на prod-сервере, ничего не поломав?

    @holyx
    ДевОпс Сисадмин
    "Проблема в том, что на тестовом сервере версия docker-compose выше, чем на проде, и в этой версии есть --env-file флаг для указания файла "

    А зачем вы используете разные по версиям ПО среды для тестирования/разработки и в проде? Такого быть не должно, если вы конечно не планируете апгрейд прода и обкатываете новую среду, но это уже не проблемы джуна.
    Ответ написан
    1 комментарий
  • Как обновить docker-compose на prod-сервере, ничего не поломав?

    @vitaly_il1
    DevOps Consulting
    Ответ простой - обновляют docker-compose.
    Варианта два:
    1) если прод. сервер один, то просят время на downtime, обновляют, проверяют, возвращают в продакшен
    2) если серверов несколько, то исключают один сервер из сервиса, обновляют, проверяют, подключают заново, и т.д. со следующими
    Ответ написан
    Комментировать
  • Где лучше хранить БД? В докере или нет?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Дополню немного ответ Dr. Bacon, поскольку мне кажется он не так понял ваш вопрос, а вы, возможно, не так поняли суть проблемы.
    Под БД, например постгрес, обычно понимают две разные вещи:
    1) сами данные в файловой системе,
    2) сервер базы данных, который реализует сетевой интерфейс для работы с БД и правильным образом кладёт и читает данные в файловой системе.

    Так вот, сервер можно развернуть ка кна хостовой машине (как вы сказали "локально"), так и в докер-контейнере.
    Файлы БД можно разместить как в файловой системе контейнера, так и в локальной файловой системе, примонтированной внутрь контейнера.
    И тут полно нюансов.
    Давайте начнём с того, как правильно.
    Правиьным будет взять стандартный докер-образ сервера БД, сконфигурировать его через компоуз-файл, а размещение файлов БД примонтировать в виде отдельного volume.

    Что имел в виду Dr. Bacon. Он имел в виду, что если не монтировать файлы БД в volume, то они будут лежать внутри контейнера, а значит при его перезапуске все данные будут стерты, поскольку состояние файловой системы контейнера не принято хранить. Это одно из преимузеств докера - сделал образ унаследовав его от других образов, а потом при запуске контейнера он какждый раз как новенький.
    Ответ написан
    Комментировать
  • Как использовать форк пакета в Го?

    uvelichitel
    @uvelichitel Куратор тега Go
    habrahabr.ru/users/uvelichitel
    Всего две команды:
    подмена
    go mod edit -replace github.com/orig/pkg v1.0.0=github.com/my/fork/pkg v1.0.0

    или на локальный репо
    go mod edit -replace github.com/orig/pkg v1.0.0=/local/path/onyourmachine

    вернуть обратно когда ваш PR закоммитят
    go mod edit -dropreplace  github.com/orig/pkg v1.0.0

    А можно подправить go.mod вручную. В нём должно появиться
    replace github.com/orig/pkg v1.0.0  => github.com/my/fork/pkg v1.0.0

    В исходниках при этом менять импорты не нужно.
    Ответ написан
    1 комментарий
  • На какой связке лучше всего создавать Websocket?

    @Vitsliputsli
    Подскажите на каком языке лучше всего Websocket? чтобы он был менее затратны в производительности и более всего понятен для изучения? :)

    Go.

    прочитал, что могут быть разные утечки памяти, если на php делать

    Не будет, если сами их не создадите.
    Ответ написан
    Комментировать
  • Какой самый правильный, на ваш взгляд, способ хранить динамические настройки?

    Ну тут либо json (было бы хорошо, если СУБД поддерживает их нативно и можно построить индекс по содержимому json)

    Либо паттерн Entity-Attribute-Value (загугли)
    Ответ написан
    Комментировать
  • Что значит запрет на оказание IT-услуг?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Вводят какие-то санкции, где России перестанут оказывать IT услуги, что это значит? Я не смогу зайти на иностранные сайты, например YouTube, не смогу купить Windows, не смогу скачивать иностранное ПО?


    Какие-то это вполне явные.
    Могут отказывать в регистрации разработчикам из РФ, прекратить выплачивать на счета РФ - это касается тех, кто публикуется в маркетах (apple market, google market, Steam и др)
    MS прекратила работу с РФ, это значит что не будет новых ноутбуков которые официально идут в РФ с предустановленной Windows
    Нельзя будет официально обновить/купить винду и другие продукты, вплоть до закрытия аккаунтов в office365

    Насколько сильно будут закручивать гайки - неизвестно, ситуация меняется.
    Насколько долго - знает только один неадекватный человек.
    Ответ написан
    Комментировать
  • Почему apt-get не находит пакет polipo?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Polipo ceased to be maintained on 6 November 2016 due to the increasingly widespread use of encryption (i.e. HTTPS) making caching proxies obsolete.

    Так что только самостоятельно собирать из исходников и самостоятельно бороться со всеми проблемами при такой сборке.
    Ответ написан
    Комментировать
  • Почему apt-get не находит пакет polipo?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Почему бы не загуглить, в каких версиях Убунты есть интересующий вас пакет?

    https://packages.ubuntu.com/search?keywords=polipo
    Ответ написан
    4 комментария
  • В каких случаях логичней чтобы получить половину умножать на 1/2, а в каких делить на 2?

    @res2001
    Developer, ex-admin
    Есть такие микроконтроллеры, где нет аппаратного деления. Оно там реализовывается программно и работает оооочень долго. Вот прям заметно дольше. И если деление на константу идет в цикле, то в таком случае выгоднее один раз перед циклом вычислить 1/2, а затем умножать на результат деления. 1/2 тут для примера, конечно.
    С подобными процами лично сталкивался и был неприятно удивлен фактом такой просадки производительности на делении.
    В общем случае, даже на современных настольных процах от интел или амд операция деления выполняется дольше умножения. Счет идет на несколько процессорных тактов. Иногда это может играть роль.

    Если же речь о целочисленном делении на 2, то тут эта операция заменяется сдвигом вправо на 1 бит, что работает быстрее и умножения и деления. Впрочем подобные вещи компилятор сам в состоянии сделать при включенной оптимизации.
    Ответ написан
    Комментировать
  • Тип с точностью до 4 знаков C++?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Есть. Называется int. Вам надо хранить количество десятитысячных в числе. Иными словами, вы вместо x храните в int x*10000. При выводе делите на 10000 (и установите выводить 4 знака).

    Такие числа можно просто складывать и вычитать. При умножении надо будет результат поделить нацело на 10000 (или округлить к ближайшему, делящемуся на 10000 и потом отбросить 4 нуля). При делении - наоборот. Надо сначала домножить числитель на 10000, а потом поделить нацело на знаменатель (возможно стоит подумать об округлении к ближайшему целому).

    Upd: И вообще, раз уж разговор о C++, то можно реализовать свой класс. Там можно даже отдельно хранить целую часть и 4 знака после запятой. Если вам встроенной точности int/int64_t не хватает. Все математические операции можно переопределить и работать, как со встроенным типом. Вообще, по-умному, это называется fixed point numbers.
    Ответ написан
    Комментировать
  • Где разместить домен для переадресации на основной сайт?

    не нужно его нигде размещять. размести его там же где и твой сатйт aliase (псевдоним,зеркало) и все
    так в коде
    ServerName test1.loc
      ServerAlias test2.loc www.test2.loc www.test1.loc

    или в веб панели есть место где можно его добавить
    isp8.png
    на скриен видешь где домены, просто проииши на этом же днс сервере новый домен
    А но отдельный сайт не создавай.
    в результате у сайта появится зеркало
    ну и в .htaccess просто поставь редирект.
    Ответ написан
    2 комментария
  • Перенаправление 80 http на 444 https?

    @dronmaxman
    VoIP Administrator
    > 80 порт по протоколу http перенаправить на нестандартный порт https?
    Почему бы не переложить эту роль на плечи прокси (nginx). Ставим на входе nginx, он может делать редирект с 80 на 443 и разделить трафик на одном порту на основании домена.
    webmail.domain.ru - все на почтовик
    cms.domain.ru - на сms

    Так же можно прописать дефолтный домен, все что без указания домена - сыпать сюда.

    Проблема 444 в том, что все браузеры будут ругать на недоверие к сертификату.
    Ответ написан
    8 комментариев
  • Как убрать кавычки из ответа sql запроса с json?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT DISTINCT value::jsonb->>'name_level_1'
    ...
    Ответ написан
    Комментировать
  • Сколько ядер процессора хватит для программирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Имеет смысл взять слабую конфигурацию. На ней автор быстро почувствует узкие места кода и займется
    оптимизацией. И потом в продуктиве этот код станет быстро работать.

    Хороший мотиватор.
    Ответ написан
    5 комментариев
  • Сколько ядер процессора хватит для программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    software engineer
    Языки C# и Питон придумали тогда, когда процессор еще был одноядерным.
    Вопрос плохой, неправильный. Никто не знает что вы хотите делать и насколько для вас критично подождать компиляции секунду или 5 секунд.
    Берите удобный для работы. С приятным экраном, с приятной для ВАС клавиатурой.

    А дорогой и мощный ноут можно брать тогда, когда на него заработаешь работой на позиции разработчика, и уже будешь понимать что именно тебе нужно от ноута на этой работе.
    Ответ написан
    Комментировать