Как стать автором
Обновить
35
0
Александр Вронский @shandy

CTO / Architect / IT Consultant

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

Подводные камни Bash

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


В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


Читать дальше →
Всего голосов 143: ↑141 и ↓2+139
Комментарии63

«Правда, чистая правда и статистика» или «15 распределений вероятности на все случаи жизни»

Время на прочтение15 мин
Количество просмотров250K
Статистика приходит к нам на помощь при решении многих задач, например: когда нет возможности построить детерминированную модель, когда слишком много факторов или когда нам необходимо оценить правдоподобие построенной модели с учётом имеющихся данных. Отношение к статистике неоднозначное. Есть мнение, что существует три вида лжи: ложь, наглая ложь и статистика. С другой стороны, многие «пользователи» статистики слишком ей верят, не понимая до конца, как она работает: применяя, например, тест Стьюдента к любым данным без проверки их нормальности. Такая небрежность способна порождать серьёзные ошибки и превращать «поклонников» теста Стьюдента в ненавистников статистики. Попробуем поставить точки над i и разобраться, какие модели случайных величин должны использоваться для описания тех или иных явлений и какая между ними существует генетическая связь.
Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии29

Проект «Око» ч.1, пилотная

Время на прочтение15 мин
Количество просмотров83K
Изначально, моя первая публикация подобного рода «День, когда торренты остановились» была спонтанной, однако позже я столкнулся с публикацией пользователя awaik «Воины виртуальности», и понял, что смогу поделиться и другими своими работами в этом направлении. Данный пост предназначается, в первую очередь, хабу «Читальный зал», но я решил все же использовать хабы «Киберпанк» и «Научная фантастика» как наиболее близкие по смыслу. Заранее извиняюсь перед всеми, кто не хотел бы видеть подобные вещи в своей ленте. Остальным же, надеюсь, процесс чтения доставит удовольствие и я смогу развить свое повествование до по-настоящему серьезных размеров.

Сам текст под катом.

Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии27

UI для Ensemble Workflow на Angular

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


Те, кто знаком с платформой для интеграции и разработки приложений InterSystems Ensemble, знают, что такое подсистема Ensemble Workflow и как она бывает полезна для автоматизации взаимодействия людей. Для тех же, кто не знаком с Ensemble (и/или Workflow), я кратко опишу её возможности (остальные могут пропустить эту часть и узнать, как они могут использовать пользовательский интерфейс Workflow на Angular.js).
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии2

Билл Гейтс за свою жизнь пожертвовал более 36 миллиардов долларов

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

Состояние Билла Гейтса в сентябре 2012 года по данным журнала Forbes оценивалось в 66 миллиардов долларов. Я хотел бы обратить внимание на то, что состояние – это не деньги. Поэтому, когда кто-либо говорит, что состояние Билла Гейтса оценивается в 66 миллиардов долларов, это не значит, что у него есть 66 миллиардов долларов на банковском счету.

Есть и другие способы узнать, сколько денег у него есть. Один из таких способов – это анализ пожертвований на благотворительность.

Под катом приведён неполный список пожертвований, сделанных Биллом Гейтсом.
Читать дальше →
Всего голосов 107: ↑91 и ↓16+75
Комментарии304

О другом подходе к устройству на работу

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

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

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

Статья для соискателей.
Читать дальше →
Всего голосов 328: ↑321 и ↓7+314
Комментарии194

О защите персональных данных в Украине

Время на прочтение6 мин
Количество просмотров12K
Первого января 2011 года в Украине вступил в силу закон №2297-VI “О защите персональных данных”. Многие слышали об этом событии, некоторые знали об открытии регистрации баз ПД в июле этого года, но совсем немногие из тех, кого касается этот закон, поспешили предпринять какие-то конкретные действия. А тем временем с 1-го января 2012 года вступают в силу изменения в административном и уголовном кодексах Украины, определяющие ответственность за несоблюдение соответствующего закона. Далее мы постараемся ответить на самые главные вопросы:
  • кого это касается?
  • что нужно делать?
  • и что будет, если ничего не сделать?
Читать дальше →
Всего голосов 78: ↑72 и ↓6+66
Комментарии104

Самодельный фазовый лазерный дальномер

Время на прочтение9 мин
Количество просмотров291K
image
В статье я расскажу о том, как я делал лазерный дальномер и о принципе его работы. Сразу отмечу, что конструкция представляет собой макет, и ее нельзя использовать для практического применения. Делалась она только для того, чтобы убедится в том, что фазовый дальномер реально собрать самому.
Читать дальше →
Всего голосов 187: ↑187 и ↓0+187
Комментарии72

Десятка лучших консольных команд

Время на прочтение2 мин
Количество просмотров198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше
Всего голосов 382: ↑346 и ↓36+310
Комментарии215

Сходство и различие между Mercurial и Git

Время на прочтение6 мин
Количество просмотров118K
По роду своей деятельности я нередко становлюсь свидетелем «священных войн» между коллегами-программистами на тему, какую же систему контроля версий выбрать для того или иного проекта. Роль системы контроля версий особо остро ощущается в случаях разработки и поддержки проектов с длинной историей. Вариантов инструментов много, но я хочу сконцентрироваться на двух, на мой взгляд, наиболее перспективных: Mercurial и Git. Далее попробуем рассмотреть возможности обеих систем с позиции их внутреннего устройства.
Читать дальше →
Всего голосов 107: ↑98 и ↓9+89
Комментарии425

То, что вам никто не говорил о z-index

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

Проблема z-index в том, что многие просто не понимают, как он работает.
Всё, описанное ниже, есть в спецификации W3C. К сожалению, не все её читают.

Описание проблемы:


Итак, пусть у нас есть HTML код, состоящий из 3 элементов.
Каждый из них внутри себя содержит по одному . А каждый , в свою очередь, имеет свой фон: красный, зеленый и синий, соответственно. Плюс ко всему, каждый позиционирован абсолютно левого верхнего края документа таким образом, что он немного перекрывает собой следующий за ним . Первый имеет z-index
, равный 1, у остальных двух z-index не задан.
Читать дальше →
Всего голосов 112: ↑109 и ↓3+106
Комментарии30

Светодиодная лента в качестве освещения комнаты

Время на прочтение15 мин
Количество просмотров1.3M
Изначально для основного освещения одной из комнат, где шёл капитальный ремонт, планировалась обычная люстра. Но недавно мне на глаза попалась суперяркая светодиодная лента Ultra 5000 со светодиодами smd 5630 торговой марки Arlight. Решение было принято быстро, окончательно и бесповоротно — хочу такую ленту в качестве основного света в комнате.



О реализации светодиодного периметра освещения далее
Всего голосов 420: ↑415 и ↓5+410
Комментарии329

Продуктивное использование PHPStorm

Время на прочтение7 мин
Количество просмотров326K
В процессе использования IDE иногда случайно, иногда специально находятся полезные фишки, сочетания клавиш и прочие заложенные разработчиками приятные штуки, которые никогда не оседают в памяти без регулярного их использования и всячески ускользают при чтении мануалов.

Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?»
Что ж там такое?
Всего голосов 120: ↑117 и ↓3+114
Комментарии124

RabbitMQ tutorial 1 — Hello World

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


RabbitMQ позволяет взаимодействовать различным программам при помощи протокола AMQP. RabbitMQ является отличным решением для построения SOA (сервис-ориентированной архитектуры) и распределением отложенных ресурсоемких задач.

Под катом перевод первого из шести уроков официального сайта. Примеры на python, но его знание вовсе не обязательно. Аналогичные примеру программы можно воспроизвести практически на любом популярном ЯП. [так выглядят комментарии переводчика, т.е. меня]
Читать дальше →
Всего голосов 57: ↑51 и ↓6+45
Комментарии58

Моделирование данных в MongoDB

Время на прочтение5 мин
Количество просмотров60K
imageОдна из самых разрекламированных фич MongoDB — это гибкость. Я сам не раз подчеркивал это в бесчисленных разговорах о MongoDB. Однако, гибкость — это палка о двух концах: большая гибкость подразумевает более широкий выбор решений для моделирования данных. Тем не менее, мне нравится гибкость, которую предоставляет MongoDB, просто нужно иметь ввиду некоторые рекомендации, прежде чем начать разрабатывать модель данных.

В этой статье мы рассмотрим, как смоделировать структуру, содержащую списки рассылок и данные о людях, которые входят в эти списки.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии44

MongoDB: Создание, обновление и удаление документов

Время на прочтение3 мин
Количество просмотров77K
В рамках чтения мной книги “MongoDB: The Definitive Guide” Kristina Chodorow and Michael Dirolf, решил выписывать основные моменты из глав, для лучшего освоения материала. Возможно, кому-то это тоже будет полезно.

Insert



Insert — базовый метод для добавление информации в MongoDB. Для того, чтоб добавить документ в коллекцию делаем вот так:

> db.foo.insert( { “bar” : “baz” } );

В таких ситуациях, когда нужно добавить несколько документов, для более быстрой вставки желательно использовать, так называемые, batch insert’ы (групповая вставка)

> db.foo.insert( { “arr” : [ { a : 1 , b : 1 } , { a : 2 , b : 2 } ] } );

Грубо говоря, просто вставляем массив.
Читать дальше →
Всего голосов 57: ↑38 и ↓19+19
Комментарии22

MongoDB: Запросы

Время на прочтение4 мин
Количество просмотров235K
Хоть и некоторые писали относительно моего предыдущего топика MongoDB: Создание, обновление и удаление документов, что это пересказ офф. документации, я с этим не полностью согласен. Мне показалось, что информация в нём оказалось кому-то полезной, поэтому выкладываю продолжение.

Find — аналог SELECT в MySQL. Используется для выборки документов из MongoDB. Возвращает массив документов в виде коллекции, если документов нет — пустую коллекцию. Пример:

> db.users.find();

Вернёт всех пользователей из коллекции.

> db.users.find( { age: 27 } );

Вернёт всех пользователей, у которых возраст равен 27.
Читать дальше →
Всего голосов 70: ↑48 и ↓22+26
Комментарии38

RabbitMQ tutorial 2 — Очередь задач

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


В продолжение первого урока по изучению азов RabbitMQ публикую перевод второго урока с официального сайта. Все примеры, как и ранее, на python, но по-прежнему их можно реализовать на большинстве популярных ЯП.
Читать дальше →
Всего голосов 31: ↑26 и ↓5+21
Комментарии16

Варианты построения высокодоступных систем в AWS. Преодоление перебоев в работе. Часть 1

Время на прочтение9 мин
Количество просмотров13K
Даже у таких монстров облачной индустрии, как Amazon случаются проблемы с оборудованием. В связи с недавними перебоями в работе US East-1 датацентра, данная статья может быть полезной.

Варианты построения высокодоступных систем в AWS. Преодоление перебоев в работе

Отказоустойчивость является одной из основных характеристик для всех облачных систем. Каждый день множество приложений проектируются и разворачиваются на AWS без учета этой характеристики. Причины данного поведения могут варьироваться от технической неосведомленности в том, как правильно спроектировать отказоустойчивую систему до высокой стоимости создания полноценной высокодоступной системы в рамках сервисов AWS. В данной статье освещается несколько решений, которые помогут преодолеть перебои в работе оборудования провайдеров и создать более подходящее решение в рамках AWS инфраструктуры.
Структура типичного Интернет приложения состоит из следующих уровней: DNS, Load Balancer, веб сервер, сервер приложения, база данных, кэш. Давайте возьмем этот стек и подробно рассмотрим основные моменты, которые необходимо учитывать при построении высокодоступной системы:
  • Построение высокодоступной системы в AWS
  • Высокая доступность на уровне веб сервера / сервера приложения
  • Высокая доступность на уровне балансировки нагрузки / DNS
  • Высокая доступность на уровне базы данных
  • Построение высокодоступной системы между зонами доступности AWS
  • Построение высокодоступной системы между регионами AWS
  • Построение высокодоступной системы между различными облачными и хостинг провайдерами

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

Почему программисты работают по ночам

Время на прочтение3 мин
Количество просмотров108K
Мозг шимпанзе в лондонском музее наукиСогласно поговорке, программисты — это устройства, преобразующие кофеин в код.

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

Цель всего этого — избавиться от отвлекающих факторов. Но можно было бы просто закрыть дверь… Что же такого особенного в ночи?

Я думаю, что всё сводится к трём вещам: расписанию творца, сонному мозгу, и яркому экрану компьютера.

Читать дальше →
Всего голосов 300: ↑270 и ↓30+240
Комментарии287

Информация

В рейтинге
Не участвует
Откуда
Харьковская обл., Украина
Дата рождения
Зарегистрирован
Активность

Специализация

Chief Technology Officer (CTO), Software Architect
Lead
PHP
SQL
PostgreSQL
Docker
High-loaded systems