Just my blog
Blog about everything, mostly about tech stuff I made. Here is the list of stuff I'm using at my blog. Feel free to ask me about implementations.
- Mobaxterm SSH RDP FTP...
- Thunderbird Email client
- Filezilla FTP client/server
- Nirsoft Win utils
- Sysinternals Win utils
- Pi-Hole AD block by DNS
- NUT UPS manager
- Rpi MON Raspberry monitoring
- Free CAD 3D modelling
- Free Commander Far-like filemanager
- Bitwarden Password manager
- Django web framework
- celery multi-tasking
- celery-beat Celery + Django
- celery-results Celery + Django
- Pillow Python image lib
- wsgi mod Apache + Python
- requests best in WEB requests
- openpyxl make Excell docs
- p4python Perforce + Python
- paramiko SSH + Python
- pyvmomi ESXi Vcenter + Python
I'm using these libraries so you can ask me about them.
"Output" за год Python
Фиг знает, когда там принято делать выводы за год, я сделаю их сегодня. Ровно год назад, я поменял проект с простого сапорта виндовых серверов, на какой-то мудреный девелопмент-недопрограмминг. Для общего понимания читателю, если он читает - я ничего не смыслил в таких словах из программирования как: функция, переменная, стринги, интеджеры. То есть я как-бы основные понятия знал, даже что-то ковырял и делал на уровне сайта и 'php' (прости господи), но если я слышал, например слово "декоратор функции" или "лямбда функция" - я просто делал вид, что думал о чем-то более важном. Так вот, поставил я себе задачу, выучить этот ваш "Python" - задачу все еще выполняю, но мне кажется, я заслужил на то, чтобы отметить один пройденный этап. Не смотря на все злоключения и лень поганую, честно признаться, на само изучение я потратил не больше двух месяцев, первый мой прорыв был еще в мае, когда я попытался сделать считалку репостов вконтакта + рандомилку, и вышло некое УГ, в котором я списки переводил в строки и потом удалял оттуда "лишние знаки". Думал вначале не показывать, но на ошибках учатся, так что покажу.
with open('test.html', 'r', encoding='utf-8') as content_file: read_data = content_file.read() from html.parser import HTMLParser import re, sys class MyHTMLParser(HTMLParser): def handle_starttag(self, tag, attrs): vk_id = str(attrs) for line in vk_id: vk = re.findall('/\S+$', vk_id) vk_fnd = str(vk) if re.search('/\w+\'\)\]', vk_fnd): global vk_read vk_read = vk_fnd for ch in ['/', ')', '[', ']', '"', "'"]: if ch in vk_read: vk_read = vk_read.replace(ch, "") def handle_data(self, data): global vk_name vk_name = str(data) for line in vk_name: if re.match('\S+\s+\S+$', vk_name): for ch in ['\u0456', '\u0406']: if ch in vk_name: vk_name = vk_name.replace(ch, "?") print("@{0} - {1}".format(vk_read, vk_name)) break parser = MyHTMLParser() parser.feed(read_data)
Вот на такой кусочек Гэ я потратил 4 дня, после понял, что это стыд, но первые несколько дней я очень собой гордился. На этом мои практические задания по коду закончились, аж до осени. Если бы я был писателем и писал бы я на Python, то непременно сказал бы, что осенью меня посетила муза и я начал "сочинять". Так родились простейшие вещи вроде:
- поздравление подписчиков\друзей с "Днем рождения" в автоматическом режиме;
- составление прогноза погоды по xml от погодного сервиса, с неколькими улучшениями:
- подставляет картинку по-погоде
- подставляет список песен по погоде (случайным образом и списков подготовленных песен для каждого погодного состояния)
- второй погодный бот - был обучен делать "погодную угадайку", предлагая список из 4-х песен, каждая из которых соответствует предполагаемому статусу погоды на утро, день, вечер, ночь;
- переработанный рандомайзер - который теперь не переводит списки в строки =) а просто выдает случайный айди страницы, на входе ему достаточно просто дать ссылки на необходимые посты, работает в вебе;
- напоминалка о предложке - штука, проверяющаю есть ли че в предложке, и если есть - создает по посту для каждого паблика, где в предложенных новостях что-то было найдено + айди админа, отвечающего за этот паб;
- стена позора - прожка которая собирает всех забаненных в сообществе юзеров, достает причину бана и время разбана, собирает списки, сует список в таблику wiki и шлет на стену с постом и ссылкой на оную.
И наконец, первое, стоящее чего-то кодинговое создание, которое пока собрано, менее чем на 1/10 - но символизирует мою победу над самим собой - считалка рейтинга. Сути раскрывать не буду, потому как не вижу смысла описывать то, что еще не создано, вдруг конечный результат получится другим. По существу считалка сейчас умеет:
- брать посты из ВК и сохранять их в базу
- приходится делать сдвих по 100 постов за проход
- для каждого поста собирать его инфо о лайках, комментах, репостах
- доставать все комменты из под каждого поста
- проход по 100 за раз
- сохранять все комменты в таблицу
- сортировать и выдавать комменты сгруппировав по айди автора со счетчиком лайков(всего) и кол-ва записей(всего)
- вычислять средние значения для кол-ва комментов и лайков
- сортировать список диктов по ключу со значением рейтинга
- делать таблицу рейтинга
В будущем надеюсь научить её делать это за разные промежутки времени, обновлять измененные данные и так далее. В общем, все чем я пока могу похвастаться, и что стоит внимания. Надеюсь этот проект выгорит и из него получится интересный продукт, который уже можно будет показать и/или добавить в портфолио. В любом случае, возвращаясь к первым тезисам моего поста, мне все-таки удалось дойти до такой стадии, когда я знаю что можно сделать, как можно сделать и могу найти реализацию этого, если не смог написать сам. Оставлю этот пост как отчет перед самим собой. Все эта хренота заставила мои мозги работать иначе, и теперь нет пути вернуть все в зад, теперь мне пайтон даже снится, и во снах я пытаюсь делать сортировку и дописывать недописанное. Конечно, многое еще предстоит пройти, но главное, что я приобрел за это время - понимание общей картины мира программирования и того, куда нужно двигаться. Мне нравится название "точка входа" для этого этапа. Это когда ты еще не знаешь всего, что мог бы знать как программист, но уже в состоянии понять, чего именно ты не знаешь, и что тебе нужно узнать, чтобы уметь "то" или "иное", а также, когда ты еще не зная, можешь на основании имеющегося опыта - синтезировать новый. Все-таки философия и все что с ней связано - полезная штука для правильного мироощущения и понимания многих скрытых процессов, всегда умиляли и будут меня умилять те, кто считает философию бесполезной.