Pull to refresh
9
0
Send message

13 заметок о 3D-печати, после 3 лет владения 3D-принтером

Reading time13 min
Views56K

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

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

Старый фотик + bash = таймлапс

Reading time9 min
Views29K

Думаю у многих из нас, в шкафу пылился старый зеркальный фотоаппарат, типа Canon EOS 400D. Он как чемодан без ручки: выбросить жалко, продать смысла нет, и использовать вряд ли будешь. Достал его так одним вечером, и подумал: вещь хорошая и вполне годная для всяких опытов. И сразу загорелся применить его во всяких своих самоделках. А что, весьма хорошо фотографирует из коробки, достаточно широкий спектр всяких регулировок, осталось только научиться с ним работать. Всего-то подружить его с компьютером, да Linux, и дело в шляпе! В результате у нас получается просто непаханое поле для фотографических экспериментов и применения в своих придумках. Давайте же поглядим, как это можно сделать и что получилось из таких экспериментов.
Читать дальше →

Как сделать себе карьеру, помогая людям

Reading time21 min
Views6.7K
На прошлой неделе в наших соцсетях выступил Иван Роганов, специалист по разработке ПО и решению неординарных проблем, а также автор статей в нашем блоге.

Иван окончил Московский Государственный университет Экономики Статистики и Информатики в 2008 году по специальности Инженер-программист.

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

Делимся с вами расшифровкой эфира и записью.

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

Справедливость — главное неизвестное экономической теории (почему равенство имеет значение)

Reading time15 min
Views13K
Чувство справедливости — фундаментальный фактор экономических отношений. Традиционно экономическими понятиями считаются числа, формулы и узко рыночные термины. То есть, абстрактные категории — притом, что экономика как сфера отношений противоположна абстракции. Экономические отношения — это категория социальных отношений. Побуждения людей участвовать в экономических отношениях восходит к чувствам, их поведение регулируется на эмоциональном уровне.

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

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

Greed is not good
Читать дальше →

Прокачиваем силу — Rust и Windows API

Reading time10 min
Views19K


Недавно я написал статью Трясём стариной — или как вспомнить Ассемблер, если ты его учил 20 лет назад. В статье рассказывается о том, как изучать ассемблер на примере игрушки 2048. Возможно для целей самой статьи игрушка была подходящая, но конечный результат меня немного удручил. Бинарник размером в 10 килобайт, который потребляет 2 мегабайта памяти, из-за неправильно слинкованной библиотеки резал глаза.

Посему я задался вопросом, а как это можно было бы сделать правильнее? Наверняка есть намного более удачное решение. (И организовал ещё один конкурс с призами в конце статьи)

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

Причём это не значит, что вы будете использовать какую-то нестандартную библиотеку. Встречайте — windows-rs, проект поддерживаемый Microsoft. Ваш билет в мир Windows, если вы пишете на Rust.
Читать дальше →

Бандлинг всего того, что не относится к обычному JavaScript-коду

Reading time8 min
Views5.9K
Предположим, вы работаете над веб-приложением. В таком случае весьма вероятно то, что вам приходится иметь дело не только с JavaScript-модулями, но и с самыми разными другими ресурсами. Это и веб-воркеры (их тоже пишут на JavaScript, но они обособлены от обычного кода фронтенда), и изображения, и стили, и шрифты, и WebAssembly-модули, и иные материалы, входящие в состав сайта.

Ссылки на некоторые из подобных ресурсов можно включить непосредственно в HTML-код, но часто они логически связаны с компонентами, используемыми во многих местах проектов. Например, таблица стилей для особого выпадающего списка связана с JavaScript-кодом, реализующим этот список, а изображения иконок связаны с компонентом, реализующим панель инструментов. Точно так же WebAssembly-модуль связан с JavaScript-кодом, обеспечивающим использование этого модуля. Удобнее было бы обращаться к подобным ресурсам прямо из соответствующих JavaScript-модулей и загружать их динамически тогда (или если), когда загружается соответствующий компонент.


Ресурсы разных типов, импортируемые в JS-коде

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

Распространённые ошибки при использовании npm, которых лучше не совершать

Reading time5 min
Views18K
Npm — это крупнейший менеджер пакетов. Его сравнительно просто и понятно использовать в практике веб-разработки. Но когда речь заходит о применении собственных конфигураций или об использовании продвинутых возможностей npm, многое может пойти не так.



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

FAQ про хостинг

Reading time5 min
Views20K

— В чём прикол хоститься у российской компании за рубежом?

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

— Погодите, то есть это лучше, чем у английской компании в Англии?

С точки зрения приватности — да. Местные не могут получить доступа к вашим установочным данным без запроса в Интерпол, а в России никто на практике не интересуется другой юрисдикцией. Если при этом выбрать ещё не Англию, а Голландию, где законы разрешают почти всё с точки зрения информационной свободы, то получится флеш-рояль.
Читать дальше →

Переход с iptables на nftables. Краткий справочник

Reading time18 min
Views160K
image

В Debian теперь нет iptables. Во всяком случае, по умолчанию.

Узнал я об этом, когда на Debian 11 ввёл команду iptables и получил “command not found”. Сильно удивился и стал читать документацию. Оказалось, теперь нужно использовать nftables.

Хорошие новости: одна утилита nft заменяет четыре прежних — iptables, ip6tables, ebtables и arptables.

Плохие новости: документация (man nft) содержит больше 3 тысяч строк.

Чтобы вам не пришлось всё это читать, я написал небольшое руководство по переходу с iptables на nftables. Точнее, краткое практическое пособие по основам nftables. Без углубления в теорию и сложные места. С примерами.
Читать дальше →

Интернет-бизнес больше не друг пользователя: как адаптироваться к реальности позолоченного века интернета

Reading time10 min
Views12K
Золотой и позолоченный век интернета. Золотой век интернета — когда новые сервисы постоянно росли в количестве и размерах, встречая пользователя, где он был, находя, угадывая и удовлетворяя его потребности, или даже создавая их, но чутко реагируя на обратную связь в процессе таким образом, что пользователь сам был рад обнаружить у себя новую потребность в том, что может предложить революционная эпоха появления персональных гаджетов и интернета — закончен. Ландшафт интернет-рынка полностью оформился, границы интернет-вселенной определены, и новые чудесные открытия в ней уже не происходят с той же регулярностью и быстротой, что в 2000–2010 годах. Начался позолоченный век — все возможности, открытые и созданные в золотой век, ещё здесь и продолжают радовать ту часть человечества, которой они доступны. Но отношения пользователей и бизнесов поменялись кардинально.

Развитие отношений интернет-бизнеса и пользователей чем-то напоминают сказку о золотой рыбке

Если в золотой век интернета бизнесы открывали для себя пользователей, искали и создавали для них потребности, которые они могли удовлетворить, в процессе окружая пользователей таким чутким вниманием, что казались им лучшими друзьями и, одновременно, безропотными и верными слугами, на которых достаточно лишь строго посмотреть — и они тут же, немедленно, не по принуждению, а из собственной охоты исправят user experience на более лучший, то в позолоченный век ситуация совершенно другая: бизнесы со всех сторон окружили пользователя своими возможностями, со всех сторон облепили их гаджетами, составили общую карту потребностей от рабочих до развлекательных — и предлагают удовлетворяющие их услуги под любое настроение для любой погоды 24/7 круглый год.
Читать дальше →

Severed Steel: в поисках идеального экшена

Reading time7 min
Views7.7K

Игровую индустрию вот уже три десятилетия невозможно представить без кинематографичности. Пока одни разработчики делают игры ради игр, где геймплей просто работает (от “Марио” до “Цивилизации”), другие пытаются превратить свои произведения в интерактивное (или не очень) кино. Это направление можно разделить ещё на два: кто-то ограничивается роликами и катсценами с щедрой щепоткой QTE, а другие затачивают, “чтобы как в кино” сам геймплей. Max Payne, Call of Duty, FEAR — все они, так или иначе, отсылают нас к впечатлениям от любимых произведений кинематографа, или в случае с Devil May Cry, аниме (получается, это “анимеграфичность”?). Но как далеко можно зайти, если ваш источник вдохновения — лучшие экшен-сцены “Матрицы”?

Представьте себе игру, которая максимально похожа на все ваши самые любимые и безумные экшен-сцены в кино. Ну, такие, где герои лихо расставляют хедшоты в ходе забега по стенам и палят из пистолетов в прыжке. Те самые, где всё вокруг взрывается, а обломки падают в слоу-моушен. В которых гипертрофированно крутые персонажи не просто крушат врагов — нет, они делают это нарочито стильно, и вся игра существует только ради этого. Представили? Это — вот оно.
Читать дальше →

5 вещей, которые я узнал, доведя Snowpack до 20000 GitHub-звёзд

Reading time9 min
Views26K
Меня зовут Фред. Я — создатель Snowpack. Для тех, кто не знаком с этим проектом, расскажу в двух словах о том, что он собой представляет. Это — инструмент для сборки фронтенда веб-сайтов, который, по существу, дал дорогу движению «unbundled web development» («веб-разработка, основанная на использовании отдельных компонентов»), которое в наши дни поддерживают Snowpack, Vite, SvelteKit и другие современные инструменты для веб-разработки.

В этом материале я хочу рассказать о пяти вещах, которые я узнал, доведя Snowpack от исходного коммита до почти 20000 звёзд на GitHub и до более чем миллиона загрузок.



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

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

Проект Copland. История крупнейшего провала Apple

Reading time12 min
Views18K


В первой половине 90-х годов наметился очевидный рывок в эволюции операционных систем для персональных компьютеров. Microsoft уже ведет разработку новейшей Windows 95 на замену устаревшей Windows 3.11, IBM продвигает OS/2 Warp 3, отличавшуюся высокой надежностью и достаточно большим ассортиментом прикладных программ. На этом фоне Mac OS 7, ведущая отсчет версий с 1991 года, выглядела уже несколько архаичной. В Apple решили переписать операционную систему с нуля, создав на замену System 7 современную, гибкую и мощную платформу, способную конкурировать с новейшими разработками Microsoft на равных. Проект получил наименование Copland.
Читать дальше →

Апскейл, который смог

Reading time15 min
Views78K
Термин «апскейл» используется для обозначения процесса увеличения разрешения цифровых изображений с фокусом на создание иллюзии «настоящего» высокого разрешения. Правда, 90% таких продуктов — это барахло, больше намёк на перспективы, чем волшебство. Недавно мои ручки добрались до двух алгоритмов повышения чёткости, которые оказались настолько хороши, что появилась эта статья. Будут субъективные и объективные тесты алгоритма Real-ESRGAN для увеличения разрешения и алгоритма GFPGAN для детализации лиц.
Traffic_Warning: в статье демонстрируется множество примеров.
Читать дальше →

Как вообще Интернет приходит в ЦОД

Reading time4 min
Views19K
Пользователь VDS-хостинга задал нам вопрос о том, откуда берётся Интернет. И тут мы поняли, что это тот самый детский вопрос, на который не так-то просто нормально ответить.

Думаю, что 99 % людей ответят: берёт и приходит, а потом задумаются. Это настолько естественно и очевидно, что обычно просто не обсуждается. Ну там, знаете, оптика, она приходит в домик, в домике стоит коробка, а из коробки идёт медь. Вот примерно так оно и работает.

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

Для нас всё начинается вот с этой ракеты в Королёве:


Источник

Это памятник «Восток-2М» (8А292М), стоящий в Королёве примерно на том месте, где вообще был разработан «Восток». Перед ним находится люк, где одна трасса оптики разделяется на три к M9, или MSK-IX — московской международной телефонной станции № 9, где когда-то появился самый крупный узел обмена трафика. Сейчас это главное место, откуда Интернет поставляется в Москву. Из-за некоторых особенностей нашей территории бомбоубежища именно в этом люке под ракетой находится уязвимое место оптики, где все три канала идут вместе, и их легко перерубить экскаватором на протяжении примерно 120 метров. В других местах до и после ракеты такого нет.

Соответственно один луч идёт через наш ЦОД в Ивантеевку, поворачивает в Щёлково и заканчивается на M9-IX. Второй подземный ввод идёт через Ярославское шоссе, третий ввод — дополнительный, он скачет по столбам от коллектора до ЦОДа в одну сторону и до местного провайдера в другую, а провайдер уже врезается в кольцо оптики по городу и тоже попадает в девятку.
Читать дальше →

Принцип работы планировщика задач в Linux

Reading time5 min
Views32K

Планирование – это процесс распределения ресурсов системы для выполнения задач. В статье мы рассмотрим его вариант, в котором ресурсом является одно или несколько ядер процессора, а задачи представлены потоками или процессами, которые нужно выполнить.
Читать дальше →

Пишем драйвер виртуального EEPROM для STM32F030

Reading time15 min
Views14K

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

Разгадываем ребус вторичных часов «Воронеж»

Reading time12 min
Views13K

В предыдущей статье я затеял создание контроллера вторичных часов «Воронеж», и даже добился некоторой работоспособности. Однако так и не разгадал окончательно ребус формы и длительности передаваемого сигнала. На ту публикацию откликнулось большое количество людей, и предложило свою помощь. Кто-то помогал советом, кто-то снял живые осциллограммы с различных первичных часов, кто просто помог добрым словом и оказал поддержку. В результате понял, что нельзя бросить это устройство в стадии недоделки, потому что за ним следит такое количество людей. Поэтому было принято волевое решение довести всё до конца, при этом с максимальным качеством, доступным в домашних условиях. Главный девиз этой разработки был:
Делай хорошо — плохо само получится.
В результате на вторую часть я потратил в полтора-два раза больше времени, чем на первую: причёсывал код, занимался механикой, чертил детали корпуса, печатал их на принтере, точил на токарном станке, а главное, страдал от перфекционизма. Как обычно бывает, механическая часть съела чуть ли не 40% всего времени. В общем, поехали, будет интересно: от идеи до законченного устройства.
Читать дальше →

Упрощаем эмуляцию X86 с помощью Live CD

Reading time5 min
Views5K

Типичный подход к эмулированию среды для запуска старых файлов с архитектурой i386 сопряжен со сложностями, в частности с поиском всех необходимых библиотек. Однако этой проблемы можно избежать, воспользовавшись заранее подготовленным образом Live CD, о чем в статье и пойдет речь на примере образа эмулятора Palm OS и игры Shogo: Mobile Armor Division.
Читать дальше →

Вектор? Растр? А может — и то, и другое?

Reading time4 min
Views6.9K
На этой неделе я столкнулся с интересным классом задач, для решения которых, как я теперь понимаю, можно было использовать гораздо более удачный подход и раньше. Но существует ли такой подход?


Изображение для верхней части сайта

Речь идёт о подготовке изображения, рассчитанного на использовании в верхней правой части сайта jamstackconf.com. Мы, в маркетинговой команде Netlify, используем Figma. Первая моя попытка экспорта этого изображения для использования его на сайте оказалась далеко не самой удачной.
Читать дальше →

Information

Rating
Does not participate
Works in
Registered
Activity