Python как произносится на русском
Перейти к содержимому

Python как произносится на русском

  • автор:

Как правильно произносить Python — Пайтон или Питон?

Правильнее всего произносить это простое но интересное слово ПАЙСН, но некоторые произносят ПАЙТН.

вот транскрипция — paɪθn.

Английская буква «У» уай читается ай [aɪ] в открытом ударном слоге.

https://www.youtube.­ com/watch?v=voS0cEJ2­ mYM

А в закрытом слоге она читается как наше «и» например в слове typical [‘tɪpɪk(ə)l]

Давайте заглянем сначала в известные английские словари и посмотрим транскрипцию к слову Python.

В cambridge словаре: /ˈpaɪθən/

В Macmillan словаре: /ˈpaɪθ(ə)n/

В Oxford словаре: /ˈpaɪθən/ (бр), /ˈpaɪθɑːn/ (амер)

В Longman словаре: /ˈpaɪθən $ -θɑːn, -θən/

В Collins словаре: (paɪθən)

IPA: [ pahy-thon, -thuhn ]

Среди русскоговорящих айтишников я часто слышу именно Питон. Но американцы произносят именно как пайфен, пайтан.

Python как произносится на русском

Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.1.2011

Репутация: нет
Всего: нет

Я считаю, что "питон" лучше потому что:
1. Так пишут и произносят большинство.
2. Для меня звучит лучше, более по-русски. И питон ближе по звучанию к англ. python.
3. От него можно образовать "питонщик". ( пайтонщик — ужас)
4. Так Сузи советовал говорить.

Профиль
Группа: Завсегдатай
Сообщений: 736
Регистрация: 16.2.2006
Где: Готем

Репутация: 1
Всего: 51

Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32

Я считаю, что нужно говорить не так как нравится, а так как правильно [ˈpaɪθən]

Добавлено через 3 минуты и 54 секунды
Кстати, по поводу правильного произношения, в последнее время пытаюсь приучить себя говорить букву W (дабл ю) в акронимах, MinGW, BMW. Дабл ю, действительно, режет слух русскому человеку, а пай[зс]ен нормально звучит

user posted image

Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 9
Всего: 484

Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32

Цитата(Snowy @ 15.1.2011, 23:27 )
SQL тоже мало кто произносит правильно.

user posted image

Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 9
Всего: 484

TЋ♥s F1rȜ iƧ BurȠiƞg

Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 1
Всего: 16

Змея , она же Питон произносится как Питон.
Вопрос называется ли язык программирования змеёй ? Я считаю, что да.

Но вот вопрос.
Вы называете Windows Окнами ?

В целом питон звучит так же как и основы окнных презентаций (WPF)

Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32

Цитата(A5uKa @ 17.1.2011, 11:17 )
Вопрос называется ли язык программирования змеёй ?

user posted image

TЋ♥s F1rȜ iƧ BurȠiƞg

Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 1
Всего: 16

Цитата(A5uKa @ 17.1.2011, 11:17 )
Вопрос называется ли язык программирования змеёй ?

Тогда действительно нельзя звать его Питоном

Но зачем они тогда в логотипе змей рисуют ? Всё же связь есть .

Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 9
Всего: 484

TЋ♥s F1rȜ iƧ BurȠiƞg

Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 1
Всего: 16

Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: нет
Всего: 15

Я его иногда называю пузон Звучит смешно =)

P.S. Уважайте русский язык, говорите "питон" -)

Это сообщение отредактировал(а) lukas — 30.1.2011, 10:25

Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32

Цитата(lukas @ 30.1.2011, 10:24 )
Уважайте русский язык, говорите "питон" -)

user posted image

Профиль
Группа: Завсегдатай
Сообщений: 3030
Регистрация: 9.11.2003

Репутация: нет
Всего: 58

Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32

Цитата(GrayCardinal @ 31.1.2011, 16:44 )
уществует официальный перевод названия на русский язык. В данном случае это "питон". Или я ошибаюсь ?

Ok, давайте называть lisp шорохом, а ActionScript — ДействиеСценарий!

user posted image

Правила ведения Религиозных войн
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида «Windows Rulez» или «Linux Rulez»

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »

[ Время генерации скрипта: 0.1404 ] [ Использовано запросов: 21 ] [ GZIP включён ]

mpd

Разговорился тут с одним человеком, для которого было забавно прочитать от меня «Ява» для обозначения языка программирования. По его мнению «ни один разработчик на джаве так никогда не скажет».

Я задумался. Ведь и во Франции люди не произносят это название на английский манер, получается «Жава» с характерным ударением на последний слог, естественно.

А как вы по-русски произносите названия языков программирования «Python»? «C++»? «PHP»?
Записываете ли вы их кириллицей, или исключительно латиницей?

Язык программирования Python ⁠ ⁠

Язык программирования Python Python, Программист, IT, Telegram, Компьютер, Гаджеты, Софт, Длиннопост

Python — это высо­ко­уров­не­вый язык про­грам­ми­ро­ва­ния общего назна­че­ния, кото­рый исполь­зу­ется в том числе и для раз­ра­ботки веб-при­ло­же­ний. Язык ори­ен­ти­ро­ван на повы­ше­ние про­из­во­ди­тель­но­сти раз­ра­бот­чика и чита­е­мо­сти кода.

Пра­виль­ное рус­ское про­из­но­ше­ние названия языка про­грам­ми­ро­ва­ния — Пай­тон, но чаще исполь­зу­ется иска­жён­ное — Питон.

Python под­дер­жи­вает несколько пара­дигм про­грам­ми­ро­ва­ния: струк­тур­ное, объ­ектно-ори­ен­ти­ро­ван­ное, функ­ци­о­наль­ное, импе­ра­тив­ное и аспектно-ори­ен­ти­ро­ван­ное. В языке при­сут­ст­вет дина­ми­че­ская типи­за­ция, авто­ма­ти­че­ское управ­ле­ние памя­тью, пол­ная интро­спек­ция, меха­низм обра­ботки исклю­че­ний, под­держка мно­го­по­точ­ных вычис­ле­ний и удоб­ные высо­ко­уров­не­вые струк­туры дан­ных. Про­грамм­ный код на Python организовывается в функ­ции и клас­сы, кото­рые могут объ­еди­няться в моду­ли, а они в свою оче­редь могут быть объ­еди­нены в пакеты. Python обычно исполь­зу­ется как интер­пре­ти­ру­е­мый, но может быть ском­пи­ли­ро­ван в байт-код Java и в MSIL (в рам­ках платфоры. NET).

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

По срав­не­нию с Ruby и неко­то­рыми дру­гими язы­ка­ми, в Python отсут­ствует воз­мож­ность моди­фи­ци­ро­вать встро­ен­ные клас­сы, такие, как int, str, float, list и дру­гие, при этом Python потреб­ляет меньше опе­ра­тив­ной памяти и быст­рее рабо­та­ет.

В Python при­сут­ствует гло­баль­ная бло­ки­ровка интер­пре­та­тора (GIL) — при своей работе основ­ной интер­пре­та­тор посто­янно исполь­зует боль­шое коли­че­ство потоко-небез­опас­ных дан­ных. В основ­ном это сло­ва­ри, в кото­рых хра­нятся атри­буты объ­ек­тов, и обра­ще­ния к внеш­нему коду, поэто­му, во избе­жа­ние раз­ру­ше­ния этих дан­ных при сов­мест­ной моди­фи­ка­ции из раз­ных пото­ков, перед нача­лом испол­не­ния несколь­ких инструк­ций (обычно ста) поток интер­пре­та­тора захва­ты­вает GIL, а по окон­ча­нии осво­бож­да­ет.

Суще­ствует несколько реа­ли­за­ций языка — CPython (основ­ная), Jython, PyS60, IronPython, Stackless, Python for. NET, PyPy, python-safethread, Unladen Swallow, tinypy.

319 постов 2.8K подписчиков

Правила сообщества

1. Для начала нужно соблюдать правила пикабу! (если не ознакомились то вот вам ссылку — http://pikabu.ru/html.php?id=wtf )

2. Банальные срачи «Что лучше НВИДИА или АМД?» не приветствуются
3. Нашли интересное? Создавайте пост быстрее

Зачем этот пост? Кто-то не умеет пользоваться Вики?

@moderator, по-моему, это реклама канала

Новинки IT? Вы серьёзно?

«А если изменить скорость открывания, то можно сделать самолетный движок»⁠ ⁠

«А если изменить скорость открывания, то можно сделать самолетный движок»

Первый опыт работы в 16 лет в IT⁠ ⁠

Я хотел изначально написать этот пост на хабре, но это скорее просто личное желание поделиться опытом, радостью и слить накопленное, чем информативная статья с моими анализами и выводами.

Я занимаюсь программированием с детства, а веб разработкой всего пару лет, но тем не менее собрал достаточно знаний, чтобы попробовать найти работку в IT. Оно знаете, было как-то лень и интересно одновременно, я люблю приключения и к тому же я собирался работать удалённо. Мой системник уже проситься на тот свет, иногда просто может не включиться, помогает передёрнуть ОЗУ и почистить от пыли и он снова работает (Кому интересно, p7p55le + i5 750, 8 gb DDR3 и две Radeon HD 5830). Апгрейдить там бессмысленно, нужно с нуля собирать. Не то что бы меня это сильно мотивировало, ну останусь без пк, жизнь же продолжается; но он не ломается к удивлению, заставляя меня угрожать кулаком в монитор и по клавиатуре, когда курсор останавливается, а IDE (От реактивных мозгов) вылетает.

Путь до оффера

Приблизительно начало февраля 2022. Тихонько себе листал вакансии на hh и habr карьере, откликался, получал отказы, решал тестовые (увы, тестовой зарплаты не было), но я остановлюсь на собесах. Хотя и там особо всё просто, коммерческого опыта нет, ты маленький, и вообще что ты тут забыл. Потому я продолжал откликаться уже по приколу, на middle даже, ну прокатит и круто.

Ивент от яндекса.

Осень 2022. Яндекс приглашает поучаствовать в соревновании YaCup 2022. До денежного приза вряд ли дойду, а вот пройти отбор на стажировку по упрощённой схеме, если попал в топ 50 уже не так уж и не возможно. Рвя жопу и нервы, я занял 36 место (в направлении фронтенд) и через неделю меня пригласили пройти удалённо отбор. Подробно не буду. Прошёл первый этап, на том конце были весёлые ребята и прикольные задачи (относительно простые, по этому не нервничал). На втором этапе меня встретил мужик который вероятно давно не ухаживал за своей растительностью на лице. За ним была доска, где я должен был бы решать задачи, но у меня была фора, однако я всё равно завалил. В яндекс я не попал (

Удача?

Февраль 2023. Вечерочком сижу и листаю вакансии на хабре и откликаюсь на «Typescript Lead». Странное название, просто Typescript и просто Lead. В описании написано «в поисках джуна», ну а кто я, чтобы не тригернуться на слово «джун». Через часок, уже полностью сонный, смотрю пишет мужик с этой вакансии, мол, вообще смотришь куда откликаешься. Я подумал, ну бывает, хотя это не hh и на кассира случайно тут не откликнешься. Проверяю отклики и всё ок. Он зовёт поболтать.

Первый разговор был без вебки, так что я не знал кто там. По голосу лет на 20. Попросил выполнить тестовое к завтрашнему дню и втирал какую-то дичь про тёплую атмосферу в команде и что-то ещё, я не помню, хотел спать. Тестовое было простенькое, но я всё равно потратил на него пол дня.

На «собесе» меня встретил бородатый мужик далеко не 20ти лет, а как оказалось почти сорока. Вебку тоже пришлось включить, переборов себя. Это был просто разговор по интересам, был только один тех. вопрос (что такое DI?) на который я нашёл много что ответить (мог бы больше, но моя речь не поспевает за моими мыслями, я вообще довольно не общительный). Потом я ничего не помню, помню только конец. Через полтора часа разговора с меня уже стекли литры пота, пытаюсь сдерживать судороги в ногах и шею, которая тоже вот-вот пойдёт в разнос. Меня он оценил в 50к рублей и объявил испытательный срок — 3 месяца с 75% ставкой. Завершил разговор, требуя готовиться к первому рабочему дню. От меня он потребовал мой плейлист spotify, любимые фильмы, книги и moodboard, дабы «знать мой психотип», чтобы это не значило.

Надо сказать я устраивался на Frontend, он меня направил на FullStack и спойлер работал как Backend.

Первый рабочий день

Было так круто, что я аж в 6 утра подскочил. Меня добавили в телеграм группу по разработке. И к обеду мне прилетела задача (issue) в гитхаб. Единственное, что мне сказал руководитель — «Иди раскуривай».

Кстати про команду: руководитель(он же тот самый мужик), дизайнер(парень где-то лет 20ти) и два фронта, с которыми особо не контактировал.

Так вот возвращаясь к задаче. Я нихера не понял. Задача была наполнена непонятными мне терминами. Я подумал это нормально, капец какого опыта я наберусь (спойлер, это правда).

Чтож. Делать нечего, я пишу, что-то вроде «памагите, я ничего не понимаю». Меня направили почитать про [куча терминов]. «Раскуриванием» задачи я занимался следующую неделю.

Из будущего: задача была в том, чтобы доить базы сети аптек по всей России, готовить данные и кормить ими с ложечки аналитические сервисы. Ведь просто, правда? Как будто я с базами данных не работал или бэкэндом. Но вот данных там на сотни гигабайт и это вполне тянет на биг дату. Обрабатывать их нужно грамотно, чтобы не было утечки памяти. А как это делать, я не знал.

Медленно, но уверенно

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

А вот и первая ЗП за 2 недели. Что кстати удивило, с самого начало думал, что кинут.

Отношение начинает меняться

На одном из one-to-one
— Ну как там?
— Первый потребитель готов, ещё два осталось
— Замечательно. За этот день добьёш?
— Нууу. Эээ.. Тут я думаю где-то к концу следующей недели доделаю.
— Б*ть, какой следующей недели. У нас уже сроки на этой недели заканчиваются. Чё там делать, то. Ты должен был по моим предположениям ещё на прошлой неделе всё сдать и перейти к следующему проекту.

Дальше на меня льётся куча критики и мата, а с моими то социальными навыками, я просто сижу как камень, слушаю, говорю «ага» и со всем соглашаюсь.

Что-то похожее происходило каждую неделю. «Ну чё за день осилишь», «Так, тогда через час идём в прод, да?», а там работы на неделю.

Затем мне пришло сообщение, что мой испытательный срок нужно продлить на ещё один месяц. Я поинтересовался, как это повлияет на ЗП. Оказалось всё нормально, на ЗП это продление не влияет. Держите это в голове, пригодится.

С проекта на проект

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

Чтож на этот раз это бот для подготовки формы(pdf файла) для миграции в США. Он уже был готов, но там нужно было что-то «поправить». Пока я это правил, появились подробности, что оказывается там вообще сценарий вопросов не правильный. Ну ладно, сел переписывать. Ну и как обычно, я должен был сделать это вчера, а почему-то потратил на это три недели. Ну работает и ладно.

Вообще я много когда узнавал новые подробности в не подходящее время.

Последняя капля

Напоминаю, что частенько меня кроют в чате и one-to-one. Так, что мотивации и настроения, что-то делать у меня нет. Каждый день жду увольнения.

У меня есть такая особенность, что я копирую манеру общения собеседника. Так что отвечать добром на такие сообщения я не мог, а в one-to-one просто говорю «ага» и стараюсь как можно быстрее уйти, потому что такой разговор мне не приятен. Чтобы вы не думали, что я так всегда общаюсь, с дизайнером общаться вообще по кайфу, нет желания уйти, хотя и поддержать разговор также не получается.

На проекте с ботом у меня возникла проблема, с тем, что бот падает при создании pdf, но ошибки нет, точнее она пустая. Я обращаюсь к руководителю (больше не к кому)

— У меня не собирается pdf, падаёт ошибка в виде пустого объекта
. не помню точно, но разговор зашёл к тому, что зачем мне linux, если я им не умею пользоваться, и вообще — купи мак. Вот у тебя docker стартует из под рута, потому и не работает
— Слушай. Ну вот! Да! У меня всё собирается. Это у тебя Docker из под рута стартует.
— Ладно, буду разбираться.

Посидев, я понял в чём ошибка. И тут до меня доходит. Как он мог сгенерировать pdf, если ошибка совсем в другом. Я начал кое что подозревать, что уже давно подметил.

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

Ответ на один из моих глупых вопросов

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

Поняли? Контекст тут не важен, чтобы понять, что это отборный бред. Такие ответы я получал почти всегда.

Так, вот я решил проверить мою теорию(обращаясь к руководителю)

— А можно pdf который вчера удалось сгенерировать?
— [скидывает пустой pdf (бланк для заполнения)]
— Не, это бланк, мне нужно заполненный со вчера.
— Ты сказал не собирается, ну я и собрал. Генерация это уже другая задача.

И да. Я подтвердил свою теорию. Он придрался к термину. Я сказал «собрать», вместо «сгенерировать». Я окончательно сгорел, и назвал его душнилой, а потом не сдержался и ещё жёстче его покрыл. На что он ответил что-то вроде: что ты себе позволяешь, вы(команда), должны целовать мне ноги, я вам тут плачу, я собрал команду, я, я, я.

К этому времени в команде остался только я, приходили иногда новички (с не плохим таким опытом уже), но уходили через день, два. Мне кажеться они сразу понимали, что тут что-то не так.

Саботаж

С этого момента, почти каждый день продолжалась эскалация конфликта. Я больше не задавал вопросов по задаче (поскольку от этого я только теряю время на бессмысленный токсичный разговор), и шёл на one-to-one только со словом «ага» и каменным лицом.

Одним утром, без настроения пытаясь разобрать очередную задачу, уже по другому проекту, я вылетаю из группы в телеграме. Я сначала не понял, что произошло, потом зашёл на github и увидел, что больше не состою в их организации. И я понял — я уволен. Однако в течении дня мне ничего не написали. Так, что это сделал я.

— Это типо увольнение? Тогда уж можно пожалуйста официальную причину и ЗП за 12 дней?
— Официальная причина — некомпетентность, саботаж
— Официально — ты у меня не работал, по документам, благо, не успел тебе контракт оформить. Я рекомендую тебе походить к врачу и начать общаться с людьми, у тебя большие проблемы, которые тебе предстоит решить.
— А зп за 12 дней? Если я получаю 50тр в месяц, то за 12 дней это должно быть 20тр
— Ты не получаешь 50к в месяц, я продлил твой испытательный, ты согласился

Поняли, да? Я там даже и не работал. И что ещё за «саботаж».

Где же обещанное обучение к которому вы так ответственно относитесь, ламповая атмосфера и уважение к неопытным сотрудникам, о чём мне заливали в самом начале?

Вот такие мои весёлые приключения в мире трудоустройства в IT, так ещё и в 16 лет.

P.S. Ах, да. Мне хватило ровно на новый ПК. Так, что я не сильно расстроился.

Опять все забыли про мидлов⁠ ⁠

Опять все забыли про мидлов

Топ-25 бесплатных курсов обучения Python 2023 года⁠ ⁠

Подготовили для вас статью с бесплатными курсами по Python. В некоторых курсах есть тренажеры: можно проходить теории и там же практиковаться.

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

Python — это один из наиболее популярных языков программирования в мире, широко применяемый как в создании программного обеспечении, так и в Data Science B Machine Learning.

Тренажеры

Тип: тренажер состоит из блоков теории, после которых сразу идет практика с задачами внутри тренажера. Бесплатный сертификат о прохождении выдается после окончания курса.

Тип: обучающий тренажер.

Тип: обучающий тренажер.

Бесплатные курсы от школ

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

Бесплатный курс от Мичиганского университета на платформе Coursera предлагает участником набор онлайн-лекций по базовым навыкам владения языком Python. Каждый поток длится 7 недель, в рамках которых профессор Чарльз Северанс преподносит знания из своей книги «Python for Everybody».

Бесплатный курс по Python от Хекслет для начинающих программистов. Материалы, среди которых — 7 уроков в формате текста или видео и тесты, раскрывают основы написания кодов на языке, а также описывают ключевые аспекты работы в его экосистеме.

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

Как заявляет автор курса, его программа рассчитана для программистов Python с любым уровнем знаний. По мере прохождения участников ждут 90 видеоуроков и практических заданий. По окончании курса платформа Stepik выдает электронный сертификат.

Бесплатный курс от Академии IT с рейтингом 4,75. Обучение состоит из прохождения 42 уроков, во время которых автор Михаил Тарасов расскажет все об основах программирования на Python, а также поделится ценной информацией о будущей карьере программиста.

Топ-25 бесплатных курсов обучения Python 2023 года Python, IT, Программирование, Программист, Курсы программирования, Разработка, Длиннопост

Курсы с Youtube

Курс YouTube-лекций по программированию на Python. Вся программа состоит из 123 видео длительность от 5 до 12 минут. При желании можно найти те же видео на языке оригинала.

Топ-25 бесплатных курсов обучения Python 2023 года Python, IT, Программирование, Программист, Курсы программирования, Разработка, Длиннопост

Что можно писать на Python

Практически как Java, Python находит применение во многих областях программирования. Так, например, язык применяют в:

Создании систем автоматизации;

Математических расчетах и других продуктах.

Сколько приносит знание Python в 2023 году?

Средняя заработная плата Python-программистов, согласно данным портала ГородРабот.ру, составляет 131 478 рублей — лучший показатель на рынке труда. А вот новички, основываясь на информации HH.ru , могут получать оплату от 70 000 рублей.

Ключевой недостаток владения Python — это необходимость конкурировать с другими кандидатами за место в штате. По подсчетам того же ГородРабот.ру, количество вакансий на позицию Python-разработчика достигает до 203 мест ежемесячно, однако и предложение труда уверенно растет: так, команда Skillbox посчитала, что на одно место программиста Python в 2023 году приходятся сразу 20 кандидатов.

Почему Python?

Python — идеальное решение для каждого и предлагает:

Доступность — из-за простого синтаксиса язык понятен даже новичкам;

Кроссплатформенность — интерпретаторы Python поддерживаются большинством операционных систем;

Разнообразие применения — язык нужен везде: от веб-разработки до геймдева;

Интегративность — Python можно применять в сочетании с другими системами и встраивать его коды как компоненты.

Парсим яндекс диск при помощи Python⁠ ⁠

В данный момент я работаю контент-менеджером в «крупном» интернет — магазине. В моём случае, это больше 100 000 позиций.

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

Готового решения я не нашел и решил написать свою реализацию работы с яндекс диском. Хорошо, что я знаю python.

У меня было 2 версии программы:

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

когда по ссылке идёт только одна картинка, в данном случаи все немного проще, не нужны лишние действия с распаковкой картинок

p.s. ещё были 2 побочные небольшие программки: 1-я для уменьшения размера картинки, 2-я для переименования картинок (менялся пробел на дефис)

Приступим к реализации

скачать и установить python c официального сайта https://www.python.org/downloads

открыть любимый редактор кода (я использую vscode) https://code.visualstudio.com

подключить следующие стандартные библиотеки: urllib.parse, csv, os, zipfile. Установить библиотеку requests https://pypi.org/project/requests/ (для отправки запроса на сервер)

для полного фен-шуя можно использовать виртуальное окружение, дабы не засорять систему ненужными пакетами. Подробнее о virtualenv можно ознакомится по ссылке https://docs.python.org/3/tutorial/venv.html или же использовать poetry.

Ссылки на яндекс диск имеют вид: https://disk.yandex.ru/d/xNBn7lE1_Y5knQ . Чтобы их можно было скачать, они должны быть публичными.

Обратимся к API яндекс. После ключа public_key=»вставляем_ссылку_на_файл»

В ответе мы получаем json, из которого нам нужно получить значение по ключу href. Полученное значение и будет нашей прямой ссылкой к файлу.

Парсим яндекс диск при помощи Python Программирование, Инструкция, Гайд, Python, IT, Учеба, Программист, Разработка, Linux

Пожалуй, на этом хватит теории, теперь, постараюсь внятно объяснить, как всё это можно применить в контексте python.

# создаем новый файл и подключаем нужные нам библиотеки

import requests

from urllib.parse import urlencode

import csv

import os

import zipfile

Для начало создадим функцию, которая будет возвращать нам ссылку для скачивания:

final_url = base_url + urlencode(dict(public_key=public_link))

response = requests.get(final_url)

parse_href = response.json()[‘href’]

return parse_href

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

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

В итоге, мы получаем файл result_data.csv со ссылками на фотографии на нашем жестком диске:

Парсим яндекс диск при помощи Python Программирование, Инструкция, Гайд, Python, IT, Учеба, Программист, Разработка, Linux

В добавок, у нас на жёстком диске появляется папка со скаченными картинками в папке download_files.

Полностью посмотреть код можно в репозитории на гитхаб.

p.s. Официальная документация по API Яндекс. Диска

Братишка с пикабу подсказал готовую библиотеку на питоне. Спасибо b4ro тык.

p.s.s. Немного поразмышляв, я подумал, что неплохо было бы написать, тесты. Пройтись линтером по коду. Добавить функцию переименования файлов. Может быть что-нибудь ещё?)

Спасибо за прочтение! Комментарии, лайки, дизлайки, предложения, пожелания крайне приветствуются.

Отчёт и благодарность Силе Пикабу⁠ ⁠

Здравствуйте, нежноуважаемые пикабушники!

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

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

С этим проектом наша команда участвовала в двух конкурсах и одной научно-практической конференции:

1. Проект стал победителем в заключительном этапе » Городского конкурса проектов «Юные техники и изобретатели – 2023»;

2. Занял призовое место с Дипломом 3 степени на конкурсе «Новые вершины Поиск НИТ»;

3. Занял призовое место в заключительном этапе городской открытой научно-практической конференции «Инженеры будущего».

Отчёт и благодарность Силе Пикабу Сила Пикабу, Благодарность, Без рейтинга, IT, Школа, Обучение, Python, ГИА, Тренажер

Для первого опыта, считаю, что это замечательный результат.

Очень хочу вас всех поблагодарить потому, что именно ваше доброе участие так сильно меня вдохновило и придало уверенности!

Ведь слова поддержки очень важны, а вы предлагали поддержку не только на словах! Я всегда знала, что если в работе случится тупик, если мне не хватит знаний и накатит отчаяние, то я смогу обратиться к пикабушникам @gurux13, @girogor333, @havaec. Я по-настоящему чувствовала, что за моей спиной сила Пикабу! Спасибо вам!

Работа над проектом продолжается и сейчас, т.к. есть некоторые ответственные перспективы на будущее.

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

А вот и сам герой, благодаря которому я познакомилась с благородством и силой Пикабу. Встречайте: Тренажёр решения задач по теме графики функций!

Скачать exe-файл (для системы Windows 7/10/11) можно по ссылке https://disk.yandex.ru/d/phzR8yJKwJn9OQ .

Тренажёр был написан на Python, поэтому поиграть в графики функций получится только на компе или ноутбуке.

FFmpeg для монтажа⁠ ⁠

Ничего особого. Просто когда-то мне не захотелось скачивать и разбираться в монтажном софте.

Поэтому для себя сделал набор скриптов.

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

Склеить несколько видео из list.txt

concatenate.bat
ffmpeg -f concat -safe 0 -i list.txt -c copy out.mp4

Перекодировать Webm в Mp4

convert_webm_to_mp4.bat
ffmpeg -i in.webm out.mp4

crop.bat
:: width:height:x:y
ffmpeg -i in.mp4 -filter:v «crop=400:300:350:250» -c:a copy out.mp4

Вырезать кусок из видео

cut.bat
:: -ss — start
:: -t — time
ffmpeg -i in.mp4 -ss 10 -t 10 out.mp4
::ffmpeg -i in.mp4 -ss 6.5 out.mp4

Достать аудио из клипа

extract_mp3.bat
ffmpeg -i in.mp4 -q:a 0 -map a audio.mp3

hardsub.bat
::If the subtitle is a separate file called subtitle.srt, you can use this command:
ffmpeg -i in.mp4 -vf subtitles=subs.srt out.mp4
::If the subtitle is embedded in the container video.mkv, you can do this:
::ffmpeg -i video.mkv -vf subtitles=video.mkv out.avi

Сделать видео из картинки с музыкой

join_image_audio.bat
ffmpeg -i image.jpg -i audio.wav out.mp4

Заменить аудиодорожку в видео

join_video_audio.bat
ffmpeg -i in.mp4 -i audio.mp3 -c:v copy -map 0:v:0 -map 1:a:0 out.mp4

Понизить качество видео

quality.bat
:: https://unix.stackexchange.com/questions/28803/how-can-i-red.
:: range for H.265 may be 24 to 30
:: Note that lower CRF values correspond to higher bitrates, and hence produce higher quality videos.
ffmpeg -i in.mp4 -vcodec libx264 -crf 32 out.mp4

resize.bat
ffmpeg -i in.mp4 -vf scale=1376:732 out.mp4

rotate.bat
::0 = 90CounterCLockwise and Vertical Flip (default)
::1 = 90Clockwise
::2 = 90CounterClockwise
::3 = 90Clockwise and Vertical Flip
ffmpeg -i in.mp4 -vf «transpose=2» out.mp4

Кажется тоже изменить разрешение

scale.bat
ffmpeg -i in.mp4 -s 640×360 -c:a copy out.mp4

Тоже порезать, просто несколько раз

split.bat
ffmpeg -i in.mp4 -ss 0 -t 128 out1.mp4
ffmpeg -i in.mp4 -ss 128 -t 256 out2.mp4
ffmpeg -i in.mp4 -ss 256 -t 384 out3.mp4
ffmpeg -i in.mp4 -ss 384 out4.mp4

Программы для монтажа⁠ ⁠

Если вы когда-нибудь задавались вопросом — какую программу для монтажа выбрать, наша схема поможет вам сделать это легко и непринуждённо.
(С долей юмора, конечно. Куда же без него с такой профессией)

Программы для монтажа Монтаж, Видеомонтаж, Adobe Premiere PRO, TikTok, Vsco, Imovie, Davinciresolve, Blender, Capcut, Adobe, Filmora, Edius, Sony vegas PRO, Компьютер, Софт, Программное обеспечение, Программа, Юмор, Схема

Ответ на пост «Отправить в Телеграм. Linux»⁠ ⁠

С телегой вообще все просто.
в общем виде это выглядит так:

curl —header ‘Content-Type: application/json’ —request ‘POST’ —data ‘<\"chat_id\":\"111111111\",\"text\":\"тут вводите любой нужный вам текст\">‘ \»https
:// api.telegram.org/
bot2222222222:AGGX_2SN8SYPYW7x_o9xcdRPyOZfoQtqTS8/
sendMessage\»

(пообрезайте переносы строк, потому иначе редактор пикабу обрезает всю ссылку curl. все должно быть в одну строку)

сначала регаете бота:
Для этого добавляем себе в контакты @botfather и пишем ему сначала /start, потом /newbot.
Там задаем боту имя. Например @lichniy_bot
Теперь нужно добавить в свой список контактов созданного бота. Для этого найдите его по имени.
Вписываете в команду слово bot и дальше token бота. Пишется все в одно слово.
потом узнаете свой ID. Чтобы его узнать, добавьте бота @my_id_bot и напишите ему /start
данное значение вписываете в поле chat_id

Profit, вы великолепны. )

можете вписывать в любой баш скрипт — меня так мои бекапы информируют о результате.

Если ссылки можно, то напишите в коммент — кину ссылку откуда я это брал — там с картинками пояснения.

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами?⁠ ⁠

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

В наше время каждый год выходят десятки, если не сотни самых разных моделей новых смартфонов, но по настоящему диковинные и интересные из них лишь единицы. Apple немного подтянет железо и добавит фишечку, Xiaomi представит очередную занимательную технологию, которая ещё не пошла в серию, а небольшие бренды продолжают клепать совершенно одинаковые смартфоны. Однако, когда-то была одна Канадская компания, у которой почти каждое новое устройство было необычным и в чем-то диковинным. И сегодня я предлагаю посмотреть на венец творения этой компании — BlackBerry Passport, который обошёлся мне в 2.500 рублей и который я использую в качестве основного смартфона! На что способен флагманский смартфон на базе Snapdragon 801 и с 3гб ОЗУ из 2014 в наше время? Сегодня узнаем!

❯ Покупка

На этот раз предысторию смартфона я рассказывать не буду: кое-что из истории BB я рассказал в прошлой статье оBlackBerry Z30.

Недавно stupidmadworld выпустил видео о BlackBerry и в нём было довольно много неточностей (не осуждаю его, у меня тоже бывают опечатки), но особенно негативно он «проехался» по Passport. Сложилось впечатление, что девайс он купил в коллекцию или чисто для вида, не попытавшись его использовать в реальных условиях. Поэтому в этой статье предлагаю сосредоточиться на самом устройстве и его перспективах в наше время, ведь подобный форм-фактор легко может привлечь моего читателя!

Моим первым смартфоном от BB стал Curve 9360, который я купил всего за 300 рублей на известной онлайн-барахолке. Несмотря на удручающее состояние устройства, моя симпатия к BB продолжала только расти, а подогрел интерес читатель с Хабра, который заслал списанные из офиса PlayBook и инженерный прототип Z10 DevAlpha A (его уже не активировать). После этого я купил себе Z10, заодно прихватив Z30 за 500 рублей (копейки же!) и всё завертелось… Что стало с Z30, вы можете узнать из вот этойстатьи.

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

BlackBerry Torch 9800

Через некоторое время мне написал читатель с Хабра и предложил заслать несколько списанных из офиса девайсов, коими были BB Playbook и инженерный прототип BlackBerry DevAlpha A (который на TI OMAP). После того, как девайсы были получены, а я безуспешно попытался активировать DevAlpha A (она была не активированной) и поискать баги в самых разных версиях прошивки, я решил купить себе Z10 за 1.000 рублей и Z30 за 500 рублей. Как мы с вами знаем, Z30 позже стал моим основным смартфоном аж на месяц вперёд, опыт его использования я написал в этойстатье.

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

Ежевичная семья: Z30, Passport, 9360

После этого, мне написал мой подписчикGamersReview, заядлый фанат BlackBerry и скинул ссылку на объявление с разбитым Passport’ом, сказав, что он уже договорился и человек отдаст его за 1.500 рублей. Конечно же брать девайс-ударник — отчасти рулетка, но поскольку гаджет действительно интересный и стоит того, я решил рискнуть. Через неделю гаджет пришёл и отправился на полку ждать дисплей, заказанный с AliExpress за 1.000 рублей (прямую ссылку оставлять не буду, дабы не сочли за рекламу, но если нужно будет — пишите в ЛС).

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

❯ Ремонт

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

Как только дисплей приехал, сразу же сел перебирать смартфон. Я перебрал с сотню мобилок, но BB разбирал первый раз и меня сразу же удивило… насколько он продуман! Никакого клея, никаких герметиков, никаких танцев с феном вокруг устройства, всё сделано крайне продумано на винтиках и клипсах. Весь гаджет можно перебрать за 10 минут одной лишь отверткой, благодаря модульности. Начинается всё со снятия крышечки с слотами под SIM и MicroSD и заглушки в нижней части клавиатуры. Прошлые модели, кстати, имеют похожую концепцию с заглушками:

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

После откручивания винтиков, заднюю крышку остается лишь аккуратно снять, используя пластиковую карту или инструмент для разбора корпусов. Всё, вся плата как на ладони!

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

АКБ сразу же отключаем (шлейф, закрепленный винтиком), и выкручиваем остальные винтики с платы. Сам аккумулятор приклеен, его можно снять, потянув за язычок, либо аккуратно подсунув пластиковую карту под его дно.

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

Дисплей, судя по надписи «Easy Pick» и отклеенной фольге, уже когда-то меняли, да и это было заметно на этапе снятия крышки. 🙂 Откручиваем винтики, которые крепят металлическую рамку с дисплейным модулем и клавиатурой, и разделяем клавиатуру с дисплеем (их держат два винтика).

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

Дальше всё в обратном порядке: прикручиваем клавиатуру к новому дисплейному модулю (не забываем переместить разъем 3.5мм и датчики, если на вашем модуле их нет), одеваем рамку, устанавливаем плату, АКБ, заднюю крышку, заглушки и устройство собрано! Всё это занимает минут 10. Инженеры BlackBerry, мой поклон вам за такую конструкцию без клея. Кстати, даже в Priv они сохранили подобную конструкцию и там тоже устройство можно разобрать без фена.

Включаем смартфон, дисплей работает, тачскрин работает! Здорово! Но, девайс был на пароле, а контакт продавца был утерян. Что ж делать, спросите вы? 10 раз неправильно ввести пароль (или просто прошить устройство последней прошивкой автолоадером)!

Безопасность — одна из главных фишек BlackBerry. Если ввести неверный пароль 10 раз, то устройство перезагрузится,глубокимформатированием очистит весь пользовательский раздел (даже несмотря на шифрование, весь процесс занимает около 10 минут) и сбросится до заводских настроек.

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

После этого, устройство окажется на этапе активации (извиняюсь за качество фото).

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

Доходим до этапа активации Wi-Fi, откладываем активацию и сразу же в хабе запускаем процесс снова. Доходим до подключения Wi-Fi, быстро жмём 3 раза кнопку включения — должен активироваться диктор. Двумя пальцами тапаем два раза по дисплею и начинаем водить пальцем справа налево, пока не услышим «Skip activation». Как только услышали — делаем два тапа двумя пальцами и мы должны увидеть экран обновления. Он чутка повисит на поиске обновления и затем устройство будет полностью активировано — без напоминаний. Насколько я знаю, так можно активировать устройства и с BB Protect. Теперь наконец-то смартфон активирован и работает без каких либо проблем!

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

Такое провернуть можно с любым устройством на BlackBerry OS10, кроме первого прототипа Z10 (DevAlpha A).

Если голосовой диктор не появляется, то обновите устройство хотя бы до 10.2. Сделать это можно автолоадером (ищем «<модель> 10.3 autoloader», ставим BB Link, запускаем автолоадер и подключаем выключенный смартфон. Он сам обновит прошивку. В случае Z10 убедитесь, что качаете автолоадер для своей ревизии — там было 4 ревизии, одна из которых на другом чипсете).

Я использую Passport в качестве основного смартфона на протяжении двух недель и успел составить своё впечатление от этого, безусловно, крайне необычного устройства. Здесь нужно привыкать ко всему: QWERTY-клавиатура с смещенной русской раскладкой, дисплей с «квадратным» соотношением сторон, широкой форме самого устройства. Можно ли им пользоваться «на каждый день»? Давайте узнаем!

❯ Тактильные ощущения

Как вы уже могли заметить, смартфон очень широкий — обхватить его в одной руке бывает проблематичным. Однако разработчики рассчитывали, чтобы покупатель пользовался устройством именно двумя руками, как и любым другим QWERTY-смартфоном. И если первые дни пользования ты достаёшь Passport со страхом того, что ты его не удержишь и он упадёт на асфальт, то уже через неделю начинаешь чувствовать его габариты и рельеф и привыкаешь.

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

Тоже самое касается и весьма необычной клавиатуры, ведь возможности вызвать экранную «для подстраховки» нет — пользуйся только хардварной. И если англоязычная раскладка здесь стандартная, то русскоязычная немного отличается от общепринятой. Например, «ю» вынесли в верхнюю правую часть клавиатуры, а некоторые символы предлагается вводить двойным нажатием. По началу ты набираешь слова по несколько секунд, а спустя недельку-две начинаешь летать по мобильной клавиатуре почти так же, как и по обычной десктопной и понимаешь, в чём же эта магия QWERTY клавиатур и почему её не могут заменить всякие Taptic Engine. Кроме того, инженеры BB знали, что на привыкание понадобится некоторое время и добавил авто-исправление слов и словари. Поэтому даже новичок сможет писать достаточно грамотно и быстро.

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

Но поскольку клавиатура здесь не на 104 клавиши и даже стандартных для QWERTY-смартфонов Ctrl/Shift/Alt тут нет, то переключение языков, часть символов и управление регистром решили вывести как маленький кусочек тачпад-клавиатуры. Кто-то может поспорить с таким подходом и сказать: «да это же не тру-кверти!», но в целом, когда привыкаешь, то понимаешь что это удобнее, нежели тыкать десять сочетаний на компактной клавиатуре. Перед инженерами BB стояла задача не разместить полноценную клавиатуру на 104-клавиши, а сделать компактную, но при этом удобную клавиатуру, где поместились только символы и некоторые управляющие кнопки (backspace, enter, пробел). И у них получилось!

Кроме того, инженеры BlackBerry не хотели оставлять пространство клавиатуры бесполезным во время «повседневных» задач типа скроллинга ленты или просмотра веб-страниц и сделали клавиатуру… сенсорной! Причём эта фишка сохранилась и в Priv, и в устройствах от TCL (BB KeyOne/KeyTwo). Таким образом, если вы держите смартфон в одной руке, вы можете листать ленту/страницу просто проводя пальцем по самой клавиатуре. Да и сама клавиатура поддерживает некоторые жесты: например свайп справа налево удалит текущее напечатанное слово. Клавиатура поддерживает мультитач: страницы можно зумить, водя пальцами по клавиатуре. Крутотень!

Что же касается тактильных ощущений от остальной части смартфона, то на задней крышке нас ждет металлическая полоска и мягкий софт-тач пластик, которыйне испортилсяза 9 лет с момента выхода устройства. Сама рамка смартфона выполнена полностью из металла (причём хорошего, а не фольги, от падения он не прогибается и не облупливается), а стекло смартфона слегка закруглено по краям, что дает приятный эффект а-ля S6 Edge. Причём даже после неоднократной разборки и падений зазоры остались минимальными и без всякого клея: никаких люфтов или скрипа я не заметил. Смартфон спроектирован и собран очень добротно: немудрено для смартфона за 700$!

Но если смартфон тактильно очень классный, то как у него дела с железной начинкой? Тут тоже был «полный фарш». За 700$, BB предлагали топовый 4-ядерный чипсет Snapdragon 801, работающий на частоте до 2.5ггц, с полной поддержкой LTE, аж 3гб ОЗУ (в тот год столько получал разве что Galaxy Note) и 32гб памяти c поддержкой microsd, что дает очень большой плюсик производителю. Чипсет, скажем так, довольно горячий, но система эффективно расходует ресурсы даже на более слабых устройствах, поэтому ситуаций «снапдрагон грееца, можно зимой вместо батарей использовать» здесь немного. Я заметил только две: тяжелые игры и съемка FHD видео в 60 FPS. В остальные моменты, устройство либо холодное, либо едва теплое.

Все эти приложения остаются в фоне и не выгружаются. Можно спокойно занять минимум 2 страницы (по 6 приложений в каждой) и ничего лагать не будет. Снято на камеру 30FPS, учтите это.

Работает смартфон на базе собственной ОС BlackBerry — BB OS 10, которая за всё время существования получала целых 3 мажорных апдейта для всех устройств, даже самых первых! Самая лучшая из них — 10.3, поскольку в ней есть поддержка приложений для Android 4.3 JellyBean. Вероятно, кто-то возразит и скажет «да как на нём жить» и ответ будет прост — легко 🙂

❯ Использование или выживание?

Давайте разбираться. Что нужно большинству людей для комфортного повседневного использования смартфона? ВК, Telegram, WhatsApp/Viber, браузер, YouTube, музыка и камера — верно? Сможет ли со всем этим справится 9 летний флагманский смартфон?

Начинаем конечно же с соц. сетей и мессенджеров. И в BBOS 10 с этим нет никаких проблем — несмотря на отсутствие многих мессенджеров для BB10 нативно, инженеры BlackBerry реализовали слой совместимости (это не эмулятор, а именно «порт» окружения Android и отчасти Linux под BB) Android Runtime, который позволяет запускать многие приложения для зеленого робота, с максимальной поддерживаемой версией 4.3. Тут важен один момент: поддержка 4.3 появилась только в последней версии ОС — 10.3, до этого поддерживался лишь Android 2.2. Если у вас не устанавливаются приложения — то качаем автолоадер, прошиваем устройство (это безопасно) и всё будет работать. APK ставятся напрямую из проводника или браузера, с этим никаких проблем нет.

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

И Telegram, и ВК просто летают! Производительность не сравнить с современными смартфонами до 6-7-8 тысяч рублей. При этом с физической клавиатуры действительно гораздо удобнее печатать в мессенджерах, это совершенно иные ощущения. Да, нужно будет привыкнуть, но потом ты понимаешь, что так даже удобнее:

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

Браузер тут, конечно, устарел (можно поставить хром или лису прошлых версий, они будут работать относительно нормально, но у меня были болячки с скроллингом хрома), но кое-что загрузить всё ещё может. Например, можно полистать Хабр. А вот Пикабу браузер уже не загрузит, разработчики Пикабу идут вслед за современными веб-стандартами! Проблемы будут и с чтением DTF.

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

Вот так выглядит Пикабу:

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

В браузере полноценно работает YouTube. К сожалению, NewPipe Legacy уже не работает, поэтому нативный клиент можно получить разве что с моей реализацией. Но посмотреть видео можно, хотя YouTube явно не адаптирован для квадратных экранов:

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

С мессенджерами и браузером разобрались: их вполне можно использовать. С браузерами конечно посложнее, но в целом нормально. А что насчёт камеры? И тут хочется сказать, что BB делали упор не только в хардварную клавиатуру и удобство системы, но и камеру, микрофон (4 микрофона по всей площади смартфона — это не шутки!) и звук.

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

С музыкой, как уже сказано выше, всё тоже очень достойно. Честный и качественный стереозвук, по качеству и громкости сравнимый с внешней колонкой. BB постарались и здесь, судя по сообщениям на форуме, в устройстве стоит DAC от Wolfson (схожий применялся в iPhone) и есть поддержка внешнего USB Audio через OTG. Из коробки есть поддержка FLAC, а сам плеер очень удобный и поддерживает кучу разных фишек (эквалайзер, DLNA, возможность при подключенных наушниках выводить звук на динамики/слуховой динамик).

❯ Заключение

Смартфон получился весьма успешным по меркам BlackBerry: в 2014, благодаря высоким продажам он спас компанию, позволив ей продержаться до 2016 года. BlackBerry выпустила несколько различных версий Passport: премиальный Silver Edition с чуть отличающейся конструкцией и дизайном и версию для AT&T (скругленная). Уже через год появился продолжатель идеи: Priv, а затем и устройства от TCL — KeyOne и KeyTwo. Но некоторые пользователь считают их «не трушными» BB из-за того, что они работают на Android. Получается, Passport — лучший QWERTY смартфон в своем классе?

Идея Passport и Q5/Q10 все еще живы. Несмотря на то, что TCL потеряли права на BlackBerry, компания Unihertz из Китая, известная своими мини-смартфонами Jelly, смогли выпустить на рынок Titan и Titan Slim. И как жаль, что только юнигерц продолжает реализовывать такую концепцию…

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами? Смартфон, Покупка, Мобильные телефоны, IT, Телефон, Blackberry, Диковинка, Qwerty, Девайс, Гаджеты, Android, Ништяки, Ремонт, Видео, Длиннопост

А вам как Passport? Сейчас их средняя цена на барахолках в рабочем состоянии (я собирал конструктор) 4-5 тысяч рублей. Взяли бы такое устройство сейчас на каждый день? Есть ли будущее у смартфонов такого форм-фактора? Жду ваше мнение в комментариях!

Статья подготовлена при поддержке Timeweb.Cloud. Подписывайтесь на меня и TimeWeb, чтобы не пропускать новые статьи каждую неделю!

Ностальгия⁠ ⁠

Делал уборку в шкафу и нашел эту древность. Вспомнил. Прослезился.

Ностальгия IT, Windows, Компьютер, Книги, Ностальгия, Длиннопост

Ностальгия IT, Windows, Компьютер, Книги, Ностальгия, Длиннопост

Ностальгия IT, Windows, Компьютер, Книги, Ностальгия, Длиннопост

Ностальгия IT, Windows, Компьютер, Книги, Ностальгия, Длиннопост

Топ 5 бесплатных курсов по Python для начинающих⁠ ⁠

1. Учебники Python — на сайте pythonworld опубликованы уроки для изучении основы Python функции, циклы, кортежи, словари и т.д
2. Курсы от Яндекс-Практикум — тут рассказывают о самых азах бесплатно, а дальше платно.
3. Уроки на сайте academiait — доступный курс для изучении Python. Всего 42 бесплатных курса.
4. «Поколение Python» для начинающих от stepik — знакомит с Python новичков.
5. Инди курс от stepik — этот курс подойдет для программиста с любым уровнем вне зависимости от опыта.

Тыжпрограммист⁠ ⁠

Если вы хотите историй про взаимодействия отделов с бухгалтерией у меня есть одна.
Сижу, никого не трогаю, раскурочиваю старый ноут сданный инженерами и списанный. Звонок из бухгалтерии.
— Нам выдали бачок, приходите поменяйте.
Я в афиге, какой бачок. Говорю — звоните слесарям, завхоз вам поменяет. Кладу трубку.
Через 5 минут опять звонок. Уже напряженным голосом, видимо после общения со слесарями:
— Нас послали, сказали ничего менять не будут. Придите поменяйте бачок или будем жаловаться. Вы собираетесь делать свою работу или нет?
Это они мне значит про работу.
Ну я уже тоже начинаю накалятся, какой бачок сука. Поговорили на повышенных, бросил трубку.
Через полчаса звонок от секретаря — вызывают к директору. У директора на столе лежит докладная. И вот что характерно знаете ли. Как мне по телефону звонить так у них бачок. А как докладную на меня написать, так они внезапно правильно написали — системный блок.

Задолбался. ))⁠ ⁠

Работаю в ИТ давно, последние несколько лет в отделе технической поддержки.
Дык, вот вопрос:
Как иногда выключать сисадминскую ауру?
Я не могу иногда продиагностировать проблемы у пользователей, так как при мне всё работает. ))

HapDoc — утилита для генерации документации⁠ ⁠

Приветствую.
Хочу поделиться с вами проектом и услышать ваше мнение о нем. Может быть чего-то не хватает? Может быть вы видите его как-то иначе? А может быть вы хотели бы присоединиться к разработке вместе со мной 🙂
Я разрабатываю утилиту для автоматической генерации документации под названием HapDoc. На данном этапе разработке возможно сгенерировать документацию для 3-х типов проектов:

Основными командами являются:

gen — Генерация Markdown файлов документации.

build — Генерация Markdown файлов документации с последующей сборкой в static HTML.

serve — Запускает сервер с помощью FastAPI и uvicorn, для self-host документации.

tmpl-new — Создает новый шаблон для документации

tmpl-list — Возвращает список имен сохраненных шаблонов

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

Байки погромиста. Если кто-то скажет, что программирование — это скучно⁠ ⁠

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Детектив kesn всегда готов помочь!

Вообще я, как правило, нормально программирую. Иногда даже такое заворачиваю, что сам тащусь весь день.

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

❯ Функция не выполняется

Попросил меня как-то клиент отладить его скрипт. Говорит, не работает. Невероятно!

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Я, когда клиент говорит, что ничего не работает

Скрипт секретный — ну как, для трейдинга на бирже, и принесёт миллионы денег, конечно же, но только когда заработает без ошибок. Поэтому клиент не пересылает мне его, а запускает screen share и делает, что я ему говорю. То ещё удовольствие, но хозяин-барин — оплата почасовая.

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

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

Осложнялось всё тем, что отлаживать через клиента — ну такое. Он может запустить скрипт, но вот отладчик для него — страшное слово, и максимум, на что можно рассчитывать — это поставить print() в нужных местах. Разгадка оказалась проста: где-то в середине функции, там, где это было менее всего заметно, вместо return клиент написал yield. А в питоне yield — это магическое слово, которое превращает функцию в генератор, а все return . — в как бы raise StopIteration(. ), и вместо результата возвращается итератор, и выполнение кода останавливается до следующего обращения. Короче говоря, всего-навсего одним ключевым словом клиент полностью раздолбал логику своей программы. Маэстро!

❯ Как ловить эксепшн из генератора

Вообще генераторы в питоне — это и добро, и зло, и я ещё напишу про это в следующей статье (поэтому подписывайтесь, чтобы не пропустить). И хотя я программирую где-то со времён построения египетских пирамид, всё равно я умудряюсь делать ошибки.

Вот, например, кусок кода:

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Тут у меня есть функция cache.apply(), которая берет quota_chunks, делает с ними какой-то вжух-вжух и возвращает новые quota_chunks. Я нарисовал диаграмму, чтобы изобразить этот процесс в более понятной форме.

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

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

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

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

Именно это тут и случилось. Я вызвал этот генератор и проверил, что он отработал без ошибок, но на самом деле генератор отработал совершенно в другом месте — там, где вызывается spy() — и именно там он и упал.

А знаете как я это отловил? В тестах. Поэтому пишите тесты.

❯ Строго по инструкции

Клиенты бывают разные: какие-то умеют немножко в HTML и frontend, а некоторые из наших клиентов умеют в backend. Один из таких клиентов часто сам писал backend логику и давал нам её на проверку, чтобы мы ему исправили баги, а может быть где-то сделали рефакторинг или code review.

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

И вот клиент взял нашу инструкцию и начал следовать тому, что там написано, слово в слово. Надо понимать, что разработчики обычно пытаются понять, что они делают (по крайней мере я на это надеюсь). Соответственно, те, кто читал этот скрипт, понимали, что должно быть сделано, и в случае, если у них, например, вместо pip используется poetry, а вместо apt-get у них pacman (i use arch btw), то они заменяли соответствующие команды.

Клиент же делал всё слово в слово, и он написал нам, потому что на одном из шагов у него случилась проблема. Если быть точнее, у нас в инструкции была описана ветка master, а на гитхабе по умолчанию ветка main, поэтому какая-то команда не находила нужную ветку.

«Изи фикс» — подумал я, созвонился с клиентом объяснил, что нужно делать, и хотел отключаться. когда возникла ещё одна ошибка. Оказывается, в инструкции был косяк, и при выполнении команды шелл делал подстановку, когда видел $SOMETHING — то есть не было экранирования. Мы исправили и это, и буквально через несколько секунд всплыл ещё один косяк. А потом ещё. И ещё.

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Где-то через час я сказал клиенту, что пусть он всё бросит и я задеплою всё сам, а потом мы обновим ридми. Было стыдно.

❯ Ответочка

Когда-то я работал на интернет-магазин, и мы заметили, что у нас появляются фейковые заказы каждые утро и вечер. Сначала мы не смекнули, что к чему, но потом поняли фишку: идентификаторы заказа у нас были обычные IDшки из Postgres, поэтому конкурент мог сделать заказ утром (номер заказа 10), сделать заказ вечером (номер заказа 15) и просто вычесть второй номер заказа из первого и получить количество заказов, которые мы получили за день (15 — 10 = 5). Я до сих пор часто нахожу эту ошибку во многих проектах, и примерно могу оценить размер этих проектов.

Эту ошибку легко исправить: достаточно заменить последовательные ID на случайные — например, вместо номера заказа использовать timestamp или UUID.

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

Мой девиз — «кто ищет тот всегда найдёт» (посмотрите мои статьи про уязвимости на хабре — 1, 2). Так и тут, я искал и обнаружил, что конкурент выкладывает розничные прайсы публично, а вот оптовые — только для зарегистрированных и проверенных партнёров. Сам файл он раздаёт nginx’ом с адреса вроде http://some-site.com/files/розничный_прайс.xls. А если так, то, скорее всего, никакой аутентификации при помощи бэкенда для самого файла нет, а значит, можно попробовать найти оптовый прайс.

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

❯ Скрапинг со скоростью света

В одном из моих проектов я использовал api ВКонтакте, чтобы анализировать кожаные мешки. Там не нужна была супер-скорость, поэтому я не полез в async, а просто написал функцию и распараллелил её по потокам при помощи ThreadPoolExecutor.

Программа начала просто летать! Вот как это делают сеньоры! Саенс, бич!

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Слева направо: саенс, бич

Потом я начал подозревать, что программа работает слишком быстро даже для такого классного парня, как я. Я полез смотреть результаты, а там ничего не было, потому что в каждом из потоков программа очень быстро падала с ошибкой, а так как это потоки, то exception в потоке не «всплывал» в основную программу, и я думал, что всё норм.

Поэтому если всё работает слишком хорошо, то, возможно, всё очень плохо.

❯ Бог рефакторинга

Пришел ко мне клиент и говорит: Саня, давай позумимся и посмотрим, что-то вебхук отвалился и ничего не принимает.

Ну я такой про себя «опять клиент что-то сломал, бывает», полез туда смотреть. Глядел-глядел, глаз вообще ни за что не цеплялся. Ошибок в sentry не было. Потом нашёл вот такой код:

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

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

К несчастью, у меня стоит расширение git lens, которое пишет, кто именно написал каждую строчку кода. Я в основном использую это, когда вижу какую-то хрень: если автор кода — чувак из наших, то, скорей всего, это я тупой и что-то не понимаю в задумке автора; в других же случаях это, как правило, обычный плохой код.

И вот я смотрю, а этот код написал. я сам. Вот так я примерно выглядел:

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

Самое смешное, что в оригинале клиент написал рабочий код, потом пришёл я всё рефакторить и случайно сломал. Я много раз извинялся перед клиентом. Ух, до сих пор стыдно.

❯ Детектив kesn и тайна ssh

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

Я человек простой, мне сказали задеплоить — я и задеплою, хоть на AWS, хоть на тапок.

Запускаю я скрипт, он всё делает, и теперь я хочу зайти на сервер и вручную проверить, что всё работает. И тут всё заверте.

Сначала пробую ssh -i ключ root@ip. Не работает. Потом вспоминаю, что юзер в AWS обычно ec2-user, поэтому пробую ssh -i key ec2-user@ip. Не работает. Может, там авторизация не по ключу? Пробую ssh ec2-user@ip. Не работает. Сделал dig, попробовал подключиться не напрямую, а через load balancer. Согласен, тупая затея.

Пошел в дэшборд AWS смотреть настройки файрволла. Вижу два странных айпишника. Очень странно. Беру первый, проверяю геолокацию по ip. По локации понимаю, что это, кажется, статический ip девопса. Какого хрена? У нас же есть бастион, и все соединения должны проходить через него. Проверяю второй ip из файрволла. О, так это же и есть бастион. Ну отлично, теперь делов-то — добавить всю эту конфигурацию с бастионом в .ssh/config, чтобы в будущем было легко подключиться. Лезу в конфиг, а там уже есть эта конфигурация.

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

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

❯ Ошибка платежа

На sentry прилетел отчёт об ошибке, попросили посмотреть. Стал разбираться. Мой код двухгодичной давности.

Логика была простая: есть намерение клиента платить за подписку, и есть прикрепленная карта клиента. Пока намерение активно, мы пытаемся списывать деньги с карты. Это логично: даже если на карте нет денег, то раз клиент хочет пользоваться сервисом, мы будем пытаться списать до тех пор, пока это не получится. Если клиенту не нужна подписка — он отзывает намерение.

Единственное, что я не учел — что клиент может просто всё забросить, ничего не отменяя. И вот на протяжении года наш сельдерей-разнорабочий (celery worker) запускался, пытался списать у клиента деньги, получал отлуп, жаловался в sentry, и засыпал, чтобы назватра всё повторилось, и так каждый день, без конца и края.

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

❯ Лёгким движением руки сэкономить кучу денег

Я заметил, что очень часто клиенты могут сэкономить неплохую такую кучу денег, сделав просто какое-то минимальное телодвижение. Вот несколько примеров:

Чувак хостил видео на aws s3 и раздавал через амазоновский CDN. Выходило $655 в месяц. Потом нашёл BunnyCDN, я перенастроил приложение (заменил где-то 4 строчки минуты за две), и внезапно с новым CDN в месяц стало уходить только $70. Ну не эпично ли за пару строчек кода?

Клиент платил сотни долларов за жирный инстанс Elasticsearch на AWS. Почему — я хз. Потом он заподозрил неладное. Мы замерили реальную нагрузку и перенесли Elastic на одну из самых дешёвых машин в digital ocean, за которую клиент теперь платит $24 в месяц. Профит!

У клиента было много файлов на s3, платил он тоже много. Потом перенесли всё на b2, там даже делать почти ничего не надо — у них интерфейс совместим с s3. Получили экономию раза в 4.

❯ От судьбы не уйдёшь

У нас есть шаблон для новых проектов на cookiecutter. Он удобен тем, что если мы что-то меняем в шаблоне, то можем легко обновить проекты клиентов при помощи cruft.

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

И вот дело подходит к концу, у них куча изменений, у меня столько же. Мы говорим «ну мы всё», они такие «мы тоже вот уже заканчиваем». Начальник мне пишет: «Заливай быстрее в мастер, пока они не залили своё, а то будем потом всю жизнь конфликты разбирать. одинодин». Ну я на скорости слил наши обновления в мастер-ветку и мысленно пожелал удачи их разрабам: наша работа сделана, мастер мы обновили, а то, что их разработчики отстали от мастера и у них конфликты — ну штош.

Байки погромиста. Если кто-то скажет, что программирование — это скучно IT, Программирование, Программист, Разработка, Timeweb, Эпично, Факап, Истории из жизни, Python, Длиннопост, Познавательно

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

❯ Детектив kesn и поиски пароля

Настраивал я как-то инстанс elasticsearch. Там была отдельная машина, я на ней с помощью docker разворачивал ElasticSearch. Сначала делал всё в ручном режиме, проверял, потом писал скрипт для автоматизации. Для начала просто запустил сервер без всего, потом начал разбираться с авторизацией.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *