Обновить
1024K+

Программирование *

Искусство создания компьютерных программ

1 125,23
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Backend United #1. Винегрет — видео, фотоотчёт, презентации и отзывы слушателей

Время на прочтение2 мин
Охват и читатели3.5K

18 апреля у нас в офисе прошел первый митап, посвященный кросс-языковым решениям для разработки серверной части. «Винегрет», судя по нашим впечатлениям и отзывам гостей митапа, удался. Значит, будем продолжать практику объединения бэкендеров, чаще встречаться и обсуждать общие подходы и инструменты для разных языков. Ну а пока публикуем видео, слайды, отзывы и фото. Всё это — под катом.


Блокчейн. Когда его стоит применять?

Время на прочтение3 мин
Охват и читатели4.5K
image

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

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

По своей сути блокчейн схож с паттерном CQRS, в основе которого лежит event sourcing. Если максимально упростить, и там и там есть только поддержка insertов, если говорить терминами баз данных. Update и delete для сущностей не поддерживаются. И если в системах построенных по CQRS никто не мешает удалить или обновить событие из журнала, то в блокчейн это невозможно из-за целостности всего журнала.

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

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

Статический анализ в видеоигровой индустрии: топ-10 программных ошибок

Время на прочтение11 мин
Охват и читатели17K


Если вы занимаетесь разработкой ПО в сфере видеоигровой индустрии и задаётесь вопросом о том, что ещё можно сделать, чтобы повысить качество продукта \ упростить процесс разработки, и при этом не используете статический анализ — самое время начать. Сомневаетесь? Что ж, я попробую вас в этом убедить. Если же вам просто интересно посмотреть на ошибки, которые допускают разработчики из сферы видеоигровой индустрии, то, опять же, вы попали по адресу — специально для вас отобраны наиболее интересные.
Читать дальше →

Операционные системы с нуля; уровень 3 (старшая половина)

Время на прочтение28 мин
Охват и читатели17K

В этой части мы допишем обработку прерываний и возьмёмся за планировщик. Наконец-то у нас появятся элементы многозадачной операционной системы! Разумеется это только начало темы. Одно прерывание таймера, один системный вызов, базовая часть простого планировщика потоков. Ничего сложного. Однако этим мы подготовим плацдарм для создания полноценной системы, которая будет заниматься самыми настоящими процессами безо всяких "но". Прямо как в этих ваших линупсах и прочих. До конца этого курса осталось уже чуть менее половины.


Нулевая лаба


Первая лаба: младшая половина и старшая половина


Вторая лаба: младшая половина и старшая половина


Третья лаба: младшая половина

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

Сколько стоит компилятор?

Время на прочтение7 мин
Охват и читатели31K
Компилирующий тулчейн является одним из самых больших и самых сложных компонентов любой системы, и, как правило, основан на опенсорсном коде, либо GCC, либо LLVM. На Linux-системе, только ядро операционной системы и браузер имеют больше строк кода. Для коммерческих систем, компилятор должен быть абсолютно надёжным, каким бы ни был исходный код, он должен генерировать надёжный, высокопроизводительный бинарный код.

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


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

Не пишите лишнего

Время на прочтение3 мин
Охват и читатели61K

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


Дольше всего приходится вычитывать не хитрые алгоритмы, и не решения с алгебраическими типами данных и монадами, а огромные куски простого кода: методы на 500 строк, скрипты на 1000 строк, классы на 1500 строк. Все они доставляют индустрии проблем не меньше, чем печально известное NullPointerException.

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

PHP может стать еще лучше

Время на прочтение7 мин
Охват и читатели29K

PHP слоник для привлечения внимания


Шутки про PHP — уже отдельный жанр в различных сообществах программистов. Некоторые не любят PHP, потому что {lang_name} намного лучше. А кого-то он вполне обоснованно расстраивает.


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


В моей работе PHP используется постоянно. Так сказать, это основной backend язык, используемый в моих проектах. За время работы у меня появились некоторые пожелания и замечания. Решил поделиться с обществом. Кому интересно, добро пожаловать под кат.

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

Выпуск#20: ITренировка — актуальные вопросы и задачи от ведущих компаний

Время на прочтение4 мин
Охват и читатели8.4K
Продолжаем публиковать интересные задачи и вопросы с собеседований в различные IT-компании мира.

КДПВ
На этот раз в подборку попали вопросы для будущих инженеров-программистов в Symantec. В преддверии майский праздников, задачи выбраны не самые сложные, но требующие некоторого размышления. Просим также писать в комментариях интересные вопросы и задачи, которые встречались Вам на собеседованиях.
Читать дальше →

Внутренности протокола, которым браузеры передают голос и видео

Время на прочтение6 мин
Охват и читатели32K
image

WebRTC, технология голосовых и видеозвонков в браузерах (а еще realtime передачи произвольных данных, peer-to-peer пробивания NAT и захвата экрана) никогда не была простой. Долгая история, несовместимости между браузерами, запутанная документация, множество решаемых задач и используемых протоколов. Возможность позвонить и принять звонок из браузера всегда была одной из ключевых «фишек» нашей платформы Voximplant, и так как мы в этом неплохо разбираемся, то стараемся следить за интересными статьями и адаптировать их для аудитории Хабра. Под катом перевод свежей статьи от ребят из callstats.io — сервиса сбора статистики по качеству звонков для браузера. В небольшой статье они рассказывают о протоколе RTP с помощью которого, собственно, браузер и передает пакеты с голосом или видео.
Читать дальше →

Когда компьютеры были людьми…

Время на прочтение6 мин
Охват и читатели9.3K


Практически любое изложение истории компьютеров начинается с упоминания изобретенного в древнем Египте абака. В зависимости от детальности изложения далее перечисляются изобретения китайского варианта абака, различных видов счетов с костяшками, вычислителей на основе зубчатых колёс, изобретения и промышленного выпуска арифмометров Тома де Кальмару, изобретения разностной машины Чарльзом Бэббиджем и т.д. вплоть до появления современных компьютеров. От абака до iPad история компьютеров представляется как цепочка изобретений изделий из дерева, металла и других материалов.

Однако, первые компьютеры (computers) были людьми! И эта статья о том, как они из людей превратились в то, что мы имеем сейчас.
Читать дальше →

Давайте заглянем SObjectizer-у под капот

Время на прочтение15 мин
Охват и читатели3.9K
Продолжаем знакомить читателей с открытым C++ным фреймворком под названием SObjectizer. Наш фреймворк упрощает разработку сложных многопоточных приложений за счет того, что C++программисту становятся доступны более высокоуровневые инструменты, позаимствованные из Модели Акторов, CSP и Publish-Subscribe. При этом, как бы высокопарно это не звучало, SObjectizer является одним из немногих открытых, живых и развивающихся акторных фреймворков для C++.

Мы уже посвятили SObjectizer-у более десятка статей на Хабре. Но все равно читатели жалуются на наличие «белых пятен» в понимании того, как SObjectizer работает и как взаимосвязаны между собой различные типы сущностей, которыми оперирует SObjectizer.

В этой статье мы попробуем заглянуть под капот SObjectizer-у и постараемся «на пальцах» и в картинках объяснить из чего он состоит и как, в общих чертах, он работает.
Читать дальше →

Про утечку памяти в одном серверном приложении

Время на прочтение14 мин
Охват и читатели18K


Прочитав данную заметку вы узнаете, через что пришлось пройти после неожиданно возникшей утечки памяти серверного приложения в ОС FreeBSD. Какие современные средства обнаружения подобных проблем существуют в данной среде и почему самое мощное из них может оказаться совершенно бесполезным в кривых руках.
Читать дальше →

Ближайшие события

Bobaos — KNX TP/UART, Raspberry Pi и Apple HomeKit

Время на прочтение4 мин
Охват и читатели5.5K


В данной публикации я покажу как с нуля настроить и запустить homebridge(реализация HomeKit Accessory Protocol на nodejs) на базе Raspberry Pi, Weinzierl KNX BAOS 838 module kBerry и bobaos.

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

Квест по устранению аритмии сердца

Время на прочтение7 мин
Охват и читатели14K
image

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

Что спрятано внутри онлайн-касс: разработка фискального регистратора

Время на прочтение6 мин
Охват и читатели21K


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

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

Tutu PHP Meetup #1: видео выступлений

Время на прочтение1 мин
Охват и читатели4K
image

5 апреля в офисе сервиса путешествий Туту.ру прошел первый PHP Meetup. В гости пришло более 120 backend-разработчиков. Мы записали все выступления и делимся ими с вами.

Формирование JWS и JWK из rsa-ключей на примере интеграции Let’s Encrypt и ISPmanager

Время на прочтение6 мин
Охват и читатели22K
Всем привет! Меня зовут Дмитрий Смирнов, я разработчик из ISPsystem и это именно я в ответе за появление в панели ISPmanager 5 интеграции с Let’s Encrypt. Расскажу, как проходила разработка плагина, как он менялся и как пришел в теперешнее состояние. Из текста узнаете, как формировать JWS и JWK из rsa-ключей и получать Let’s Encrypt сертификат для ACME v01. Если интересно, добро пожаловать под кат.

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

Основы программирования на SAS Base. Урок 3. Чтение текстовых файлов

Время на прочтение8 мин
Охват и читатели14K
В предыдущей статье мы познакомились с понятием библиотеки SAS, научились назначать библиотеку для файла Excel, а также познакомились с процедурой, которая создает детализированные отчеты.

Напомню, что скачать ПО вы можете на сайте SAS, ссылка на документацию по установке SAS UE указана в статье №1.

В данной статье вы познакомитесь с несколькими способами чтения текстовых файлов.


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

Мороженое с Kubernetes, или контейнерные решения для начинающих

Время на прочтение4 мин
Охват и читатели3K
Вообще-то, Kubernetes и контейнеры вошли в обиход совсем недавно, поэтому не будет удивительным, если вы пока еще мало о них знаете или не очень активно используете. В этом посте мы расскажем о Kubernetes тем, кто хочет присоединиться к авангарду ИТ-технологий – разработчикам, которые еще не перешли на контейнеры, и даже не техническим людям, которые сегодня тоже не могут обойтись без ИТ (привет, цифровизация бизнеса!).



Раскрыть горячую тему нам поможет пример с мороженым.
Читать дальше: Мороженое с Kubernetes