Pull to refresh
18
-3.5
Максим @GenkaOk

Разработчик

Send message

Введение в Си. Послание из прошлого столетия

Reading time 15 min
Views 204K

Предисловие


Я несколько раз в своих комментариях ссылался на книгу Эндрю Таненбаума «Operating Systems Design and Implementation» на ее первое издание и на то, как в ней представлен язык Си. И эти комментарии всегда вызывали интерес. Я решил, что пришло время опубликовать перевод этого введения в язык Си. Оно по-прежнему актуально. Хотя наверняка найдутся и те, кто не слышал о языке программировании PL/1, а может даже и об операционной системе Minix.

Это описание интересно также и с исторической точки зрения и для понимания того, как далеко ушел язык Си с момента своего рождения и IT-отрасль в целом.
Читать дальше →
Total votes 64: ↑52 and ↓12 +40
Comments 104

Ультрабюджетный домашний сервер и что он может

Level of difficulty Easy
Reading time 14 min
Views 80K


Давеча мне попалась интересная материнская плата на процессоре Celeron J1800 за цену аж в 850 рублей! В повседневном использовании этот процессор, мягко говоря, не очень хорош, а в роли домашнего сервера у него могут быть все шансы, особенно при такой цене. В статье проведём тесты и изучим его реальные возможности и потребление в паре с бюджетным SSD.
Читать дальше →
Total votes 109: ↑106 and ↓3 +103
Comments 231

Как выбрать оптимальный способ соединения деталей в пластиковых корпусах

Reading time 5 min
Views 15K

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

Читать и смотреть картинки
Total votes 64: ↑64 and ↓0 +64
Comments 30

Электронный конструктор, не бьющий током

Reading time 13 min
Views 36K

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

Современные программные средства иллюстрируют процессы, происходящие в электрических цепях, с недосягаемыми для радиолюбителей недавнего прошлого наглядностью и интерактивностью. Они визуализируют протекающие по схеме токи и показывают напряжения в её различных частях. Это снижает порог понимания для людей, которым сложно даются абстрактные знания и язык формул.
Читать и смотреть картинки
Total votes 163: ↑163 and ↓0 +163
Comments 153

Ручная установка Windows 7/8/8.1/10 в систему с загрузчиком GRUB2

Reading time 9 min
Views 123K
Наверняка почти у каждого пользователя ОС Linux и ОС Windows, а я имею в виду именно тех, у кого, в силу ряда причин, установлены обе системы, время от времени возникал вопрос: «А нельзя ли, черт возьми, придумать способ, с помощью которого можно было бы устанавливать эти системы в произвольном порядке? Без порчи настроек загрузчика?» Ведь если ставим сначала Windows а потом Linux всё хорошо — линуксовый загрузчик (например GRUB) обычно подхватывает bootmgr. Если ставить в обратном порядке то увы. Даже с использованием GPT + EFI. В случае с EFI нет опасности перезаписи MBR, зато таки есть один нюанс, который лично мне не нравится — установщик Windows в режиме EFI хоть и не перезаписывает сектора диска своим кодом, но зато переопределяет NVRAM, подсовывая туда путь к своему загрузчику. Так что функционал GBUB всё равно приходится восстанавливать. В настройках штатного установщика нет опций для кастомизации процесса установки загрузчика. А что если… не использовать стандартный установщик?! Ну, или почти не использовать…



И такой способ есть. И основан он на технологии установки Windows, которую мы имеем в её дистрибутивах начиная с «семерки». Способ работает для случая Windows версий 7/8/8.1/10, как в случае с MBR + BIOS системы, так в случае с EFI + GPT. Установить систему можно как в раздел HDD, так и на VHD. При этом функционал установщика нужен нам в общем-то для запуска программы настройки BCD-хранилища конфигурации загрузчика. Вместо установочного диска можно использовать загрузочный носитель на основе WinPE. Если бы утилитам bcdedit.exe и BootICE была *nix альтернатива, весь процесс развертывания системы можно было бы вообще выполнить в среде Linux.

Читать дальше →
Total votes 31: ↑29 and ↓2 +27
Comments 45

58 байтов CSS, которые выглядят красиво почти где угодно

Reading time 2 min
Views 31K

При создании своего веб-сайта я хотел найти простой и разумный способ сделать его красивым на большинстве дисплеев. Для моих задач подошли следующие 58 байтов:

main {
  max-width: 38rem;
  padding: 2rem;
  margin: auto;
}

Давайте их разберём.
Читать дальше →
Total votes 55: ↑46 and ↓9 +37
Comments 11

Есть ещё выдающиеся программисты, кроме Торвальдса, Беллара и Дина? Знакомьтесь — Джастин Танни

Level of difficulty Easy
Reading time 6 min
Views 43K
Программистам не дают Нобелевские премии. Хотя некоторые заслуживают. В нашей отрасли есть настоящие герои с выдающимися достижениями. Эти люди не строят карьеру, перепрыгивая с одной должности на другую, прокачивая зарплату. Создаётся впечатление, что им карьера вообще не важна. В силу высокого интеллекта, врождённой любознательности и особого характера эти люди не способны выполнять скучные, рядовые задания. Только интересные или важные. И только по своей воле, не по указанию сверху.

На Хабре рассказывали про «чак норрисов» от программирования, таких как Линус Торвальдс, Фабрис Беллар и Джефф Дин. Конечно, есть и другие феноменальные таланты, их много. Зачастую эти люди далеки от публичности, никогда не давали интервью и известны только по никам. Но их объединяет одно — выдающиеся индивидуальные разработки, которые разрывают шаблон и выделяются из общей массы.

Мы собирали этот список несколько лет. Начнём с последних строчек своебразного хит-парада… Знакомьтесь — Джастин Танни (Justine Tunney), хакерша и гений системного программирования.
Читать дальше →
Total votes 146: ↑132 and ↓14 +118
Comments 88

Kincony KC868-A32: авианосец на DIN-рейку

Reading time 6 min
Views 10K


Сколько реле можно установить на плату контроллера? Четыре? Восемь? Компания Kincony решила не ограничивать себя и оснастила свою модель KC868-A32 аж 32-мя реле. В результате получился уникальный контроллер, аналогов которому я и не припомню — на фоне обычных девайсов подобного типа KC868-A32 смотрится как флагманский авианесущий крейсер.

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

Экстремальные размеры и невероятное количество реле на борту — это далеко не все достоинства Kincony KC868-A32, далее мы подробно разберём устройство, схемотехнику и области применения этого контролера.
Читать дальше →
Total votes 42: ↑42 and ↓0 +42
Comments 49

Экстремальная настройка производительности HTTP: 1,2M API RPS на инстансе EC2 с 4 виртуальными процессорами (vCPU)

Reading time 54 min
Views 18K

Прим. перев.: автор данного исследования — Marc Richards, Solutions Architect и DevOps-инженер — продемонстрировал потрясающую настойчивость и тщательность в тотальной оптимизации производительности веб-приложения. Получившийся материал — кладезь полезных знаний для расширения своего кругозора в области оптимизации, особенностей сетевого стека в Linux и не только, даже вне зависимости от практической заинтересованности в конечном результате автора. Приготовьтесь к по-настоящему длинному техническому путешествию с обилием терминологии, увлекательных графиков и полезных ссылок.

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

35 инструментов для веб-разработчика на каждый день

Reading time 4 min
Views 41K

Кроме редактора кода, терминала, браузера и гита веб-разработчики пользуются вагоном и маленькой тележкой маленьких инструментов, которые выполняют какую-то одну задачу, но могут пригодиться в ежедневной работе. Предлагаем вам нашу подборку — надеемся, что что-то пригодится, а по поводу чего-то вы и вовсе скажете «А что, так можно было?».

Краткое содержание: проверка кода по стандартам, проверка вёрстки и стилей, работа с кодом, работа с графикой (SVG, фавиконки, конвертеры и сжималки), работа с текстом (типографы и конвертеры всего во всё).

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

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

PHP Дайджест № 210 (16 – 30 августа 2021)

Reading time 5 min
Views 10K

Фото: Peter Kokot.

Подборка свежих новостей и материалов из мира PHP. Вышла третья бета PHP 8.1, Swiftmailer больше не будет поддерживаться, PHP-FIG обсуждает обновляемые стандарты PER. Для PHP 8.2 предложены два новых RFC: про удаление динамических свойств и перегрузку операторов. Также в выпуске порция полезных инструментов, статьи и видео.


Приятного чтения!


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

10 топовых плагинов для IntelliJ IDEA, которые ты не должен пропустить

Reading time 4 min
Views 25K

Хотя IntelliJ IDEA является полноценной IDE (Интегрированная среда разработки), вы наверняка захотите ее персонализировать. В JetBrains Marketplace есть множество плагинов с полезными функциями, которые могут удовлетворить ваши личные или деловые потребности.

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

Напоминаем, что все плагины можно установить через Настройки/Параметры | Плагины или на вкладке Плагины на экране приветствия.

Погнали!
Total votes 23: ↑18 and ↓5 +13
Comments 5

Bug Bounty для начинающих: краткий обзор популярных маркетплейсов и программ

Reading time 10 min
Views 19K

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

Конечно, внутри компаний есть (или должны быть) специально обученные люди, занимающиеся поиском уязвимостей. Но объем таких работ огромен, и увеличивается он ежедневно. Что можно предпринять? Найти нужные «рабочие руки» — всех желающих, кто хочет и может этим заняться, причем за вознаграждение. Так возникла идея Bug Bounty — открытой краудсорсинговой альтернативы внутренней ИБ-службе, реализованной как своего рода мегаконкурс по поиску уязвимостей в программах компаний (разумеется, все это не за бесплатно, хотя есть исключения).

Увы, джентльменам не верят на слово в современном мире, а потому, если вы решили попробовать заработать на bug hunting, придется соблюдать правила игры. В статье я попытаюсь очертить круг возможностей «охотников за ошибками» и расскажу о вариантах участия в программах вознаграждения за найденные ошибки: сторонних платформах Bug Bounty (marketplaces) и программах, спонсируемых компаниями.

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

Технология Serverless: снова привет, 1970-е

Reading time 7 min
Views 12K


Я проработал с «Облаком» уже достаточно долго для того, чтобы убедиться, что ему предстоит пройти ещё долгий путь, прежде чем оно станет лучше старой доброй аренды пары серверов и запуска своего ПО на них. Сейчас в моде Serverless-решения, из-за которых у меня ощущение, что мы снова вернулись в 1970 год.

Когда-то давным-давно я притворялся, что учусь менеджменту, а на самом деле изучал кодинг на C. Наш университет находился в двух мирах: в нём существовала лаборатория с «персональными компьютерами», но в то же время имелись терминалы мини-компьютера, и в зависимости от предпочтений профессоров задания нужно было выполнять в одном из этих миров. Но обе эти системы были, по крайней мере, интерактивными и обеспечивали мгновенную обратную связь. Моему другу повезло не так сильно: на одном из курсов по технологии строительства ему дали задание, которое нужно было выполнить на Pascal и сдать в виде распечатки с университетского мейнфрейма.
Читать дальше →
Total votes 60: ↑58 and ↓2 +56
Comments 57

Мониторинг сервера — бесплатно или за деньги? Утилиты Linux и специализированные сервисы

Reading time 10 min
Views 33K


Есть много полезных инструментов, которые помогают отслеживать нагрузку на сервер, начиная с утилит Linux и заканчивая специализированными службами.

Простые утилиты Linux показывают текущее потребление памяти для каждого процесса, нагрузку на CPU, свободное место на диске и статистику по трафику.

Кроме того, есть платные и бесплатные сервисы, которые круглосуточно отслеживают состояние вашего сервера, регистрируют сбои в его работе или в сетевой доступности, а также проверяют производительность приложений.
Читать дальше →
Total votes 40: ↑39 and ↓1 +38
Comments 38

Модернизация старого PHP-приложения

Reading time 6 min
Views 8.8K

Недавно мне выдалась случайная возможность поработать с несколькими старыми PHP-приложениями. Я заметил несколько распространённых антипаттернов, которые пришлось исправлять. Эта статья не о том, как переписывать старое PHP-приложение на <вставьте сюда название чудесного фреймворка>, а о том, как сделать его более удобным в сопровождении и менее хлопотным в работе.
Читать дальше →
Total votes 37: ↑35 and ↓2 +33
Comments 17

JG Maker — достойная альтернатива недорогим 3D-принтерам для начинающих

Reading time 6 min
Views 14K


Выбирая себе первый 3D-принтер, обычно в первую очередь смотрят на цену. Каждый определяет для себя свой бюджет, а потом начинаются поиски в эту стоимость принтера, читаются отзывы, рассматриваются сообщества… Самыми распространенными в итоге становятся самые недорогие, так как порог входа в 3D-печать снижается от года к году. И если на заре 3D-принтеров их собирали энтузиасты из подручных запчастей, затем появились конструкторы из акрила, а после массово стали появляться наборы с использованием экструдированных алюминиевых профилей. То сейчас уже есть доступные решения с заводскими металлическими деталями и минимумом пластиковых решений, что поднимает качество таких наборов на новый уровень.

Одним из таких принтеров является JG-maker от достаточно известной фирмы, которая одна из первых наладила производство и продажу наборов для сборки 3D-принтеров.
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 68

Инструменты гигантов: software development edition

Reading time 16 min
Views 8.5K
В тот самый день, когда начинается процесс разработки продукта, вы уже отстаете от графика и не укладываетесь в бюджет.
Дон Норман

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


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

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

Лучшие GitHub-репозитории для веб-разработчиков

Reading time 5 min
Views 28K
Программист тратит многие часы на разработку некоего функционала и на то, чтобы код соответствовал передовым практическим приёмам, принятым в той или иной среде. В эти часы не должно входить регулярное написание шаблонных конструкций. Программист может сильно помочь себе в деле правильной организации работы, избавив себя от ненужных дел и вложив время в изучение правильных инструментов. Хорошим подспорьем может оказаться и знание о ценных ресурсах, список которых всегда полезно держать под рукой.



Автор материала, перевод которого мы публикуем сегодня, предлагает рассмотреть несколько GitHub-репозиториев, которые, если иногда в них заглядывать, позволят веб-разработчикам улучшить свои знания и навыки, окажут содействие в написании более качественного кода, помогут работать быстрее.
Читать дальше →
Total votes 51: ↑46 and ↓5 +41
Comments 5

Как работать из дома. Чек-лист удаленщика

Reading time 10 min
Views 16K
В интернете огромное количество заметок на тему удаленной работы, с лаконичным обзором минусов, плюсов и известными советами, как вытащить себя из рутины, начиная с «Первым делом снимите пижаму». В блоге Surf мы уже затрагивали эту тему в статье моей коллеги, которая поделилась своим опытом, но с ростом количества удаленных сотрудников (и моим переходом на «удаленку» после 20-летнего опыта работы в офисе), я решила изучить вопрос глубже: читала зарубежные блоги про удаленную работу и пробовала разные идеи. Здесь поделюсь своим опытом, методами сохранения и повышения мотивации. А в конце статьи я приготовила небольшую памятку сотруднику home office.

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


Читать дальше →
Total votes 21: ↑12 and ↓9 +3
Comments 8

Information

Rating
Does not participate
Location
Йошкар-Ола, Марий Эл, Россия
Date of birth
Registered
Activity