Получение адреса по координатам с помощью Python
Получение адреса по координатам, довольно полезная функция, которую можно использовать в различных целях. Например, вам скинули геолокацию. Можно сделать телеграм-бота, отправить ему полученные данные и в ответ получить адрес. Данный функционал можно реализовать на Python. Давайте посмотрим, как это можно сделать.
Для получения адреса по геолокации будем использовать библиотеку geopy. В ней реализованы классы для работы с сервисами геокодирования, такими как OpenStreetMap Nominatim, Google Geocoding API (V3) и многими другими. В нашем коде мы будем использовать OpenStreetMap, так как его использование бесплатно и не требует получения дополнительных ключей.
Установка библиотеки
Для установки библиотеки пишем в терминале команду:
pip install geopy
Импорт модулей в скрипт
После того, как библиотека будет установлена, необходимо импортировать модули для работы с ней в скрипт. Пишем следующий код:
Получаем адрес по координатам. Обратное геокодирование
Создадим функцию get_addr(location: list) -> str, которая на входе получаем широту и долготу в виде списка, а возвращает адрес в виде строки. В случае ошибки будет возвращен текст «Unknown».
После этого инициализируем класс Nominatim и передаем в него user_agent. Здесь использование какого-то специализированного агента не принципиально и можно просто передать «GetLoc». Если мы заглянем в параметры данного класса, то увидим, что в него, кроме user_agent можно передать таймаут, прокси и еще множество других параметров, которые в данном случае не принципиальны.
Обратимся к инициализированному классу и его методу reverse, в который передадим координаты в виде списка с широтой и долготой. В ответ мы получим адрес, который и возвратим из функции, обратившись к методу address.
Запрос координат у пользователя. Вывод полученного адреса в терминал
Создадим функцию main(), в которой будем запрашивать широту и долготу у пользователя. После передадим их в функцию get_addr и выведем полученный результат в терминал. Здесь необходимо немного обработать полученные данные, так как они возвращаются в обратном порядке, начиная с номера дома и заканчивая страной. Поэтому, добавлена обратная сортировка, разбиение строки по запятой в список и обратное его объединение.
Тестирование функции
Протестируем написанный код. Возьмем произвольные координаты объекта с Яндекс.Карты и введем в запросе скрипта. В ответе мы видим полученный адрес, который совпадает с тем, что указан на Картах.
Итог:
Как видим, с помощью использования сторонней библиотеки получить адрес по координатам не такая уж сложная задача. К слову, возникновение исключений, когда адрес не был найден, происходит достаточно редко. В большинстве случаев все отрабатывает корректно.
Хранимая XSS — самый опасный тип межсайтового скриптинга
Атака возникает, когда веб-приложение сохраняет вредоносный пользовательский ввод в хранилище для последующего использования.
Как следствие, вредоносные данные будут казаться частью веб-сайта и выполняться в браузере пользователя с правами веб-приложения.
Хранимая XSS не требует использования вредоносной ссылки. Успешная эксплуатация происходит, когда пользователь посещает страницу. Вот несколько кейсов, которые относятся к типичной атаке:
🔸Злоумышленник сохраняет вредоносный код на уязвимой странице
🔸Пользователь авторизуется в приложении
🔸Пользователь посещает уязвимую страницу
🔸Вредоносный код выполняется браузером пользователя
📌 Что именно проверять в приложении на наличие хранимой XSS?
1️⃣ Формы ввода
2️⃣ Функционал загрузки файлов
3️⃣ HTML-код страницы
📌 Что по инструментам?
BeEF — один из самых распространенных фреймворков для пост-эксплуатации атак, связанных с хранимой XSS.
Ответ на пост «Новый плагин Code Interpreter в ChatGPT-4!Примеры и сборник промптов»
Как же это все-таки напоминает общение с джуном.
Новый плагин Code Interpreter в ChatGPT-4!Примеры и сборник промптов
Интерпретатор позволяет запускать код Python прямо в боте, что дает возможность загружать и анализировать файлы и генерировать таблицы, графики, редактировать фото
Для чего можно использовать новую функцию:
Анализ больших данных, в том числе и финансовых
Визуализация данных (графики, гистограммы)
Конвертация файлов
Анализ и улучшение кода
Обработка изображений и видео
Список промптов для Code Interpreter в pdf можно скачать здесь
Реальные примеры
Для примера я скачала с Kaggle Полный ассортимент продукции Farfetch и с помощью интерпретатора кода узнала какой самый ходовой товар, был ли он на скидке и тд. Так же, я скачала инфу о стоимости акций Microsoft с 1986 по 2023 годы, извлекла данные, построила графики и позадавала вопросы по файлу. Из данных попросила написать пост в телеграмм - и он успешно справился.
Так же, я обработала фото и сделала надпись на фото прямо в ChatGPT. Более того, я попросила создать QR- код для моего телеграмм канала.
Что не получилось:
У меня не получилось: загрузить файл pdf и перевести его сразу на русский язык, не получилось прочитать вордовский документ и не получилось сделать из моего видео GIF
Хотите узнавать первыми о полезных сервисах с искусственным интеллектом для работы, учебы и облегчения жизни? Подпиcывайтесь на мой телеграм канал НейроProfit, там я рассказываю, как можно использовать нейросети для бизнеса.
Использование протокола Outline VPN: достоинства и недостатки
Outline VPN использует протокол Shadowsocks для обмена данными между клиентом и сервером.
Особенности протокола
- Shadowsocks обладает быстрой и легкой производительностью за счет использования простых методов шифрования, которые не влияют на скорость соединения.
- Shadowsocks предоставляет гибкие настройки, такие как выбор алгоритмов шифрования, портов и протоколов, которые можно настроить в зависимости от потребностей пользователя.
- Shadowsocks обеспечивает высокую незаметность и устойчивость благодаря маскировке своего трафика, который похож на обычный HTTPS-трафик, затрудняющий обнаружение или блокирование методами сетевой безопасности.
- Shadowsocks является открытым и сообщественным инструментом, обладающим большим и активным сообществом разработчиков.
Достоинства
1. Легкость использования: Outline VPN не требует от пользователей сложных настроек и технических знаний для создания и запуска собственного VPN-сервера. Он поддерживает Windows, macOS и Linux, а Outline Client доступен для Windows, macOS, Linux, ChromeOS, Android и iOS.
2. Безопасность и конфиденциальность: Outline VPN обеспечивает высокий уровень безопасности и конфиденциальности, шифруя и аутентифицируя трафик пользователей с помощью современных алгоритмов. Его не интересует журнал трафика пользователей или личные данные.
3. Экономия ресурсов: С помощью Outline VPN пользователи могут экономить денежные и ресурсные средства, выбирая местоположение и провайдера своего VPN-сервера и используя самостоятельный хостинг или облачные сервисы, такие как DigitalOcean, Rackspace, Google Cloud Platform и Amazon EC2.
4. Гибкость использования: Outline VPN позволяет пользователям легко делиться доступом к своему VPN-серверу с возможностью создания уникальных ключей доступа и их отправки через электронную почту или социальные сети. Он также масштабируем и гибкий с возможностью поддержки сотен пользователей или простого деления доступа со своими близкими контактами.
Недостатки
1. Анонимность не полна: Использование Outline VPN не скрывает от провайдера интернет-услуг того факта, что пользователь использует VPN-сервер. Это может привести к блокировке или ограничению доступа к VPN-серверу со стороны провайдера или правительства. Кроме того, для увеличения анонимности пользователя, Outline VPN не поддерживает Tor или другие средства.
2. Доступность не гарантирована: Работоспособность Outline VPN зависит от доступности и качества VPN-сервера, который может подвергаться сбоям, атакам или перегрузкам. Если VPN-сервер недоступен или работает медленно, подключение к интернету через Outline VPN невозможно. Пользователи должны следить за обновлениями и безопасностью своего VPN-сервера самостоятельно.
3. Эффективность может быть ущербной: Выбор определенных стран для использования Outline VPN может стать невозможным из-за блокировок или ограничений протокола Shadowsocks. Например, в Китае правительство активно борется с использованием VPN-сервисов и использует различные методы для обнаружения и блокировки трафика Shadowsocks. Решение изменять настройки VPN-сервера или клиента, чтобы обойти эти ограничения, может быть сложным и сопряженным с рисками.
Для устранения этих недостатков и улучшения протокола Outline VPN можно предложить следующие решения и предложения:
Клавиатурный КПК Psion Series 3 — детальный обзор в домашних условиях
Автор: MaFrance351
Оригинальный материал
Дополнительные фото, ссылки, а также информация по КПК в источнике материала. Всё попросту не влезло :(
Что вы в первую очередь представляете себе при упоминании компании Psion? Series 5mx? Revo? Series 3? Organiser? Какую-то ретро-экзотику типа Netbook, MC, HC или Workabout? Или, может, вы думаете о начале эпохи Symbian?
Чтобы то ни было, все мы знаем, насколько интересные и во многом уникальные устройства производились данной компанией.
Итак, в сегодняшней статье рассмотрим один из таких девайсов — Psion Series 3. Узнаем, что он может и для чего может пригодиться.
❯ Суть такова
Чем же так примечателен Psion Series 3? Сложно сказать. Первым клавиатурным КПК он явно не является, тот же Atari Portfolio куда старше. Первым устройством на ОС SIBO/EPOC16 — тоже, на момент появления данного устройства уже существовали те же Psion MC под управлением той же ОС. Про популярность тоже не всё так однозначно — Series 5 встречался куда чаще (впрочем, ныне обе модели являются редкостью и при появлении на вторичке обычно быстро выкупаются). Скорее, дело тут именно в его операционной системе, конструкции, качестве сборки, удобстве использования. В том, за что Psion и получила столько любителей.
Небольшой обзор Psion 3 был на MyPsion.ru, однако там много неточностей (например, сказано, что третий Psion, внезапно, является последователем на деле вышедшей пятью годами позже Siena).
❯ Немного истории
Series 3 в линейке КПК Psion является последователем Organiser и Organiser II. В отличие от них, данный экземпляр работает на базе ОС EPOC16 и оснащён системой на чипе на базе процессора с архитектурой X86. Аппарат появился в далёком 1991 году и является первым девайсом Psion в таком форм-факторе. Экземпляр пользовался большим успехом, о чём говорит то, что выпускался он на протяжении семи лет, в ходе которых было выпущено несколько модификаций данной модели. Производство было свёрнуто лишь после выхода пятой версии с ARM-процессором и ОС EPOC32.
Также существовал Acorn PocketBook — по сути тот же Psion 3, но с несколько изменённым набором штатных приложений, предлагавшийся для образовательных целей. Приложения, периферия и модули памяти Psion и Acorn были совместимы между собой.
На волне успеха третьей серии был выпущен Siena, представляющий собой несколько усечённую версию модели 3c (как Psion Revo были таким же дешёвым аналогом пятой серии). В нём не было микрофона, а также использовались другая матрица клавиатуры, дисплей меньшего разрешения и более слабый процессор.
Дольше всех продержались промышленные образцы: Workabout выпускался вплоть до начала нулевых и стал последним производившимся устройством на базе SIBO (EPOC16), получив огромное количество модификаций: разные порты, разные типы сканеров, разные способы подключения. На базе ОС EPOC32 (как и на Symbian) терминалов сбора данных не выпускалось, в дальнейшем Psion PLC в своих устройствах Workabout Pro перешла на обычную Windows CE.
❯ Обзор оборудования
Итак, рассмотрим поподробнее наш аппарат.
Устройство сделано из очень качественного и приятного на ощупь пластика. Практически ничего не люфтит и не поскрипывает, что, разумеется, не может не радовать. В сложенном виде девайс достаточно легко влезает даже в карман джинсов и по размеру напоминает powerbank средней ёмкости или типичный электронный органайзер девяностых. Аппарат в меру тяжёлый, при встряхивании ничего не гремит и не болтается, за столько лет пластик практически целиком сохранил былую прочность. Аппарат очень компактный, на КДПВ HP 620LX по сравнению с ним кажется нетбуком.
С обратной стороны спикер, по его периметру наклейка с серийным номером. По бокам две крышки для установки модулей памяти (Psion SSD). Сверху крышка батарейного отсека.
Аппарат со всеми открытыми крышками. Боковые сделаны необычно — они не снимаются, а поворачиваются. Из-за этого риск случайной их потери куда меньше (но их всё так же можно сдуру отломать). Под одной из крышек находится отсек для бэкап-батарейки, поддерживающей память во время смены основных элементов питания или же при их разрядке. Видна так же пломба, из-за которой не захотел его разбирать.
Батарейный отсек. Виден единственный дефект корпуса — отломился кусочек пластмассы. То ли это последствия неаккуратности предыдущего владельца, то ли пластик таки дал слабину. Нагрузка на эту пластмассовую перемычку достаточно большая, так как контактные пружины в батарейном отсеке весьма мощные. Возможно, лучшим конструктивным решением было бы слегка уменьшить размер батарейного отсека, чтобы элементы питания соприкасались непосредственно между собой, а не через контактную пластину.
Слева разъём для подключения проприетарного кабеля 3Link. Увы, рабочий его вариант найти мне так и не удалось. Почему это так печально и почему его нельзя спаять самому, расскажу чуть позже. К слову говоря, в разъёме штырьки, а не гнёзда: при вставке коннектора пластиковая часть сдвигается вглубь.
Справа разъём для подключения внешнего блока питания с разъёмом 4,0*1,7 мм. Если бы не «инверсная» полярность (центральный контакт — «минус») и не напряжение в девять вольт, сюда бы идеально подошёл блок питания от типичного КПК на Windows Mobile или от Sony PSP.
Откроем крышку. На ней у нас находится ЖКИ с разрешением 240*80, справа несколько надписей о преимуществах данного аппарата. Под дисплеем панелька с плёночными псевдосенсорными кнопками быстрого запуска. Ещё чуть ниже клавиатура. Конечно, верхом удобства она не является: «калькуляторные» кнопочки далеки от клавиш того же Series 5, но всё же. На цифровые клавиши назначено сразу по два символа — один печатается при помощи Shift, второй — при помощи специальной клавиши с логотипом Psion. Рядом с кнопкой Esc небольшое отверстие кнопки перезагрузки, для Hard Reset необходимо нажать её, удерживая правый Shift.
Конструкция корпуса весьма интересная — при закрытии крышки панель с кнопками складывается. Это хорошо видно в одном из промежуточных положений. Решение красивое, но не самое надёжное. немало девайсов отправились на покой по причине сломанных петель или перегнувшегося шлейфа (хотя в экранном шлейфе всего шестнадцать жил, так что в случае перегиба его можно будет попробовать заменить даже на жгут из тонкого МГТФ).
Сбоку в разложенном виде КПК напоминает телефоны-раскладушки — точно так же нет промежуточных положений, да и корпус чем-то похож.
Модуль памяти. Представляет собой блок с неким проприетарным интерфейсом. Помимо Flash, были SSD на базе RAM (с батарейкой внутри) и ROM (с коробочными версиями софта для Psion).
❯ Характеристики
Аппарат работает на базе проприетарного чипа NEC, основанного на процессоре NEC V30H архитектуры X86. Частота его составляет 7,68 МГц. Аппарат имеет двести пятьдесят шесть килобайт оперативной памяти, служащие одновременно в качестве ОЗУ и RAM-диска. Экран чёрно-белый, не оснащён ни подсветкой, ни сенсором. Беспроводных интерфейсов также нет, даже ИК-порта.
В дальнейшем было выпущено несколько модификаций оригинальной модели: 3a с увеличенным разрешением экрана, более мощным процессором и микрофоном, 3c с подсветкой, ИК-портом и доработанным последовательным интерфейсом, 3mx с ещё более мощным процессором и более быстрой связью по RS-232. Был также Psion 3aR, представлявший собой 3a со вшитым в память русификатором.
❯ Питание
КПК питается от двух батареек типа AA. Я замерил его потребление: в рабочем режиме — 55 мА, при погашенном экране — 0,4 мА. При средней ёмкости «пальчиковых» батареек в 1500 мА*ч это даёт примерно сутки непрерывной работы и многомесячное лежание в ящике. При типичном использовании батареек хватало где-то на месяц.
Разумеется, подключение периферии влияет на потребление, хоть и незначительно. А вот передача данных расходует заряд куда сильнее, в руководстве по программированию даже были рекомендации подключать внешнее питание для «девелоперского» устройства: при постоянно поднятом соединении батарейки садились достаточно быстро.
❯ Про внутренности
Разбирать свой аппарат не стал: он на пломбе, которую мне не хотелось отрывать. Фото внутренностей Series 3 я, увы, не нашёл.
А вот видео с разборкой Series 3a. Видна и частая проблема таких девайсов в виде треснувших петель.
❯ Запуск
Ну что же, с аппаратной частью разобрались. Пробуем запускать.
Вставляем батарейки и жмём «ON», после чего девайс выводит заставку Psion и в течение нескольких секунд запускается.
Разумеется, батарейка давно села, отчего память стёрлась. Часы по умолчанию установлены на третье сентября 1991 года.
Зышщт третьей версии работает под управлением SIBO (Sixteen Bit Organizer, также встречается Sixteen Bit OS), она же EPOC16. ОС эта на тот момент не была чем-то инновационным, однако для органайзера она была просто идеальна. Крайне низкие системные требования, стабильность, простота в использовании — всё, что так надо для карманного устройства.
❯ EPOC16
Тому, кто до этого не сталкивался с такими машинками, отсутствие сенсорного экрана может показаться непривычным (в особенности, если у него уже был клавиатурный КПК на базе Windows CE или EPOC32). Но всё это быстро проходит, стоит только взять аппарат в руки: управляется он чрезвычайно удобно. Отзывчивость находится где-то на уровне приложений MS-DOS или Mac OS эпохи MC68000.
ОС встречает нас главным экраном. При этом названия запущенных приложений выделены жирным. Чтобы закрыть приложение, необходимо навести указатель на его иконку и нажать Delete. Нажатие кнопки System на панели быстрого запуска с зажатой клавишей Shift выполняет роль Alt+Tab на десктопных машинах.
Первое приложение — Data, адресная книга, она же база данных. Собственно, одно из самых главных приложений для электронного органайзера.
Примерно так могла когда-то выглядеть заполненная запись (разумеется, данные указаны чисто для примера).
Здесь также есть интересная возможность набора номера прямо с КПК. Для этого жмём на клавиатуре Psion+Help, а в открывшемся окне — Tab. После этого надо снять трубку с телефона и приложить спикер КПК к микрофону. Разумеется, работать это будет, только если АТС поддерживает тоновый набор.
Также можно набрать номер и вручную.
Мировое время. Родного Челябинска в базе почему-то нет (равно как и Екатеринбурга, Питера. Новосибирска), из российских городов есть только Москва.
За тридцать лет много чего случилось в этом мире. Но старому КПК с его прошивкой, записанной в однократно программируемую ПЗУшку, дела до этого нет…
А вот и простые часы. Поддерживается установка до четырёх будильников, ниже указано наше «домашнее» местоположение, в качестве которого по умолчанию стоит Вашингтон.
Текстовый редактор, как же без него.
Это не просто местный аналог EDIT.COM или «Блокнота», тут есть даже некоторая поддержка стилей текста.
Календарь, он же ежедневник. Он тут примерно такой же, как и в большинстве КПК того времени. Диапазон дат здесь ограничен диапазоном доступного к установке системного времени — от первого января 1980 до тридцать первого декабря 2049. Для интересующихся, что же будет после этого дня: часы продолжают идти, дата отображается, а вот календарь больше не работает, пишет при запуске «Out of range»…
Калькулятор. Он тут повторяет печатающие модели, ведя журнал операций. Но на этом его сходство с банковским собратом заканчивается. Есть тригонометрия, степени, логарифмы и антилогарифмы, поддерживается даже выполнение программ на языке OPL.
❯ 3Link и SSD
Psion в какой-то степени похож на Apple примерно тех же годов. Всё такое же красивое, эпичное, удобное в использовании и… проприетарное. И это касается как модулей памяти, так и кабеля для подключения к компьютеру. Всё это добро оказалось чрезвычайно редким. Возможно, это из-за того, что в комплекте с машинкой данных причиндалов не поставлялось.
Чтобы подключить КПК к компьютеру, было необходимо купить кабель 3Link (фото с eBay) и ПО PsiWin (ну, или PsiMac).
В чём же сложность подключения Psion 3 к компьютеру при отсутствии кабеля? Ведь кажется, что всё просто: спаяй кабель, воткни его в машинку, и будет счастье. Ан нет. Почему же так?
Давайте разбираться.
Есть такой документ как SIBO HDK, он же Hardware Development Kit. Что же там говорят по поводу внешних интерфейсов? Наружу выведен отнюдь не RS-232 или что-то подобное, а некий «SIBO Serial Channel», имеющий линии DATA и CLK. Внутри этой коробочки на кабеле 3Link находится какой-то заказной чип (в документации именуемый «ASIC-5»), позволяющий преобразовывать эти сигналы в стандартный последовательный RS-232 или параллельный IEEE-1284 (да, существовал специальный адаптер для подключения КПК к принтеру). Помимо всего прочего 3Link содержит в себе ПЗУшку с какой-то прошивкой, позволяющей определяться этой схеме именно как «Remote link». Как вы, наверное, уже поняли, SSD тоже основан на проприетарных чипах. Так что увы, так просто собрать это не выйдет. Никаких проектов реплики SSD или кабеля я не нашёл. Некоторые изыскания проводились в рамках проекта The Last Psion, но направлен он больше на считывание информации с модулей памяти, а не на их эмуляцию.
Кстати, в итоге система эта потерпела сокрушительный провал, связанный с тем, что Psion банально не смогла заказать нужное количество чипов, чтобы продавать их разработчикам периферии. В версии 3c интерфейс 3Link был заменён на нормальный RS-232. Hardware Development Kit навсегда ушёл в историю, оставив на память лишь PDFку с документацией и кучку проприетарных микросхем в уцелевших кабелях и SSD.
Возможно, если раздобыть оригинальный 3Link и потыкать логическим анализатором, можно собрать реплику такого девайса на базе какого-нибудь МК, как это было сделано для Psion Organiser. Но, сдаётся мне, не всё так просто…
❯ Ну так что же?
Безусловно, Series 3 оказался крайне интересным экземпляром. Увы, при отсутствии кабеля и модулей памяти использовать его получится только как электронный органайзер. Тем не менее, девайс привлекает как операционной системой (на тот момент крайне функциональной даже при стандартном наборе приложений), так и аппаратными решениями (зачастую крайне неоднозначными).
Такие дела.
Другие мои статьи на тему EPOC16
Программирование под SIBO (EPOC16) в наши дни — где найти SIBO C SDK и как собрать простейшую программу с его помощью
Подпишись на наш блог, чтобы не пропустить новые интересные посты!
Обзор книги "Data Science. Наука о данных с нуля", отличная книга для начинающих
Всем доброго времени суток! Так как о Data Science мы слышим всё чаще и чаще, предлагаю вам обзор книги, что будет полезна для начинающих.
Публикую обзор книги с моего телеграмм-канала IT-старт t.me/it_begin на книгу "Data Science.Наука о данных для начинающих".
Автор книги Джоэл Грас.
Стоит читать? Да! Почему? Опишу в статье.
Для кого эта книга?
Так как в названии фигурирует "Наука о данных с нуля" - не мудрено, что рассчитана она на тех, кто только начинает свой путь в Data Science :)
Рис.1. Начальная страница
Что в самой книге?
Книга сама по себе немаленькая и состоит из 416 страниц.
Для того, чтобы имелась конкретика по размерам книги, производим замеры.
Ширина книги составляет чуть менее 17 см.
Рис.1.2. Размер книги
Высота книги составляет 23 см.
Рис.1.3. Размер книги
Глубина книги составляет около 2 см.
Теперь, для предметного и краткого понимания того, с чем мы сможем ознакомиться в данной книге, предлагаю перейти к её оглавлению.
Рис.1.4. Оглавление
Рис.1.5. Оглавление
Рис.1.6. Оглавление
Рис.1.7. Оглавление
Глав достаточно много, это радует) Всего глав 27.
Далее предметно и главное кратко постараюсь рассказать о том, что полезного и интересного мы сможем найти в этой книге.
Глава 1. Введение
Рис.2. Глава 1
Первая вводная глава начинается с подробного описания тезиса "Воцарение данных" и ответа на вопрос "Что такое наука о данных?".
Здесь повествуется о том, насколько много данных в современном мире и том, что вся информация, что собирается нашими компьютерами, смартфонами, умными часами, при должной обработке, может дать ответы на бессчисленные вопросы.
Более всего понравился пример на странице 26 с Facebook, что думаю примененим ко многим плоскостям исследования, используя практические любые соц. сети.
Также хорошо подчеркнут опыт избирательной компании Барака Обамы в 2012 году и предвыборной компании Дональда Трампа. Предлагаю вам ознакомиться с данным отрывком.
Рис.2.1. Глава 1, страница 26
Глава 2. Интенсивный курс языка Python
Рис.3. Глава 2
В данной главе автор на протяжении 30 страниц крайне в сжатом формате старается познакомить нас с языком программирования Python.
По моему мнению, вследствие того, что объяснение крайне поверхностное и имеет ограничение в виде 30 страниц, объяснено всё плохо. Для тех, кто вовсе не имел опыта работы с Python, данная глава, к сожалению, вряд ли поможет.
Как бы, претензий к книги по данному поводу у меня нет, но хотел бы, чтобы вы заранее имели это ввиду, что эта глава не является карманным пособием по Python.
Если вам необходимо изучить основы Python, советую книгу Тони Гэддиса "Начинаем программировать на Python с нуля" - мой обзор
Рис.3.1. Глава 2
В конце данной главы на странице 69мы видим две особенности книги.
Первая особенность - в конце каждой последующей главы вы увидите полезную сноску под названием "Для дальнейшего изучения", где автор от себя советует, что можно прочитать дополнительно для более глубокого изучения той или иной темы. Считаю это положительным моментом.
Отрицательным моментом качества данной книги являются тонкие страницы, что просвечивают и не доставляют особого удовольствия от этого.
Не сказал бы, что это крайне критично, но и приятного в этом также мало, общее впечательние от книги немного портится.
Всё крайне показательно видно на фото выше.
Глава 3. Визуализация данных
Рис.4. Глава 3
Также яркий пример просвечивающих страниц это столбчатый график, что просвечивает на странице 71)
В третьей главе автор кратко рассматривает библиотеку matplotlib,
В самом начале автор подчеркиват, что считает данную библиотеку устаревающей и что она годна для построения элементарных линейных и столбчатых графиков.
Согласиться с этим или нет? Вопрос сложный и оставлю его открытым на суд аудитории. Интересно ваше мнение по этому вопросу.
Далее в книге рассматриваются столбчатые и линейные графики, диаграммы рассеяния. Что порадовало, это повествование с соответствующим кодом, тут же можно понять, какая строчка кода за что отвечает, считаю это положительным моментом для тех, кто только начинает свой путь.
Завершается глава разделом "Для дальнейшего изучения", где автор оставляет ссылки на такие библиотеки, как seaborn, Altair, D3.js, Bokeh с кратким описанием каждой из них.
Глава 4. Линейная алгебра
Рис.5. Глава 4
В этой главе автор рассматривает векторы и матрицы.
Объяснено достаточно хорошо, вопросов после прочтения остается мало, в конце автор оставляет ссылки на три книги, что также позволят закрепить пройденный материал.
Глава 5. Статистика
Рис.6. Глава 5
В данной главе автор описывает и рассказывает о том, что такое тенденции, вариация, корреляция, корреляционные ловушки.
В главе много кода, подробно всё описание, в целом впечатление от главы положительное.
Но также показалось интересным и хорошо запомнилось описание парадокса Симпсона :)
Рис.6.1. Глава 5. Парадокс Симпсона
Глава 6. Вероятность
Рис.5. Глава 6
В этой главе рассмотрены:
Условная вероятность
Теорема Байеса
Случайные величины
Непрерывные распределения
Нормальное распределение
Центральная предельная теорема
Автор раскрывает важность умения работать с анализом вероятности для последующей работы с данными. Вероятность автор рассматривает, как способ количественной оценки неопределенности, что ассоциируется с событиями из некоторого вероятностного пространства.
Глава 7. Гипотеза и вывод
Рис.6. Глава 7
Хотел бы привести в пример "учаток" на странице 116, в подтверждение того, что без опечаток в этой книге не обошлось)
Теперь же о самой главе.
В данной главе автор подчеркивает, что все сведения из теории вероятности и статистики нам нужны для формулирования статистических гипотез и их последующей проверки. Предлагаю взглянуть на фрагмент главы в фото ниже.
Рис.7. Глава 7
Глава 8. Градиентный спуск
Рис.8. Глава 8
Градиент - это вектор, что своим направлением указывает направления возрастания некоторой скалярной величины.
Антиградиент - вектор, что своим направлением показывает направление убывает некоторой скалярной величины.
Градиентный спуск - это метод поиска локального максимума или минимума функции с помощью движения вдоль градиента.
Частично и достаточно понятно подход к максимизации функции описан на странице 128. (Рис. 8)
Глава более чем интересная, рассматривается также использование градиента, выбор правильного размера шага и применение градиентного спуска для подгонки моделей.
Глава 9. Получение данных
Рис.9. Глава 9
Для того, чтобы исследовать данные, нужно сначала их собрать :)
В этой главе автор рассматривает способы подачи данных и также их последующее форматирование.
В главе рассматриваются аспекты чтения файлов, импорт информации из всемирной паутины с помощью html5lib, что такое API и как с этим можно работать.
Глава 10. Работа с данными
Рис.10. Глава 10
В 10 главе автор рассматривает непосредственную работу с данными.
Рассматривается разведывательный анализ данных, классы данных, многочисленные размерности.
Мне же понравилось, что автор не забыл про "чистоту" данных.
На странице 164 об этом как раз таки говорится, что многие данные в реальном мире загрязнены и что важно пред их использованием проводить необходимую обработку, чтобы в дальнейшем не создать себе проблем.
Рис.11. Глава 10
Глава 11. Машинное обучение
Рис.12 Глава 11
В 11 главе автор знакомит нас с машинным обучением.
Так как это обзор книги и он всё же будет немного предвзят с моей стороны по той причине, что у каждого человека есть своё мнение на ту или иную информацию - мне показалась данная глава не для тех, кто начинает с нуля)
Описано в целом по делу всё, но нет уверенности, что люди, ранее не знающие ничего о машинном обучении, после прочтения данной главы всё усвоят.
Глава 12. k ближайших соседей
Метод k-ближайших соседей – это популярный алгоритм классификации, который используется в разных типах задач машинного обучения.
Простыми словами суть метода: посмотри на соседей вокруг, какие из них преобладают, таковым ты и являешься.
Теперь же о том, как всё это описывает автор на примере предсказания результатов на выборах
Глава 12. k ближайших соседей
Метод k-ближайших соседей – это популярный алгоритм классификации, который используется в разных типах задач машинного обучения.
Простыми словами суть метода: посмотри на соседей вокруг, какие из них преобладают, таковым ты и являешься.
Теперь же о том, как всё это описывает автор на примере предсказания результатов на выборах
На примере набора данных о цветках ириса (длина и ширина лепестка, длина и ширина чашелистика) автор пытается построить модель предсказания вида цветка, но т.к. выводимые результаты у него получились четырехмерными, что затрудняет построение графика, автор предлагает взглянуть на диаграммы рассеяния для каждой пары данных результатов измерений.
Порадовало, что в данной главе автор не забыл о проклятии размерности
Глава 13. Наивный Байес
В данной главе автором очень хорошо рассказан принцип работы спам-фильтра социальных систем, как он устроен и что лежит в его основе.
Порадовало то, что в конце данной главы автор ссылается на статью Пола Грэма "План для спама". Статья 2002 г., но менее интересной от этого не становится.
Глава 14. Простая линейная регрессия
В 14 главе автор рассказывает о простой линейной регрессии, описывает применение градиентного спуска, производит оценивание максимального правдоподобия
Глава 15. Множественная регрессия
В данной главе автором рассматривается множественная регрессия, Расширенные допущения модели наименьших квадратов, подгонка модели и её дальнейшая интерпретация.
Глава достаточно большая и много познавательной информации имеет, но мне более всего понравилась трактовка интерпретации моделей
Глава 16. Логическая регрессия
Логистическая регрессия - статистический метод для анализа набора данных, в котором есть одна или несколько независимых переменных, которые определяют результат. Результат измеряется с помощью дихотомической переменной (в которой есть только два возможных результата). Он используется для прогнозирования двоичного результата (1/0, Да / Нет, Истина / Ложь) с учетом набора независимых переменных.
С самого начала главы автор предлагает рассмотреть всё на задаче, что содержит набор данных 200 пользователей, их зарплату, опыт работы и состояние платежей за учетную запись в соц. сетях. Далее описывается то, что такое логистическая функция, применение модели.
Более всего понравилось рассмотрение гиперплоскости, что разделяет параметрическое пространство
Идём далее)
Глава 17. Деревья решений
Одно из толкований дерева решений чаще всего описывает их в качестве представления возможных путей принятия решений.
Автором неплохо показано это на достаточно простом примере.
Глава 18. Нейронные сети
Нейронные сети - то о чём мы всё чаще слышим из средств массовой информации.
В данной книге глава это мягко не особо большая. Всего 10 страниц. Но достаточно информативная. Расскажет о том, что такое нейронные сети, перспептроны, как работают нейронные сети прямого и обратного распространения. Глава интересная!
Глава 19. Глубокое обучение
В данной главе о глубоком обучении автор рассказывает нам, что такое абстракция слоя, о представлении нейронных сетей как последовательности слоёв, о потери и оптимизации функции градиента.
Возможно субъективно, но чтобы до конца понять все вещи в данной главе, пришлось прочитать её дважды. Но думаю, дело не в книге, а во мне :)
Глава 20. Кластеризация
В главе о кластеризации понравилось, что автор пытается объяснить нам, что такое кластеры на +- понятных многим бытовых темах. Если читать ранее не слышал ничего о кластерах, подобное объяснение не является крайне легким, но и базовые основы в голове начнет зарождать. В главе автор рассматривает и описывает восходящую иерархическую кластеризацию, кластерные методы и на примерах объясняет что к чему. Интересная глава.
Глава 21. Обработка естественного языка
В главе об обработке естественного языка автор рассказывает несколько приемов, такие как: облако слов, N-грамматические языковые модели, грамматики. Много поясняющего кода)
Глава 22. Сетевой анализ
В главе про сетевой анализ автор описывает центральность, ориентированные графы, алгоритм PageRank. Мне данная глава "понималась" крайне тяжело, вследствие чего параллельно приходилось заглядывать в Google.
Глава 23. Рекомендательные системы
Та тема, с которой мы ежедневно встречаемся, используя те или иные стриминговые сервисы, соц. сети, поисковые системы - рекомендации :)
Сказали рядом с телефоном "купил собаку" и видите контекстную рекламу о дизайнерских будках на заказ? Это Data Science :)
Глава познавательная. Автор повествует о том, как работает рекомендательная система, что лежит в её основе, что такое коллаборативная фильтрация по схожесте пользователей и многое другое.
Глава 24. Базы данных и SQL
Достаточно сжатая глава о SQL. Рассказывается о том, что такое SQL, о основных командах и разобрано всё на примерах. Всё крайне сжато, но для общего представления совсем неплохо. Но всё же советовал бы дополнительно поискать еще источники информации на тему SQL, если хотите понять тему полноценно.
Глава 25. Алгоритм MapReduce
MapReduce - модель для выполнения параллельной обработки крупных наборов данных. Рассматривается работа самого алгоритма, какие его преимущества и чем он может быть полезен и рассмотренно на примере аналази аобновлений новостной ленты. Всё достаточно подробно описано, вопросов после главы остаётся не так уж и много.
Глава 26. Этика данных
Одна из лучших глав данной книги. Что такое этика данных, почему она важна, для чего используется и к чему может привести её несоблюдение. Познавательный материал, советую.
Глава 27. Идите вперед и займитесь наукой о данных
Заканчивается вся книга главой с призывом идти вперёд и заняться Data Science.
Автор подчеркивает важность компетенций в математической области и о необходимости хорошо разбираться в ней. Также автор кратко описывает популярные библиотеки языка программирования Python и не только.
Глава по своей сути прощальная между автором и читателем, автор же оставляет ту выжимку необходимых мыслей, что он хочет донести до каждого читателя для продолжения путешествия в мир Data Science.
Теперь, тезисно о плюсах и минусах книги
Плюсы книги:
1.Цена
На первом маркетплейсе цена не такая уж и народная.На втором же, ситуация куда бодрее.
Лично от себя скажу, что в целях экономии, часто беру книги уцененные, с небольшими внешними дефектами книги, что не особо влияет на её содержимое. Или же можно найти интересующую вас книгу на площадках б.у. товаров. Но если захотите приобрести новую книгу, цена в условные 600 руб. считаю более чем приемлимой и подъемной для многих. Выделю цену достоинством книги.
2. Книга крайне ёмкая и обширная. О необъятной теме в объятной книге.
Рассматривается и Python и SQL и методы Data Scince, что и как работает. В рамках одной книги это более чем достойно. Да, временами книга может показаться поверхностной, но думаю, это исходя из ограничений книги. Чтобы написать подробный том о каждой теме, для производства книги потребовалось бы куда больше бумаги :)
Минусы книги:
1. Прозрачные страницы.
Не особо бросается в глаза, когда увлечены чтением, но и приятного в этом мало.
Думаю, на всех фотографиях страниц книг, что сделаны мною, это отчетливо видно. Страницы тонкие и просвечивают. Считаю, что это минус.
2.Иногда крайне сжато подаётся материал, что , не имея под рукой поисковика, трудно понять некоторые вещи. Данная оценка субъективна, но мне показалось именно так. Опять же, не уместить всё-всё в одну книгу, понимаю. Но иногда охото отстраниться от цифрового мира, увлечься чтением интересной книги и не прибегать к помощи персонального компьютера)
Подведение итогов по книге:
Могу посоветовать к прочтению данную книгу. Книга даст базовые знания о Data Science, что опять же позволит вам понять, нужно ли оно вам в принципе, интересно ли всё то, что связано с этой сферой.
P.S. К сожалению, в один пост на пикабу можно поместить не более 25 изображений. Мною сделаны фотографии каждой главы, но показать их в рамках ограничений пикабу не могу. Поэтому, если интересно, то можете прочитать полную версию на моем канале.
Благодарю вас за внимание!
Мой канал в телеграмм
Если обзор показался вам интересным, то буду благодарен за подписку на мой
канал IT-старт t.me/it_begin
где я также публикую обзоры технической литературы и полезную информацию как для действующих, так и для начинающих программистов
Ссылка на бесплатную электронную версию книги https://t.me/it_begin/461
Также публикую обзоры книг и интервью на сайте https://russia-it.ru