Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Multipath TCP в Go

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5.5K

По данным mptcp.io на 1 ноября 2023 года в глобальной сети функционируют около 350 тысяч ресурсов с поддержкой Multipath TCP (далее - MPTCP).

И можно еще добавить легко и непринужденно.

Далее под катом
Всего голосов 11: ↑9 и ↓2+7
Комментарии13

Как интегрировать мультиаккаунт в уже работающий сервис и не поломать всё

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров2.3K

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

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

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

Что может пойти не так?

Читать далее
Всего голосов 11: ↑10 и ↓1+21
Комментарии0

Эффективная работа с битами при помощи Go

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров15K

Это статья познакомит вас с использованием возможностей Go для выполнения манипуляций с битами. Здесь мы разберём установку, очистку, инвертирование, сдвиг битов, использование техники SWAR, эффективную обработку Юникода и прочие приёмы, позволяющие повысить продуктивность программирования.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+39
Комментарии8

Задачи второго этапа олимпиады «IT-Планеты» по PostgreSQL

Время на прочтение16 мин
Количество просмотров8.1K

В этом году наша компания впервые провела конкурс по базам данных в рамках международной олимпиады IT-Планета по информационным технологиям. Раньше на олимпиаде использовалась СУБД Oracle; наш коллега Евгений Бредня в свое время делился таким опытом.

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

На втором этапе участникам было предложено подумать над пятью задачами, каждую из которых следовало решить одним SQL-запросом. Этот этап также проводился заочно: на раздумья было дано примерно три недели. Условия всех задач были опубликованы одновременно, но у каждой был свой крайний срок; поэтому первыми шли задачи полегче, чтобы на более сложные осталось больше времени. Задачи проверялись на корректность (автоматическими тестами) и на качество кода (вручную). По результатам мы отобрали двадцать человек для последнего, очного этапа.

Третий этап состоялся 27 мая в Сочи. К сожалению, из двадцати приглашенных приехать смогли только четырнадцать; между ними и состоялось соревнование. Задачи этого этапа также предполагали решение одним запросом, но сами задания были объединены общей темой, навеянной игрой Го, и строились так, что решение одной задачи помогало подступиться к следующей.

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

Поговорим о втором этапе
Всего голосов 18: ↑18 и ↓0+18
Комментарии3

SectorC: компилятор Си в пределах 512 байт

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров21K

SectorC (github) – это компилятор Си, написанный на ассемблере x86-16 и умещающийся в загрузочный сектор 512 байт машины x86. Он поддерживает достаточно обширную функциональность Си для создания реальных и интересных программ, являясь при этом, пожалуй, самым миниатюрным компилятором Си из когда-либо написанных.
Читать дальше →
Всего голосов 107: ↑105 и ↓2+148
Комментарии45

Рациональный подход к декомпозиции систем на модули или микросервисы

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров6.9K

Чего от разработки ПО хотят разработчики, продакты и владельцы бизнеса?

Одного и того же - побольше дофаминчика (гормон счастья), поменьше кортизольчика (гормон стресса). Притом источники и дофамина, и кортизола у них одни и те же. Дофамин вырабатывается, когда фичи выпускаются в срок и без багов, а кортизол - когда сроки срываются и вылазят баги и регрессии. Бизнесу будет ближе финансовая версия — срыв сроков и баги очевидным образом приводят к увлечению стоимости разработки. Что приводит к выбросу кортизола уже у владельцев.

Как обеспечить высокий уровень дофамина?
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Описательная статистика перформанс-распределений

Время на прочтение40 мин
Количество просмотров18K

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

Андрей Акиньшин @DreamWalker поговорил об этом в докладе на нашей конференции Heisenbug. И теперь, пока мы готовим следующий Heisenbug (где тоже будут доклады о производительности), решили опубликовать текстовую версию его выступления (а для тех, кому удобнее другие форматы, прикрепляем видеозапись и слайды). Предупреждаем: много букв, цифр, графиков и формул!

Читать далее
Всего голосов 51: ↑51 и ↓0+51
Комментарии4

Эксплойтинг браузера Chrome, часть 2: знакомство с Ignition, Sparkplug и компиляцией JIT в TurboFan

Уровень сложностиСложный
Время на прочтение50 мин
Количество просмотров7.3K

В моём предыдущем посте мы впервые погрузились в мир эксплойтинга браузеров, рассмотрев несколько сложных тем, которые были необходимы для освоения фундаментальных знаний. В основном мы изучили внутреннюю работу JavaScript и V8, разобравшись, что такое объекты map и shape, как эти объекты структурированы в памяти; мы рассмотрели базовые оптимизации памяти наподобие маркировки указателей и сжатия указателей. Также мы затронули тему конвейера компилятора, интерпретатора байт-кода и оптимизации кода.

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

В сегодняшнем посте мы вернёмся к конвейеру компилятора и ещё глубже разберём некоторые из рассмотренных ранее концепций: байт-код V8, компиляцию кода и оптимизацию кода. В целом, мы рассмотрим происходящее внутри Ignition, Sparkplug и TurboFan, поскольку они критически важны для понимания того, как определённые «фичи» могут привести к появлению багов, которые можно эксплойтить.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии2

Воспитай свой второй мозг. Увеличь продуктивность

Время на прочтение9 мин
Количество просмотров77K

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

Хотели бы вы иметь второй мозг? Мозг, способный запомнить всё. Мозг, в котором содержится вся полезная информация из книг, статей, видео, полученная вами?

Звучит прекрасно, не так ли? Может, когда‑то и казалось сказками, однако не сейчас.

Хочу всё знать!
Всего голосов 62: ↑55 и ↓7+56
Комментарии111

Falang.io: редактор блок-схем

Время на прочтение2 мин
Количество просмотров9K

Здравствуйте, позвольте рассказать вам про сервис falang.io - редактор блок схем.

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

Читать далее
Всего голосов 16: ↑14 и ↓2+13
Комментарии49

Как создать свою СУБД с нуля и не сойти с ума. Практическое пособие начинающему некроманту. Часть первая

Время на прочтение43 мин
Количество просмотров32K

Наступил Апокалипсис.

Нет, не стоит бежать запасаться банками с консервами и крышками отечественной бай-колы! Апокалипсис произошёл только в нашей фантазии и с определённой целью — чтобы проверить, а может ли человек, обладающий только книгами по теме и стандартной библиотекой языка, воссоздать инструмент, который будет служить ему верой и правдой?

Так родился учебный проект SicQL, реляционная СУБД, чей символ — сова — это олицетворение силы знаний и мудрости. Олицетворение тех знаний и той мудрости, которые мы получим, создав с нуля то, чем мы пользуемся каждый день, может, не осознавая всей сложности таких инструментов.

Приглашаю присоединиться к увлекательному путешествию!

Принять приглашение на борт
Всего голосов 54: ↑53 и ↓1+64
Комментарии62

Что посмотреть в выходные: 5 фильмов про хакеров

Время на прочтение3 мин
Количество просмотров20K


Создатели фильмов часто допускают ляпы и неточности в вопросах, связанных с технологиями (что приводит, в том числе к появлению постов вида «Почему хакинг в голливудских фильмах ужасен»). Но несмотря на это в мире есть и фильмы о хакерах, которые хочется пересматривать вновь и вновь. Ниже — наша подборка самых интересных историй в этом жанре.
Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии30

Как написать децентрализованную мультиблокчейн биржу за сутки

Время на прочтение4 мин
Количество просмотров12K


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

Для тех, кто любит читать код, а не статьи — репозиторий проекта.

Любители видео тоже не обижены :) В этом видео можно послушать краткое содержание статьи, посмотреть, как реализуется биржа шаг за шагом и увидеть вживую ее работу.

Децентрализуем это
Всего голосов 33: ↑29 и ↓4+25
Комментарии8

Марвин Мински «The Emotion Machine»: Глава 1 «Представление разума как облака ресурсов»

Время на прочтение9 мин
Количество просмотров2.9K
Отец искусственного интеллекта размышляет о том, как сделать машину, которая бы гордилась нами. Марвин Мински был довольно жестким ученым и то, что он своим «скальпелем познания» исследует тему чувств и эмоций, что же делает нас людьми, довольно интересно и полезно. Книга — отличный образец того, как «ИТишным подходом» попробовать осмыслить «человеческое»: ценности, идеалы, любовь, боль, здравый смысл.

image


§1-5. Представление Разума Как Облака Ресурсов


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

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

Виталист: Это всё происходит из-за того, что машины не имеют духа или души, и не имеют никаких желаний, амбиций, желаний или целей. Именно поэтому машина попросту перестаёт реагировать, когда она застревает перед какой-либо задачей, тогда как человек пытается как-то разрешить её. Конечно, так оно и должно происходить, потому что люди сделаны из другого вида вещей; мы являемся живыми, а машины – нет.
Читать дальше →
Всего голосов 11: ↑8 и ↓3+5
Комментарии0

Сделаем Windows медленнее! Часть первая: файловый доступ

Время на прочтение7 мин
Количество просмотров43K
imageОС Windows долгое время попрекали за медлительность её файловых операций и медленное создание процессов. А почему бы не попробовать сделать их ещё более медленными? Эта статья покажет способы замедления файловых операций в Windows примерно в 10 раз от их нормальной скорости (или даже больше), причём способы эти практически не поддаются отслеживанию обычным пользователем.

А ещё, конечно же, мы научимся подобные ситуации обнаруживать и исправлять. Весь текст написан на основе проблемы, с которой я столкнулся пару месяцев назад, так что всё, написанное ниже, полностью реально.
Читать дальше →
Всего голосов 72: ↑71 и ↓1+70
Комментарии9

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

Время на прочтение7 мин
Количество просмотров21K
image

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

Но есть способ и получше. Используя случайных чисел и их генерирование иным образом, мы можем создавать захватывающий игровой процесс, создающий «идеальный» уровень сложности, не выбешивая при этом игроков. Но прежде чем мы перейдём к этому, давайте рассмотрим основы генераторов случайных чисел (или RNG).
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии22

О бизнес-процессах по-человечески

Время на прочтение15 мин
Количество просмотров51K
Что только не писали на Хабре про бизнес-процессы: про общую философию, про программирование процессов, про многочисленные BPM-системы, про нотации и т.д. В принципе, вендору всё понятно: взял процесс, очистил его от очисток, смоделировал, автоматизировал и запускай экземпляры, когда нужно. Дел-то. Между тем, бизнес, которому статьи адресованы, зачастую не понимает главного — зачем ему эти бизнес-процессы? Он ведь не Газпром какой и не концерн Калашников. Тут бы главные дела решить: чтобы сроки не срывались, сотрудники бы не теряли документы и не валили бы вину друг на друга, а то среди этого бардака уже и прибыли не видно…

Мы решили исправить ситуацию и рассказать о бизнес-процессах максимально просто — так, чтобы каждый смог понять, во благо они бизнесу или ну их, и так нормально сидели. Поэтому сегодня без нотаций, сложных схем и рекламных обзоров. Итак, вводные: «Всё есть процесс», «Процессы есть у всех», «Если вы не любите бизнес-процессы, вы просто не умеете их готовить». Поехали.  


Pikabu.ru. Типичная организация процесса в компаниях любого уровня: «Лебедь рвется в облака, Рак пятится назад, а Щука тянет в воду. Кто виноват из них, кто прав, — судить не нам; Да только воз и ныне там».
Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии27

Blockchain на Go. Часть 1: Прототип

Время на прочтение4 мин
Количество просмотров37K

Содержание


  1. Blockchain на Go. Часть 1: Прототип
  2. Blockchain на Go. Часть 2: Proof-of-Work
  3. Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки
  4. Blockchain на Go. Часть 4: Транзакции, часть 1
  5. Blockchain на Go. Часть 5: Адреса
  6. Blockchain на Go. Часть 6: Транзакции, часть 2
  7. Blockchain на Go. Часть 7: Сеть

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


В этой серии уроков мы создадим, основанную на блокчейне, упрощенную криптовалюту. В качестве языка используем Go.

Читать дальше →
Всего голосов 35: ↑24 и ↓11+13
Комментарии5

Операционные системы с нуля; Уровень 0

Время на прочтение11 мин
Количество просмотров134K

Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


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

Читать дальше →
Всего голосов 80: ↑78 и ↓2+76
Комментарии55

Квантовые цепи и вентили — вводный курс

Время на прочтение6 мин
Количество просмотров32K
Мы продолжаем цикл квантовых статей. Сегодня углубимся в формулы и поймем, как можно манипулировать кубитами — элементарными вычислительными единицами. Кроме того, рассмотрим принципы цепей и алгоритмов. Подробнее под катом!

Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии40

Информация

В рейтинге
Не участвует
Откуда
Кстово, Нижегородская обл., Россия
Зарегистрирован
Активность