📚Game Programming Patterns
Автор: Robert Nystrom (2014)
Занимаетесь разработкой игр и столкнулись с такими проблемами?
— Трудно заставить код работать как единое целое
— С ростом кода становится сложнее вносить изменения
— Кажется, что игра превратилась в гигантский клубок, где всё связано со всем
— Хотите понять, какие паттерны проектирования подходят для игр
— Слышали о «когерентности кэша» и «объектных пулах», но не знаете, как применить их для ускорения игры
Game Programming Patterns поможет в этом. В книге собраны приёмы, которые делают код чище, понятнее и быстрее.
👉 @bfbook
Автор: Robert Nystrom (2014)
Занимаетесь разработкой игр и столкнулись с такими проблемами?
— Трудно заставить код работать как единое целое
— С ростом кода становится сложнее вносить изменения
— Кажется, что игра превратилась в гигантский клубок, где всё связано со всем
— Хотите понять, какие паттерны проектирования подходят для игр
— Слышали о «когерентности кэша» и «объектных пулах», но не знаете, как применить их для ускорения игры
Game Programming Patterns поможет в этом. В книге собраны приёмы, которые делают код чище, понятнее и быстрее.
👉 @bfbook
👍9❤1
⁉️ Spark-запросы тормозят? Пора разобраться, как сделать их в разы быстрее
На открытом вебинаре мы разберём проверенные техники оптимизации, которые используют ведущие дата-инженеры. Покажем, как находить узкие места, ускорять join-операции и выжимать максимум из ресурсов кластера.
Вы получите конкретные приёмы — от оптимального партиционирования данных и управления кэшированием до выбора лучших форматов хранения. Всё на реальных примерах.
➡️ Присоединяйтесь 17 сентября в 20:00 МСК. Урок проходит в преддверии старта курса «Spark Developer», все участники получат скидку на обучение. Регистрация открыта: https://vk.cc/cPkG4K
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом вебинаре мы разберём проверенные техники оптимизации, которые используют ведущие дата-инженеры. Покажем, как находить узкие места, ускорять join-операции и выжимать максимум из ресурсов кластера.
Вы получите конкретные приёмы — от оптимального партиционирования данных и управления кэшированием до выбора лучших форматов хранения. Всё на реальных примерах.
➡️ Присоединяйтесь 17 сентября в 20:00 МСК. Урок проходит в преддверии старта курса «Spark Developer», все участники получат скидку на обучение. Регистрация открыта: https://vk.cc/cPkG4K
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤1
📚Distributed Systems 4th edition
Авторы: M. van Steen and A.S. Tanenbaum (2025)
Это четвёртое издание книги «Распределённые системы». Мы сохранили структуру третьего издания, включая примеры (частей) существующих распределённых систем рядом с обсуждаемыми общими принципами. Например, мы добавили материал о блокчейн-системах и рассматриваем их различные компоненты на протяжении всей книги. Также мы вновь использовали специальные выделенные блоки для материала, который можно пропустить при первом чтении.
Текст был тщательно проверен, переработан и обновлён. В частности, весь код на Python был обновлён до Python 3, а пакет channel почти полностью переработан и упрощён. Примеры кода в книге опущены в деталях ради читаемости, но полные версии доступны отдельно (см. ниже). Мы позаботились о том, чтобы практически все примеры можно было сразу запустить с помощью простого скрипта. Однако потребуется скачать и установить специальные пакеты, такие как Redis.
👉 @bfbook
Авторы: M. van Steen and A.S. Tanenbaum (2025)
Это четвёртое издание книги «Распределённые системы». Мы сохранили структуру третьего издания, включая примеры (частей) существующих распределённых систем рядом с обсуждаемыми общими принципами. Например, мы добавили материал о блокчейн-системах и рассматриваем их различные компоненты на протяжении всей книги. Также мы вновь использовали специальные выделенные блоки для материала, который можно пропустить при первом чтении.
Текст был тщательно проверен, переработан и обновлён. В частности, весь код на Python был обновлён до Python 3, а пакет channel почти полностью переработан и упрощён. Примеры кода в книге опущены в деталях ради читаемости, но полные версии доступны отдельно (см. ниже). Мы позаботились о том, чтобы практически все примеры можно было сразу запустить с помощью простого скрипта. Однако потребуется скачать и установить специальные пакеты, такие как Redis.
👉 @bfbook
👍10❤6❤🔥2🔥2
📚Prompt Engineering
Автор: Lee Boonstra (2025)
Когда речь идет о вводе и выводе больших языковых моделей, текстовый промпт (иногда сопровождаемый другими модальностями, например изображениями) является входными данными, которые модель использует для предсказания конкретного результата.
Не обязательно быть специалистом по данным или инженером по машинному обучению — промпт может написать любой человек. Однако создание максимально эффективного промпта может быть сложной задачей. На его качество влияют многие факторы: используемая модель, данные, на которых она обучалась, её настройки, выбор слов, стиль и тон, структура и контекст.
Поэтому разработка промптов — это итеративный процесс. Недостаточно проработанные промпты могут привести к двусмысленным или неточным ответам и снизить способность модели выдавать осмысленный результат.
Когда вы общаетесь с чатом Gemini, вы фактически пишете промпты. Однако в этом документе внимание уделяется созданию промптов для модели Gemini через Vertex AI или с использованием API, так как при прямом взаимодействии с моделью вы получаете доступ к её настройкам, например таким как temperature и другим параметрам.
В этом whitepaper подробно рассматривается инженерия промптов. Мы изучим различные техники их создания, чтобы помочь вам начать работу, а также поделимся советами и лучшими практиками, которые помогут вам стать экспертом в этой области. Кроме того, мы обсудим некоторые сложности, с которыми вы можете столкнуться при создании промптов.
👉 @bfbook
Автор: Lee Boonstra (2025)
Когда речь идет о вводе и выводе больших языковых моделей, текстовый промпт (иногда сопровождаемый другими модальностями, например изображениями) является входными данными, которые модель использует для предсказания конкретного результата.
Не обязательно быть специалистом по данным или инженером по машинному обучению — промпт может написать любой человек. Однако создание максимально эффективного промпта может быть сложной задачей. На его качество влияют многие факторы: используемая модель, данные, на которых она обучалась, её настройки, выбор слов, стиль и тон, структура и контекст.
Поэтому разработка промптов — это итеративный процесс. Недостаточно проработанные промпты могут привести к двусмысленным или неточным ответам и снизить способность модели выдавать осмысленный результат.
Когда вы общаетесь с чатом Gemini, вы фактически пишете промпты. Однако в этом документе внимание уделяется созданию промптов для модели Gemini через Vertex AI или с использованием API, так как при прямом взаимодействии с моделью вы получаете доступ к её настройкам, например таким как temperature и другим параметрам.
В этом whitepaper подробно рассматривается инженерия промптов. Мы изучим различные техники их создания, чтобы помочь вам начать работу, а также поделимся советами и лучшими практиками, которые помогут вам стать экспертом в этой области. Кроме того, мы обсудим некоторые сложности, с которыми вы можете столкнуться при создании промптов.
👉 @bfbook
👍5❤1
Forwarded from Системный Администратор Windows
👋 Всем админам доброго вечера!
Сегодня поделюсь приёмом, который реально спасает, когда пользователи жалуются на «медленный интернет» или «сетевые лаги». Чаще всего виноват вовсе не провайдер, а перегруженные сетевые интерфейсы на самом сервере.
🔥 Проверить статистику адаптеров можно так:
Команда показывает количество принятых/отправленных байт и ошибки на интерфейсе. Если видите рост
А если нужно онлайн-мониторинг, можно добавить цикл:
Так можно «подсматривать» за интерфейсом в реальном времени.
👉 @win_sysadmin
Сегодня поделюсь приёмом, который реально спасает, когда пользователи жалуются на «медленный интернет» или «сетевые лаги». Чаще всего виноват вовсе не провайдер, а перегруженные сетевые интерфейсы на самом сервере.
🔥 Проверить статистику адаптеров можно так:
Get-NetAdapterStatistics | Select-Object Name, ReceivedBytes, SentBytes, ReceivedErrors, OutboundErrors
Команда показывает количество принятых/отправленных байт и ошибки на интерфейсе. Если видите рост
ReceivedErrors или OutboundErrors - значит, проблемы в железе, драйвере или кабеле.А если нужно онлайн-мониторинг, можно добавить цикл:
while ($true) {
Get-NetAdapterStatistics -Name "Ethernet0" |
Select-Object Name, ReceivedErrors, OutboundErrors
Start-Sleep -Seconds 5
}
Так можно «подсматривать» за интерфейсом в реальном времени.
👉 @win_sysadmin
👍7
🚀 Подборка Telegram каналов для программистов
Системное администрирование, DevOps 📌
https://t.iss.one/bash_srv Bash Советы
https://t.iss.one/win_sysadmin Системный Администратор Windows
https://t.iss.one/sysadmin_girl Девочка Сисадмин
https://t.iss.one/srv_admin_linux Админские угодья
https://t.iss.one/linux_srv Типичный Сисадмин
https://t.iss.one/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://t.iss.one/linux_odmin Linux: Системный администратор
https://t.iss.one/devops_star DevOps Star (Звезда Девопса)
https://t.iss.one/i_linux Системный администратор
https://t.iss.one/linuxchmod Linux
https://t.iss.one/sys_adminos Системный Администратор
https://t.iss.one/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.iss.one/sysadminof Книги для админов, полезные материалы
https://t.iss.one/i_odmin Все для системного администратора
https://t.iss.one/i_odmin_book Библиотека Системного Администратора
https://t.iss.one/i_odmin_chat Чат системных администраторов
https://t.iss.one/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.iss.one/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.iss.one/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.iss.one/DevLab1C 1С:Предприятие 8
https://t.iss.one/razrab_1C 1C Разработчик
https://t.iss.one/buh1C_prog 1C Программист | Бухгалтерия и Учёт
https://t.iss.one/rabota1C_rus Вакансии для программистов 1С
Программирование C++📌
https://t.iss.one/cpp_lib Библиотека C/C++ разработчика
https://t.iss.one/cpp_knigi Книги для программистов C/C++
https://t.iss.one/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.iss.one/pythonofff Python академия.
https://t.iss.one/BookPython Библиотека Python разработчика
https://t.iss.one/python_real Python подборки на русском и английском
https://t.iss.one/python_360 Книги по Python
Java разработка 📌
https://t.iss.one/BookJava Библиотека Java разработчика
https://t.iss.one/java_360 Книги по Java Rus
https://t.iss.one/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.iss.one/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.iss.one/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.iss.one/developer_mobila Мобильная разработка
https://t.iss.one/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.iss.one/frontend_1 Подборки для frontend разработчиков
https://t.iss.one/frontend_sovet Frontend советы, примеры и практика!
https://t.iss.one/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.iss.one/game_devv Все о разработке игр
Библиотеки 📌
https://t.iss.one/book_for_dev Книги для программистов Rus
https://t.iss.one/programmist_of Книги по программированию
https://t.iss.one/proglb Библиотека программиста
https://t.iss.one/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://t.iss.one/bigdata_1 Big Data, Machine Learning
Программирование 📌
https://t.iss.one/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.iss.one/rust_lib Полезный контент по программированию на Rust
https://t.iss.one/golang_lib Библиотека Go (Golang) разработчика
https://t.iss.one/itmozg Программисты, дизайнеры, новости из мира IT
https://t.iss.one/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.iss.one/nodejs_lib Подборки по Node js и все что с ним связано
https://t.iss.one/ruby_lib Библиотека Ruby программиста
https://t.iss.one/lifeproger Жизнь программиста. Авторский канал.
QA, тестирование 📌
https://t.iss.one/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.iss.one/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.iss.one/thehaking Канал о кибербезопасности
https://t.iss.one/xakep_2 Хакер Free
Книги, статьи для дизайнеров 📌
https://t.iss.one/ux_web Статьи, книги для дизайнеров
Математика 📌
https://t.iss.one/Pomatematike Канал по математике
https://t.iss.one/phis_mat Обучающие видео, книги по Физике и Математике
https://t.iss.one/matgeoru Математика | Геометрия | Логика
Excel лайфхак📌
https://t.iss.one/Excel_lifehack
https://t.iss.one/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.iss.one/sysadmin_rabota Системный Администратор
https://t.iss.one/progjob Вакансии в IT
Системное администрирование, DevOps 📌
https://t.iss.one/bash_srv Bash Советы
https://t.iss.one/win_sysadmin Системный Администратор Windows
https://t.iss.one/sysadmin_girl Девочка Сисадмин
https://t.iss.one/srv_admin_linux Админские угодья
https://t.iss.one/linux_srv Типичный Сисадмин
https://t.iss.one/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
https://t.iss.one/linux_odmin Linux: Системный администратор
https://t.iss.one/devops_star DevOps Star (Звезда Девопса)
https://t.iss.one/i_linux Системный администратор
https://t.iss.one/linuxchmod Linux
https://t.iss.one/sys_adminos Системный Администратор
https://t.iss.one/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.iss.one/sysadminof Книги для админов, полезные материалы
https://t.iss.one/i_odmin Все для системного администратора
https://t.iss.one/i_odmin_book Библиотека Системного Администратора
https://t.iss.one/i_odmin_chat Чат системных администраторов
https://t.iss.one/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.iss.one/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.iss.one/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://t.iss.one/DevLab1C 1С:Предприятие 8
https://t.iss.one/razrab_1C 1C Разработчик
https://t.iss.one/buh1C_prog 1C Программист | Бухгалтерия и Учёт
https://t.iss.one/rabota1C_rus Вакансии для программистов 1С
Программирование C++📌
https://t.iss.one/cpp_lib Библиотека C/C++ разработчика
https://t.iss.one/cpp_knigi Книги для программистов C/C++
https://t.iss.one/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.iss.one/pythonofff Python академия.
https://t.iss.one/BookPython Библиотека Python разработчика
https://t.iss.one/python_real Python подборки на русском и английском
https://t.iss.one/python_360 Книги по Python
Java разработка 📌
https://t.iss.one/BookJava Библиотека Java разработчика
https://t.iss.one/java_360 Книги по Java Rus
https://t.iss.one/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.iss.one/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.iss.one/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.iss.one/developer_mobila Мобильная разработка
https://t.iss.one/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.iss.one/frontend_1 Подборки для frontend разработчиков
https://t.iss.one/frontend_sovet Frontend советы, примеры и практика!
https://t.iss.one/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.iss.one/game_devv Все о разработке игр
Библиотеки 📌
https://t.iss.one/book_for_dev Книги для программистов Rus
https://t.iss.one/programmist_of Книги по программированию
https://t.iss.one/proglb Библиотека программиста
https://t.iss.one/bfbook Книги для программистов
БигДата, машинное обучение 📌
https://t.iss.one/bigdata_1 Big Data, Machine Learning
Программирование 📌
https://t.iss.one/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.iss.one/rust_lib Полезный контент по программированию на Rust
https://t.iss.one/golang_lib Библиотека Go (Golang) разработчика
https://t.iss.one/itmozg Программисты, дизайнеры, новости из мира IT
https://t.iss.one/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.iss.one/nodejs_lib Подборки по Node js и все что с ним связано
https://t.iss.one/ruby_lib Библиотека Ruby программиста
https://t.iss.one/lifeproger Жизнь программиста. Авторский канал.
QA, тестирование 📌
https://t.iss.one/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.iss.one/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.iss.one/thehaking Канал о кибербезопасности
https://t.iss.one/xakep_2 Хакер Free
Книги, статьи для дизайнеров 📌
https://t.iss.one/ux_web Статьи, книги для дизайнеров
Математика 📌
https://t.iss.one/Pomatematike Канал по математике
https://t.iss.one/phis_mat Обучающие видео, книги по Физике и Математике
https://t.iss.one/matgeoru Математика | Геометрия | Логика
Excel лайфхак📌
https://t.iss.one/Excel_lifehack
https://t.iss.one/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.iss.one/sysadmin_rabota Системный Администратор
https://t.iss.one/progjob Вакансии в IT
🔥7❤3🥰1
📚 Foundations of Debugging for Golang
Автор: Matt Boyle (2024)
Отладка — это, вероятно, самый важный навык, которому большинство людей никогда не обучают.
Умение отлаживать код как локально, так и в продакшене — критически важный навык для любого Go-разработчика, но его редко преподают напрямую. Мне понадобилось много лет работы с Go в продакшене, чтобы чувствовать себя уверенно в отладке, и я хочу ускорить ваше обучение, рассказав всё, что сам хотел бы знать в самом начале пути.
В этой книге вы узнаете:
* Как научиться быстрее находить проблемы на глаз.
* Шаблоны логирования и как построить стратегию логирования на уровне компании.
* Что такое метрики, как их создавать и как разрабатывать качественные дашборды.
* Что такое распределённый трейсинг и как внедрить его в своей компании.
* Как использовать инструменты профилирования Go, чтобы выявлять проблемы с производительностью и выжимать максимум из своего приложения.
👉 @bfbook
Автор: Matt Boyle (2024)
Отладка — это, вероятно, самый важный навык, которому большинство людей никогда не обучают.
Умение отлаживать код как локально, так и в продакшене — критически важный навык для любого Go-разработчика, но его редко преподают напрямую. Мне понадобилось много лет работы с Go в продакшене, чтобы чувствовать себя уверенно в отладке, и я хочу ускорить ваше обучение, рассказав всё, что сам хотел бы знать в самом начале пути.
В этой книге вы узнаете:
* Как научиться быстрее находить проблемы на глаз.
* Шаблоны логирования и как построить стратегию логирования на уровне компании.
* Что такое метрики, как их создавать и как разрабатывать качественные дашборды.
* Что такое распределённый трейсинг и как внедрить его в своей компании.
* Как использовать инструменты профилирования Go, чтобы выявлять проблемы с производительностью и выжимать максимум из своего приложения.
👉 @bfbook
❤9👍2👎1
📚 Software Design for Flexibility: How to Avoid Programming Yourself into a Corner
Авторы: Chris Hanson, Gerald Jay Sussman (2021)
Стратегии построения крупных систем, которые можно легко адаптировать к новым задачам с минимальными изменениями в коде.
Ограниченные сроки часто заставляют программистов писать код, который хорошо работает только для узкой задачи, не оставляя возможностей для развития. Но лучшие системы - это те, которые можно эволюционировать: их можно адаптировать к новым ситуациям за счёт добавления кода, а не изменения уже существующего. Авторы описывают техники, которые они считают эффективными - опираясь на более чем 100 лет совокупного опыта программирования, - чтобы помочь разработчикам избежать ситуаций, когда система заходит в тупик и перестаёт быть гибкой.
Авторы рассматривают способы повышения гибкости систем за счёт:
* Организации систем через комбинаторы - создание модульных компонентов, которые можно свободно комбинировать, начиная от маленьких функций и заканчивая целыми арифметическими системами, используя стандартизированные интерфейсы.
* Обогащения данных независимыми слоями аннотаций, например, добавлением единиц измерения или информации о происхождении данных.
* Объединения независимых фрагментов неполной информации с помощью механизмов унификации или распространения данных.
* Разделения управляющей логики и предметной области через использование доменных моделей, правил, сопоставления с образцом (pattern matching), систем распространения данных и обратного поиска с учётом зависимостей.
* Расширения возможностей языка программирования с помощью динамически расширяемых интерпретаторов и средств выполнения кода.
👉 @bfbook
Авторы: Chris Hanson, Gerald Jay Sussman (2021)
Стратегии построения крупных систем, которые можно легко адаптировать к новым задачам с минимальными изменениями в коде.
Ограниченные сроки часто заставляют программистов писать код, который хорошо работает только для узкой задачи, не оставляя возможностей для развития. Но лучшие системы - это те, которые можно эволюционировать: их можно адаптировать к новым ситуациям за счёт добавления кода, а не изменения уже существующего. Авторы описывают техники, которые они считают эффективными - опираясь на более чем 100 лет совокупного опыта программирования, - чтобы помочь разработчикам избежать ситуаций, когда система заходит в тупик и перестаёт быть гибкой.
Авторы рассматривают способы повышения гибкости систем за счёт:
* Организации систем через комбинаторы - создание модульных компонентов, которые можно свободно комбинировать, начиная от маленьких функций и заканчивая целыми арифметическими системами, используя стандартизированные интерфейсы.
* Обогащения данных независимыми слоями аннотаций, например, добавлением единиц измерения или информации о происхождении данных.
* Объединения независимых фрагментов неполной информации с помощью механизмов унификации или распространения данных.
* Разделения управляющей логики и предметной области через использование доменных моделей, правил, сопоставления с образцом (pattern matching), систем распространения данных и обратного поиска с учётом зависимостей.
* Расширения возможностей языка программирования с помощью динамически расширяемых интерпретаторов и средств выполнения кода.
👉 @bfbook
❤7👍3👌2
Forwarded from Системный Администратор Windows
👋 Привет, админы!
Сегодня расскажу о небольшом, но полезном трюке для мониторинга дисков в Windows через PowerShell. Иногда места на сервере внезапно становится критически мало, и если не отследить вовремя - можно получить падение сервисов или невозможность сохранить логи.
Он показывает:
- Имя диска
- Свободное место (ГБ)
- Процент занятости
Можно добавить в планировщик задач и получать отчёт на почту или писать лог. А если подключить это к мониторингу (например, через Zabbix/PRTG), то сервер сам предупредит о критическом заполнении.
👉 @win_sysadmin
Сегодня расскажу о небольшом, но полезном трюке для мониторинга дисков в Windows через PowerShell. Иногда места на сервере внезапно становится критически мало, и если не отследить вовремя - можно получить падение сервисов или невозможность сохранить логи.
Get-PSDrive -PSProvider FileSystem | Select-Object Name,@{n="FreeGB";e={[math]::Round($_.Free/1GB,2)}},@{n="Used%";e={[math]::Round(100-($_.Free/$_.Used+ $_.Free)*100,2)}}
Он показывает:
- Имя диска
- Свободное место (ГБ)
- Процент занятости
Можно добавить в планировщик задач и получать отчёт на почту или писать лог. А если подключить это к мониторингу (например, через Zabbix/PRTG), то сервер сам предупредит о критическом заполнении.
👉 @win_sysadmin
👍10❤5👎4
MAX
Книги для программистов
Книги по программированию, библиотека электронных книг для разработчиков.
🤡157🤮129💊103🖕100👎21👍14💩13🆒1
📚 Crafting Interpreters
Автор: Robert Nystrom (2021)
Несмотря на то, что большинство разработчиков используют разные языки программирования каждый день, они мало что знают о том, как эти самые ЯП разрабатываются и внедряются.
Для многих единственным знакомством с этим разделом информатики был ужасающий курс «Компиляторы», который они пережили в бакалавриате и постарались вычеркнуть из памяти, как только написали на выпускном экзамене последнее преобразование из NFA в DFA.
Для кого книга?
— Для тех, кто хоть раз думал: «А что, если бы у JavaScript был нормальный синтаксис?»
— Для любителей страдать над AST ночью
— Для тех, кто хочет реально понимать, как работает язык, а не просто на нём писать
👉 @bfbook
Автор: Robert Nystrom (2021)
Несмотря на то, что большинство разработчиков используют разные языки программирования каждый день, они мало что знают о том, как эти самые ЯП разрабатываются и внедряются.
Для многих единственным знакомством с этим разделом информатики был ужасающий курс «Компиляторы», который они пережили в бакалавриате и постарались вычеркнуть из памяти, как только написали на выпускном экзамене последнее преобразование из NFA в DFA.
Для кого книга?
— Для тех, кто хоть раз думал: «А что, если бы у JavaScript был нормальный синтаксис?»
— Для любителей страдать над AST ночью
— Для тех, кто хочет реально понимать, как работает язык, а не просто на нём писать
👉 @bfbook
👍6❤4😁1💩1
🚀 Стартуйте карьеру в Machine Learning с OTUS
Присоединяйтесь к курсу «Специализация Machine Learning» и начните свой путь в одной из самых востребованных областей IT!
На обучении вы освоите:
- Python с нуля до профессионального уровня.
- Работу с ML-библиотеками: pandas, numpy, sklearn.
- Глубоко поймете теорию вероятностей и математическую статистику, на основе которой построен Machine Learning
Наши преподаватели — практикующие эксперты и кандидаты наук, которые обеспечат не только качественную теорию, но и практические навыки, необходимые в реальной рабочей среде. Курс актуализируется с учетом последних технологий и тенденций рынка.
Начните карьеру в Machine Learning с OTUS! Оставьте заявку на обучение: https://vk.cc/cPBfkL
Присоединяйтесь к курсу «Специализация Machine Learning» и начните свой путь в одной из самых востребованных областей IT!
На обучении вы освоите:
- Python с нуля до профессионального уровня.
- Работу с ML-библиотеками: pandas, numpy, sklearn.
- Глубоко поймете теорию вероятностей и математическую статистику, на основе которой построен Machine Learning
Наши преподаватели — практикующие эксперты и кандидаты наук, которые обеспечат не только качественную теорию, но и практические навыки, необходимые в реальной рабочей среде. Курс актуализируется с учетом последних технологий и тенденций рынка.
Начните карьеру в Machine Learning с OTUS! Оставьте заявку на обучение: https://vk.cc/cPBfkL
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576👍4❤1
Книги для программистов pinned «Друзья, наш канал в max https://max.ru/bfbook Подписывайтесь!»
📚 Pragmatic Thinking and Learning: Refactor Your Wetware
Автор: Andy Hunt (2008)
Знаешь, как ты постоянно рефакторишь код, улучшая его? Так вот, пришло время для самого важного рефакторинга — твоего мозга.
С помощью книги от Эндрю Ханта ты научишься делать свой мозг лучшим инструментом для освоения технологий (и не только). Оказывается, мозг можно обучать с таким же подходом, как и программирование 🎯
Что тебя ждет:
-Как стать мастером в освоении новых навыков, а не застревать на уровне «сделал бы X, но не могу найти мотивацию»
-Откроешь секреты нейробиологии, которые помогут не забывать пароли через 5 минут
-Поймешь, как лучше учиться, чтобы в следующий раз не застрять на баге, который только что починил, и не потерять час на его поиск
Мы в MAX
👉 @bfbook
Автор: Andy Hunt (2008)
Знаешь, как ты постоянно рефакторишь код, улучшая его? Так вот, пришло время для самого важного рефакторинга — твоего мозга.
С помощью книги от Эндрю Ханта ты научишься делать свой мозг лучшим инструментом для освоения технологий (и не только). Оказывается, мозг можно обучать с таким же подходом, как и программирование 🎯
Что тебя ждет:
-Как стать мастером в освоении новых навыков, а не застревать на уровне «сделал бы X, но не могу найти мотивацию»
-Откроешь секреты нейробиологии, которые помогут не забывать пароли через 5 минут
-Поймешь, как лучше учиться, чтобы в следующий раз не застрять на баге, который только что починил, и не потерять час на его поиск
Мы в MAX
👉 @bfbook
👍9❤1🤡1
💎Приглашаем вас на курс Data Engineer💎
Получите актуальные навыки от преподавателей-практиков на реальном проекте.
✅ Что вы узнаете на курсе?
▪️Разворачивать, настраивать и оптимизировать инструменты обработки данных:
- Разрабатывать и оптимизировать пайплайны обработки данных
- Использовать Apache Airflow для оркестрации задач
- Обрабатывать большие данные с помощью Apache Spark
▪️Работать с базами данных и хранилищами данных:
- Строить ETL/ELT-процессы для загрузки и обработки данных
- Работать с распределёнными хранилищами (HDFS, S3) и DWH (ClickHouse)
▪️Адаптировать датасеты для дальнейшей работы и аналитики
▪️Создадите сервисы, которые используют результаты обработки больших объемов данных
▪️Применять облачные технологии
▪️Решать реальные бизнес-задачи: cтроить отчётность и дашборды, обеспечивать Data Governance
▪️Научитесь использовать на реальном проекте актуальные технологии и инструменты 2025 года для дата инженера.
❌ Чего не будет на курсе?
- Утомительных монологов — вы сможете вживую задавать свои вопросы преподавателю.
- Непосильной нагрузки и долгих изнуряющих часов занятий — курс продуман для вашего комфортного обучения.
- Неактуальной информации — курс переработан и актуален на 2025 год, убедитесь в программе курса на сайте.
- "Учёба ради учёбы" — курс разработан при поддержке крупных компаний, которые заинтересованы в новых дата инженерах!
Записывайтесь на бесплатный вебинар ⏰ 23 сентября в 18:00 мск.
🎁 Участники вебинара смогут активировать скидку 5% на курс Data Engineer по промо-коду DE_9 до 10.10.2025г.
📚На вебинаре:
• Разберём один из принципов развертывания Spark кластера в облачных провайдерах.
• Покажем Terraform конфигурации для автоматизированного развертывания кластера.
• Продемонстрируем подключение к кластеру для работы из IDE.
Оставьте заявку на сайте и наш менеджер свяжется с вами.
➡️ OTUS.RU
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Получите актуальные навыки от преподавателей-практиков на реальном проекте.
✅ Что вы узнаете на курсе?
▪️Разворачивать, настраивать и оптимизировать инструменты обработки данных:
- Разрабатывать и оптимизировать пайплайны обработки данных
- Использовать Apache Airflow для оркестрации задач
- Обрабатывать большие данные с помощью Apache Spark
▪️Работать с базами данных и хранилищами данных:
- Строить ETL/ELT-процессы для загрузки и обработки данных
- Работать с распределёнными хранилищами (HDFS, S3) и DWH (ClickHouse)
▪️Адаптировать датасеты для дальнейшей работы и аналитики
▪️Создадите сервисы, которые используют результаты обработки больших объемов данных
▪️Применять облачные технологии
▪️Решать реальные бизнес-задачи: cтроить отчётность и дашборды, обеспечивать Data Governance
▪️Научитесь использовать на реальном проекте актуальные технологии и инструменты 2025 года для дата инженера.
❌ Чего не будет на курсе?
- Утомительных монологов — вы сможете вживую задавать свои вопросы преподавателю.
- Непосильной нагрузки и долгих изнуряющих часов занятий — курс продуман для вашего комфортного обучения.
- Неактуальной информации — курс переработан и актуален на 2025 год, убедитесь в программе курса на сайте.
- "Учёба ради учёбы" — курс разработан при поддержке крупных компаний, которые заинтересованы в новых дата инженерах!
Записывайтесь на бесплатный вебинар ⏰ 23 сентября в 18:00 мск.
🎁 Участники вебинара смогут активировать скидку 5% на курс Data Engineer по промо-коду DE_9 до 10.10.2025г.
📚На вебинаре:
• Разберём один из принципов развертывания Spark кластера в облачных провайдерах.
• Покажем Terraform конфигурации для автоматизированного развертывания кластера.
• Продемонстрируем подключение к кластеру для работы из IDE.
Оставьте заявку на сайте и наш менеджер свяжется с вами.
➡️ OTUS.RU
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Forwarded from Системный Администратор Windows
👋 Всем админам доброго вечера!
Продолжаю тему теневых копий в Windows - на этот раз чисто PowerShell-практика. Теневые копии (VSS) не раз спасали меня, когда нужно быстро вернуть удалённый файл без полноценного восстановления из бэкапа. Ниже - мой минималистичный «набор выживальщика»: создать снапшот, смонтировать, вытащить файл, почистить и настроить расписание.
🚀 Базовые операции VSS через PowerShell
Создать теневую копию тома C:
Список доступных теневых копий:
Смонтировать самую свежую копию в папку (удобно лазить по снапшоту проводником):
Вытянуть конкретный файл из последней копии (без монтирования):
Удалить конкретную теневую копию:
🧠 Управление хранилищем теневых копий
Проверить и ограничить размер:
👉 Если места мало - VSS начнёт сносить самые старые копии. Планируйте «MaxSize».
⏰ Планирование ежедневного снапшота (02:00)
🔒 Безопасность и мониторинг
- Рансомварь любит грохать VSS: ищите команды вроде
Логи: включите аудит создания процессов (Sysmon Event ID 1) и подпишите правила под эти утилиты и ключевые слова в командной строке.
- Ограничьте утилиты: на рабочих станциях, где VSS админам не нужен — AppLocker/WDAC для
- Журналы VSS: заглядывайте в Application и Microsoft-Windows-Volume Shadow Copy/Operational при сбоях провайдера.
🧩 Типичные затыки и лайфхаки
- Доступа нет к путям снапшота — добавляйте
- Недостаточно места — расширьте
- Нужны «предыдущие версии» для пользователей - ставьте
👉 @win_sysadmin
Продолжаю тему теневых копий в Windows - на этот раз чисто PowerShell-практика. Теневые копии (VSS) не раз спасали меня, когда нужно быстро вернуть удалённый файл без полноценного восстановления из бэкапа. Ниже - мой минималистичный «набор выживальщика»: создать снапшот, смонтировать, вытащить файл, почистить и настроить расписание.
🚀 Базовые операции VSS через PowerShell
Создать теневую копию тома C:
# PS 5.1/7+ (через CIM)
Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create `
-Arguments @{ Volume = 'C:\'; Context = 'ClientAccessible' } | Out-Null
Список доступных теневых копий:
Get-CimInstance Win32_ShadowCopy |
Sort-Object InstallDate -Descending |
Format-Table ID, VolumeName, InstallDate, ClientAccessible, DeviceObject -Auto
Смонтировать самую свежую копию в папку (удобно лазить по снапшоту проводником):
$sh = Get-CimInstance Win32_ShadowCopy | Sort-Object InstallDate -Desc | Select-Object -First 1
$mount = 'C:\ShadowMounts\C_latest'
New-Item -ItemType Directory -Path $mount -Force | Out-Null
$dev = ($sh.DeviceObject.TrimEnd('\')) + '\'
cmd /c "mklink /d `"$mount`" `"$dev`""
# Готово: открывайте C:\ShadowMounts\C_latest
Вытянуть конкретный файл из последней копии (без монтирования):
$path = 'C:\Data\report.xlsx' # что хотим вернуть
$sh = Get-CimInstance Win32_ShadowCopy | Sort-Object InstallDate -Desc | Select-Object -First 1
$rel = $path -replace '^[A-Za-z]:\\','' # убрать "C:\"
$src = Join-Path ( ($sh.DeviceObject.TrimEnd('\')) + '\' ) $rel
Copy-Item $src $path -Force
Удалить конкретную теневую копию:
$sh | Remove-CimInstance
🧠 Управление хранилищем теневых копий
Проверить и ограничить размер:
vssadmin list shadowstorage
vssadmin resize shadowstorage /For=C: /On=C: /MaxSize=20%
👉 Если места мало - VSS начнёт сносить самые старые копии. Планируйте «MaxSize».
⏰ Планирование ежедневного снапшота (02:00)
$cmd = 'powershell.exe'
$arg = '-NoProfile -WindowStyle Hidden -Command "Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create -Arguments @{Volume=''C:\'';Context=''ClientAccessible''} | Out-Null"'
$action = New-ScheduledTaskAction -Execute $cmd -Argument $arg
$trigger = New-ScheduledTaskTrigger -Daily -At 02:00
Register-ScheduledTask -TaskName 'Daily-VSS-C' -Action $action -Trigger $trigger -RunLevel Highest
На серверах с PowerShell 7 можно заменитьpowershell.exeнаpwsh.exe.
🔒 Безопасность и мониторинг
- Рансомварь любит грохать VSS: ищите команды вроде
vssadmin delete shadows /all /quiet, wmic shadowcopy delete, diskshadow.exe.Логи: включите аудит создания процессов (Sysmon Event ID 1) и подпишите правила под эти утилиты и ключевые слова в командной строке.
- Ограничьте утилиты: на рабочих станциях, где VSS админам не нужен — AppLocker/WDAC для
vssadmin.exe, wmic.exe, diskshadow.exe.- Журналы VSS: заглядывайте в Application и Microsoft-Windows-Volume Shadow Copy/Operational при сбоях провайдера.
🧩 Типичные затыки и лайфхаки
- Доступа нет к путям снапшота — добавляйте
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN\ в исключения антивируса на время операций.- Недостаточно места — расширьте
shadowstorage или поменяйте диск-хранилище: /For=C: /On=D:.- Нужны «предыдущие версии» для пользователей - ставьте
Context='ClientAccessible' (или ClientAccessibleWriters для VSS-aware приложений).👉 @win_sysadmin
👍5❤3👎1
📚The Object-Oriented Thought Process, Fourth Edition
Автор: Matt Weisfeild (2013)
Устал писать процедуры, которые ведут себя как токсичные отношения — всё завязано на всём, а конец всегда один? Пора перейти на ООП — там хотя бы наследуется не травма, а поведение.
В этой книге:
- Почему «начни с Java» — плохой совет, если ты не знаешь, что такое инкапсуляция
- Чем интерфейс отличается от реализации
- И почему композиция — это как LEGO, а не как склеивание суперклеем,
- И как всё это внезапно работает даже в мобильных приложениях и JSON
Автор объясняет ООП без UML-ударов по голове и с упором на здравый смысл. Подойдёт тем, кто хочет понять, зачем всё это, прежде чем выбрать себе язык по душе (и зарплате).
Мы в MAX
👉 @bfbook
Автор: Matt Weisfeild (2013)
Устал писать процедуры, которые ведут себя как токсичные отношения — всё завязано на всём, а конец всегда один? Пора перейти на ООП — там хотя бы наследуется не травма, а поведение.
В этой книге:
- Почему «начни с Java» — плохой совет, если ты не знаешь, что такое инкапсуляция
- Чем интерфейс отличается от реализации
- И почему композиция — это как LEGO, а не как склеивание суперклеем,
- И как всё это внезапно работает даже в мобильных приложениях и JSON
Автор объясняет ООП без UML-ударов по голове и с упором на здравый смысл. Подойдёт тем, кто хочет понять, зачем всё это, прежде чем выбрать себе язык по душе (и зарплате).
Мы в MAX
👉 @bfbook
👍4❤2👎1
Forwarded from 1C программист
Media is too big
VIEW IN TELEGRAM
Заполнение реквизитов контрагента по ИНН в 1С
Из этого видео вы узнаете Как заполнить реквизиты контрагента по ИНН в 1С.
При работе в 1С пользователи регулярно создают новых контрагентов. Процесс заполнения реквизитов контрагента вручную может занимать много времени. Сегодня мы покажем вам как можно ускорить заполнение контрагента в 1С, используя только ИНН и данные ЕГРЮЛ (Единого Государственного Реестра Юридических Лиц).
источник
Мы в MAX
✍️ @odin1C_rus
Из этого видео вы узнаете Как заполнить реквизиты контрагента по ИНН в 1С.
При работе в 1С пользователи регулярно создают новых контрагентов. Процесс заполнения реквизитов контрагента вручную может занимать много времени. Сегодня мы покажем вам как можно ускорить заполнение контрагента в 1С, используя только ИНН и данные ЕГРЮЛ (Единого Государственного Реестра Юридических Лиц).
// <Описание функции>
//
// Параметры:
// ИНН - Тип.Строка - Строка с ИНН
// <продолжение описания параметра>
//
// Возвращаемое значение:
// <Тип.Структура> - Структура сожержит
// *ВидКонтрагента
// *КПП
// *РегистрационныйНомер
// *Наименование
// *НаименованиеПолное
// Если организация не является ИП *ЮредическийАдрес
//
// Сайт API
// https://egrul.itsoft.ru/
&НаСервереБезКонтекста
Функция ЗК_ПолучитьДанныеКонтрагентаПоИНН(ИНН)
ДанныеКонтрагента = Новый Структура;
ДанныеКонтрагента.Вставить("ИНН", ИНН);
АдресСервера = "egrul.itsoft.ru";
АдресРесурса = "/short_data/?" + ИНН;
Соеденения = Новый HTTPСоединение(АдресСервера,,,,, 30, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос(АдресРесурса);
Попытка
Ответ = Соеденения.Получить(Запрос);
Исключение
Сообщить("Не удалось получить данные по ИНН по причине: " + ОписаниеОшибки());
Возврат ДанныеКонтрагента;
КонецПопытки;
ДанныеЕГРБЛ = Неопределено;
Если Ответ.КодСостояния = 200 Тогда
СтрокаJSON = Ответ.ПолучитьТелоКакСтроку();
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
ДанныеЕГРБЛ = ПрочитатьJSON(ЧтениеJSON, Истина);
Иначе
Текст = СтрШаблон("Не удалось получать данные по ИНН...
|Код состояния: %1
|Ответ сервера: %2", Ответ.КодСостояния, СтрокаJSON);
Сообщить(Текст);
Возврат ДанныеКонтрагента;
КонецЕсли;
Если ДанныеЕГРБЛ["short_form"] <> Неопределено И ДанныеЕГРБЛ["short_form"] = "ИП" Тогда
ВидКонтрагента = Перечисления.ВидыКонтрагентовСПАРКРиски.ИндивидуальныйПредприниматель;
Иначе
ВидКонтрагента = Перечисления.ВидыКонтрагентовСПАРКРиски.ЮридическоеЛицо;
КонецЕсли;
ДанныеКонтрагента.Вставить("ВидКонтрагента" , ВидКонтрагента);
ДанныеКонтрагента.Вставить("КПП" , ДанныеЕГРБЛ["kpp"]);
ДанныеКонтрагента.Вставить("РегистрационныйНомер", ДанныеЕГРБЛ["ogrn"]);
ДанныеКонтрагента.Вставить("Наименование" , ДанныеЕГРБЛ["short_name"]);
ДанныеКонтрагента.Вставить("НаименованиеПолное" , ДанныеЕГРБЛ["full_name"]);
Если ДанныеЕГРБЛ["address"] <> Неопределено Тогда
ДанныеКонтрагента.Вставить("ЮредическийАдрес", ДанныеЕГРБЛ["address"]);
КонецЕсли;
Возврат ДанныеКонтрагента;
КонецФункции // ЗК_ПолучитьДанныеКонтрагентаПоИНН()
источник
Мы в MAX
✍️ @odin1C_rus
💩17❤5👍5😁3🤡1🤨1
📌6 книг по MySQL для старта работы и погружения в технологию
MySQL — реляционная СУБД, использующая декларативный язык программирования SQL. Она предлагает все необходимые возможности для создания баз данных и написания серверных приложений.
В нашей подборке — 6 книг по MySQL, которые будут полезны как на старте, так и для развития навыков. Рекомендуйте свои книги в комментариях!
🔹«PHP и MySQL. 25 уроков для начинающих» — В. Дронов
Для кого: Наглядное визуальное оформление и поэтапное руководство подойдет для старта в MySQL. После изучения книги «PHP и MySQL. 25 уроков для начинающих» вы сможете создать веб-сайт с «привязанной» к нему базой данных.
🔹«MySQL. Сборник рецептов» — Поль Дюбуа
Для кого: Первое и второе издание подойдут начинающим разработчикам, поскольку написаны для старой версии 4.0. После прочтения вы поймете основные принципы работы MySQL. Для программистов, свободно владеющих английским языком, можно посоветовать третью редакцию книги, в которой разбирается MySQL 5.6.
🔹«MySQL 8 для больших данных» — Ш. Чаллавала, Д. Лакхатария, Ч. Мехта, К. Патель
Для кого: Книга будет полезна для администраторов баз данных MySQL и специалистов Big Data, работающих с MySQL и Hadoop. Перед прочтением нужен хотя бы небольшой опыт работы с данной СУБД. После вы будете знать, как эффективно использовать MySQL 8 для управления Big Data.
🔹«MySQL по максимуму» — Б. Шварц, В. Ткаченко, П. Зайцев
Для кого: «MySQL по максимуму» рекомендуется новичкам и опытным разработчикам, которые хотели бы увеличить производительность своих приложений на базе MySQL.
🔹«Murach’s MySQL 3rd Edition» — Джоэл Мурах
Для кого: Книга будет полезна разработчикам приложений для повышения эффективности SQL-запросов и администраторам баз данных. После прочтения вы будете готовы к более продвинутым книгам по теме. Для изучения не нужно иметь знаний в области программирования. Однако вы быстрее освоите материал, если у вас есть некоторый опыт разработки.
🔹«Murach’s PHP and MySQL 4th Edition» — Джоэл Мурах и Рэй Харрис
Для кого: Книга полезна не только разработчикам приложений и администраторам баз данных, но и веб-разработчикам. Единственное необходимое условие для изучения книги — наличие элементарных навыков работы с HTML и CSS.
Мы в MAX
👉 @bfbook
MySQL — реляционная СУБД, использующая декларативный язык программирования SQL. Она предлагает все необходимые возможности для создания баз данных и написания серверных приложений.
В нашей подборке — 6 книг по MySQL, которые будут полезны как на старте, так и для развития навыков. Рекомендуйте свои книги в комментариях!
🔹«PHP и MySQL. 25 уроков для начинающих» — В. Дронов
Для кого: Наглядное визуальное оформление и поэтапное руководство подойдет для старта в MySQL. После изучения книги «PHP и MySQL. 25 уроков для начинающих» вы сможете создать веб-сайт с «привязанной» к нему базой данных.
🔹«MySQL. Сборник рецептов» — Поль Дюбуа
Для кого: Первое и второе издание подойдут начинающим разработчикам, поскольку написаны для старой версии 4.0. После прочтения вы поймете основные принципы работы MySQL. Для программистов, свободно владеющих английским языком, можно посоветовать третью редакцию книги, в которой разбирается MySQL 5.6.
🔹«MySQL 8 для больших данных» — Ш. Чаллавала, Д. Лакхатария, Ч. Мехта, К. Патель
Для кого: Книга будет полезна для администраторов баз данных MySQL и специалистов Big Data, работающих с MySQL и Hadoop. Перед прочтением нужен хотя бы небольшой опыт работы с данной СУБД. После вы будете знать, как эффективно использовать MySQL 8 для управления Big Data.
🔹«MySQL по максимуму» — Б. Шварц, В. Ткаченко, П. Зайцев
Для кого: «MySQL по максимуму» рекомендуется новичкам и опытным разработчикам, которые хотели бы увеличить производительность своих приложений на базе MySQL.
🔹«Murach’s MySQL 3rd Edition» — Джоэл Мурах
Для кого: Книга будет полезна разработчикам приложений для повышения эффективности SQL-запросов и администраторам баз данных. После прочтения вы будете готовы к более продвинутым книгам по теме. Для изучения не нужно иметь знаний в области программирования. Однако вы быстрее освоите материал, если у вас есть некоторый опыт разработки.
🔹«Murach’s PHP and MySQL 4th Edition» — Джоэл Мурах и Рэй Харрис
Для кого: Книга полезна не только разработчикам приложений и администраторам баз данных, но и веб-разработчикам. Единственное необходимое условие для изучения книги — наличие элементарных навыков работы с HTML и CSS.
Мы в MAX
👉 @bfbook
❤7💩5👍3