• Как сделать отказоустойчивый кластер PostgreSQL?

    Melkij
    @Melkij
    PostgreSQL DBA
    Мультимастер СУБД - это такая замечательная штука, которую все хотят и ни у кого пока не получилось.
    Потому что есть такая штука как CAP теорема, весьма мешающая сделать серебряную пулю.

    Ладно, ближе к делу.
    Самая большая проблема с автоматическим failover СУБД - решить, что уже пора переключаться. Для чего необходимо выяснить, а что вообще происходит, не развалилась ли сеть, не вернётся ли через пару секунд мастер обратно - если в сети в результате окажется два мастера, то нет никакого разумного способа определить, где данные актуальны. Худшее что можно представить - это split brain: когда часть приложений ходит в один мастер, часть в другой и данные стремительно расходятся в разные стороны. Есть такая байка про гуглдиск "у нас всё отказоустойчиво, все данные хранятся в 4 экземплярах. Правда, у нас была авария и мы теперь понятий не имеем, какая из копий актуальная"
    Переключение мастера на 90% - решение административное и человеческое. Автоматика же добавляет головной боли. Зачастую - больше головной боли, чем без неё. Особенно если железо адекватное серверное, которое "вдруг" выпадает очень редко.

    Обычно автоматики нет, и есть детальная инструкция по переключению мастера БД, по которой и в ночи можно переключиться.

    Если всё ещё хочется походить по граблям - посмотрите patroni. Есть пара кластеров с ним на поддержке, при наличии мониторинга особых проблем не припоминаю. До split brain по крайней мере не придумал как довести, вроде все варианты прикрыты. В худшем случае в readonly уходит.
    Ответ написан
    7 комментариев
  • Как делать бэкапы/дампы в Postgresql? Какое есть бесплатное и простое решение, которым пользуются многие?

    Melkij
    @Melkij
    PostgreSQL DBA
    Зависит от требований к бекапам.
    Если нужен point in time recovery, т.е. возможность восстановить состояние кластера на какую-то произвольную транзакцию - то это pg_basebackup + архив WAL.
    Чтобы не собирать конструктор вручную - есть barman. Если бекапить хотите куда-то в s3 - то проще будут wal-e или wal-g
    Одну базу в отдельности так бекапить и восстанавливать не выйдет, только весь инстанс целиком. Объём бекапа = объём всего инстанса + объём всех WAL от начала basebackup до нужного момента восстановления, количество wal зависит от вашей пишущей нагрузки.

    Если достаточно логических слепков данных, например, ежесуточных - тогда да, pg_dump. Восстановление соответственно только на момент начала снятия дампа.
    Типично делается pg_dumpall -g для сохранения глобальных данных кластера - пользователей, tablespace, имён баз и отдельные pg_dump для тех баз которые надо бекапить.
    Формат часто custom делается, т.к. он штатно сжимается и позволяет через pg_restore восстанавливать определённые объекты из дампа, а не только всё целиком как текст через psql. Для гигабайтной базы смысла нет, а для баз побольше имеет смысл делать формат directory в несколько потоков.
    Ответ написан
    4 комментария
  • Мотивация для разработчика. Как мотивировать себя/команду работать продуктивно?

    Мотивация - ничто. У нее очень маленький ресурс, ее одной недостаточно. Многие не делают даже то, чего, в общем-то, хотят, потому что им лень, или плохое настроение. Вопрос в дисциплине, когда человек делает то, что ему нужно делать, в любом случае, по расписанию.

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

    Ищите способы поднять дисциплину в коллективе, подавайте личный пример. Правило 5% - если 5% будут работать дисциплинированно, остальные могут втянуться. И в общем-то масса способов. К работе нужно относиться в первую очередь как к работе, а не к развлечению с интересными задачами.

    P.S. В общем-то, если пооффтопить, неверная трактовка мотивации и вне работы \ программирования приводит к фейлам при попытке сесть на диету или подкачаться к лету.
    Ответ написан
    9 комментариев
  • Как выполнять адаптивную верстку статичного макета PSD?

    vicodin
    @vicodin
    Имею некоторый опыт
    именно поэтому дизайнер должен быть еще и верстальщиком, а верстальщик - дизайнером.
    Там по сути и дизайна даже нет, скорее нужно базовое представление о UX.

    Как обычно делаю я? Верстаю full-width макет, и начинаю уменьшать ширину браузера попиксельно, появляется косяк - рефакторю этот момент или пишу для него media query. И так до 320(сейчас чаще до 400) пикселей.
    Ответ написан
    Комментировать
  • Как сделать такой эффект фона?

    zualex
    @zualex
    Senior Software Engineer
    Ответ написан
    Комментировать
  • Под какие (разрешения) экраны делать адаптивку сайта?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Обычно должно быть 5-7 размеров
    1. Смартфон в вертикальном положении (320-400)
    2. Смартфон на боку (480 - 650)
    3. Планшет в вертикально положении (768)
    4. Планшет на боку (1024)
    5. Десктоп (обычно 1200 и 1600).

    Между этими размерами должна быть какая-то резина, чтобы переход был плавным и смотрелось нормально на нестандартных девайсах.
    Ответ написан
    5 комментариев
  • Как эффективно изучать JS?

    @Scribblex
    Я рекомендую изучать JS примерно таким путем:
    – чтение learn.javascript.ru (чтение и, естественно, практика);
    – параллельное прохождение модулей по JS на codeschool;
    – держите перед глазами актуальные вопросы для собеседования JS-разработчика (habrahabr.ru/post/239065/), стараясь на них ответить;
    – читайте хороших авторов: Дуглас Крокфорд, Джон Рейзиг, Стоян Стефанов;
    – найдите на GitHub людей, которые согласятся ревьюить Ваш код, я серьезно!

    Ну и не забывайте: чем чаще Вы пишите код, тем лучше получается; чем сильнее стараетесь разобраться в основах языка, тем легче будут даваться в освоении фреймворки и паттерны.

    Желаю успеха!
    Ответ написан
    10 комментариев
  • Как удобнее классифицировать(законспектировать) то, что выучил?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вам нужна по большей части практика, а не конспекты. Под мелкие сниппеты юзайте gist.github.com. Проекты в которых работали тоже стоит сохранять так как в будущем могут быть похожие задачи.
    Для остального - официальные справки, документации и гугл.
    Ответ написан
    Комментировать
  • Перенос системы с помощью dd, как правильно?

    @bukass
    dd - буквально d-иск d-амп - dd пофигу даже какая там файловая система. Копируется образ диска.
    dd прикольно делать так
    backup dd if=/dev/sda1 | gzip - | dd of=/path_to_backups/fs.img.gz
    а потом восстановить так dd if=fs.img.gz | gunzip - | dd of=/dev/sda1
    Ответ написан
    Комментировать
  • Получу ли я 1920х1080?

    opium
    @opium
    Просто люблю качественно работать
    обычно в таких ноутах говнокарты так что если и получите то все будет чудно тормозить, а вообше очень же просто прийти с ноутом и проверить в магазине
    Ответ написан
    1 комментарий
  • Самообучение фронт - энд на работе не связаной с програмированием?

    gleber1
    @gleber1
    Выдумывай себе практические задачи. Такой к примеру сидишь и заказываешь себе для начала лендинг, гуглишь в этом направлении и тут же верстаешь. Потом усложняешь туда хочешь скажем слайдер анимированый своими руками, гуглишь , делаешь итд. А так слушая чьи то каналы на ютуб далеко не уйдешь, как то сразу забудешь все
    Ответ написан
    Комментировать
  • Какой шаблон/плагин исползовать для спортивных трансляций?

    exclus
    @exclus
    СОТ/СКУД/СКС/Автоматика
    А поток от куда брать будете, или сами снимать планируете? Не важно какой шаблон, любой, а вот с ПО для трансляций уже интересней вопрос.
    Ответ написан
    2 комментария
  • Как записать видео с TV?

    Moskus
    @Moskus
    Чтобы записать программу аналогового ТВ, с индивидуальной или коллективной антенны, вам понадобится ТВ-тюнер, один из таких или аналогичный.
    Если речь о программе цифрового вещательного ТВ и о России, то понадобится устройство приема стандарта DVB-T2.
    Если речь о спутниковом канале, то все очень сильно зависит от того, каким оборудованием для приема спутникового ТВ вы уже располагаете.

    Ну и естественно, понадобится софт. По поводу софта, могу порекомендовать ознакомиться вот с этим сайтом.
    Ответ написан
    4 комментария
  • Быстрая разработка сайта, как?

    Docus_Kingdom
    @Docus_Kingdom
    Ученик школы
    Вот тут есть небольшой мануал "сайт за час". Как раз для без особых знаний
    geektimes.ru/post/248048
    Ответ написан
    Комментировать
  • Какие книги/статьи посоветуете об аутентификация в вебе?

    Razaz
    @Razaz
    Asp.Net junkie
    Для начала разобраться с терминологией. Какой именно из процессов вас интересует?
    1. Идентификация.
    2. Аутентификация.
    3. Авторизация.

    На каждом этапе есть свои нюансы и особенности.
    Ответ написан
    2 комментария
  • Что не так с кодировкой firefox?

    @LMI
    Указать кодировку в head, как написал человек выше и сохранять в UTF8 без BOM.
    Ответ написан
    1 комментарий
  • Что не так с кодировкой firefox?

    shaks
    @shaks
    <meta charset='utf8'>внутрь <head>

    Ты работал изначально в винде, и файл у тебя в cp1251. Обязательно пересохрани его в utf8
    Ответ написан
    3 комментария
  • Мобильный интернет Питер-Москва?

    Ernillew
    @Ernillew
    Администрирую *nix-системы с 1997 года
    Билайн с симкой купленной в Нижнем Новгороде.
    Фишка в том, что «Хайвей 30 Гб» на нижегородской симке стоит 590 рублей в месяц(с ночным анлимом), а он же на московской симке 1150 рублей в месяц(и без ночного анлима). При этом у Билайна отсутствует роуминг для инета за исключением Камчатского края, Магаданской области, Чукотского автономного округа, Республики Саха (Якутия) и оккупированных территорий.
    То есть взяв нижегородскую симку вы получите за 590 рублей в месяц больше, чем на московской за 1150 в месяц.
    Ответ написан
  • Как построить сеть на RS-485???

    Applez
    @Applez
    Разраб
    1) Вешаете устройства на одну шину, раздаете им адреса-ID, если не хотите использовать существующие промышленные протоколы (напрмер Modbus-RTU или ProfiBUS) или они вам по каким-то причинам не подходят, придумаваете свои грабли. Дальше в своих граблях кодируете команды. (например: если отправляем 0х01 - то готовим передачу конфигурации, 0х02 - передаем конфигурацию , 0х03 - опрос состояния устройства, 0х04 - установка значения параметра "такого-то" и т.д.) Кодируем master и slave и вот вам счастье.
    2) Все точно так-же, но в конфиге указываете другой режим. Например TokenRing можно использовать, если master/slave не подходит для работы.
    3) Это зависит от длинны шины и помех. Нужно читать спеку на 485.
    4) Все устройства, которые я кодировал, имели такие параметры. Даже скажу больше, во флешь заливали конфигурацию устройства, в которой было все, начиная от уставок входов/выходов, номеров портов, логики работы периферии, значений времен опроса и режима работы самого устройства. После старта, эта конфига считывалась, проверялась на допустимые значения, прибор конфигурировался, самотестировался и включался в работу. При любой внештатной ситуации, дававшее сбой устройство могло быть заменено на заведомо рабочее, при том, для этого просто требовалось переткнуть разъемы, слить накопленную инфу, залить конфигурацию в новое устройство и присвоить ему адрес-ID неисправного.
    Ответ написан
    Комментировать