Search
Write a publication
Pull to refresh
17
0
Иван Мащенко @StrangeAttractor

User

Send message

Операционные усилители (на основе простейших примеров): часть 3

Reading time5 min
Views180K

Краткое введение


Продолжаю спамить писать на тему операционных усилителей. В этой статье постараюсь дать обзор одной из важнейших тем, связанной с ОУ. Итак, добро пожаловать, активные фильтры.
Читать дальше →

Почему CSS3 хуже, чем возня с багами IE6

Reading time3 min
Views2.7K
Я помню времена, когда у нас не было ничего, кроме CSS2.1. Стандарт CSS3 казался несбыточной мечтой, открывающей дверь в мир простого кодинга и свободных вечеров, а IE6 был дьяволом, превращавшим нашу работу в сущий ад своими причудами и вольным отношением к стандартам. Как же мы были наивны.

image

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

Google упрощает контрактное программирование

Reading time1 min
Views2.6K
Google выпустил открытую библиотеку Contracts for Java, которая упрощает реализацию методов контрактного программирования в Java. С помощью библиотеки Contracts for Java предусловия, постусловия и инварианты можно добавлять в Java как булевые выражения внутри аннотаций.

Как сказано в официальном анонсе, библиотека разработана двумя программистами Google в свободное от основной работы время (20% на личные проекты) и основана на Modern Jass и сделана под впечатлением от языка Эйфель, в котором впервые был реализован метод контрактного программирования.
Читать дальше →

Вредоносное ПО для GNU/Linux и борьба с ним

Reading time8 min
Views7.5K
Читаю на хабре вот эту тему:«Trojan.winlock начал распространяться через ЖЖ». В принципе ничего принципиально нового, и конечно, как и всегда, в комментариях полно сообщений типа «А в linux/mac/freebsd/plan9 такого нет, а пользователи Windows ССЗБ», с которых начинаются небольшие холивары. Вот, хочу начать новый холивар поделиться мыслями и узнать кто что думает, узнать насколько возможно в GNU/Linux существование вредоносного ПО и подумать что с этим делать.
Читать дальше →

А мы пойдем другим путем. Перемещаем модель в базу данных

Reading time6 min
Views5.1K
А мы пойдем другим путемВ последнее время веб-разработка из наколенного поделия превратилась в серьезную инженерную дисциплину. Все это стало возможным стараниями легиона специалистов, которые разработали общие практики, которые позволяют писать веб-проекты, с использованием некой архитектуры, а не подобно исследователю, сбрасывающему ящик типографского шрифта с крыши небоскреба, в надежде, что тот чудесным образом сложится в первый том «Войны и Мира». Самой распространенной парадигмой веб-программирования является, вне всякого сомнения, MVC — Model-View-Controller. Говоря примитивно, эта парадигма предусматривает разделение кода приложения на слой управления (Controller), слой представления (View) и слой управления данными (Model). При этом MVC предусматривает, что Controller и View могут (но не обязаны) зависеть от Model, в то время как Model ни при каких условиях не должен зависеть от них.
Есть много различных подходов, как отделить бизнес-логику приложения от логики отображения и управления. Все они предусматривают, что модель является частью приложения и взаимодействует с БД, использую последнюю лишь в качестве хранилища данных. Мы же попытаемся пойти иным путем и по возможности максимально вынести бизнес-логику приложения на уровень БД.
Предупреждение: лицам с тонкой душевной организацией лучше не видеть того, что будет твориться под катом.
Читать дальше →

Проектируем компьютерный корпус в CATIA V6

Reading time4 min
Views55K
Что общего у российского суперкара Marussia и самолета Boeing 777? При разработке этих, да и многих других продуктов, равно как и при создании «виртуальной копии» пирамиды Хеопса и моделировании процессов таяния айсберга используются решения компании Dassault Systemes. Честно говоря, никогда не любил слишком уж размытое понятие «решения», но то, что разрабатывают в Dassault Systemes, «программами» назвать сложно. Это огромные программные комплексы, решающие любые задачи, связанные с разработкой, проектированием и производством. От первоначального списка требований к изделию (будь то бутылка для минеральной воды или космический аппарат) до виртуальных испытаний готового образца. От контроля над исполнением проекта до учета отзывов владельцев предыдущей модели. Наконец, решения DS могут обеспечить удаленный доступ и совместную работу тысяч сотрудников большой производственной компании с отделениями по всему миру. Но есть, впрочем, и бесплатный 2D CAD для всех желающих.

Разобраться в этом огромном и не слишком знакомом обычному пользователю количестве софта достаточно сложно. Одна только система 3D-проектирования CATIA насчитывает около 200 модулей для разных сфер производства, в каждом из которых учитываются свойства металлов, параметры готовых электронных компонентов и многое другое. И вместе с тем, сделано все возможное, чтобы максимально упростить жизнь разработчику или дизайнеру. В этом материале я покажу, как готовый продукт создается на практике. К сожалению, заказчики Dassault Systemes обычно не делятся своими новейшими разработками – это их коммерческая тайна – поэтому инженеры компании создают собственные демонстрационные модели. Для первого материала в блоге Dassault Systemes на Хабре я выбрал наиболее интересную и хорошо знакомую большинству пользователей модель – компьютерный корпус. С процессом проектирования его детали – задней стенки – я и хочу вас познакомить.
Познакомиться

Новый пуленепробиваемый синтаксис @font-face

Reading time3 min
Views71K
С самого начала «вебошрифтовой революции» мы полагались на неизящные хаки деклараций @font-face, чтобы шрифты из Паутины загружались во всех браузерах. Может ли существовать лучший путь? Вполне изящный и совместимый с будущими браузерами?

Вкратце об истории вопроса


В сентябре 2009 года Пол Айриш (Paul Irish) огласил пуленепробиваемый синтаксис для записи деклараций @font-face. Синтаксис был компактным и в то время действовал во всех браузерах. Недавно стали поступать, со временем усиливаясь, жалобы на отказ шрифтов загружаться в Android — поэтому мы стали вместо того рекомендовать синтаксис «Mo' Bulletproofer», сочинённый Ричардом Финком (Richard Fink). К сожалению, синтаксису «Mo' Bulletproofer» требуется двойная запись деклараций, так что поддержка его сложнее.

Синтаксис Fontspring @Font-Face


А вот таким этому коду следовало бы быть с самого начала. Чистым, ясным и простым:
@font-face {
	font-family: 'MyFontFamily';
	src: url('myfont-webfont.eot?') format('eot'), 
	     url('myfont-webfont.woff') format('woff'), 
	     url('myfont-webfont.ttf')  format('truetype'),
	     url('myfont-webfont.svg#svgFontName') format('svg');
	}

Что? Я не понял.


Хак Трюк, заставляющий этот код заработать — символ «?» вслед за именем файла EOT. Без шуток.

Как это срабатывает


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

Мотивация идеей

Reading time3 min
Views3.9K
Идея – мысль лежащая в основе того или иного поведения.

Как-то на глаза попался процесс дрессировки, который проводили со слонятами. Суть следующая: маленьких слонят привязывали к дереву цепью за ногу. Естественно слоненок вырывался, день неделю, пару недель, но в какой то момент он переставал дергаться и в этот самый момент с него снимали цепь. Все! Этот слон никуда не уходил – хотя он мог это сделать в любой момент! Что произошло? С помощью усилия слоненку внедрили идею, что-то вроде «бесполезно дергаться». Причем идея, лежащая на поверхности, но не подвергающаяся критической оценке, т.е. стопроцентное согласие.
Читать дальше →

Инфраструктура сети: AS, PI, LIR и прочие вкусности. :)

Reading time4 min
Views98K
Не нашел на Хабре внятного этой RIPEвской кухни, потому пишу сам :)

Здесь я попробую (кратко) рассказать, как работает Интернет :)
И какие бонусы может извлечь из этого администратор сети предприятия, хостер или ISP.

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

Забавляемся с хешами

Reading time5 min
Views90K
Привет. Я хочу показать вам небольшой фокус. Для начала вам потребуется скачать архив с двумя файлами. Оба имеют одинаковый размер и одну и ту же md5 сумму. Проверьте никакого обмана нет. Md5 хеш обоих равен ecea96a6fea9a1744adcc9802ab7590d. Теперь запустите программу good.exe и вы увидите на экране следующее.
Попробуйте запустить программу evil.exe.
Что-то пошло не так? Хотите попробовать сами?
Тогда добро пожаловать под кат.

Простейший способ создать окружение virtualenv

Reading time1 min
Views16K
В этой статье я хочу вам рассказать про это уникальный способ создания изолированных окружений Python для удобной и комфортной разработки даже в самых дремучих условиях.

$ python -murllib http://tiny.cc/ve-setup | python

Так это выглядит, а под катом находится пара рецептов использования.
Читать дальше →

Работаем с jQuery Templates

Reading time20 min
Views140K

Введение


Плагин jQuery Templates – это «движок шаблонов», работающий на стороне клиента как расширение jQuery.

Этот плагин помогает показать в браузере данные, которые находятся в объектах и массивах JavaScript, избавляя вас от рутинных операций по созданию HTML-кода, экранированию специальных символов и т.п. Кроме того, он обладает очень интересными возможностями – например, позволяет обновлять созданный с его помощью HTML-код при изменении исходных данных.

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

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

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

Анонимные сети и timing атаки: Введение

Reading time6 min
Views8.4K
Введение | Tor | Tarzan и MorphMix | Малозатратная атака | Малозатратная атака на Tarzan и Morphmix | Принципы построения безопасных систем (заключение)

Представляю вашему вниманию часть статьи признанных исследователей в области информационной безопасности, переводом которой мы (участники "openPGP в России") сейчас занимаемся. Среди авторов Willy Susilo (Co-Director, Centre for Computer and Information Security Research).

Приведенное ниже "Введение" из статьи "Принципы построения анонимизирующих систем с малыми задержками противостоящих timing-атакам" адресовано всем интересующимся сетевой анонимностью. Авторы доступным языком раскрывают основы анонимизаторов и возможных на них атак, с упором на самому популярную в настоящий момент анонимизирующую сеть "Tor".
Читать дальше →

VkOMG. Разработка очередного никому не нужного сервиса

Reading time7 min
Views1.2K
image
Меня всегда интересовали разнообразные «плюшки» для социальных сетей с точки зрения маркетинга. А именно то, как быстро войдет этот очередной бред в массовое пользование и то, сколько сил будет затрачено на достижение данного эффекта. Ниже я расскажу результат того, что я узнал на примере нашей последней работы vkomg.com

Уже несколько лет работаю фрилансом в американской компании, ориентирующейся на веб-разработках. Работа вполне стандартная для среднестатистической фриланс конторки: доработка кривого кода, доставшегося по наследству от прошлых разработчиков проекта, плюшки и плагины для CMS, иногда неплохие масштабные стартапы. Все это, конечно, хорошо. Но давно известно, что мелкие, на первый взгляд никому не нужные вещи приносят отдачи намного больше. Поэтому, в один прекрасный день, увидев на фейсбуке новые профили, мы разработали сервис по созданию очередного никому не нужного забавного аватарного эффекта.
image
Пару дней назад, увидев, что на родном ВКонтакте появился точно такой же блок с фотографиями около главного фото, мы загорелись идеей переделать имеющийся фейсбуковский проект под вконтакте в первый же день.
Добившись довольно интересных результатов в США, не выложив на продвижение никаких средств со своего кармана, начав всего с одной ссылки в собственном профиле, стало очень интересно какие результаты покажет Россия.
Конкретные цифры, история, результаты и куски кода в продолжении поста.

UPD: Хабраэффект в действии. Ругаемся с техподдержкой за несоответсвие обещаной максимальной нагрузки действительности.
UPD2: Хостер исправился. Сервер в полном здравии.

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

Silverlight Stock Charts

Reading time1 min
Views5.1K
Недавно мы выпустили AnyChart Stock — Flash-компонент, позволяющий создавать финансовые графики.
А теперь у нас появилась бета-версия для Sliverlight.

Поучаствовать в бета-тестировании можно вот здесь: http://anychart.com/beta/silverlight/
Читать дальше →

Как быстро проверить Linux сервер на предмет взлома

Reading time4 min
Views128K
Примерно два года назад я арендовал у одного немецкого хостера не очень мощный сервер на базе Centos 5.2. На нём живут несколько вебпроектов, приносящих некоторую прибыль, и поэтому, я стараюсь присматривать за ним по мере возможности.
На Centos есть стандартный анализатор логов Logwatch, который запускается ежедневно по крону, анализирует содержимое /var/log, делает сводный отчет и присылает его по электропочте. В один прекрасный день я обнаружил в этом отчете запись:

--------------------- yum Begin ------------------------ 
 
 Packages Installed:
    lzo2 - 2.02-3.el5.rf.i386
    dnstracer - 1.8-1.2.el5.rf.i386
    openvpn - 2.0.9-1.el5.rf.i386

---------------------- yum End -------------------------


В тот момент меня она очень смутила, так как в предыдущий день на сервер я не логинился и тем более ничего не устанавливал. Первое, что пришло в голову — сервер был скомпроментирован. Себя я считал уверенным пользователем Linux, однако я растерялся. Благо в тот момент в icq был мой бывший коллега, лучший системный администратор, которого я знаю, и просто очень хороший человек.
Он помог быстро проверить систему. В результате у меня сформировалось краткое HowTo о том, как быстро проверить свой сервер на предмет взлома. Уверен, что многим Храброчитателям оно будет полезно. Предполагается, что пользователь знаком с консолью Linux/Unix.

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

Тесты для тестов

Reading time5 min
Views20K
Один из самых частых ответов на вопрос «Почему я не пишу юнит-тесты» — это вопрос «А кто напишет тесты для моих тестов? Где гарантия, что в моих тестах тоже не будет ошибки?», что свидетельствует о серьёзном недопонимании сути юнит-тестов.

Цель этой заметки — коротко и чётко зафиксировать этот момент, чтобы больше не возникало разногласий.

Итак, юнит-тест — это
Читать дальше →

Простейшее web-приложение на LiftWeb

Reading time4 min
Views3.6K
Прочитал недавно один топик, немного поискал в интернете утилиту, которая бы выводила расшифровку флагов процессора, не нашел, а потому взял и написал свою. Используя LiftWeb.

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

Один компьютер на двоих (и более) или multiseat на базе Ubuntu 10.04 LTS

Reading time22 min
Views49K
В данной статье рассматривается реализация multiseat на базе Ubuntu 10.04 LTS с аппаратным ускорением. Пример, рассмотренный в этой статье, уже введен в эксплуатацию и работает около полугода в обычном Минском офисе. Описываются проблемы реализации и внедрения готовой системы в работу с точки зрения обычного студента-электроприводчика, который подрабатывает на полставки системным администратором.

Вступление



Вот время работы системным администратором в небольшом офисе при обновлении парка компьютеров появилась небольшая проблема. Современные компьютеры дают уровень производительности, много превосходящий необходимый для офисных компьютеров. Причем реалии рынка таковы, что различия в производительности мало сказываются на цене. И вроде бы дешевые компьютеры на базе Atom по ценовому признаку практически не отличаются от более производительных компьютеров на базе обычных процессоров Amd и Intel (материнская плата с процессором Atom стоит около 100-150 у.е. на май 2010 года, Минск, и та же цена на октябрь 2010 в том же Минске).

Та же ситуация и с жесткими дисками: для офисной работы нет необходимости в объеме диска более 40-80 Гб. Но на рынке такие жесткие диски уже практически не представлены. На момент написания статьи в продаже были жесткие диски емкостью 160 Гб (38$), 250 Гб (39$), 320 Гб (40$), 500 Гб (41$), дальше различия по ценам заметны сильнее. Цена за гигабайт жестких дисков малого объема довольно высока. Та же ситуация и со всеми остальными комплектующими.

Возникает закономерный вопрос, как рационально все это использовать? Давайте подойдем логически — чтобы удешевить систему можно либо купить комплектующие похуже (не сильно удешевляет), либо отказаться от некоторых комплектующих. По сути, в рабочем месте обязательными являются устройства ввода (клавиатура, мышь, планшет и т.д.) и устройства отображения информации (монитор, проектор и т.д.). Остальная часть системы пользователей особо не касается, и от нее можно избавляться. Безусловно, от всего избавиться не получится. Давайте заглянем под крышку системного блока. Тут мы обязательно видим материнскую плату, видеокарту (может быть уже на материнской плате), процессор (тоже может быть на материнской плате) и память. А вот остальные комплектующие уже не так важны. Оптический привод мало востребован, и поэтому его, скорее всего, не будет.
С жестким диском тоже интересная ситуация. Его может и не быть, тогда у нас будет так называемая бездисковая станция. Тут вся информация загружается по сети с сервера (реализация PXE+NFS и немного бубна). Но хочется чего-то большего.
Тогда и возникла идея подключить к одному компьютеру две клавиатуры, две мыши и два монитора и заставить их работать независимо. В зарубежных источниках такие системы называются multiseat.
Но можно на этом и не ограничиваться, а делать бездисковую multiseat-станцию. Этот вариант отлично подойдет для пары multiseat-станций с сервером. В данной статье не рассматривается.

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

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Date of birth
Registered
Activity