Search
Write a publication
Pull to refresh
0
0
Send message

Странный мир путей файлов в Windows

Reading time6 min
Views77K

Пути файловых систем в Windows страннее, чем можно подумать. В любой производной от Unix системе пути на удивление просты: если нечто начинается с /, то это путь. Но всё совершенно иначе в Windows, которая имеет озадачивающее разнообразие схем составления пути.

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

Стоит заметить, что статья ограничивается только тем типом путей, который видит пользователь приложений Windows (обусловленный Win32 API). Под этим слоем есть ещё больше любопытного, в основном касающегося тех, кто пишет драйверы оборудования и тому подобное.
Читать дальше →

Удивительные клеточные автоматы: направленные и пользовательские окрестности

Level of difficultyEasy
Reading time7 min
Views3.5K


?, Хабр!

На прошлых неделях мы познакомились с различными вариациями альтернативных окрестностей – начиная с учёта расположения нотацией Хенселя, через альтернативные шаблоны расположения, и заканчивая взвешенными окрестностями. Сегодня добавим в тему окрестностей стандартного поля небольшой финальный штрих – пользовательские расположения.
Что здесь происходит (для новых читателей серии)
В этой серии мы разбираем клеточные автоматы – дискретную модель, основой которой является сетка из ячеек-клеток, которые изменяют (или не изменяют) своё состояние в зависимости от количества соседей.
Учёт соседей определяется правилами, которые устанавливаются нами. Вариаций правил существует бесчисленное множество, и они были систематизированы в определённые конфигурации.
Самая популярная конфигурация – «B/S», или «life-like», по названию крайне широко известного клеточного автомата «Game of Life», где B/S обозначает, что в нашем правиле мы описываем всего два параметра – количество соседей необходимых для рождения новой клетки в пустой ячейке, и количество соседей для выживания существующей клетки.
В каждой статье серии мы углубляемся в данную конфигурацию, добавляя новые параметры, либо дополняя существующие. Иногда заглядываем и в прочие конфигурации.
Для понимания сегодняшней статьи достаточно знать, что:
  • поиск соседей изначально выполняется в радиусе 1 (8 окружающих клеток – ), но мы можем установить другой, добавив к правилу Rx, где x – нужный нам радиус;
  • мы можем изменять шаблон окрестности поиска соседей. Изначально подразумевается окрестность Мура – R в каждую сторону (и диагональ) от рассматриваемой клетки, – но указывая Nxx мы будем определять иной шаблон, что, конечно, изменит вид правила. Сегодня мы продолжаем расширение этой части правила. Знакомство с предыдущими расширениями не является необходимым, но вы, конечно, можете предварительно ознакомиться с ними и прочими дополнениями, для большей последовательности чтения. Ссылки в конце материала и в профиле.
Читать дальше →

Уходим с «Яндекс.Почты» на свой почтовый сервер

Level of difficultyEasy
Reading time5 min
Views78K

17 апреля 2023 года «Яндекс» отключает бесплатную почту для бизнеса и предлагает платить от 249 до 1399₽ за юзера в месяц. Если не оплатить услуги, все аккаунты «Яндекс 360» будут принудительно переведены в режим чтения, то есть читать письма будет можно, а отвечать на них — нет.

Переход на платные тарифы обязателен для всех доменов (включая семейные аккаунты) с количеством пользователей больше трёх.

Конечно, легче всего согласиться на условия и оплатить требуемую сумму. На это и рассчитывает провайдер, что 99% клиентов молча заплатят деньги, ведь у них нет другого выхода… Но на самом деле выход есть.

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

Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все

Reading time20 min
Views439K

Три месяца назад здесь на Хабре была опубликована статья “Интернет-цензура и обход блокировок: не время расслабляться”, в которой простыми примерами показывалось, что практически все популярные у нас для обхода блокировок VPN- и прокси-протоколы, такие как Wireguard, L2TP/IPSec, и даже SoftEther VPN, SSTP и туннель-через-SSH, могут быть довольно легко детектированы цензорами и заблокированы при должном желании. На фоне слухов о том, что Роскомнадзор активно обменивается опытом блокировок с коллегами из Китая и блокировках популярных VPN-сервисов, у многих людей стали возникать вопросы, что же делать и какие технологии использовать для получения надежного нефильтрованного доступа в глобальный интернет.

Мировым лидером в области интернет-цензуры является Китай, поэтому имеет смысл обратить на технологии, которые разработали энтузиасты из Китая и других стран для борьбы с GFW (“великим китайским файрволом”). Правда, для неподготовленного пользователя это может оказаться нетривиальной задачей: существует огромное количество программ и протоколов с похожими названиями и с разными не всегда совместимыми между собой версиями, огромное количество опций, плагинов, серверов и клиентов для них, хоть какая-то нормальная документация существует нередко только на китайском языке, на английском - куцая и устаревшая, а на русском ее нет вообще.

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

Читать далее

Как не надо открывать ИТ-бизнес в Казахстане: наш пример

Level of difficultyEasy
Reading time4 min
Views24K
В Казахстан мы заходили ровно так же, как привыкли в Европах. Выбрали два ЦОДа по спецификациям из списка доступных дата-центров, нашли партнёра с каналами связи и свободными мощностями в выделенных секциях колокации и договорились, что встаём. Дальше мы выпустили стандартный пресс-релиз про то, что вот русская хостинг-компания открывает на территории Казахстана две площадки.

Дальше началась цепочка смешных и не очень совпадений.

«Коммерсант» и другие издания опубликовали наш релиз. Потому что есть дефицит хороших новостей про российский бизнес.

Из «Коммерсанта» про это узнал «Форбс Казахстан» и перепостил новость. Только вот есть нюанс. В релизе у нас было «на мощностях «Транстелекома» (мы вставали в их ЦОДы), но в бумажную газету почему-то попало в формулировке «совместно». А мы, напомню, вставали через их арендатора, условно, в секцию к магистральному провайдеру, брали несколько стоек для начала.

Кто-то из руководства «Транстелекома» пролистал за утренним чаем «Форбс» и узнал много нового. В частности, о своём стратегическом партнёрстве.


А тут надо сказать, что до этого на рынке случилась очень забавная (или не очень) история с газетной уткой. О ней мы тоже не знали, конечно же.
Читать дальше →

Поддельные калькуляторы Casio научились проходить тест на подлинность

Level of difficultyEasy
Reading time5 min
Views32K

Несколько лет назад фирма Casio модифицировала популярную модель Casio fx-991ES Plus второй редакцией, которая получила довесок в имени "2nd edition". Кроме небольших, скорее косметических улучшений, во второй версии добавили генерацию QR-кода, считав который телефоном и пройдя по сслыке можно было бы проверить калькулятор на подлинность.

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

Мастерство поддельщиков достигло больших высот. Раньше, взяв какой-нибудь клон Sharp EL-506P и положив рядом с оригиналом, можно бы довольно быстро понять, что есть что.

Читать далее

Как мы изобрели велосипед: адаптер USB–RS485 с выходом питания 12 В и защитой

Level of difficultyEasy
Reading time12 min
Views20K

Можно ли сделать хорошо знакомое и массовое устройство ещё лучше? Конечно!

Расскажем о недостатках существующих адаптеров USB-RS485, поиске идеального решения и про весь процесс: от идеи до запуска серийного производства.

Читать далее

Запуск аналогов ChatGPT на домашнем ПК в пару кликов и с интерфейсом

Level of difficultyEasy
Reading time6 min
Views241K

--- Обновление статьи 9 Августа 2023 ---

В течении последнего полугода в сфере текстовых нейронок всё кипит - после слитой в сеть модели Llama, aka "ChatGPT у себя на пекарне" люди ощутили, что никакой зацензуренный OpenAI по сути им и не нужен, а хорошие по мощности нейронки можно запускать локально.

Основная проблема в том, что всё это требует глубоких технических знаний.

Но в этой статье я расскажу, как запустить добротную нейросеть на домашнем ПК с 16ГБ ОЗУ в несколько кликов. Буквально в несколько кликов - копаться в консоли не придётся.

Читать далее

Разработка BIOS на языках высокого уровня

Level of difficultyHard
Reading time11 min
Views29K
Ничего лишнего: материнская плата, видеокарта и ROM-BIOS

Меня давно волнует вопрос, как подступиться к разработке на голом железе, на чистом си. Хотелось понять, каким же образом идёт запуск BIOS, u-boot, grub и прочих первичных загрузчиков. Ведь необходимо перейти от ассемблера к тёплому ламповому си и соблюсти условие, собрать всё это в линукс любимым компилятором gcc.

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

Здесь я хочу свести основные моменты разработки BIOS в одном месте и разобраться обо всех проблемах, которые я получил во время своих опытах в разработке (первая и вторая части).
Читать дальше →

Как 10 лет разрабатывать электронику по контракту и не загнуться

Level of difficultyEasy
Reading time13 min
Views19K

Привет, меня зовут Иван Ларионов. В 2011 году мы вместе с братом основали компанию «Третий пин». Я хочу поделиться своей историей эволюции из инженера-фрилансера в руководителя компании, занимающейся контрактной разработкой электроники. Как и почему удалось не обанкротиться, не закрыться и не выгореть, а нарастить мощности и сохранить кураж.

Читать далее

Как загадочный разработчик снизил затраты на AWS на 90%, а потом исчез

Reading time3 min
Views49K

Недавно я завершил аудит своего SaaS-клиента. Его история достойна рассказа. Это история о жадности, лжи и красоте хакинга.

Это история о том, как благодаря мой клиент снизил свои ежемесячные траты на AWS на 90 тысяч долларов благодаря таинственному разработчику, который исчез, как только работа была сделана.

Когда спустя полгода затраты на AWS снова взлетели примерно до 120 тысяч в месяц, этот клиент попросил меня разобраться, что же произошло на самом деле.

И разгадка оказалась совершенно сумасшедшей!
Читать дальше →

Гасить ипотеку досрочно или инвестировать? Разбираемся, как не оказаться без денег и без квартиры

Reading time7 min
Views46K

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

Читать далее

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

Level of difficultyEasy
Reading time8 min
Views49K

В этом посте я объясню, как работает Интернет. Мы ответим на вопросы наподобие «Как браузер находит файл HTML для запрошенной веб-страницы?», «Как файл HTML превращается в интерфейс пользователя?», «Что можно сделать, чтобы ускорить этот процесс?», «Как устанавливается и поддерживается связь с сервером?», а также рассмотрим следующие концепции:

  • Клиент-серверную модель
  • Жизненный цикл запроса веб-страницы
  • Hypertext Transfer Protocol
  • Как браузеры рендерят контент
Читать дальше →

Архитектура SSH. Узел-бастион и принцип нулевого доверия

Level of difficultyMedium
Reading time5 min
Views19K

В инфраструктуре организации есть такое понятие, как узел-бастион — специальный компьютер в сети, обычно на внешней стороне демилитаризованной зоны (ДМЗ) организации. Узел назван по военной терминологии. Если кто видел средневековые крепости, там есть специфические выступы — бастионы, как на КДПВ.

То же самое в компьютерных сетях. Например, перед защищённой компьютерной сетью ставится специальный сервер, через который пробрасывается SSH-туннель в свою частную сеть. Данный «бастион» организуется в соответствии с концепцией нулевого доверия, которая предполагает абсолютное недоверие ко всем объектам и пользователям как снаружи организации, так и внутри неё.
Читать дальше →

Один день из жизни JVM-инженера

Reading time27 min
Views24K


Можно разрабатывать на Java, а можно разрабатывать Java. Есть люди, чей код исполняет виртуальная машина — а есть люди, чей код и есть виртуальная машина.


Вроде бы те и другие существуют в одной Java-экосистеме, но задачи совершенно разные. Поэтому редкое место, где они пересекаются и могут что-то поведать друг другу — Java-конференции. Мы проводим их регулярно (уже в апреле будет JPoint). И на предыдущей нашей конференции Иван Углянский dbg_nsk поделился с Java-разработчиками тем, как всё выглядит с его стороны.


Чем он вообще занимается? Почему JVM-инженеры всё так медленно делают? На каком языке стоит писать рантайм, а на каком компилятор? Как «папка бога» в Windows привела к неожиданным последствиям? Может ли «обычный джавист» стать JVM-инженером?


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

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

Как разработать плату, пригодную для массового производства? Подход Design for Manufacturing

Level of difficultyHard
Reading time15 min
Views22K

Качество печатной платы зависит не только от оборудования, уровня технологов и процессов на фабрике. Не меньший вклад в него вносят конструкторские решения разработчика платы — тополога. От них зависит технологичность: то, насколько просто будет произвести и ремонтировать изделие. Наиболее технологичной плата получится, если тополог сразу учтёт технологические нормы и особенности производства, внеся их в параметры своего CAD‑проекта. Такой подход называется Design for Manufacturing (DFM) — дизайн, оптимизированный под производство. Давайте разбираться, что это такое.

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

Читать далее

Как мы быстро запустили мобильное приложение и споткнулись о свой успех

Level of difficultyMedium
Reading time13 min
Views7K

Привет, Хабр! Мы крупная производственная компания с 50К+ сотрудников, и в 2019 году поняли, что нам нужно мобильное приложение. Срок реализации 5 месяцев. Какой стек вы бы выбрали при такой скорости? Мы выбрали нативные Kotlin и Swift. Поначалу запилили всего 6 сервисов (новости, зарплатный лист, отпуска, блоги, регистрацию опасностей, выдачу СИЗ), и даже при том, что нанесли минимальную пользу, приложение очень зашло, количество пользователей начало расти лавинообразно. И тут мы поняли, что серверная часть на node.js + PostgreSQL создана без всякой мысли о развитии и масштабировании, решала исключительно локальные задачи. Все было на неоптимальной монолитной архитектуре, развивать и поддерживать которую просто нельзя.

Расскажу, как мы решили проблему.

Читать далее

Рисуем верёвку в формате SVG при помощи JavaScript

Level of difficultyMedium
Reading time8 min
Views8K

Сегодня я расскажу о процессе, который я придумал для преобразования SVG‑контура в векторный рисунок верёвки.

Вы узнаете, как превратить показанный слева контур в верёвку справа:

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

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

Замысел

Взглянув на это фото верёвки, вы заметите, что она состоит из множества переплетённых друг с другом прядей. Визуально они делят верёвку на сегменты. 2D‑проекция каждого сегмента напоминает изогнутый многоугольник.

Наша задача будет заключаться в создании этих многоугольников при помощи JavaScript.

Читать далее

Безопасная информатизация: как мы создали единую инфраструктуру для всех бюджетных учреждений республики

Level of difficultyEasy
Reading time3 min
Views2.2K

Как безопасно создать инфраструктуру и объединить все органы государственной власти, муниципальные образования республики, организации здравоохранения, культуры, образовательные и другие учреждения? Рассказываем об опыте Татарстана - здесь работает единая Государственная интегрированная система телекоммуникаций, в которой общаются сотрудники, решаются задачи и предоставляется информация. 

Читать далее

Его величество Пайп, или как заставить ssh tunnel открыть RDP на другом конце через альтернативный IP

Level of difficultyMedium
Reading time5 min
Views18K

Для начала, вспомним некоторые базовые вещи ОС Unix.

Любой процесс в Unix имеет три открытых файла по умолчанию (он конечно может их потом закрыть):

Читать далее

Information

Rating
Does not participate
Registered
Activity