Pull to refresh
46
0
Jessy James @Jessy_James

Инженер программист

Send message

Малоизвестные и интересные особенности C и C++

Level of difficultyMedium
Reading time43 min
Views45K

В C и C++ есть особенности, о которых вас вряд ли спросят на собеседовании (вернее, не спросили бы до этого момента). Почему не спросят? Потому что такие аспекты имеют мало практического значения в повседневной работе или попросту малоизвестны.

Целью статьи является не освещение какой-то конкретной особенности языка или подготовка к собеседованиям, и уж тем более нет цели рассказать все потайные смыслы языка, т. к. для этого не хватит одной статьи и даже книги. Напротив, статья нужна для того, чтобы показать малоизвестные и странные решения, принятые в языках C и C++. Своего рода солянка из фактов. Вопрос “что делать с этими знаниями?” я оставляю читателю.

Если вы, как и я, любите и интересуетесь C/C++, и эти языки являются неотъемлемой частью вашей жизни, в том числе и его углубленного изучения, то эта статья для вас. По большей части я надеюсь, что эта статья сможет развлечь и заставить поработать головой. И если получится, рассказать что-то, чего вы, возможно, еще не знали.

Читать далее
Total votes 161: ↑160 and ↓1+159
Comments61

Как получать музыку из ВКонтакте в 2022 году

Reading time5 min
Views25K

При проектировании проекта, я решил разделить его на две части. Первая — получение музыки из ВК. Вторая — сам бот. И начать я решил с первой части.

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

Я решил посмотреть что сейчас отдает ВКонтакте при воспроизведении записи и полез во вкладку network, вот что я там увидел...

Читать далее
Total votes 57: ↑55 and ↓2+53
Comments17

Как отлаживать bash-script-ы по шагам или, возможно, самая короткая статья о программировании/отладке на Хабре

Reading time1 min
Views41K

Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.

Читать далее
Total votes 190: ↑189 and ↓1+188
Comments37

Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 1

Reading time29 min
Views18K
Иногда во время работы над проектом на языке Python возникает желание использовать библиотеку, которая написана не на Python, а, например, на C или C++. Причины для этого могут быть разные Во-первых, Python — язык замечательный, но в некоторых ситуациях недостаточно быстрый. И если вы видите, что производительность ограничена особенностями языка Python, то имеет смысл часть программы написать на другом языке (в этой статье мы будем говорить про C и C++), оформить эту часть программы в виде библиотеки, сделать Python-обвязки (Python bindings) поверх нее и использовать полученный таким образом модуль как обычную Python-библиотеку. Во-вторых, часто случается ситуация, когда вы знаете, что есть библиотека, которая решает требуемую задачу, но, к сожалению, эта библиотека написана не на Python, а на тех же C или C++. В этом случае также мы можем сделать Python-обвязку над библиотекой и пользоваться ей, не задумываясь о том, что библиотека изначально не была написана на Python.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments0

Разбираемся с декораторами в Python

Reading time9 min
Views61K

Декораторы – это обертка вокруг функций (или классов) в Python, которая меняет способ работы этой функции. Декоратор абстрагирует свой собственный функционал. Нотация декоратора в целом наименее инвазивна. Разработчик может писать свой код так, как ему хочется, и использовать декораторы только для расширения функциональности. Все это звучит крайне абстрактно, поэтому давайте обратимся к примерам.

Читать далее
Total votes 23: ↑19 and ↓4+15
Comments11

Команда awk – примеры использования в Linux и Unix

Reading time5 min
Views136K

В этом базовом руководстве вы узнаете самые основы команды awk, а также увидите некоторые способы её использования при работе с текстом, включая вывод содержимого файла, а также его конкретных столбцов, строк и слов по указанным критериям. Приступим!
Читать дальше →
Total votes 53: ↑50 and ↓3+47
Comments16

Быстрый бэкап всех ваших репозиториев Github

Reading time3 min
Views17K

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

Потом я завел свои "облака" и хранил код на своем железе и рабочих компьютерах. И наконец появился Github. По началу что-то ещё дублировалось на своих серверах и внешних дисках, но к сегодняшнему дню я на столько привык к сервису Github, все на столько удобно и надёжно, что страх о том что "дискетка" может сломаться постепенно улетучился.

И тут на тебе! Оказывается в любой момент, по не зависимой от меня причине, меня могут отключить от этого технологического чуда! :-)

Читать далее
Total votes 38: ↑31 and ↓7+24
Comments25

Kivy. Сборка пакетов под Android и никакой магии

Reading time5 min
Views54K

Во вчерашней статье Python в Mobile development, в которой речь шла о библиотеке KivyMD (коллекции виджетов в стиле Material Design для использования их в кроссплатформенном фреймворке Kivy), в комментариях меня попросили рассказать о процессе сборки пакета для платформы Android. Для многих этот процесс, к сожалению, был и остается чем-то из ряда магического шаманства и не подъёмным для новичков делом. Что ж, давайте разбираться, так ли на самом деле все сложно и действительно ли я маг и волшебник…
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments113

Дрон подводный…

Reading time8 min
Views18K

Версия 0...

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

Но у нас есть АБСОЛЮТНО не освоенная стихия, море, а море у нас вокруг... и там еще никого не ловят (дронов в частности)...

Подумано - задумано, перво-наперво погружаемся в интернеты...

Читать далее
Total votes 84: ↑82 and ↓2+80
Comments58

«Вечная лампочка» из новых Lexman

Reading time2 min
Views127K
Я нашёл ещё один неплохой вариант для простейшей переделки в «вечную лампу». Это лампы Lexman 10 Вт 1000 лм, продающиеся по 85 рублей в магазинах Леруа Мерлен.


Читать дальше →
Total votes 132: ↑132 and ↓0+132
Comments215

ПК для «выживальщиков», барограф и роборука: новые проекты на базе Raspberry Pi

Reading time4 min
Views9.7K

Новогодние и рождественские праздники уже прошли, а значит, время публиковать новые проекты на базе Raspberry Pi. Прошлая подборка проектов была как раз праздничной, светлой и шумной, если так можно выразиться. Ну а сейчас все проекты уже серьезные, большую часть можно назвать научными. Под катом — самые интересные новые проекты на базе Raspberry Pi, которые нам удалось найти.
Читать дальше →
Total votes 54: ↑52 and ↓2+50
Comments12

Qwt и Qt Creator. Быстро и просто. Часть 1: визуализатор данных

Reading time6 min
Views90K


Для понимания этой статьи читатель должен иметь начальный опыт разработки windows-приложений в среде Qt Creator.
В примерах используются Qt Creator 3.0.0 (MinGW) и Qwt-6.1.0.


Qwt – графическая библиотека, позволяющая значительно упростить процесс визуализации данных в программе. Упрощение заключается в следующем: нет необходимости вручную прописывать элементы отображения, такие как шкалы координат, сетки, кривые данных и проч. Следует лишь задавать параметры этих элементов.
Аналогия: для того, чтобы построить график в Excel Вы выбираете данные и настраиваете параметры их отображения: минимум и максимум шкал, цвет кривых, подписи данных и др. За визуализацию отвечает Excel – сами элементы Вы не программируете.
Особо отмечу, что Qwt позволяет работать с достаточно большими объемами данных (я работал с 200 000 точек) без возникновения раздражающих «тормозов».
В данной статье мы будем отображать кривую на графике, масштабировать ее, перемещаться по графику, смотреть координаты курсора. Таким образом, мы реализуем минимальный функционал, необходимый для вывода и просмотра графиков. В последующих статьях наш графический редактор будет оснащен дополнительными возможностями.

Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments7

Её сиятельство Гильза

Reading time6 min
Views36K

«Есть многое на свете, друг Горацио, что и не снилось нашим мудрецам». У Вильяма нашего Шекспира эта фраза подразумевала различную паранормальщину, вроде тени отца Гамлета, намекавшей на совершение ряда тяжких преступлений, но если внимательно присмотреться, то и появление многих привычных нам вещей тоже представляется многим людям магией. И совсем необязательно это Большой Адронный Коллайдер, желанная, но дефицитная игровая видеокарта или 8К-телевизор от Самсунга. Это может быть гораздо более простая вещь – например, патрон. Пистолетный, винтовочный, револьверный – неважно. Патрон является вроде бы и мелким, но очень важным персонажем в мировой военной истории. Мы читаем про дефицит патронов в Российской Императорской Армии и ужасаемся ему. А потом со сходными чувствами – про винтовку с пятью патронами на человека в РККА. Или истории про отказ в приёме на вооружение автоматических образцов, потому что расход патронов будет излишне велик. И постоянно этот персонаж возникает в сюжете в связи с какими-то перипетиями – недостатком, срывом поставок, освоением производства, проблемами с качеством. Зато, когда с ним нет проблем, он незаметен.

При этом само производство патронов обычно остаётся за кадром. Ну как-то их там делают, причём миллионами и миллиардами. Магия, да и только. А где магия, там и мифы, вроде самого живучего – про диаметр советских папирос и макарон, равный 7.62 мм, что якобы позволяет развернуть производство патронов на любой макаронной фабрике за два часа.Итак, говорить будем про унитарный патрон в металлической гильзе.
Читать дальше →
Total votes 112: ↑98 and ↓14+84
Comments121

«Скажи мне свой адрес и я скажу как зовут твоего соседа», или как дешево и быстро проверять любой объект недвижимости

Reading time3 min
Views36K

Все, что понадобится — подтвержденная учетная запись на Госуслугах и небольшая плата за сведения

СМИ время от времени сотрясают скандалы связанные с тем, что у того или иного государственного служащего находят дома, квартиры, участки и другую недвижимость. Их сменяют другие скандалы о том, что имя  чиновника в государственных реестрах зашифровывается.

Как удается узнавать собственников недвижимости? Неужели любой может узнать кто владеет тем или иным участком, домом или квартирой?

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

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

Сколько это стоит?

Официальная плата Росреестра от 1 до 5 рублей за одну выписку. Доступ к выпискам оплачивается по УИН на сайте Росреестра пакетами от 100 шт. до 500 000 шт.

Читать далее
Total votes 42: ↑36 and ↓6+30
Comments48

Разработка чрезвычайно быстрых программ на Python

Reading time7 min
Views68K
Ненавистники Python всегда говорят, что одной из причин того, что они не хотят использовать этот язык, является то, что Python — это медленно. Но то, что некая программа, независимо от используемого языка программирования, может считаться быстрой или медленной, очень сильно зависит от разработчика, который её написал, от его знаний и от умения создавать оптимизированный и высокопроизводительный код.



Автор статьи, перевод которой мы сегодня публикуем, предлагает доказать то, что те, кто называет Python медленным, неправы. Он хочет рассказать о том, как улучшить производительность Python-программ и сделать их по-настоящему быстрыми.
Читать дальше →
Total votes 90: ↑83 and ↓7+76
Comments47

Простой Twitter-бот на Python

Reading time3 min
Views34K
В данной статье я бы хотел поделиться опытом написания небольшого твиттер-бота на Python.

Вступление



На написание бота меня натолкнул известный многим «пичалька-бот» в Twitter, который автоматически шлет реплаи всем, кто упомянит слово «пичалька» в своем твите. Поскольку в тот момент я занимался активным изучением Python, было решено писать на нем.

Читать дальше →
Total votes 55: ↑47 and ↓8+39
Comments31

Книга «Глубокое обучение с подкреплением на Python. OpenAI Gym и TensorFlow для профи»

Reading time5 min
Views8.7K
image Привет, Хаброжители! Глубокое обучение с подкреплением (Reinforcement Learning) — самое популярное и перспективное направление искусственного интеллекта. Практическое изучение RL на Python поможет освоить не только базовые, но и передовые алгоритмы глубокого обучения с подкреплением. Эта книга предназначена для разработчиков МО и энтузиастов глубокого обучения, интересующихся искусственным интеллектом и желающих освоить метод обучения с подкреплением. Прочитайте эту книгу и станьте экспертом в области обучения с подкреплением, реализуя практические примеры в работе или вне ее. Знания в области линейной алгебры, математического анализа и языка программирования Python помогут вам понять логику изложения материала.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments0

Нетипичный «ls» или как развлекаются линуксоиды

Reading time2 min
Views33K
Однажды в телеграм чат питерского сообщества линуксоидов SPbLUG я кинул забавную задачку:
Выведите список файлов в домашней директории максимально возможным количеством способов, без использования ls или его алиасов(1 способ — 1 балл)

Такое же задание чуть позже прилетело в ещё один чат, и вот что из этого получилось:
Читать дальше →
Total votes 77: ↑72 and ↓5+67
Comments136

Бот для VK на Python с MySQL за час ч.1

Reading time3 min
Views28K
В интернете есть много туториалов как написать бота для Вконтакте, но все они имеют существенные недостатки для новичков. Они дают совсем минимальную базу из-за которой в будущем новичкам будет трудно понять как работают те или иные вещи.

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

Итак начнем.

Что нам понадобится?


  • Python начиная с версии 2.7 (Весь код тестировался на версии 2.7.16 и 3.7.3)
  • Модуль PyMySQL
  • Модуль vk_api
  • Модуль requests
  • Группа Вконтакте (Внимание! Бот будет работать именно со стороны группы, а не стороны аккаунта человека)
  • База данных (включая данные о пользователе и т.д)

Подключение


Для начала подключим все библиотеки:

import vk_api
from vk_api.utils import get_random_id
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import pymysql.cursors
import requests

Теперь можно приступить к настройке бота и базы данных.

Именно в моем случае все данные находятся в файле config.py. Вы же можете прописать их где угодно. На функционал то никак не повлияет.

Подключение базы данных


Для этого создадим функцию при помощи модуля PyMySQL:


def get_connection():
    connection = pymysql.connect(host='you_host',
                                 user='you_user',
                                 password='you_password',
                                 db='you_db'
                                 charset='utf8mb4',
                                 cursorclass=mymysql.cursors.DictCursor)
    return connection

Эта функция будет возвращать данные для дальнейшей работы с базой данных. Соответственно подставляем свои данные где видим «you_».
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments2
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity