Ката программиста — путь к недостижимому идеалу. Или как я упал с велосипеда этим летом
Эту статью я пишу одной рукой. В начале августа я очень неудачно упал с велосипеда. Одну из причин моего падения можно сформулировать примерно так: «Неправильно сработала память тела». Дело в том, что с самого детства я всегда катался на велосипедах с ножным тормозом. Иногда пользовался и ручными тормозами на некоторых велосипедах, но только как дополнительными, чтобы слегка притормаживать. А совсем недавно я пересел на велосипед, оборудованный только ручными тормозами. Ножной тормоз на нём отсутствовал.
Мне удалось довольно быстро приучиться «тормозить руками», но перезаписать память тела оказалось не так-то просто. Насколько я помню, в сознательном возрасте я никогда не падал с велосипеда. Но в критической ситуации тем ранним субботним утром мой мозг не успел применить новые знания, зато тело по сорокалетней привычке попыталось затормозить ногами (на большой скорости). А дальше всё произошло почти по классике: упал, потерял сознание, открытый перелом, очнулся — гипс.
К счастью, в том происшествии больше никто не пострадал. Я в итоге получил серьёзные травмы, экстренную операцию с установкой металлоконструкций и перспективу многомесячной реабилитации, отмену важных дел, мероприятий и планов. А велосипедный сезон для меня, к сожалению, закрылся раньше времени.
https://habr.com/ru/articles/761396/
👉@Bookflow
Эту статью я пишу одной рукой. В начале августа я очень неудачно упал с велосипеда. Одну из причин моего падения можно сформулировать примерно так: «Неправильно сработала память тела». Дело в том, что с самого детства я всегда катался на велосипедах с ножным тормозом. Иногда пользовался и ручными тормозами на некоторых велосипедах, но только как дополнительными, чтобы слегка притормаживать. А совсем недавно я пересел на велосипед, оборудованный только ручными тормозами. Ножной тормоз на нём отсутствовал.
Мне удалось довольно быстро приучиться «тормозить руками», но перезаписать память тела оказалось не так-то просто. Насколько я помню, в сознательном возрасте я никогда не падал с велосипеда. Но в критической ситуации тем ранним субботним утром мой мозг не успел применить новые знания, зато тело по сорокалетней привычке попыталось затормозить ногами (на большой скорости). А дальше всё произошло почти по классике: упал, потерял сознание, открытый перелом, очнулся — гипс.
К счастью, в том происшествии больше никто не пострадал. Я в итоге получил серьёзные травмы, экстренную операцию с установкой металлоконструкций и перспективу многомесячной реабилитации, отмену важных дел, мероприятий и планов. А велосипедный сезон для меня, к сожалению, закрылся раньше времени.
https://habr.com/ru/articles/761396/
👉@Bookflow
👍4
ANPR_System
Система автоматического распознавания автомобильных номеров России
https://github.com/KostyaKulakov/Russian_System_of_ANPR
👉@Bookflow
Система автоматического распознавания автомобильных номеров России
https://github.com/KostyaKulakov/Russian_System_of_ANPR
👉@Bookflow
👍5🥰1
Проблемы современного программного обеспечения — невозможность отключения «ненужного функционала»
Версия статьи не от дилетанта, с более близкими для Хабра примерами… лежит здесь!
Сразу оговорюсь, я знаю о существовании Linux, существовании бесплатных аналогов больших программных комплексов, но эти бесплатные аналоги не всегда удовлетворяют удобством, в сравнении с привычными для многих программными комплексами. При этом, использование самих привычных программ, с годами превращается всё в большую муку.
При этом мне кажется, что идёт какая-то сумасшедшая гонка: более прожорливый софт — быстрее железо. Чем быстрее железо, тем более прожорливый софт делают.
https://habr.com/ru/articles/765384/
👉 @bookflow
Версия статьи не от дилетанта, с более близкими для Хабра примерами… лежит здесь!
Сразу оговорюсь, я знаю о существовании Linux, существовании бесплатных аналогов больших программных комплексов, но эти бесплатные аналоги не всегда удовлетворяют удобством, в сравнении с привычными для многих программными комплексами. При этом, использование самих привычных программ, с годами превращается всё в большую муку.
При этом мне кажется, что идёт какая-то сумасшедшая гонка: более прожорливый софт — быстрее железо. Чем быстрее железо, тем более прожорливый софт делают.
https://habr.com/ru/articles/765384/
👉 @bookflow
👍2❤1
Сказка про собес наоборот
Вы помните свое первое собеседование? Я свое помню отлично, преподаватель дольше обычного гонял мою плис в симуляторе Keil-C, придирался к любой мелочи, докапывался до каждой запятой в коде прошивки. А потом начал гонять по алгоритмам трассировки печатных плат, которые мы должны были проходить только в следующем семестре. Я уже мысленно готовился на допсу, видно же что валит, как и предыдущих двух одногруппников. Но в конце сдачи лабы по проектированию мк преподаватель спросил хочу ли я делать "железное железо для железной дороги?" (с). Студенту второго курса ИТМО, которого кормили родители, и подрабатывавшего разгрузкой вагонов ночами, это было сродни офферу в гугль. С тех пор я много раз побывал с обеих сторон стола, и в качестве испытуемого, и как придирчивый лид (отнюдь этим не горжусь, но и не стыжусь), и как группа поддержки у коллег из соседних отделов. Всегда хотелось надеяться, что наши собеседования - это не таинственные квесты, где каждая задача - это каст сложного заклятия, а ошибки не выкидывают с данжа.
https://habr.com/ru/articles/765174/
👉 @bookflow
Вы помните свое первое собеседование? Я свое помню отлично, преподаватель дольше обычного гонял мою плис в симуляторе Keil-C, придирался к любой мелочи, докапывался до каждой запятой в коде прошивки. А потом начал гонять по алгоритмам трассировки печатных плат, которые мы должны были проходить только в следующем семестре. Я уже мысленно готовился на допсу, видно же что валит, как и предыдущих двух одногруппников. Но в конце сдачи лабы по проектированию мк преподаватель спросил хочу ли я делать "железное железо для железной дороги?" (с). Студенту второго курса ИТМО, которого кормили родители, и подрабатывавшего разгрузкой вагонов ночами, это было сродни офферу в гугль. С тех пор я много раз побывал с обеих сторон стола, и в качестве испытуемого, и как придирчивый лид (отнюдь этим не горжусь, но и не стыжусь), и как группа поддержки у коллег из соседних отделов. Всегда хотелось надеяться, что наши собеседования - это не таинственные квесты, где каждая задача - это каст сложного заклятия, а ошибки не выкидывают с данжа.
https://habr.com/ru/articles/765174/
👉 @bookflow
👍2🤡1
Media is too big
VIEW IN TELEGRAM
Алгоритмы и структуры данных
#1 | Big O, сложность алгоритмов, поиск и сортировка массивов
Это первый урок в серии "Алгоритмы и структуры данных". В нём мы поговорим о том, что такое big o notation (большое "о"), зачем это надо и какой в нём смысл. Обсудим сложность алгоритмов и рассмотрим несколько примеров того, как правильный выбор алгоритма может влиять на быстроту выполнения программы.
00:00 Введение
01:00 Почему правильные алгоритмы важны?
02:30 Основные операции с данными
04:30 Сложность операций на примере массивов
11:05 Sets (наборы данных) и их операции
13:45 Линейный поиск в массиве
14:30 Бинарный поиск
17:15 Реализация бинарного поиска
22:10 Big O notation
24:45 Сложность алгоритмов O(1) и O(N)
27:00 Сложность O(log N)
30:05 Пузырьковая сортировка
31:25 Сложность O(N ** 2)
32:00 Сортировка выборкой
33:30 Big O и константы
35:20 Негативные и средние сценарии
36:30 Заключение
источник
👉 @bookflow
#1 | Big O, сложность алгоритмов, поиск и сортировка массивов
Это первый урок в серии "Алгоритмы и структуры данных". В нём мы поговорим о том, что такое big o notation (большое "о"), зачем это надо и какой в нём смысл. Обсудим сложность алгоритмов и рассмотрим несколько примеров того, как правильный выбор алгоритма может влиять на быстроту выполнения программы.
00:00 Введение
01:00 Почему правильные алгоритмы важны?
02:30 Основные операции с данными
04:30 Сложность операций на примере массивов
11:05 Sets (наборы данных) и их операции
13:45 Линейный поиск в массиве
14:30 Бинарный поиск
17:15 Реализация бинарного поиска
22:10 Big O notation
24:45 Сложность алгоритмов O(1) и O(N)
27:00 Сложность O(log N)
30:05 Пузырьковая сортировка
31:25 Сложность O(N ** 2)
32:00 Сортировка выборкой
33:30 Big O и константы
35:20 Негативные и средние сценарии
36:30 Заключение
источник
👉 @bookflow
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Windows API Function Cheatsheets
Справочник вызовов функций Windows API, включая функции для работы с файлами, управления процессами, памятью, потоками, динамическими библиотеками (DLL), синхронизации, межпроцессного взаимодействия, работы со строками Unicode, обработки ошибок, сетевых операций Winsock и операций с реестром.
https://github.com/snowcra5h/windows-api-function-cheatsheets
👉 @bookflow
Справочник вызовов функций Windows API, включая функции для работы с файлами, управления процессами, памятью, потоками, динамическими библиотеками (DLL), синхронизации, межпроцессного взаимодействия, работы со строками Unicode, обработки ошибок, сетевых операций Winsock и операций с реестром.
https://github.com/snowcra5h/windows-api-function-cheatsheets
👉 @bookflow
👍3
Media is too big
VIEW IN TELEGRAM
Алгоритмы и структуры данных
#2 | Стек и очередь (stack/queue) - пример реализации и использования
В этом уроке мы начнём говорить об абстрактных структурах данных в разработке. Сегодня речь пойдёт об очень популярных структурах - это стек (stack) и очередь (queue). Мы посмотрим, как они организованы, как их создать, а также рассмотрим примеры использования на практике. Также обсудим принципы LIFO и FIFO.
Таймкоды:
00:00 Введение
00:45 Абстрактные структуры данных
02:15 FIFO и LIFO
03:00 Принцип работы стека
05:00 Принцип работы очереди
06:40 Пишем свой стек
08:20 Стек на практике - проверка скобок
20:10 Пишем свою очередь
21:20 Очередь на практике - очередь задач
23:30 Заключение
источник
👉 @bookflow
#2 | Стек и очередь (stack/queue) - пример реализации и использования
В этом уроке мы начнём говорить об абстрактных структурах данных в разработке. Сегодня речь пойдёт об очень популярных структурах - это стек (stack) и очередь (queue). Мы посмотрим, как они организованы, как их создать, а также рассмотрим примеры использования на практике. Также обсудим принципы LIFO и FIFO.
Таймкоды:
00:00 Введение
00:45 Абстрактные структуры данных
02:15 FIFO и LIFO
03:00 Принцип работы стека
05:00 Принцип работы очереди
06:40 Пишем свой стек
08:20 Стек на практике - проверка скобок
20:10 Пишем свою очередь
21:20 Очередь на практике - очередь задач
23:30 Заключение
источник
👉 @bookflow
👍2
Поднимаем собственный узел в анонимной сети Hidden Lake
Хоть анонимные сети и являются определённого рода остатком, придатком куда большего множества всеразличных коммуникаций, тем не менее их можно рассматривать как некого рода островки приватности, абстрагированные от всего остального мира и завораживающие своей технической ухищрённостью и извращённостью. Таких островков безусловно существует множество и каждый уникален по своему. Одни анонимные сети пытаются брать количеством и расширяться на множество стран и государств, порождая тем самым множество связей между узлами. Другие анонимные сети напротив берут своим качеством, и благодаря этому им становится безразличен уровень централизации и замкнутость пространства в котором они существуют.
Анонимная сеть Hidden Lake является как раз примером последних. На её составляющих мы попробуем разобрать как можно поднимать собственные узлы. В результате, мы запустим сервис, который будет работать в сети Hidden Lake.
https://habr.com/ru/articles/765464/
👉 @bookflow
Хоть анонимные сети и являются определённого рода остатком, придатком куда большего множества всеразличных коммуникаций, тем не менее их можно рассматривать как некого рода островки приватности, абстрагированные от всего остального мира и завораживающие своей технической ухищрённостью и извращённостью. Таких островков безусловно существует множество и каждый уникален по своему. Одни анонимные сети пытаются брать количеством и расширяться на множество стран и государств, порождая тем самым множество связей между узлами. Другие анонимные сети напротив берут своим качеством, и благодаря этому им становится безразличен уровень централизации и замкнутость пространства в котором они существуют.
Анонимная сеть Hidden Lake является как раз примером последних. На её составляющих мы попробуем разобрать как можно поднимать собственные узлы. В результате, мы запустим сервис, который будет работать в сети Hidden Lake.
https://habr.com/ru/articles/765464/
👉 @bookflow
👍2
Тестовые серверы Telegram: инструкция по эксплуатации
Эта статья — сборник разбросанной документации и результатов экспериментов. Под катом расскажу о технических особенностях тестового окружения для разработки, покажу примеры ботов и юзерботов. В качестве бонуса — история «о жизни в тестовом контуре».
https://habr.com/ru/companies/selectel/articles/763286/
👉 @bookflow
Эта статья — сборник разбросанной документации и результатов экспериментов. Под катом расскажу о технических особенностях тестового окружения для разработки, покажу примеры ботов и юзерботов. В качестве бонуса — история «о жизни в тестовом контуре».
https://habr.com/ru/companies/selectel/articles/763286/
👉 @bookflow
👍1
Подводные камни парного программирования
Парное программирование, конечно, имеет много положительных сторон, но также оно требует практики и не всегда поначалу проходит гладко. Перечислим некоторые традиционные подводные камни и дадим несколько советов, как с ними справиться. Когда сталкиваетесь с такими проблемами, держите в голове свою цель. Важно помнить, чего вы хотите добиться, чтобы держать всё под контролем.
https://martinfowler.com/articles/on-pair-programming.html
👉 @bookflow
Парное программирование, конечно, имеет много положительных сторон, но также оно требует практики и не всегда поначалу проходит гладко. Перечислим некоторые традиционные подводные камни и дадим несколько советов, как с ними справиться. Когда сталкиваетесь с такими проблемами, держите в голове свою цель. Важно помнить, чего вы хотите добиться, чтобы держать всё под контролем.
https://martinfowler.com/articles/on-pair-programming.html
👉 @bookflow
👍1
Распространённые паттерны опечаток при программировании
Есть бесконечное количество способов ошибиться при написании кода. Однако иногда можно заметить явные интересные закономерности, как и где ошибаются программисты. Поговорим о коде, который "притягивает" опечатки.
https://habr.com/ru/companies/pvs-studio/articles/756872/
👉 @bookflow
Есть бесконечное количество способов ошибиться при написании кода. Однако иногда можно заметить явные интересные закономерности, как и где ошибаются программисты. Поговорим о коде, который "притягивает" опечатки.
https://habr.com/ru/companies/pvs-studio/articles/756872/
👉 @bookflow
👍2
Forwarded from Excel Lifehack (эксель лайфхак)
This media is not supported in your browser
VIEW IN TELEGRAM
Хотите быстро рассчитать суммарные итоги по столбцам и строкам? Просто выделите ячейки самой таблицы и те ячейки, где должен разместиться результат, и нажмите {Alt} + {=}.
👉 @Excel_lifehack
👉 @Excel_lifehack
👍3🔥1
Архитектура и реактивное программирование
Что такое реактивное программирование? Не Rx. И даже не Excel. Это архитектурный паттерн, позволяющий абсолютно иначе писать код. В статье мы устаканим фундаментальные знания, утвердимся в том, что React.js всё же является реактивным, и подумаем о том, как и когда нужно, а когда не нужно применять паттерны реактивного программирования.
Так уж вышло, что я побывал в большом количестве огромных кодовых баз, где сталкивался с одними и теми же проблемами организации кода. Информация ниже — это результат исследований программирования в общем и реактивного программирования в частности за последние пять лет. Я уже несколько лет пишу свой менеджер состояния Reatom, и это не просто пет-проект, а серьёзный продукт. Я старался сделать его проще для входа и использования, но оставил возможность расти до энтерпрайза и решать соответствующие проблемы. В статье будет не теория из пустых рассуждений, а опыт решения реальных задач.
https://habr.com/ru/companies/ruvds/articles/737114/
👉 @bookflow
Что такое реактивное программирование? Не Rx. И даже не Excel. Это архитектурный паттерн, позволяющий абсолютно иначе писать код. В статье мы устаканим фундаментальные знания, утвердимся в том, что React.js всё же является реактивным, и подумаем о том, как и когда нужно, а когда не нужно применять паттерны реактивного программирования.
Так уж вышло, что я побывал в большом количестве огромных кодовых баз, где сталкивался с одними и теми же проблемами организации кода. Информация ниже — это результат исследований программирования в общем и реактивного программирования в частности за последние пять лет. Я уже несколько лет пишу свой менеджер состояния Reatom, и это не просто пет-проект, а серьёзный продукт. Я старался сделать его проще для входа и использования, но оставил возможность расти до энтерпрайза и решать соответствующие проблемы. В статье будет не теория из пустых рассуждений, а опыт решения реальных задач.
https://habr.com/ru/companies/ruvds/articles/737114/
👉 @bookflow
👍6
Оскар Толедо: потомственный волшебник
Оскар Толедо — пятикратный победитель программистского конкурса IOCCC, (Международный конкурс обфусцированного кода на С). Он интересен не только сам по себе, но ещё в контексте своей семьи. Это уникальные люди, которые скромно живут в пригороде Мехико и вообще не стремятся к известности. 25 лет назад они написали свою ОС, браузер и кучу софта для него.
Оскар Толедо — просто продолжатель семейного дела, которое началось примерно в 70-е годы прошлого века.
Оскар родился в 1978 году, программирует с пяти лет, а ассемблер выучил в девять. Потом освоил Pascal, C, C++, Java, Javascript, HTML, CSS и PHP, но ассемблер остаётся его основным языком. Пишет лаконичные и концептуальные программы, в этой лаконичности он чем-то напоминает Фабриса Беллара, хотя с этим титаном программирования мало кто может сравниться.
Живёт с семьёй в Мексике, пишет софт и книги о нём, продаёт ретротехнику и картриджи. Ну и участвует в бизнесе семьи, наверное (о нём ниже).
Пожалуй, самая интересная его разработка — операционная система BootOS, опубликованная на Github в 2019 году.
https://habr.com/ru/companies/ruvds/articles/765074/
👉 @bookflow
Оскар Толедо — пятикратный победитель программистского конкурса IOCCC, (Международный конкурс обфусцированного кода на С). Он интересен не только сам по себе, но ещё в контексте своей семьи. Это уникальные люди, которые скромно живут в пригороде Мехико и вообще не стремятся к известности. 25 лет назад они написали свою ОС, браузер и кучу софта для него.
Оскар Толедо — просто продолжатель семейного дела, которое началось примерно в 70-е годы прошлого века.
Оскар родился в 1978 году, программирует с пяти лет, а ассемблер выучил в девять. Потом освоил Pascal, C, C++, Java, Javascript, HTML, CSS и PHP, но ассемблер остаётся его основным языком. Пишет лаконичные и концептуальные программы, в этой лаконичности он чем-то напоминает Фабриса Беллара, хотя с этим титаном программирования мало кто может сравниться.
Живёт с семьёй в Мексике, пишет софт и книги о нём, продаёт ретротехнику и картриджи. Ну и участвует в бизнесе семьи, наверное (о нём ниже).
Пожалуй, самая интересная его разработка — операционная система BootOS, опубликованная на Github в 2019 году.
https://habr.com/ru/companies/ruvds/articles/765074/
👉 @bookflow
👍9
Forwarded from Системный Администратор (Сисадмин)
Media is too big
VIEW IN TELEGRAM
Настраиваем аутентификацию SSH по ключу в Linux / Unix
Заходить (авторизоваться) на сервер по SSH можно, используя пару логин-пароль, а можно, используя пару публичного и приватного ключа, причём именно использование ключей является способом предпочтительным. Почему? Во-первых, вход по SSH ключам безопаснее, во-вторых, удобнее. Как это настроить и использовать — об этом пойдёт речь в очередном видео, а заодно обсудим настройку серверного SSH, запрет входа root пользователем, запрет входа по паролю и другие важные фичи. Поехали!
источник
👉 @sysadminof
Заходить (авторизоваться) на сервер по SSH можно, используя пару логин-пароль, а можно, используя пару публичного и приватного ключа, причём именно использование ключей является способом предпочтительным. Почему? Во-первых, вход по SSH ключам безопаснее, во-вторых, удобнее. Как это настроить и использовать — об этом пойдёт речь в очередном видео, а заодно обсудим настройку серверного SSH, запрет входа root пользователем, запрет входа по паролю и другие важные фичи. Поехали!
источник
👉 @sysadminof
👍3
О точности вычислений: как не потерять данные в цифровом шуме
«По мере того, как сложность возрастает,
точные утверждения теряют значимость,
а значимые утверждения теряют точность»,
—
математик Лотфи Заде
https://habr.com/ru/companies/kryptonite/articles/766294/
👉 @bookflow
«По мере того, как сложность возрастает,
точные утверждения теряют значимость,
а значимые утверждения теряют точность»,
—
математик Лотфи Заде
https://habr.com/ru/companies/kryptonite/articles/766294/
👉 @bookflow
👍4
Forwarded from GameDev: разработка игр
Сайт со скриншотами из игр
https://level-design.org/referencedb/index.php?/category/64
#gamedev
👉 @game_devv
https://level-design.org/referencedb/index.php?/category/64
#gamedev
👉 @game_devv
👍1
Первый проект длиною в полтора года…
На дворе 2021 год, я занимаюсь ремонтом электроники уже на протяжении десяти лет. Свободное от работы время я посвящаю изучению 3D-моделирования и печати. Для этих целей в 2018 году были куплены два самодельных FDM-принтера.
В один из дней приходит знакомый, держа в руках плату с большим количеством радиаторов. Предлагает посмотреть краем глаза, почему она не работает.
Я, конечно же, был не очень рад его предложению, так как занимаюсь больше ремонтом мобильных телефонов и планшетов. В процессе небольшой дискуссии соглашаюсь с одной оговоркой, что если за два выходных дня у меня получится погрузиться в проблему и изучить сам вопрос и понять, что это за плата, то я берусь.
Уже вечером этого дня я изучаю дома плату и первый раз узнаю такие слова, как "Asic", майнер, майнинг. Изучив немного вопрос, понимаю, что имею на руках плату одного такого устройства, а в данном случае именно AntMiner S9.
https://habr.com/ru/articles/746118/
👉 @bookflow
На дворе 2021 год, я занимаюсь ремонтом электроники уже на протяжении десяти лет. Свободное от работы время я посвящаю изучению 3D-моделирования и печати. Для этих целей в 2018 году были куплены два самодельных FDM-принтера.
В один из дней приходит знакомый, держа в руках плату с большим количеством радиаторов. Предлагает посмотреть краем глаза, почему она не работает.
Я, конечно же, был не очень рад его предложению, так как занимаюсь больше ремонтом мобильных телефонов и планшетов. В процессе небольшой дискуссии соглашаюсь с одной оговоркой, что если за два выходных дня у меня получится погрузиться в проблему и изучить сам вопрос и понять, что это за плата, то я берусь.
Уже вечером этого дня я изучаю дома плату и первый раз узнаю такие слова, как "Asic", майнер, майнинг. Изучив немного вопрос, понимаю, что имею на руках плату одного такого устройства, а в данном случае именно AntMiner S9.
https://habr.com/ru/articles/746118/
👉 @bookflow
👍6
Советы и рекомендации по управлению памятью
В течение прошлого года я усовершенствовал мой подход к управлению памятью. С практикой он стал эффективным, простым и быстрым; обычно так же прост в использовании, как и сбор мусора, но без дополнительных затрат.
https://nullprogram.com/blog/2023/09/27/
👉 @bookflow
В течение прошлого года я усовершенствовал мой подход к управлению памятью. С практикой он стал эффективным, простым и быстрым; обычно так же прост в использовании, как и сбор мусора, но без дополнительных затрат.
https://nullprogram.com/blog/2023/09/27/
👉 @bookflow
👍1