Pull to refresh
57
0

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

Send message

Программист никому не должен доверять, и даже самому себе

Level of difficultyMedium
Reading time7 min
Views2.3K

Программисты должны быть параноиками.

  • «Я дважды проверил код»
  • «Код проходит все тесты»
  • «Ревьюер одобрил мой код»

«Так ли корректен мой код?»

Писать код корректно трудно, а подтвердить корректность кода невозможно.
Вот некоторые из причин этого:

  • Всеобщность: даже если код правильно вёл себя один раз, будет ли он вести себя так во всех случаях на всех машинах и всегда?
  • Ложное прохождение теста: непрохождение тестов указывает на наличие багов, но прохождение текстов не гарантирует их отсутствия.
  • Отсутствие определённости: можно написать формальное доказательство корректности кода, но теперь нужно задаться вопросом, корректно ли доказательство. Потребуется доказать доказательство. Эта цепочка проверки проверок никогда не закончится.

Безумно было бы стремиться к определённости корректности кода. Баг может скрываться в зависимости, которую вы никогда не найдёте. Однако отчаиваться не стоит, всё равно можно снизить вероятность багов, расширяя своё понимание и внимательность.
Читать дальше →
Total votes 18: ↑18 and ↓0+26
Comments1

Управление сервером со смартфона

Level of difficultyMedium
Reading time6 min
Views9.7K


Из любого SSH-клиента можно установить канал с сервером и управлять им стандартными командами в консоли. Есть такие клиенты и для смартфона. Многие знают и используют консоль Termux под Android, которая запускает с телефона стандартный OpenSSH.

Но есть варианты ещё удобнее, даже с графическим интерфейсом.
Читать дальше →
Total votes 21: ↑21 and ↓0+31
Comments6

Дата-центр ЦЕРН на 1 эксабайт: как хранят данные

Level of difficultyEasy
Reading time6 min
Views7.3K


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

Например, в Европейском центре ядерных исследований (ЦЕРН) работает один из крупнейших дата-центров в мире. Без этого вычислительного кластера мы бы искали бозон Хиггса ещё очень долго, а Стандартная модель так бы и осталась незавершённой.
Читать дальше →
Total votes 33: ↑33 and ↓0+52
Comments6

Doom практически на всём

Level of difficultyEasy
Reading time21 min
Views12K

Многие годы на ресурсах около-компьютерной тематики регулярно всплывают сенсационные новости про «невозможные» порты легендарной игры Doom — как очередной энтузиаст и Кулибин запустил её и на этом, и на том, и каждый раз на всё более странных и неподходящих предметах. По разнообразию версий и безумию некоторых из них этот культурный феномен вполне может потягаться с Bad Apple.

Главное в этом, конечно, вау-фактор: «а что, так можно было?», подивиться и пойти дальше. Мало кто интересуется деталями, можно ли в это играть, действительно ли это Doom, действительно ли есть, чему удивляться, а если есть, то чему именно. И в целом — как и что именно на самом деле было сделано. Но мало кто — это не про нас. Мы — поинтересуемся!
Читать дальше →
Total votes 50: ↑49 and ↓1+64
Comments22

Тайны китайских светофоров

Level of difficultyMedium
Reading time8 min
Views14K


Привет, Хабр! Сегодня вашему вниманию предлагается очень интересный радиоконструктор на 12 логических микросхемах, реализующий функции контроллера светофора.
Читать дальше →
Total votes 29: ↑28 and ↓1+37
Comments15

Об управлении esp32-машинками (и не только) через wifi/websocket-ы с помощью пульта на базе смартфона

Level of difficultyMedium
Reading time10 min
Views9.1K
Картинка Freepik

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

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

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

Читать дальше →
Total votes 36: ↑35 and ↓1+46
Comments18

На все 100

Level of difficultyHard
Reading time1 min
Views6.7K

Привет, Хабр! Кажется, мы полюбили квизы — а всё потому, что видим ваш интерес к ним. У нас уже был космический квиз (завязанный на наши космические путешествия) и квиз «Пол-лимона», приуроченный к 500 000-му серверу.  А сегодня у нас квиз на ваши знания нашего… впрочем, вам всё ещё только предстоит узнать!

Посмотреть, что мы задумали
Total votes 52: ↑33 and ↓19+44
Comments10

Сбросить балласт. Аккуратное отключение лишних фич

Level of difficultyEasy
Reading time7 min
Views8K


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

Что тут говорить, если самая простая программа сегодня весит под 100 МБ, как целая операционная система со всем софтом несколько десятилетий назад. Кто-то говорит, что причиной этого является закон Мура и рост производительности процессоров в геометрической прогрессии. В связи с этим даже интересно, каким был бы софт при замедлении CPU в двадцать раз.

Но есть выход из сложившейся ситуации: аккуратное отключение лишних функций в раздувшемся софте.
Читать дальше →
Total votes 25: ↑25 and ↓0+36
Comments5

Сравнение алгоритмов ограничения частоты запросов

Level of difficultyMedium
Reading time7 min
Views6.2K

▍ Зачем ограничивать частоту?


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

Видео


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

Конечные точки API тоже часто ограничивают по частоте запросов, чтобы их ресурсы не монополизировал единственный пользователь. Представьте, что вам нужно, чтобы пользователи могли обращаться к затратной конечной точке не чаще ста раз в минуту. Это можно отслеживать при помощи счётчика, обнуляющегося каждую минуту. Все запросы после сотого в пределах этой минуты будут блокироваться. Это один из простейших алгоритмов ограничения частоты, называющийся fixed window limiter (ограничитель с фиксированным окном). Это распространённый способ управления трафиком к сервису.

Но не всегда всё так просто.

Когда начинается и заканчивается каждое одноминутное окно? Если я запущу поток запросов ближе к концу окна, смогу ли превысить лимит? Ёмкость окна восстанавливается по одному запросу за раз, или сразу на всё количество?

В этом посте мы рассмотрим три самых популярных алгоритма, чтобы ответить на каждый из этих вопросов.
Читать дальше →
Total votes 34: ↑34 and ↓0+53
Comments4

Почему я веду ИТ-бизнес в России

Reading time6 min
Views16K
image

Вы, возможно, знаете правила ведения ИТ-бизнеса в России. Особенно первое. Я тоже знаю, но веду дела именно в России и из России.

В последнюю пару лет меня почему-то начали чаще спрашивать о том, почему так. Отвечаю.

Во-первых, у нас низкие налоги.

Во-вторых, всё ещё открыто много возможностей, регуляторка не дошла до уровня hard/hardcore, как в Европе и США. Наверняка сейчас вы будете смеяться, но я знаю, о чём говорю: у нас нет такой бюрократии и такого ада проверок. У нас услуга юриста — это всё ещё уровень ChatGPT 3.5, а не коллектив специально обученных гиков в очках.

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

В-четвёртых, у нас крупная страна: минимум 150 миллионов только в России плюс ещё всё русскоговорящее пространство. Это очень большой и доступный рынок с на самом деле не очень высокой конкуренцией.

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

Так что знаю, сейчас в меня могут полететь помидоры, но именно в России я себя чувствую наиболее безопасно и спокойно. Несмотря на то, что главный минус нашей локали — отсутствие каких-либо стабильности и предсказуемости.
Читать дальше →
Total votes 191: ↑124 and ↓67+93
Comments330

Как сделать виртуальную АТС на базе VPS

Level of difficultyEasy
Reading time6 min
Views9.2K


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

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

Виртуальная или облачная АТС (hosted PBX) — это услуга для компаний, которая заменяет им обычную офисную АТС. Вместо того, чтобы покупать специализированное телекоммуникационное оборудование или выделять отдельный компьютер с Asterisk, они заказывают услугу на удалённом хостинге. И этот компьютер с Asterisk (IP-АТС) физически размещается у провайдера. Таким образом, виртуализация добралась и до АТС, всё в русле современных тенденций.
Читать дальше →
Total votes 23: ↑21 and ↓2+30
Comments45

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

Level of difficultyEasy
Reading time6 min
Views28K
Финансирование разработки Kubernetes крупнейшими спонсорами на GitHub за последние десять лет, источник

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

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

И весь этот террариум кормится опенсорсом.
Читать дальше →
Total votes 89: ↑74 and ↓15+85
Comments103

Как случайно баллотироваться на пост президента Исландии?

Reading time4 min
Views12K

Чтобы баллотироваться на должность президента Исландии, нужно быть гражданином этой страны в возрасте от 35 лет и собрать от 1 500 до 3 000 подписей избирателей.

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

Это изменение также впервые за всю историю страны позволило обеспечить полную прозрачность относительно того, кто конкретно баллотируется на пост президента. Получилось очень много желающих — на сегодня подписи собирают 82 кандидата, включая комика, модель, мою тётю Хельгу и первого в мире человека, пережившего пересадку двух рук.

Многие из этих людей действительно конкурируют за пост президента (да, среди них моя тётя Хельга), некоторые явно подали заявку в качестве шутки (нет, не упомянутый выше комик), и не менее 11 из них зарегистрировались случайно, понятия не имея о том, что начали сбор подписей в поддержку своего выдвижения.
Читать дальше →
Total votes 67: ↑64 and ↓3+82
Comments49

Если Вселенная расширяется, то во что именно?

Level of difficultyEasy
Reading time8 min
Views64K

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

Но если Вселенная расширяется всё это время, то во что? Или куда?

Простой ответ на этот вопрос столь же краток, сколь и неудовлетворителен: Вселенная расширяется сама в себя, а не в какую-либо «внешнюю» среду. Это ещё один пример того, как общая теория относительности противоречит нашему повседневному опыту и интуиции.
Читать дальше →
Total votes 62: ↑56 and ↓6+69
Comments176

Как пытались (пере)программировать мозги, и что из этого получилось? Часть 7: спецобъект во Фриско и шаманы Мексики

Level of difficultyEasy
Reading time13 min
Views9K

Итак, увлечённый экспериментами по контролю над разумом глава проекта ЦРУ MKUltra Сидни Готтлиб в своём стремлении максимально расширить опытную базу не придумал ничего лучше, чем сначала создать сеть тайных и довольно жестоких опытов над пациентами и заключёнными, а затем организовать систему легальных грантов на исследования влияния ЛСД на человеческую психику в университетах и клиниках США. Но совсем уж лютый угар у участников проекта начался тогда, когда новые площадки для секретных экспериментов были развёрнуты в Сан-Франциско, а специальные агенты ЦРУ отправились в Мексику в поисках индейских шаманов.

Все части цикла статей о Сидни Готтлибе и проекте MKUltra:
Читать дальше →
Total votes 45: ↑43 and ↓2+65
Comments8

50 лет первой операционной системе для персональных компьютеров

Level of difficultyEasy
Reading time9 min
Views14K

В 1974 году первопроходец ПО для PC Гэри Килдалл продемонстрировал в Пасифик-Гроув, Калифорния, первую коммерчески успешную операционную систему для персонального компьютера — CP/M. В этой статье мы расскажем историю о том, как его компания Digital Research Inc. превратила CP/M в отраслевой стандарт, а позже проиграла версии ОС от Microsoft, скопировавшей внешний вид и стиль ПО DRI.
Читать дальше →
Total votes 68: ↑68 and ↓0+79
Comments30

Питер Норвиг: автор лучшего в мире учебника по ИИ

Level of difficultyEasy
Reading time5 min
Views18K


Питер Норвиг (Peter Norvig) — выдающийся учёный, один из отцов современной ИИ-разработки. После сингулярности ИИ точно оставит его в живых в знак благодарности.

Норвиг не только хороший программист, но и теоретик программирования, учёный и преподаватель, в длинном резюме перечислено 58 статей, а количество цитирований на сегодняшний день составляет 78 830.

Основное признание Норвиг получил как автор учебника «Искусственный интеллект: современный подход», который в наше время считается самым популярным учебником по ИИ в вузах. Эта фундаментальная работа претерпела уже четыре переиздания.
Читать дальше →
Total votes 46: ↑42 and ↓4+57
Comments7

Насколько быстрее стали терминалы в GNOME 46?

Level of difficultyMedium
Reading time9 min
Views8K

VTE (Virtual TErminal library) — это библиотека, лежащая в основе различных эмуляторов терминала GNOME. Она предоставляет GTK-виджет, отображающий элемент терминала, используемый в приложениях наподобие GNOME Terminal, Console, Black Box, Tilix, Terminator, Ptyxis и других. Также она используется во встроенных терминалах Builder и Workbench.

На протяжении цикла GNOME 46 в VTE было внесено множество улучшений производительности. Кристиан Хергерт говорил о некоторых из них в своих постах о VTE и о своей работе в GNOME 46. Но насколько же улучшилась производительность? Чего стоит ожидать вам, пользователю, от установки свежего обновления Fedora 40 и запуска любимого терминала?

Давайте измерим и разберёмся!
Читать дальше →
Total votes 45: ↑45 and ↓0+56
Comments21

Плэнер — язык логического программирования для ИИ: что из него получилось

Level of difficultyMedium
Reading time6 min
Views6.9K
Боты под управлением системы GOAP (Goal Oriented Action Planning), источник

Плэнер (Planner) — функционально-логический язык программирования, схожий по своему синтаксису с Лиспом. Функциональная часть языка содержит фактически целиком Лисп в качестве подмножества. При этом его встроенные возможности по символьной обработке значительно шире. А введение в запись нескольких типов скобок (в Лиспе допускаются только круглые скобки) сделало программы гораздо понятнее для чтения.

В свою очередь, логическое программирование — это парадигма программирования, основанная на математической логике, в которой код состоит из логических утверждений и правил вывода.
Читать дальше →
Total votes 43: ↑43 and ↓0+56
Comments5

Найти работу в IT: миссия 2024

Level of difficultyEasy
Reading time7 min
Views19K
Привет! Меня зовут Полина, и я уже десять лет работаю дизайнером в айти. В основном продуктовый UX/UI, но были и отдельные проекты разного характера. 


Расскажу про свой (и друзей) опыт поиска работы два года назад и сейчас, на русскоязычном рынке. 
Читать дальше →
Total votes 46: ↑39 and ↓7+51
Comments49
1
23 ...

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity