• Что общего у Эволюционной теории функциональной асимметрии мозга и Software Delivery?

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

    Мозг
    Один из аспектов теории — попытка объяснить асимметрию мозга, полагая, что одно из полушарий является оперативным, а другое консервативным, и делая предположение о том, что функции управляемые оперативным полушарием «моложе», чем функции управляемые консервативным.

    После знакомства с теорией, у меня возникло стойкое ощущение «где-то я это уже видел». И действительно, описываемая модель закрепления функция в головном мозге очень напоминает процессы software delivery.

    Читать дальше →
  • Лайфхак клавиатуры для удобной навигации по тексту

    С первых курсов еще колледжа меня заинтересовала тема человеко-машинных интерфейсов — взаимодействие человека и машины. Не многое, что нас окружает удобно или эргономично, но в силу стандарта имеет большее распространение. Одним из таких устройств я считаю клавиатуру. Нет, я не собираюсь критиковать qwerty-раскладку, подойду к вопросу шире. В частности расположение блока цифровых и позиционных клавиш справа от буквенной части очень неудобно, да и вынесение управляющих клавиш тоже не лучшая мысль.
    Не буду растекаться мыслью по древу, а перейду к сути. Пришлось 1,5 дня вносить много правок в давно написанный код, и постоянный перенос руки с клавиш-стрелок на клавиши-буквы, мягко говоря, надоел. Пришла мысль: было бы удобней, если клавиши управления курсором были на буквенной части клавиатуры. Да, идея не нова, но из тех решений, что есть (в том числе и клавиатурные сочетания Emacs’a), ничего не понравились — не удобно.
    Читать дальше →
  • Некоторые заметки о прохождении интервью при устройстве на работу в Праге

      Кризис потихоньку добрался и до Чехии. Подкрался незаметно и ударил больно. Особенно по аутсорсерам, многие из которых остались без контрактов. Я в том числе. Но безвыходных ситуаций не бывает. Кто ищет тот всегда найдет. Хотя, поиски занимают подчас много времени.

      Хочу поделиться своим опытом поиска работы и прохождения интервью в Праге. Возможно мой опыт понадобится кому-то здесь, возможно кто-то захочет сравнить, как оно здесь и там. Устраивался я на должность Ведущего Разработчика J2EE. Так что все технические термины будут касаться именно Джавы. Итак, поехали.
      Читать дальше →
    • Две раскладки в одном флаконе

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

        Первая — английская, рабочая. Вторая — украинская, родная, основная для общения. Третья — русская, в общем обычно не используемая, разве иногда — погуглить что-нибудь, вот, на Хабре комент или топик написать. При этом третья раскладка висела в списке активных, но при работе и постоянном переключении украинская-английская-украинская постоянно приходилось нажимать лишний раз Alt+Shift или Ctrl+Shift. Кроме того, часто случалось, что начал печатать, вроде как все хорошо, ан нет — раскладка русская, вместо 'і' пошли 'ы', вместо 'є' — 'э', и тому подобное. Мучился я так, мучился, и вот в один прекрасный день решил это дело как-то
        оптимизировать
      • О другом подходе к устройству на работу

          … или почему я никогда не занимался веерной рассылкой резюме, а долго присматривался, затем посылал одно, и меня там брали.

          Пришедшая на почту рассылка новостей принесла мне очередную статью с «ХедХантера», призванную, якобы, помочь соискателям правильнее составить резюме.
          Одна из многих подобных. Несть им числа.
          Там, конечно же, рассказывалось о том, что хорошо, а что плохо писать в разных разделах резюме, какими словами о себе рассказывать можно, а какими нет, в общем — как представить из себя идеально собранную машинку по исполнению скромной, но очень важной для компании роли.

          Этой статьёй хочу выразить протест против устоявшейся практики преподнесения себя соискателями и предложить этому «раболепию по гайдлайнам» какую-то разумную альтернативу.

          Статья для соискателей.
          Читать дальше →
        • А вы тоже ищете зависимости в SQL вручную? Тогда мы идем к вам! SQL Dynamite, поиск по объектам базы

            Привет, уважаемые Хабро-читатели и SQL-писатели. Команда ХостТрекера хочет поделиться полезной утилитой для SQL разработчиков и администраторов.

            Какую задачу решаем?


            Нахождение зависимостей объектов в БД.
            Поиск по строке в метаданных БД (хранимых процедурах, View, пользовательских функциях, определениях таблиц, индексах, ключах)


            Читать дальше →
          • Анализ протокола игрушечного вертолёта на ИК-управлении

              Недавно друг притащил ко мне простенький игрушечный вертолёт:

              image

              Управляется он не по радио, а посредством инфракрасных сигналов. На самом вертолёте стоит обычный ДУ-приёмник, а значит используется несущая частота в 36-40кГц, и не составит труда разобраться в структуре сигналов, которые посылает пульт, чем я и решил заняться.

              Сразу скажу, что вся эта затея изначально не имела никакого смысла, это просто статья о том, как развлекаются айтишники :)
              Читать дальше →
            • Переносим функциональность bash в cmd.exe

                Мне, как и многим из вас, работать с bash и стандартными утилитами Linux гораздо удобнее и приятнее, чем с cmd.exe. Однако, к сожалению, порой обстоятельства складываются так, что операционную систему выбирать не приходится. Например, в моём случае корпоративным стандартом является Windows 7. К счастью есть способ сделать жизнь линуксоида в командной строке Windows комфортнее, о нём и пойдет речь ниже.

                Читать дальше →
              • Фильтр Калмана

                • Tutorial


                В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
                Фильтр Калмана — это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.
                Читать дальше →
              • Учим язык, смотря сериалы: vlc + lua + stardict + wordnet + anki = l'amour

                  Очень уж мне нравится смотреть сериалы, а еще я учу с их помощью языки. И если раньше я прилежно останавливал видео на непонятном месте, перематывал назад, включал субтитры и забивал незнакомые слова в Анки, то сейчас я делаю то же самое. Разве что лень заставила этот процесс автоматизировать, что привело к созданию расширения Say It Again для проигрывателя VLC со следующими особенностями:

                  • Навигация по субтитрам (переход к предыдущей, следующей фразе) — клавиши y, u;
                  • Сохранение слова, его транскрипции и перевода вместе с контекстом (см. скриншот) — клавиша i;
                  • Функция «Еще раз»: переход к предыдущей фразе, показ субтитра и пауза — клавиша backspace;
                  • Подключение любых словарей в формате Stardict (в сети лежат словари из Lingvo x3);
                  • Экспорт в Anki или другую программу, понимающую файлы в формате csv;


                  Say It Again screenshot


                  Зачем все это нужно и как это работает?
                • Загрузка файлов .3DS на Android

                    Данная статья является эдаким приквелом к моему прошлому посту, посвящённому Glow-эффекту. Я обещал рассказать, как загружать файлы .3ds, чтобы отрисовывать их с применением использованных там шейдеров.

                    Некоторую общую информацию о формате файла можно прочитать, например, в википедии или в demo.design 3D programming FAQ, однако это всё теория (причём, написанная не без ошибок), а здесь мы поговорим о практике, причём применительно к Java и Android.

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

                    Чего здесь не будет:
                    • загрузки самих текстур (мне пока не понадобилось, хотя реализуется легко);
                    • загрузки информации о камерах (опять же, легко добавить, но не пригодилось);
                    • использования групп сглаживания для вычисления нормалей (не уверен, что это вообще нужно) (всё-таки будет);
                    • использования сплайнов для анимации.

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

                      abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

                      Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

                      Оглавление:
                      • управление ключами
                      • копирование файлов через ssh
                      • Проброс потоков ввода/вывода
                      • Монтирование удалённой FS через ssh
                      • Удалённое исполнение кода
                      • Алиасы и опции для подключений в .ssh/config
                      • Опции по-умолчанию
                      • Проброс X-сервера
                      • ssh в качестве socks-proxy
                      • Проброс портов — прямой и обратный
                      • Реверс-сокс-прокси
                      • туннелирование L2/L3 трафика
                      • Проброс агента авторизации
                      • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
                      Читать дальше →
                    • Архитектура Android-приложений. Часть II — архитектурные стили и шаблоны

                      • Translation
                      В этой статье мы поговорим об архитектурных шаблонах, используемых в Android-приложениях.

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

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

                        Введение


                        Вообще, я во многих вопросах перфекционист. Если есть — нужно, чтобы было безупречно (иногда это сказывается отрицательно, но сейчас не об этом). Свою аудиоколлекцию я тоже привык держать в чистоте. Но со временем, при пополнении стало накапливаться много мелких неприятностей. Вот некоторые из них:
                        • Разные шаблоны для имен файлов: 4 — Звезда | 04 — Звезда | 04. Звезда
                        • Разные имена исполнителей в тегах: Чиж & Co | Чиж и Ко. | Mylene Farmer | Mylène Farmer
                        • Не указаны исполнители альбома (что приводит к полному бардаку в альбомах-компиляциях)
                        • Не совсем корректная информация об альбомах, состоящих из нескольких дисков
                        • Путаница в годах изданий и переизданий (ремастеринг, и т.д.)
                        Ну и прочие мелочи.
                        Часто у пользователей коллекции составляют несколько тысяч, а иногда — несколько десятков тысяч записей. Так что, перелопачивать все вручную — долго и неэффективно.

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

                        Итак, начнем...
                      • О некоторых приемах атаки Man in the middle

                          Немного Википедии: атака «человек посередине» (англ. Man in the middle, MitM-атака) — термин в криптографии, обозначающий ситуацию, когда атакующий способен читать и видоизменять по своей воле сообщения, которыми обмениваются корреспонденты, причём ни один из последних не может догадаться о его присутствии в канале.
                          В этой статье будет рассмотрен прием пассивной атаки на http-соединение, без модификации проходящей информации. Итак, каким-то способом вы смогли вклиниться физически или удалённо в канал передачи данных, настроили bridge или просто получили root-управление шлюзом. Руткит поставили, базы с исходниками слили, вебшелл залили, в cron часовую бомбу заложили, и что теперь?
                          Читать дальше →
                        • Рендеринг искусственных объектов на фотографии

                          • Translation


                          Мы предоставляем метод для реалистичного добавления искусственных объектов в существующие фотографии, не требуя необходимости доступа к сцене или других дополнительных измерений. С помощью одного изображения и небольшого количества аннотаций, наш метод позволяет создать физическую модель сцены, которая подходит для рендеринга на ней искусственных объектов с рассевающими, зеркальными или даже светящимися поверхностями, с учетом взаимодействия освещения между объектами и сценой.
                          Читать дальше →
                        • Инструменты командной строки для веб-разработчика

                          • Translation
                          Жизнь веб-разработчика омрачена сложностями. Особенно неприятно, когда источник этих сложностей неизвестен. То ли это проблема с отправкой запроса, то ли с ответом, то ли со сторонней библиотекой, то ли внешний API глючит? Существует куча различных прилад, способных упростить нам жизнь. Вот некоторые инструменты командной строки, которые лично я считаю бесценными.
                          Читать дальше →
                        • Как начать работать с GitHub: быстрый старт



                            Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

                            В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

                            В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.
                            Читать дальше →
                            • +148
                            • 1043k
                            • 50
                          • 10 способов улучшить свои навыки программирования

                            • Translation

                            1. Выучить новый язык программирования


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

                            Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

                            Читать дальше →
                            • +215
                            • 74.4k
                            • 96