LINUX.ORG.RU

Питонячьи радости

 ,


0

4

Отступы, блин

Был у меня код вида:

for blah-blah-blah :
    # какой-то код
    if что-то :
         # код
    else:
        # ещё код

Код скопипастил из одного места программы в другой. При этом не заметил как отступы нарушились. Ну вы поняли, да? Стало:

for blah-blah-blah :
    # какой-то код
    if что-то :
         # какой-то код
else:
      # ещё код

И вот это мне стоило довольно большого количества потеряного времени. Условие else: стало относиться не к if, а к циклу for. Учитывая, что тело цикла было достаточно длинным, как-то не бросалось в глаза, что else уехал не туда. Мать-перемать, но код после этого даже почти нормально работал.

Еще уже мелочь относительная, но все же, чего-то не подумав захотел поработать с гугл драйвом прямо из своего кода и недолго думая сделал pip install --upgrade google-api-python-client - и это разрушило всё. Благо, что от юзера, а не рута, вылечилось сносом .local и повторной накаткой некоторых модулей

★★★★★

Последнее исправление: anonymous_incognito (всего исправлений: 3)
Ответ на: комментарий от sanyo1234

Кстати, у меня есть идея для переработки сорцов tcc.

  1. В том, как именно tcc конфигурируется для сборки кода под конкретную ОС - там изрядная каша. Всё это можно систематизировать и вынести параметры целевой платформы чисто в файлы конфигурации.
  2. У tcc как и gcc требуется собирать отдельные бинарники для того, чтобы получить компиляторы для разных целевых архитектур. Я хочу убрать нахрен все связанные с этим ifdef-ы и всю логику бэкэнда инкапсулировать за программным интерфейсом. Это позволит бинарнику tcc компилировать код для любой поддерживаемой ISA, просто задавая её ключами запуска.

А потом это всё можно еще завернуть в https://github.com/jart/cosmopolitan/ и получить универсальный бинарник компилятора, который запускается на 4-х платформах.

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

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

У меня тоже жопка горела, но это в сишечке нулевое смещение по адресу необходимость, а в lua этой необходимости просто нету, поэтому первый элемент по уполчанию первый, Адын, Идиничъка =) но это по умолчанию, а так как те надо так и индексируй. Это просто все у сишечки слизали внешний вид, а мы привыкли.

local t = { [0] = 1, 2, 3, 4, "жопка"};
for i=0, #t do
    print(i, t[i] );
end

Хочешь с -10 индексируй, только будет забавный эффект =) Это же таблички и хешмапки =) Но да, привычка это штука тонкая и порой ломать её просто вредно. Если не тыкать на постоянной основе два абсолютно разных поведения переключаясь туда сюда то будут факапы когда просто не то что будешь путать, а будешь руками на автомате не то вбивать. Но это такое себе. Когда с си и сиобразных лезешь в скриптуху и даже баш порой иногда просто автоматом набираешь { }, а потом опомнившись удаляешь =)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от tt

Не, я имел в виду хак, который однажды мне где-то попался на глаза: там суть в том, что пишется кастомная кодировка (которые у питона в стдлиб в пакете encodings находятся), например, my_cool_preprocessor, а потом указываем, как принято, в 1-ой или 2-ой строке исходника:

# coding: my_cool_preprocessor

И питон будет честно передавать исходный код в наш препроцессор перед тем, как eval’ить его. Я, честно говоря, не пробовал, но по идее рабочая штуковина для мамкиных какиров :).

Virtuos86 ★★★★★
()
Ответ на: комментарий от wandrien

Я поэтому и упомянул что

Но да, привычка это штука тонкая и порой ломать её просто вредно.

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

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Если не тыкать на постоянной основе два абсолютно разных поведения переключаясь туда сюда

Как этого избежать? Нет же такой специальности «программист на Lua», вот и будете переключаться туда-сюда с той же сишки. Сделать работу с массивами нескучной при таком раскладе это очень плохое решение. Жаль, что Гвидо так не сделал, а то был бы питон сейчас там же, где и луа.

bread
()
Ответ на: комментарий от bread

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

Или не упадёт, а выдаст искусно замаскированные мусорные результаты.

Это реально выстрел в член.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от kardapoltsev

Интересно, бывают ли в РФ полностью remote из регионов вакансии разработчиков backend со свободным графиком работы и только на 80 часов в месяц? Не подразумевается работать где-то ещё, просто больше отдыхать, спать и тратить времени на свои дела типа самообучения, саморазвития (изучение DevOps, Data Science, etc.).

sanyo1234
()
Ответ на: комментарий от sanyo1234

У alex1101 и sambo есть какое-то айти образование?

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

sanyo1234
()
Ответ на: комментарий от ugoday

Подробный разбор было бы интересно прочитать

Как будто больше заняться нечем, чем разбирать какую-то древню пасту. Тебя не наводит ни на какие размышления, что ничего посвежее не нашлось, кроме баянистого перевода ещё более баянистого анекдота (оригинал был лулзом, если что).

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Есть хороший текст, который закрыл тему. PHPшники помалкивают, потому как сказать нечего („вы всё врёти!!!1!“ не считается). Остальные молчат, потому что зачем повторять «PHP — говно», все и так это знают. Впрочем, честно скажу, не слежу за темой, так что если там что новое появилось, тащите сюда. Как раз для пятницы подойдёт.

ugoday ★★★★★
()
Ответ на: комментарий от rupert

Функционально json и yaml эквивалентны. Но как-то так склалось, что json обычно используют по назначению, для хранения/промежуточного представления данных, а вот из yamlа постоянно пытаются лепить недоязык недопрограммирования. А он совершенно тут не подходит.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

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

bread
()
Ответ на: комментарий от lovesan

Я не программист и пейсать «сурьезные проэкты» даже не собираюсь. У меня нет времени и желания заниматься этой скучной хернёй, особенно на питухоне. А ты и дальше исходи на говно и рассказывай, какой ты у нас сурьезный дядя. Я как-то писал рест апи и всерьёз задумался о том, каким же всё-таки надо быть аутистом-ноулайфером чтобы таким заниматься на трезвую голову/ на серьезных щщах.

NorthernBlow
()
Ответ на: комментарий от bread

В чём кривость C#?

Нужно не просто выискивать отдельные кривости ЯП, а сравнивать их общее количество с учётом веса, отражающего количество потенциально наносимого результату вреда. По такому критерию IMHO VB.NET окажется в очень выгодном положении по сравнению с другими ЯП.

sanyo1234
()
Ответ на: комментарий от kardapoltsev

А какой смысл работать дольше? Ведь многие пишут, что несмотря на 8 часовой рабочий день, работают реально всё же меньше.

И сколько уходит на обучение и т.п.?

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

sanyo1234
()
Ответ на: комментарий от bread

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

Virtuos86 ★★★★★
()
Ответ на: комментарий от ugoday

хороший текст, который закрыл тему

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

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Так 80h - это максимально возможные фактические затраты в месяц, а не прогнозируемая трудоёмкость задачи, которая может отличаться как в большую, так и в меньшую сторону.

sanyo1234
()
Ответ на: комментарий от sanyo1234

это максимально возможные фактические затраты в месяц

Так x2 и позволяет половину времени катать вату, фактически работая 80, а то и меньше. В среднем разумеется.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Так x2 и позволяет половину времени катать вату, фактически работая 80, а то и меньше.

IMHO это какое-то надувательство.

В приличном обществе на контракте принято точно учитывать все расходы времени и выставлять счёт по фактическим затратам. Ессно часовая ставка выше наёмных. Сейчас у резидентов некоторых стран стоимость одного часа работы по контракту без найма может быть выше, чем МРОТ РФ (выплачиваемый за целый месяц).

sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 1)