...

суббота, 27 июля 2013 г.

[Перевод] Паттерны проектирования в Ruby: Шаблонный метод

Введение




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

Я настроятельно рекомендую книгу Russ Olsen — Design Patterns in Ruby. Наш цикл постов будет черпать вдохновение оттуда и будет чем-то вроде краткой выжимки. Таким образом, если вам понравится то что вы читаете (а я надеюсь на это!), книга будет отличным продолжением.


Мы рассмотрим различные паттерны проектирования и научимся их применять. Сегодняшняя тема — Шаблоный метод, простейший паттерн проектирования.



Первый день стройки




Правильные инструменты




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

Неправильным является использование паттерна проектирования для решения проблемы для которой он не предназначен. Другими словами, считается дурным тоном использование паттерна для задачи, которая для решения не требует вышеупомянутого паттерна проектирования.


Давайте-ка построим несколько стен




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

# Чертежи стены (Wall)
require 'minitest/autorun'

describe Wall do
let(:wall) { Wall.new }

it 'should state its dimensions' do
wall.dimensions.must_equal 'I am 30ft. long and 20ft. wide!'
end

it 'should be made from brick' do
wall.made_from.must_equal 'I am made from brick!'
end
end




Какой хороший начальник, он дал нам чертежи! Теперь дело за малым, давайте построим стену:

class Wall
def dimensions
'I am 30ft. long and 20ft. wide!'
end

def made_from
'I am made from brick!'
end
end




Отлично! Наши тесты проходят, все счастливы и мы наконец идём обедать!

Молоток или Гвоздомет?




Когда мы вернулись, прораб сказал что нам нужно больше стен. "Вот жеж торта кусок", сказали мы, вспоминая как легко было строить стену (Wall).

"Не так быстро, ребятки", поспешил возразить прораб. У нас есть новые чертежи с новыми требованиями к стенам.



# Чертежи кирпичной стены (BrickWall)
describe BrickWall do
let(:brick_wall) { BrickWall.new }

it 'should state its dimensions' do
brick_wall.dimensions.must_equal 'I am 30ft. long and 20ft. wide!'
end

it 'should be made from brick' do
brick_wall.made_from.must_equal 'I am made from brick!'
end
end

# Чертежи бетонной стены (ConcreteWall)
describe ConcreteWall do
let(:concrete_wall) { ConcreteWall.new }

it 'should state its dimensions' do
concrete_wall.dimensions.must_equal 'I am 30ft. long and 20ft. wide!'
end

it 'should be made from concrete' do
concrete_wall.made_from.must_equal 'I am made from concrete!'
end
end

# Чертежи деревянной стены (WoodWall)
describe WoodWall do
let(:wood_wall) { WoodWall.new }

it 'should state its dimensions' do
wood_wall.dimensions.must_equal 'I am 10ft. long and 20ft. wide!'
end

it 'should be made from wood' do
wood_wall.made_from.must_equal 'I am made from wood!'
end
end




Хм… Несколько идей промелькнуло у нас в головах. Мы можем следовать принципам класса стены (Wall) и определить каждый метод с захардкодженной выходной строкой для классов BrickWall, ConcreteWall и WoodWall. Похоже идейка то неплохая, но мы должны будем хардкодить каждый инстансный метод. Что если для дома нужна будет дюжина разных типов стен?

Открой-ка вон ту коробочку!




Посёрбывая наш послеобеденный кофе, мы поняли что есть хороший инструмент для нашей задачи — паттерн Шаблонный метод.

Следуя паттерну Шаблонный метод, создание скелетного класса (sceletal class) заложит фундамент для подклассов (subclasses) или конкретных классов (concrete classes). Со скелетным классом идут абстрактные методы, которые в свою очередь могут быть переопределены в подклассах. То есть мы определим класс Wall (наш скелетный класс) и его подклассы: BrickWall, ConcreteWall и WoodWall.


Просмотрев чертежи мы подметили, что все три разных класса стен содержат методы #dimensions и #made_from, которые возвращают немного разные строки. С учетом этого, давайте реализуем наш класс стены и его подклассы.



class Wall
def dimensions
"I am #{length}ft. long and #{width}ft. wide!"
end

def made_from
"I am made from #{material}!"
end

private

def length
30
end
end

class BrickWall < Wall
private

def width
20
end

def material
'brick'
end
end

class ConcreteWall < Wall
private

def width
20
end

def material
'concrete'
end
end

class WoodWall < Wall
private

def length
10
end

def width
20
end

def material
'wood'
end
end




Обсуждение




Hook методы




В классе Wall у нас определен приватный метод #length потому как мы видим что BrickWall и ConcreteWall имеют одинаковую длину. Что же касается класса WoodWall, мы просто переопределили #length чтобы он возвращал значение 10. Это пример hook метода.

Hook методы используются для двух целей:

1) Переопределить скелетную реализацию и реализовать что-то новое

2) или просто пользоваться реализацией по умолчанию.


Заметьте что реализация по умолчанию в скелетном классе не обязательно должна быть определена. Например у нас могло бы быть так:



class Wall

...

private

def length
raise NotImplementedError, 'Sorry, you have to override length'
end
end

class BrickWall < Wall
private

...

def length
30
end
end




(прим. пер. — хотя это и не самая лучшая практика для ruby, подробнее тут, раздел "Never Require Inheritance")

В примере выше, метод #length класса Wall сделан как заглушка для #lenght в BrickWall, конкретном классе. По сути, hook метод информирует все конкретные классы что данный метод должен быть переопределен. Если базовая реализация не определена, то реализовать hook методы обязаны подклассы.


Такие вот хорошие стены




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

Следующим мы обсудим паттерн Стратегия (Strategy method). Оставайтесь на связи!


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №67 (21 — 27 июля 2013)

Предлагаем вашему вниманию очередную подборку с ссылками на новости, интересные материалы и полезные ресурсы.





Горячая семерка








Google Breakfast



На этой неделе в Сан-Франциско прошел бизнес-завтрак, на который компания Google пригласила журналистов еще в конце прошлой недели. На этом мероприятии были анонсированы Android 4.3 Jelly Bean, новый Nexus 7 и Chromecast . Подробнее об Android 4.3, Nexus 7 2013 года и Google Chromecast – миниатюрной ТВ-приставке на Chrome OS за $35







Обучение онлайн



Современные технологии предоставляют все больше возможностей по изучению как этих же технологий, так и других из смежных областей. Например, вот сайты для онлайн-обучения веб-разработчиков и веб-дизайнеров и 10 сайтов для изучения кодинга онлайн . Также, вот бесплатные курсы по Ember.js и Node.js , плюс интерактивный сайт WebGL Academy . Знаний никогда не бывает много, тем более если учесть разговоры о том, что ЕС грозит кадровый коллапс в сфере IT







SEO



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

Компания Canonical решила собрать 32 миллиона долларов на IndieGoGo, чтобы запустить новый крутой проект – смартфон на базе Ubuntu.







Web Audio API



Предлагаем ознакомиться с некоторыми возможностями одного из самых перспективных современных API — Веб Аудио: с component.fm — набором веб-аудио компонентов, использующих возможности Web Audio API, а также с возможностью записывать аудио в WAV формат прямо в браузере, с помощью getUserMedia и Web Audio

Занимательная статья на .net magazine об инструментах для автоматизированного тестирования стилей, на которые стоит обратить внимание в первую очередь разработчикам крупных проектов







Comic-Con 2013



В Сан-Диего прошел ежегодный Comic-Con — событие, на котором мечтает побывать каждый гик. И, судя по обзору от theverge , не зря — там и косплей, звезды комиксов и сериалов, лучшие костюмы и многое другое. Ну, и просто фотогалерея

Веб-разработка




CSS




JavaScripts




Браузеры




Новости




Сервисы




Демо




Сайты с интересным дизайном и функциональностью





  • lrxd.com — сайт с целым набором нестандартных решений

  • muziekpark.nl — одностраничный сайт с забавной графикой

  • negativespacealphabet.com — алфавитный сайт с параллакс-эффектом

  • thecongress-movie.com — сайт-фильм

  • lucasnikitczuk.com.ar — портфолио, нестандартная геометрия и навигация (поддержка клавиатуры)

  • nytimes.com/newsgraphics/2013/07/21/silk-road/ — новостная страница — гид, нового поколения

  • blackramwhisky.com — промо-сайт с параллакс-эффектами, анимацией, нестандартными слайдерами, горизонтальной тач прокруткой и плавной загрузкой данных

  • panpacificdefense.com — атмосферный сайт посвященный одноименному фильму, с фоновым видео, саунд-треком, прокруткой-драгом и нестандартной навигацией

  • flandriatype.com — сайт шрифта flandria с креативным подходом к использованию параллакса




Дизайн




Подборка бесплатных дизайнерских печенек







Занимательное


Дайджест за прошлую неделю.

Материал подготовили dersmoll и alekskorovin


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Mamba Hiring: статистика своими руками

В поисках работы


Тут так случилось что я вдруг начал искать новую работу. Собеседования, тесты, ну вы сами всё знаете. И одним из тестов был небезызвестный Mamba Hiring запущенный еще в 2011 году.

Пройдя тест и набрав 217 баллов я вспомнил про приложение на фейсбук в котором я тестировался с год назад и где у меня было 242 балла. Посмотрев и погоревав на свои цифры я подумал что вот опять довольно средний результат. Ой ли? А такой ли он средний? Надо посмотреть статистику, может быть не все так плохо? Какое это «среднее» значение в действительности?


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


А ведь с начала функционирования теста прошло уже пара лет и там скопилось немало результатов. Жаль конечно что нет разделения на пол, возраст и всё такое, но ведь интересно увидеть хотя бы общую картину?


Результаты


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

Минимальный результат: 10

Максимальный результат: 497

Средний результат: 166


Количество тестируемых на момент написания статьи (май): 83591

Количество тестируемых на момент публикации статьи: 86354


График результатов (кликабельно, ведет на Google Drive с интерактивным вариантом):


А как же процесс?


Всё просто как орех. Когда мы заканчиваем тест на сайте corp.mamba.ru/test, нам выдают ссылку на графический виджет вида «http://www.corp.mamba.ru/test/widget.phtml?id=9000» Интересна она нам своим значением ID. Если его изменить то можно увидеть другой, чужой, результат.

Алгоритм родился моментально.

1-ый прогон: лепим цикл на перебор ID’шников, скачиваем картинку, складываем в папочку.

2-ой прогон: идем по картинкам, обрезаем их до области с цифрой, суем в черный ящик распознания текста в лице TesseractOCR, а полученное значение сбрасываем в базу.


Код скриптов на гитхабе — только пожалуйста без холиваров, всё это дело написано минут за 5-10 и на один раз.


В заключении хотелось бы попросить Мамбу выложить результаты с тестирования через приложение Facebook, не думаю что имея данные по социальному аккаунту тестируемого сопоставить конкретный результат с конкретным возрастом и полом будет очень трудно :)


Да, кстати, кому требуются исходные данные, то вот они лежат .sql дампом. Могу даже ~83 500 (~700 мб) картинок выложить если это кому то потребуется.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


План мероприятий по развитию ИТ-отрасли России до 2018


сегодня в 20:23


15 июля 2013 года Правительство Российской Федерации одобрило план мероприятий («дорожную карту») по развитию отрасли информационных технологий на период 2013-2018 годов.

План мероприятий «Развитие отрасли информационных технологий» состоит из трёх разделов:



  1. общее описание, в котором отражено текущее состояние и перспективы развития российской отрасли ИТ в сравнении с другими странами, а также перечислены важнейшие задачи государства по развитию отрасли ИТ;

  2. контрольные показатели, по которым будут оцениваться результаты работы исполнителей плана;

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




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





Developers, stick with Russians – work in London




Переводы с

карты на карту


Переводы

через QR-Код


Новая функция

«Мой контроль»



Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Обзор китайского DPSS лазера 532nm

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


Под катом – обзор такой необходимой в каждом доме вещи, как одноваттный зеленый лазер.



Прежде, чем написать что-то, хочу подчеркнуть большими буквами:


Как минимум нужны очки, защищающие от 808nm и от 532nm. Далее я покажу, почему это так важно.

В этом обзоре не будет видео о том, как лазер поджигает спички, лопает шарики и т.п.: такого навалом и в Youtube. Вместо этого мы проверим соответствие заявленных характеристик реальным, и, конечно, рассмотрим конструкцию этого прибора – обязательная доза geek porn обеспечена.


Основные характеристики



































Wavelength (nm)532
Output Power (mW)>1000
Divergence, Full angle (mrad)2.0
Beam Diameter at the Aperture (mm)~2.5
Transverse ModeTEM00
Modulation ModeTTL up to 30kHz
Cooling ModeTEC & Air
Expected Lifetime (hours)10 000

Лазер произведен компанией CST (продукция которой считаестся несколько более качественной, чем продукция DHOM) по заказу UltraLasers, Inc. Он относится к наивысшему IV классу лазерной опасности, т.е. помимо защиты (очков) при работе с ним необходимо использовать ловушку-поглотитель излучения, а также обязательно закреплять излучатель неподвижно, чтобы задетый провод не развернул головку в неизвестном направлении.


Пройдемся по характеристикам по порядку.


Длина волны: 532nm



FAIL. Из апертуры светит не только 532nm (зеленый), но и 808nm и 1064nm (невидимый инфракрасный). Причем светит так, что не учитывать этого нельзя. Инфракрасный фильтр в лазер не положили.
Выходная мощность: > 1Вт



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


Из измерений следует, что на невидимую инфракрасную часть излучения приходится порядка 700 милливатт, получить которые в незащищенный глаз гораздо проще, чем кажется (см. следующий пункт).


Расхождение пучка: 2 мрад



FAIL. Измеренное расхождение для 532nm составило 2.3 мрад. Для 808nm – на порядок больше, примерно 30 мрад. Выглядит это так:


Фиолетовый – это ИК. Обратите внимание на относительную яркость ИК и зеленого. Диаметр зеленого луча соответствует белому пятну на фотографии, зеленая кайма – это уже рассеяние от поверхности.


Таким образом, держа голову возле зеленого луча (при юстировке оптики и т.п.) есть немалый шанс попасть под пучок ИК, который свободно пройдет сквозь очки, защищающие от 532nm, и доставит кучу радости офтальмологам. Поэтому еще раз:

Обязательно установить инфракрасный фильтр!


Диаметр луча у апертуры: ~2.5мм



TRUE. Так и есть.
Поперечная мода: TEM00



FAIL. Мода Гаусса-Лагерра низшего порядка получается только при совершенно незначительной мощности (меньше 50 мВт). Выше этого порога имеем что-то вроде такого:


Уже не TEM10, но еще и не TEM11. Это довольно типично: при таком резонаторе и мощности сложно избежать усиления мод высшего порядка.


Модуляция: до 30 кГц TTL



FAIL. Для тестирования я собрал на коленке простенький TTL ШИМ на 26 кГц (Внимание, смертельный номер! Без микроконтроллеров и ПЛИС!) из имеющихся в наличии компонентов (компаратор LM339 плюс обвязка):


И при различной скважности получил на фотодиоде вот такие осциллограммы:




25%




50%




75%


От входного прямоугольного TTL тут осталось мало. Спектр же сигнала, как и положено, изобилует гармониками:



Охлаждение: элемент Пельте с вентилятором



TRUE. И Пельтье и вентилятор присутствуют. В процессе работы корпус излучателя практически не нагревается.

Полезный инструмент




При работе с DPSS лазерами полезно иметь инфракрасный визир. Самый доступный вариант – купить дешевую цифровую мыльницу и извлечь из нее инфракрасный фильтр. В результате вместо одной бесполезной вещи получим две полезные: ИК-камеру и фильтр. ИК-фотографии я делаю аппаратом Olympus VG-150, который обошелся мне менее чем в 2000 рублей, включая доставку. Кроме того, фильтр в нем не приклеен к матрице, а просто лежит на ней, придавленный резинкой, и снимается без труда и повреждений за две минуты.

Этот же фильтр можно использовать и для лазера: максимум пропускания у него как раз в области зеленого. Только не рекомендую крепить его прямо на выходное отверстие (даже изнутри) – рассеянного на фильтре света достаточно, чтобы неприятно слепить.


Переходим к geek porn




Блок питания









На БП присутствуют:

  • Разъем блокировки (interlock) – контакты должны быть замкнуты, чтобы лазер работал

  • Провод, торчащий из дырки Trigger – модуляция TTL, активный уровень – низкий

  • Выключатель питания на задней части блока

  • Кнопка Stop – экстренное выключение (требование для класса опасности IV)

  • Выключатель с ключом – запуск лазера (требования для класса опасности)

  • Три индикатора: питание, излучение и ошибка соответственно

  • Разъем подключения лазера, цоколевка следующая:






    1. TEC+

    2. LD+

    3. LD-

    4. Thermal Sensor

    5. Thermal Sensor

    6. Fan+

    7. TEC-

    8. Fan-





Тут китайцы подложили свинью: лазер включался с незамкнутой блокировкой и неповернутом ключе, просто при перещелкивании кнопки сзади! Это грубейшее нарушение ТБ при первом включении очень, хм, удивило. Заодно и кнопку «Стоп» проверил.

Вскрытие блока показало, что для удобства пользователя разъемы ключа и блокировки замкнуты «соплей» на обратной стороне платы, а выключатель с ключом не подсоединен вообще:



Конструктивно блок состоит из двух модулей: импульсного источника питания на напряжения 5 и 12 вольт и драйвера диода, совмещенного с регулятором для двух термоэлементов.


Импульсный источник




Представляет собой два одинаковых источника в одном корпусе: первый – 12В 6.5А, второй – регулируемый 4.6–6.3В 6.5A. Пусть вас не смущают одинаковые цвета проводов: верхние красные это 5В, а нижние красные – 12В.


Драйвер



Не отличается изощренностью конструкции:


Три линейных стабилизатора тока на ОУ LM358 и выходными каскадами на IRF530N (MOSFETы с обратной стороны платы) – для диода лазера и двух термоэлементов. Термоэлемент используется только один. Верхняя левая микросхема это 74LS00, она включает лазер при условии высокого уровня на разъеме модуляции TTL, соответствия температуры датчиков ожидаемой и сработке пятисекундного таймера задержки, собранного на микросхеме NE555 (левая нижняя). Все остальные микросхемы – LM358.


Самый левый резистор регулирует ток лазера. Большие резисторы используются в качестве токоизмерительных шунтов. MOSFETы прикручены к массивному радиатору размером со всю плату драйвера. Стабилизатор тока лазера питается от +5В, а термоэлементов – от +12В.


Качество пайки среднее, со следами ручной доработки напильником.Сэкономили на фильтрующих элементах, в остальном особого криминала нет.


Ток лазера установлен на 5.4А, что позволяет предположить, что накачка рабочего тела производится пятиваттным ИК лазерным диодом. Отсутствие второго термоэлемента означает, что кристалл KTP не подогревается, и поэтому, возможно, работает не в оптимальном режиме, что сокращает срок его службы.


Заключение




Пожалуй, единственное, что соответствует спецификации в данном лазере, это мощность. Зато ее дали с запасом. Ожидаемый срок работы тоже внушает сомнения, но это станет понятным при разборке излучателя. Этот обзор и так получился довольно объемным, т.ч. описание конструкции собственно лазера я вынесу во вторую часть.

Этот лазер весьма опасен: мало того, что светит инфракрасным на 700 мВт, так еще и включается неожиданно. Впрочем, и то и другое просто устраняется. Напрямую у китайцев на Aliexpress на момент написания статьи такой лазер можно было купить за $650, не считая доставку.


Спасибо всем, кто дочитал до этого места!


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Вы используете универсальный пароль для клиентских сайтов?


сегодня в 16:39


В наше время существуют тысячи IT-компаний и студий, создающих сайты. У сайтов практически всегда есть админка, пароль от которой передаётся клиенту. Часто для аккаунта компании создаётся внутренний пароль. «Свой» интерфейс (аккаунт) может иметь повышенные привилегии, «Клиентский» — пониженные, это не важно.

Это может быть проект на RoR или сайт на Битрикс — неважно. А ведь клиентов может быть много. Кто-то может использовать один универсальный пароль на всю компанию, просто чтобы не помнить множество разных паролей, кто-то нет. Теоретически, подход «общих» паролей может сыграть злую шутку — бывший сотрудник, знающий такой пароль, может неплохо попортить жизнь. Иногда поступают так: придумывают систему генерации пароля на основе домена. Но это не решает проблему уволенного сотрудника. А иногда просто хранят всё в каком-либо KeePass.

Сейчас в первую очередь обращаюсь к тем, кто создаёт сайты и web-проекты c административными интерфейсами для клиентов. Внимание, вопрос:


А у вас пароль к административному интерфейсу проектов клиентов один и тот же?

































Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.


Проголосовало 106 человек. Воздержалось 55 человек.







Developers, stick with Russians – work in London




Переводы с

карты на карту


Переводы

через QR-Код


Новая функция

«Мой контроль»



Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Вольный перевод executive summary из книги The Innovator's Solution by Clayton Christensen о дилемме инноватора и ее возможном решении


сегодня в 14:57


Вольный перевод executive summary из книги The Innovator's Solution by Clayton Christensen о дилемме инноватора и ее возможном решении, 13 пунктов.




  1. Никогда не говорите “да” стратегии нацеленной на потребителей и на рынки, выглядящие привлекательно для развитого конкурента. Продолжайте отсылать команду на предыдущий шаг проектирования, до тех пор пока они не идентифицируют нишу, которую развитый конкурент будет рад игнорировать или будет рад вообще уйти из нее. Если вы создадите такую ассиметричную мотивацию, ваши конкуренты будут помогать вам победить.

  2. Если ваша команда нацеливается на потребителей которые УЖЕ используют достаточно неплохие продукты, отсылайте их на предыдущий шаг, чтобы они попробовали найти возможность конкурировать с “непотреблением”. Если ваши клиенты восхищены возможностью иметь простой, недорогой продукт по причине того, что подобные продукты они вообще не потребляли ранее, то все приемы удовлетворения потребителей, которые вы учили в основах маркетинга будут работать просто и недорого. Это также намного легче в сравнении с альтернативой в виде массивных инвестиций, необходимых для того, чтобы потребители перешли на прорывную технологию с уже существующей развитой технологии (с которой им и так уже достаточно комфортно).

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

  4. Если лидер проекта использует фразу “если бы мы только могли бы заставить потребителя...” — останавливайте разговор. Отсылайте команду на предыдущий шаг чтобы найти как помочь потребителю делать удобным и дешевым то, что они уже пробуют делать. Мечтательная конкуренция с явными приоритетами потребителей загубила карьеру некоторых достаточно хороших людей.

  5. Если команда продукта или маркетинговый план сфокусирован на сегментах рынка отражающих область (рынка) вашей организации или если целевой рынок сегментирован по параметрам, данные по которым уже есть (по виду продукта, по цене, по демографии), отсылайте команду назад. Попросите их сегментировать рынок так, чтобы сегментация отражала “работу”, которую потребители пытаются выполнить.

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

  7. Если ваш “прорывной” продукт или сервис еще недостаточно хорош и ваша команда восторгается индустриальными стандартами и сопутствующими аутсорсинговыми и партнерскими сделками, выставляйте большой знак СТОП. Если вы слишком рано реализуете модульность и открытые стандарты, или если держите архитектуру закрытой в то время как основной вектор конкуренции изменяется, вам придется сильно побороться за успех. Лучше развивать компетенции там, где деньги будут делаться в будущем, а не цепляться за те навыки, которые делали вас успешными в прошлом.

  8. Если ваша команда уверяет вас что проект будет успешным так как новый проект совпадает с ключевой компетенцией вашей компании, скажите им что не можете иметь дело с размытыми понятиями. Попросите ответить на следующие три вопроса:

    • — Есть ли у нас ресурсы для успеха?

    • — Будут ли наши процессы и подходы, которым мы научились успешно совместно работая в существующих бизнесах, содействовать тому, что необходимо сделать для успеха в новом проекте?

    • — Позволит ли набор существующих ценностей или критериев, который сотрудники сейчас используют для определения приоритета одних вещей над другими, позволит ли он получать необходимый приоритет по сравнению с другими инициативами, которые также претендуют на время, деньги и талант?


    Используйте ответы на эти вопросы для выбора подходящей организационной структуры и подходящей родительской организации для этого проекта.



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

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

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

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

  13. Продолжайте растить родительскую компанию, чтобы вы могли быть терпеливым в ожидании роста нового проекта. “Прорыв” и в особенности конкуренция с “непотреблением” требует долгого “разгона” прежде, чем возможно осуществить крутой взлёт. Если рост основной компании замедляется и вы нажимаете на новый бизнес чтобы он начал взлетать быстрее, то вы нажимаете на менеджмент чтобы они сделали фатальные ошибки. Другая сторона этого вопроса также важна. Если вы планируете возглавить новый проект и корпоративный менеджмент говорит, что вашему проекту нужно вырасти очень большим и очень быстро, то на самом деле они говорят вам о том, что они заставят вас “втиснуть” вашу “прорывную” технологию в сформированный рынок. Когда вы чувствуете такое, не беритесь за проект. Скорее всего у вас не получится.





Developers, stick with Russians – work in London




Переводы с

карты на карту


Переводы

через QR-Код


Новая функция

«Мой контроль»



Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


[Перевод] Ученым удалось остановить свет на одну минуту

Исследователям из университета Дармштадта (Германия) удалось остановить поток света на одну минуту. Свет, как наиболее быстрая материя известная во вселенной (скорость 300.000 км/с) был остановлен внутри кристалла. Таким образом, делается возможным создание, так называемой световой памяти, когда информация, переносимая светом, аккумулируется кристаллом. Помимо того, что само по себе подобное исследование будоражит воображение, оно, с весьма большим успехом, может стать подоплекой для создания квантовых сетей дальнего действия, и может быть, это исследование даст подсказки на то, как можно сделать скорость света больше значения, ограниченного вселенной.

Если обратиться к истории, то в 1999 году ученым удалось снизить скорость света до 17 м/с., а затем, два года спустя, та же группа исследователей полностью остановили свет, но всего лишь на несколько долей секунды. Ранее, в этом году, исследователям из института технологий Джорджии (США) удалось остановить свет на 16 секунд, и теперь, ученые из Дармштадта увеличили этот порог на минуту.


Для остановки света, ученые воспользовались так называемой техникой электромагнитно индуцированной прозрачности (EIT). Они использовали криогенно охлажденный полностью непрозрачный кристалл сплава силиката иттрия и празеодима. Управляемый луч лазера направляется в кристалл, и тем самым, создает сложную реакцию на квантовом уровне, делая кристалл полностью прозрачным. Второй источник света (источник данных/изображения) затем направляется на полностью прозрачный кристал. Затем, управляемый лазер выключается, возвращая кристаллу состояние полной непрозрачности. Это действие не только позволяют заключить свет, переносящий данные в ловушку кристалла, но и позволяют устранить его отражение за счет непрозрачности. Таким образом, свет остановлен.



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


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


Световая память, обеспечивающая квантовую когерентность (такую как поляризация и квантовая запутанность) является жизненно важным моментом для создания квантовых сетей дальнего действия. Также, как и в случае с обычными электронными маршрутизаторами, квантовые маршрутизаторы должны быть способны сохранять входящие пакеты и затем, переправлять их — то что позволяет осуществить подобное открытие. Более того, существует несколько барьеров для преодоления, перед тем, как получится перейти на квантовый интернет- например, необходимо найти способ когерентно хранить свет, сопровождаемый настолько малым количеством шума, что одиночные фотоны могли бы надежно храниться/быть получены и все это необходимо сделать в условиях комнатной температуры. Криогеника, вполне применима в условиях какого-нибудь центра обработки данных, но весьма трудно представить криогенно охлажденный роутер дома :)


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Windows NT сегодня исполнилось 20 лет


сегодня в 14:18



У сисадминов со стажем сегодня тоже есть что отметить: легендарной операционной системе Windows NT исполнилось 20 лет!




Первый релиз Windows NT состоялся 27 июля 2013 года. Это была принципиально новая система на новом ядре, которое начало создаваться после прекращения сотрудничества Microsoft и IBM над OS/2. Редмондской компании кровь из носу нужно было создать новую, стабильную операционную систему — платформу на будущие десятилетия, и они приложили для этого невероятные усилия. Драматическая история создания ядра NT командой под руководством ведущего программиста Дэвида Катлера (David N. Cutler) раскрыта в нескольких книжках, в том числе “Showstopper! The Breakneck Race to Create Windows NT and the Next Generation at Microsoft”.


Дэвид Катлер перед этим руководил исследовательским центром Digital с 200 разработчиками, где создавал архитектуру нового CPU и операционную систему VMS, но компания Digital закрыла этот проект в 1988 году. К Катлеру сразу же поступило предложение от Битла Гейтса, так что он перешёл в Microsoft с группой из 20-ти сотрудников Digital и воплотил в NT многие идеи из операционной системы VMS и UNIX. О значительном сходстве VMS и NT см. здесь.


Ядро NT широко используется до сих пор, в том числе в Windows 8, Windows Server 2012, Windows Phone 8, Windows Azure и даже Xbox One, пишет Мэри-Джо Фоули.


Дэвид Катлер тоже до сих пор работает в Microsoft и является одним из основных разработчиков операционной системы для Xbox One, перед этим он работал над Windows Azure.


Первая версия NT в июле 1993-го называлась Windows NT 3.1. За ней последовали NT 3.5, 3.51 и 4.0. Новые версии Windows продолжают эту нумерацию.



















































Операционная система Номер версии
Windows 86.2
Windows Server 20126.2
Windows 76.1
Windows Server 2008 R26.1
Windows Server 20086.0
Windows Vista6.0
Windows Server 2003 R25.2
Windows Server 20035.2
Windows XP 64-Bit Edition5.2
Windows XP5.1
Windows 20005.0




Developers, stick with Russians – work in London




Переводы с

карты на карту


Переводы

через QR-Код


Новая функция

«Мой контроль»



Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Суд запретил публикацию кодов запуска люксовых автомобилей

Британский суд запретил публикацию научной работы, в которой раскрывается алгоритм запуска люксовых машин типа Porsche, Audi, Bentley и Lamborghini, так как это может привести к массовым угонам транспортных средств.

Высокий суд Британии наложил запрет на исследование Флавио Гарсиа из Университета Бирмингема, который взломал систему безопасности и раскрыл код, который позволяет машине верифицировать ключ зажигания.



Решение британского суда, однако, является лишь промежуточным в деле, которое возбудила компания Volkswagen, владеющая этими марками, против Гарсиа и двух других экспертов по компьютерной безопасности из голландского университета. Компания упирает на то, что публикация исследования может «позволить кому-то, особенно криминальным группировкам, оснащенным правильными инструментами, взломать систему безопасности и украсть машину». Речь ведется о системе защиты Megamos Crypto, алгоритме, который защищает коды, передающиеся между ключом и машиной.


Ученые, в свою очередь, хотели опубликовать свой доклад Dismantling Megamos Crypto: Wirelessly Lockpicking a Vehicle Immobiliser на конференции Usenix Security Symposium, Volkswagen просил убрать из него коды запуска, но они отказались, в результате чего сейчас суд наложил временный запрет на публикацию.


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



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



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


Ученые использовали для анализа алгоритма так называемую технику «chip slicing», фактически железный реверсинг, в котором процессор «нарезается» под микроскопом и восстанавливается логика его работы – процесс, который стоит около 50 000 фунтов. Ученые заявляют, что они исследуют все — от карт оплаты до автомобилей – для поиска слабых мест и их исправления.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Вышел Twitter Bootstrap 3 RC 1


сегодня в 12:23


Пост в официальном блоге Bootstrap: blog.getbootstrap.com/2013/07/27/bootstrap-3-rc1/

Документация и скачивание архивов доступно по старому адресу: twitter.github.io/bootstrap/


Основные изменения



  1. Bootstrap и сопряжённые проекты были перенесены в новый аккаунт на Github: github.com/twbs

  2. В проект внесено ~1 600 коммитов, ~72 000 добавлений/удалений в ~300 файлов.

  3. Все стили (в том числе и responsive) теперь компилируются в один CSS-файл

  4. Glyphicons подключаются в виде шрифта вместо PNG

  5. Исчезла поддержка IE 7 и Firefox 3. IE 8 и 9 ещё поддерживаются, однако не забываем, что много CSS3-свойств ими не поддерживаются.

  6. Проект собирались перевести на лицензию MIT, вместо Apache, но в текущей документации всё ещё фигурирует Apache.




Также пока что не работает Customizer кода, который позволял выбрать только те компоненты Bootstrap, которые были вам нужны. Его обещают включить к RC2.

Документация для предыдущей версии 2.3.2 лежит по адресу: twitter.github.io/bootstrap/2.3.2/





Developers, stick with Russians – work in London




Переводы с

карты на карту


Переводы

через QR-Код


Новая функция

«Мой контроль»



Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


[Перевод] Star Citizen и Elite: Dangerous — свежие подробности

Те, кто читают мои статьи должны быть в курсе, что я веду колонку переводов по игре Elite: Dangerous. Однако разработчик игры, Девид Брабен, не очень жалует своих фанатов пиар-компанией.

А пока они там что-то где-то как-то внутри своей компании пилят, я заинтересовался ходом компании Star Citizen.

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

Однако, перед тем как я перейду к этим самым свежим новостям, рад представить результат работы пилотов портала elite-games.ru над одним из старых роликов, рассказывающих о том, что должно получиться из разработки игры Star Citizen.





Кроме того, пилоты этого-же проекта занимаются Крисоугодным делом, и создают русские субтитры для еженедельных выпусков новостей компании, которые называются «Wingman's Hangar». Представляю вам субтитры 30-го ролика, выпущенного 19.07.2013.



Результатом нашей работы являются и субтитры для 29-го выпуска Ангара. Следить за свежими выпусками вы можете или на портале elite-games.ru, или у меня на сайте, или подписавшись на канал автора перевода.

Обсудить игру, задать вопросы, написать предложения и прочее и прочее вы можете на портале elite-games.ru. Приглашаю поучаствовать в обсуждении игры.

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

Elite: Dangerous




И буквально пару слов о том, как продвигается разработка этой славной игры от Девида Брабена.

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

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


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html