Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

Полная домашняя автоматизация в новостройке. Продолжение

Время на прочтение9 мин
Количество просмотров91K
Неожиданно статья про мой опыт автоматизации однокомнатной квартиры площадью 41 кв. м. в новостройке, опубликованная две недели назад, стала популярна и на 10 марта её добавил в закладки 781 image человек, просмотрели 123 921 раз и Хабр даже запилил рекламный блок в разделе «Рекомендуем» с пометкой «Интересно».


1500 метров проложенных кабелей после окончания ремонта не видны. На фото спальня

Перед вами продолжение истории, где я отвечу на комментарии, приведу фотографии квартиры с мебелью, получившиеся электрические щиты, а также расскажу о тех сложностях, с которыми я столкнулся после того, как перешёл c openHAB в другую систему домашней автоматизации — Home Assistant.
Самая умная однушка ...
Всего голосов 42: ↑40 и ↓2+53
Комментарии368

Курс молодого бойца PostgreSQL

Время на прочтение13 мин
Количество просмотров538K


Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

Постараюсь охватить множество тем и приемов, которые помогут при работе с данными, стараясь не углубляться в подробное описание того или иного функционала. Я любил подобные статьи, когда обучался самостоятельно. Пришло время отдать должное бесплатному интернет самообразованию и написать собственную статью.

Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

Поехали!
Читать дальше →
Всего голосов 79: ↑77 и ↓2+75
Комментарии59

Задачи и решения для бойца PostgreSQL

Время на прочтение8 мин
Количество просмотров47K

Приветствую всех любителей SQL!

В интернете я редко встречал статьи, которые охватывают разные рабочие моменты и тонкости, связанные с обработкой данных в SQL.
Мне нравится, когда из одной статьи можно почерпнуть сразу много всего, пусть даже в общих чертах.
Поэтому решил написал свою статью, содержащую различные задачи и ответы с пояснениями к ним.
Подойдет для тех, кто хорошо освоил все базовые навыки и хочет развиваться дальше.

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

Постарайтесь ответить самостоятельно, перед открытием спойлера.

Поехали!
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии30

Простое обнаружение проблем производительности в PostgreSQL

Время на прочтение5 мин
Количество просмотров59K
Существует ли в мире очень большая и крупная база данных, которая время от времени не страдает от проблем с производительностью? Держу пари, что их не так уж много. Поэтому каждый DBA (администратор базы данных), отвечающий за PostgreSQL, должен знать, как отслеживать потенциальные проблемы производительности, чтобы выяснить, что на самом деле происходит.

Повышение производительности PostgreSQL после настройки параметров


Многие думают, что изменение параметров в postgresql.conf — это реальный путь к успеху. Однако это не всегда так. Конечно, чаще всего хорошие параметры конфигурации базы данных очень полезны. Тем не менее, во многих случаях реальные проблемы будут возникать из-за странного запроса, скрытого глубоко в некоторой логике приложения. Даже вполне вероятно, что запросы, вызывающие реальные проблемы, не являются теми, на которые вы обратили внимание. Возникает естественный вопрос: как мы можем отследить эти запросы и выяснить, что на самом деле происходит? Мой любимый инструмент для этого — pg_stat_statements, который всегда должен быть включен по моему мнению, если вы используете PostgreSQL 9.2 или выше (пожалуйста, не используйте его в более старых версиях).
Читать дальше →
Всего голосов 20: ↑19 и ↓1+25
Комментарии6

Ещё немного про телефоны Xiaomi и борьбу с ними. Updated

Время на прочтение11 мин
Количество просмотров363K
image

Честно признаться, у меня не было планов писать и публиковать эту статью, но, после того, как за два месяца увидел в ближнем кругу коллег 5 штук свежеприобретённых телефонов от Xiaomi, и недавнюю статью на Geektimes, рекламирующую управление умным домом от Xiaomi, ко мне пришла совесть и, сцуко, потребовала поделиться знанием с остальными.
Читать дальше →
Всего голосов 90: ↑85 и ↓5+80
Комментарии308

Профилирование кода Go-проекта и решение проблемы с выделением памяти

Время на прочтение7 мин
Количество просмотров7K
Пожалуй, каждому программисту известны слова Кента Бека: «Make it work, make it right, make it fast». Сначала надо сделать так, чтобы программа работала, дальше — надо заставить её работать правильно, а уже потом можно переходить к оптимизации. 



Автор статьи, перевод которой мы публикуем, говорит, что недавно он решил заняться профилированием своего опенсорсного Go-проекта Flipt. Он хотел найти в проекте код, который можно было бы без особых усилий оптимизировать и тем самым ускорить программу. В ходе профилирования он обнаружил некоторые неожиданные проблемы в популярном проекте с открытым исходным кодом, который в приложении Flipt использовался для организации маршрутизации и поддержки промежуточного ПО. В итоге удалось снизить объём памяти, выделяемой приложением в процессе работы, в 100 раз. Это, в свою очередь, привело к уменьшению количества операций по сборке мусора и улучшило общую производительность проекта. Вот как это было.
Читать дальше →
Всего голосов 42: ↑38 и ↓4+34
Комментарии0

Отладка скрытых утечек памяти в Ruby

Время на прочтение10 мин
Количество просмотров4.2K

В 2015-м я написал об инструментарии, который Ruby предоставляет для обнаружения управляемых утечек памяти. В основном статья рассказывала о легко управляемых утечках. На этот раз я расскажу об инструментах и хитростях, которые вы можете применять для ликвидации утечек, которые в Ruby не так легко проанализировать. В частности, я расскажу о mwrap, heaptrack, iseq_collector и chap.
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии1

Вопросы будущему работодателю

Время на прочтение3 мин
Количество просмотров56K


В конце каждого собеседования у соискателя спрашивают, не осталось ли вопросов.
По грубой оценке моих коллег, 4 из 5 кандидатов узнают размер команды, во сколько приходить в офис и реже о технике. Такие вопросы работают на короткой дистанции, потому что через пару месяцев для них важно не качество техники, а настроения в команде, количество встреч и энтузиазм улучшать код.

Под катом список тем, которые покажут проблемные места там, где о них не любят упоминать.
Читать дальше →
Всего голосов 114: ↑108 и ↓6+102
Комментарии87

Тяжела ли работа программиста — взгляд с точки зрения психофизиологии

Время на прочтение4 мин
Количество просмотров65K
Во первых словах:
— Работа программистом-разработчиком — тяжелый труд, сравнимый с валкой леса топором. И проблематика данного труда сильно недооценена в общественном сознании.
Сейчас я обосную этот тезис с научной точки зрения.


Читать дальше →
Всего голосов 118: ↑101 и ↓17+84
Комментарии366

Подборка: 9 полезных материалов о «профессиональной» эмиграции в США

Время на прочтение3 мин
Количество просмотров12K


По данным недавнего исследования Gallup, за последние 11 лет число россиян, желающих переехать в другую страну утроилось. Большая часть из этих людей (44%) находится в возрастной группе до 29 лет. Также согласно статистике, среди наиболее желанных стран для иммиграции среди россиян уверенно держится США.

Я решил собрать в одном топике полезные ссылки на материалы о различных типах виз и других важных для потенциальных иммигрантов вопросах.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии17

Блокировки в PostgreSQL: 1. Блокировки отношений

Время на прочтение14 мин
Количество просмотров99K
Два предыдущих цикла статей были посвящены изоляции и многоверсионности и журналированию.

В этом цикле мы поговорим о блокировках (locks). Я буду придерживаться этого термина, но в литературе может встретиться и другой: замóк.

Цикл будет состоять из четырех частей:

  1. Блокировки отношений (эта статья);
  2. Блокировки строк;
  3. Блокировки других объектов и предикатные блокировки;
  4. Блокировки в оперативной памяти.

Материал всех статей основан на учебных курсах по администрированию, которые делаем мы с Павлом pluzanov, но не повторяет их дословно и предназначен для вдумчивого чтения и самостоятельного экспериментирования.
Читайте и другие серии.

Индексы:

  1. Механизм индексирования;
  2. Интерфейс метода доступа, классы и семейства операторов;
  3. Hash;
  4. B-tree;
  5. GiST;
  6. SP-GiST;
  7. GIN;
  8. RUM;
  9. BRIN;
  10. Bloom.

Изоляция и многоверсионность:

  1. Изоляция, как ее понимают стандарт и PostgreSQL;
  2. Слои, файлы, страницы — что творится на физическом уровне;
  3. Версии строк, виртуальные и вложенные транзакции;
  4. Снимки данных и видимость версий строк, горизонт событий;
  5. Внутристраничная очистка и HOT-обновления;
  6. Обычная очистка (vacuum);
  7. Автоматическая очистка (autovacuum);
  8. Переполнение счетчика транзакций и заморозка.

Журналирование:

  1. Буферный кеш;
  2. Журнал предзаписи — как устроен и как используется при восстановлении;
  3. Контрольная точка и фоновая запись — зачем нужны и как настраиваются;
  4. Настройка журнала — уровни и решаемые задачи, надежность и производительность.


Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии11

Как работать с Postgres в Go: практики, особенности, нюансы

Время на прочтение10 мин
Количество просмотров138K


Неожиданное поведение приложения в отношении работы с базой приводит к войне между DBA и разработчиками: DBA кричат: «Ваше приложение роняет базу», разработчики — «Но ведь до этого всё работало!». Хуже всего, что DBA и разработчики не могут помочь друг другу: одни не знают про нюансы работы приложения и драйвера, другие не знают про особенности, связанные с инфраструктурой. Было бы неплохо такой ситуации избежать.


Надо понимать, часто недостаточно полистать go-database-sql.org. Лучше вооружиться чужим опытом. Еще лучше, если это будет опыт, полученный кровью и потерянными деньгами.

Всего голосов 76: ↑73 и ↓3+70
Комментарии29

Осторожный переезд в Нидерланды с женой и ипотекой. Часть 1: поиск работы

Время на прочтение12 мин
Количество просмотров108K
На Хабре да и вообще в русскоязычном Интернете есть немало инструкций о том, как перебраться в Нидерланды. Я и сам немало полезного почерпнул из одной статьи на Хабре (ныне, видимо, скрытой в черновике уже нет, вот она). Но я все-таки расскажу о своем опыте поиска работы и переезда в эту европейскую страну. Помнится, и когда я только собирался рассылать резюме, и когда уже проходил собеседования, мне было очень интересно почитать об аналогичном опыте других коллег по цеху.

image

В общем, если вам интересен рассказ о том, как C++ программист из Подмосковья искал работу в Европе, желательно в Великобритании, а нашел-таки в Нидерландах, переехал туда сам и привез жену, все это с непогашенной ипотекой в России и с небольшими приключениями — добро пожаловать под кат.
Читать дальше →
Всего голосов 216: ↑202 и ↓14+188
Комментарии306

HTTP-заголовки для ответственного разработчика

Время на прочтение15 мин
Количество просмотров103K

Сегодня быть онлайн — это привычное состояние для многих людей. Все мы покупаем, общаемся, читаем статьи, ищем информацию на разные темы. Сеть соединяет нас со всем миром, но прежде всего, она соединяет людей. Я сам пользуюсь интернетом уже 20 лет, и мои отношения с ним изменились восемь лет назад, когда я стал веб-разработчиком.

Разработчики соединяют людей.
Разработчики помогают людям.
Разработчики дают людям возможности.

Разработчики могут создать сеть для всех, но эту способность необходимо использовать ответственно. В конце концов, важно создавать вещи, которые помогают людям и расширяют их возможности. В этой статье я хочу рассказать о том, как HTTP-заголовки могут помочь вам создавать лучшие продукты для лучшей работы всех пользователей в интернете.
Читать дальше →
Всего голосов 92: ↑90 и ↓2+88
Комментарии64

Выбор телевизора себе, любимому, с позиции науки, а не рекламы

Время на прочтение4 мин
Количество просмотров121K

Всем привет.

На написание этой небольшой статьи меня натолкнул спор касательно выбора телевизора.

Сейчас в этой области — равно как в «мегапикселях для камер» — царит маркетинговая вакханалия в погоне за разрешениями: HD Ready давно сменились на Full HD, а уже становятся всё более популярными 4К и даже 8К.

Давайте разберёмся — а что нам реально-то нужно?
Читать дальше →
Всего голосов 142: ↑124 и ↓18+106
Комментарии346

Изучаем Go: подборка видеозаписей докладов

Время на прочтение2 мин
Количество просмотров11K


Сегодня язык Go широко используется для разработки распределённых и высоконагруженных приложений. Мы собрали для вас подборку видео, в основном с наших митапов, в которых разбираются преимущества и недостатки языка, и рассказывается об особенностях его применения на примерах реальных проектов.

Список видеозаписей:

  1. Go в production.
  2. Профилирование Go-приложений.
  3. Медиасервер трансляций на Go.
  4. Pipeline поиска по Почте на Go.
  5. Синхронизация данных в Go с помощью mysql binlog.
  6. Как мы начали использовать Go в Ответах Mail.ru.
  7. Pub/Sub и 1 миллион WebSocket’ов.
  8. Программирование на Go (курс).
  9. Кому нужен язык Go и микросервисы.
Всего голосов 31: ↑31 и ↓0+31
Комментарии3

Gotify — open source проект по доставке уведомлений и отправке сообщений на сервер

Время на прочтение4 мин
Количество просмотров17K


Для тех, кто администрирует серверы и/или веб-проекты остро стоит вопрос информированности о том, что же происходит с их «подопечными». На рынке существует масса решений об оповещении о сбоях, состоянии соединения и прочих параметрах, в том числе и с помощью СМС. Речь о MRTG, Twilio, F-Droid, сервисах Google и многих-многих других. Вот только проблема в том, что большинство из этих решений весьма узко специализированы, а повлиять на их функции не представляется возможным. MRTG отдаст информацию о трафике и соединении, Google пришлет СМС. Кое-какую свободу дает Twilio в плане написания скриптов на JavaScript под свои нужды, но простите, это же коммерческий проект. То есть «давай, плати бабло или проваливай».

Так вот, в этом семействе инструментов у нас есть open source пополнение: Gotify — простой клиент-серверный проект для получения и отправки пуш-уведомлений и команд, в том числе и через Android-приложение. И о нем определенно стоит рассказать чуть подробнее, думаю, это пригодится для тех, кто искал нечто похожее и при этом бесплатное, но в итоге завел собственный pet-project. Вполне возможно, эта публикация сэкономит пару сотен часов вашего времени.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии3

Собеседуем работодателя или как не уволиться в первый месяц

Время на прочтение2 мин
Количество просмотров74K
Первый рабочий день и… о боже, что я тут делаю?! Нет, ну серьезно кто вообще так пишет код?
Дружный коллектив? Мои коллеги вообще заметили, что я вышел на работу?

Древний SVN, шумный опен спейс и «типа SCRUM», и это лишь малая часть из тех «приятных» сюрпризов, которые вас могут поджидать в первый рабочий день.
Знакомая ситуация?
Читать дальше →
Всего голосов 155: ↑134 и ↓21+113
Комментарии176

Для тех, кто познаёт ушами: подкасты для разработчиков

Время на прочтение6 мин
Количество просмотров53K


Кто сказал, что разработчики могут учиться новому только через книги, видео и анализ чужого кода? Ведь у нас и другие каналы получения информации из окружающего мира. Конечно, речь не о том, чтобы попробовать знания на вкус, пощупать их или понюхать. А вот послушать — самое оно. Мы собрали для вас коллекцию действующих русскоязычных подкастов для разработчиков. Хороший способ дать глазам отдых или занять себя в пробках.
Читать дальше →
Всего голосов 83: ↑80 и ↓3+77
Комментарии57

Эти токсичные парни: они отравляют проекты

Время на прочтение11 мин
Количество просмотров58K
Сделаем осторожное предположение, что вы хотите получать удовлетворение от работы, реализовывать интересные и полезные проекты за адекватное вознаграждение, время от времени отдыхать с пониманием, что жизнь проходит не зря.



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

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

Тараканы Корпоративные (токсичность:☣☣☣)


Ареал обитания и повадки:
Заводятся в крупных корпорациях, в маленьких компаниях приживаются плохо. Тараканам нужно много бегать и утверждать переутверждение согласованных согласований. Максимум движений с отрицательной пользой.
Читать дальше →
Всего голосов 118: ↑67 и ↓51+16
Комментарии120

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность