• Тет-а-тет: задаем правильные вопросы

    • Tutorial
    Чтобы успешно построить работу в команде (коллективе) и добиться высоких результатов, важно уметь продуктивно общаться с подчиненными и задавать правильные вопросы. Профессионализм заключается не только в нахождении нужного времени, места и момента для беседы с сотрудником, но и в получении и доведении нужной информации.

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

    Читать дальше →
  • Демонстрационная база данных для PostgreSQL

      В этой заметке я расскажу о нашей демонстрационной базе данных для PostgreSQL: почему она важна для нас и как может пригодиться вам, как устроена схема и какие данные в ней содержатся.


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


      image

      Читать дальше →
    • Эй, запрос! Ты живой? Как легко обработать блокировки в PostgreSQL

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

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

      Чтобы разобраться в сложившейся ситуации, администратору БД необходимо понять, какой процесс блокирует и какой процесс является блокируемым, а также иметь возможность отменить или «убить» блокирующий процесс и в конце проверить результат.

      В этой статье я хочу коснуться темы блокировок в PostgreSQL и рассказать об инструментах для работы с ними. Но сначала попробуем разобраться в самой теме.
      Читать дальше →
      • +29
      • 19,9k
      • 1
    • Математика CSS-шлюзов

      • Перевод

      CSS-шлюзом (CSS-lock) называется методика из адаптивного веб-дизайна, позволяющая не перепрыгивать от одного значения к другому, а переходить плавно, в зависимости от текущего размера области просмотра (viewport). Идею и одну из реализаций предложил Тим Браун в статье Flexible typography with CSS locks. Когда я пытался разобраться с его реализацией и создать свои варианты, мне с трудом удавалось понять, что именно происходит. Я выполнил много вычислений и подумал, что полезно будет объяснить другим всю эту математику.

      В статье я опишу саму методику, её ограничения и лежащую в её основе математику. Не волнуйтесь: там в основном одни сложения и вычитания. К тому же я постарался всё разбить на этапы и украсил их графиками.
      Читать дальше →
    • Что поправить в верстке перед выпуском в продакшн?



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

      Читать дальше →
    • Рисуем коммитами на Гитхабе

        [Пятничное]


        Всегда хотел сделать свой график активности пользовательского профиля на Гитхабе. Например, выкладывать коммиты каждый день так, чтобы через год этот график превратился в какую-нибудь картинку, пусть и с ограничением по размерам в 52×7 квадратиков-пикселей (52 недели в году × 7 дней в неделе).


        Проблема была в том, что даже при полной автоматизации процесса всё равно ждать целый год. А тут я почитал документацию Гитхаба и понял, что задача решается проще и более того — за один раз. А значит, надо делать не откладывая. Обычно названия проектам придумывать сложно, но тут оно пришло само. Кай рисовал льдинками, а Герда рисует коммитами!


        График коммитов на Гитхабе в виде картинки

        Как нарисовать свою картинку коммитами на GitHub
      • Использование CMAK для автоматизации клиентского подключения к VPN

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



        Итак, предположим, что мы устали писать и обновлять инструкции по созданию подключений к нашему VPN серверу для пользователей Windows и хотели бы автоматизировать этот процесс, предоставляя пользователю готовую программу, создающую подключение с заранее предопределенными нами параметрами и готовое к работе в условиях нашей сети. Осуществить это — нам поможет встроенный в Windows Server 2008 и Windows Server 2008 R2 компонент — «Connection Manager Administration Kit» (в русской версии «Пакет администрирования диспетчера подключений»). Итак, для того, чтобы установить CMAK необходимо запустить «Диспетчер сервера» и установить новый компонент «Пакет администрирования диспетчера подключений». Весь текущий пример основан на Windows Server 2008 R2 SP1, русская версия.

        Читать дальше →
        • +2
        • 41,7k
        • 6
      • Как обновить ядро в системе без перезапуска сервисов (пошаговая инструкция)

          Как вы думаете насколько реально зайти на машину по ssh, обновить систему, загрузить новое ядро и при этом оставаться в той же ssh сессии. Сейчас есть модное движения по обновлению ядра на лету (ksplice, KernelCare, ReadyKernel, etc), но у этого способа есть много ограничений. Во-первых, он не позволяет применять изменения, которые меняют структуру данных. Во-вторых, объекты в памяти могут уже содержать неверные данные, которые могут вызвать проблемы в дальнейшем. Здесь будет описан более «честный» способ обновить ядро. На самом деле, сам способ уже давно известен [1], а ценность этой статьи в том, что мы разберем все в деталях на реальном примере, поймем, насколько это просто или сложно, и чего стоит ждать от подобных экспериментов.
          Читать дальше →
        • Эволюция нейросетей для распознавания изображений в Google: GoogLeNet

            У меня тут синхронизируется VM надолго, поэтому есть время рассказать про то, что я недавно читал.
            Например, про GoogLeNet.
            GoogLeNet — это первая инкарнация так называемой Inception architecture, которая референс всем понятно на что:


            image
            (кстати, ссылка на него идет первой в списке референсов статьи, чуваки жгут)


            Она выиграла ImageNet recognition challenge в 2014-м году с результатом 6.67% top 5 error. Напомню, top 5 error — метрика, в которой алгоритм может выдать 5 вариантов класса картинки и ошибка засчитывается, если среди всех этих вариантов нет правильного. Всего в тестовом датасете 150K картинок и 1000 категорий, то есть задача крайне нетривиальна.


            Чтобы понять зачем, как и почему устроен GoogLeNet, как обычно, немного контекста.

            Читать дальше →
          • Умный дом на .NET — релиз ThinkingHome 3.0

              Привет! Сегодня я наконец-то могу поделиться с вами результатами своей работы на протяжении последних двух лет! Вчера вечером я выпустил новую версию 3.0 системы управления умным домом ThinkingHome.



              ThinkingHome — это программа (.NET Windows service), с помощью которой вы можете организовать на своем компьютере управляющий центр умного дома. Это центр, который дружит между собой "железки" с разными интерфейсами от разных производителей, позволяет автоматизировать работу с ними (писать скрипты на JavaScript) и управлять всем этим хозяйством через веб-интерфейс.


              Под катом более подробное описание системы, список изменений в новой версии и небольшое объявление для тех, кто ненавидит Windows :)

              Читать дальше →
            • «Великий уравнитель» или способ решить проблему выравнивания по высоте

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

                Эта статья пригодится тем, кто часто встречается с проблемой выравнивания элементов по высоте в разных ситуациях.

                Рис. 1. Порядок отображения группы товаров.

                Читать дальше →
              • Linux WiFi из командной строки с wpa_supplicant

                • Tutorial

                В этой статье я расскажу, как можно настроить WiFi с помощью wpa_supplicant, без всяких Xorg/X11 утилит. Это необходимо для того, чтобы базовые службы ОС исправно работали с минимальным набором технических средств удаленного доступа. Программа будет исполняться как служба, настройки сделаны правкой конфиг файлов.


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


                [root@home ~]$ wpa_cli
                > add_network
                > set_network 0 ssid "MYSSID"
                > set_network 0 key_mgmt NONE
                > enable_network 0

                Если же надо всерьез и надолго, то прошу внутрь.

                Читать дальше →
              • Баллада о SharePoint

                • Tutorial
                image

                Предисловие


                Важно! Если Вам хочется побыстрее приступить к технической стороне дела – просто пропустите эту главу.

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

                Кстати картинка «человека дождя» на заглавной не просто для привлечения внимания и именно для этого в повествование добавлена «лирика», все события, имена и прочее есть суть фантазии автора. Как обычно, никто ни за что не несет ответственности :)

                Читать дальше →
              • Стратегии расширения Django User Model

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

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

                В этой статье пойдет речь о стратегиях, с помощью которых вы можете расширить пользовательскую модель Django, а не писать ее с нуля.
                Читать дальше →
              • Дворец для Hakko T12, или что общего у паяльной станции с ёжиком



                  Доброго вам времени суток, уважаемые гики и сочувствующие! Вчитайтесь внимательно в эти строки великого поэта:

                  Я знал одной лишь думы власть,
                  Одну, но пламенную страсть:
                  Она, как червь, во мне жила.
                  Изгрызла душу и сожгла!
                  Читать дальше →
                • От проектирования до разработки: 10 инструментов, без которых я не могу обойтись

                  • Перевод
                  Инструменты сами по себе не могут сделать из вас настоящего мастера. Но они точно могут помочь в этом. В этом посте я хотел бы познакомить вас с несколькими инструментами, которые я использую. Надеюсь, вы откроете для себя некоторые новые инструменты, которые помогут оптимизировать ваш рабочий процесс.
                  Читать дальше →
                • Создание динамических time-lapse с помощью микроконтроллера

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

                    Я никогда бы не рискнул написать статью об очередной реализации умного дома с подключением датчиков утечек воды в ванной и системами слежения за проделками кота в квартире. Слава богу, кот под контролем собаки, вода вроде тоже не течёт. Но всё же мы больше находимся на работе, в различных офисах, где не всегда удается создать оптимальную рабочую среду. Статья посвящена системе экологического мониторинга рабочего пространства в офисе и тем мероприятиям, которые мы провели после месяца её (на удивление) стабильной работы. Конечно, все данные отправляем в облака, смотрим на них со своих смартфонов, полезности в этом никакой, зато повод похвалиться перед близкими и знакомыми, да и в офисе стало покомфортней. Реализовано всё на ESP8266, а как — милости просим под кат)

                    Читать дальше →
                  • [ В закладки ] Алгоритмы и структуры данных в ядре Linux, Chromium и не только

                    • Перевод
                    Многие студенты, впервые сталкиваясь с описанием какой-нибудь хитроумной штуки, вроде алгоритма Кнута – Морриса – Пратта или красно-чёрных деревьев, тут же задаются вопросами: «К чему такие сложности? И это, кроме авторов учебников, кому-нибудь нужно?». Лучший способ доказать пользу алгоритмов – это примеры из жизни. Причём, в идеале – конкретные примеры применения широко известных алгоритмов в современных, повсеместно используемых, программных продуктах.



                    Посмотрим, что можно обнаружить в коде ядра Linux, браузера Chromium и ещё в некоторых проектах.
                    Читать дальше →
                    • +140
                    • 79,5k
                    • 15
                  • Perspex — кросплатформенный UI-фреймворк с XAML и биндингами

                      TL;DR: кроссплатформенный клон WPF. От других попыток сделать нечто с XAML-ом выгодно отличается наличием полностью своей системы отрисовки со сменными бакэндами (сейчас поддерживается Direct2D и Cairo). В наличии инспектор, дизайнер (см. видео). Биндинги сделаны на стероидах под названием ReactiveExtensions (старый стиль тоже можно использовать). Умеет работать с Windows/Linux/MacOS, поддержку мобильных платформ планируется добавить в начале следующего года посредством отрисовки через MonoGame.


                      Читать дальше →