• Как вы работаете с пулом соединений postgresql в GO?

    uvelichitel
    @uvelichitel Куратор тега Go
    habrahabr.ru/users/uvelichitel
    database.sql.DB из stdlib непрозрачно поддерживает пул соединений под капотом. Для управления пулом предлагаются методы
    • DB.SetMaxOpenConns
    • DB.SetMaxIdleConns
    • DB.SetConnMaxLifetime

    Манипулирование этими квотами не имеет четких рецептов, нужно пробовать по месту в зависимости от характера нагрузки.
    Когда вы формируете транзакцию db.BeginTxдля нее выбирается свободное соединение из пула.
    Если вам нужно получить в управление постоянное соединение из пула вы делаете
    conn, err := Db.Conn(context)
    и формируете транзакцию conn.BeginTx на этом соединении.
    sqlx и pgx не привносят ничего нового в управление пулом соединений.
    Ответ написан
    Комментировать
  • Bootstrap-Vue - В чём фишка данного симбиоза?

    copist
    @copist
    Empower people to give
    Расскажите плиз о технологии, и чем развёрнутей, тем лучше.

    Вот захотел ты сделать сайт SPA или PWA с любимой тебе вёрсткой на базе Twitter Bootstrap и любимой библиотеки Vue. Сверстал. Поповеры не появляются, дропдауны не выпадают, модалки не открыватся, формы не валидируются, клики не работают.

    Оригинальный Twitter Bootstrap имеет поддержку интерактивных элементов на Javascript. Реализовано это на библиотеке jQuery. Если делаешь на Vue, придётся подключать ещё и jQuery, что лишняя библиотека на 100+ килобайт, что, конечно, не катастрофа (пока ты не на мобилке).

    Vue работает с состояниями привязывает данные к отображению, а jQuery работает с DOM и событиями. Это вопрос производительности. Работа JQuery начитается когда загружен и распарсен JS и HTML. Работа Vue начинается в тот момент, когда загружен и распарсен JS, то есть чуть раньше. jQuery модифицирует DOM на лету, перестраивая текущий документ. Vue работает с shadow DOM, а затем подсовывает уже готовую интерактивную страницу в пустой документ, что быстрее (разница в секунды на десктопе, десятки секунд на м...).

    Vue реализует компонентную парадигму. Куски страницы являются изолированными кусочками кода (HTML CSS JS), которые цепляются между собой динамически, а обмениваются данными через аттрибуты и события. Предположим, что вы решили следовать компонентной парадигме, тогда согласно вот такому примеру нужно будет увязать самостоятельно все интерактивные компоненты. Компонента-кнопка. Компонента-поле ввода. Компонента-форма. Компонента-контейнер. Получается около 50 компонент. Для некоторых надо будет написать логику на jQuery. Если посмотреть на код jQuery этих микрокомпонент, то он окажется несложный, его вполне можно переписать на Vue. Ну там класс заменить или клик отработать. Когда от кода jQuery не останется следа, его можно будет из проекта удалить.

    И вот получается Bootstrap-Vue

    На компоненты побили. От Jquery избавились. Написано в единой парадигме. Работает быстрее.

    Добавляем тот факт, что в Vue можно не импортировать компоненты, которые не нужны (например, я не работаю с дропдаунами и модальным окнами) и код становится меньше, грузится быстрее, работает быстрее.

    Так же будет Не лишним оценить технологию: плюсы, минусы, стоит ли вообще с этим работать ...

    Это сам изучай и сравнивай. Навыки и опыт воздушно-капельным и через Internet не передаётся
    Ответ написан
    4 комментария
  • Какие навыки нужны для DevOps-инженера?

    @Macbet
    Linux программист
    Для работы девопсом надо отличные знания linux ( ну или windows смотря какой у тебя стек) и это не просто команды в баше, это как устроено ядро, как ОС с памятью работает, сети нужны 100% притом в очень хорошем понимании, + 1/2 скриптовых языка, у нас в компании это Ruby + я на golang тулзы пописываю а тот Roadmap что товарищ выше указывал, он не особо правильный, ты никогда не сможешь хорошо работать с тем же k8s без знания сетей, базы тоже нужны, помимо баз надо разбираться в веб-серверах, различных системах виртуализации kvm/xen/openvz(на выбор), системы мониторинга + надо понимать что ты придешь в компанию и там очень редко кто использует "современный" стек технологий все эти consul'ы и nomand'ы это очень здорово, но придется зачастую много легаси править :)
    Ответ написан
    3 комментария
  • Какой максимально эффективный способ защиты от скачивания изображений с сайта вы знаете?

    Symphony
    @Symphony Куратор тега JavaScript
    Самый эффективный способ – это не выкладывать изображение на сайт.
    Извиняйте за такой ответ, но лишь он реально может защитить от скачивания, а все остальные может преодолеть специалист с уровнем знаний чуть выше джуна.
    Ответ написан
    Комментировать
  • Какой максимально эффективный способ защиты от скачивания изображений с сайта вы знаете?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    Нет способа, только ватермарка.

    Потому что любая защита обходится при помощи selenium - просто сделал скриншот нужного изображения и сохранил его.
    Ответ написан
    1 комментарий
  • Какие ресурсы есть для прокачки навыка написания SQL выражений?

    MaxDukov
    @MaxDukov
    впишусь в проект как SRE/DevOps.
    Ответ написан
    Комментировать
  • Удаленный работадатель требует сделать ИП, зачем это нужно?

    Prognosticator
    @Prognosticator
    TODO: Здесь будут ворованные умные мысли, типа мои
    • Если лично вам ИП не нужно, шлите в ..... заказчика (завуалированно и иносказательно, особенно если это порядочные люди).
    • Любая компания может найти способ платить физику, белая, серая, цвета детской неожиданности. Из копилки, из личных средств, как списание на средства для мытья окон. Вопрос захотят-ли.
    • Если без этого заказчика вам нечего будет кушать, откройте ИП.
    • ИП абсолютно никак не делает вас привлекательнее для заказчиков, привлекательным вас делают качественная работа, опыт и рекомендации людей. ИП несет потери времени и денег на бумажную возню и отчисления. Вычтите это время из вашего рабочего времени, получатся еще некоторые потери. Также есть категория заказчиков, которые предпочитают работать официально. Но тем не менее воруют другими способами.
    • ИП лично вам, может быть нужно в случае получения ипотеки или крупного кредита, для подтверждения доходов за последние полгода. Но при высоких доходах и разумных тратах с накоплениями и кредиты не нужны.
    • 99% удаленной работы оплачивается в серую. Никто не спрашивает. Всем срать на ваши 500-2000$, полученные из-за бугра или соседней страны, через 10 платежных систем или с карты на карту.
    • Пообщайтесь с такими же удаленщиками из этой фирмы, если это возможно, соберите данные на доброго дядю.
    • Спросите дядю напрямую, с кем можно поговорить о его репутации.
    • Спросите дядю напрямую, зачем ему ваше ИП.
    • Приостановить/закрыть ИП можно в любой момент.
    • Вдумчиво читайте договор, между вами и дядей, с усердием переписывайте мутные моменты и формулировки.
    • Заключая договор вы не продаете душу и тело в рабство. Вы не обязаны умирать на проекте и овертаймить. Вы можете договор расторгнуть. Особенно по случаю "вновь открывшихся обстоятельств". Мы можете и заболеть и форсмажорить другими путями, возвращаемся к пункту с договором.
    • Чтобы получить опыт в сфере предпринимательства, начните его получать.
    • Глубоко осознайте тот факт, что вы мужчина и вам многое по плечу.
    • Мир разработки в целом и удаленной в частности - это поле боя, учитесь конкурировать, драться и побеждать.
    DETAIL_PICTURE_676265_71935315.jpg

    PS
    Был на обеих сторонах баррикад. Если быть правдивым до конца - исполнители косячат на порядок больше.
    99% кода идет под нож или хранится будучи никогда не использованным. Написанного и запущенного, написанного и не дошедшего в продакшен. По разным причинам - раздолбайство, распил, экспериментальный юмор, невостребованность стартапов для лайканья котиков, моральное устаревание и банкротство. Просираются бюджеты сопоставимые с отправкой человека на марс. Такова эта отрасль.
    Успевайте во всем этом хаосе жить полной жизнью, получать опыт, творить ценное для людей.
    Ответ написан
    1 комментарий
  • Почему интерпретатор Python не видит модуль?

    suguby
    @suguby
    программист, python, django, mysql, git, hg, linux
    надо запускать в виде python -m script1 тогда срабатывает система поиска модулей пайтона по путям из sys.path

    C:\Users\username>C:\Python34\python.exe -h
    usage: C:\Python34\python.exe [option] ... [-c cmd | -m mod | file | -] [arg] ..

    если запускать как python script1.py то поиск будет осуществлятся через операционную систему, то есть в текущей директории.
    Переменная окружения Path используется для поиска _выполняемых_ файлов, python.exe в твоем случае.

    еще пожелание: для названий модулей и их расширения используйте только нижний регистр.
    Ответ написан
    1 комментарий
  • Зачем в python range() если есть xrange()?

    bobrovskyserg
    @bobrovskyserg
    range в Python3 == xrange в Python2 ( а от объекта с именем xrange вовсе отказались). Делаем выводы.
    Единственное преимущество range (в Python2) - в следующем примере:

    # хочу получить лист [0, 1, 2, 3, 4]
    l = range(5)  # в Python3 так нельзя
    # то же самое
    l = list(xrange(5))   # в Python3  l = list(range(5))
    Ответ написан
    2 комментария
  • Хороший IDE для Python на Mac OS X?

    bobrovskyserg
    @bobrovskyserg
    Капельку терпения - PyCharm самое то.
    Ответ написан
    Комментировать
  • Какой python библиотекой парсить Html?

    @FireGM
    Для третьего питона Grub. Я работаю с ней, ну и внутри использую sqlalchemy. Просто шикарно выходит.
    Ответ написан
    Комментировать
  • Как правильно составить sql-запрос с параметрами?

    @pcdesign
    Я попробовал у себя
    date = '31/01/2015'
    date_format = '%d/%m/%Y'
    g.cur.execute("""SELECT * FROM `per` WHERE DATE_FORMAT(`date_sf`, %s) = %s""",
                        (date_format, date))
    rows = g.cur.fetchall()
    print(rows)

    Так работает.
    Ну и еще применительно к алхимии.
    Вот так работает:
    date = '01/01/2015'                                                           
    date_format = '%d/%m/%Y'                                                      
    sql = """SELECT * FROM `users` WHERE DATE_FORMAT(`date`, '%s') = '%s' """ % (date_format, date)                                                       
    rows = db.session.execute(sql)


    И есть вот такой еще путь.
    Имхо, самый правильный:
    from sqlalchemy import text
    rows = db.session.execute(text("SELECT * FROM `users` WHERE  DATE_FORMAT(`date`, :df) = :date "), 
    {"df": '%d/%m/%Y', "date": '01/01/2015'})
    Ответ написан
    2 комментария
  • Книга "Python for Kids" переведена ли на русский?

    ALexxxD
    @ALexxxD
    И как, можно в итоге посмотреть перевод где-нибудь?
    Ответ написан
    Комментировать
  • Можно ли раздать интернет на 2 ПК если у провайдера привязка к MAC-адресу?

    edinorog
    @edinorog
    Троллей не кормить!
    эмм. сейчас любой роутер может менять мак в настройках 0_о
    Ответ написан
    Комментировать
  • Как перенаправлять все запросы на index.php (.htaccess)?

    Satanpit
    @Satanpit
    Front-end developer
    RewriteEngine On  
      
    RewriteCond %{SCRIPT_FILENAME} !-d  
    RewriteCond %{SCRIPT_FILENAME} !-f  
    
    RewriteRule ^(.*)$ ./index.php?route=$1


    Все после www.site.com/ попадает в $_GET['route']
    Ответ написан
  • Доменная зона .io — что я пропустил?

    Один из омонимичных доменов:

    .am — национальный домен Республики Армения, созвучен с диапазоном радиостанций AM или как зона AMerica.
    .cd — национальный домен Демократической республики Конго (иначе — Заира), совпадает с сокращением для компакт-диска.
    .dj — национальный домен Джибути, совпадает с сокращением «диджей».
    .fm — национальный домен Федеративных Штатов Микронезии, созвучен с диапазоном радиостанций FM. Пример: last.fm.
    .im — национальный домен Острова Мэн. Совпадает с сокращением Instant Messaging («мгновенные сообщения»).
    .io — национальный домен Британских территорий в Индийском океане. Совпадает с сокращением Input Output («ввод/вывод»).
    .is — национальный домен Исландии. Совпадает со словом is, формой третьего лица единственного числа английского глагола to be. Пример: who.is
    .it — национальный домен Италии. Совпадает с сокращением IT (информационные технологии), а также с английским местоимением it («это»). Пример: ok.undo.it
    .md — национальный домен Молдавии. Совпадает с сокращением аудионосителя MiniDisc и с сокращением Must Die. Также совпадает с сокращением от англ. medical doctor, используемым повсеместно в англоязычных странах. Например, известный американский сериал «Доктор Хаус» в оригинале называется House, MD.
    .me — национальный домен Черногории. Совпадает с местоимением «меня», «мне» в английском и других европейских языках.
    .net — общий домен верхнего уровня, совпадает с русским словом «нет», из-за чего обрёл в России (и не только) дополнительную популярность. Часто используется с доменными именами в виде транслитерированных русских слов. Примеры: mozga.net, lishnih.net.
    .nu — национальный домен острова Ниуэ, созвучно со словом ню.
    .tm — национальный домен Туркменистана, совпадает с аббревиатурой «™» (англ. trade mark — торговая марка).
    .tv — национальный домен Тувалу, совпадает с аббревиатурой «Телевидение».
    .ws — национальный домен Западного Самоа, совпадает с аббревиатурой Web Site.
    .in — национальный домен Индии, с английского языка переводится как предлог «в».
    .li — национальный домен Лихтенштейна. Совпадает с окончанием глаголов и имён существительных в русском языке. Используется с доменными именами в виде транслитерированных русских слов. Примеры: zadolba.li, zastuka.li, vaf.li, gus.li, yas.li.
    .pro - общий домен верхнего уровня для профессионалов в своей области.
    Ответ написан
    3 комментария