Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
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 любимых исполнителей и любимого трека
https://habr.com/ru/company/skillfactory/blog/559010/
> Что не так с современным преподаванием информатики
> Python вместо знаков препинания или ключевых слов (в Паскале такими словами являются «begin» и «end») использует отступы для обозначения выполнения блока. Программы, написанные в одну строку или с другими нарушениями в структуре, не смогут быть выполненными в Python. Такая особенность позволит сократить размер кода и увеличить читаемость программы. Синтаксис Python приучит школьников писать «красивый» код, что улучшит написание и понимание кода.
Python обладает динамической типизацией. Это означает, что переменная связывается с типом во время присваивания значения, а значит, нет необходимости заранее объявлять переменную. Это упрощает понимание типов данных и разрешает путаницу в различных длинах целочисленных и вещественных, строковых и символьных типах, а также сокращает размер кода (таблица ниже).
bat файлы не используют понятие "типизации", это упрощает понимание типов данных и разрешает путаницу в различных длинах целочисленных и вещественных, строковых и символьных типах, а также сокращает размер кода (таблица ниже).
----------
Снова и снова убеждаюсь, что учить школьников нужно на паскале, а первокурсников на чистой сишечке
Баба права, въебал ей плюс. У нас в вузе препод заставлял делать дабы в «DOS Box». Было прикольно, конечно. Но мне кажется это из-за того, что он 20 лет назад давал лабы в «DOS», и ему нет необходимости переходить на что-то другое. Один раз он спросил сколько байт в «int», я ему доказывал что 4, а он мне, что 2. Он был прав, но мог бы хотя бы сказать, что это зависит от.
В free pascal если я не ошибаюсь int по соглашению это алиас либо smallint либо longint, в первом случае он равен word только знаковый, во втором это наш любимый знаковый инт в четыре байта на 32х битных системах и выше. А на 16 бит он
Word это целочисленный тип в паскале, он равен одному машинному слову, что бы это не значило. Обычно он собственно равен разрядности системы, но не знаю испортилась ли эта закономерность в реализациях для х64
Если я правильно понимаю word должен покрывать пространство адресации памяти полностью.
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.
Судя по хабру кажется, что если сейчас начать учить людей реальному асму, то такая вонь подымица: зачем нам асм? Давайте учите нас в VSCode делать сайты на Angular
А действительно? Ты ведь его уже и не запустишь без виртуалки и/или ёбли с флешкой и настройками фирмвари.
Учить его просто потому что он простой и в нём мало команд? Ну такое. Лучше уж тогда какую-нибудь ардуину взять: там и асм проще и какое-никакое общение с внешним миром.
> поможет ли это потом тебе узнать современный асм
А реалмодный асм в этом как поможет, лол? Он настолько же далёк от amd64 и современных ОС, насколько и сраная avr'ка. А регистры, инструкции и прерывания ты на любом проце освоишь.
> сегменты
Которые ты никогда не увидишь, даже как системный программист.
Х.з., на примере какой-нибудь ардуины. Имхо, студентам будет интереснее покрутить какой-нибудь сервопривод, чем дрочить мёртвую латынь в чёрной консольке.
А концепции, ради которых студентам и даётся асм (инструкции, регистры, прерывания, стек, вот это всё) изучить можно на любом проце, имхо.
Как ты отличаешь сискол от обычной библиотеки?
Вот я запустил petuh.exe, он повесил обработчик прерывания номер 42 и по вызову его печатает на принтере хуй
зы: вообще есть такая ментальная ловушка: Если я что-то знаю, и это знание мне как-то помогло, то мне кажется, что и всем нужно получить такое же знание
Но может быть это и не так. Может, в 2021-м году учить 16-тибитный асм так же не нужно, как мне не нужно было изучать PDP-11 чтобы изучить юникс
Мы же говорим про DosBox, а там железо виртуальное.
Вполне можно помигать лампочками на клавиатуре, повесить свой обработчик клавиатуры, или связать таймер с писи спикером выдавив из него противный писк:)
Почти всё, что пишет Журден должно боль-мень работать с досбоксом.
Наверное и с VGA можно поебаться, если вдруг есть ненужный го д времени
скорее орнул, это же какие-то совки зачем-то хрустели французской булкой
и даже название изуродовали в самых лучших традициях перевратчиков на расеянскую мову
> Что вы называете реальным асмом?
Асемблер под реальный (16-ти битный) режим IBMPC.
>О каких сегментах речь?
О сегментной адресации реального режима. Физический адрес (который поступал на контроллер памяти) складывался из адреса сегмента и смещения.
Оба регистра 16-ти битные.
Шина адреса изначально была 20 бит, так что адрес немного "заворачивался".
Указатели в ту пору могли быть "ближними" (содержать только смещение), "дальними" (и смещение и регистр) и еще всякими другими.
Модель памяти тоже была разная: можно было указать все сегменты на один адрес, и получить всю память размером с один сегмент
А можно было иметь разные сегменты для кода, стека итд.
В 32-х битном режиме это всё отменили, сегменты остались только для разделения на user и kernel mode. В 64-х битном все остальные использованя и вовсе запретили.
А, помню, телегу про смещение в старой книге по посцалю, тогда ещё не вкурил, нахуя это. На современных системах это просто бесполезные названия бля двух половин одного числа.
Причём из-за кучи инфы, которую ему надо скормить, он может бесшовно въебать эту вставку в свой код. И даже накопипастить или выкинуть её если ты не запретил.
> Одно из очевидных достоинств языка. Python — компактность программного кода. Например, решение задачи — поменять местами значения двух переменных — на языке Паскаль решается в три оператора, в Python — в одну строку (таблица ниже):
> Сравнение синтаксиса переприсвоения переменных в Паскаль и Python
> Паскаль
c := a;
a := b;
b := c;
>Python
a, b = b, a
Да, прямо вот чувствуется серьезность подхода, как он этот паскаль уделал! Вы не можете обменять две переменные в одну строчку в паскале - паскаль сосет!
В сишке у меня тоже есть уже написанный где-то макрос SWAP(), который отлично решает эту задачу в одну строчку, но приводить это как аргумент крутизны сишки над каким-то другим языком... как-то глупо.
MAKAKA # 0
но за 16-ю строчку нужно конечно отрезать руки, тут спорить не ьбуду
PolinaAksenova # 0
> Что не так с современным преподаванием информатики
> Python вместо знаков препинания или ключевых слов (в Паскале такими словами являются «begin» и «end») использует отступы для обозначения выполнения блока. Программы, написанные в одну строку или с другими нарушениями в структуре, не смогут быть выполненными в Python. Такая особенность позволит сократить размер кода и увеличить читаемость программы. Синтаксис Python приучит школьников писать «красивый» код, что улучшит написание и понимание кода.
bormand # 0 ⇈
MAKAKA # 0 ⇈
----------
Снова и снова убеждаюсь, что учить школьников нужно на паскале, а первокурсников на чистой сишечке
vistefan # 0 ⇈
Жалко, пиздатый язык.
MAKAKA # 0 ⇈
gologub # 0 ⇈
MAKAKA # 0 ⇈
> Проблема в том, что чтобы установить себе IDE для этих устаревших языков, нужно пройти семь кругов > ада.
Лолчто? ABC.NET
> Найти IDE под них можно только на торрентах, и у этих IDE совершенно нет community.
Лолчто, в вузе не дают IDE?
>Невозможно старшему поколению привить любовь к современной разработке с её IDE, фреймворками, контейнерами
БЛЯДЬ
bormand # 0 ⇈
MAKAKA # 0 ⇈
Кстати, bp.exe / tp.exe -- самая настоящая IDE, синенькая которая. На тот момент вообще самая крутая наверное из всех существующих.
Интерактивный дебаг с брейкпоинтом и watch листом блядь!! В 1992-м году!!
bormand # 0 ⇈
vistefan # 0 ⇈
guest # 0 ⇈
MAKAKA # 0 ⇈
Но int вовсе не обязан иметь такой размер. Всё, что мы знаем про int, это что он больше чара, и минимум 2.
vistefan # 0 ⇈
vistefan # 0 ⇈
MAKAKA # 0 ⇈
> не зависел от ворда?
Что ты называешь вордом, кстати? Размер регистра?
Появился он действительно так, и имел размер 16 бит
Но потом МС всё спутала
Arduinho # 0 ⇈
vistefan # 0 ⇈
Если я правильно понимаю word должен покрывать пространство адресации памяти полностью.
MAKAKA # 0 ⇈
У MS просто всё с этим типом крайне плохо
DWORD32
DWORD64
ну ты понял
3.14159265 # 0 ⇈
Кстати не факт.
Ничто не мешает CHAR_BIT быть 16.
Тогда на 16-битке он будет равен чару. И sizeof(int) будет 1.
guest # 0 ⇈
gologub # 0 ⇈
vistefan # 0 ⇈
PolinaAksenova # 0 ⇈
А дебажили в debug.com, да.
bootcamp_dropout # 0 ⇈
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.
gologub # 0 ⇈
какую-то хуиту придумали, кастрировать и выпускать надо буквально тонны комаров
и они быстро передохнут и начинай сначала
а еще они не приносят денге
MAKAKA # 0 ⇈
.org 100h, сук)))
офсет кома же?
gologub # 0 ⇈
MAKAKA # 0 ⇈
gologub # 0 ⇈
MAKAKA # 0 ⇈
bormand # 0 ⇈
А действительно? Ты ведь его уже и не запустишь без виртуалки и/или ёбли с флешкой и настройками фирмвари.
Учить его просто потому что он простой и в нём мало команд? Ну такое. Лучше уж тогда какую-нибудь ардуину взять: там и асм проще и какое-никакое общение с внешним миром.
А реалмодным асмом сейчас только пугать, имхо.
MAKAKA # 0 ⇈
DOSBox
> Учить его просто потому что он простой и в нём мало команд? Н
Да. Ну и еще потому, что он позволяет понять откуда есть пошли сегменты, например.
И прерывания.
>Лучше уж тогда какую-нибудь ардуину взять: там и асм проще и какое-никакое общение с внешним миром.
Может, и так. Но поможет ли это потом тебе узнать современный асм?
А это может понадобиться, если хочешь что-то дебажить
bormand # 0 ⇈
А реалмодный асм в этом как поможет, лол? Он настолько же далёк от amd64 и современных ОС, насколько и сраная avr'ка. А регистры, инструкции и прерывания ты на любом проце освоишь.
> сегменты
Которые ты никогда не увидишь, даже как системный программист.
MAKAKA # 0 ⇈
Ну вообще говоря да, поможет. Многие регистры остались, просто увеличились и получили доп букву. Многие инструкции остались..
>Которые ты никогда не увидишь,
Ну не совсем так, для разделения user/kernel ты можешь их встретить.
bormand # 0 ⇈
Это настолько нишевая хуйня, что тех, кому это нужно в работе, можно по пальцам пересчитать...
Ну и я как-то не совсем понимаю, как костыльные "сегменты" из реалмода, которые тупо умножаются на 16, помогут понять разделение привилегий. Никак?
> Многие регистры остались
Ага, а соглашения о вызовах другие. Сисколлы по-другому реализованы. Анальных граничений на режимы адресации нету.
От знания имён регистров только вред будет, имхо. Потому что конпеляторы их давным-давно не юзают "по назначению".
MAKAKA # 0 ⇈
Если мы готовим программиста, а не мастера по написанию вебсайтов, то наверное мы должны научить его как работает user mode и kernel mode?
Или нет?
> Ну и я как-то не совсем понимаю,
Ну типа ты поймешь сегменты, потом поймешь как их используют в защищенном режиме
>Ага, а соглашения о вызовах другие. Сисколлы по-другому реализованы. А
Эмм... А какие в реальном режиме сисколы? Прерывания биоса и доса разе что;))
Если ты о том, что вместо INT теперь явная инструкция, то ок. Но в реальном-то сисколов не было
>От знания имён регистров только вред будет, имхо.
Ну не знаю)
Ок, а как бы учил ты?
bormand # 0 ⇈
А int 10h и int 21h это не сисколлы типа? 🙂
> как бы учил ты
Х.з., на примере какой-нибудь ардуины. Имхо, студентам будет интереснее покрутить какой-нибудь сервопривод, чем дрочить мёртвую латынь в чёрной консольке.
А концепции, ради которых студентам и даётся асм (инструкции, регистры, прерывания, стек, вот это всё) изучить можно на любом проце, имхо.
MAKAKA # 0 ⇈
MAKAKA>Прерывания биоса и доса разе что;))
Я считаю что нет, не сисколы. Сискол всё таки идет в kernel space, и ограничвает множество того, что может понаделать юзер.
Впрочем, это не точно)
Ну ладно, я согласен, что "крутить" настоящее железо интереснее
bormand # 0 ⇈
Х.з., для меня сисколл -- это просто любой сервис, который ядро оси предоставляет прикладнухе. Файл там открыть, память замапать или клавишу считать.
А изоляция и сейчас далеко не во всех осях есть, что ж им теперь без сисколлов жить?
MAKAKA # 0 ⇈
Вот я запустил petuh.exe, он повесил обработчик прерывания номер 42 и по вызову его печатает на принтере хуй
Я теперь сискол?
bormand # 0 ⇈
Скорее ioctl для драйвера рисования хуёв, лол. Это же не часть оси.
З.Ы. Х.з., я не люблю слишком уж формализовывать термины.
MAKAKA # 0 ⇈
bormand # 0 ⇈
В микроядрах выбор очевиден, лол.
В монолитках -- х.з., сисколл это обычно что-то прям общее, полезное большинству софта. А иоктл -- более нишевое, нужное конкретным прогам.
MAKAKA # 0 ⇈
gologub # 0 ⇈
MAKAKA # 0 ⇈
MAKAKA # 0 ⇈
Но может быть это и не так. Может, в 2021-м году учить 16-тибитный асм так же не нужно, как мне не нужно было изучать PDP-11 чтобы изучить юникс
bormand # 0 ⇈
По инструкциям PDP-11, кстати, хорошо видно откуда появились все эти *i++ = *j++ в няшной.
MAKAKA # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
Ну вот видишь, как полезно знать "мёртвую латынь"
Не зря филологи древнерусский и старославянский учат
vistefan # 0 ⇈
Что вы называете реальным асмом?
О каких сегментах речь?
Ну и линканите, как это все завести на досбоксе попробовать то. Не знаю что загуглить. Просто асм под дос?
bormand # 0 ⇈
Ну да, или под биос даже.
Tags: 8086, real mode, 16-bit.
MAKAKA # 0 ⇈
или даже под железо напрямую:)
bormand # 0 ⇈
Оно не документировано, к сожалению. Банально память включить и мосты активировать не сможешь. Разве что старую материнку на блошином рынке найти...
MAKAKA # 0 ⇈
Вполне можно помигать лампочками на клавиатуре, повесить свой обработчик клавиатуры, или связать таймер с писи спикером выдавив из него противный писк:)
Почти всё, что пишет Журден должно боль-мень работать с досбоксом.
Наверное и с VGA можно поебаться, если вдруг есть ненужный го д времени
bormand # 0 ⇈
Ну это как резиновую тян вместо тиндера юзать, имхо...
MAKAKA # 0 ⇈
guest # 0 ⇈
gologub # 0 ⇈
MAKAKA # 0 ⇈
gologub # 0 ⇈
и даже название изуродовали в самых лучших традициях перевратчиков на расеянскую мову
MAKAKA # 0 ⇈
Асемблер под реальный (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/
Обе легко гуглятся.
vistefan # 0 ⇈
А, помню, телегу про смещение в старой книге по посцалю, тогда ещё не вкурил, нахуя это. На современных системах это просто бесполезные названия бля двух половин одного числа.
MAKAKA # 0 ⇈
Туда завезли страницы, и они депрейкетнули сегменты (ну кроме упомянутого выше разделения на кернел и юзер)
А жаль, интересная была идея.
Arduinho # 0 ⇈
gologub # 0 ⇈
> простой
> мало команд
wat?
MAKAKA # 0 ⇈
ну можно наверное и в z80 тогда уже копнуть))
gologub # 0 ⇈
где не надо зубрить какие регистры друзья, а какие оппозиция
JloJle4Ka # 0 ⇈
bormand # 0 ⇈
rotoeb # 0 ⇈
MAKAKA # 0 ⇈
j123123 # 0 ⇈
JloJle4Ka # 0 ⇈
j123123 # 0 ⇈
И в Watcom C/C++ тоже вроде есть
bormand # 0 ⇈
gologub # 0 ⇈
инлайн это все равно не настоящий ассеблер, а игрушечный костылик, типа как програмист на трубоп аскале
MAKAKA # 0 ⇈
мы имбедили всякую хуиту чуть ли не в турбопаскале еще.
gologub # 0 ⇈
в этих ваших вставлялках даже стрюков нет, я уж не говорю о параметрах, флоу-контроле и прочем необходимом для написания полноценных программ
PolinaAksenova # 0 ⇈
bormand # 0 ⇈
gologub # 0 ⇈
рандомная паста
MAKAKA # 0 ⇈
bormand # 0 ⇈
- задания
Дальше пили сам по аналогии. Хотя в том же Юрове было и 32 бита.
MAKAKA # 0 ⇈
И у Ирвина было
Да только это уже тогда не про дос.
Когда ты нуб, тебе трудно понять где у тебя INT 21h, а где нужно дернуть функцию из win32api соблюдя колконвешнешн
Так что если ты не Борм крис касперски, то книжка про дос не особо-то и поможет кмк
bormand # 0 ⇈
А mov, add и т.п. на всех процах почти одинаково выглядят, можно по аналогии подобрать подходящее.
gologub # 0 ⇈
обшивка котельными листами!
gologub # 0 ⇈
> Там был 32-х битный ASM
watt?
bootcamp_dropout # 0 ⇈
нет не дают
и кад не дают
и интерпрайзговно не дают
MAKAKA # 0 ⇈
А где же студенты их берут?
bootcamp_dropout # 0 ⇈
или из 7гб архива с готовыми лабами и крякнутым софтом который передается из поколения в поколение уже 20 лет
bormand # 0 ⇈
Официально никто ничего не выдавал, видимо предполагалось, что мы всё там на месте сделаем и сдадим (особенно курсачи и дипломы, лол).
bootcamp_dropout # 0 ⇈
MAKAKA # 0 ⇈
Desktop # 0 ⇈
у нас был MSDN AA, а до того, как мы с ним познакомились, то преподы советовали бесплатные IDE типа той, что шла в комплекте с тогдашним MinGW
борланд паскаль наверное был какой-то спёртый, но это софт из Юрского периода
и CAD у нас тоже был, причём написанный прямо в моём же вузе
j123123 # 0 ⇈
> Одно из очевидных достоинств языка. Python — компактность программного кода. Например, решение задачи — поменять местами значения двух переменных — на языке Паскаль решается в три оператора, в Python — в одну строку (таблица ниже):
> Сравнение синтаксиса переприсвоения переменных в Паскаль и Python
> Паскаль
>Python
Да, прямо вот чувствуется серьезность подхода, как он этот паскаль уделал! Вы не можете обменять две переменные в одну строчку в паскале - паскаль сосет!
В сишке у меня тоже есть уже написанный где-то макрос SWAP(), который отлично решает эту задачу в одну строчку, но приводить это как аргумент крутизны сишки над каким-то другим языком... как-то глупо.
bormand # 0 ⇈
Да говно какое-то, зачем-то по 2 раза повторяются имена...
Даже в крестах это выглядит лучше и понятнее: std::swap(a, b).
MAKAKA # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
Пусть v1 хранит свои данные в куче, и v2 их там хранит.
Они обменялись ссылками, и все.
j123123 # 0 ⇈
guest # 0 ⇈
j123123 # 0 ⇈
https://en.cppreference.com/w/cpp/language/bit_field
Support # 0 ⇈
nyTuH_nugop # 0