Как стать автором
Обновить
0
@Heianread⁠-⁠only

Источник истины

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

Apache vs Nginx: практический взгляд

Время на прочтение12 мин
Количество просмотров384K
Apache vs Nginx

Введение


Apache и Nginx — 2 самых широко распространенных веб-сервера с открытым исходным кодом в мире. Вместе они обслуживают более 50% трафика во всем интернете. Оба решения способны работать с разнообразными рабочими нагрузками и взаимодействовать с другими приложениями для реализации полного веб-стека.

Несмотря на то, что у Apache и Nginx много схожих качеств, их нельзя рассматривать как полностью взаимозаменямые решения. Каждый из них имеет собственные преимущества и важно понимать какой веб-сервер выбрать в какой ситуации. В этой статье описано то, как каждый из этих веб-серверов ведет себя при различных условиях.
Читать дальше →

О безопасности UEFI, часть третья

Время на прочтение8 мин
Количество просмотров43K
Продолжаем разговор о безопасности UEFI.
На этот раз речь пойдет об опубликованной в конце 2014 года серьезной уязвимости в реализации ACPI S3 (Sleep Mode), ее эксплуатации и последствиях. Основная «фишка» этой уязвимости в том, что она вскрыла целый класс проблем безопасности UEFI, вообще не считавшихся до этого проблемами, и потому и заслуживает отдельной статьи.
Тем, кто не читал предыдущие статьи цикла — раз и два, предлагаю прочесть сначала их, остальных жду под катом.
Читать дальше →

Progressive Enhancement или всё-таки Graceful Degradation

Время на прочтение6 мин
Количество просмотров94K
SerenityНельзя просто так взять и рассказать про progressive enhancement, не упомянув о graceful degradation. В чем же разница между этими понятиями? Как уже говорилось в более ранней статье, graceful degradation можно перевести, как отказоустойчивость. Это очень широкое понятие, но в контексте веба его можно понимать как отказоустойчивость клиентских веб-интерфейсов, серверной части сайтов и так далее. В этой статье graceful degradation будет пониматься как отказоустойчивость клиентских веб-интерфейсов.

Graceful degradation может выражаться в возможности работы при отключенном JavaScript, в достаточно аккуратном отображении интерфейса в браузере, не поддерживающем новые свойства CSS3, в адекватном отображении сайта при отключенных изображениях. В каждом из этих случаев работа пользователя с интерфейсом будет в принципе возможна, хотя и не так удобна.
Читать дальше →

Favicons, Touch Icons, Tile Icons и т. д. Что выбрать?

Время на прочтение6 мин
Количество просмотров155K
От переводчика.
Это перевод статьи Филипа Бернарда с сайта css-tricks.com. Часть статьи, содержащую описание работы с созданным им сервисом, я позволил себе опустить. Если вы найдете ошибки, просьба сообщить о них в личном сообщении.

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


Фавикон был представлен в 1999 году, в Internet Explorer 5 (источник) и стандартизирован W3C несколько месяцев спустя. Это была маленькая иконка, представляющая сайт.



С тех пор большинство настольных браузеров следуют тенденции и используют фавикон тем или иным способом. Это очень просто, не так ли? Создать маленькую картинку и добавить в любой интернет-проект, чтобы сделать его «завершённым». Ничего сложного.
Или нет?

52 вопроса, которые вы должны задать на собеседовании

Время на прочтение4 мин
Количество просмотров76K
Вы, наверное, уже знаете, что интервью — это не просто очередной этап при устройстве на работу, это также ваша возможность разобраться, подходит ли вам эта работа. Для этого важно задать некоторые вопросы. Что вы хотите знать об этой должности? О компании? О подразделении? О команде? О корпоративной культуре?



Задавать вопросы бывает сложно. Мы это знаем. Для того, чтобы упростить вам это задание, мы приводим список ключевых вопросов для интервью. Мы определённо не рекомендуем задавать их все. Пожалейте рекрутера!
Читать дальше →

(Не)безопасный frontend

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

Интро


Не так давно я выступал на конференции FrontendConf 2015 (РИТ++) с темой данной статьи. И при подготовке доклада начал искать информацию, а кто вообще выступал на данную тему и что есть в Сети на данный момент.

Оказалось, что информации совсем немного, более-менее можно было бы отметить доклад mikewest.org/2013/09/frontend-security-frontendconf-2013 от Mike West из компании Google, но какой-то «непентестерский» взгляд и уж совсем мало материала. И www.slideshare.net/eoftedal/web-application-security-in-front-end где тема раскрыта более детально, но выступление 2011 года. А за 4 года технологии и атаки на месте не стояли.

Долго и сложно выбирая темы, что же все-таки рассказать разработчикам фронтендов про безопасность, при этом минимум касаясь бекэнда (местами все-таки это неделимо), получился доклад, а здесь — его текстовый пересказ.

О чем вообще разговор?


А действительно, о чем тут вообще можно разговаривать? Говоря про взломы и безопасность невольно приходят в голову тезисы — слили базу, получили доступ к выполнению команд ОС на сервере, прочитали чужую переписку. Но это все — server side код. А что ж может «нагородить» фронтэндер? Главная опасность, конечно же, в обходе атакующим SOP — Same Origin Policy, главной политики безопасности браузеров, которая регулирует работу в разных Origin. Но не только, давайте разбираться.

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

Количественные CSS селекторы

Время на прочтение7 мин
Количество просмотров93K
Вам когда-нибудь хотелось прямо в CSS коде посчитать, в меню 4 элемента или 10? Для четырех задать им ширину по 25%, а если набралось десять — прижать их друг к другу и уменьшить отступы?
Как выяснилось, CSS умеет работать с разным количеством элементов, позволяя избавиться от головных болей и лишнего кода на js.


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

Учёные нашли лекарства, замедляющие старение

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

Американские учёные и исследователи (Исследовательский институт Скриппс, частная клиника Майо и др.) обнаружили новый класс лекарств, которые сильно замедляют процесс старения, уменьшают эффекты связанных с этим заболеваний, улучшают сердечно-сосудистую систему и продляют жизнь. Работа была опубликована в журнале Aging Cell.

Учёные проверяли на животных два лекарственных препарата. Один из них — противоопухолевое средство направленного действия дазатиниб (торговая марка Спрайсел). Второй – кверцетин, вещество, помогающее от отёков, спазмов, воспалений, и содержащееся во многих фруктах, овощах, листьях и крупах. В результате экспериментов оказалось, что эти препараты убивают стареющие клетки – такие клетки организма, которые прекратили делиться и только накапливаются с возрастом, способствуя старению организма. Учёные назвали новый класс лекарств "сенолитики".
Читать дальше →

Здоровье гика: как не закиснуть к старости

Время на прочтение7 мин
Количество просмотров81K
Привет, Geektimes! Сегодня мы поговорим — внезапно! — о здоровье. А если быть точным — о том, как влияет многочасовое ежедневное сидение за компьютером и как можно минимизировать этот вред, чтобы в старости радоваться жизни и продолжать работать сидя за компом, а не жаловаться на жизнь на приёмах у врачей.


Наверное, многие гики считают, что уж вот их никак и никогда не посетят все сопутствующие болячки — дескать, не сутками же сидим, гулять ходим, да и вообще мы же не дальнобойщики. Грустно, но факт — проблемы случаются и от меньшего, поверьте. Поэтому стоит задуматься об этом уже сейчас. Тем более что радикально менять свой образ жизни и перестать гиковать не нужно :) Достаточно выделить суммарно пару часов в неделю на выполнение несложных физических упражнений.

Условно все «компьютерные» упражнения можно поделить на три блока — для глаз, для суставов кистей и для осанки. Итак, поехали.
Читать дальше →

Тайные приемчики рекрутеров: ЧТО мы говорим на собеседовании и ЧТО на основании этого о нас узнает работодатель?

Время на прочтение4 мин
Количество просмотров27K
Приветствую уважаемое хабрасообщество!

Так как рекрутинг – это не только моя работа, но и увлечение, хочу поделиться с вами интересной, по моему мнению, информацией. Речь пойдет, простите за тавтологию, о самой речи – словах, которые мы с вами подбираем, выражая свои мысли в беседе с менеджером по персоналу.
Казалось бы – а что тут подбирать? Называем вещи своими именами и все. Работа скучная – «неинтересная», руководство непрофессиональное – «дилетанты», зарплата небольшая – «смешная», каждый сам за себя – «коллектив неслаженный».
Но не все так просто как кажется на первый взгляд.
Читать дальше →

Console.mihai();

Время на прочтение2 мин
Количество просмотров26K
Разработчики из Mozilla почтили память одного из коллег, который внёс огромный вклад в разработку инструментов DevTools.

Румынский программист Михай Шукан (Mihai Șucan) исправил 1919 багов в Firefox. В середине 2010 года, когда он приступил к работе, код консоли представлял собой полную мешанину, которую никто вообще не хотел трогать, вспоминает Джо Уолкер (Joe Walker), один из координаторов проекта DevTools в Mozilla. Там были баги, на которые каждый смотрел и думал: чтобы всё грамотно исправить, потребуется пара недель. Лучше взять что-то другое. Такие баги оставляли кому-нибудь другому.

И тут за дело взялся Михай.
Читать дальше →

Заглянем за кулисы разработки: подборка исходных кодов классических игр

Время на прочтение10 мин
Количество просмотров84K
Обожаю заглядывать за кулисы. Мне интересно, как делаются вещи. Мне кажется, что большинству людей это тоже интересно.

Исторически так сложилось, что видеоигры не делятся исходниками. Конечно, они ведь предназначены для игроков. Но для программистов там всегда есть, на что посмотреть. И некоторые игры всё-таки выпускали свои исходники. А я давно намеревался сделать такую подборку.

К сожалению, почти все игры – для PC. Найти исходники для консолей или аркад почти нереально, и большинство программистов не в курсе различий подходов к программам на платформах, отличных от PC.

Многие игры после выпуска исходников были улучшены и дополнены сообществом – я намеренно даю ссылки только на оригинальные исходники. Так что, если вас вдруг интересуют апгрейды – они могут существовать.

Многие игры были рассмотрены на сайте Fabien Sanglard. Если вам интересны подробности их работы, то пожалуйте к нему.

Можно заметить, что многие игры принадлежат id Software/Apogee. Совпадение? Не думаю. id славится открытостью и привычкой выпускать исходники. Старые коммерческие игры уже не имеют ценности и были бы потеряны – не лучше ли, чтобы кто-то учился чему-то полезному на их основе?

Итак, приступим (в хронологическом порядке):
Читать дальше →

Люди с кодопрошлым или закат программистов

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

— Багнутый диван! — чертыхнулся Антон, в очередной раз придавив пальцы тяжеленным диваном, который они с Сергеем тащили уже 14 пролётов.
— Багнутый? — переспросил Сергей, — ты тоже программистом раньше работал?
Они уже почти месяц работали вместе, но Сергей ни разу не заподозрил в нем бывшего программиста. Жилистый, мускулистый Антон как-то мало походил на бывшего программиста.
— Приходилось подрабатывать в студенческие годы, — немного сконфузившись ответил Антон.
— Да не дрейфь! Я свой. Три года вёрстки и js под все браузеры, — Сергей оживился и надавил чуть сильнее, придавив Антона.
— Тише ты! Штука тяжелая! Из-за нее у меня уже функционируют только 7 пальцев. И вообще тут лучше о кодопрошлом разговаривать вполголоса. Настучат — вмиг вылетим с работы. Фуух, какой тяжелый! Двигай влево до упора.
Читать дальше →

Теория цвета в цифрах

Время на прочтение3 мин
Количество просмотров203K
Разные люди могут по-разному представлять один и тот же цвет по его названию. Например голубой цвет может на самом деле быть цветом морской волны или небесным. Гораздо точнее цвет определяется шестнадцатеричным кодом, всего существует 16777216 комбинаций. Поэтому дизайнеру может быть полезно распознавать цвет, просто взглянув на его hex-код.

Основы


Начнем с простого: рассмотрим обычный hex-код, где каждая из трех пар цифр контролирует один из цветов RGB — красный, зеленый, синий. Числа могут принимать значения цифр от 0 до 9 и букв от A до F.

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

Паттерны для новичков: MVC vs MVP vs MVVM

Время на прочтение6 мин
Количество просмотров817K
Добрый день, уважаемые коллеги. В этой статье я бы хотел рассказать о своем аналитическом понимании различий паттернов MVC, MVP и MVVM. Написать эту статью меня побудило желание разобраться в современных подходах при разработке крупного программного обеспечения и соответствующих архитектурных особенностях. На текущем этапе своей карьерной лестницы я не являюсь непосредственным разработчиком, поэтому статья может содержать ошибки, неточности и недопонимание. Заинтригованы, как аналитики видят, что делают программисты и архитекторы? Тогда добро пожаловать под кат.
Читать дальше →

Почему от 3D болит голова / Часть 4: Параллакс

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

S3D: No pain IS gain




Эта статья — четвертая в цикле “Почему от 3D болит голова”. Раньше мы говорили про проблемы кинооборудования, был сделан краткий обзор проблем контента, и детально разобрана ситуация с, пожалуй, самой болезненной проблемой — перепутанными ракурсами. Продолжаем выполнять обещания и рассказывать подробнее про то, что было кратко проанонсировано ранее. Сегодня будут ответы на вопросы: Почему один и тот же фильм в кинотеатре трехмерен, а на телевизоре нет? В каких диапазонах вообще изменяется видимая глубина фильмов? Как изменяется в среднем видимая глубина фильмов по годам? Что можно сделать, если вы сидите в кинотеатре, фильм “плосковат”, а вы хотите большей видимой глубины? Можно вообще ли изменить видимую глубину и сделать “плоский” фильм “более трехмерным”? Ведь это так хочется! И, наконец, как “изменяют параллакс” телевизоры и плееры?
Читать дальше →

Подводные камни JavaScript

Время на прочтение6 мин
Количество просмотров152K
Мне очень нравится JavaScript и я считаю его мощным и удобным. Но для большинства начинающих JS-программистов, много проблем создаёт недопонимание аспектов языка. Часто конструкции языка ведут себя «нелогично». В данной статье я хочу привести примеры «граблей», на которые я наступил; объяснить поведение языка и дать пару советов.

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

Intel показала планы по покорению 10 и 7 нанометров

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

Дальнейшее развитие микропроцессоров может потребовать отказа от кремния


Тема Международной конференции по полупроводниковым схемам (International Solid-State Circuits Conference) в этом году звучала как «маленькие чипы для больших данных». Мероприятие проходило с 22 по 26 февраля в Сан-Франциско, штат Калифорния, США. Intel регулярно участвует в ISSCC, не стал исключением и 2015 год. Для гигантов размера Intel и AMD не является необычным сделать важное объявление именно там. Множество докладов рассказывали о внутренних исследованиях Intel, которые затрагивали потенциально возможные для реального применения технологии, включая дальнейшее уменьшение техпроцесса микросхем. В частности, затрагивалась такая волнующая всех тема, как атака закона Мура 10 нанометрами.
Читать дальше →

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

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

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

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

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

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

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

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

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


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

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

Но вперёд, читатель — перейдём уже к подробному разбору.
Читать дальше →

Подборка интересных CSS-рецептов «Голые пятницы #4»

Время на прочтение5 мин
Количество просмотров61K
голые пятницы

Здравствуй, дорогой читатель хабра!
Сегодня мы поговорим о «липких» блоках, новом свойстве для изображений object-fit, продвинутом использовании CSS-счетчиков, ключевом слове currentColor, и о том, есть ли анимация в z-index.
Читать дальше →

Информация

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