Змея / Говнокод #27441 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
from bs4 import BeautifulSoup
import requests

user = "**********"
r = requests.get('https://www.last.fm/user/' + user)
soup = BeautifulSoup(r.content, 'html.parser')
page = soup.prettify()

#Top artists
print(
page[int(page.find('’s top artists: ') + len('’s top artists: ')):int(page.find('. Get your own music profile at Last.fm')):]
)

#Top track
print(
''.join(i if i != "+" else " " for i in (page[int(page.find('data-analytics-action="FeaturedTrackTrackName" href="/music/') + len('data-analytics-action="FeaturedTrackTrackName" href="/music/')):int(page.find('/_/', int(page.find('data-analytics-action="FeaturedTrackTrackName" href="/music/') + len('data-analytics-action="FeaturedTrackTrackName" href="/music/')))):] + " - " + page[int(page.find('/_/')) + 3:page.find('"', int(page.find('/_/'))):]))
)

Сбор с lastfm любимых исполнителей и любимого трека

Запостил: G-Chist G-Chist, (Updated )

Комментарии (108) RSS

  • Унылый код, унылая задача, и программист тоже наверняка очень унылый

    но за 16-ю строчку нужно конечно отрезать руки, тут спорить не ьбуду
    Ответить
  • https://habr.com/ru/company/skillfactory/blog/559010/
    > Что не так с современным преподаванием информатики
    > Python вместо знаков препинания или ключевых слов (в Паскале такими словами являются «begin» и «end») использует отступы для обозначения выполнения блока. Программы, написанные в одну строку или с другими нарушениями в структуре, не смогут быть выполненными в Python. Такая особенность позволит сократить размер кода и увеличить читаемость программы. Синтаксис Python приучит школьников писать «красивый» код, что улучшит написание и понимание кода.
    Ответить
    • Python обладает динамической типизацией. Это означает, что переменная связывается с типом во время присваивания значения, а значит, нет необходимости заранее объявлять переменную. Это упрощает понимание типов данных и разрешает путаницу в различных длинах целочисленных и вещественных, строковых и символьных типах, а также сокращает размер кода (таблица ниже).
      Ответить
      • bat файлы не используют понятие "типизации", это упрощает понимание типов данных и разрешает путаницу в различных длинах целочисленных и вещественных, строковых и символьных типах, а также сокращает размер кода (таблица ниже).

        ----------

        Снова и снова убеждаюсь, что учить школьников нужно на паскале, а первокурсников на чистой сишечке
        Ответить
        • Была бы живая норм реализация паскаляя на линукс. Он вообще до юникода-то дожил хотя бы?

          Жалко, пиздатый язык.
          Ответить
    • > Как раз учусь сейчас в вузе, и нам программирование объясняют на примере всех этих паскалей и пр.


      > Проблема в том, что чтобы установить себе IDE для этих устаревших языков, нужно пройти семь кругов > ада.
      Лолчто? ABC.NET

      > Найти IDE под них можно только на торрентах, и у этих IDE совершенно нет community.
      Лолчто, в вузе не дают IDE?

      >Невозможно старшему поколению привить любовь к современной разработке с её IDE, фреймворками, контейнерами

      БЛЯДЬ
      Ответить
        • Ты разве не пользуешься IDE и докером?:)

          Кстати, bp.exe / tp.exe -- самая настоящая IDE, синенькая которая. На тот момент вообще самая крутая наверное из всех существующих.

          Интерактивный дебаг с брейкпоинтом и watch листом блядь!! В 1992-м году!!
          Ответить
          • Пользуюсь, конечно. И фреймворки юзаю если это требуется по задаче. Но там ведь написано про любовь, а не про ёблю за деньги...
            Ответить
        • Борманд, ты всегда молод (когда тебе не три тысячи лет)
          Ответить
      • Баба права, въебал ей плюс. У нас в вузе препод заставлял делать дабы в «DOS Box». Было прикольно, конечно. Но мне кажется это из-за того, что он 20 лет назад давал лабы в «DOS», и ему нет необходимости переходить на что-то другое. Один раз он спросил сколько байт в «int», я ему доказывал что 4, а он мне, что 2. Он был прав, но мог бы хотя бы сказать, что это зависит от.
        Ответить
        • Раньше int старались сделать примерно равным размеру регистра, так что на 16-ти битной сишечке под дос он был 2, а на 32-х битной на винде уже стал 4

          Но int вовсе не обязан иметь такой размер. Всё, что мы знаем про int, это что он больше чара, и минимум 2.
          Ответить
          • В free pascal если я не ошибаюсь int по соглашению это алиас либо smallint либо longint, в первом случае он равен word только знаковый, во втором это наш любимый знаковый инт в четыре байта на 32х битных системах и выше. А на 16 бит он
            Ответить
            • Я про сишку говорил. Про паскаль я не очень помню уже

              > не зависел от ворда?
              Что ты называешь вордом, кстати? Размер регистра?
              Появился он действительно так, и имел размер 16 бит
              Но потом МС всё спутала
              Ответить
              • Word это целочисленный тип в паскале, он равен одному машинному слову, что бы это не значило. Обычно он собственно равен разрядности системы, но не знаю испортилась ли эта закономерность в реализациях для х64

                Если я правильно понимаю word должен покрывать пространство адресации памяти полностью.
                Ответить
                • Ну ок)

                  У MS просто всё с этим типом крайне плохо
                  DWORD32
                  DWORD64

                  ну ты понял
                  Ответить
          • > Всё, что мы знаем про int, это что он больше чара, и минимум 2.
            Кстати не факт.

            Ничто не мешает CHAR_BIT быть 16.
            Тогда на 16-битке он будет равен чару. И sizeof(int) будет 1.
            Ответить
        • Мы тоже делали лабы в "DOS Box". Но это были лабы по асму в реальном режиме, так что мне не ня что жаловаться ( ̄ω ̄).

          А дебажили в debug.com, да.
          Ответить
          • https://debug.com

            Bad mosquitoes spread disease. Good mosquitoes can stop them.
            Debug is a group of scientists and engineers developing technology to raise and release sterile mosquitoes to eliminate the ones that carry disease.
            Ответить
            • a 100

              какую-то хуиту придумали, кастрировать и выпускать надо буквально тонны комаров
              и они быстро передохнут и начинай сначала
              а еще они не приносят денге
              Ответить
          • Судя по хабру кажется, что если сейчас начать учить людей реальному асму, то такая вонь подымица: зачем нам асм? Давайте учите нас в VSCode делать сайты на Angular
            Ответить
            • > реальному асму

              А действительно? Ты ведь его уже и не запустишь без виртуалки и/или ёбли с флешкой и настройками фирмвари.

              Учить его просто потому что он простой и в нём мало команд? Ну такое. Лучше уж тогда какую-нибудь ардуину взять: там и асм проще и какое-никакое общение с внешним миром.

              А реалмодным асмом сейчас только пугать, имхо.
              Ответить
              • >Ты ведь его уже и не запустишь без виртуалки и/или ёбли с флешкой и настройками фирмвари.

                DOSBox


                > Учить его просто потому что он простой и в нём мало команд? Н

                Да. Ну и еще потому, что он позволяет понять откуда есть пошли сегменты, например.
                И прерывания.

                >Лучше уж тогда какую-нибудь ардуину взять: там и асм проще и какое-никакое общение с внешним миром.

                Может, и так. Но поможет ли это потом тебе узнать современный асм?
                А это может понадобиться, если хочешь что-то дебажить
                Ответить
                • > поможет ли это потом тебе узнать современный асм

                  А реалмодный асм в этом как поможет, лол? Он настолько же далёк от amd64 и современных ОС, насколько и сраная avr'ка. А регистры, инструкции и прерывания ты на любом проце освоишь.

                  > сегменты

                  Которые ты никогда не увидишь, даже как системный программист.
                  Ответить
                  • >А реалмодный асм в этом как поможет, лол?

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

                    >Которые ты никогда не увидишь,
                    Ну не совсем так, для разделения user/kernel ты можешь их встретить.
                    Ответить
                    • > для разделения user/kernel

                      Это настолько нишевая хуйня, что тех, кому это нужно в работе, можно по пальцам пересчитать...

                      Ну и я как-то не совсем понимаю, как костыльные "сегменты" из реалмода, которые тупо умножаются на 16, помогут понять разделение привилегий. Никак?

                      > Многие регистры остались

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

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


                        Если мы готовим программиста, а не мастера по написанию вебсайтов, то наверное мы должны научить его как работает user mode и kernel mode?

                        Или нет?

                        > Ну и я как-то не совсем понимаю,
                        Ну типа ты поймешь сегменты, потом поймешь как их используют в защищенном режиме

                        >Ага, а соглашения о вызовах другие. Сисколлы по-другому реализованы. А
                        Эмм... А какие в реальном режиме сисколы? Прерывания биоса и доса разе что;))

                        Если ты о том, что вместо INT теперь явная инструкция, то ок. Но в реальном-то сисколов не было

                        >От знания имён регистров только вред будет, имхо.

                        Ну не знаю)


                        Ок, а как бы учил ты?
                        Ответить
                        • > сисколов не было

                          А int 10h и int 21h это не сисколлы типа? 🙂

                          > как бы учил ты

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

                          А концепции, ради которых студентам и даётся асм (инструкции, регистры, прерывания, стек, вот это всё) изучить можно на любом проце, имхо.
                          Ответить
                          • >А int 10h и int 21h это не сисколлы типа? 🙂


                            MAKAKA>Прерывания биоса и доса разе что;))

                            Я считаю что нет, не сисколы. Сискол всё таки идет в kernel space, и ограничвает множество того, что может понаделать юзер.

                            Впрочем, это не точно)


                            Ну ладно, я согласен, что "крутить" настоящее железо интереснее
                            Ответить
                            • > Сискол всё таки идет в kernel space

                              Х.з., для меня сисколл -- это просто любой сервис, который ядро оси предоставляет прикладнухе. Файл там открыть, память замапать или клавишу считать.

                              А изоляция и сейчас далеко не во всех осях есть, что ж им теперь без сисколлов жить?
                              Ответить
                              • Как ты отличаешь сискол от обычной библиотеки?
                                Вот я запустил petuh.exe, он повесил обработчик прерывания номер 42 и по вызову его печатает на принтере хуй

                                Я теперь сискол?
                                Ответить
                                • > Я теперь сискол?

                                  Скорее ioctl для драйвера рисования хуёв, лол. Это же не часть оси.

                                  З.Ы. Х.з., я не люблю слишком уж формализовывать термины.
                                  Ответить
                                  • По какому принципу делается выбор между новым сисколом или драйвером с кучей ioctl мне тоже не всегда понятно, кстати
                                    Ответить
                                    • > выбор между новым сисколом или драйвером

                                      В микроядрах выбор очевиден, лол.

                                      В монолитках -- х.з., сисколл это обычно что-то прям общее, полезное большинству софта. А иоктл -- более нишевое, нужное конкретным прогам.
                                      Ответить
                                      • В идеальных микроядрах нет никаких ioctl, а есть IPC к процессу, представляющему драйвер:)
                                        Ответить
                      • зы: вообще есть такая ментальная ловушка: Если я что-то знаю, и это знание мне как-то помогло, то мне кажется, что и всем нужно получить такое же знание

                        Но может быть это и не так. Может, в 2021-м году учить 16-тибитный асм так же не нужно, как мне не нужно было изучать PDP-11 чтобы изучить юникс
                        Ответить
                        • > не нужно было изучать PDP-11

                          По инструкциям PDP-11, кстати, хорошо видно откуда появились все эти *i++ = *j++ в няшной.
                          Ответить
                            • Ну посмотри как там инструкции выглядят, сразу понятно будет.
                              Ответить
                              • Ты про (Rn)+ ?

                                Ну вот видишь, как полезно знать "мёртвую латынь"

                                Не зря филологи древнерусский и старославянский учат
                                Ответить
                  • Так, у меня куча вопросов.

                    Что вы называете реальным асмом?

                    О каких сегментах речь?

                    Ну и линканите, как это все завести на досбоксе попробовать то. Не знаю что загуглить. Просто асм под дос?
                    Ответить
                    • > Просто асм под дос?

                      Ну да, или под биос даже.

                      Tags: 8086, real mode, 16-bit.
                      Ответить
                      • >или под биос даже.
                        или даже под железо напрямую:)
                        Ответить
                        • > под железо напрямую

                          Оно не документировано, к сожалению. Банально память включить и мосты активировать не сможешь. Разве что старую материнку на блошином рынке найти...
                          Ответить
                          • Мы же говорим про DosBox, а там железо виртуальное.

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

                            Почти всё, что пишет Журден должно боль-мень работать с досбоксом.

                            Наверное и с VGA можно поебаться, если вдруг есть ненужный го д времени
                            Ответить
                            • > DosBox

                              Ну это как резиновую тян вместо тиндера юзать, имхо...
                              Ответить
                              • Ну а что делать, если современные "тян" закрыты толстым слоем абстракций
                                Ответить
                                • скорее орнул, это же какие-то совки зачем-то хрустели французской булкой
                                  и даже название изуродовали в самых лучших традициях перевратчиков на расеянскую мову
                                  Ответить
                    • > Что вы называете реальным асмом?
                      Асемблер под реальный (16-ти битный) режим IBMPC.

                      >О каких сегментах речь?
                      О сегментной адресации реального режима. Физический адрес (который поступал на контроллер памяти) складывался из адреса сегмента и смещения.
                      Оба регистра 16-ти битные.
                      Шина адреса изначально была 20 бит, так что адрес немного "заворачивался".

                      Указатели в ту пору могли быть "ближними" (содержать только смещение), "дальними" (и смещение и регистр) и еще всякими другими.

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

                      А можно было иметь разные сегменты для кода, стека итд.

                      В 32-х битном режиме это всё отменили, сегменты остались только для разделения на user и kernel mode. В 64-х битном все остальные использованя и вовсе запретили.

                      >как это все завести на досбоксе попробовать то
                      MASM
                      http://old-dos.ru/files/file_122.html

                      TASM
                      http://old-dos.ru/index.php?page=files&mode=files&do=show& id=120


                      Книги:
                      Кип Ирвин
                      https://vk.com/wall-51126445_18046

                      Юров
                      https://www.ozon.ru/context/detail/id/17981300/

                      Обе легко гуглятся.
                      Ответить
                      • Спасибо

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

                          Туда завезли страницы, и они депрейкетнули сегменты (ну кроме упомянутого выше разделения на кернел и юзер)

                          А жаль, интересная была идея.
                          Ответить
                • В реальном режиме боль-мень нормальный
                  ну можно наверное и в z80 тогда уже копнуть))
                  Ответить
                  • чего нормальный процессор то не взять?
                    где не надо зубрить какие регистры друзья, а какие оппозиция
                    Ответить
          • А мы делали лабы на асме в асмовставках в VisualStudio по книжкам, написанным для «DOS», поэтому оттуда можно было только задания брать (Т _ T)
            Ответить
              • малось похоже на багор, потому что я не понимаю как можно асмовставить код реального асма в студию
                Ответить
                • В достаточно древнюю студию наверняка можно. Версия 1.52 еще умела в 16-бит, но тогда эта хуита называлась не вижуалстудия, а "Microsoft Visual C++"
                  Ответить
                    • 16-битный инлайн ASM есть в компиляторе Digital Mars. Например, вот
                      https://github.com/DigitalMars/dmc/blob/9478d25a677f70dbe4fc0ed317cc5a5e5050ef8b/src/COMPAT16/MSCHKSTK.C
                      https://github.com/DigitalMars/dmc/blob/9478d25a677f70dbe4fc0ed317cc5a5e5050ef8b/src/core/DISKFREE.C
                      https://github.com/DigitalMars/dmc/blob/9478d25a677f70dbe4fc0ed317cc5a5e5050ef8b/src/DOS16/DOSVECT.C


                      И в Watcom C/C++ тоже вроде есть
                      Ответить
                        • типа можно смело писать в изюме, что умею кросскопуляцию

                          инлайн это все равно не настоящий ассеблер, а игрушечный костылик, типа как програмист на трубоп аскале
                          Ответить
                          • чото не настоящий

                            мы имбедили всякую хуиту чуть ли не в турбопаскале еще.
                            Ответить
                            • вот тема для срачика, где более ненастоящие инлайны

                              в этих ваших вставлялках даже стрюков нет, я уж не говорю о параметрах, флоу-контроле и прочем необходимом для написания полноценных программ
                              Ответить
                                • Причём из-за кучи инфы, которую ему надо скормить, он может бесшовно въебать эту вставку в свой код. И даже накопипастить или выкинуть её если ты не запретил.
                                  Ответить
                                  • CheckRAMPresent PROC NEAR STDCALL PUBLIC \
                                                     USES EAX ECX EBX DI ES,
                                                       LinBufferBase: DWORD,
                                                       BufferSize:    DWORD
                                    
                                                   LOCAL SMAPBuffer: SMAPOutput,
                                                       RAMBank:      DWORD,
                                                       RAMBankEnd:   DWORD

                                    рандомная паста
                                    Ответить
                      • - принципы
                        - задания

                        Дальше пили сам по аналогии. Хотя в том же Юрове было и 32 бита.
                        Ответить
                        • Было
                          И у Ирвина было

                          Да только это уже тогда не про дос.

                          Когда ты нуб, тебе трудно понять где у тебя INT 21h, а где нужно дернуть функцию из win32api соблюдя колконвешнешн


                          Так что если ты не Борм крис касперски, то книжка про дос не особо-то и поможет кмк
                          Ответить
                          • Если они вставки ебашили, то весь обвес со вводом/выводом можно было сделать на стороне няшной. А на асме чисто само "вычислительное ядро".

                            А mov, add и т.п. на всех процах почти одинаково выглядят, можно по аналогии подобрать подходящее.
                            Ответить
                    • > книжкам, написанным для «DOS»
                      > Там был 32-х битный ASM
                      watt?
                      Ответить
      • >Лолчто, в вузе не дают IDE?

        нет не дают
        и кад не дают
        и интерпрайзговно не дают
        Ответить
        • Странно, учитывая что многие компании дают вузам софт бесплатно

          А где же студенты их берут?
          Ответить
          • на торенте

            или из 7гб архива с готовыми лабами и крякнутым софтом который передается из поколения в поколение уже 20 лет
            Ответить
            • Мы просто из машзала копировали или друг у друга...

              Официально никто ничего не выдавал, видимо предполагалось, что мы всё там на месте сделаем и сдадим (особенно курсачи и дипломы, лол).
              Ответить
        • как-то грустно у тебя было

          у нас был MSDN AA, а до того, как мы с ним познакомились, то преподы советовали бесплатные IDE типа той, что шла в комплекте с тогдашним MinGW

          борланд паскаль наверное был какой-то спёртый, но это софт из Юрского периода

          и CAD у нас тоже был, причём написанный прямо в моём же вузе
          Ответить
    • > 3. Лаконичный и изящный код.

      > Одно из очевидных достоинств языка. Python — компактность программного кода. Например, решение задачи — поменять местами значения двух переменных — на языке Паскаль решается в три оператора, в Python — в одну строку (таблица ниже):

      > Сравнение синтаксиса переприсвоения переменных в Паскаль и Python

      > Паскаль
      c := a;
      a := b;
      b := c;

      >Python
      a, b = b, a

      Да, прямо вот чувствуется серьезность подхода, как он этот паскаль уделал! Вы не можете обменять две переменные в одну строчку в паскале - паскаль сосет!

      В сишке у меня тоже есть уже написанный где-то макрос SWAP(), который отлично решает эту задачу в одну строчку, но приводить это как аргумент крутизны сишки над каким-то другим языком... как-то глупо.
      Ответить
      • > a, b = b, a

        Да говно какое-то, зачем-то по 2 раза повторяются имена...

        Даже в крестах это выглядит лучше и понятнее: std::swap(a, b).
        Ответить
        • оно еще небось умеет круто свапить для каких нить векторов не копируя туда-сюда?
          Ответить
          • Ну да, если мувается, то будет свапаться без оверхеда.
            Ответить
            • там вроде была еще какая-то спецификация для листов или векторов, которая даже до 11 делала магию

              Пусть v1 хранит свои данные в куче, и v2 их там хранит.
              Они обменялись ссылками, и все.
              Ответить
        • std::swap() для битфилдов не работает, так что SWAP()-макросня лучше.
          Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8