Как стать автором
Обновить
54
3.4
Сергей Кулик @saboteur_kiev

Configuration engineer

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

Удачная модель ветвления для Git

Время на прочтение10 мин
Количество просмотров983K
Перевод статьи Vincent Driessen: A successful Git branching model

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



В качестве инструмента управления версиями всего исходного кода она использует Git.

Читать дальше →
Всего голосов 180: ↑171 и ↓9+162
Комментарии105

Здравствуйте, я Meklon и я кофеин-зависимый

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


Другие статьи цикла:
Хроники лаборатории: как мы молотый кофе считали софтом для анализа клеточных структур
Компот из кофейных сухофруктов. Знакомимся с каскарой — лучшим другом велосипедиста

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

На Хабре/Гиктаймсе уже не раз обсуждался кофе и все, что с ним связано. Я решил написать пост, посвященный этому напитку и различным эффектам кофеина с медицинской точки зрения. Если хватит времени — возможно это будет цикл статей с экспериментами над людьми, computer vision и прочим непотребством. Увидим. А пока, товарищи кофеиноманы и им сочувствующие, добро пожаловать под кат.
Получить свою порцию кофеина
Всего голосов 97: ↑95 и ↓2+93
Комментарии335

Windows 10 IoT: Эволюция средств разработки

Время на прочтение16 мин
Количество просмотров17K
В последние годы фокус интересов компании Microsoft сместился в сторону облачных технологий, интернета вещей (IoT) и связанных с ними сервисов. При этом, многие устройства, взаимодействующие с облачными сервисами, имеют у себя на борту операционные системы (ОС). Ярким примером может служить Windows 10, выпущенная в 2015 году, которая претендует на роль универсальной системы практически для любых типов устройств.
Подробности
Всего голосов 14: ↑13 и ↓1+12
Комментарии6

C.H.I.P. — 9-долларовый «убийца» Raspberry Pi

Время на прочтение3 мин
Количество просмотров41K
image
На Geektimes'ах уже пролетала информация о том, как 9-долларовый Linux компьютер собрал больше $2 000 000 на кикстартере. Я также поддержал этот проект в момент сбора средств и на днях ко мне прилетел мой экземпляр данного девайса
Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии109

Собираем VirtualBox под Windows

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

 Введение


Как известно большинству пользователей Windows-версии VirtualBox (далее — VB, не путать с Visual Basic), в релизе 4.3.14 разработчики этой программы добавили дополнительный механизм защиты, называемый «hardening» (что можно перевести как «упрочнение»), который привёл к многочисленным проблемам совместимости VB с антивирусами, драйверами крипто-модулей и даже отдельными обновлениями самой Windows, в результате чего виртуальные машины попросту отказываются запускаться. В лучшем случае пользователю приходится ждать около месяца, пока проблемная программа, о которой он сообщит разработчикам, окажется учтена в следующем релизе VB. В худшем случае придётся либо удалять конфликтующую программу (или системное обновление), либо откатывать VB до версии 4.3.12 — последней, в которой не было этой защиты. Многочисленные предложения к разработчикам о добавлении пользовательского списка исключений или опции, отключающей защиту целиком, остаются без внимания. Единственный внятный ответ с их стороны звучит так: «не хотите защиту — компилируйте из исходников сами». Что ж, придётся этим заняться.

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

Я заинтересован
Всего голосов 23: ↑23 и ↓0+23
Комментарии32

Новый интерфейс для получения атрибутов процессов в Linux

Время на прочтение8 мин
Количество просмотров19K
Разрабатывая CRIU, мы поняли, что текущий интерфейс получения информации о процессах не идеален. К тому же, подобная проблема была успешно решена для сокетов. Мы попытались перенести эти наработки на процессы и получили достаточно хорошие результаты, о которых вы узнаете, дочитав эту статью до конца.

Недостатки текущего интерфейса


Прочитав заголовок, возникает вопрос:”A чем же старый интерфейс не угодил”? Многие из вас знают, что сейчас информация о процессах собирается по файловой системе procfs. Здесь каждому процессу соответствует директория, которая содержит несколько десятков файлов.

$ ls /proc/self/ 
attr             cwd      loginuid    numa_maps      schedstat  task
autogroup        environ  map_files   oom_adj        sessionid  timers
auxv             exe      maps        oom_score      setgroups  uid_map
cgroup           fd       mem         oom_score_adj  smaps      wchan
clear_refs       fdinfo   mountinfo   pagemap        stack
cmdline          gid_map  mounts      personality    stat
comm             io       mountstats  projid_map     statm
coredump_filter  latency  net         root           status
cpuset           limits   ns          sched          syscall

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

Знай сложности алгоритмов

Время на прочтение2 мин
Количество просмотров999K
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Всего голосов 312: ↑296 и ↓16+280
Комментарии99

Как правильно внести свою лепту в Open Source проект: простые подсказки

Время на прочтение6 мин
Количество просмотров69K
Open Source проекты с каждым днём набирают всё большие обороты, появляются новые, активно развиваются популярные.
Такие проекты как Bootstrap, Angular.js, Elasticsearch, Symfony Framework, Swift и многие другие привлекают новых разработчиков, их сообщество растёт. Всё это даёт огромный рост проектам, а самим разработчикам интересно поучаствовать в разработке чего-то, чем пользуется весь мир.

Я, как и многие другие программисты, не устоял и также время от времени участвую в разработке Open Source проектов, в основном на PHP. Но когда я начинал, я столкнулся с проблемой — я не знал, как правильно организовать процесс «контрибьютинга», с чего начать, как сделать так, чтобы мой Pull Request рассмотрели и т.д.

Всем начинающим «контрибьютерам», которые столкнулись с похожим проблемами, добро пожаловать под кат.


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

Добавление и настройка базы 1С на сервер

Время на прочтение4 мин
Количество просмотров47K
Доброго времени суток, уважаемые.
Данная заметка является подсказкой мне, и остальным.
Данная информация пригодиться новичкам для создания и оптимизации базы 1С на сервере SQL
Читать дальше →
Всего голосов 13: ↑8 и ↓5+3
Комментарии50

Настройка TeamCity для новичков

Время на прочтение9 мин
Количество просмотров159K
Эта статья в первую очередь пригодится тем, кто использует тот же стек технологий, что и наша команда, а именно: ASP.NET, C#, NUnit, Selenium 2, git, MSBuild. Будут рассмотрены такие задачи, как интеграция с git, сборка C#-проектов, NUnit-тесты (как модульные, так и тесты UI), а также деплой на сервер. Впрочем, наверняка найдётся интересное и для других пользователей, кроме разве что съевших на этом вопросе собаку. Но они опять же смогут обратить внимание на ошибки в статье или что-то посоветовать: например, как оптимизировать фазу деплоя.
Читать дальше →
Всего голосов 39: ↑35 и ↓4+31
Комментарии12

GIF изнутри

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

Вам когда-нибудь было интересно, как устроены gif-ки? В данной статье попробуем разобраться с внутренним строением GIF-формата и методом сжатия LZW.

Структура GIF


Файл в формате GIF состоит из фиксированной области в начале файла, за которой располагается переменное число блоков, и заканчивается файл завершителем изображения.


Читать дальше →
Всего голосов 80: ↑74 и ↓6+68
Комментарии17

Еще один разбор пузырьковой сортировки

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

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

Зачем в наши дни нужна сортировка пузырьком?
Она ведь практически самая медленная.
У нее самый высокий (квадратичный) алгоритм сложности.

Но! Она самая простая в реализации и весьма наглядная, и часто используется в образовательных целях или на собеседованиях джуниоров/интернов.
Кроме того, с небольшими модификациями, можно достичь интересных результатов.
Новичков в программировании и заинтересовавшихся — прошу под кат.

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

Простые шаблоны писем в MS Outlook VBA

Время на прочтение3 мин
Количество просмотров62K
Небольшой рецепт на MS VB для сисадминов, которые хотят упростить жизнь сотрудникам.

Задача: девочка на reception периодически отправляет официальные анонсы всей компании. При этом дизайн, нарисованный дизайнером есть, а процесс отправки находится в состоянии вплоть до «отыскать старое письмо в отправленных, нажать переслать всем, отредактировать текст и тему письма, отправить».

Есть два способа:
Шаблоны — подойдет для простых вариантов, когда все поля статичны
VBA — под катом рассмотрим пример создания простейшего шаблона на встроенном в Outlook Visual Basic.

Есть еще конечно и нормальный способ — взять программиста, который напишет автоматическую рассылку писем на любом удобном ему движке, получить данные о сотрудниках из Exchange или LDAP и все будет ок, но для этого надо бюджет. Кому интересно костыль — под кат.
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии2

«Умная» винтовка победила профессионального снайпера

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


Прошло несколько месяцев после анонса соревнования между профессиональным снайпером, вооруженным обычной винтовкой, и новичком, с небольшим опытом подготовки, вооруженным «умной» Linux-винтовкой. Результаты соревнования появились на официальном сайте производителя винтовки TrackingPoint.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии94

Алгоритм сортировки Timsort

Время на прочтение6 мин
Количество просмотров152K
Timsort, в отличии от всяких там «пузырьков» и «вставок», штука относительно новая — изобретен был в 2002 году Тимом Петерсом (в честь него и назван). С тех пор он уже стал стандартным алгоритмом сортировки в Python, OpenJDK 7 и Android JDK 1.5. А чтобы понять почему — достаточно взглянуть на вот эту табличку из Википедии.



Среди, на первый взгляд, огромного выбора в таблице есть всего 7 адекватных алгоритмов (со сложностью O(n logn) в среднем и худшем случае), среди которых только 2 могут похвастаться стабильностью и сложностью O(n) в лучшем случае. Один из этих двух — это давно и хорошо всем известная «Сортировка с помощью двоичного дерева». А вот второй как-раз таки Timsort.

Алгоритм построен на той идее, что в реальном мире сортируемый массив данных часто содержат в себе упорядоченные (не важно, по возрастанию или по убыванию) подмассивы. Это и вправду часто так. На таких данных Timsort рвёт в клочья все остальные алгоритмы.
Читать дальше →
Всего голосов 292: ↑285 и ↓7+278
Комментарии63

Копирование сознания

Время на прочтение6 мин
Количество просмотров16K
Хочу я подумать о такой гипотетической возможности недалёкого / далёкого (кому что больше нравится) будущего, как загрузка сознания.

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

Сразу оговорюсь, что я не являюсь специалистом какой–либо области связанной с этим вопросом. Я не нейробиолог, и не исследователь искусственного интеллекта, и даже не сумасшедший экспериментатор с подпольной лабораторией. Я простой инженер информационных систем, который с переменным успехом крутится в IT и около–IT сфере. Поэтому все мои размышления могут быть ошибочными.
Читать дальше →
Всего голосов 21: ↑11 и ↓10+1
Комментарии281

Apache Maven — основы

Время на прочтение6 мин
Количество просмотров543K
После публикации топика о Maven в комментариях возникли вопросы о том, как начать с ним работать, с чего начать, как составлять файлы pom.xml, откуда брать плагины и т.п. Данный топик будет своего рода getting started или f.a.q.
Поехали!
Всего голосов 45: ↑41 и ↓4+37
Комментарии29

Сертификация RHCSA: опыт подготовки и сдачи

Время на прочтение5 мин
Количество просмотров82K
Недавно я прошел курс RedHat Rapid Track Course with Exam (RH200) и успешно сдал сертификацию RedHat Certified System Administrator (RHCSA). Это начальная сертификация в линейке сертификаций RedHat, и я решил, что рассказ о подготовке и сдаче этого экзамена будет полезен Хабрасообществу (подробных рассказов об этом на Хабре я не нашел). Сразу оговорюсь, что перед началом экзамена подписываешь документ, который запрещает разглашать информацию о том, что было на экзамене, однако не запрещено рассказывать, что было на официальном курсе подготовки к этому экзамену, что я и сделаю.

Оставлю за рамками вопрос, зачем получать эту сертификацию, лично я сдавал потому что
  • мой работодатель предоставил мне такую возможность,
  • при мониторинге вакансий по своей специальности я часто встречаю пометку, что официальная сертификация будет преимуществом,
  • ну и для собственного ЧСВ конечно.

Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии15

Обзор частых вопросов по тестированию ПО на собеседованиях и ответы на них

Время на прочтение21 мин
Количество просмотров651K
Главная цель данной статьи – помочь преодолеть страх, который возникает у тестировщиков ПО (как начинающих, так и опытных) к предстоящему интервью в связи с незнанием грядущего.

Второстепенная цель – собрать воедино основные вопросы, которые, вероятней всего, будут заданы на собеседовании. Как у начинающего тестировщика, у меня уже скопился определенный опыт подготовки к собеседованиям на данную должность, и я могу заметить, что даже специализированные QA форумы не справляются с этой целью, а может и не ставят ее перед собой вообще.

Перечень вопросов разумеется не окончательный и не претендует на образцовость, а выступает лишь своеобразным ориентиром при подготовке специалистов с тестирования ПО.
Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии24

Тестировщик в ответе за всё

Время на прочтение16 мин
Количество просмотров25K
Недавно я участвовал в профориентационном лагере для школьников. Меня попросили рассказать про Хабр и про то, какие есть ИТ-специальности и что будет в будущем.

Как школьнику рассказать, кто такой тестировщик и зачем нужен процесс тестирования?

Я как-то выкрутился, но чувство незавершенности осталось и по сей день.
На Хабре шикарно умеют объяснять почему трава зеленая или почему программист это супергерой. Если бы вы объясняли 10-класснику, кто такой тестировщик, как бы вы описали этот процесс?

(Есть замечательная книга Сеймура Пейперта «Переворот в сознании: Дети, компьютеры и плодотворные идеи», где рассказывается о том, как сформировать в мышлении детей хорошие стратегии отладки, но эта книга достойна отдельной статьи ->)

«Пугать надо» — посоветовали мне бывалые. Ну что ж, сделал подбоку самых сочных программистских ошибок.
Всего голосов 20: ↑17 и ↓3+14
Комментарии7

Информация

В рейтинге
927-й
Откуда
Украина
Зарегистрирован
Активность