Pull to refresh
500
337.6

Пользователь

Send message

Байт-кодовые VM в неожиданных местах

Level of difficultyMedium
Reading time4 min
Views2.7K

Отвечая на вопрос в Twitter, Ричард Хипп написал, почему SQLite использует байт-кодовую VM для исполнения операторов SQL.

Вероятно, большинство людей ассоциирует байт-кодовые VM с языками программирования общего назначения, например, с JavaScript или Python. Но иногда их можно встретить в неожиданных местах! В статье я расскажу о тех, которые знаю.
Читать дальше →
Total votes 25: ↑30 and ↓-5+35
Comments4

Записываем музыку при помощи CSS Grid

Level of difficultyMedium
Reading time8 min
Views4.9K
Слишком часто я наблюдал за тем, как импровизирующий музыкант трясущимися руками пытается увеличить pdf размером A4 на крошечном экране телефона в самом разгаре исполнения. Мы обязаны создать плавный и отзывчивый рендеринг музыки для веба!

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

Прототип Scribe


SVG, отрендеренный Scribe 0.2

Несколько лет назад я создал прототип рендерера музыки, который назвал Scribe. Он выполняет преобразование JSON в SVG. Изначально я стремился к созданию адаптивного рендерера музыки. Это было хорошее демо, но для дальнейшего развития пришлось бы писать сложный многопроходный движок генерации макетов, а у меня тогда возникли другие дела.

Вскоре после этого я занялся адаптированием Grid под проекты компании, и тут мне почудилось нечто знакомое: я задался вопросом, а не станет ли он решением некоторых проблем, с которыми я столкнулся при разработке Scribe?
Читать дальше →
Total votes 42: ↑50 and ↓-8+58
Comments13

Нельзя предполагать, что все используют UTF-8

Level of difficultyMedium
Reading time6 min
Views16K
Как вычислять кодировку при помощи статистики

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

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

Однако человечество может винить себя за то, что сложности в общении испытывают компьютеры.

И одна из самых больших проблем одновременно является самой простой: компьютеры не договорились о том, как записывать буквы двоичным кодом.
Читать дальше →
Total votes 57: ↑63 and ↓-6+69
Comments86

50 лет первой операционной системе для персональных компьютеров

Level of difficultyEasy
Reading time9 min
Views13K

В 1974 году первопроходец ПО для PC Гэри Килдалл продемонстрировал в Пасифик-Гроув, Калифорния, первую коммерчески успешную операционную систему для персонального компьютера — CP/M. В этой статье мы расскажем историю о том, как его компания Digital Research Inc. превратила CP/M в отраслевой стандарт, а позже проиграла версии ОС от Microsoft, скопировавшей внешний вид и стиль ПО DRI.
Читать дальше →
Total votes 58: ↑68.5 and ↓-10.5+79
Comments30

Как я портировал Sonic 2 на графический калькулятор

Level of difficultyMedium
Reading time8 min
Views4.7K

Этот пост посвящён тому, как я портировал 8-битный Sonic 2 на TI-84+ CE

Часть 1: с чего всё началось


Эта история началась осенью 2022 года, когда я смотрел видео This Does Not Compute об истории игр на графических калькуляторах. Примерно на пятой минуте автор мимоходом упомянул типы процессоров, которые использовались в этой линейке графических калькуляторов. В большинстве из них был установлен Z80, в 89 и 92 задействовали M68K, а в линейке Nspire использован процессор на основе ARM.

Это меня очень заинтересовало, ведь я знал, какие процессоры использовала Sega в своих ретроконсолях: Z80 в Master System и M68K в Genesis. Калькуляторы имеют экраны в градациях серого, но мне захотелось узнать, пробовал ли кто-нибудь портировать игру Sonic с консолей на один из калькуляторов.

К своему удивлению, я выяснил, что этого никто не делал; более того, за исключением SonicUP и Sonic TI-Blast никто не создавал завершённый платформер про Соника для калькуляторов TI. Если не считать Nspire, но он настолько мощный, что способен эмулировать старые игровые консоли, так что меня он не особо интересует.

Поэтому я задался вопросом: удастся ли мне портировать уже существующий дизассемблированный код Sonic на графический калькулятор TI. Но сначала мне нужно было выбрать конкретную игру.
Читать дальше →
Total votes 40: ↑46 and ↓-6+52
Comments4

Насколько быстрее стали терминалы в GNOME 46?

Level of difficultyMedium
Reading time9 min
Views7.6K

VTE (Virtual TErminal library) — это библиотека, лежащая в основе различных эмуляторов терминала GNOME. Она предоставляет GTK-виджет, отображающий элемент терминала, используемый в приложениях наподобие GNOME Terminal, Console, Black Box, Tilix, Terminator, Ptyxis и других. Также она используется во встроенных терминалах Builder и Workbench.

На протяжении цикла GNOME 46 в VTE было внесено множество улучшений производительности. Кристиан Хергерт говорил о некоторых из них в своих постах о VTE и о своей работе в GNOME 46. Но насколько же улучшилась производительность? Чего стоит ожидать вам, пользователю, от установки свежего обновления Fedora 40 и запуска любимого терминала?

Давайте измерим и разберёмся!
Читать дальше →
Total votes 34: ↑45 and ↓-11+56
Comments21

Анатомия Hello World на языке C

Level of difficultyMedium
Reading time15 min
Views22K

Эта статья посвящена программе Hello World, написанной на C. Это максимальный уровень, на который можно добраться с языком высокого уровня, не беспокоясь при этом о том, что конкретно язык делает в интерпретаторе/компиляторе/JIT перед выполнением программы.

Изначально я хотел написать статью так, чтобы она была понятна любому, умеющему кодить, но теперь думаю, что читателю полезно иметь хотя бы некоторые знания по C или ассемблеру.
Читать дальше →
Total votes 107: ↑123 and ↓-16+139
Comments47

Не то, что кажется: 15 наивных вопросов об айсбергах + конкурс

Level of difficultyEasy
Reading time10 min
Views5.8K
Примерно раз в 2–3 года мне удаётся увидеть ледоход на Волге. Это впечатляющее зрелище: льдины скрипят, поют, наезжают друг на друга, сталкиваются и отталкиваются на считаные секунды. Откровенно говоря, выглядит всё это не только величественно, но и небезопасно: кажется, что льдины готовы затереть всё живое и неживое на своём пути. Но дух захватывает.

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

А что вообще мы знаем об айсбергах, кроме истории с «Титаником»? 

Автор — чудесный Антон Гудим
Читать дальше →
Total votes 42: ↑50.5 and ↓-8.5+59
Comments9

Gmail исполнилось двадцать лет

Level of difficultyEasy
Reading time6 min
Views5.8K

Когда выпущенный двадцать лет назад дурашливый пресс-релиз ознаменовал открытие Gmail, многие посчитали это розыгрышем. Обещалось, что сервис предоставит солидный по тем временам 1 гигабайт хранилища — огромная величина в эпоху 15-мегабайтных почтовых ящиков. Заявлялось, что он будет абсолютно бесплатным, хотя многие почтовые ящики в то время были платными. Смущала и дата: о запуске сервиса объявили первого апреля, что предвещало какую-то шутку.

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

Подростки известны своей драматичностью, но Gmail действительно удалось совершить революцию в электронной почте. Он переосмыслил возможности наших почтовых ящиков и стал основной частью наших цифровых личностей. По оценкам, сейчас сервис насчитывает 1,2 миллиарда пользователей (примерно седьмую часть от мирового населения) и сегодня он стал практически необходимостью для выполнения любых действий онлайн. Часто кажется, что Gmail всегда был и всегда будет.
Читать дальше →
Total votes 32: ↑42.5 and ↓-10.5+53
Comments36

Что можно сделать на личном веб-сайте

Level of difficultyMedium
Reading time6 min
Views21K

Blot просто берёт и превращает папку в сайт. Текстовые файлы в папке автоматически становятся веб-страницами на сайте

Мы уже упоминали десяток способов, как использовать личный VPS в минимальной конфигурации за 130 рублей. Это облачное хранилище для файлов, архив для бэкапов, почтовый сервер, игровой сервер и т. д. На него можно поставить практически любой софт: 0,5 ГБ оперативной памяти хватит для запуска большинства linux-приложений (без GUI).

И веб-сервер с личным сайтом и блогом — одно из таких приложений. Почему нет? За доллар в месяц вложение в личный бренд и технологическую независимость окупится многократно.
Читать дальше →
Total votes 49: ↑38 and ↓11+27
Comments32

Проблема: Wi-Fi работает только во время дождя

Level of difficultyEasy
Reading time6 min
Views46K
Вот что ответил отец на мой вопрос о проблеме с домашним подключением к интернету: «Wi-Fi работает, только когда идёт дождь».


Давайте сделаем шаг назад, чтобы осознать смехотворность этой ситуации.

В то время я был студентом колледжа (это произошло больше десяти лет назад). Перед началом осеннего семестра я на пару недель приехал к своим родителям. Я не был дома почти целый год, потому что колледж находился на другом континенте.

Мой отец — инженер, он работал с сетевым оборудованием, ещё когда я не родился. В основанной им компании он проектировал и внедрял множество сложных сетевых систем в организациях по всей стране: от гигабитного Ethernet для офисного здания до междугородных соединений при помощи микроволновых линий связи прямой области видимости.

Он последний, кто мог бы сказать нечто столь абсурдное.

«Что?», — удивлённо произнёс я. «Wi-Fi работает, только когда идёт дождь. Это началось пару недель назад, у меня пока не было времени с этим разобраться», — повторил он терпеливо.
Читать дальше →
Total votes 133: ↑138 and ↓-5+143
Comments142

Как работает радио?

Level of difficultyMedium
Reading time8 min
Views17K

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

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


Если вы подзабыли какие-то из этих тем, то рекомендую сначала освежить память.
Читать дальше →
Total votes 64: ↑64.5 and ↓-0.5+65
Comments51

Почему люди не делают бэкапы?

Level of difficultyEasy
Reading time6 min
Views15K
Есть у меня вузовский товарищ Сашка. Математик, физик, а теперь и разработчик (умело монетизирует мозги), умный до безобразия. Ещё в университете он проявлял патологическую собранность в походах: чего бы ни понадобилось, всё было у него в рюкзаке. Год за годом он погружался в тему жизнеобеспечения всё глубже — и вот в ковидные времена общество получило выживальщика, продуманного до мелочей. Это тот случай, когда тушёнка, сгущёнка, йодид калия, триста способов разжечь костёр, землянка в пригородном лесу уже выкопана и меблирована обставлена по последнему слову выживания. Так вот, этот разработчик, математик, физик и человек, желающий во что бы то ни стало сохраниться вместе с тихоходками, с полгода назад истерически кричал мне в трубку, что у него «стёрся» проект длиной в год. Причина истерики проста: он не сделал бэкап. И это могла быть курьёзная байка, но таких — сотни и тысячи. Это люди, которые доверяют какому-то авосю свой труд, свои силы, свой опыт, свои деньги, данные, судьбы своих компаний. А авось почему-то оказывается ненадёжным.


Это всё чёрная кошка виновата, а не бэкапы там какие-то несделанные

Почему так происходит? Предлагаю рассмотреть 9 возможных причин.
Читать дальше →
Total votes 58: ↑55 and ↓3+52
Comments90

Актуально ли сегодня ООП?

Level of difficultyMedium
Reading time11 min
Views57K

Почти каждый день возникают дискуссии с критикой или восхвалением объектно-ориентированного программирования. «Java устарела!», «Java потрясающая!». В этой статье я проведу прагматичное исследование ООП на 2024 год.

Термин объектно-ориентированное программирование придумал Алан Кэй. Кэй был членом команды PARC, которая изобрела графический интерфейс пользователя, сделавший таким полезным современный Интернет, персональные компьютеры, планшеты и смартфоны. Ещё она изобрела некоторые из объектно-ориентированных языков, на которых мы сегодня реализуем эти GUI.

Если отсечь все эмоции, связанные с ООП, то что останется? По-прежнему ли ООП является эффективным инструментом разработки ПО, или оно превратилось в устаревшее увлечение? Профессионалам важно знать ответ на этот вопрос!
Читать дальше →
Total votes 105: ↑85 and ↓20+65
Comments179

Чему разработчики ПО могут научиться у стоматологов

Level of difficultyMedium
Reading time6 min
Views10K

Для начала немного обо мне: я и практикующий дантист, и разработчик ПО. Со вторника по четверг я пишу код, а с пятницы по воскресенье принимаю пациентов. До того, как стать дантистом, я работал в таких компаниях, как Allstate Insurance, Lockheed Martin и ICS. Освоив обе эти профессии, я заметил, что разработчики ПО могут многому научиться у дантистов и наоборот. Я решил записать эти уроки в надежде, что они кому-то могут помочь. Это просто общие рекомендации — не стоит рассчитывать, что они идеально подходят для любой ситуации.
Читать дальше →
Total votes 65: ↑64 and ↓1+63
Comments37

Облачный апокалипсис. Файлохранилище на своём сервере

Level of difficultyMedium
Reading time7 min
Views12K


Компания Microsoft сегодня (или с 1 апреля) блокирует доступ к облачным сервисам для корпоративных клиентов из России. С этого дня хранилище OneDrive станет недоступно, как и 50 других сервисов Microsoft. Аналогичная ситуация может сложиться с сервисами Amazon и Google. Это вызовет некоторые проблемы у компаний, хранящих файлы в облаке.

Если у пользователей нет резервных копий, им придётся в экстренном порядке переносить их на другой сервер, спасая с «тонущего корабля». К счастью, на этот случай есть удобные инструменты вроде Rclone, который одной командой копирует файлы с популярных облачных хостингов на свой сервер.
Читать дальше →
Total votes 42: ↑37 and ↓5+32
Comments48

Сотрудникам нужны личные кабинеты

Level of difficultyEasy
Reading time13 min
Views27K

Во времена «до» мы просто каждый день ходили в офис. Это даже не обсуждалось: «работа из дома» казалась нереализуемой на практике. Чтобы «пойти на работу», нужно было выйти из дома. А потом случилась пандемия.

Теперь, когда она закончилась, даже трёхдневка в офисе вызывает так много споров, что дело доходит до вмешательства профсоюзов
Читать дальше →
Total votes 103: ↑100 and ↓3+97
Comments119

Взламываем головное устройство автомобиля Nissan

Reading time22 min
Views17K

В комплекте с моим Nissan Xterra поставлялось современное (на то время) головное устройство с сенсорным экраном, встроенной навигацией, дисплеем камеры заднего вида, мультимедийными функциями и возможностью подключения смартфона. Некоторые из самых продвинутых функций доступны только через приложение NissanConnect, требующее регистрации и подписки. Я никогда не пользовался им и даже не уверен, поддерживается ли оно сейчас.

Разве не здорово было бы добиться выполнения кода на устройстве и даже разрабатывать собственные расширения и приложения?

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

В статье также представлен код, позволяющий воспроизвести эти действия на вашем автомобиле, а также пример приложения, выполняющего задачу логирования GPS-данных. Однако здесь вы не найдёте абсолютно никакой информации по обходу механизмов DRM/защиты от копирования, особенно связанных с навигационными картами и онлайн-сервисами. Весь представленный в статье код и инструкции не дают никаких гарантий, воспроизводите их на собственный риск.
Читать дальше →
Total votes 114: ↑112 and ↓2+110
Comments26

Резервное копирование на дешёвом VPS-сервере

Level of difficultyMedium
Reading time6 min
Views8.1K


Мы уже рассказывали, как можно использовать ультрадешёвый VPS за 130 рублей в месяц. На самом деле 512 МБ оперативной памяти вполне достаточно для нормальной работы Linux (без GUI) и множества приложений, таких как VPN, веб-хостинг, некоторые игровые серверы, а также для резервного копирования файлов.

Конечно, в интернете куча облачных хостингов, но всё-таки приватные файлы спокойнее хранить на личном сервере, который полностью под нашим контролем.
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments18

Как я выживаю с диабетом при помощи Golang

Level of difficultyMedium
Reading time11 min
Views9.2K
image

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

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

Вы можете ответить: да кого это вообще волнует?

Людей заботит съедаемое количество калорий, только когда они пытаются набрать или сбросить вес. Возможно, вас немного интересуют углеводы, если вы соблюдаете кетодиету (но даже в этом случае многие из кетоблюд содержат углеводы).

Оказывается, в мире есть не менее 8 миллионов людей, которых волнуют ответы на эти вопросы, и я один из них. В 2020 году у меня диагностировали сахарный диабет первого типа. Вероятно, вы слышали о диабете, но, возможно, не очень знакомы с первым типом, который встречается реже. До постановки диагноза я тоже не был с ним знаком, так что вот краткое объяснение.
Читать дальше →
Total votes 71: ↑67 and ↓4+63
Comments61
1
23 ...

Information

Rating
Does not participate
Works in
Registered
Activity