Search
Write a publication
Pull to refresh
2
0
Send message

Правила Трех, Пяти и Ноля

Reading time7 min
Views32K

Цель этого поста — познакомить вас с Правилами Трех, Пяти и Ноля и объяснить, какое из них и когда вам следует использовать. В следующем посте мы углубимся в применение Правила Пяти в различных сценариях.

Читать далее

Персональный план профессионального развития: как построить его без мук и понять, нужен ли он вообще

Reading time5 min
Views28K

В большинстве IT-компаний сейчас сезон ревью и профессиональной рефлексии: что я сделал за год и вырос ли профессионально? Ответить на эти экзистенциальные вопросы проще, если у вас есть PDP, или персональный план развития. Это инструмент, который помогает системно и экологично по отношению к себе двигаться к цели.

Я — Лена Насыбуллина, методист продуктовых образовательных программ в Selectel. В этом тексте расскажу, чем полезен PDP и как его составить.
Читать дальше →

«Хакер»: Учимся анализировать программы для x86 с нуля

Reading time15 min
Views31K

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

Читать далее

Использование final для повышения производительности в C++

Reading time7 min
Views18K

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

Читать далее

Домашняя вентиляция для гиков: что нужно знать про воздуховоды

Reading time4 min
Views42K
О том, каким воздухом мы дышим дома задумывались многие читатели Хабра. Работая часть или всё время дома и проживая в крупных городах, нельзя время от времени не задумываться о качестве воздуха, которым мы дышим, и как он влияет на нашу продуктивность и вообще качество жизни.

Проблема №1. Уровень углекислого газа CO2 напрямую влияет на продуктивность.

Проблема №2. В Москве, как и других мегаполисах, грязный воздух: это негативно влияет на здоровье. Достаточно один раз попробовать помыть городские окна в квартире с внешней стороны, чтобы задуматься о том, сколько же грязи оседает не только на наших домах, но и в наших лёгких. Поэтому воздух в квартире нужно очищать.

При этом каждому, кто живёт в квартирах с пластиковыми окнами знакома дилемма пластиковых окон: при закрытых окнах душно — уровень CO2 повышается до непродуктивного за два часа; при открытых — шумно, холодно, сквозняк (а иногда и насекомые). Эта статья будет полезна тем, кто планирует купить очиститель воздуха, бризер или приточку.
Читать дальше →

Как тестировать методы REST API

Reading time27 min
Views138K

Когда ручного тестировщика впервые просишь проверить метод REST API, того охватывает паника: «Как это делать? Я вообще почти ничего не знаю про API. Что делать? Как это тестировать?»

Спокойно. Без паники =) Я уже рассказывала на простом языке, что такое API. А сегодня я расскажу о том, как его тестировать. На самом деле почти также, как GUI: в первую очередь это тест-дизайн и придумывание проверок, а потом уже всякие API-штучки. Но и про них не стоит забывать.

Я дам вам чек-лист, к которому вы сможете обращаться потом — «так, это проверил, и это, и это. А вот это забыл, пойду посмотрю!». А потом мы обсудим каждый пункт — зачем это проверять и как.

После теории будет практика! Для неё возьмем метод doRegister системы Users — он находится в открытом доступе, можете дергать по ходу чтения и проверять =) 

Читать далее

Вся боль undefined

Reading time4 min
Views11K

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

Читать далее

Добавим динамическую среду в C: мой проект компоновщика

Reading time8 min
Views2.2K

Я пишу компоновщик (linker). Не совсем обычный. Он ориентирован не на создание исполняемых файлов, а на облегчение быстрой итерации программы без необходимости в перекомпоновке (re-link) и повторном открытии после внесения изменений. Это «горячая загрузка» кода с детализацией. Подробности — к старту курса по разработке на С++.

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

Существует ли абсолютная защита баз данных?

Reading time4 min
Views2.2K

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

Читать далее

Адреса в Интернете: что такое IP-адрес

Reading time5 min
Views19K

Строго говоря, я более чем уверен, что большинству пользователей Хабра не нужно объяснять, что такое IP-адрес. Тем не менее, мы, "Лаборатория свободного интернета", начали серию материалов, где буквально на пальцах и на примерах их жизни объясняем разные аспекты существования сети Интернет и разных часто вслепую используемых технологий.

Если есть идеи - про что еще мы можем рассказать - пишите в комментариях.

Важное уточнение: мы рассматриваем в статье только классический протокол IPv4. Внедрение протокола IPv6 хоть медленно, но идёт: по разным оценкам на 2022 год трафика по IPv6 передано от 20% до 40%. Чтобы не перегружать статью, про IPv6 мы напишем отдельно.

«IP-адрес (от англ. Internet Protocol) — уникальный числовой идентификатор устройства в компьютерной сети, работающей по протоколу TCP/IP­»­ , –  это снова определение по версии Википедии.

Ещё один уникальный числовой идентификатор, который вполне может оказаться неуникальным.

TCP/IP – это набор Интернет-протоколов, которому уже несколько десятков лет и который и обеспечивает нас всех связью.

Итак, IP-адрес. Он уже гораздо более известен широкой публике, даже участвует в широко распространённых мемах типа «Я вычислю тебя по IP». Кроме того, многие дети начинают знакомиться с этим понятием, когда возникает потребность поиграть с другом по сети.

Выглядит он вот так: 192.168.26.85

IP-адрес используется в Интернете непосредственно для связи между различными устройствами. Например, между сайтом Яндекса и вашим компьютером. Или между вами и другим игроком в Minecraft.

Читать далее

Самая маленькая система управления перезагрузкой для Linux

Reading time3 min
Views5.3K

Введение

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

Защитное слово автора

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

История вопроса

После установки системы Gentoo Linux на свой неутбук я неожиданно обнаружил, что в системе нет штатного средства выключения и перезагрузки от обычного пользователя без использования дополнительных средств вроде программы sudo, а исследование файла /etc/group показало, что в нём нет группы operator. Любые попытки добавить эту группу и пользователя в неё не принесли желаемого результата - компьютер не перезагружался от простого пользователя.

Несколько поразмыслив, я пришёл к идеи (вероятно, я не был первым) научить планировщик cron перезагружать и выключать компьютер . Для этого мной наскоро был написан скрипт на bash и добавлено задание в cron для суперпользователя.

Скрипт запускался раз в минуту от root, проверял файл в директории пользователя на наличие в нём управляющего символа и осуществлял перезагрузку или выключение, записывал в этот файл код 0 для бездействия, чтобы компьютер не начал перезагружаться бесконечно. Я и сам не заметил, что своими руками создал уязвимость в системе (хотя подозрения были). Спасибо участникам форума Linux.org.ru, которые вовремя указали мне на ошибки и дали ряд дельных советов по улучшению моей скромной системы.

Читать далее

Брендан Эйх о создании JavaScript за 10 дней и о том, что сегодня он сделал бы по-другому

Reading time6 min
Views14K

Миллионы современных разработчиков активно используют язык программирования, который родился буквально за 10 дней в период экспоненциального развития интернета. Создатель JavaScript Брендан Эйх не так давно заново обратился к истокам созданного им языка и рассказал о том, как семена, посеянные им в 1995 году, теперь наконец-то взошли.

Читать далее

Поиск бага регистра, приводящего к вылету Chrome

Reading time7 min
Views6.4K

«Эй ты, функция. Да, я к тебе обращаюсь. При очистке не забудь, пожалуйста, восстановить все мои регистры. Да, и этот тоже, ты что, думаешь, в Linux попала?»

Вот краткое описание проблемы, с которой я столкнулся. ABI (Application Binary Interface) платформы требует от функций, чтобы они сохраняли значения определённых регистров и восстанавливали их в случае использования, однако набор восстанавливаемых регистров зависит от платформы, и правила в Linux отличаются от правил в Windows. Возможно, поэтому я столкнулся с повреждением регистров Chrome в Windows. Но давайте начнём с самого начала.
Читать дальше →

6 мягких навыков, чтобы не разрушаться в кризис

Reading time15 min
Views8.9K

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

Меня зовут Юлия Аравина и я расскажу про шесть мягких навыков, которые необходимы нам, чтобы не разрушаться в кризис. Я работаю в IT семь лет, по образованию психолог, руководила отделами обучения и развития сотрудников в крупных it-компаниях, занималась коучингом руководителей и команд. Последние два года — продолжаю делать это уже как независимый консультант. Также помогаю компаниям работать с ментальным здоровьем сотрудников. Поделюсь информацией о том, как преодолеть сложности, связанные с кризисом, пандемией, февралем/сентябрем 2022 и их последствиями.

Читать далее

Как самому за один вечер собрать минимальную ОС Linux из исходного кода

Level of difficultyMedium
Reading time11 min
Views107K
image

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

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

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

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

Датировка звукозаписи по гулу в энергосети

Reading time4 min
Views14K

Сравнение колебания частоты тока в целевом сигнале (target) и референсной базе данных (ref) относительно несущей частоты 50 Гц с помощью программы enf-matching, источник

В современную эпоху очень важно иметь инструменты, которые позволяют точно верифицировать аудио/видеозапись, выявить следы монтажа и поставить точную метку времени.

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

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

Современная вариация крестиков-ноликов в реальном времени

Reading time2 min
Views6.3K

Мы привыкли, что в крестиках-ноликах вначале один рисует крестик, затем второй рисует нолик. И так пока не соберётся линия из трёх подряд.

Всё логично, ведь на бумаге рисовать одновременно на одном поле затруднительно.

Когда же элементы рисуются на виртуальной бумаге, то рисовать одновременно не проблема. И именно в этом и отличие новой вариации игры.

Читать далее

Полиморфные структуры данных и производительность

Reading time5 min
Views7K

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

Читать далее

Делаем плавный скролл в нагруженных таблицах

Reading time11 min
Views4.8K

Как часто вы обращали внимание на плавный скролл в мобильных приложениях?

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

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

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

Читать далее

Information

Rating
6,793-rd
Registered
Activity