» Материалы за Февраль 2014 года » Страница 8

 

Самодельный фазовый лазерный дальномер

Автор: admin от 26-02-2014, 18:05, посмотрело: 2494

Самодельный фазовый лазерный дальномер
В статье я расскажу о том, как я делал лазерный дальномер и о принципе его работы. Сразу отмечу, что конструкция представляет собой макет, и ее нельзя использовать для практического применения. Делалась она только для того, чтобы убедится в том, что фазовый дальномер реально собрать самому.

Категория: Железо » Сделай Сам

 

Новое применение графена: высокоэффективные фильтры для воды

Автор: admin от 26-02-2014, 18:05, посмотрело: 500

Учёные из Массачусетского технологического института разработали технологию, позволяющую делать в листах графена отверстия определённого диаметра. Получившееся «решето» в зависимости от размеров отверстий может фильтровать частицы разного размера — от ионов до крупных органических молекул. Мембраны фильтров из традиционных материалов приходится делать довольно толстыми, чтобы они были достаточно прочными (для установок обратного осмоса, опресняющих морскую воду, рабочее давление может достигать 70 атмосфер). Графен в десятки раз прочнее пластика, из которого делают обычные мембраны, а значит мембрана может быть намного тоньше и пропускать воду гораздо быстрее.

Новое применение графена: высокоэффективные фильтры для воды

Категория: Железо

 

Linux-vserver или каждому сервису по песочнице

Автор: admin от 26-02-2014, 16:55, посмотрело: 415

Недавно на хабре публиковались статьи о openvz и lxc. Это напомнило мне, что эта статья всё еще валяется в sandbox'е…

Для целей размещения проектов я применяю такую схему: каждый сервис запускается в изолированной среде: боевой — отдельно, тестовый — отдельно, телефония — отдельно, веб — отдельно. Это снижает риски взлома систем, позволяет бакапить всё и вся одним rsync'ом на соседний сервер по крону, а в случае слёта железа просто поднять на соседнем железе. (А использование drbd + corosync позволяет это делаеть еще и автоматически)

Для создания изолированной среды есть два подхода, именуемые VDS (виртуализация аппаратуры) и VPS/jail (виртуализация процессного пространства).

Для создания VDS изоляций применяют XEN, VirtualBox, VMWare и прочие виртуальные машины.
Для создания VPS на linux используется либо linux-vserver, либо openvz, либо lxc.

Плюсы VDS: система внутри может быть совершенно любой, можно держать разные версии ядер, можно ставить другую ОС.
Минусы VDS: высокие потери производительности на IO, избыточное потребление CPU и RAM на сервисы, дублирующие запущенные на серверной ОС.

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

Так как мне не нужны разные ОС, то всюду применяю linux-vserver (так уж сложилось исторически, применяю с 2004го года, а openvz вышел в открытый доступ в 2005м), а lxc в моём понимании еще не дорос до продакшена (хотя и очень близок уже).

Ниже я опишу базовые операции по запуску LAMP сервера в изолированном окружении.

Категория: Системное администрирование, Linux

 

Разработка кроссплатформенных мобильных приложений в Delphi #6

Автор: admin от 26-02-2014, 15:55, посмотрело: 1020

Часть #1
Часть #2
Часть #3
Часть #4
Часть #5

После слегка затянувшейся паузы мы продолжаем рассказ о создании мобильного приложения в Delphi с помощью Платформы FM. Напомню, что в качестве задачи мы выбрали реализацию кулинарной книги, снабженной «калькулятором пропорций продуктов» и таймером. Разработку мы начали с создания «настольного приложения». Поэтапно также реализовали и мобильный аналог для платформы Android. В качестве СУБД была выбрана SQLite.

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

И второй момент, на который следует обратить внимание, прежде чем перейти непосредственно к описанию процесса дальнейшего развития наших приложений. В средине декабря был выпущен Update 2 для Delphi и RAD Studio. Если вы экспериментировали со сторонними компонентами в проекте, вам следует использовать новые версии, совместимые с Update 2. Возможно, также придется заново пересоздать отдельные формы.

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

На предыдущих этапах мы уже создали проект мобильного приложения, модуль данных и заготовку главной формы приложения. Сделаем активной вкладку «Ингредиенты» и разместим на ней необходимые компоненты. В принципе, и в мобильном приложении мы могли бы использовать компонент табличного отображения данных (Grid). Концепция интерфейса для платформы Android, хотя и предполагает возможность использования Grid'а. Однако, как уже отмечалось ранее, Grid для Android несколько отличается от обычного Grid’а для настольных приложений. Поэтому для отображения данных лучше использовать компонент TListBox. Естественно, данные, отображаемые в нём, не будут редактироваться.

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

Список отображает информацию из набора данных посредством LiveBindings автоматически. Формирование же представления целесообразно делать на уровне набора данных, оставляя компоненту TListBox роль декорирования. Поэтому, думая об отображении информации в списке на интерфейсе, мы тем не менее начнём работу с набором данных.

Категория: Операционные системы » Android

 

Применяем делегирование совместно с наследованием для организации контроллеров действий

Автор: admin от 26-02-2014, 15:55, посмотрело: 475

Добрый день коллеги, сегодня я расскажу сказку о своём опыте организации контроллеров в проекте на ZF 1 (так исторически сложилось).
В хороших книжках по ООП часто пишут, что наследованием нельзя увлекаться, нужно предпочитать делегирование или делать так, чтобы они работали совместно. К сожалению, не всегда можно быстро догадаться, как применить сухую теорию на практике (а когда наконец-то доходит, удивляешься «что тут сложного?»), поэтому надеюсь мой опыт кому-нибудь пригодится.

И так сначала о проблемной области:
31 Controller Action, большинство из них имеет методы indexAction(), addAction(), editAction(), searchAction().
проблема №1: большинство, но не все. В остальных наличие этих методов варьируется,
проблема №2: методы editAction() и addAction() массивные сами по себе, и почти одинаковые для всех контроллеров, отличаются инициализация формы, и сохранение модели.

Как я это решил, покажу сразу в коде.

Категория: Программирование

 

Impact Mapping — как dev-команде перестать делать то, что требуют, и начать делать то, что нужно?

Автор: admin от 26-02-2014, 15:55, посмотрело: 739

Impact Mapping — как dev-команде перестать делать то, что требуют, и начать делать то, что нужно?

Доклад с прошлогодней конференции специалистов системного и бизнеса анализа — Analyst Days 2013 года от старшего аналитика питерского офиса компании DELL — Петрашева Дмитрия

На странице доклада можно найти презентацию и видео, а здесь текст…

Категория: Программирование, Веб-разработка

 

Самая быстрая в мире сеть передачи данных от «МегаФона»

Автор: admin от 26-02-2014, 14:55, посмотрело: 400

Самая быстрая в мире сеть передачи данных от «МегаФона»

Спешим обрадовать наших клиентов и «порадовать» конкурентов: сегодня «МегаФон» осуществил запуск сети новейшего стандарта LTE-Advanced. Его можно назвать стандартом 4G+.

Запуск состоялся не на бумаге, новая сеть доступна уже сейчас. Это первая в мире действующая сеть стандарта LTE-Advanced, обеспечивающая рекордную скорость передачи данных до 300 Мбит/сек. Причём стоимость услуг в ней такая же, как и в сетях 3G и 4G, то есть цена для абонентов никак не изменится.

Категория: Программирование » Веб-разработка

 

Скажи говнокоду нет! Sonar как генератор задач для регулярного рефакторинга

Автор: admin от 26-02-2014, 13:55, посмотрело: 718

Простая и короткая статья. Из серии «на заметку хозяйке».

Есть гибкая система сканирования кода на соответствие правилам, метрикам (полезным, типа цикломатической сложности), и так далее.
Называется Sonar.

КПЗ
Скажи говнокоду нет! Sonar как генератор задач для регулярного рефакторинга

Пара скриншотов на живых данных под катом.

Категория: Программирование

 

Опыт разработки интерфейса интеллектуальной обучающей программы

Автор: admin от 26-02-2014, 13:55, посмотрело: 371

В будущем традиционное обучение точным наукам может быть дополнено не только MOOC (Massive Open Online Courses) курсами, но и курсами в «следящих» интеллектуальных обучающих программах. Такие программы способны до некоторой степени оценить решение студента на завершенность и правильность, а также предоставить подсказки по решению. На рисунке ниже — интерфейс ввода решения задачи в «следящей» обучающей программе, разработанной нашим коллективом:

Опыт разработки интерфейса интеллектуальной обучающей программы

Категория: Программирование » Веб-разработка

 

Исследуем Linux Botnet «BillGates»

Автор: admin от 26-02-2014, 13:55, посмотрело: 1079

Исследуем Linux Botnet «BillGates»

Написал мне вчера lfatal1ty, говорит, домашний роутер на x86 с CentOS как-то странно себя ведет, грузит канал под гигабит, и какой-то странный процесс «atddd» загружает процессор. Решил я залезть и посмотреть, что же там творится, и сразу понял, что кто-то пробрался на сервер и совершает с ним непотребства всякие. В процессах висели wget-ы на домен dgnfd564sdf.com и процессы atddd, cupsdd, cupsddh, ksapdd, kysapdd, skysapdd и xfsdxd, запущенные из /etc:

Начальный анализ


Сначала я полез смотреть, что же вообще происходит и насколько серьезно была скомпрометирована система. Первое, что мне пришло в голову проверить — /etc/rc.local. Там было следующее:
cd /etc;./ksapdd
cd /etc;./kysapdd
cd /etc;./atddd
cd /etc;./ksapdd
cd /etc;./skysapdd
cd /etc;./xfsdxd

«Хмм, ладно», подумал я. Полез в root'овский crontab

Категория: Программирование, Информационная безопасность, Linux