Как стать автором
Обновить
7
0

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

Отправить сообщение

Не строим с нуля. Теперь у Вас есть шаблон для верстки HTML5

Время на прочтение2 мин
Количество просмотров17K
Любовь к HTML5 продолжает вдохновлять Поля Айриша. Во-первых, он подарил нам Modernizr, а сейчас он объединился с Divya Manian для создания шаблона HTML5, который использует передовые техники, чтобы Вы могли начать использовать его в своей практике.

Он, в сущности, является хорошей отправной точкой, состоящей из HTML и CSS, предлагающим также и структуру папок, которая работает. Но созданным с учётом многих лет передового опыта профессионалов в разработке клиентской части. Загляните в исходные тексты, чтобы почувствовать, что находится внутри. А если вы думаете, что этого слишком много, просто удалите лишнее.
Читать дальше →
Всего голосов 157: ↑146 и ↓11+135
Комментарии48

Кэширование данных, возможно последняя вещь которую Вам стоит использовать

Время на прочтение3 мин
Количество просмотров14K
Недавно у меня был достаточно горячий конфликт с популярным PHP пакетом для электронной коммерции. В результате мне захотелось рассказать об одной распространенной ошибке в архитектуре веб приложений.

В чем же эта ошибка?
Читать дальше →
Всего голосов 74: ↑58 и ↓16+42
Комментарии58

Windows-компьютер без антивирусов

Время на прочтение6 мин
Количество просмотров63K
Предупреждение: Описанное в статье несколько устарело, т.к. я забросил винды в эпоху Windows 2003.

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

Ниже описывается настройка windows, которая позволит защититься от любых реальных (т.е. встречающихся в природе) вирусов без использования антивирусов. Данная конфигурация уже 3 с половиной года работает на терминальном сервере, где пользователи (в лучшие времена до 70 человек) совсем не стесняются притаскивать на флешках всяких засранцев, лазать по сети где попало и т.д.

Теория


Любой уважающий себя вирус, оказавшись запущенным, тем или иным методом стремится в системе закрепиться, т.е. создаёт исполняемый файл или библиотеку, которая прописывается тем или иным образом в запуск. «Авто» запуск или в форме «дополнения» к другим исполняемым файлам (debugger, hander, плагин, и т.д.) — не важно. Важно: существует барьер под названием «запуск кода». Даже старые-добрые вирусы, дописывающие себя в исполняемые файлы, всё равно должны иметь возможность писать в файлы, которые предполагается запускать.

Безусловно, есть вирусы, размножающиеся без создания файлов (например, мс-бласт). Но условием появления этого вируса должна быть доступность сервера для обращений с носителей вируса или запуск кода через эксплоит в браузере\сетевой компоненте. В случае дыры в браузере дальнейшее размножение не возможно (т.к. нужно обращаться к браузерам на других машинах, а это требует поднятия сервера, куда будут ходить другие пользователи и мотивации пользователям ходить именно на этот узел). В случае дыры в сетевой компоненте и размножения без сохранения на диск, описанная мною методика с большой вероятностью работать не будет и возможна эпидемия. Однако, я не уверен, что антивирусы поймают такой 0day эксплоит, плюс, их (дыры) довольно резво фиксят, так что этот сценарий я откладываю как маловероятный. Наличие же файрволов ещё более уменьшает их опасность. От не-0day вполне же спасает своевременная (автоматизированная) установка обновлений.

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

В Windows существует технология — политика ограниченного запуска приложений. Её можно активировать в режиме «запрещать всё, что не разрешено». Если поставить запрет полный — для всех, включая администраторов, все файлы, включая библиотеки, то мы получим точную гарантию того, что посторонний (не входящий в список разрешённых) файл не будет запущен. По-крайней мере я пока не слышал, чтобы в этой технологии были дыры. Обращаю внимание, нужно запрещать и библиотеки тоже, потому что печально известный конфикер запускается с флешек именно с помощью запуска библиотеки обманом rundll32.

Однако, запреты и разрешения не будут иметь смысла, если не сформулировать правила, которые запретят запуск «чужаков».

Модель безопасности


Перед тем, как описать подробно конфигурацию, сформулирую теоретические принципы её организации:

1. То, куда пользователь может писать закрыто для запуска.
2. То, что пользователь может запускать, закрыто для записи.
Читать дальше →
Всего голосов 139: ↑109 и ↓30+79
Комментарии133

Зацикливание цвета на холсте

Время на прочтение2 мин
Количество просмотров3.2K
[подлинное зацикливание восьмибитного цвета при помощи HTML5]

Интерес к холсту (<canvas>), а равно и к мобильным приложениям, приводит к возрождению прежней художественной школы восьмибитных изображений. Joe Huckaby из Effect Games поигрался с зацикливанием цвета, что привело к несколько ошеломляющим результатам.
Помнит ли кто-нибудь зацикливание цвета в девяностых годах? Эта технология часто использовалась восьмибитными видеоиграми той эпохи для достижения интересных зрелищных эффектов методом зацикленного сдвига цветовой палитры. Тогда видеокарты могли показывать только 256 цветов за раз, так что использовалась палитра подобранных цветов. Но программист мог переменять эту палитру по своему усмотрению, и цвета на экране тотчас переменялись, подстраиваясь под неё. Это происходило быстро, и не требовало буквально никакой дополнительной памяти.
Здесь также происходит искусная оптимизация — вместо того, чтобы очищать и перерисовывать всю сцену в каждом кадре, Джо обновляет только те пикселы, которые изменяются:
Чтобы достигнуть во браузере быстрой смены кадров, мне пришлось устроить слегка безумную оптимизацию движка. Отображение картинки 640×480 с индексированным цветом на тридцатидвухбитном RGB-холсте означало бы обход и прорисовку 307200 пикселов в каждом кадре джаваскриптом. Это обход обширного массива, так что некоторые браузеры просто не в состоянии справиться с этим. Я преодолел их медлительность предварительной обработкою изображений, когда они впервые загружаются, и сбором тех пикселов, которые ссылаются на анимируемые цвета (то есть на цвета, входящие в зацикливаемые подмножества палитры). Координаты этих пикселов хранятся в отдельном (меньшем) массиве, и оттого одни только изменяемые пикселы обновляются на экране. Этот финт оптимизации сработал настолько превосходно, что анимация действительно крутится на весьма неплохой скорости в моём iPhone 3GS и iPad!
Всего голосов 215: ↑202 и ↓13+189
Комментарии129

Интерактивная консоль PHP

Время на прочтение2 мин
Количество просмотров7.1K
Идея этого лежит на поверхности, но почти все, кому я показывал эту штуку, удивлялись и просили дать им ссылку. Хотя идея простая, а про stdin и readline знают почти наверное все.

Так вот, интерактивная консоль — это просто и очень полезно. С историей и автодополнением.

такие дела
Читать дальше →
Всего голосов 101: ↑78 и ↓23+55
Комментарии88

Установка node.js на Linux, FreeBSD, Windows

Время на прочтение6 мин
Количество просмотров85K
node.js — серверный асинхронный Javascript, превосходный инструмент для создания серверной части COMET приложений, в частности, для игрушек, чатов, и других высоконагруженных проектов, использующий синтаксис Javascript, прекомпилируемый в машинный код, работающий на скорости, сравнимой с кодом на C++, очень быстрый, способный держать 10 — 12 тысяч подключений, и не создающий отдельного процесса/не интерпретирующий себя заново/не запускающий процесс при каждом новом клиенте. Использует в качестве основы V8 — движок Javascript от Google. Удобные возможности, можно установить значение переменной при одном посетителе, и считать это значение при ответе другому.
Обращаю внимание на то, что если вы не программировали, например, на Python или Ruby, только на PHP, не обходите его стороной, это не ещё один незнакомый язык. И в этом его преимущество — Javascript — знакомый язык, особенно для тех, кто программировал на PHP+Javascript, но PHP не позволял очень многих вещей, особенно в связке с Apache, например, аплоад файлов с полосой загрузки (без Flash), возможность низкоуровневого управления сетью (возможность написать, например, клиента или сервер Mysql или прокси-сервер вроде nginx).
О гибкости языка говорит тот факт, что расширения для работы с MySQL, например, написаны на самом Javascript.
Я планировал написать статью с описанием этой замечательной системы, с примерами, но на момент чтения читателю хорошо бы иметь под рукой установленную версию node.js. Поэтому этот пост о том, как установить node.js, в том числе и на Windows, что актуально в связи с недавним появлением порта под cygwin. (Да, есть информация о том, где скачать node.exe)
Читать дальше →
Всего голосов 66: ↑61 и ↓5+56
Комментарии48

US Virtual Bank Account, или как вывести деньги с зарубежных платежных систем

Время на прочтение6 мин
Количество просмотров63K

Преамбула.


В связи с бурным развитием мобильных устройств и ОС Google Android в частности, интерес к разработке программного обеспечения под данную платформу весьма закономерное явление. Как оказалось, он мало чем отличается от обычной разработки на Яве под десктоп/веб, а с учетом возможности использования «стандартного» IDE (Eclipse) путем скачки и встраивания SDK Андроида, а также наличия исчерпывающей документации многие технические вопросы снимаются сами собой. Концептуальный аспект (т.е. идея для реализации в виде ПО) также не заставила себя ждать, благо платформа сравнительно новая, не смотря на недавно вышедшую уже версию 2.1, и конкурентная среда соответственно не такая насыщенная, если взять, к примеру, разработку под тот же iPhone. (Тут могла бы быть развернутая часть о самом ПО, но ввиду некоторых нюансов, таких как незаконченность проекта и отсутствие конкретных результатов, пока ее пропустим).
Оставался последний, и, естественно, самый интересный (логично, не правда ли?) вопрос – денежный, а конкретно – как правильно вывести честно заработанные дензнаки, полученные от продажи ПО на Android Market.
Piccy.info - Free Image Hosting
Вдаваться подробности не буду, все-таки статья ориентирована на тех, кто примерно ориентируется в данной теме, скажу коротко — в данном случае под прицелом оказывается сервис обработки онлайновых платежей Google Checkout, который с нерезидентами США изначально не работает. Насколько мне известно, прямых путей решения данной проблемы нет, поэтому пришлось искать обходные дорожки.
Читать дальше →
Всего голосов 114: ↑110 и ↓4+106
Комментарии84

Удалённый сервер с 100% шифрованием и защитой от маски-шоу

Время на прочтение4 мин
Количество просмотров46K
На написание сего шедевра меня сподвигла статья «Мечта параноика или Еще раз о шифровании». Очень замечательная и полезная за одним исключением — если придут «маски-шоу», то они заберут сервер вместе со всеми флэшками и ключами. Отсюда вопрос — как сделать так, чтобы на сервере вообще не было никаких следов шифрования, ключей и т.п.?
Ответ банален — не хранить их на сервере. И рядом с сервером не хранить. И вообще где-либо в районе досягаемости потенциального злоумышленника.
Читать дальше →
Всего голосов 155: ↑137 и ↓18+119
Комментарии167

Модели реальности и их роль в жизни людей

Время на прочтение4 мин
Количество просмотров16K
Есть модель мира, и есть реальный мир.
Как в физике — есть какое-то явление, а есть его модели.

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

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

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

Вот только отличий от физиков тут три. Первое — это незнание природы работы мозга. И отсюда вытекающая уверенность, что все, что человек видит, думает и знает — и есть истина. То есть человек себя убедил (читай сделал себе модель) в том, что Windows лучше, чем Linux — все, теперь в его модели мира может быть только этот факт. Второе отличие как раз в уточнении модели. Люди не уточняют модели реальности, как правило, более того, мозг специально отсекает факты, противоречащие модели, либо вырабатывает «адаптеры» в виде «логических объяснений», чтобы не нарушить комфорта в восприятии мира — все знают нелюбовь к изменениям, боязнь, что «мир встанет с ног на голову».
Читать дальше →
Всего голосов 128: ↑103 и ↓25+78
Комментарии96

Обеспечение качества программного продукта

Время на прочтение4 мин
Количество просмотров11K
Дисциплина «Метрология программного обеспечения» входит в учебный план подготовки дипломированных специалистов по направлению 654600 — «Информатика и вычислительная техника» по специальности 220400 — «Программное обеспечение вычислительной техники и автоматизированных систем». Дисциплина изучает проблемы оценки метрических характеристик качества ПО на этапах от разработки спецификаций до завершения отладки и тестирования программного продукта. В курсе рассматриваются критерии, характеристики и метрики качества ПО; особый упор делается на характеристики корректности, надежности и сложности программ. Изучаются формальные модели и методы оценки как статических, так и динамических характеристик качества ПО, позволяющие на различных стадиях разработки выявлять просчеты и дефекты программного изделия. Рассматриваются инструментальные средства поддержки и автоматизации измерения характеристик ПО.
Далее по тексту будет находится краткий обзор инструментов с помощью которых можно анализировать различные характиристики в приложениях созданных на PHP. Данный материал появился на свет в результате некоторых экспериментов в области непрерывной интеграции, и должен был являться частью статьи про непрерывную интеграцию (спойлерить пока не буду, боюсь сглазить) все в том же РНР, но я решил все-таки выделить его в самостоятельный обзор, так как возможно, в последующих статьях я буду ссылаться на него, а так же надеюсь узнать об аналогичных инструментах еще не попавших мне на глаза. Некоторые инструменты уже были рассмотрены достаточно подробно, но тем не менее полного списка всех доступных еще не было.
Читать дальше →
Всего голосов 127: ↑115 и ↓12+103
Комментарии43

Использование Delegate и Undelegate в jQuery 1.4.2

Время на прочтение5 мин
Количество просмотров8.8K
jQuery
В комментариях к анонсу версии 1.4.2 было много вопросов по поводу 2-х новых методов, появившихся в новой версии jQuery
Вы наверное слышали, что в jQuery 1.4.2 было добавлено 2 новых метода: .delegate() и .undelegete(). Эти два метода предназначены для тех же целей, что и методы .live() и .die() ссответсвенно, они только используют другой синтаксис.
узнать больше
Всего голосов 135: ↑85 и ↓50+35
Комментарии75

Эмуляция NES (Dendy) на Flash

Время на прочтение2 мин
Количество просмотров2.5K

Представляю Вам первый в своем роде проект в интернете, позволяющий эмулировать NES ROMs на Flash.

Встречайте www.nesbox.com! На сайте собрана коллекция из 1804 игр! (мне в детстве такое и не снилось.
Читать далее...
Всего голосов 137: ↑122 и ↓15+107
Комментарии109

Именуем картинки с умом

Время на прочтение3 мин
Количество просмотров4.1K
Каждому HTML кодеру приходится нарезать картинки .psd из макетов будущего сайта, и эта задача настолько обыденна, что опытный верстальщик делает её на автомате. Не перегружая головной мозг, просто вырезает картинку, выбирает подходящий формат и настройки оптимизации, называет как бог на душу положит и кладёт в папку с картинками.
Читать дальше →
Всего голосов 73: ↑54 и ↓19+35
Комментарии55

Быстрочтение featuring Восприятие текста

Время на прочтение8 мин
Количество просмотров79K
Привет всем. Основываясь на предыдущем опыте, считаю нужным сразу расставить все точи над ё. Описанная ниже методика — не мое изобретение. Однако из собственного опыта могу уверить вас, что она работает. Ровно так, как обещано.
Идея, описанная в посте, появилась давно (под катом есть история), в том виде, в каком расскажу ее я, по большей части она представлена в чудесных книгах Тони Бузана Use You Head и The Speed Reading Book (в последней много воды).

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

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

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

1. Чтение со скоростью свыше 1000 слов в минуту невозможно?
2. Медленная скорость чтения способствует лучшему пониманию текста?
3. Пропускать слова во время чтения — плохая привычка, ухудшающая понимание текста?
4. По умолчанию мы все читаем с «естественной» для нас скоростью, а следовательно, наилучшей?
5. Если вы не поняли слово или предложение, лучше перечитать его и понять?
6. Ваши глаза находятся в непрерывном движении во время чтения?
За результатами и, наконец-то, интересными штуками добро пожаловать под кат.
Читать дальше →
Всего голосов 169: ↑145 и ↓24+121
Комментарии100

Двунаправленный асинхронный обмен данными в веб-приложениях

Время на прочтение4 мин
Количество просмотров21K
Одной из основных черт современного веба эксперты называют RIA, что часто расшифровывается как тренд, когда веб-приложения по функциональности приближены к настольным приложениям. Тем не менее, это приближение весьма условно. Подавляющее большинство «обогащеных» веб-приложений по-прежнему построены по модели «запрос-ответ». Т.е. события на стороне клиента могут быть отражены на стороне сервера, никак не наоборот. Для того чтобы реализовать такую банальную вещь как чат приходиться прибегать к изощренным уловкам. Спасибо Алексу Расселу (Alex Russell) из Dojo, у нас есть даже имя для подобной техники – Comet.
Читать дальше →
Всего голосов 68: ↑64 и ↓4+60
Комментарии52

Отключайте autocomplete

Время на прочтение3 мин
Количество просмотров80K
В 1999-м году в браузере IE 5 Микрософт впервые реализовал автозаполнение текстовых полей форм, что позволило вам не вводить текст, который вы уже вводили ранее в поле с данным именем (в том числе на другом сайте). Тогда же появилось нестандартное расширение тега <input>: атрибут autocomplete, установление которого в off позволяло отключить эту функциональность для конкретного поля. Сейчас все популярные браузеры (подсказали, что кроме Оперы) поддерживают автозаполнение и этот атрибут. Он также введён в стандарт HTML 5. Тем не менее, разработчики веб-сайтов зачастую им пренебрегают.
Читать дальше →
Всего голосов 161: ↑153 и ↓8+145
Комментарии56

Где погрызть гранит науки

Время на прочтение4 мин
Количество просмотров28K
image Здравствуй, хабрасообщество. Я знаю, ты любишь халяву. А еще ты любишь учиться. Ведь так? А что может быть лучше для хабравчанина бесплатного образования? Вот и решил собрать специально для тебя подборку из ссылок, где можно набраться уму-разуму в области IT.
Все нижеперечисленные ресурсы абсолютно и официально бесплатны и свободны, что не может не радовать.

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

Большое спасибо в помощи добавлении ресурсов vansickle, RedFox, kagen, theinterman, sM1Le.

Англоязычные ресурсы



Компьютерные науки



OpenCourseWare MIT




Одно из самых больших хранилищ учебных курсов. Здесь собраны практически все курсы, которые преподаются в Massachusets Institute of Technology, который по праву считается одним из лучших в мире. На сайте всего 1900 курсов, а тех, которые преподаются на факультете Electrical Engineering and Computer Science я насчитал более 200. Состав большинства курсов: краткие конспекты лекций, подробное описание курса, календарный план, задания на лабораторные работы, задания на курсовые проекты и экзамены, промежуточные модули. К некоторым курсам прилагаются и видеолекции.

смотреть другие сайты
Всего голосов 223: ↑213 и ↓10+203
Комментарии69

Мониторинг домашнего роутера

Время на прочтение3 мин
Количество просмотров241K


Знакома ли вам ситуация «инет никакой»?

Обычно попытка исправления подразумевает:
— обход членов семьи (ну да, я качаю новый сезон «Доктор Хаус». А кому это может мешать?)
— перезагрузить роутер (ну завис я, завис — сутками всякую дрянь качаете..)
— не качаются ли обновления (приятная новость — новый Acrobat Reader...)
— нет ли у нас блошек (нашему ботнету сегодня дали большое домашнее задание)
— звонок провайдеру (наш канал работает как часы с самого основания компании)
— эм. может еще раз роутер?

все может стать проще
Всего голосов 144: ↑138 и ↓6+132
Комментарии127

WebSockets — полноценный асинхронный веб

Время на прочтение7 мин
Количество просмотров345K
Пару недель назад разработчики Google Chromium опубликовали новость о поддержке технологии WebSocket. В айтишном буржунете новость произвела эффект разорвавшейся бомбы. В тот же день различные очень известные айтишники опробовали новинку и оставили восторженные отзывы в своих блогах. Моментально разработчики самых разных серверов/библиотек/фреймворков (в их числе Apache, EventMachine, Twisted, MochiWeb и т.д.) объявили о том, что поддержка ВебСокетов будет реализована в их продуктах в ближайшее время.
Что же такого интересного сулит нам технология? На мой взгляд, WebSocket — это самое кардинальное расширение протокола HTTP с его появления. Это не финтифлюшки, это сдвиг  парадигмы HTTP. Изначально синхронный протокол, построенный по модели «запрос — ответ», становится полностью асинхронным и симметричным. Теперь уже нет клиента и сервера с фиксированными ролями, а есть два равноправных участника обмена данными. Каждый работает сам по себе, и когда надо отправляет данные другому. Отправил — и пошел дальше, ничего ждать не надо. Вторая сторона ответит, когда захочет — может не сразу, а может и вообще не ответит. Протокол дает полную свободу в обмене данными, вам решать как это использовать.

Я считаю, что веб сокеты придутся ко двору, если вы разрабатываете:
— веб-приложения с интенсивным обменом данными, требовательные к скорости обмена и каналу;
— приложения, следующие стандартам;
— «долгоиграющие» веб-приложения;
— комплексные приложения со множеством различных асинхронных блоков на странице;
— кросс-доменные приложения.

Заинтриговал? Давайте посмотрим подробнее
Всего голосов 222: ↑210 и ↓12+198
Комментарии389

Текст любой ценой: PPT

Время на прочтение3 мин
Количество просмотров5.1K
Некоторое время назад мы с вами обсуждали получение чистого текста из различных форматов данных: будь то PDF или DOC. В одном из обсуждений был высказано предположение, что при парсинге презентаций PowerPoint я заработаю геморрой или другую страшную болезнь мягкой точки. Что ж, волей судеб мне пришлось доставать текст и из этого «сладенького» формата. Скажу честно, геморрой заработать не удалось, а вот класс для парсинга презентаций вышел.
Читать дальше →
Всего голосов 54: ↑46 и ↓8+38
Комментарии25

Информация

В рейтинге
Не участвует
Откуда
Антарктика
Зарегистрирован
Активность