Search
Write a publication
Pull to refresh
0
0
Алексей Мирошниченко @skl1f

User

Send message

Инструменты разработчика или Почему вы не используете X? Часть 1

Reading time7 min
Views56K


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

Это не правильно!

Сейчас в распоряжении программиста, пишет он на Python, C++, Haskell или Ruby, есть огромное количество различных инструментов, которые он может использовать в повседневной разработке.

Компиляторы, интерпретаторы, отладчики, профилировщики, генераторы документации, системы контроля версий, текстовые редакторы, автоматизаторы сборки, статические анализаторы, эмуляторы и виртуальные машины — все это в нашем распоряжении!

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

Если вам интересно, как улучшить свою продуктивность, начать писать программы лучше, да и просто почитать что-то интересное — добро пожаловать под кат!
Читать дальше →

Флэш-память для загрузки FreeNAS и прочих embedded OS

Reading time16 min
Views119K

Аннотация


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

Еще один NAS своими руками, часть 2: хорошие воспоминания*


*Рекламный слоган одного известного производителя памяти звучит «Good memories start here».

Практически все специалисты рекомендуют при выборе загрузочной флэшки не экономить и не использовать популярный бренд noname. Несмотря на корневую файловую систему FreeNAS версии 9 в режиме read-only, потребительские USB-флэшки компактного дизайна за полгода отказывали дважды, в обоих случаях примерно спустя пару месяцев эксплуатации. Причем оба использованных бренда, по мнению некоторых опрошенных представителей отрасли, вполне адекватные и уважаемые, в поставке откровенного брака незамеченные.


На фото: два вполне адекватных представителя крохотных флэшек на 8Гб и 16Гб

В чем же дело? Бесконечен ли ресурс чтения флэш-памяти? Попробуем разобраться.
Читать дальше

OrientDB — простой пример работы с графами для начинающих

Reading time3 min
Views33K
OrientDB — взгляд человека, который привык работать с реляционными базами данных.
Напомню, что OrientDB — графовая, документно-ориентированная база данных, реализованная на Java.

Решил написать статью, для новичков, т.к в начале сложнее всего, а на рус. вводых статей с доходчивыми примерами практически нет.
Читать дальше →

Снимаемся с ручника: разработка «за стеклом», нанокраудфандинг и новости

Reading time7 min
Views12K
image
Картинка для привлечения внимания

Пути ускорения


Наконец изготовился тираж наших долгожданных вторых этажей. На выходных начинаем рассылать их всем кто пожелал их в качестве подарка, а остаток пустим в продажу. О них подробности в конце статьи, а сейчас о главном.
Лишний раз напомнил нам наш тираж о том, что все движется у нас очень медленно. Надо что-то менять. С ручника сниматься, так сказать.
Анализ показал, что все делать своими силами нереально — выход в привлечении дополнительных людей (на этап пока идет процесс перехода команды в проект на полное время). Ну и в рамках этого подхода решили мы провести смелый эксперимент.
Сначала хотел рассказать о первой части нашего эксперимента — дело успешно завершилось буквально вчера.
Читать дальше →

COOLRF: правильный выбор розеток и выключателей умного дома

Reading time4 min
Views143K


Какими качествами должны обладать розетки и выключатели умного дома? Они должны быть недорогими, симпатичными внешне, иметь минимальные размеры «в глубину» и уметь работать в «кнопочном» режиме (подобно стандартной кнопке звонка). Найти один такой выключатель в серии какого-нибудь производителя — задача не из легких. Найти серию таких выключателей — задача из области фантастики. Но и фантастика иногда случается. Сегодня мы познакомим вас с розетками и выключателями LK60, которые прекрасно подойдут для инсталляции встраиваемых модулей COOLRF. Под катом довольно много фотографий (трафик!).
Читать дальше →

Возняк: Apple нужно сделать смартфон на Android

Reading time2 min
Views46K
На конференции Apps World North America в Сан-Франциско Стив Возняк дал изданию WIRED развернутое интервью, в котором коснулся многих тем – начиная от любимого цвета iPhone 5s (у него их три) и заканчивая вымышленной операционной системой в фильме «Она». Но самым интересным комментарием стало его мнение, что Apple следовало бы выпустить смартфон на Android.

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

SyncNet: децентрализованный peer-to-peer браузер на основе BitTorrent Sync

Reading time2 min
Views29K

Децентрализованная стая скворцов :)

Анонимность в Сети всегда была важным моментом для многих из нас, а после скандала с АНБ это вообще едва ли не проблема №1 для пользователей Сети. Сейчас массово стали появляться анонимные сети, не менее анонимные peer-to-peer сервисы, а теперь появился и децентрализованный браузер, основанный на BitTorrent Sync. Идея, лежащая в основе этого браузера, SyncNet, чем-то похожа на идею, реализованную в TOR.

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

Репликация данных из MySQL в MongoDB

Reading time7 min
Views17K

Бывают случаи, когда нужно менять архитектуру системы на ходу. Возможно вы нашли узкое место в своем проекте или решили, что при текущем темпе роста в скором времени могут возникнуть сложности с масштабированием или отказоустойчивостью. Как раз для таких случаев существует Tungsten Replicator.
Tungsten Replicator — это бесплатное с открытым исходным кодом, приложение написанное на Java, расширяющее функционал репликации СУБД MySQL. Возможности Tungsten широки, это и мульти-мастер репликация, параллельная репликация, гетерогенная репликация данных между MySQL и Oracle, PostgreSQL, MongoDB. В данной статье будет рассматриваться гетерогенная репликация мастера MySQL с подчиненным сервером MongoDB, в качестве ОС будет выступать CentOS 6.5.
Читать дальше →

Мой удобный дом

Reading time14 min
Views309K
Относительно недавно здесь был текст про домашнюю автоматику, а в комментариях один товарищ высказал идею, о которой я тоже думаю очень-очень давно. Суть в том, что автоматика должна работать так, чтобы этого, по возможности, вообще не было заметно.

То есть, умный дом — это дом, который может все. А удобный дом — это дом, который все, что может, делает сам.

Давайте сначала я просто похвастаюсь тем, что умеет мой дом сейчас, а вы решите, имеет ли смысл читать про мой местами горький (а местами очень даже ничего) опыт дальше, ок?
Читать дальше →

Chef за 21 день. Часть третья. Chef и AWS

Reading time13 min
Views16K
Здравствуй, хабраюзер. Вот и подоспела третья часть моей статьи, которая подытожит цикл (часть 1 и часть 2) статей для начинающих. Эта часть будет посвящена конкретному примеру применения Chef в облаке Amazon. Как я уже упоминал – это достаточно популярный сценарий. Для простоты понимания, будет рассмотрен случай с двумя ec2-instance (виртуальные сервера Amazon), один из которых будет выполнять роль Chef-сервера, а второй – узла.

AWS и Chef


Сразу же уточню, что запускать instance мы будем используя AWS CloudFormation. Можно было бы, конечно, запустить и управлять ними вручную, но какой смысл в такой автоматизации?
Читать дальше →

Обзор выделенных серверов Kimsufi и SoYouStart

Reading time3 min
Views9.7K
Год назад вышла статья, которая подвигла меня приобрести сервер в Kimsufi – это подразделение крупного французского хостера OVH, специализирующееся на дешёвых серверах, зачастую на старом железе (есть процессоры ’08-09-х годов). Сервер оказался неплохим, недорого стоил, и вообще мне всё понравилось. Примерно в то же время на хабре было несколько статей про Proxmox, и именно его я туда и поставил (благо что Proxmox был в стандартном выборе хостера при установке), чем весьма доволен. Но сегодняшняя статья не про это.

После нескольких месяцев использования заказанного сервера, я порекомендовал Kimsufi своему другу, и с удивлением обнаружил, что, по обновлённому соглашению, пользоваться серверами могут только граждане Евросоюза.

И вот, с нового года, OVH запустил новый сайт для продаж дешёвых выделенных серверов – SoYouStart.com, а также снова открыл возможность всем регистрироваться на Kimsufi.com, да к тому же, последний стал доступен на русском языке!

Под катом – обзор новых предложений серверов от OVH –новый SoYouStart и обновлённый Kimsufi – выделенные серверы от 8 евро в месяц.
Читать дальше →

Прозрачное шифрование файлов на локальном компьютере при помощи CyberSafe Files Encryption

Reading time5 min
Views29K
В новую версию программы CyberSafe нами была добавлена функция “прозрачного шифрования” файлов. В этой статье я расскажу о том, как работает эта функция, о ее основных возможностях, а также о преимуществах перед EFS — стандартной системой шифрования данных Windows.

Как работает “прозрачное шифрование”


Функции прозрачного шифрования в CyberSafe выполняет специальный драйвер файловой системы, осуществляющий дешифрование файлов при обращении к ним определенных приложений и их шифрование после завершения работы с файлами. Также драйвером шифруются все новые файлы, добавляемые в защищенную папку.

Процесс шифрования происходит по следующей схеме:


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

PyQt. Управляем памятью, собираем мусор

Reading time6 min
Views20K
image
Давным давно был язык С. И были в нем 2 функции управляющие памятью — malloc и free. Но это было слишком сложно.
Посмотрел на это Бьёрн Страуструп и решил что нужно сделать все проще. И изобрел С++. В дополнение к malloc/free там появились new/delete, деструкторы, RAII, auto и shared указатели.
Посмотрел на это Гвидо ван Россум, и решил, что С++ тоже не достаточно прост. Он решил идти другим путем и придумал Python, в котором даже malloc и free нет.
А тем временем норвежские троли создали на С++ GUI-библиотеку Qt, которая упрощает управление памятью для своих объектов за счет того, что сама их удаляет, когда посчитает нужным.
Phil Thompson расстроился, что отличной библиотеки Qt нету для замечательного языка Python. И решил их объединить проектом PyQt. Однако, как оказалось, если скрестить разные парадигмы управления памятью, обязательно вылезут побочные эффекты. Давайте посмотрим какие…
Читать дальше →

Python на колёсах

Reading time7 min
Views125K
Инфраструктура системы пакетов для Python долго подвергалась критике как от разработчиков, так и от системных администраторов. Долгое время даже само комьюнити не могло прийти к соглашению, какие именно инструменты использовать в каждом конкретном случае. Уже существуют distutils, setuptools, distribute, distutils2 в качестве базовых механизмов распространения и virtualenv, buildout, easy_install и pip в качестве высокоуровневых инструментов управления всем этим беспорядком.

До setuptools основным форматом распространения были исходные файлы или некоторые бинарные MSI-дистрибутивы для Windows. Под Linux были изначально сломанный bdist_dumb и bdist_rpm, который работал только на системах, основанных на Red Hat. Но даже bdist_rpm работал недостаточно хорошо для того, чтобы люди начали его использовать.

Несколько лет назад PJE попытался исправить эту проблему, предоставив смесь из setuptools и pkg_resources для улучшения distutils и добавления метаданных в Python-пакеты. В дополнение к этому он написал утилиту easy_install для их установки. По причине отсутствия формата распространения, поддерживающего метаданные, был предоставлен формат 'яиц' [egg].

Python eggs – обычные zip-архивы, содержащие python-пакет и необходимые метаданные. Хотя многие люди, вероятно, никогда намеренно не собирали egg'и, их формат метаданных до сих пор жив-здоров. И все разворачивают свои проекты с использованием setuptools.

К сожалению, некоторое время спустя сообщество разделилось, и часть его провозгласила смерть бинарных форматов и 'яиц' в частности. После этого pip, замена easy_install, перестал принимать egg-формат.

Потом прошло еще немного времени, и отказ от бинарных пакетов стал доставлять неудобства. Люди всё больше и больше стали деплоить на облачные сервера, а необходимость перекомпиляции C-шных библиотек на каждой машине не слишком радует. Так как 'яйца' на тот момент были малопонятны (я так полагаю), их переделали в новых PEP-ах, и назвали 'колёсами' [wheels].
Читать дальше →

Моторизированный слайдер для съемки timelapse

Reading time3 min
Views48K
Предыстория

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

Chef за 21 день. Часть вторая. Создание и использование cookbook

Reading time7 min
Views17K
Привет-привет, хабраюзер! Все еще с нами? CHEF – это интересно! Продолжим наш вояж к мастерству воина-автоматизатора, который начался в первой части данной статьи. В этой статье речь пойдет о первом опыте написания cookbook-а, о рецептах, атрибутах и шаблонах.
Читать дальше →

Облачная платформа Яндекса. Cocaine

Reading time13 min
Views106K
Некоторое время назад мы довольно подробно начали рассказывать об одной из базовых облачных технологий Яндекса — Elliptics. Сегодня настала очередь поговорить о другой — той самой, под которой работают «эльфы» и которая делает мечту о своем облаке чуть ближе к реальности. Речь пойдет о Cocaine.

Cocaine (Configurable Omnipotent Custom Applications Integrated Network Engine) — это PaaS-система (Platform-as-a-Service) с открытым исходным кодом, являющаяся по сути app engine и позволяющая создавать собственные облачные хостинги приложений — такие, как Google AppEngine, OpenShift, CloudFoundry или Heroku.



Всем известно, что облака могут решить все инфраструктурные проблемы, превратить издержки в прибыль и насытить вашу жизнь бесконечной радостью и счастьем на веки веков. Единственным препятствием на пути к этим целям являются, собственно, облака. IaaS, PaaS, SaaS? Whatever-as-a-Service? Какой именно загадочный набор букв нужно выбрать, чтобы всё наконец стало хорошо?

Мы потратили немало времени, изучая эти вопросы, отбирая лучшие, на наш взгляд, идеи и концепции, чтобы построить такую облачную платформу, которую хотелось бы немедленно установить, настроить и успешно использовать.
Как всё работает, и почему именно так

Chef для новичков

Reading time7 min
Views78K
На тему систем централизованного управления конфигурациями на Хабре написано немало статей и, в частности, про Chef есть несколько хороших статей. Однако, количество релизов Chef растет, и я решил немного освежить его описание для читателей Хабра. Статья предназначена как для новичков, так и для тех, кто уже знакомился с системой, но по какой-то причине отложил изучение и хочет все-таки продолжить. А продолжать стоит! Поскольку, Chef полезен и для администрирования нескольких VPS, и для управления большим парком серверов. Особенно, если вам часто приходится заниматься настройкой серверов с нуля, подключением дополнительных нод в кластер и т.д.
Подробности под катом

Устанавливаем Linux-программы на смартфон под управлением Android

Reading time11 min
Views181K


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

Опубликован исходный код Light Table

Reading time1 min
Views55K


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

Собрав необходимую сумму на Кикстартере, американский разработчик Крис Грэнджер сдержал слово — реализовал поддержку Python и опубликовал исходный код Light Table на Github.
Читать дальше →

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity