Search
Write a publication
Pull to refresh
18
0
Василий @PyroRed

Пользователь

Send message

Темное программирование

Reading time7 min
Views140K
imageПредлагаю перейти на сторону зла, на темную сторону программирования. Ситхи сильнее джедаев. И печенек хватит на всех. Предупреждаю, прежде чем начнете читать далее. Характер при переходе на темную сторону портится.
Прошу под кат
Читать дальше →

Людям нужна не дрель, а картина на стене

Reading time14 min
Views37K
Чуть больше года назад мы решили создать сервисную компанию для предпринимателей, объединив бухгалтера, юриста, бизнес-ассистента и банковское обслуживание в одном месте. У нас уже был опыт разработки b2b-софта и веб-сервисов, но на этот раз мы столкнулись с кучей неведомых доселе проблем. На помощь пришли ребята Ричарда Брэнсона — за четыре визита они научили нас задавать себе простые и точные вопросы и правильно на них отвечать. Так мы смогли выявить узкие места, узнали, как нанимать правильных людей и объединять их в команды, поняли, кто мы такие и какой уровень обслуживания должны обеспечивать. Мы хотим, чтобы в России было больше хорошего сервиса, поэтому с радостью поделимся своим нелёгким опытом.
Читать дальше →

Ролевая модель данных прав доступа для web-ресурса

Reading time4 min
Views45K
В данной статье я расскажу вам о способе организации прав доступа к web-ресурсу на основе ролевой модели.
Сразу замечу, что прикладную реализацию получения или проверки прав на каком-либо из языков программирования приводить здесь не буду, а остановлюсь только на инфологической модели базы данных.
Считаю грамотную организацию хранения такой информации наиболее важной, поскольку гибкая и отвечающая заявленным требованиям модель в дальнейшем позволит расширять систему легко и безболезненно, а также реализовать её без всякого труда на любом из web-ориентированных языков.
Предложенный мной способ похож на такую популярную организацию прав доступа, которая изложена в phpGACL.
Читать дальше →

Хороший дизайн интерфейсов. Часть 3

Reading time5 min
Views76K
Это третья часть переведённых заметок «Good User Interface». Первые 16 частей уже ранее перевели наши коллеги из ADV на Хабре, а вторые 11 перевели мы.

Идея 28


Используйте варианты по-умолчанию, не заставляя людей выбирать


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

Остальные 10 заметок далее

Смелый план, который мог бы спасти шаттл «Колумбия». Часть 2

Reading time8 min
Views79K
Первую часть вы можете прочитать здесь.

image
Специалисты команды полета STS-107 Лорел Б. Кларк, Рик Д. Хасбэнд и Калпана Чаула отдыхают в своих спальных местах на средней палубе. Source: NASA / WikiMedia Commons

Шоу начинается


«Отключение электроэнергии оставило бы в рабочем состоянии только самые основные модули управления судном, поддержки жизнедеятельности и коммуникации.»
— Из Приложения D.13 отчета Комиссии по расследованию катастрофы шаттла «Колумбия»


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

Погодная станция на Ethernet (HTTP+Modbus) с питанием по POE

Reading time13 min
Views67K
Доброго времени суток хабр-сообщество.
С момента моего последнего поста про умный дом прошло много времени. Я решил его делать начиная с погодной станции.


Рисунок 1 — Фотография макетного образца

Несмотря на обилие статей про погодные станции на arduino (http://habrahabr.ru/post/165747/, habrahabr.ru/post/171525, habrahabr.ru/post/213405 ) Я все-таки решил опубликовать своё решение.

Функционал


Функции которые она выполняет:
  • Измерение температуры
  • Измерение влажности
  • Измерение давления
  • Измерение освещенности
  • Индикация измеренных параметров
  • Выдача измеренных параметров по интерфейсу HTTP в виде XML документа
  • Выдача по протоколу HTTP XSLT процессора для стилизации XML при отображении браузером
  • Выдача информации по Modbus (его предполагаю использовать в качестве протокола управления умным домом)
  • Питание через Passive POE

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

Опубликован единый рейтинг веб-студий 2014

Reading time3 min
Views32K
Привет, Хабр! Сегодня мы опубликовали результаты единого рейтинга веб-студий Ruward за 2014 год.

image

На самом деле, хабраюзеры не очень любят рейтинги, и посты про них редко набирают много голосов. Но рейтинги – основной профиль деятельности Ruward, так что не писать про них в нашем корпоративном блоге мы просто не можем.

Наш чарт веб-студий – наиболее полный, прозрачный и комплексный продукт на рынке. Методика построена на агрегации всех других отраслевых рейтингов (а их в 2013 было опубликовано аж 15 штук только по сегменту веб-разработки), и как результат – абсолютно прозрачна, каждый может проверить, верно ли наш алгоритм посчитал баллы для каждого участника.

Следствием метода «сбора в кучу» всех данных по другим топам, конечно, являются штуки коллег про «рейтинг рейтингов» и вторую/третью производную рынка. Мы привыкли =)

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

Итак, переходим к сути и расскажем подробнее о первой десятке компаний нашего рейтинга:
Читать дальше →

λ-исчисление. Часть вторая: практика

Reading time5 min
Views49K
Идею, короткий план и ссылки на основные источники для этой статьи мне подал хабраюзер z6Dabrata, за что ему огромнейшее спасибо.

Первая часть дала нам теоретическое представление о том, что есть лямбда-исчисление. В этой статье мы последуем неофициальной його-заповеди «Practice-practice-practice» и увидим его в действии.
Читать дальше →

Введение в программирование через поведение (BDD)

Reading time10 min
Views73K
История: Эта статья впервые появилась в журнале Better Software в марте 2006. Она была переведена на несколько языков.

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

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

И этот способ — это программирование через поведение. Оно выросло из выработанных agile практик и призвано сделать их доступнее и эффективнее для команд, незнакомых с ними. Со временем, BDD стало включать в себя agile анализ и автоматическое приемочное (прим. acceptance) тестирование.

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

Логика мышления. Часть 16. Пакетное представление информации

Reading time10 min
Views19K


Этот цикл статей описывает волновую модель мозга, серьезно отличающуюся от традиционных моделей. Настоятельно рекомендую тем, кто только присоединился, начинать чтение с первой части.

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

Чтобы понять, какой формат описаний использует мозг, проследим последовательность зрительного восприятия. Разглядывая изображение, мы «сканируем» его быстрыми движениями глаз, называемыми саккадами (рисунок на КДПВ). Каждая из них помещает в центр зрения один из фрагментов общей картины. На зонах зрительной коры возникают описания, соответствующие тому, что мы видим в этот момент в центре, что видит периферия и каково смещение в результате только что проделанной саккады. Каждая следующая саккада порождает новую картину. Эти описания сменяют друг друга одно за другим.

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

λ-исчисление. Часть первая: история и теория

Reading time6 min
Views164K
Идею, короткий план и ссылки на основные источники для этой статьи мне подал хабраюзер z6Dabrata, за что ему огромнейшее спасибо.

UPD: в текст внесены некоторые изменения с целью сделать его более понятным. Смысловая составляющая осталась прежней.

Вступление


Возможно, у этой системы найдутся приложения не только
в роли логического исчисления. (Алонзо Чёрч, 1932)


Вообще говоря, лямбда-исчисление не относится к предметам, которые «должен знать каждый уважающий себя программист». Это такая теоретическая штука, изучение которой необходимо, когда вы собираетесь заняться исследованием систем типов или хотите создать свой функциональный язык программирования. Тем не менее, если у вас есть желание разобраться в том, что лежит в основе Haskell, ML и им подобных, «сдвинуть точку сборки» на написание кода или просто расширить свой кругозор, то прошу под кат.
Читать дальше →

Как подсадить соседку на Linux, или немного о мандаринах в разрезе ОСей

Reading time4 min
Views41K
О мандаринах

При обдумывании ситуации на рынке ОС для ПК мне почему-то в голову пришла цитрусовая метафора.

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

image

Мне представляется, то, что сотворил MS выходом 8-ки, погубит его. Он просто уйдет, открыв дорогу другим. Ниша будет переделена ChromeOS, MacOS, Linux и, возможно, новым игроком. Вот росли себе спокойно мандариновые деревья на плантации, давали плоды. Но садовник решил, что недостаточно много, — цикл выращивания плодов все сокращали и сокращали, они все больше наполнялись пестицидами, а растения от хлористых удобрений все больше загибались.

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

Generating PDF files with PHP and FPDF

Reading time5 min
Views117K
Большинство web-сервисов экспортируют данные в разных форматах для дальнейшего использования. Данная статья о том, как экспортировать данные в pdf-формате.
Хотя многие знают как это делать, я опишу кратко для тех кто не знает.
Читать дальше →

HTML по стандартам

Reading time10 min
Views125K
Привет Хабр!

image Изначально хотел назвать статью «HTML по ГОСТ`у», но потом выяснилось что у большинства программистов не было предмета «Метрология и стандартизация» и о «стандартизации», «сертификации», «унификации» не все слышали.

В i-Free я много занимаюсь разработкой веб-приложений. А поскольку их много, они разные и работают в разных условиях, то само собой приходится задумываться о стандартизации. Есть такой проект «Пуленепробиваемый HTML5» (http://html5boilerplate.com/), в котором разработчики решили создать идеальный шаблон странички. Он мне очень нравился, и все свои проекты я начинал именно с него. Но, исправляя баг за багом, делая все новые и новые приложения, я пришел к выводу, что многого в нем не хватает. В этой статье я хотел бы рассказать о том, что обычно пропускают при написание страничек и веб-приложений и показать, чем и зачем я прокачал свой шаблон пустой странички.
Читать дальше →

Нейропластичность — 8 изменений в человеке, сформировавшихся под воздействием технологий

Reading time5 min
Views86K
Технологии изменили человеческую физиологию, пишет 8banks. Они заставили нас думать по-другому, чувствовать по-другому, даже видеть сны по-другому. Они влияют на нашу память, внимание и циклы сна. Это связано с научным явлением, известным как нейропластичность — способности мозга изменять привычное поведение на основе нового опыта. В этом случае это интерактивные технологии и огромный объем информации поступающий из интернета.


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

Transcend WiFi. Пишем клиент Shoot&View для Windows, Mac и Linux

Reading time11 min
Views30K
На хабре неоднократно упоминали о карте памяти формата SDHC со встроенным WiFi передатчиком. Купив эту карту, я был разочарован ужасным программным обеспечением, которое идет «в комплекте» с картой. Если приложением для iOS и Android хоть как то можно пользоваться, то отсутствие клиента под windows и macos, лишает карту возможности использования ее профессионалами. Точнее сказать, на PC есть веб интерфейс, но кроме ужасного внешнего вида, меня разочаровало отсутствие востребованной у фотографов функции Shoot&View, которая позволяет практически мгновенно видеть на большом экране компьютера результат съемки.

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

Итак, в этой статье, мы разберем с вами протокол Shoot&View карт памяти Transcend WiFi и напишем на python кроссплатформенный клиент, который запустится на windows, linux и MacOS. А для самых нетерпеливых, в конце статьи вас ожидает готовый python модуль для своих проектов, консольный клиент, а так же GUI утилита, которая работает на windows, linux и macos.

Читать далее

Подводные камни технологизации компании

Reading time3 min
Views10K

Подводные камни технологизации компании


Мои первые 3 года работы в управленческом консалтинге позволили разобраться, как использовать стандартные инструменты: моделирование бизнес-процессов, PMBoK, система KPI и т.д. Мы говорили много умных слов, внедряли SAP, 1C, Project получали за это деньги и уходили. Реальных результатов своей работы я не видел. С тех пор заработал аллергию на прилизанных консультантов в галстуках.


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

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

Reading time16 min
Views119K

Аннотация


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

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


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

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


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

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

Symfony CMF. Часть 2 и последняя

Reading time17 min
Views19K
imageПродолжим разглядывать Symfony CMF, реализующую концепцию платформы для построения CMS из слабосвязанных компонентов. В первой части статьи мы подробно рассмотрели схему хранения и доступа к данным, во второй части нас ждет все остальное.

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

Самые нетерпеливые могут промотать вниз, скачать виртуальную машину с установленной системой (потребуется VirtualBox) и пощупать все самому, но для полноты опыта я бы рекомендовал сначала прочитать статью.

Итак. Что у нас по плану после хранения данных?
А вот что

Контроллер умного дома (с Ethernet, WiFi, USB, блэкджеком и плюшками) за $20?

Reading time7 min
Views218K
Некоторое время назад к нам обратился один потенциальный заказчик со своей идеей проекта «умного дома». Мы заказчикам всегда рады, особенно если у них есть более-менее внятная идея и достаточно денег для ее воплощения (сразу скажу — этот заказчик пока что является идеалом сферического заказчика в вакууме, повезло нам с ним). Так что после пары встреч родилось общее описание проекта, и мы приступили к поиску вариантов технической реализации. Нужен был недорогой контроллер с поддержкой WiFi и USB, небольшим энергопотреблением и, главное, с достаточно открытой архитектурой, чтобы мы могли сделать на его базе собственное кастомизированное решение.

И тут очень удачно попалась нам на глаза статья. Ух ты, какие штуки бывают, оказывается! У меня самого в качестве передвижной точки доступа для поездок по Китаю (где до сих пор RJ-45 розетка в номере при отсутствии WiFi — довольно частое явление) давно уже используется мини-роутер TP-LINK TL-WR702N, купленный рублей за 700, но тот факт, что внутри живет вполне приличный одноплатный компьютер с кучей дополнительных возможностей, стал для меня приятным сюрпризом. А поскольку мы по своему основному бизнесу плотно завязаны с Китаем (и китайскими производителями электроники в частности), стало нам интересно — во сколько же нам обойдется собственная плата на базе SoC AR9331, если целое законченное решение в корпусе, в коробке, с проводами и блоком питания, стоит в России 700р (на то время — $22) в рознице?

image
И мы приступили к исследованиям...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity