Недавно взглянул на сорцы Farseer Physics Engine. Стало интересно как в этом движке реализован динамический объект. Как и ожидал, не встретил там привычных мне дифференциальных уравнений и их дискретных реализаций в виде разностных уравнений или дискретных моделей пространства состояний. Главная отмазка заявляемая причина отказа от «честной» механики во многих игровых физических движках — излишняя сложность работы с дифференциальными уравнениями и слишком большая вычислительная нагрузка.
Александр @Funcraft
User
Социальные интернет-сервисы как инструменты созидания социальных сред
11 min
2.6KВ октябре 2011 года наш интернет-сервис безвозмездного дарения Дару-дар пригласили поучаствовать в VIII международном научно-практическом междисциплинарном симпозиуме Рефлексивные процессы и управление, проводимом под эгидой Института Философии РАН.
Ключевым словом, по которому мы нашли пересечение с сугубо философской проблематикой, было слово «среда», а если быть более точным, то понятие «социальная среда». Мы давно ввели это слово в повседневный язык нашей группы разработчиков, чтобы лучше понимать, чем мы занимаемся, чтобы уточнить методологию и приоритеты нашей разработки, а также и для того, чтобы обозначить место разрабатываемого нами сервиса в сложном пространстве современных интернет-стартапов.
Подготовка к философской конференции спровоцировала нас, наконец, оформить свои мысли в текст, который теперь хочется предоставить вниманию IT-сообществу. Как нам представляется, сформулированные нами концепты могут быть полезны всем тем, кто занимается разработкой социальных интернет-сервисов или кто мыслит себя как социальный предприниматель. В данном тексте с помощью понятия «социальная среда» на примере интернет-сервиса дарения делается попытка выделить определенный вид социальных интернет-сервисов и посмотреть на них в широком контексте человеческого общества как такового, его устройства и возможностей преобразования.
Ключевым словом, по которому мы нашли пересечение с сугубо философской проблематикой, было слово «среда», а если быть более точным, то понятие «социальная среда». Мы давно ввели это слово в повседневный язык нашей группы разработчиков, чтобы лучше понимать, чем мы занимаемся, чтобы уточнить методологию и приоритеты нашей разработки, а также и для того, чтобы обозначить место разрабатываемого нами сервиса в сложном пространстве современных интернет-стартапов.
Подготовка к философской конференции спровоцировала нас, наконец, оформить свои мысли в текст, который теперь хочется предоставить вниманию IT-сообществу. Как нам представляется, сформулированные нами концепты могут быть полезны всем тем, кто занимается разработкой социальных интернет-сервисов или кто мыслит себя как социальный предприниматель. В данном тексте с помощью понятия «социальная среда» на примере интернет-сервиса дарения делается попытка выделить определенный вид социальных интернет-сервисов и посмотреть на них в широком контексте человеческого общества как такового, его устройства и возможностей преобразования.
+4
Делаем робота ВаллИ
5 min
49KTranslation

Примечание переводчика: робот офигенно умный! Обязательно посмотрите видео под катом!
Первое небольшое введение смотрите тут — http://www.youtube.com/watch?v=OJiMUzJHYFk
Я начал с игрушки «Интерактивный ВаллИ». Текущая цена на toys'r'us составляет $34.99.
Я увлекаюсь роботами и у меня есть большой опыт в программировании и дизайне, чтобы дать роботам эмоции и жизнь. Первый совет, который я могу дать вам, — вы должны быть уверены. Второй совет — будьте креативным. Используйте их вместе, а всё остальное ваш ум сделает за вас :)
В магазинах есть много доступных запчастей. Моя мастерская не представляет из себя ничего особенного. Я стараюсь закупать те детали, которые подешевле. Иногда я разбираю другие игрушки, потому что сервоприводы, к сожалению, самые дорогие из всех запчастей :)
Для крепежа я использую кабельные стяжки, а также маленькие винтики, болтики и гаечки. Все они доступны в дешёвых наборах для сборки в местном магазине.
Чтобы изменять корпуса, я использую инструменты Dremel, а иногда и свой паяльник, чтобы расплавить пластмассу. При шлифовке, пожалуйста, имейте пылесос поблизости. Внимание: При плавке, держите открытым окно с вентилятором!
+89
Параллельная загрузка JavaScript и CSS без блокирования парсинга страницы
5 min
67KИзвестно, что следуя идеям старой школы, а именно, добавляя ссылки на JS и CSS в страницы, может обернуться большим временем загрузки страницы. Браузер отображает страницу по мере скачивания, но останавливается, если натыкается на тег script со ссылкой, до того момента, пока скрипт не будет загружен и выполнен. Сайты стали использовать всё большее количество скриптов, начальное отображение страницы занимает всё больше времени, к примеру, на этой странице, которую вы читаете, 13 скриптов, 7 из которых находятся в head'е. Ко всему прочему, некоторые браузеры по-прежнему придерживаются ограничений на одновременное количество загрузок с одного хоста.
Сразу предлагаю принять, что все JS файлы минимизированы, и передаются в сжатом виде.
Существует несколько решений, как то:
— поместить стили и скрипты прямо в страницу;
— установка аттрибутов async/defer тегу script;
— склеить все скрипты в один файл;
— помесить ссылки на скрипты в конец body;
— разместить все файлы на CDN/на разных хостах;
— свой вариант…
Эти решения работают, каждое лучше или хуже в зависимости от того, как построен сам сайт, но обладают рядом недостатков, которые я опишу ниже.
Существует интересная техника, которая решает проблему паузы перед начальным отображением страницы, а заодно добавляет некоторые удобства. Рискну предположить, что техника эта многим знакома, но тем не менее здесь я о ней упоминаний не видел.
Началось всё, конечно, с того, что я взялся за один проект, и в какой-то момент мне показалось, что простенькая страница достаточно долго загружается, и посмотрел на график загрузки, и на результаты YSlow. Огонь на секунду потух в моих глазах, но зная, что может быть лучше, я полез искать,
Сразу предлагаю принять, что все JS файлы минимизированы, и передаются в сжатом виде.
Существует несколько решений, как то:
— поместить стили и скрипты прямо в страницу;
— установка аттрибутов async/defer тегу script;
— склеить все скрипты в один файл;
— помесить ссылки на скрипты в конец body;
— разместить все файлы на CDN/на разных хостах;
— свой вариант…
Эти решения работают, каждое лучше или хуже в зависимости от того, как построен сам сайт, но обладают рядом недостатков, которые я опишу ниже.
Существует интересная техника, которая решает проблему паузы перед начальным отображением страницы, а заодно добавляет некоторые удобства. Рискну предположить, что техника эта многим знакома, но тем не менее здесь я о ней упоминаний не видел.
Началось всё, конечно, с того, что я взялся за один проект, и в какой-то момент мне показалось, что простенькая страница достаточно долго загружается, и посмотрел на график загрузки, и на результаты YSlow. Огонь на секунду потух в моих глазах, но зная, что может быть лучше, я полез искать,
+84
Уязвимости серверов к медленному чтению
2 min
28KПриветствую.
Хочу рассказать, чем я баловался в свободное от работы в Qualys время. Так как в англоязычном интернете на удивление много шума про Slow Read DoS attack, и уверен что получу здесь много полезной критики и дельных предложений.
В августе 2011 года написал програмку slowhttptest, которая тестирует веб-серверы на наличие уязвимостей, связанных с обработкой медленных HTTP запросов, таких как slowloris и slow HTTP Post. Цель — создать конфигурируемый инструмент, облегчающий работу разработчиков и позволить им концентрироваться на создании эффективных защит, а не ковырянии в питоне, на котором написаны большинство proof-of-concept эксплоитов.
А потом решил попробовать, как реагируют серверы на медленное чтение клиентами HTTP респонсов. На удивление плохо реагируют. Дефолтные apache, nginx, lightpd, IIS отказывают в обслуживании на ура.
А суть такова:
Хочу рассказать, чем я баловался в свободное от работы в Qualys время. Так как в англоязычном интернете на удивление много шума про Slow Read DoS attack, и уверен что получу здесь много полезной критики и дельных предложений.
В августе 2011 года написал програмку slowhttptest, которая тестирует веб-серверы на наличие уязвимостей, связанных с обработкой медленных HTTP запросов, таких как slowloris и slow HTTP Post. Цель — создать конфигурируемый инструмент, облегчающий работу разработчиков и позволить им концентрироваться на создании эффективных защит, а не ковырянии в питоне, на котором написаны большинство proof-of-concept эксплоитов.
А потом решил попробовать, как реагируют серверы на медленное чтение клиентами HTTP респонсов. На удивление плохо реагируют. Дефолтные apache, nginx, lightpd, IIS отказывают в обслуживании на ура.
А суть такова:
+107
Кто кого учит: преподаватель студента или студент преподавателя?
11 min
17K
Вступление
Нет, мой пост не про Никиту Михалкова, как некоторые могли бы подумать, гляда на скриншоты. Мне хотелось бы поведать хабрасообществу о методах преподавания IT-дисциплин на примере нескольких ВУЗов одного из крупных городов в России с позиции человека, который раньше занимался тем, что писал на заказ студентам этих ВУЗов курсовые и дипломные работы и тесно работал не только с учащимися и с преподавательским составом, но и с работодателями. Параллельно это не мешало мне учиться на всё той же специальности, связанной с IT и увидеть всю «систему» своими глазами изнутри. Я читаю хабр уже около четырех лет и заметил, что на нём пишут много статей на тему образования, но тот ВУЗ, где я учился отличается тем, что получил несколько грантов в области нанотехнологий и кластерных вычислений, поэтому я с удовольствием расскажу о всей подноготной таких популярных в телевизоре тем.
В завершение статьи я также хотел бы вывести некоторые тезисы на тему образования в IT, которые будут несколько различаться с общепринятыми, чтобы дать вам пищу для обсуждений в комментариях, если конечно это будет вам интересно…
+104
Улучшенный Android NDK (Native Development Kit)
5 min
34KДолгое время занимаясь разработкой под Android, я постепенно пришел к выводу, что многих вещей мне, как разработчику, сильно не хватает. Тогда, в начале 2010-го, не хватало только C++ exceptions и RTTI. Без них любой нетривиальный C++ код просто не мог быть портирован на Android и требовал практически полного переписывания. Это было очень существенное ограничение, которое никак не давало мне покоя. К счастью, Android — это open source, поэтому, вооружившись максимой «если тебе что-то нужно, сделай это сам», я засел за работу. К моему удивлению, сделать поддержку полноценного C++ с исключениями и RTTI оказалось довольно несложно. Потребовалось всего около недели работы. Далее был сделан сайт, на который и были выложены получившиеся пакеты для Windows, Linux и Mac OS X, а также патч и инструкция по сборке.
+172
Простая реализация Restful для Yii
4 min
12KВведение
Решился я на медни написать расширение google chrome для проекта компании в которой работаю. Расширение и сам проект посвящен авто тематики. В процессе написания меня раздражала серверная часть которая отдавало расширению готовые данные разметку и стили, а хотелось json. На глаза попалась статья о restful и решил написать сервеную часть на restful архитектуре.
Наш проект реализован на нативном php без использования каких либо фреймворков. Написал простой класс реализующий нужные феньки, но на этом не смог остановится, так как я поклонник yii решил реализовать сие и для него. Сторонние разработки посмотрел, но хотелось своего, к тому же мной написанный класс нормально справлялся с возложенными на него задачами. Адаптированный мой класс для yii показал коллегам, рассказав что да как им понравилось. Но тут меня понесло, хотелось еще проще.
+2
Будущее CouchDB
4 min
8.6KTranslation
Примечание. Этот пост в блоге Дэмиена Каца, создателя CouchDB, вызвал широкий резонанс. В конце данного топика опубликован ответ одного из многочисленных оппонентов Каца, мнение которого кардинально противоположно автору.
Каково будущее CouchDB? Это Couchbase.
Удивлены? Спросите, как же Apache CouchDB? Что ж, это отличный проект. Я основал его, написал первые версии почти полностью самостоятельно, потратил огромное количество нервов, пота и крови на него. Я очень им горжусь и тем влиянием, которое у него было. А сейчас я и команда Couchbase готовы двигаться дальше. Конечно, CouchDB — отличная система, но мы делаем его наследника: Couchbase Server. Продукт и проект с похожими возможностями и задачами, но более быстрый, более масштабируемый, более подходящий и для пользователей, и для разработчиков. И, определённо, не часть Apache.
Каково будущее CouchDB? Это Couchbase.
Удивлены? Спросите, как же Apache CouchDB? Что ж, это отличный проект. Я основал его, написал первые версии почти полностью самостоятельно, потратил огромное количество нервов, пота и крови на него. Я очень им горжусь и тем влиянием, которое у него было. А сейчас я и команда Couchbase готовы двигаться дальше. Конечно, CouchDB — отличная система, но мы делаем его наследника: Couchbase Server. Продукт и проект с похожими возможностями и задачами, но более быстрый, более масштабируемый, более подходящий и для пользователей, и для разработчиков. И, определённо, не часть Apache.
+25
Введение в GTK
4 min
139KTutorial
На ХабраХабре наконец-то появился новый блог, посвящённый GTK. Присоединяйтесь! :-)
Привет, %username%!
В сети бытуют страшные слухи об этом фреймворке, однако серией статей о нём на ХабраХабре я попытаюсь разрушить сложившиеся стереотипы.
GTK+ — это фреймворк для создания кроссплатформенного графического интерфейса пользователя (GUI). Наряду с Qt он является одной из двух наиболее популярных на сегодняшний день библиотек для X Window System.
Изначально эта библиотека была частью графического редактора GIMP, но позже стала независимой и приобрела популярность. GTK+ — это свободное ПО, распространяемое на условиях GNU LGPL и позволяющее создавать как свободное, так и проприетарное программное обеспечение.

Привет, %username%!
В сети бытуют страшные слухи об этом фреймворке, однако серией статей о нём на ХабраХабре я попытаюсь разрушить сложившиеся стереотипы.
GTK+ — это фреймворк для создания кроссплатформенного графического интерфейса пользователя (GUI). Наряду с Qt он является одной из двух наиболее популярных на сегодняшний день библиотек для X Window System.
Изначально эта библиотека была частью графического редактора GIMP, но позже стала независимой и приобрела популярность. GTK+ — это свободное ПО, распространяемое на условиях GNU LGPL и позволяющее создавать как свободное, так и проприетарное программное обеспечение.

+56
BitTorrent запустила свой файлообменный сервис
1 min
2K
Компания, разрабатывающая широко известный BitTorrent-клиент µTorrent, в четверг запустила свой облачный сервис Share, позволяющий осуществлять файлообмен по известному принципу: пользователь выбирает на своем компьютере файл, затем получателя и делится с ним ссылкой.
В отличие от DropBox и других платных сервисов, Share абсолютно бесплатен и не имеет ограничений на размер файла; также не требуется выполнять никаких подписок. Конечно, файлообмен осуществляется при помощи P2P, а в качестве, собственно, хранилища используется облачный сервис Amazon S3. Любопытно то, что пользователю таким образом нет необходимости «оставаться на раздаче» — эту роль будет играть за него Amazon; причем когда файлы будут успешно скачаны всеми получателями, то они будут удалены из облака — таким образом обеспечивается анонимность.
Для сервиса предусмотрен и ряд социальных функций: помимо очевидного выбора тех, кому предназначается файл, пользователи могут комментировать «раздачу», делясь своим мнением относительно её полезности.
На данный момент клиентское приложение сервиса находится в альфа-версии и доступно только для Windows.
[Share]
+45
Что такое этот новый jQuery.Callbacks Object
10 min
16KВ не столь давно вышедшей версии jQuery 1.7 появился новый объект Callbacks, о котором сегодня и пойдёт речь.
В официальной документации jQuery.Callbacks описан, как многоцелевой объект, представляющий собой список функций обратного вызова (callbacks — далее просто колбэков) и мощные инструменты по управлению этим списком.
Я просматривал возможности этого объекта, когда он был ещё только в разработке, и надо сказать, что возможностей у него изначально было немного больше, чем осталось в релизной версии. Например, сейчас отсутствует возможность создания очереди (queue) колбэков, которые вызываются по одному на каждый вызов
В официальной документации jQuery.Callbacks описан, как многоцелевой объект, представляющий собой список функций обратного вызова (callbacks — далее просто колбэков) и мощные инструменты по управлению этим списком.
Я просматривал возможности этого объекта, когда он был ещё только в разработке, и надо сказать, что возможностей у него изначально было немного больше, чем осталось в релизной версии. Например, сейчас отсутствует возможность создания очереди (queue) колбэков, которые вызываются по одному на каждый вызов
fire()
. Видимо, команда jQuery, решила немного подсократить код, убрав «ненужные/редкоиспользуемые» возможности, чтобы сэкономить в весе библиотеки. Это маленький экскурс в историю Callbacks, но далее я буду описывать только доступные сейчас функции и в конце напишу небольшое возможное улучшение этого объекта.+73
Как шаман помог Деду Морозу
1 min
757Компания «Айдеко» поздравляет всех с наступающими Новым годом и Рождеством! Специально для вас мы приготовили небольшую новогоднюю сказку, которая поможет вам ощутить волшебство Нового года!
+1
Прагматичный подход к производительности
7 min
2.3KTranslation
Является преждевременная оптимизация дорогой в ад? Или подход «потом исправим» превращает программистов из «специалистов» в презираемую всеми «школоту»?
Эти вопросы не имеют четких ответов, тем не менее, в этой статье я постараюсь описать мой собственный подход к производительности. Что я делаю для того, чтобы мои системы работали с приличной скоростью, но не нарушали прочих требований, таких как модульность, сопровождаемость и гибкость.
Эти вопросы не имеют четких ответов, тем не менее, в этой статье я постараюсь описать мой собственный подход к производительности. Что я делаю для того, чтобы мои системы работали с приличной скоростью, но не нарушали прочих требований, таких как модульность, сопровождаемость и гибкость.
+59
Рейтинг таск-менеджеров, используемых в веб-студиях и интернет-агентствах России
1 min
30KПривет всем!
Мы решили внезапно выпустить результаты опроса ведущих интернет-агентств России на предмет решений, используемых ими для автоматизации управления процессами и совместной работы.
Вот Top-7 этого рейтинга:
1. Мегаплан 23,8%
2. 1С-Битрикс: Корпоративный портал 14,6%
3. Basecamp 11,6%
4. Redmine 8,5%
5. Worksection 7,3%
6. JIRA 4,9%
7. Google Docs 3,0%
7. Mantis Bug Tracker 3,0%
Под катом — немного аналитики.
Мы решили внезапно выпустить результаты опроса ведущих интернет-агентств России на предмет решений, используемых ими для автоматизации управления процессами и совместной работы.
Вот Top-7 этого рейтинга:
1. Мегаплан 23,8%
2. 1С-Битрикс: Корпоративный портал 14,6%
3. Basecamp 11,6%
4. Redmine 8,5%
5. Worksection 7,3%
6. JIRA 4,9%
7. Google Docs 3,0%
7. Mantis Bug Tracker 3,0%
Под катом — немного аналитики.
+27
Психология социального шоппинга (инфографика)
1 min
957Translation
Не так давно совместно с компанией InNetMedia в рамках Хабра был опубликован перевод инфографики на тему "7 способов увеличения лояльной аудитории".
Сегодня вашему вниманию предлагаем инфографику "Психология социального шоппинга". Данная инфографика разошлась за бугром тиражом почти в 400 копий и мы не смогли пройти мимо такого материала ;)
Сегодня вашему вниманию предлагаем инфографику "Психология социального шоппинга". Данная инфографика разошлась за бугром тиражом почти в 400 копий и мы не смогли пройти мимо такого материала ;)
+12
Cтреловидные формы элементов с помощью CSS3
5 min
10KTutorial
Translation

В веб-дизайне элементы неправильной формы всегда вызывают интерес. Стреловидные формы и диагональные линии могут создать интересный визуальный поток и дать приятный результат. Я был вдохновлен проектами, в которых используются неправильные формы, и теперь хочу показать пару простых примеров с их использованием.
+56
Принимаем платежи на сайте с банковских карт при помощи Skrill
7 min
52K
Платежи по банковским картам в интернете являются самым популярным и наиболее универсальным способом оплаты услуг. Бытует мнение, что организация приема карточных платежей на своем сайте является сложным и затратным делом. На самом деле это совсем не так. Любой грамотный IT-специалист или фрилансер сможет это сделать даже без образования юридического лица! Единственное необходимое условие — иметь свой сайт, остальное постигнем в процессе.
+41
На Chaos Communication Congress заявили о DoS-уязвимостях в ряде популярных языков веб-программирования
2 min
2.9KНа международной конференции специалистов по IT-технологиям Chaos Communication Congress был опубликован доклад Александра Клинка (Alexander “alech” Klink) и Джулиана Вэльде (Julian “zeri” Wälde), описывающий ряд серьезных уязвимостей в популярных языках веб-программирования. Большинство проблем исследователи связывают с неверной обработкой веб-форм и возможностью компрометации хэш-таблиц, что может привести к успешной DOS-атаке на веб-серверы с последующим хищением данных, причем значительных ресурсов для организации атаки не требуется.
Суть уязвимостей исследователи описывают таким образом: языки веб-программирования — такие как PHP, ASP.NET, Java, Python, Ruby — имеют прямой доступ к вычислительным ресурсам компьютера; веб-приложения, написанные на этих языках, часто обрабатывают POST-запросы в автоматическом режиме, при этом, если приложение не может использовать рандомизированные хеш-функции, то злоумышленник может специально организованным запросом вызвать коллизию хеш-значений, что может значительно загрузить вычислительные ресурсы сервера.
На данный момент PHP 5, Java и ASP.NET (UPD: патч выпущен) являются полностью незащищенными перед описываемой атакой, тогда как PHP 4, Python, Ruby — частично уязвимы (в докладе говорится, что большинство уязвимостей базируются на концепциях, впервые появившихся еще в 2003 году, однако только в Ruby в 2008 году появилось исправление, частично исключающее эксплуатацию), причем степень опасности зависит от используемой 32-х или 64-битной архитектуры.
Суть уязвимостей исследователи описывают таким образом: языки веб-программирования — такие как PHP, ASP.NET, Java, Python, Ruby — имеют прямой доступ к вычислительным ресурсам компьютера; веб-приложения, написанные на этих языках, часто обрабатывают POST-запросы в автоматическом режиме, при этом, если приложение не может использовать рандомизированные хеш-функции, то злоумышленник может специально организованным запросом вызвать коллизию хеш-значений, что может значительно загрузить вычислительные ресурсы сервера.
На данный момент PHP 5, Java и ASP.NET (UPD: патч выпущен) являются полностью незащищенными перед описываемой атакой, тогда как PHP 4, Python, Ruby — частично уязвимы (в докладе говорится, что большинство уязвимостей базируются на концепциях, впервые появившихся еще в 2003 году, однако только в Ruby в 2008 году появилось исправление, частично исключающее эксплуатацию), причем степень опасности зависит от используемой 32-х или 64-битной архитектуры.
+34
Игры на CANVAS/WebGL (часть вторая)
1 min
2.6KВ преддверии нового года и продолжительных праздников публикую вторую подборку игр, не вошедших в первый пост. С наступающим! )
3D шутер на танках. На некоторых уровнях можно найти вертолет и нести смерть супостатам с воздуха.

TankWorld
3D шутер на танках. На некоторых уровнях можно найти вертолет и нести смерть супостатам с воздуха.

+52
Information
- Rating
- Does not participate
- Location
- Казань, Татарстан, Россия
- Date of birth
- Registered
- Activity