Pull to refresh
0
0

devops

Send message

ORM или как забыть о проектировании БД

Reading time5 min
Views179K

От автора


Прошел год как я сменил профессию сетевого администратора на профессию программиста. За этот год было много необычного и странного. Удалось плотно поработать с sqlalchemy, взглянуть на ponyorm, поиграться с hibernate и nhibernate, освежить models из django… и знаете что? Весь код который я видел ассоциировался у меня с последствиями деятельности обезьяны имеющей запас гранат… оказалось что пускать программистов к бд — не самая лучшая затея. Под катом много боли и ненависти, но вдруг кому-то пригодится.
Читать дальше →
Total votes 57: ↑23 and ↓34-11
Comments22

Cloudify и его использование в OpenStack. Первый шаг

Reading time9 min
Views6.3K

Общее


В этой статье я хочу рассказать о системе оркестрации и автоматизации Cloudify и привести пример установки её внутрь облака OpenStack, текущей версии IceHouse и последующего разворота тестового приложения.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments0

Срок переноса серверов с персональными данными в Россию сокращен

Reading time1 min
Views13K
На днях незамеченной прошла новость о сокращении срока переноса серверов с персональными данными граждан РФ в Россию. Если раньше никто не хотел предпринимать активных действий ранее чем через год-полтора, то сейчас, возможно, придется поспешить. Госдума предлагает перенести всю информацию до января 2015 года. Объясняет наше государство данное решение о сокращении срока «соображениями национальной безопасности».

Делюсь этой новостью с сообществом, чтобы ни у кого не возникло сюрпризов в новом году.

Ссылка на изначальный закон о котором идет речь.
Total votes 62: ↑57 and ↓5+52
Comments58

CVE-2014-6271, CVE-2014-7169: удалённое выполнение кода в Bash

Reading time1 min
Views56K
image
Сегодня были опубликованы детали об уязвимости в Bash.
Вкратце, Bash позволяет экспортировать функции как переменные окружения:

$ myfunc() { echo "Hello"; }
$ export -f myfunc
$ env | grep -A1 ^myfunc
myfunc=() {  echo "Hello"
}


Уязвимость состоит в том, что если после тела функции (после последнего символа "}") добавить ещё какую-нибудь команду, и экспортировать её — она будет выполнена при вызове дочернего интерпретатора:
Читать дальше →
Total votes 78: ↑77 and ↓1+76
Comments64

Обзор наиболее интересных материалов по высокой производительности (15 — 21 сентября 2014)

Reading time4 min
Views13K

Представляю вашему вниманию первый выпуск обзора наиболее интересных материалов по высокой производительности. Когда я готовил очередной выпуск обзора наиболее интересных материалов по анализу данных и машинному обучению, то понял, что выделяется вполне себе самодостаточная тематика собранных материалов. Надеюсь, что данный тип обзоров будет тоже полезен и интересен. Буду стараться расширять список ресурсов за которыми слежу при подготовке данных обзоров.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments6

iPhone 6: разбираем в Москве, оцениваем ремонтопригодность и сравниваем с iPhone 5s

Reading time4 min
Views84K
Наши коллеги из iFixit уже разобрали оба новых iPhone. Опередить их у нас не получилось бы при всем желании. Но в итоге iPhone 6 попал нам в руки в первый же день продаж и тут же был разобран до винтика. Работая над этим постом, мы старались не повторять уже сказанное iFixit и не просто сосредоточиться на том, из чего аппарат состоит, а проанализировать его внутренние отличия от предшественника и оценить (в прямом смысле) ремонтопригодность в наших условиях. Также мы засняли процесс разбора на камеру, и вы сможете своими глазами увидеть, как квалифицированный мастер с первого раза разбирает гаджет.



Довольно неожиданным стало, что iPhone 6 де-факто является влагостойким, а компания так высоко оценивает собственные инженерные усилия, что украсила логотипом вообще все компоненты смартфона.
Читать дальше →
Total votes 118: ↑92 and ↓26+66
Comments48

Mozilla наметила план для выпуска Rust 1.0

Reading time3 min
Views29K
Организация Mozilla вышла на финишную прямую в подготовке языка программирования Rust 1.0. Разработчики говорят, что это торжественное событие состоится примерно в конце года. После бета-тестирования выйдет финальный релиз. С этого момента перспективный язык программирования можно использовать в боевых условиях: код гарантированно будет компилироваться в следующих версиях.

Дело не только в компиляции. Mozilla считает, что дизайн Rust наконец-то приобретает желаемую минималистичную форму. К примеру, раньше было несколько типов указателей, сейчас остались только &T, и &mut T. Упрощение затронуло и другие аспекты, в том числе замыкания, которые вызывали много споров.

Rust сочетает в себе эффективность С и С++ с безопасностью Java.

Весь дизайн построен на концепции «владения и заимствования» (ownership and borrowing). Изначально предполагалось использовать механизм владения для быстрого и безопасного переноса данных между процессами. Но потом пришло понимание, что этот же механизм можно использовать для передачи значительной части функций в библиотеки. В итоге, Rust получился даже более низкоуровневым, чем разработчики предполагали, и без ущерба для безопасности. На минимальной конфигурации Rust можно даже написать ядро операционной системы (примеры: 1, 2, 3)!
Читать дальше →
Total votes 76: ↑71 and ↓5+66
Comments70

Google Public DNS не ресолвит некоторые домены

Reading time3 min
Views83K
image

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

Через некоторое время, мне в руки попал лог отправки письма в наш домен с другого сервера, и тут меня как обухом по голове ударили. Оказывается, их DNS сообщает почтовому серверу, что имя домена не опознано.
Читать дальше →
Total votes 107: ↑74 and ↓33+41
Comments130

Что такое маркетинг, и почему эти люди пытаются обмануть вас в большинстве случаев — ликбез

Reading time7 min
Views139K


Зацепил меня один кусок дискуссии про маркетинг сегодня на Хабре. Что это, как это, как оно для IT. Всё там хорошо кроме одного — нет понимания, что маркетинг — это не специальный шаман в проекте, который что-то там крутит, а фиговина, в которой должен живо принимать участие каждый. В IT, не в IT — неважно. Поэтому расскажу, почему.

Представьте себе небольшую парикмахерскую на первом этаже жилого дома. Наверняка у вас есть такие рядом. У неё очень ограничен круг потенциальных клиентов – это жители ближайших домов. Маркетинг – это сделать так, чтобы большинство из них стриглись именно там. Каждый косяк – это потерянный клиент (а новому взяться негде, помните?). Каждый успех – это клиент на 5-6 лет минимум, то есть не одна стрижка, а сразу много.

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

Так вот, маркетинг – это сделать так, чтобы продукт и клиент сошлись. В моём понимании – пройти всю цепочку от разработки и производства продукта до его продажи и использования в течение нескольких лет. Найти все места этой цепочки, где можно сделать лучше – и сделать это. Поработать с людьми внутри компании, чтобы они понимали, зачем всё это и почему.
Читать дальше →
Total votes 199: ↑184 and ↓15+169
Comments88

Система мониторинга активного сетевого оборудования федеральной сети

Reading time8 min
Views60K


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

Если вас интересует тема мониторинга сети или есть желание сравнить мою работу с имеющейся у вас, приглашаю под кат.
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments32

ACL: в поисках идеального решения

Reading time9 min
Views31K
Новый проект. В очередной раз пришлось решать проблему с разграничением прав. В очередной раз пришлось изобретать велосипед. Вот я и подумал, а не проще ли разобраться с этой проблемой раз и навсегда. Хочу решить задачу «на бумаге», чтобы эти принципы можно было использовать независимо от технологии.
Поехали
Total votes 54: ↑48 and ↓6+42
Comments20

Увеличение производительности дисковой подсистемы в следующем выпуске гипервизора XenServer

Reading time8 min
Views11K

Перевод. Оригинальная статья доступна в блоге Xen.
Автор — Felipe Franciosi.

Последние тестовые сборки XenServer Creedence Alpha отличаются повышенной производительностью дисковой подсистемы по сравнению с XenServer 6.2 (подробности в блоге Маркуса Гранадо (Marcus Granado) – Performance Improvements in Creedence). В основном, улучшения связаны с внедрением новой архитектуры дисковой подсистемы — tapdisk3. Мы опишем эту технологию организации виртуального хранилища, а также приведем и объясним результаты экспериментов, в которых достигается производительность примерно 10Gb/s одним хосте с подключенным кластерным хранилищем.

Несколько месяцев назад я писал о проекте Karcygwins, который включал в себя серию экспериментов и исследований, направленных на изучение особенностей работы дискового ввода-вывода. Мы сосредоточились на случае, когда нагрузку генерирует одна ВМ с одним виртуальным диском. В частности, нас интересовало понимание природы дополнительных затрат (overhead) на виртуализацию, особенно на устройствах с малыми задержками, например — современных SSD. Сравнивая разные способы виртуализации дискового ввода-вывода, доступные пользователю (то есть blktap и blktap2), мы сумели объяснить, где и почему возникают дополнительные затраты, а также как их значительно уменьшить. Подробнее о проекте Karcygwins можно прочитать по ссылке.
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments0

REST интерфейс генератор фреймворка vibe.d

Reading time9 min
Views4.2K
В этой статье я поэтапно покажу как пользоваться rest interface генератором встроенным во фреймворк vibe.d. Если вы интересуетесь D и его особенностями, то данная статья, надеюсь, немного прояснит новичкам как на практике использовать D и познать всю его мощь.

Для этого нами понадобится:
  1. Настроить eclipse для работы с vibe.d.новичкам
  2. Запустить «Hello World» на vibe.d. новичкам
  3. Создать клиента для api OpenWeatherMap.
  4. Создать дублирующий сервер на основе api OpenWeatherMap

В документации к vibe.d имеется пример пользования генератором. Однако данный пример, на мой взгляд, слишком прост и не раскрывает механизма работы генератора.
Вперед
Total votes 6: ↑6 and ↓0+6
Comments2

TOX — Защищенный мессенджер добрался до Альфа версии (Для всех платформ)

Reading time1 min
Views91K


Недавно состоялось очень важное событие в сфере защищенных коммуникаций и мессенджеров — проект Tox.
Он поставил перед собой задачу заменить Skype и сейчас он добрался до Альфа версии.

Хочу обратить ваше внимание, альфа версия означает, что более 90% функций работают на всех OS одновременно:
— Аудио вызовы
— Видео вызовы
— Передача файлов
— TCP Relay
— DNS Name discovery
— Групповые чаты
Читать дальше →
Total votes 88: ↑83 and ↓5+78
Comments133

Учебник по языку программирования D. Часть 1

Reading time10 min
Views41K
Данный пост начинает серию переводов D Programming Language Tutorial, дабы компенсировать информационный вакуум об этом системном языке. Каждая часть будет содержать константое количество материала из книги, так как оригинальные главы имеют широкий разброс в размере: от пары абзацев до нескольких печатных страниц. Все примеры кода проверяются на текущем релизе компилятора dmd 2.065, и если возникают проблемы с технической частью, прошу отписываться в комментариях.

Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments54

Ускоряем процесс разработки с помощью Vagrant

Reading time10 min
Views67K
image Как часто вам приходится разрабатывать и запускать приложение локально и упорно искать проблемы, потому что на продакшене приложение ведёт себя не совсем так, как вы этого хотели? А как часто вам присылают тикеты для решения проблемы в приложении, хотя на самом деле проблема именно в несовместимости версий разных приложений? А как долго вам приходится ждать виртуалку, когда для запуска новой версии приложения недостаточно ресурсов локальной машины? Для нас эти вопросы были довольно больными, и мы сломали тысячи копий в спорах, стараясь решить их. Практика показывает, что одним из вариантов для решения этих проблем может стать Vagrant.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments10

Создание API: в рамку и на стену

Reading time5 min
Views57K
Каждый программист — проектировщик API. Хорошие программы состоят из модулей, а протокол взаимодействия модулей — это тоже API. Хорошие модули используются повторно.

API — это большая сила и большая ответственность. У хорошего API будут благодарные пользователи; поддержка плохого превратится в кошмар.

Публичный API — не воробей, опубликуешь — не уберешь. Есть только одна попытка сделать все правильно, поэтому постарайся.

API должно быть легко использовать, но сложно использовать неправильно. Сделать что-то простое с помощью такого API должно быть просто; сложное — возможно; сделать что-то неправильно должно быть невозможно, или, по крайней мере, трудно.

API должен описывать сам себя. Изучение кода на таком API не вызывает желания читать комментарии. Вообще, комментарии редко нужны.

Перед разработкой API собери требования с долей здорового скептицизма. Осознай общие задачи и реши их.

Оформляй требования как шаблоны использования API. Сверяйся с ними в процессе проектирования.
Читать дальше →
Total votes 154: ↑143 and ↓11+132
Comments97

VIM как IDE для разработки на Python

Reading time10 min
Views160K
image
Данная статья будет посвящена настройке vim, в которой я поделюсь своим «скромным» пониманием того, каким должен быть текстовый редактор, чтобы в нем было удобно/приятно/легко (нужное подчеркнуть) писать код также, как это сейчас возможно во всевозможных IDE типа PyCharm, SublimeText и т.п.
Весь процесс постараюсь описать как можно более подробно, чтобы вопросов по мере чтения для начинающих осваивать vim возникало как можно меньше.
Читать дальше →
Total votes 70: ↑58 and ↓12+46
Comments47

И объял меня systemd до глубин дистрибутива моего

Reading time1 min
Views36K
Оно случилось: Debian начал переход на systemd.

Для системных администраторов это выглядит вот так:
localhost# apt-get update;apt-get upgrade
...
The following packages have unmet dependencies:
 systemd-sysv : Breaks: sysvinit-core but 2.88dsf-53 is installed.
The following actions will resolve these dependencies:

     Remove the following packages:
1)     sysvinit-core               

Accept this solution? [Y/n/q/?]


Что это означает? Это означает прохождение рубежа в постепенной миграции на systemd, решение о котором было принято чуть ранее, замена sysv-init на systemd. Пакет sysvinit-core содержит в себе /sbin/init, и его заменяют на другой /sbin/init из состава systemd.

Кто-то видит в происходящем шаг в светлое будущее, где все будут счастливы и почти не надо будет умирать, кто-то видит акт трагичного и смиренного принятия роковой судьбы, тёмной длани Рэдхэта, простирающейся на все дистрибутивы вокруг и устраняющий Фатальный Недостаток других систем запуска, кто-то просто со стоическим отчаянием ждёт ещё больше и больше Поттеринга (Л. Поттеринг — автор systemd, он же автор pulseaudio, он же автор неповторимого стиля изложения новых идей, при которых для старого образа жизни и мышления не остаётся места).

Читать дальше →
Total votes 60: ↑49 and ↓11+38
Comments176

Noisli: онлайн-генератор фоновых шумов, помогающих сконцентрироваться

Reading time1 min
Views182K


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

Сайт Noisli содержит коллекцию фоновых шумов на любой вкус и возможность смешивать их в произвольной пропорции. Здесь есть и звуки природы — шум дождя, плеск воды, пение птиц, шуршание листьев, и звуки техногенного характера — стук колёс поезда, звук работающего вентилятора, и звуки многолюдного кафе. Есть и искусственные белый, розовый и коричневый шум. Коллекция звуков постоянно пополняется.
Читать дальше →
Total votes 108: ↑103 and ↓5+98
Comments64

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity