Книги для программистов
55.1K subscribers
1.36K photos
283 videos
24 files
1.23K links
Книги по программированию, библиотека электронных книг для разработчиков.


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

РКН clck.ru/3Ko9cz
Download Telegram
Автоматизация Selenium на Python

Что такое Автоматизация тестирования GUI и Selenium. 1 урок.
Импорт Selenium. 2 урок
Открытие браузера с помощью Selenium. 3 урок
Заполнение полей с помощью метода send_keys. 4 урок
Поиск локаторов. Что такое XPATH? 5 урок
Заполнение формы авторизации. 6 урок
Построение первых тестов. 7 урок
Негативное тестирование. 8 урок
Обновление страницы браузера. 9 урок
Имитация нажатия клавиш клавиатуры. 10 урок

источник

#qa #testing

Подпишись👉 @testlab_qa
👍61🤔1
Html, Css & Javascript in easy steps Special Edition
Автор: Mike McGrath (2020)

Книга в простых шагах инструктируют читателя по каждому из трех аспектов веб разработки, которые используются для создания современных веб-страниц:
✔️ Теги языка разметки гипертекста (HTML)
✔️Правила каскадных таблиц стилей (CSS)
✔️Функции JavaScript

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

Скачать книгу

👉 @bfbook
👍123
Пример реализации двухфакторной авторизации на 1С 8.3.21

&НаСервере
Процедура СозданиеШаблонаНастроекВторогоФактораАутентификации() // кнопка в обработке

ШаблонНастроек = ШаблоныНастроекВторогоФактораАутентификации.СоздатьШаблон();

ЗапросHTTP = Новый HTTPЗапрос;
ЗапросHTTP.АдресРесурса = "&host"; //в этот параметр на следующем шаге запишется адрес куда отправлять HTTP запрос
ЗапросHTTP.УстановитьТелоИзСтроки("Ваш код &secret","utf-8"); //тут можно изменить текстовку, обязательно ставим кодировку

ШаблонНастроек.HTTPЗапросНаАутентификацию = ЗапросHTTP;
ШаблонНастроек.МетодHTTPЗапросаНаАутентификацию = "POST"; //тут или GET, или POST,
//я в дальнейшем буду запрашивать пароли через POST
ШаблонНастроек.Имя = "ИмяШаблона"; //задаем имя шаблона, который используем в дальнейшем для назначения пользователю

ШаблонНастроек.Записать();

// Ставим галочку в конфигураторе у пользователя
// (Администрирование->Пользователи->ищем кому поставить) "Аутентификация токеном доступа"

КонецПроцедуры

&НаСервере
Процедура НазначениеШаблонаВторогоФактораАутентификации()

Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени("ИмяПользователя"); //ИмяПользователя - меняем на имя пользователя
НастройкаВФА = Новый НастройкаВторогоФактораАутентификации;
НастройкаВФА.ИмяШаблонаНастройки = "ИмяШаблона"; //Имя шаблона задавали на 1-ом этапе

ПараметрыНастройки = Новый Соответствие;
ПараметрыНастройки.Вставить("host","https://"127.0.0.1/otpavkod/hs/sendpass/?tel=123456789"); //Задаем адрес на который будет отправлен HTTP Запрос с кодом для авторизации
НастройкаВФА.Параметры = ПараметрыНастройки; //Задаем значение настройки

МассивНастроек = Новый Массив;
МассивНастроек.Добавить(НастройкаВФА); //задаем массив настроек, тут важно, что это массив, а значит можно указать несколько настроек аутентификации

Пользователь.НастройкиВторогоФактораАутентификации = МассивНастроек; //Устанавливаем настройки пользователю
Пользователь.ОбработкаНастроекВторогоФактораАутентификации = ТипОбработкиНастроекВторогоФактораАутентификации.ИспользоватьСледующуюПриОшибке; //что делать при некорректном вводе кода
Пользователь.Записать();

КонецПроцедуры



✍️ @odin1C_rus
💩32👍11🤡11😱1🤮1
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
👍161👏14🔥10🫡73🎉1
Web API Development with Python: A Beginner's Guide using Flask and FastAPI
Автор: Rehan Haider (2021)

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

Скачать книгу

👉 @bfbook
👍10
Media is too big
VIEW IN TELEGRAM
Как сделать Asteroids в Unity (полное руководство) 🚀🌑🌑

Научитесь создавать классическую 2D аркадную игру Asteroids в Unity. Asteroids - это аркадная игра на космическую тематику с многонаправленным шутером, разработанная Лайлом Рейнсом, Эдом Логгом и Домиником Уолшем и выпущенная в ноябре 1979 года компанией Atari, Inc. Игрок управляет одним космическим кораблем на астероидном поле, которое периодически пересекают летающие тарелки. Цель игры - стрелять и уничтожать астероиды и тарелки, не сталкиваясь ни с одним из них и не попадая под ответный огонь тарелок. Игра становится сложнее по мере увеличения количества астероидов.

0:00​ - Introduction
1:10 - Project Creation
1:57 - Scene Setup
7:42 - Player Movement
19:22 - Shooting
32:25 - Asteroid Prefab
42:06 - Spawning Asteroids
1:04:22 - Destroying Asteroids
1:16:09 - Dying & Respawning
1:34:19 - Explosion Particle Effect
1:44:31 - Scoring
1:49:17 - Game Over
1:51:33 - Outro

#gamedev

👉 @game_devv
👍7🤮3👎1
Вопрос по SQL с собеседования Airbnb

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

airbnb_search_details

id:int
price:float
property_type:varchar
room_type:varchar
amenities:varchar
accommodates:int
bathrooms:int
bed_type:varchar
cancellation_policy:varchar
cleaning_fee:bool
city:varchar
host_identity_verified:varchar
host_response_rate:varchar
host_since:datetime
neighbourhood:varchar
number_of_reviews:int
review_scores_rating:float
zipcode:int
bedrooms:int
beds:int


Ответ

SELECT city, property_type, avg(bedrooms) as n_bedrooms_avg, avg(bathrooms) as n_bathrooms_avg
FROM airbnb_search_details
GROUP BY city, property_type
ORDER BY city


#db

👉 @database_info
👍20😁10
Top 1000 Java Interview Questions: Includes Spring, Hibernate, Microservices, GIT, Maven, JSP, AWS, Cloud Computing
Автор: Knowledge Powerhouse (2017)

Сборник вопросов для подготовки к собеседованию на позицию Java разработчика

Скачать книгу

👉 @bfbook
👍10
Вопрос с собеседования Dropbox

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

db_employee

id:int
first_name:varchar
last_name:varchar
salary:int
department_id:int
db_dept

id:int
department:varchar

Ответ:

select abs(max(salary) filter (where department = 'marketing') - max(salary) filter (where department = 'engineering'))
from db_employee emp
LEFT JOIN db_dept dept on emp.department_id = dept.id


#db

👉 @database_info
👍10
Everyday Go - The Fast Track for Golang
Автор: Alex
Ellis (2021)

Это быстрый способ изучить инструменты, методы и шаблоны на основе реальных инструментов, используемых в производстве.

“Everyday Go” - представляет собой сборник практических примеров, уроков и методик для разработчиков Go. Темы охватывают жизненный цикл программного обеспечения от изучения основ до тестирования программного обеспечения, распространения и мониторинга.

Скачать книгу

👉 @bfbook
👍5
Парсинг веб-страниц с помощью C++

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

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

👉 @cpp_lib
👍6
The Art of Computer Programming, Vol. 1: Fundamental Algorithms, 3rd Edition
Автор: Donald E. Knuth (1997)

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

Скачать книгу

👉 @bfbook
👍14🔥2
Media is too big
VIEW IN TELEGRAM
Глубокое погружение в технику диспетчеризации - Джонатан Мюллер - Meeting C++ 2022
Доклад на Eng💡

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

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

Даже если вам не нужно писать интерпретатор или другой диспетчер, вы узнаете много нового об оптимизации.

источник

👉 @cpp_lib
👍52
Forwarded from Rust
Пишем на Rust расширение для SQLite, чтобы научить его работать с файлами Excel

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

Rus https://habr.com/ru/post/677418/

Eng https://sergey.khabibullin.com/sqlite-extensions-in-rust/
👍13👎2🤔1
Database System Concepts
Автор: Abraham
SilberschatzHenry F. KorthS. Sudarshan (2020)

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

Скачать книгу

👉 @bfbook
👍61
Forwarded from Реальный Python
Шпаргалка по работе с Django

Создать папку проекта
mkdir project_name
cd project_name


Создать виртуальную среду Python
python3 -m venv venv

Активировать виртуальную среду
source venv/bin/activate

Если нужно деактивировать виртуальную среду
deactivate

Install django (~= same as 3.1.*)
pip install django~=3.1.0

Новый проект django (из папки project_name)
django-admin startproject config .

Создать приложение (из папки project_name)
python manage.py startapp app_name

Миграция:
Django создает таблицу базы данных для каждой модели, представленной в вашем приложении, с помощью этих команд:

Создайте файл в app_name/migrations со структурой базы данных

python manage.py makemigrations

Миграция будет читать файлы миграции и создавать фактическую базу данных и таблицы.
python manage.py migrate

Создать суперпользователя для авторизации/админ панели
python manage.py createsuperuser

Запуск сервера
python manage.py runserver => ex. https://127.0.0.1:8000

Другие команды
# Django shell (Run projet code direclty)
~$ python manage.py shell

# example of code to run in the shell:
>>> from app_name.models import User
>>> user1 = User.objects.first()

# Prepare static folders for production
$ python manage.py collectstatic

# Take all data from app blog and export in json
python manage.py dumpdata blog >myapp.json

# Take all data in json file and import in app data table
python manage.py loaddata myapp.json


👉 @python_real
👍12🤡52🤯2
Algorithms Illuminated: Part 1: The Basics
Автор: Tim Roughgarden (2017)

Изучение алгоритмов может сделать вас лучшим программистом, более ясным мыслителем и мастером технических интервью. Данная книга - это доступное введение в предмет для любого, кто имеет хотя бы небольшой опыт программирования. В изложении подчеркивается общая картина и концептуальное понимание, а не низкоуровневая реализация и математические детали - например, расшифровка того, что сказал бы опытный преподаватель алгоритмов во время серии индивидуальных уроков. Часть 1 охватывает асимптотический анализ и нотацию big-O, алгоритмы "разделяй и властвуй" и мастер-метод, рандомизированные алгоритмы и несколько известных алгоритмов сортировки и выбора

Скачать книгу

👉 @bfbook
👍9🔥3
Principles of Web API Design : Delivering Value with APIs and Microservices (Final Release)
Автор: HigginbothamJames (2021)

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

Скачать книгу

👉 @bfbook
👍8
Media is too big
VIEW IN TELEGRAM
Создание игры Тетрис на языке C++

Ссылка на картинки

Ссылка на GitHub

источник

#cpp #programming

👉 @cpp_lib
👍111
This media is not supported in your browser
VIEW IN TELEGRAM
Dynamic-wallpaper

Простой bash-скрипт для установки обоев в зависимости от текущего времени, используя планировщик заданий cron.

Описание
25+(более) различных типов обоев (HD/UHD/4K/5K).
Добавлена поддержка pywal.
Пользователи могут добавлять свои собственные обои.
С помощью Cron обои меняются в зависимости от времени в течение дня.

Протестировано на :
Оконные менеджеры: Openbox, i3wm, bspwm, awesomewm, Fluxbox, Fvwm, Swaywm.
Окружения рабочего стола : KDE, Pantheon, Gnome, Deepin, Cinnamon, XFCE, LXDE, MATE

https://github.com/adi1090x/dynamic-wallpaper

👉 @Githublib
👍14🔥42