Pull to refresh
0
0

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

Send message

Программирование на C в Linux на примере создания своей командной оболочки

Level of difficultyMedium
Reading time27 min
Views18K

Привет, хабр! Язык программирования C — основополагающий, как я считаю. И его знать, нет, не обходимо, но довольно желательно. Большинство языков отсылают к C, и зная C (или C++) другой язык будет даваться намного легче.

Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

В этом туториале я буду использовать компилятор CLANG, а не GCC, и расскажу его преимущества

Итак, для создания своего шелла на C для Linux вам понадобится простой советский копеечный...

Узнать
Total votes 28: ↑25 and ↓3+36
Comments42

Как Linux создаёт и подсчитывает сокеты

Level of difficultyHard
Reading time12 min
Views14K

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

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

Буфер обмена веб-приложений и как он хранит различные данные

Level of difficultyEasy
Reading time17 min
Views3.6K

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

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

Давайте начнем с исследования различных API и их истории. Эти API имеют весьма интересные ограничения по типам данных, и мы увидим, как некоторые компании обошли эти ограничения. Мы также рассмотрим некоторые предложения, которые направлены на устранение этих ограничений (наиболее примечательное из них — Web Custom Formats).

Если вам хотя бы раз было интересно, как работает веб-буфер обмена, то эта статья для вас.

Читать далее
Total votes 18: ↑17 and ↓1+17
Comments5

Зачем в iPhone чип, который убивает FaceID

Level of difficultyMedium
Reading time9 min
Views55K

Разбирался я в низкоуровневой работе камер iPhone, и дошёл до FaceID — системы распознавания лиц, используемой Apple для разблокировки смартфона. И наткнулся внутри на интересную вещь: чип, единственное предназначение которого в том, чтобы вывести из строя FaceID. Навсегда.

О том, как в iPhone вообще работает FaceID, где там этот чип стоит, что именно он делает, зачем его сделали таким злым, и как в ремонте справляются с этой напастью — под катом!

Читать далее
Total votes 641: ↑640 and ↓1+758
Comments178

Как работает интернет

Level of difficultyEasy
Reading time30 min
Views96K

Если вы полный ноль в интернет-технологиях, и хотите получить общее понимание Интернета, прочитав всего одну статью, то эта статья - для вас.

Здесь вы узнаете о 4 уровнях модели TCP/IP. О том, что такое MAC-адрес и IP-адрес, и зачем нам 2 типа цифровых адресов. Как работает DNS. Зачем нужны коммутаторы и роутеры. Как работает NAT. Как устанавливается защищённое соединение. Что такое инфраструктура открытых ключей, и зачем нужны TLS-сертификаты. Чем отличаются три версии протокола HTTP. Как происходит HTTP-аутентификация. И в конце будет несколько слов о VPN.

Читать далее
Total votes 106: ↑99 and ↓7+112
Comments61

Взламываем игры с помощью Python

Level of difficultyEasy
Reading time4 min
Views24K

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

А на днях мне вдруг захотелось вспомнить молодость и поиграть в бумерский диаблойд под названием Titan Quest, выпущенный аж в 2006 году. Да вот только времени на беготню, прокачку, и вот это вот всё, у меня нет. И ArtMoney нет. Зато есть определенные знания программирования. Вот я и решил совместить приятное с полезным, написав аналог ArtMoney на Python, а заодно стать супербогатым, хотя бы в Titan Quest.

Читать далее
Total votes 33: ↑30 and ↓3+30
Comments38

Шо там по MTProto в Telegram-то?

Reading time9 min
Views48K

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

Интересное заявление, не правда ли. Дак давайте посмотрим на протокол шифрования тележки MTProto с криптографической точки зрения.

Ну давайте взглянем
Total votes 65: ↑55 and ↓10+57
Comments42

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

Level of difficultyEasy
Reading time5 min
Views44K

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

На то есть причины.

Читать далее
Total votes 98: ↑87 and ↓11+92
Comments254

Тестовые серверы Telegram: инструкция по эксплуатации

Reading time11 min
Views21K

Про разработку ботов в Telegram написано много текстов, а про «тестовый дата-центр» практически ничего. Ранее Pavelgram освещал этот вопрос: он кратко рассказал, что такое тестовые серверы и как с ними работать. Я продолжу это начинание.

Эта статья — сборник разбросанной документации и результатов экспериментов. Под катом расскажу о технических особенностях тестового окружения для разработки, покажу примеры ботов и юзерботов. В качестве бонуса — история «о жизни в тестовом контуре».
Читать дальше →
Total votes 64: ↑64 and ↓0+64
Comments6

Self Hosted для домашнего сервера

Level of difficultyMedium
Reading time10 min
Views28K

Есть отличный термин self hosted, который очень популярен в англоязычном интернете.
Но он плохо переводится, почти как open source - хотя википедия и пытается дать ужасно звучащий термин "самохостинг"...

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

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

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

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

Читать далее
Total votes 64: ↑64 and ↓0+67
Comments124

Пишем универсальный прототип бэкенд-приложения: Litestar, FastStream, dishka

Level of difficultyEasy
Reading time16 min
Views11K

Привет, Хабр! Меня зовут Сергей, я техлид в команде PT BlackBox. Мы с коллегами разрабатываем продукт, который позволяет обнаруживать уязвимости в приложениях методом черного ящика. Фактически мы сами и пишем веб-приложения, и именно о них пойдет речь в статье.

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

Для написания прототипа я буду использовать LitestarFastStream и dishka. Эта статья будет особенно полезна тем, кто пишет на Tornado, Django, Flask или AIOHTTP и хочет перейти на более актуальные технологии для дальнейшего развития своих проектов на современных рельсах.

Ну что ж, приступим
Total votes 23: ↑22 and ↓1+24
Comments12

Дайте мне 15 минут, и я изменю ваш взгляд на GDB

Level of difficultyMedium
Reading time6 min
Views15K

Материал подготовлен на основе выступления с CppCon 2015 "Greg Law: Give me 15 minutes & I'll change your view of GDB" (доступно по ссылке ). Многие моменты я изменял и корректировал, поэтому учтите, что перевод достаточно вольный.

И да, вынесем за скобки вопрос о том, насколько GDB в целом удобная или неудобная программа, и что в принципе лучше использовать для дебаггинга: в данной статье будет рассматриваться именно работа с GDB.

В статье будет рассматриваться отладка кода на C в ОС Linux.

Читать далее
Total votes 47: ↑45 and ↓2+63
Comments16

Разбираем осьминога

Reading time17 min
Views67K
Осьминоги странные.

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

В общем, у вас 4 года. За это время можно с нуля развить разум — и как только вы что-то поймёте, уже пора будет размножаться.

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

Никакого наследия вы не оставите.



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

Сейчас объясню, почему осьминоги прекрасны.
Читать дальше →
Total votes 466: ↑461 and ↓5+540
Comments168

Как я компьютер в Minecraft построил

Reading time11 min
Views19K

Решил я, значит, изучить, как работают компьютеры на самом низком уровне. Это тот уровень, где работают всякие железяки, транзисторы, логические элементы и так далее. Чтобы полностью закрепить материал, я решил построить простенькую ЭВМ на редстоуне в Minecraft. Эта статья о том, как работают ЭВМ на уровне логических элементов и о том, как я построил прототип такой ЭВМ в Minecraft. В конце я оставил ссылку на GitHub-репозиторий с проектом.

Читать далее
Total votes 67: ↑66 and ↓1+75
Comments28

Протокол HTTP

Level of difficultyMedium
Reading time14 min
Views34K

Текстовая версия видео по протоколу HTTP из обновленного курса по компьютерным сетям для начинающих.

Рассматриваем основы работы HTTP, применяем HTTP на практике в терминале, используем Wireshark для анализа пакетов HTTP. 

Читать далее
Total votes 47: ↑44 and ↓3+57
Comments31

Чем различаются Kafka и RabbitMQ: простыми словами

Reading time8 min
Views95K

Программные брокеры сообщения уже стали стандартом при построении больших и сложных систем. Однако до сих пор не все ИТ-специалисты понимают, как работают эти инструменты. Главный системный аналитик «Иннотех» Павел Малыгин помогает разобраться в брокерах сообщениях и их работе.

Читать далее
Total votes 56: ↑53 and ↓3+55
Comments33

Бэкэнд для начинающих или типовые ошибки бэкэндера

Level of difficultyEasy
Reading time12 min
Views24K

Всем привет! Я Олег, fullstack‑разработчик в компании Тензор, тимлид небольшой команды.

Одна из моих обязанностей в роли тимлида это code review. За годы работы я видел многое и выделил для себя типовые ошибки, с которыми сталкиваются начинающие backend‑разработчики. Сегодня хочу рассказать о некоторых из них.

Читать далее
Total votes 53: ↑52 and ↓1+61
Comments11

Разбираемся с Redis

Reading time19 min
Views309K

Этот материал представляет собой глубокое исследование всего, что связано с Redis. В частности — речь пойдёт о различных способах организации хранилищ Redis, о постоянном хранении данных, о форках процессов.

Читать далее
Total votes 46: ↑45 and ↓1+62
Comments7

Полное руководство по Flexbox

Reading time11 min
Views625K
Полное руководство по CSS flexbox. Это полное руководство объясняет все о flexbox, сосредотачиваясь на всех возможных свойствах для родительского элемента (контейнер flex) и дочерних элементов (элементы flex). Оно также включает в себя историю, демонстрации, шаблоны и таблицу поддержки браузеров.
Читать дальше →
Total votes 23: ↑17 and ↓6+11
Comments5

Information

Rating
Does not participate
Date of birth
Registered
Activity