• Можно ли мыть механическую клавиатуру под струей?

    eapeap
    @eapeap
    Сисадмин, Беларусь
    Хорошо промыть - стряхнуть - промыть дистиллированной водой - стряхнуть и просушить на батарее часов 12, чтобы наверняка высохла.
    Спиртом мыть без толку - сахар и прочие липкости в нем не растворятся.
    Водой мыл и материнки, и клавы ноутбучные, и прочую электронику.
    Ответ написан
    Комментировать
  • Go-micro. Проблема с обнаружением сервиса из примера в документации. Что делаю не так?

    @falconandy
    Посмотрите https://github.com/micro/examples/issues/98 - советуют разобраться с firewall и собирать/запускать в режиме "go module". На Ubuntu 18.04 с go 1.14.2 всё ок.
    Ответ написан
    1 комментарий
  • Как правильно отрендерить шаблон из строки?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    $loader = new \Twig\Loader\ArrayLoader([
        'you_name.html' => 'Hello {{ name }}!',
    ]);
    $twig = new \Twig\Environment($loader);
    
    echo $twig->render('you_name.html', ['name' => 'Fabien']);

    Источник: Built-in Loaders¶

    Ну и понятное дело, можете прокси сделать какой-нибудь сервис в контейнере, чтобы руками это каждый раз не городить
    Ответ написан
    3 комментария
  • Как обнулить или объединить миграции и оставить одну?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Боевая БД
    Нужно понимать, что боевая БД уже не будет накатываться с первой миграции. Миграции старше последней (или нескольких последних миграций, куда еще есть шанс откатиться) на боевой БД проделываться не будут, боевой базе достанутся только будущие миграции. Потому дамп делать никакой не нужно (ну спец под эту операцию, эта операция не связан с боевой БД никак) — дальше прилетят только новые изменения.

    На машине разработчика
    Если все сделано аккуратно (когда работали с миграциями), то можно удалить все таблицы и попробовать сгенерировать diff — он сделает актуальную миграцию, которая необходима. Далее нужно удостовериться — не было ли придуманных вне ORM миграций и таблиц, крч сверить с боевой схемой. Также возможно миграции несли некоторые данные (ну например коды валют, которых всего 5-10 вы решили миграцией занести или пара дефолтных значений из таблицы settings, и подобные случаи) — нужно будет руками это повторить (или не повторять, если не нужно).
    Если вы добились, что ПУСТОЙ БД накаткой миграций получается ровно то, что достигалось ранее, то:
    • вы спокойно можете удалить старые миграции и коммитить эту одну большую
    • перед выкаткой на прод — вы должны текущую миграцию занести в таблицу migration_versions руками


    Done!

    Все делается очень легко, мне как-то достался проект без доступа к старому GIT (и почему-то без миграций), но с боевой БД. Пришлось проделать приблизительно все тоже самое (не считая болевого обновления Symfony с 2.7 до 3.4 с Сонатой, было больно :):):))...
    Все проделывания с миграциями заняли от силы полтора часа (в виду молодости и не опытности), было пару подводных моментов (типа у некоторых бандлов из vendor были свои папки со своими мииграциями) и данные нужны были. некоторые, а так все относительно легко
    Ответ написан
    Комментировать
  • Как обнулить или объединить миграции и оставить одну?

    @HellWalk
    Если миграции делались через
    php bin/console make:migration
    А под сохранением данных вы подразумеваете структуру таблиц, а не их содержимое, то все просто:

    1. удаляете все миграции
    2. удаляете все таблицы из базы (включая migrations)
    3. выполняете еще раз команду "php bin/console make:migration"

    P.S. На всякий случай, сделайте бекап базы и git-коммит, чтобы в случае чего откатить все назад.

    P.P.S. Можно и данные в базе сохранить - сделать нулевым пунктом бекап базы, изменить его так, чтобы в нем остались только команды на добавление данных, и накатить дамп четвертым пунктом.
    Ответ написан
    6 комментариев
  • Доменная зона .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 комментария
  • Спрашивать ли бюджет у клиента или сразу называть свою цену?

    Chipr
    @Chipr
    UX/UI designer
    Прочтите "Договориться можно обо всем" Гэвин Кеннеди и вы узнаете как называть цену и когда. Обычно у заказчика есть ожидания по минимальной и максимальной цене его проекта, если бы мы их знали все было бы намного проще, но из этого и состоит предпринимательство. Обычно называю цену на несколько процентов выше, чтобы было пространство для маневров. Цену лучше предлагать свою сразу, спрашивая у клиента на что он рассчитывает вы отдаете инициативу в его руки. Клиент ведь обратился к профессионалу узнать сколько стоит данный вид работы, а вы уже сходу даете понять, что готовы пойти на уступки лишь бы вписаться в бюджет клиента — плохо.
    Ответ написан
    6 комментариев
  • Как сделать bulk insert в GORM?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Можно использовать библиотеку https://github.com/t-tiger/gorm-bulk-insert

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

    Примерно вот так:
    tx.Begin()
    for {
       DB.Create
    }
    tx.Commit()

    Советую присмотреться вот к этой библиотеке https://jmoiron.github.io/sqlx/
    Я её использую почти во всех проектах.
    Ответ написан
    Комментировать
  • Будет ли работать программный RAID 1 после переустановки Windows Server?

    ifaustrue
    @ifaustrue
    Пишу интересное в теллеграмм канале @cooladmin
    За зеркало вообще можно не переживать. В крайнем случае - делайте резервную копию и просто вставляйте один диск чистым в зеркало.
    Большинство рейд контроллеров (в т.ч. программных) пишут информацию о RAID прямо на диск, потому после переустановки вновь включённый драйвер RAID всё это увидит.
    Ответ написан
    1 комментарий
  • Как установить wine 5.0 в Ubuntu 19.10?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Идёте сюда Installing WineHQ packages, внимательно читаем и поэтапно ставим и всё работает на УРА!!!
    Ответ написан
    3 комментария
  • Как установить wine 5.0 в Ubuntu 19.10?

    Zoominger
    @Zoominger
    System Integrator
    Нет, ещё не обновились, потому что мейнтейнеры дистрибутива ещё не протестировали его работу и не добавили в официальный репозиторий.
    Ответ написан
    1 комментарий
  • Как в типизированных свойствах задать массив типа?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Дженерики еще не подвезли, которые бы сделали это возможным
    Используйте коллекции (из Симфони или Ларавел возьмите), если хотите, чтобы был некий контроль за типом, но и они, опять же, не будут полноценно контролировать тип элемента сами по себе.

    class Bar
    {
        /** @var ArrayCollection|Bar[] */
        public ArrayCollection $props;
    }


    Для решения вашей задачи нужен еще один виток развития языка :)

    НЕсуществующий код!
    class ArrayCollection<T>
    {
        public getElement(): <T>;
        public addElement(<T> $element): void;
    }
    
    class Bar
    {
        public ArrayCollection<Bar> $barCollection;
    }


    Единственное, можно свои коллекции прокачать на проверку типа при создании объекта этой коллекции
    Ответ написан
    Комментировать
  • Как в типизированных свойствах задать массив типа?

    @bkosun
    Никак, но если это нужно для подсказок в IDE - можно указать в PHPDoc:

    class Bar {
    
        /**
         * @var Foo[]
         */
        public array $prop = [];
    }


    https://wiki.php.net/rfc/generics
    Ответ написан
    Комментировать
  • Какой язык программирования для Back-end производительнее?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    ВКонтакте переписывался с PHP на C на сколько я знаю.


    Кто вам мешает пойти таким же путем?
    Когда ваш проект начнет тормозить, купите сервер помощнее.
    Когда сервера помощнее не будет хватать - перепишете. Точнее наймете специалистов, которые перепишут.

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

    DanielMcRon
    @DanielMcRon
    C# && Unity
    Можно бы сделать набор ненужных вам слов, и если пароль содержит их в нижнем или верхнем регистре,то заново его сделать
    Ответ написан
    Комментировать
  • Почему некоторые люди утврерждают что плохо использовать jQuery?

    @Programmir
    Ничем не плохо. На jQuery можно практически всё реализовать. Я его использую. Гораздо удобнее чистого JS.
    Ответ написан
    Комментировать
  • Какие индексы использовались при запросе?

    @prostoprogrammist
    Если Вы не видите индексов, значит планировщик решил не пользоваться индексом. Вот код с хабра разработчика posgresql
    postgres=# explain (costs off) select * from t where a = 1;
              QUERY PLAN          
    -------------------------------
     Index Scan using t_a_idx on t
       Index Cond: (a = 1)
    (2 rows)
    
    где строчка " Index Scan using t_a_idx on t" означает использование индекса.


    И исходя из выложенного Вами explain'a видно, что планировщик предпочел Seq scan (последовательное сканирование). И, в Вашем запросе вообще индекс не нужен. У Вас нет даже указания WHERE.
    Ответ написан
    Комментировать
  • Что на сегодня лучше для нового проекта, GitLab vs GitHub vs bitbucket?

    @Nazar48882
    Я как раз статью написал пару часов назад)
    Надеюсь будет полезно Сравнение GitLab vs GitHub
    Ответ написан
    Комментировать
  • Как реализуют показ рекламы по запросу?

    @W13
    Формат называется rewarded видео, поищите рекламные сети с подобным форматом.
    AdColony таким промышляет.
    Ответ написан
    Комментировать