Pull to refresh
9
5.9
Сергей @TsarS

User

Send message

Кремний

Reading time 6 min
Views 61K
image
Процессор? Песок? А какие у вас с этим словом ассоциации? А может Кремниевая долина?
Как бы там ни было, с кремнием мы сталкиваемся каждый день и если вам интересно узнать что такое Si и с чем его едят, прошу под кат.
Читать дальше →
Total votes 145: ↑130 and ↓15 +115
Comments 50

Создание сетевой игры с помощью Collagen_2, Node.js и библиотеки socket.js

Reading time 12 min
Views 3.1K

В данной статье будет описан простой способ создания сетевой онлайн мини игры на подобии небольшой чат комнаты. Игроки могут передвигаться по полю игры, прятаться за деревьями, также есть возможность управлять камерой вида. Для тестирования игры необходимо скачать редактор зайти в папку collagen_2/games/game_3, ввести в командной строке forever start app.js. Для работы игры требуются модули socket.js и forever(глобальная инсталяция).

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 3

Где бесплатно изучать Rust в 2024

Level of difficulty Easy
Reading time 6 min
Views 23K

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

1. Безопасность: Rust разработан с упором на безопасность, предотвращая многие типичные ошибки программирования, такие как доступ к памяти после ее освобождения или гонки данных. Это особенно важно для разработки критически важных систем, таких как операционные системы или встраиваемые приложения.

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

3. Многопоточность: Rust предоставляет удобные инструменты для разработки многопоточных приложений. Он предлагает безопасные абстракции для работы с потоками и предотвращает гонки данных, что облегчает разработку параллельных программ.

4. Кроссплатформенность: Rust поддерживает различные платформы, включая Windows, Linux, macOS и другие. Это позволяет разрабатывать приложения, которые могут работать на разных операционных системах без необходимости переписывать код.

5. Растущее сообщество: Rust имеет активное и одно из самых быстрорастущих сообщество разработчиков. Это означает, что всегда есть доступ к обновленным библиотекам, учебным материалам и помощи от опытных разработчиков.

6. Востребованность на рынке труда: Rust становится все более популярным среди работодателей, особенно в области разработки системного и встраиваемого программного обеспечения. Умение программировать на Rust может открыть двери к новым возможностям и повысить вашу конкурентоспособность на рынке труда.

Читать далее
Total votes 33: ↑22 and ↓11 +11
Comments 43

2d движок для игр Javascript Game Engine (JsGE)

Level of difficulty Medium
Reading time 7 min
Views 6.5K

Привет всем. Меня зовут Артурас, я пишу на Javascript. Полтора года назад я уволился из оффшорной компании и решил написать свой движок для браузерных 2d игр. Сегодня - делюсь результатами.

Читать далее
Total votes 11: ↑11 and ↓0 +11
Comments 15

Оптоэлектронный мемристор (OEM): современные исследования

Reading time 7 min
Views 1.9K

В статье я попробую кратко рассказать о современных направления в исследованиях для оптоэлектронного мемристора (OEM). Добро пожаловать всем интересующимся.

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 3

Открываем курс по Kubernetes и рассказываем, зачем разработчику знать DevOps

Level of difficulty Easy
Reading time 3 min
Views 11K

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

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

Читать далее
Total votes 30: ↑29 and ↓1 +28
Comments 8

Вам не нужен для этого JavaScript

Level of difficulty Medium
Reading time 11 min
Views 27K

Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю JSX HTML. Я люблю все эти три технологии по причине, которая называется…

▍ Правило наименьших полномочий


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

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

В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом.

Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
Читать дальше →
Total votes 97: ↑95 and ↓2 +93
Comments 38

Не Unity единым…

Level of difficulty Easy
Reading time 15 min
Views 36K

Игры бывают разные, большие и маленькие, триA и супер инди, в компаниях с сотнями разработчиков и что создаются самородками-одиночками. Редко их делают с нуля и пишут код только игры, чаще пишут игровые тулы, редактор и параллельно пишут саму игру. За всей этой многомиллиардной индустрией стоит код, много кода, очень много кода. Игровые движки и фреймворки – мощные инструменты, которые помогают разработчику творить его идеи и создавать увлекательные игровые миры. Это каркас, на котором строятся все игровые вселенные, они включают в себя сотни инструментов, библиотек и ресурсов, позволяя разработчикам превратить строчки кода в театр для одного зрителя.

Существует более сотни игровых движков, каждый из них содержит как минимум одну фичу которой нет ни в каком другом. Всех возможностей вместе нет ни в одном, и это прекрасно - иначе бы такой движок монополизировал рынок. Хм, Unreal5 ты ли это? Иногда полезно пробежать по release notes движка, чтобы оставаться в курсе последних новостей. Возможно вы разрабатываете свое решение и эта статья натолкнет вас на новые идеи. Готовы узнать что ваша любимая игры была сделана не на Unity, а на православном SDL?

Читать далее
Total votes 95: ↑95 and ↓0 +95
Comments 89

От теории к практике: создаём веб-приложение для решения задачи коммивояжёра

Level of difficulty Medium
Reading time 14 min
Views 6.1K

В таких сферах, как исследование операций (Operations Research) и наука о данных (Data Science) чрезвычайно актуально сближение теории и её практического применения в виде программных проектов. Теоретические выкладки формируют базу программ для оптимизации чего‑либо, так как теория даёт средства для решения разнообразных задач. Но очень важно помнить и о том, что подобные программы должны быть доступны конечному пользователю, что с ними должно быть удобно работать.

Задача коммивояжёра (Traveling Salesman Problem, TSP) — это, без сомнения, та самая задача комбинаторной оптимизации, которая изучена лучше всего (Rego, C., Gamboa, D., Glover, F., & Osterman, C., 2011. Traveling salesman problem heuristics: Leading methods, implementations and latest advances. European Journal of Operational Research, 211(3), 427–441). Её легко описать (по крайней мере — на словах), её можно использовать для того чтобы продемонстрировать некоторые из возможных компонентов API современной программы по построению маршрутов. В результате я просто не мог подобрать ничего лучше этой задачи в качестве основы для примера, который разобран в этой статье.

Здесь вы узнаете о том, как использовать Python‑библиотеку Streamlit для создания веб‑приложения, которое позволяет решать задачу коммивояжёра с использованием входных данных, предоставленных пользователем. Так как нас интересует создание приложения, пригодного для решения реальных задач, мы, анализируя пути перемещения между некими географическими точками, будем интересоваться не только евклидовым расстоянием между ними, но и другими характеристиками путей. В частности, наша программа, используя координаты точек, должна уметь получать данные о том, какое расстояние по автомобильным дорогам нужно преодолеть для перемещения между ними. Эти данные должны учитываться при выполнении оптимизации. Для этого мы воспользуемся API OpenStreetMap.

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

Готовы поработать? Взгляните на то, что у нас должно в итоге получиться…

Читать далее
Total votes 17: ↑17 and ↓0 +17
Comments 2

Основы проектирования архитектуры простой социальной сети

Level of difficulty Easy
Reading time 15 min
Views 8.5K

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

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

Читать далее
Total votes 20: ↑16 and ↓4 +12
Comments 5

Как мы распознавали цвета медицинских тест-полосок с помощью ИИ для healthcare стартапа

Level of difficulty Medium
Reading time 7 min
Views 1.5K

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

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 4

Самые распространенные логические ошибки

Level of difficulty Easy
Reading time 12 min
Views 57K

Изучение логических ошибок помогает в развитии критического мышления, необходимого во всех сферах жизни. School of Thought проделала отличную работу, описав 24 наиболее распространенные логические ошибки.

Читать далее
Total votes 84: ↑79 and ↓5 +74
Comments 101

Интервью на камеру: как избежать ошибок и не испортить имидж

Level of difficulty Easy
Reading time 18 min
Views 7.3K

Интервью телеканалу или в видеоблог может стать отличным способом привлечь внимание к вашему бизнесу. Это возможность для рекламы на большую аудиторию, часто бесплатная. Но беседа с журналистом перед камерой для многих становится настоящим стрессом. Спешим вас успокоить: волноваться – это нормально. Важно суметь справиться с нервами, и тогда выступление станет достижением, о котором вы захотите рассказать коллегам и друзьям. В этой статье в блоге ЛАНИТ мы собрали советы о том, что нужно сделать, чтобы телевизионное или видеоинтервью с вашим участием получилось качественным. 

Читать далее
Total votes 34: ↑33 and ↓1 +32
Comments 1

Кварц, который нужен всем. Как добывают и синтезируют необходимый для электроники минерал

Reading time 4 min
Views 5.3K

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

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

Читать далее
Total votes 18: ↑18 and ↓0 +18
Comments 2

Как загружается процессор Intel x86

Level of difficulty Medium
Reading time 9 min
Views 19K
image

Когда мы включаем компьютер, он успевает совершить несколько этапов работы ещё до того, как загрузится операционная система. В этом посте будет рассмотрено, как загружается типичный процессор с архитектурой x86. Это очень сложный и многоступенчатый процесс. Здесь его структура будет представлена только в самом общем виде. От загрузочной прошивки зависит, каким именно путём процессор придёт к тому состоянию, в котором сможет загрузить операционную систему. Мы проследим этот процесс на примере опенсорсной загрузочной прошивки coreboot.
Читать дальше →
Total votes 44: ↑42 and ↓2 +40
Comments 21

Как работает компьютер: глубокое погружение (на примере Linux)

Level of difficulty Hard
Reading time 48 min
Views 129K



Введение


Я делала много вещей с компьютерами, но в моих знаниях всегда был пробел: что конкретно происходит при запуске программы на компьютере? Я думала об этом пробеле — у меня было много низкоуровневых знаний, но не было цельной картины. Программы действительно выполняются прямо в центральном процессоре (central processing unit, CPU)? Я использовала системные вызовы (syscalls), но как они работают? Чем они являются на самом деле? Как несколько программ выполняются одновременно?


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


И, как говорится, ты по-настоящему знаешь что-то, только если можешь объяснить это другому.


Более удобный формат статьи.

Читать дальше →
Total votes 152: ↑152 and ↓0 +152
Comments 36

Как начать делать генетические тесты

Reading time 3 min
Views 1.8K

Для начала необходимо выбрать что будем тестировать. Есть большой список болезней и признаков за которые отвечают генетика. Например, предрасположенность к курению, рост, вес, рак, заболевания сердца, желудка, крови, иммунной системы, печени, мозга и тд. Болезни и все, что связано с медициной лучше избегать а выбрать что-то связанное с красотой, молодостью, питанием, спортом, мотивацией и т. д. После этого, идем в Гугл и ищем информацию про найденные ассоциированные с нашим признаком мутации. Есть большая база данных почти всех публикаций PubMed. Можно и там искать, но я предпочитаю Гугл. Находим все публикации и составляем список мутаций. Для каждой мутации нужно выписать номер хромосомы, позицию в геноме, эффект мутации и генотип. Можно найти аспиранта из НИИ, который быстро проведет литературный обзор и составит вам список. Либо сделать еще проще: зайти на сайт PGS Catalog, выбрать там что-нибудь по душе и скачать готовый файл с мутациями. Осторожно, там могут быть ошибки.

Читать далее
Total votes 6: ↑0 and ↓6 -6
Comments 20

Волновое сопротивление остроносых судов

Reading time 14 min
Views 10K

Что может нам рассказать бурун у форштевня о форме подводных потоков, огибающих судно?

Ранее я уже писал статью «Борьба с волновым сопротивлением у водоизмещающих кораблей» про волновое сопротивление кораблей на примере тупоносых плоскодонных речных барж (см. ссылку).

Теперь настало время разобраться с волновым сопротивлением остроносых судов.

Дополнительным мотивом к написанию статьи стал ТВ-репортаж с военно-морского парада в Санкт-Петербурге 30 июля 2023 года.

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

Читать далее
Total votes 49: ↑46 and ↓3 +43
Comments 61

Разворачиваем веб-приложение в Kubernetes с нуля

Level of difficulty Easy
Reading time 31 min
Views 32K

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

Всё это время для простоты разработки и отладки компоненты приложения запускались локально через Docker Compose. Но как развернуть такое приложение в настоящем продакшн-окружении? Как обеспечить горизонтальное масштабирование? Как раскатывать новые релизы без простоя? 

В этой статье мы разберёмся, как разворачивать многокомпонентное веб-приложение в кластере Kubernetes на примере его локальной реализации — minikube. Мы поднимем виртуальный кластер прямо на рабочем ноутбуке, разберёмся с основными сущностями Kubernetes, запустим и соединим между собой компоненты демо-приложения и обсудим, какие ещё возможности Kubernetes пригодятся нам в суровом энтерпрайзе. Если вы занимаетесь разработкой и слышали о Kubernetes, но ещё не имели возможности пощупать его руками — добро пожаловать под кат!

Скорее к YAML-инженерии
Total votes 38: ↑38 and ↓0 +38
Comments 10

125 простых советов по улучшению юзабилити вашего сайта

Reading time 22 min
Views 14K

Эту статью Ника Коленды я перевёл ещё в конце 2016 года. И не просто перевёл, а ещё и сопроводил комментариями от лица бренда, под которым проектирую интерфейсы все эти годы.

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

Свои старые комментарии я немного освежил и оформил в виде цитат.

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

Читать далее
Total votes 37: ↑35 and ↓2 +33
Comments 11

Information

Rating
727-th
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Specialist
Senior