Search
Write a publication
Pull to refresh
0
@MacInread⁠-⁠only

User

Send message

ВКонтакте снова выкладывает KPHP

Reading time13 min
Views57K
Привет! Сейчас будет дежавю.

Мы снова выложили на GitHub наш PHP-компилятор — KPHP. Он проделал большой путь, и чтобы рассказать о нём, сначала телепортируемся на шесть лет назад.

Поясню для тех, кто не в теме: платформа ВКонтакте изначально была написана на PHP. Со временем нас перестала устраивать производительность, и мы решили ускорить VK. Сделали компилятор — KPHP, который поддерживал узкое подмножество PHP. Это было давно, и с тех пор мы о нём не рассказывали, так как KPHP почти не развивался до 2018-го года.

Но два года назад мы взялись за него, чтобы вдохнуть в эту разработку новую жизнь. Что сделали и какой получили результат — расскажу в этой статье. Она будет не о громком релизе, который можно прямо сейчас внедрять в свои проекты, а о внутренней разработке ВКонтакте, которую мы показываем сообществу и продолжаем развивать. Представлюсь: меня зовут Александр Кирсанов, я руковожу командой Backend-оптимизаций.

А теперь — телепортация.

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

Windows 95 на двух флоппиках

Reading time3 min
Views16K
В этом году мы отпраздновали четверть века с Windows 95. Её минимальная установка занимала 30 МБ; народные умельцы ужимали её до 5 МБ после удаления всех «лишних» файлов и сжатия UPX-ом оставшихся. А как насчёт двух флоппиков по 1.44 МБ, вместе с загрузчиком?



Общий подход я уже описывал в комментариях: создаётся RAMDRIVE, и на него разворачивается двухтомный SFX-архив. Но есть много тонкостей:

  1. Как видно на видео выше, распакованная папка Windows у меня занимает 6.2 МБ. Я взял за основу список файлов Micro95, и дополнительно удалил файлы, оказавшиеся необязательными — например, шрифты и драйвер dosnet.vxd. Кроме того, vmm32.vxd я распаковал, и удалил бывшие внутри него необязательные драйвера.
Читать дальше →

Ускоряем на 70% игру на процессоре в 1 МГц

Reading time16 min
Views31K

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

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

Это история об одном из таких трюков.

Я постараюсь припомнить все важные подробности, однако в чём-то могу ошибиться. Если так случится, простите меня, это было очень давно.

Исходные данные


Мой друг, одарённый программист, почти закончил свою новую игру. Каким-то образом ему удалось почти без изменений уместить в компьютер эпохи 1980-х довольно впечатляющую графически на то время игру, популярную на аркадных автоматах.

Единственная проблема заключалась в том, что его версия игры оказалась неиграбельной. Она работала слишком медленно, а дёрганые движения мешали вовлечённости игрока, ведь игра была сайд-скроллером.

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

Я посмотрел. Но там нельзя было найти никакой простой оптимизации.
Читать дальше →

Хороший договор — короткий договор

Reading time8 min
Views29K

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

Большинство договоров пишут юристы, а руководители, продажники и клиенты, похоже их не читают. Да их и невозможно прочесть. Много ли людей читают договор с банком или лицензионное соглашение?! Или договор с оператором сотовой связи или провайдером?! Скучное и бесполезное занятие. Всё равно на текст договора чаще всего никак не повлиять в крупных компаниях.  

Юристы зачем-то пишут скучнейшим и малопонятным языком, копируют в договор тексты законов. Вероятно их цель, чтобы читатель заснул и не переварил написанного. Или им платят за 1000 знаков, а не за смысл. В тоже время многие российские законы написаны вполне человеческим и понятным языком и имеют хорошие нормы права по умолчанию.

Предлагать клиентам подписать договор, который бы не хотел подписывать сам — хамство.

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

Читать далее

Смертельно эффективная ловушка: как венерина мухоловка запоминает, что она поймала добычу

Reading time3 min
Views40K

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

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

Линукс-порт Far Manager: прогресс за 4 года

Reading time5 min
Views70K
Первая публикация исходников far2l, порта Far Manager под Линукс — штуки, которая когда-то считалась принципиально невозможной — состоялась 10 августа 2016го. Поскольку главный разработчик поговаривает о переходе проекта в статус беты, решил написать обзорный пост, как там идут дела и чего удалось добиться за прошедшие четыре года.

Консольная версия


Первый же вопрос, который все задавали и здесь, и на опеннете, и на лоре — а чего не в консоли? Изначально far2l действительно работал только в графическом режиме, через wxWidgets. Это оказалось самым простым способом быстро получить работающий порт со всеми пользовательскими удобствами: иксовым буфером обмена и всеми сочетаниями клавиш, причем с поддержкой событий не только KeyDown, но и KeyUp.

Сейчас это ограничение в прошлом: far2l прекрасно себя чувствует в консоли. Более того, там появились так называемые расширения терминала far2l, поэтому если запускать консольный far2l внутри графического (например, зайдя куда-нибудь по ssh), они «сконнектятся» между собой, и внутренний far2l тоже будет видеть и буфер обмена (с разрешения пользователя, конечно), и все возможные горячие клавиши. Более того, сделана даже специальная сборка putty, позволяющая наслаждаться всеми этими фишками из Windows.

Вот, смотрите, это far2l в GNOME Terminal


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

RISC-V с нуля

Reading time18 min
Views62K
В этой статье мы исследуем различные низкоуровневые концепции (компиляция и компоновка, примитивные среды выполнения, ассемблер и многое другое) через призму архитектуры RISC-V и её экосистемы. Я сам веб-разработчик, на работе ничем таким не занимаюсь, но мне это очень интересно, отсюда и родилась статья! Присоединяйтесь ко мне в этом беспорядочном путешествии в глубины низкоуровневого хаоса.

Сначала немного обсудим RISC-V и важность этой архитектуры, настроим цепочку инструментов RISC-V и запустим простую программу C на эмулированном оборудовании RISC-V.
Читать дальше →

Отечественный микроконтроллер К1986ВК025 на базе процессорного ядра RISC-V для приборов учета электроэнергии

Reading time11 min
Views47K
Добро пожаловать в эпоху RISC-V!

Решения на базе открытого стандарта системы команд RISC-V всё чаще появляются на рынке. Уже в серийном производстве микроконтроллеры от китайских коллег, интересные решения предлагает Microchip с FPGA на борту. Растет экосистема ПО и средств разработки для данной архитектуры. Кажущиеся ранее непоколебимыми лидеры все чаще встречаются в объявлениях о перепродаже, а молодые стартапы привлекают многомиллионные инвестиции. Компания Миландр так же ввязалась в эту гонку и сегодня начала поставку заинтересованным предприятиям инженерных образцов своего нового микроконтроллера К1986ВК025 на базе процессорного ядра RISC-V для приборов учета электроэнергии. В общем картинки, характеристики и прочая информация, а так же немного хайпа под катом.


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

Советы и лайфхаки по Windows Terminal

Reading time6 min
Views37K
Терминал Windows поставляется с множеством функций, которые позволяют настраивать его и взаимодействовать с ним наиболее удобным для вас способом. Давайте рассмотрим несколько советов и приемов, которые помогут вам настроить свой терминал так, чтобы он идеально вам подходил. На момент публикации этого сообщения в блоге Windows Terminal имел версию 1.3, а Windows Terminal Preview — версию 1.4.

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

Пилотируемый «Союз» на МКС. 2020 год: 80 всего, 72 успешных, 11 от России

Reading time2 min
Views3.7K

Вячеслав Ермолин, 14 октября 2020 г.

Миссия:
Пилотируемый полет на Международную Космическую Станцию (МКС) на космическом корабле «Союз». Экспедиция-64. Сверхбыстрая 3-х часовая схема полета. Работа на орбите 177 суток.

Читать далее

Масштабирование, поворот и сдвиг растра методом суперсемплинга

Reading time6 min
Views5.2K
В процессе разработки геоинформационной системы возникла необходимость в трансформации фотографий земной поверхности. В связи с этим была поставлена задача написать функции масштабирования, поворота и субпиксельного сдвига растра методом суперсемплинга.

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

Утилита и исходные коды размещены в архиве здесь.

Среда разработки: Delphi/Object Pascal.

Свободное использование и распространение приветствуются.

Ниже мы рассмотрим теорию и практику.


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

Как генерируются UUID

Reading time7 min
Views139K

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

Современную реализацию UUID можно проследить до RFC 4122, в котором описано пять разных подходов к генерированию этих идентификаторов. Мы рассмотрим каждый из них и пройдёмся по реализации версии 1 и версии 4.
Читать дальше →

Huawei получил от Трампа люлей… But show must go on?

Reading time9 min
Views54K
«Просто хочешь ты знать, где и что происходит…» (с) Кино


Недавно волею судеб (подарили) я стал обладателем смартфона Huawei P40 Lite: красивый такой, зелененький. После «люлей» от Трампа за шпионаж, смартфоны Huawei поставляются без сервисов Гугл. Магазин приложений от Гугл также недоступен. Зато есть собственный магазин Huawei AppGallery, который продвигается, в том числе, и на Хабре.

Есть мнение, что Гугл активно следит за пользователями в Инете. Да и про китайские смартфоны такие разговоры идут. Поэтому я, было, обрадовался – одним шпионом меньше.  Но Huawei, похоже, решил «поработать» за двоих…
Читать дальше →

G-code, потерявшийся брат Assembler-а

Reading time11 min
Views37K
Про язык управления промышленными CNC-станками и всевозможными любительскими устройствами вроде 3D-принтеров написано очень много статей, но почитать о том, какова идеология этого языка и как она связана с аппаратной реализацией — почти негде. Поскольку моя работа связана непосредственно с программированием станков и автоматизацией производства, я попробую заполнить этот пробел, а также объяснить, почему выбрал такой странный заголовок.
Читать дальше →

В IT растет цензура, а мы не замечаем — разрешают только улыбаться и молчать

Reading time8 min
Views126K

У меня есть две статьи-интервью вот с такими странными абзацами. За обоими кроются неприятные истории для меня и для людей, про которых я писал.

Читать далее

Тайны файла подкачки pagefile.sys: полезные артефакты для компьютерного криминалиста

Reading time8 min
Views93K


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

В этой статье Павел Зевахин, специалист Лаборатории компьютерной криминалистики Group-IB, рассказывает о том, какие данные можно обнаружить в ходе криминалистического исследования в файлах подкачки Windows.
Читать дальше →

Орбитальные папарацци Роскосмоса

Reading time4 min
Views21K
Уже некоторое время я замечаю, что спутниковые снимки актуальных событий от Роскосмоса появляются и в непрофильных источниках. Особенно ярко это видно в истории взрыва в порту Бейрута 4 августа — практически любой материал сопровождался кадрами «до/после» с российских спутников дистанционного зондирования Земли. Подобные снимки, от разливов нефти и пожаров до парадов и хроники возведения ковидных больниц — наглядное доказательство пользы, качества и вообще существования российской спутниковой группировки.


Аппаратура Геотон-Л1 спутника Ресурс-П, фото Vitaly V. Kuzmin/Wikimedia Commons
Читать дальше →

Как я сделал электронную очередь за 0 рублей на чистом энтузиазме, чего это стоило и что из этого вышло

Reading time5 min
Views41K


Добрый день, дорогие мастера своего дела!


Это моя первая статья, постараюсь быть интересным. Много лет назад (о ужас) когда я был супер энергичен, молод и глаза горели я хотел автоматизировать все что движется и не движется. Я чувствовал бескрайние свои возможности и был уверен в себе на 100% и более, передо мной не было не одной не решаемой задачи и все горело в руках. Однако с годами трэкбар от молодости к мудрости все двигался в сторону второго. Так со временем приходил опыт, который сын ошибок трудных и увы, там же гений парадоксов друг.

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

На дворе был 2012 год…
Читать дальше →

Почему налоговая не верит в айтишников-индивидуальных предпринимателей?

Reading time2 min
Views93K

Сколько может зарабатывать айтишник на ИП? У ФНС свое мнение


Когда один человек много зарабатывает и честно платит налоги, налоговики смотрят со стороны и думают: «Как такое возможно? Наверняка у него масса помощников! Пусть и за них налоги заплатит!»

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

Создаем EXE

Reading time14 min
Views67K
Самоизоляция это отличное время приступить к тому, что требует много времени и сил. Поэтому я решил заняться тем, чем всегда хотел — написать свой компилятор.

Сейчас он способен собрать Hello World, но в этой статье я хочу рассказать не про парсинг и внутреннее устройство компилятора, а про такую важную часть как побайтовая сборка exe файла.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity