Pull to refresh
17
0
Дэн @danko

User

Send message

Вы неправильно пишете животных

Reading time5 min
Views367K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4+434
Comments352

Эффект неисправного монитора для текста, картинок и SVG

Reading time4 min
Views115K
Эффект Glitch Лукаса Беббера выглядит очень круто — как будто вы смотрите на текст на старом мониторе, который слишком часто роняли на пол и у него «плавает» вертикальная синхронизация и сведение.

Реализация этого эффекта на CSS выглядит вполне убедительно. Мне пришлось немного поломать голову, чтобы выяснить, как он работает, и теперь я хочу объяснить это вам. Кроме того, я воспроизвёл этот эффект не только для текста, но и для растровых изображений и SVG, а так же написал несколько примесей Sass, чтобы облегчить работу с ним.


Читать дальше →
Total votes 182: ↑176 and ↓6+170
Comments34

Как набраться смелости и открыть магазин

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

Сколько себя помню, был помешан на компьютерах. И программирование так прочно вошло в мою жизнь, что несколько лет я и думать не мог о том, чтобы зарабатывать чем-то, кроме кодинга. Казалось, брось я программирование, деньги кончатся.
Последние лет пять я кодил. Кодил ночами, кодил круглосуточно. Устал. Надежды на отдых не было совсем. Каждый новый день начинался с того, что я представлял себе: что нужно сделать, что я должен сделать. Озверение пришло неожиданно и пришло в тот момент, когда я все-таки смог вырваться в отпуск.
Я сидел в беседке в одном из поселков близ Джубги и страдал бессонницей. Горы смыкались над головой, в голове бродила усталость. В ту ночь я в полной мере ощутил, что так дальше жить нельзя, что моя любовь — путешествия.
И именно в ту ночь внезапно пришло озарение: надо открыть интернет-магазин.
Но как открыть магазин, когда за душой нет ни гроша?
Читать дальше →
Total votes 289: ↑268 and ↓21+247
Comments191

FAQ по Gemei A330

Reading time8 min
Views11K
В последнее время на хабре участились публикации о замечательной портативной консоли gemei a330. Довольно немало хабрапользователей уже обзавелись этим чудом среди китайских медиаплееров. Посему не будет лишним составить небольшой список часто задаваемых вопросов и ответов на них, который будет дополнятся по мере возникновения новых вопросов и появления ответов на них.


В. Что же такое gemei a330?
О. Dingoo A320 — портативное мультимедийное устройство, совмещающее в себе функции аудиоплеера, видеоплеера, FM-радио и эмулятора игровых консолей. Выпускается компанией Shenzhen Dingoo Digital Co., Ltd. с марта 2009 года. Является главным конкурентом продукции компании GamePark Holdings.
То же самое справедливо и для gemei a330 за исключением даты выпуска и производителя.
Девайс производит компания Gemei Digital Technology Co., Ltd. где-то с прошлого года. От своей предшественницы а320 отличается более мощным процессором (CC1800 ARM 11 600 Mhz заниженный до 500 Mhz против Ingenic JZ4732, 336 МГц (понижена с номинальных 360 МГц, разгоняется до 433 МГц)) и количеством ОЗУ, превышающим динговский аж в два раза (64 против 32х). Другой процессор одновременно самая сильная и самая слабая сторона консоли. Он безусловно быстрее, но обилие софта от динги на гемейку не пойдет.
Подробнее про gemei можно почитать здесь . Или посмотреть видеообзор.


Итак, владельцы уже состоявшиеся и потенциальные, прошу под кат.
Читать дальше →
Total votes 55: ↑49 and ↓6+43
Comments143

Microsoft выпустила драйвера для контроллеров Xbox One под Windows

Reading time1 min
Views88K


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

Теперь Microsoft выпустила специальные драйвера для контроллеров Xbox One (драйвера для контроллеров Xbox 360 доступны здесь). Драйвера позволяют использовать все функции контроллера.

Для подключения контроллера нужно просто установить драйвера, подключив устройство к USB порту.

Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments32

В Notepad++ появилась подсветка ошибок в проверке орфографии

Reading time1 min
Views111K


В замечательном редакторе наконец появилась (Upd. еще с 5 мая) подсветка ошибок в проверке орфографии! Для меня это очень долгожданное нововведение, которое очень сильно ждал и надеялся. В свое время даже хотел перескочить на другие редакторы из-за этой проблемы. В Notepad++ можно было до данного момента настроить проверку орфографию, но подсветки слов с ошибками не было, что сводило пользу от проверки орфографии на нет.

Далее расскажу, как настроить проверку русского и английского языка.
Читать дальше →
Total votes 87: ↑72 and ↓15+57
Comments61

15 шаблонизаторов для фронтенд-разработки

Reading time4 min
Views182K

Число JS-библиотек ни в коей мере не уменьшается; наоборот, оно растёт с каждым днём. Когда мы доходим до приложений JS, лучшим выбором оказываются шаблоны, чем полноценные библиотеки, потому что это приводит к более чистому базовому коду и лучшему процессу работы с ними.

Не так давно я писал, что вы могли бы попробовать написать свою библиотеку, когда придёт время. Шаблонизаторы же требуют несколько больших навыков и понимания языка, с которым вы работаете, поэтому лучше полагаться на любой шаблонизатор из имеющихся в списке ниже.
ICanHaz,Hogan,Handlebars,Mustache,Transp-cy,doT,Walrus,Chibi,templayed,ECT,Pithy,T,Nunjuck,Jade,Dust
Total votes 58: ↑42 and ↓16+26
Comments52

CSS-маски для hover-эффекта

Reading time4 min
Views71K


На многих сайтах-портфолио работы представлены в виде небольших картинок-миниатюр с приятными hover-эффектами. В этой статье будет рассказано о способе сделать такой эффект, используя CSS-маски. Работает только в современных браузерах, но к счастью и в старых верстка выглядит корректно и не съезжает.
Читать дальше →
Total votes 58: ↑54 and ↓4+50
Comments11

Красивое меню на CSS3

Reading time3 min
Views30K
Чуть меньше года назад Snickersmix публиковал статью "Меню с плавной инверсией цвета". В данной статье описывается меню, сделанное на JavaScript. Днём ранее он мне показывал сайт, на котором он делал это меню, и я, как поклонник NoScript, возмутился: «Это меню можно сделать на CSS!»

Красивое меню на CSS3

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

Итак, предлагаю реализацию похожего меню на CSS3.

Чтобы сразу ты, уважаемый читатель, увидел отличия приведу финальную демку меню на CSS3 и демку меню от Snickersmix на JS

Теперь постараюсь вкратце рассказать про процесс создания

Читать дальше →
Total votes 38: ↑30 and ↓8+22
Comments8

Анти-GTD или лекарство от прокрастинации

Reading time3 min
Views101K
Я долго интересовался техниками GTD, тайм-менеджмента, повышения личной эффективности. Они, действительно, позволяют выполнять дела. Но все время чувствовалась какая-то неудовлетворенность. Потом я понял, что очень важно выбрать правильное направление самореализации. Иначе, с применением этих техник можно убежать очень далеко, да не в том направлении. Все это порождает фрустрации, поиски чудесных инструментов, вот даже целый термин прокрастинации появился.

Как избавиться наконец от насилия над собой в виде этих бесконечных техник? Делать то, что хочешь!
Если более развернуто, то обычно советуют работать на пересечении нескольких областей — делать:
  1. то, что хочешь,
  2. на что располагаешь талантом,
  3. то, что служит на благо людей,
  4. то, что приносит деньги.

Это просто идеальная самореализация!

Но как это сделать? Об этом обычно не говорят или неуверенно дают какие-то общие советы. Я долго копал и кое-какую методику все же нашел.
Делюсь методикой под катом
Total votes 56: ↑44 and ↓12+32
Comments32

Новые подробности о шифре Copiale 18 века

Reading time4 min
Views62K


Журнал Wired опубликовал замечательную историю о том, как специалисты по машинному переводу текстов вместе с лингвистами сумели найти ключ к шифру масонского манускрипта 1760-1780-х годов, который никто не мог прочитать с момента его находки в 1970 году и который считался одним из самых трудных шифров в мире. О расшифровке рукописи сообщалось год назад — в октябре 2011 года, тогда были расшифрованы первые 16 страниц текста. С тех пор учёные значительно продвинулись в понимании этого уникального документа, составленного членами ордена Окулистов.

Оказалось, что кроме расшифрованного текста, отдельные символы расшифрованной рукописи означают цифры, которые составляют другую, отдельную шифрограмму, и её пока не удалось расшифровать.
Читать дальше →
Total votes 141: ↑137 and ↓4+133
Comments66

Написание музыки в Linux: что есть прямо сейчас

Reading time9 min
Views124K
Недавно я прочитал о том, что Гэйб Ньюэлл всерьёз настроен на то, чтобы перенести хорошие и качественные игры в Linux. Как он считает, это именно то, чего не хватает, и что на данный момент ограничивает развитие платформы. Безусловно, он прав. Тем не менее, лично для меня есть и другая область, которая мне даже намного важнее, чем игры — это музыка. Если без игр я могу обойтись, то музыка для меня необходима — как, впрочем, и для многих других людей.

Рабочее место Niels Ott
На картинке ­— рабочее место Niels Ott, на компьютере запущен Ardour.

Моя жена тоже музыкант, и когда она увидела, какие секвенсоры и синтезаторы есть в Linux — она даже не стала пытаться в них разобраться, просто вернувшись к своим Cubase и Reason. На её ноутбуке есть Windows 7, и когда она пишет музыку, она просто перезагружается туда и запускает там эти программы.

Я же, пользуясь Linux уже около 10 лет, не могу так просто отказаться от того, чтобы хотя бы пробовать имеющиеся программы. В принципе, могу точно сказать, что за 10 лет всё очень сильно изменилось в лучшую сторону. И всё же то, что сейчас есть под Linux для написания музыки, очень далеко от идеала. Давайте вместе разберёмся, почему бо́льшую часть музыки всё ещё пишут на Mac OS X или Windows.
Читать дальше →
Total votes 128: ↑124 and ↓4+120
Comments124

Велосипеды на Javascript и jQuery

Reading time4 min
Views76K
В очередной раз открыв код коллег и ужаснувшись, я решил написать эту статью. Надеюсь для кого-нибудь это будет полезным, заодно и мне будет проще новичкам объяснять что у них в коде не так, просто кинув ссылку на эту статью.
Безусловно количество таких вещей очень и очень велико, поэтому в статье ограничусь лишь некоторыми.
Читать дальше →
Total votes 258: ↑246 and ↓12+234
Comments189

Защита от SQL-инъекций в PHP и MySQL

Reading time26 min
Views253K
К своему удивлению, я не нашёл на Хабре исчерпывающей статьи на тему защиты от инъекций. Поэтому решил написать свою.

Несколько пространный дисклеймер, не имеющий прямого отношения к вопросу
Давайте признаем факт: количество статей (и комментариев) на тему защиты от SQL-инъекций, появившихся на Хабре в последнее время, говорит нам о том, что поляна далеко не так хорошо истоптана, как полагают некоторые. Причём повторение одних и тех же ошибок наводит на мысль, что некоторые заблуждения слишком устойчивы, и требуется не просто перечисление стандартных техник, а подробное объяснение — как они работают и в каких случаях должны применяться (а в каких — нет).

Статья получилась довольно длинной — в ней собраны результаты исследований за несколько лет — но самую важную информацию я постараюсь компактно изложить в самом начале, а более подробные рассуждения и иллюстрации, а так же различные курьёзы и любопытные факты привести в конце. Также я постараюсь окончательно развеять множественные заблуждения и суеверия, связанные с темой защиты от инъекций.

Я не буду пытаться изображать полиглота и писать рекомендации для всех БД и языков разом. Достаточное количество опыта у меня есть только в веб-разработке, на связке PHP/MySQL. Поэтому все практические примеры и рекомендации будут даваться для этих технологий. Тем не менее, изложенные ниже теоретические принципы применимы, разумеется, для любых других языков и СУБД.

Сразу отвечу на стандартное замечание про ORM, Active record и прочие query builders: во-первых, все эти прекрасные инструменты рождаются не по мановению волшебной палочки из пены морской, а пишутся программистами, используя всё тот же грешный SQL. Во-вторых, будем реалистами: перечисленные технологии — хорошо, но на практике сырой SQL постоянно встречается нам в работе — будь то legacy code или развесистый JOIN, который транслировать в ORM — себе дороже. Так что не будем прятать голову в песок и делать вид, что проблемы нет.

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

Ещё только начав интересоваться темой защиты от инъекций, я всегда хотел сформулировать набор правил, который был бы одновременно исчерпывающим и компактным. Со временем мне это удалось:

Правила, соблюдение которых гарантирует нас от инъекций


  1. данные подставляем в запрос только через плейсхолдеры
  2. идентификаторы и ключевые слова подставляем только из белого списка, прописанного в нашем коде.

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

Но вперёд, читатель — перейдём уже к подробному разбору.
Читать дальше →
Total votes 128: ↑98 and ↓30+68
Comments97

Хочешь быть iOS разработчиком? Будь им!

Reading time2 min
Views388K
На хабре в прошлом месяце была опубликована статья Конкурс ВК: Мессенджер для Android. Как это было!, в которой автор поделился своими мыслями о конкурсе и опубликовал список ресурсов и статей, которые помогли ему в создании приложения. Так как в последнее время я начал изучать разработку под iOS, то у меня скопилось некоторое количество ссылок, которые могут быть полезны для начинающих. Поэтому я последую его примеру и сделаю то же самое, только для своей платформы. Надеюсь, кому-нибудь они окажутся полезны и сэкономят немного времени.

Читать дальше →
Total votes 234: ↑222 and ↓12+210
Comments38

Впечатляющие анимационные эффекты

Reading time2 min
Views115K
С появлением jQuery, у веб-программистов появилась возможность создавать впечатляющие визуальные эффекты, не прибегая к использованию технологии flash. В данной статье представлено несколько ярких примеров того, каких потрясающих результатов можно достичь, используя стандартные средства браузера и свое воображение.
Читать дальше →
Total votes 262: ↑246 and ↓16+230
Comments78

Самый маленький ThinkPad

Reading time6 min
Views35K
Ультрапортативный ноутбук ThinkPad X100e был официально представлен прессе на прошлой неделе и уже доступен в продаже по цене от 16 до 20 тысяч рублей. Такой ценник делает его самым доступным ноутбуком ThinkPad. Он отличается от классических ноутбуков серии, таких как ThinkPad X200, обновленным внешним видом и новым дизайном клавиатуры. И, пожалуй, самое важное изменение: впервые ноутбук ThinkPad построен на платформе AMD, а не Intel.

Впрочем, основные черты ноутбуков ThinkPad сохранены и в x100e. Клавиатура – полноразмерная и комфортная, и при новом дизайне использована та же конструкция клавиш, что и в классических ноутбуках серии. Корпус – крепкий, с надежными металлическими креплениями «половинок» ноутбука. Экран – матовый, и это, я думаю, многим придется по душе. Фирменный софт также на месте, начиная от утилиты для управления электропитанием и заканчивая полноценной системой резервного копирования. И, конечно, в ноутбуке есть фирменный красный трекпойнт, без которого ThinkPad – уже не ThinkPad!
Читать дальше →
Total votes 106: ↑93 and ↓13+80
Comments175

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity