Search
Write a publication
Pull to refresh
0
Василь Бєляєв @VXPread⁠-⁠only

C#, C++, Lua

Send message

Все о TON. Как устроен и работает The Open Network

Reading time5 min
Views48K

P.S. Начать хочу с новости:

31 октября блокчейн TON в ходе публичного тестирования установил мировой рекорд, выполнив более 100 000 транзакций в секунду

Для сравнения, предыдущий рекорд принадлежал блокчейну Solana. Это самый высокий показатель не только среди блокчейнов, но и среди классических платёжных систем, как Visa и Mastercard. По словам разработчиков, потенциально сеть способна обрабатывать миллионы транзакций в секунду при достаточном количестве валидаторов.

Читать далее

Марсоход и моя ошибка на 500 миллионов долларов

Level of difficultyEasy
Reading time10 min
Views21K

Кажется, что некоторые ошибки хуже, чем смерть.

Февральским вечером 2003 года я начал процедуру в Лаборатории реактивного движения НАСА в Пасадене, штат Калифорния. Я натянул костюм для чистой комнаты и прошёл в воздушный шлюз High Bay 1 здания 179, где создавались почти все межпланетные космические аппараты НАСА, начиная с программы «Рейнджер», делавшей снимки Луны в 1960-х. Спустя годы труда тысяч инженеров, техников и учёных оставалось всего две недели до того, как марсоход «Спирит» будет транспортирован на мыс Канаверал во Флориде для запуска перед его братом «Оппортьюнити».

Я был на своей второй неофициальной смене, уже отработав в ту среду двенадцать часов. Длинные смены — обычная ситуация на этапе сборки и тестирования. Каждая система космического аппарата тщательно тестируется, проверяется его идеальное рабочее состояние, прежде чем его подготовят к отправке с Земли. Миссии-близнецы «Спирит» и «Оппортьюнити» были одними из самых сложных космических аппаратов, построенных на то время, они воплотили в себе почти миллиард инвестированных НАСА долларов.
Читать дальше →

Простой и удобный шаблон для bash-скриптов выполняемых по расписанию

Level of difficultyEasy
Reading time4 min
Views27K

Хочу поделиться с сообществом простым и полезным шаблоном скрипта-обёртки на bash для запуска заданий по cron (а сейчас и systemd timers), который моя команда повсеместно использует много лет.

Сначала пара слов о том зачем это нужно, какие проблемы решает. С самого начала моей работы системным администратором linux, я обнаружил, что cron не очень удобный планировщик задач. При этом практически безальтернативный. Чем больше становился мой парк серверов и виртуальных машин, тем больше я получал абсолютно бесполезных почтовых сообщений "From: Cron Daemon". Задание завершилось с ошибкой - cron напишет об этом. Задание выполнено успешно, но напечатало что-нибудь в STDOUT/STDERR - cron всё равно напишет об этом. При этом даже нельзя отформатировать тему почтового сообщения для удобной автосортировки. Сначала были годы борьбы с использованием разных вариаций из > /dev/null, 2> /dev/null, > /dev/null 2>&1, | mail -E -s '<Subject>' root@.

Читать далее

1000 человек на место или как новичку стать синьором

Level of difficultyEasy
Reading time13 min
Views14K

Привет! Меня зовут Сергей, я немножко ведущий фронтенд-разработчик и немножко продуктовый менеджер, а еще друг, поэт и музыкант. Как так получилось — история для другой статьи, а здесь я расскажу о другом. 

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

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

Читать далее

GNU Shepherd — что это за альтернатива systemD?

Reading time10 min
Views9.9K

Привет, хабр! На связи Аргентум. Сегодня мы поговорим о системах инициализации в Linux, а точнее - об малоизвестной GNU Shepherd.

Мы изучим самые популярные известные системы инициализации - и попытаемся изучить GNU Shepherd.

Ну, друзья, да благословит нас Столлман!

Вперёд!

SOLID — это несложно. С примерами на Python

Reading time16 min
Views34K

Привет, Хабр! Меня зовут Павел Корсаков, я python-разработчик в облачном провайдере beeline cloud.

Почти на всех собеседованиях задают вопросы про SOLID: что это такое, зачем нужен, как его применяет кандидат, как понимает принципы из него?

Мы тоже спрашиваем кандидатов про SOLID. Чаще всего они рассказывают, что SOLID — это акроним, озвучивают все его принципы, но объяснить и привести примеры могут лишь для половины. На остальных либо плавают, либо сливаются.

Чтобы мой материал не получился очередной статьей про SOLID, я изменю формат подачи и последовательность объяснения принципов. Буду добавлять код небольшими инкрементами и на каждом из них указывать, какие принципы SOLID используются в том или ином случае. 

Читать далее

Как использовать html-элемент <dialog>?

Level of difficultyMedium
Reading time11 min
Views31K

Привет, Хабр! Меня зовут Александр Григоренко, я фронтенд-разработчик. В основном, занимаюсь разработкой приложений на React, но также постоянно экспериментирую с различными технологиями.

В своей работе я часто создаю собственные или использую уже готовые UI-компоненты. Проблема с такими компонентами заключается в том, что они часто ограничены определённым фреймворком, и их реализация требует написания сложной нестандартизированной логики. В течение долгого времени для базовых UI-компонентов, таких как диалоговые окна, использовались самописные решения, а в тяжёлых случаях и встроенные в JavaScript методы alert(), prompt() и confirm().

Отличная новость в том, что такой компонент можно реализовать с использованием нативного HTML-элемента <dialog>, который встроен в стандарт HTML5 и работает одинаково во всех современных браузерах.

Давайте познакомимся с возможностями <dialog> поближе.

Читать далее

LAN-party для пентестеров: прорываемся к домен контроллеру через розетку

Level of difficultyMedium
Reading time7 min
Views22K


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


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

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

Domain fronting для чайников, и как его использовать для обхода блокировок

Level of difficultyMedium
Reading time11 min
Views64K

Давайте сразу вопрос на засыпку: может ли быть так, что клиент подключается, ну, например, к серверу www.python.org (самому настоящему, тому, к которому обращаются еще миллионы клиентов со всего мира), а потом использует его как прокси и гоняет через это подключение трафик до своего VPS для доступа в неподцензурный интернет? Если вы не уверены в ответе на этот вопрос или почему-то ответили "нет", то добро пожаловать в статью.

Я уже не раз рассказывал здесь о технологии XTLS-Reality (1, 2, 3) суть которой в том, что ваш прокси-сервер VPS может очень достоверно маскироваться под какой-нибудь популярный веб-сайт - принимать подключения, которые будут выглядит точно так же, как обращения к настоящему сайту, отвечать на них полностью аутентичным TLS-сертификатом, и в целом вести себя как тот настоящий сайт. Единственная проблема - сам IP-адрес. Немного подозрительно, когда к какому-нибудь якобы www.google.com постоянно обращается только один пользователь, а IP-адрес этого сервера на самом деле даже не относится к автономной сети Google.

Еще я рассказывал о разных вариантах проксировать трафик посредством вебсокетов и простых HTTP-туннелей через различные CDN, такие как Cloudflare и Gcore. Вероятность того, что под блокировку попадет вся CDN гораздо ниже, чем что забанят какой-то один сервер или диапазон хостера, но та схема требовала регистрацию своего домена для работы через CDN.

И наверняка многим в голову приходила идея, а нельзя ли как-нибудь совместить эти два механизма? Проксироваться через CDN, но при этом "прикрываясь" каким-нибудь чужим доменом? Ответ: да, можно, и сейчас мы посмотрим, как именно.

Читать далее

Мягкое знакомство с дополнительным кодом

Level of difficultyMedium
Reading time9 min
Views26K

Недавно, общаясь по видеосвязи с другом, я рассказывал ему о своих идеях по реализации нового продукта. В разговоре я упомянул добавление больших знаковых чисел в ассемблере с использованием дополнительного кода, на что получил от собеседника вопрос: «Что такое дополнительный код?» Меня немного удивила его неосведомлённость. Он уже больше 30 лет программирует на Java. Java и Python программисты (а также другие, работающие с языками *с придыханием* вроде Commodore / MicroSoft BASIC) не сталкиваются с нативным типом беззнакового целого числа. В этих языках подобные тонкости реализуются за них.

Всё это круто, но компьютер, за которым вы сидите, внутренне обрабатывает такие числа довольно простым способом, и хорошо бы знать, как именно это происходит.

Плюс это всё же наука. Так что давайте разбираться.
Читать дальше →

История студии Remedy. Судьба под контролем

Level of difficultyEasy
Reading time17 min
Views5.8K
image

Расставание с крупным издателем, потеря прав на своё главное детище, а именно Alan Wake, прощание с большими бюджетами на разработку – для многих игровых студий подобные обстоятельства были бы равны гвоздям в крышку гроба. Для многих, но не для студии Remedy.

Они не просто не отчаялись после разрыва отношений с Microsoft, но были рады данному событию. Ведь они вновь свободны, вольны прокладывать себе путь самостоятельно, без советов и наставлений «умных» дядек в пиджаках. Каковы были испытания на пути финнов и чего они достигли на этом этапе – сегодня и обсудим.
Читать дальше →

Сервис проверки пользовательских файлов «powered by pytest»: нужно повозиться, но оно того стоит

Level of difficultyMedium
Reading time10 min
Views3.9K

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

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

Эта задача - про качество данных и очень напоминает тестирование. Так почему не использовать фреймворк тестирования pytest, и не написать тесты на каждый проверяемый аспект и для каждого типа файлов? Однако, есть небольшое "но". проверка должна быть реализована в качестве сервиса, чтобы встраиваться в более широкий процесс обработки пользовательских документов.

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

Читать далее

Алгоритм MiniMax. Использование минимакса в Unity на примере игры Поймай Овечку

Level of difficultyEasy
Reading time14 min
Views7.4K

Минимакс - популярный алгоритм для принятия решений в играх с нулевой суммой (один выиграл - другой проиграл). Казалось бы, раз он так популярен, то всё что можно было про него сказать уже сказано? Не совсем. Информация сильно раздроблена, иногда ошибочна, а найти какие-либо примеры в играх довольно сложно. Поэтому в этой статье я постараюсь прояснить процесс разработки ИИ на основе минимакса для игры "Поймай Овечку".

Читать далее

Размышления о 18 годах работы в Google

Level of difficultyEasy
Reading time6 min
Views60K

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

Читать далее

Снижаем потребление CPU в VS Code в 5 раз [Кратко]

Level of difficultyEasy
Reading time2 min
Views39K

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

Читать далее

Костыли для ddrescue. Что делать если SSD перестает отдавать данные

Level of difficultyEasy
Reading time11 min
Views13K

Первая версия GNU ddrescue была выпущена 12 августа 2004г 19 лет назад. Но не спешите проматывать статью. Это не очередной пересказ мануала или описание алгоритма работы, коих полно в сети. Сегодня я расскажу о ней кое что новенькое.

Если заинтриговал, то обо всем по порядку.

Разбор crackme от KilLo (.net)

Level of difficultyEasy
Reading time8 min
Views4.7K


Предупреждение


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


Введение


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

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

Ретро кодинг: Привет из прошлого века

Reading time25 min
Views17K

На дворе 2023 год. Информационные технологии шагнули далеко. Даже 10 лет назад кажется для нас устаревшей эпохой.

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

Но давайте вернемся назад — на 20, 30 и даже больше лет назад. У современных программистов есть мощнейшее программное обеспечение, десятки языков программирования. А всего лет 20–30 назад программисты писали код на каких нибудь калькуляторах при помощи чистого ассемблера!

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

Читать далее

Когда программы были маленькими, а деревья пиксельными. Простота и минимализм TreePad

Reading time4 min
Views15K

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

Для меня таким старым надёжным другом стала программа TreePad Lite. Она со мной уже без малого 30 лет. Мне очень близок минимализм TreePad: простота интерфейса, отсутствие необходимости установки, нетребовательность к ресурсам, открытый формат файлов, отсутствие каких-либо зависимостей от сторонних библиотек и интернета.

Читать далее

Генеративный ИИ — это просто «замыленный JPEG интернета», который убедительно косит под интеллект

Reading time12 min
Views44K

ИИ чат‑боты любят ловить глюки и выдавать всякую чушь. Так массово, что словом 2023 года признали «галлюционировать». В чем причина такого явления? Является ли генеративный ИИ интеллектом (спойлер — и да, и нет)? И что общего у ChatGPT и копировального аппарата Xerox? Разбираемся, осмысляя неочевидный нюанс в логике работы больших языковых моделей.

Читать далее

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity