Обновить

Разработка

Сначала показывать
Период
Уровень сложности

История развития и оптимизаций одного высоконагруженного ресурса

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


Введение

Все началось с того, что я стал системным администратором у одного провинциального Интернет-провайдера. Помимо администрирования различного рода ресурсов, мне в присмотр достался один молодой, но бурно развивающийся ресурс. Ресурс представлял из себя классический LAMP проект. Сайт, на котором генераторами контента являлись обычные пользователи.
* К слову, в то время я ничего не понимал в *nix системах, хоть и все сервера которые мне достались, были именно на нем, разбирался я во всем этом достаточно быстро.

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

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

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

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

Безумные и забавные факты о SQLite

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров33K

  1. SQLite — самая часто разворачиваемая и используемая база данных. На текущий момент активно используется более одного триллиона (1000000000000 или миллиона миллионов) баз данных SQLite.

    Её поддерживают три человека. Они не допускают внешних контрибьюторов.
Читать дальше →

Еще один монитор CO2 без датчика CO2

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

Там, где что-то стоит дорого и по определению не может стоить дешевле, ушлые производители обязательно предложат «полноразмерный макет» за полцены. Подобными «макетами» домашних мониторов CO2 много лет забиты все маркетплейсы.

Но тут история иная. Во-первых, цена как у реальных приборов. Во-вторых, это не абсолютный ноунейм. И в-третьих – производитель открыто заверяет, что установлен дорогой инфракрасный датчик. Так почему бы не попробовать?

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

Читать далее

Железячники умирают. Опыт работы в сфере ремонта цифровой техники

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

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

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

Погружайся

Каково это — быть разработчиком, когда тебе сорок

Время на прочтение18 мин
Количество просмотров230K
Примечание от переводчика:

Этот пост был написан и опубликован на Medium разработчиком приложений Адрианом Космачевским из Швейцарии. Кроме подготовки перевода его публикации, я также пригласил и самого автора, Адриана ( akosma ), на Хабр, для того, чтобы он смог лично ответить на любые вопросы участников сообщества, если таковые возникнут. Думаю, для общего удобства при общении в комментариях с ним стоит использовать английский (и, при желании, дублировать на русском).



Привет всем, я — сорокадвухлетний программист-самоучка, а это моя история.

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

image

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

Я дебютировал в роли разработчика программного обеспечения в 10 часов утра 6 октября 1997 года, в городе Оливос, к северу от Буэнос-Айреса, в Аргентине. Был понедельник. Не так давно я праздновал свой 24-й день рождения.

Мир в 1997 году


Тогда он был немного другим. На веб-сайтах не было предупреждений об использовании cookie. Новаторскими в сети были сайты вида Excite.com, а моим любимым поисковиком был AltaVista.

Мой электронный ящик имел вид kosmacze@sc2a.unige.ch и был расположен на личном веб-сайте, который размещался по адресу http://sc2a.unige.ch/~kosmacze. Тогда мы еще оплакивали принцессу Диану, а Стив Джобс только-только вернулся на роль CEO и убедил Microsoft «вбросить» в Apple Computer 150 миллионов долларов. Digital Equipment Corporation подала в суд на Dell, останки Че Гевары вернули на Кубу, только начался четвертый (!) сезон «Друзей». Был убит Джанни Версаче, скончались Мать Тереза, Рой Лихтенштейн и Жанна Кальман. Люди зависали за Final Fantasy 7 на PlayStation, будто бы были наркоманами, Би-Би-2 начал вещание телепузиков, а Кэмерон только собирался показать миру свой «Титаник».
Читать дальше →

Какого цвета Луна?

Время на прочтение5 мин
Количество просмотров172K
Вопрос, вынесенный в заголовок, кажется, очень странным. Ведь каждый видел Луну и знает ее цвет. Однако на просторах интернета периодически встречаются носители идеи о всемирном заговоре, скрывающем истинный цвет нашего естественного спутника. Рассуждения о цвете Луны являются частью необъятной темы о “лунном заговоре”. Некоторым кажется, что цементный цвет поверхности, который присутствует на снимках астронавтов программы Apollo, не соответствует действительности, и “на самом деле” цвет там другой.

Новое обострение теории заговора вызвали первые снимки китайского спускаемого аппарата Chang’e 3 и лунохода Yutu. На самых первых кадрах с поверхности, Луна оказалась больше похожей на Марс, чем на серебряно-серую равнину, со снимков 60-х и 70-х годов.



Обсуждать эту тему бросились не только многочисленные доморощенные разоблачители, но и некомпетентные журналисты некоторых популярных СМИ.

Попробуем разобраться, что там за секреты с этой Луной.
Читать дальше →

Хабраиндекс для статей по программированию под Android

Время на прочтение2 мин
Количество просмотров95K
Читать дальше →

Раскрыт самый большой секрет Skype

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

По ссылке находятся исходники обфусцированного алгоритма шифрования RC4, который используется в Skype для шифрования трафика.

Upd с enrupt.com:

Опубликованный алгоритм это ВСЁ что нужно для расшифровки трафика между клиентами и супернодами. Ключа нет. Совсем. Потому что это уровень обфускации, предназначенный для того, чтобы другие не смогли сделать своих клиентов для протокола Skype. Поэтому этот алгоритм был защищен так сильно как только это возможно. Монополия Skype, которой больше нет.
Не беспокойтесь если Skype сменит протокол, нам понадобилось всего несколько дней чтобы его добыть. Мы тут же выпустим апдейт.

Наша публикация никак не влияет на приватность звонков, сообщений или передач файлов. Они защищены с помощью AES-256, а согласование ключей происходит с помощью 1024битного RSA. Так что без паники )

В следующем месяце мы может быть выложим програмку, которая расшифровывает UDP пакеты Skype и проверяет их CRC :)
Читать дальше →

Загадка чёрной капли

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров28K

Как говорится, вместо тысячи слов: по изображению выше вы сразу поймёте, о чём пойдёт речь в статье — про чёрные «капли» на платах электронных устройств.

Сейчас мы все знаем или хотя бы догадываемся, что это такое. Но были времена, когда мы не знали, что это такое. Было страшно, страшно интересно, что же это такое. Предлагаю вспомнить о тех счастливых доинтернетных временах и о простых детских забавах, когда жизнь была полна загадок, и никто из взрослых не мог подсказать и разъяснить то, с чем мы сталкивались впервые.
Читать дальше →

Наш первый опыт сдачи уязвимости по программе Apple Security Bounty

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

Привет, Хабр!

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

Нам довелось проверить это на себе.

Читать далее

Мобильный пробив: что, где, почем. И главное — доколе?

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

Я так проникся «клиентоориентированным» отношением операторов связи к своим абонентам, что сделав 4 расследования по скрытым мобильным подпискам, решил пойти дальше и проверить: а как они относятся к персональным данным абонентов? 

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

Читать далее

Пропаганда тоталитарного режима, антисемитизм и гомофобия в учебнике по программированию 2019 года? — Это возможно

Время на прочтение6 мин
Количество просмотров84K
Кликбейтный заголовок? К сожалению, всё указанное и даже более в обозреваемой ниже книге есть. Что за книга? «Простой Python просто с нуля».
Читать дальше →

Ближайшие события

Подсчитаем баги в калькуляторе Windows

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

На днях компания Microsoft открыла исходный код калькулятора. Это приложение входило во все версии операционной системы Windows. Исходный код разных проектов Microsoft достаточно часто открывался за последние годы, но новость о калькуляторе в первый же день просочилась даже в нетехнологические средства массовой информации. Что ж, это популярная, но очень маленькая программа на языке C++. Тем не менее, статический анализ кода с помощью PVS-Studio выявил подозрительные места в проекте.
Читать дальше →

Как купить иллюзию безопасности в виде детских смарт-часов

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

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


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


Я думаю, что не найдётся человека, который не слышал о таком новом гаджете, как детские смарт-часы. Рынок просто заполонили многочисленные варианты устройств, как правило произведённых в Китае. Цены и функциональность этих устройств варьируются, но лучшие из них включают в себя такой широкий набор функций, как телефон, GPS трекер, мессенджер, фотокамеру, шагомер, ну и конечно же часы. По заявлению производителей — этот гаджет создан специально для детей и включает в себя средства безопасности ребенка. Так думал и я, поэтому стал выбирать в интернете подходящий вариант. Как итог я купил часы FixiTime 3 от компании Elari.


функциональность этих часов была впечатляющая:


  • GPS/LBS/Wi-Fi-трекинг
  • 2 камеры, доступ к камере часов с подключенного смартфона
  • поддержка входящих и исходящих голосовых вызовов, в том числе скрытых
  • голосовой чат
  • шагомер
  • ну и Фиксики внутри, как без них же


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

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

Разработчик потратил 13 лет, чтобы закончить игру

Время на прочтение2 мин
Количество просмотров137K
13 лет назад английский подросток Адам Батчер (Adam Butcher) пришёл домой с премьеры «Властелина колец» и твёрдо решил, что должен сделать игру, в которой реализует всё то, чего не хватает во всех остальных глупых играх. Там должны быть приключения и головоломки, настоящий сюжет и борьба со злом.

Парню было 14 лет, он как раз освоил популярную программу Multimedia Fusion — и в тот же день взялся за дело, нарисовал главного персонажа Тобиаса и объект № 1 — меч.


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

Последствия OpenSSL HeartBleed

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

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

Что произошло?

1 января 2012 года, Robin Seggelmann отправил, а steve проверил commit, который добавлял HeartBeat в OpenSSL. Именно этот коммит и привнес уязвимость, которую назвали HeartBleed.

Насколько она опасна?
Эта уязвимость позволяет читать оперативую память кусками размером до 64КБ. Причем уязвимость двусторонняя, это значит, что не только вы можете читать данные с уязвимого сервера, но и сервер злоумышленника может получить часть вашей оперативной памяти, если вы используете уязвимую версию OpenSSL.

Злоумышленник может подключиться к, предположим, уязвимому интернет-банку, получить приватный SSL-ключ из оперативной памяти и выполнить MITM-атаку на вас, а ваш браузер будет вести себя так, будто бы ничего и не произошло, ведь сертификат-то верный. Или просто может получить ваш логин и пароль.

Каков масштаб трагедии?

По моим оценкам, примерно ⅔ вебсайтов используют OpenSSL для HTTPS-соединений, и примерно ⅓ из них были уязвимы до сегодняшнего дня.

Уязвимость была/есть, как минимум, у:
  • 10 банков
  • 2 платежных систем
  • 8 VPN-провайдеров
  • mail.yandex.ru
  • mail.yahoo.com


Используя уязвимость, с mail.yandex.ru можно было получить письма пользователей вместе с HTTP-заголовками (и, подставив cookie, зайти под этим пользователем), а, например, в АльфаБанке получать незашифрованные POST-данные с логином и паролем от Альфа-Клик (интернет-банкинг).
Читать дальше →

«Запретите им запрещать» или обратная сторона реестра запрещенных сайтов

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


Быть может создатели реестра запрещенных сайтов не думали о том, что такое возможно. А может им было известно о такой возможности, но они не придали ей должного значения. А может им не было дела до возможных технических проблем при реализации реестра, и «лишь бы запретить». А может им было понятно, что избежать таких проблем нельзя, и к чему об этом волноваться раньше времени?..

Можно долго спекулировать о том, что они думали и чем они не думали, но факт есть факт: блокировкой любого сайта они невольно вручают мощное средство, если не сказать орудие, защиты и нападения в руки владельца домена, включенного в реестр.
Информационная война как она есть

Wasted Dreams — история забытой игры (статья-пилот из цикла «Истории Игровой Индустрии»)

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


В поисках утраченного ковчега – часть I


Представим, что вы тертый в боях игрок. Старый. Опытный. Человек, которого трудно удивить. Человек, который многое повидал. Человек, который видел Истоки. Каждая новая игра сопровождается вашим скрипом, — «А вот раньше…», «Помню, были времена…», «Детки, то, что вы считаете новым, не более чем хорошо забытое старое, я это видел в 19..». Предположим также, что вы новый Индиана Джонс своего времени, боец невидимого археологического фронта, который каждый божий день пытается отыскать свой Грааль. Грядущее вас интересует мало, настоящее вызывает скепсис, цель ваших поисков – прошлое. Полагаю, что нам с вами, сегодня, по пути.

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

Я часто гуляю с лопаткой по улицам и подземкам давно забытых городов. Именно с этой целью. Поиск хорошо забытого старого. Новое, безусловно, удивляет, но что может сравниться с покрытой пылью бутылкой хорошего старого скотча? Расскажу вам. Как археолог археологу.

На глубине временных пластов периода 1999 года моя лопата со звоном ударилась о неизвестный объект. По моим выкладкам в этом секторе не должно было находиться крупных и не изученных игр. Обкопав объект по периметру и сдув пыль там, где она мешала разглядеть символы я увидел… чудо. Это покажется невозможным, но в наш короткий игровой век мы до сих продолжаем находить неизвестные широкой публике работы древних зодчих. Можете представить мое удивление, изумление и благоговейный восторг, когда я увидел игру, созданную в стилистике…


Дать лопате шанс

Мой первый клиент мертв

Время на прочтение5 мин
Количество просмотров122K
Примечание редактора: Джеймс Альтухер — инвестор, программист, автор и предприниматель. Он инвестировал в 25 стартапов и написал 10 книг. Последними вышли книги «Я был слеп, но сейчас прозрел» и «40 альтернатив колледжу».


Я был одинок и хотел денег. Я жил в однокомнатном номере в Астории, район Куинс Нью-Йорка в 1995-м и не знал никого в округе. Я писал свой номер телефона на двухдолларовых купюрах, которые оставлял на чай официанткам, но ни одна мне не звонила. В Астории жили одни греки, а те предпочитали свою тусовку. Никто не заговаривал со мной. Я мог наворачивать мили по Астории в надежде найти собеседника.

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



У меня было 20 баксов на счету в банке. Я жил от зарплаты до зарплаты. Я бродил по всему Манхэттену и думал про себя: кто все эти миллионы людей, что могут позволить себе здесь жить, а я не могу.
Читать дальше →