Программирование {BookFlow}
16.1K subscribers
1.58K photos
470 videos
145 files
2.1K links
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий.

Группа в https://vk.com/bookflow.

По всем вопросам @evgenycarter

РКН https://clck.ru/3KoAbH
Download Telegram
Яндекс выложил код счётчика Метрики в opensource

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

Открытый нами код — это JS-бандл, который загружается вместе со страницей сайта и фиксирует различные события, происходящие на сайте. Теперь каждый разработчик может подробно изучить код счётчика и пересобрать его в той конфигурации, которая необходима для его проекта.

https://habr.com/ru/company/yandex/news/t/717296/

👉@Bookflow
👍7
Дженерики в TypeScript

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

Эта статья для тех, кто не использует generic-типы в TypeScript: не знают о них, боятся использовать или используют вместо реальных типов — any.

https://habr.com/ru/company/tinkoff/blog/588655/

👉@Bookflow
👍1
Java: The Complete Reference, Twelfth Edition, 12th Edition
Автор: Herbert Schildt (2021)

Полное Руководство по Java 17
Автор бестселлеров по программированию Herbert Schildt охватывает весь язык Java, включая его синтаксис, ключевые слова и фундаментальные принципы программирования.

Скачать

👉 @java_360
👍2
Вопрос с собеседования Amazon

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

amazon_transactions

id:int
user_id:int
item:varchar
created_at:datetime
revenue:int


Ответ

SELECT
DISTINCT(a.user_id)
FROM amazon_transactions a
JOIN amazon_transactions b
ON a.user_id = b.user_id
WHERE a.created_at - b.created_at BETWEEN 0 AND 7
AND a.id != b.id


#db

👉 @database_info
👍17
Пишем умный поиск по коду с Open AI

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

https://habr.com/ru/post/717576/

👉@Bookflow
👍1
Go — самый быстрорастущий язык по популярности на GitHub.

https://ossinsight.io/blog/explore-deep-in-4.6-billion-github-events/#go-the-new-favorite-and-the-fastest-growing-programming-language

👉@Bookflow
👍6👎4🤔1
Вопрос с собеседования Microsoft

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

ms_user_dimension

user_id:int
acc_id:int
ms_acc_dimension

acc_id:int
paying_customer:varchar
ms_download_facts

date:datetime
user_id:int
downloads:int


Ответ

with out AS(select date
, Sum (downloads) Filter(Where paying_customer = 'no') as non_paying
, Sum (downloads) Filter(Where paying_customer = 'yes') as paying
From ms_download_facts fact
Left Join ms_user_dimension a
on fact.user_id = a.user_id
Join ms_acc_dimension acc
on a.acc_id = acc.acc_id
Group by date
order by date)
Select date , non_paying , paying
From out
Where non_paying > paying


👉 @database_info
👍5👎1
Forwarded from DevOps
Зеркалирование GitHub-проектов в 2023 году

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

https://habr.com/ru/company/pt/blog/714316/

#devops #девопс

Подпишись 👉@i_DevOps
👍6
Пишем игру змейка (Snake) на C++

Управление змейкой клавишами управления курсором. Esc — завершение игры. Для выхода из игры надо нажать Esc или клавишу N на вопрос «Once more?». Змейка не должна натыкаться на стенки и на собственный хвост. Это — смерть. Змейка не умеет ползать хвостом вперёд. Попытаться заставить её это сделать — верная смерть. Кормить змейку надо, естественно, долларами. Когда змейка ест, она растёт.

https://itmozg.ru/pishem-igru-zmejka-snake-na-c/

👉@Bookflow
👍3
Laravel Pint - это система исправления стиля PHP-кода для минималистов.

Laravel Pint - это исправление стиля PHP-кода для минималистов. Pint построен на базе PHP-CS-Fixer и позволяет легко убедиться, что стиль вашего кода остается чистым и последовательным.

https://github.com/laravel/pint

👉 @php_lib
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Пятничные клеточные автоматы. 10 удивительных правил с нотацией Хенселя

Продолжим знакомиться с вариациями клеточных автоматов. Ранее мы рассмотрели базовую «life‑like» конфигурацию и расширили её поколениями. Сегодня сделаем ещё один шаг — расширим правила учёта соседей так, что влиять на рождение и выживание клеток будет не только количество живых соседей, но и их расположение.

https://habr.com/ru/post/721178/

👉@Bookflow
👍3
Forwarded from ITmozg
51 год автору WinRAR и FAR Manager

10 марта 1972 в Челябинске родился Евгений Лазаревич Рошал — российский программист, автор файлового менеджера FAR Manager, формата сжатия RAR (Roshal ARchiver, которому в этом году исполняется 30 лет!), архиваторов RAR и WinRAR.

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

Идея создать RAR возникла ещё в 1991-м. Но первая попытка к осязаемому результату не привела. Через год-два Евгений занялся этим опять, и на этот раз более успешно. Первой версией RAR, которую он рискнул отдать нескольким своим знакомым, был RAR 0.1, выпущенный в марте 1993. Потом были версии 0.9, 1.0, 1.1, 1.15, и тому подобные, с вариациями алгоритма сжатия. Но реально RAR пошел в распространение осенью 1993 после выхода версии 1.30. Во-первых, эта версия паковала намного лучше предшествующих за счет 64Kb окна поиска повторяющихся строк, а во-вторых, Евгений тогда познакомился с Андреем Спасибожко, который и помог двинуть RAR в массы.

Желая сосредоточиться на совершенствовании формата и архиваторов RAR и WinRAR, Евгений Рошал в 2000 году прекратил работу над файловым менеджером FAR Manager и передал авторские права на него группе программистов FAR Group, а в 2004 году передал авторские права на программы RAR и WinRAR своему старшему брату Александру (р. 1965), оставшись лишь разработчиком.

@itmozg
👍23🔥9🎉3
This media is not supported in your browser
VIEW IN TELEGRAM
Jetpack Compose for Wear OS

Узнайте о Jetpack Compose для Wear OS, создав специальное приложение для управления временем задержки дыхания, включая секундомер для отслеживания новых рекордов и сохранения их в коллекции. В этом руководстве вы познакомитесь со всеми основными компонентами, такими как Inputs, Dialogs, Progress Indicators и Page Indicators.

https://www.kodeco.com/36067385-jetpack-compose-for-wear-os

#Android

👉 @developer_mobila
👍2
Forwarded from Kotlin
Пишем бота-кликера на Kotlin для Lineage 2

Предвкушая ностальгию я открыл Lineage 2, одну из самых популярных MMORPG “нулевых” на СНГ пространстве. Однако, самому играть уже не хотелось и пришла идея автоматизировать это дело.

https://habr.com/ru/post/711168/

✍️ @kotlin_lib
👍9
Парсинг веб-страниц с помощью C++

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

В этом руководстве вы узнаете, как использовать C++ для реализации веб-скрапинга с помощью библиотек libcurl и gumbo. Вы можете следить за развитием событий на GitHub.

👉 @cpp_lib
👍2
PikaScript

Ультралегкий интерпретатор Python, работающий всего с 4 КБ оперативной памяти, с нулевыми зависимостями. Он готов к использованию из коробки, не требует конфигурации и легко расширяется с помощью языка C. Похожие проекты: MicroPython, JerryScript.

Все это позволяет вам программировать на языке Python даже для самых маломощных микроконтроллеров семейства STM32

https://github.com/pikasTech/PikaPython

👉 @Githublib
2👍1
cheatsheetv1.3-1920x1080.png
346 KB
Шпаргалка по основам ассемблера ARM 32

Эта шпаргалка по основам ARM-ассемблера охватывает регистры, инструкции, ветвление и условное выполнение. Вы можете использовать ее в качестве руководства, если вы начинаете изучать ассемблер ARM и вам нужно немного освежить основы.

Версия 1.2 (январь 2017 года, исправлена опечатка в регистре SP): 1920×1080

👉@Bookflow
👍3