Константин Львов
@klvov
программист, программист СУБД, веб-разработчик
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity
программист, программист СУБД, веб-разработчик
Information
Да, формально вы правы, если использовать СБПэй, то необходимости в интернет-банкинге конкретного банка не будет. То есть жесткой необходимости привязываться к сервису интернет-банкинга нет. Но зависит от конкретной реализации, то есть до СБП можно добраться и через интернет-банкинг (который выступает как прокси, плюс обеспечивает авторизацию клиента, и т.п.), и такие решения встречаются.
На кассах, кстати, по СБП платить не очень удобно, потому что платеж завязан на банковское приложение, а оно - на интернет-банкинг того конкретного банка, приложение которого используется для оплаты. И если в этот момент он тормозит или глючит, то запросто можно получить ситуацию, когда один человек стоит перед терминалом, у него не проходит платеж, и очередь сзади уже собирается его линчевать.
При традиционной оплате картами интернет-банкинг напрямую не требуется, там задействуется только обмен информацией с процессинговыми центрами, а у них стабильность работы выше, и вероятность, что платеж зависнет - меньше.
+1, всего один или два раза спрашивал там не самый сложный вопрос (который, однако, не хватило понимания, как загуглить), и отношение отвечающих было не просто корректное, а прямо доброжелательное. А потом как-то научился понимать, какие слова вбивать в форму поиска Гугла, чтобы с большой вероятностью получать правильный ответ, который, обычно, как раз на StackOverflow и отвечен. Но, надо, во-первых, использовать английский язык (для русского эти алгоритмы у них работают, но гораздо хуже), ну и быть морально готовому, что нужный ответ может оказаться не по первой ссылке, а по второй, третьей, а то и на следующей странице.
Попробуйте почитать книжку Секацкого "Моги и их могущества". Вам может понравиться.
Продолжайте в том же духе, и, если не остановитесь, то, перечитав эту статью лет через 10, вы найдете в ней достаточно моментов, которые вам захочется сделать по-другому. Искренне желаю успеха на этом тернистом пути. А пока просто акцентирую внимание на моменте, который мне показался самым спорным в вашем решении - вы исходите из предположения, что между первым тэгом <description> и последним тэгом </description> всегда будет, условно говоря, "чистый текст с описанием" (то же относится к вашей обработке тэгов <body> и </body>). В частных случаях это может быть так, но обычно в xml-подобных форматах допускается произвольная вложенность тэгов, и на ней наивный алгоритм сразу даст сбой.
абстрактную
Хехе, вы ответили автору этой программы ) Воистину, тесен мир.
Я уже сейчас не помню в подробностях, как там было что написано, но ощущение было, что все довольно аккуратно (кастомная реализация HTTP и FTP над сокетами в Windows). Когда мне тоже пришлось реализовывать подмножество HTTP на уровне сокетов (потому что все "промышленные" и "стандартные" библиотеки так и не удалось заставить работать нормально, хотя мы всей командой два месяца пытались), то те знания всплыли и пригодились.
Это одна из фраз, которые считаются чем-то вроде общепринятой конвенциональной мудрости, но у меня вызывают что-то вроде глухого раздражения. Не знаю точно, в чем здесь дело, возможно в том, что здесь имплицитно подразумевается, что человек может сделать абсолютно всё, а если он что-то не сделал, хотя хотел, то это целиком его вина, потому что он "даже не попытался". Хотя на практике, после того, как заканчивается детский и подростковый возраст, становится понятно, что возможности человека ограничены достаточно узким коридором возможностей, и лезть за пределы этого коридора чревато. И рассуждение "Лучше жалеть о том, что сделал, чем о том, что не сделал" может привести к нежелательным последствиям, если, например, применить его к гипотетической ситуации, когда я придумал, что нашел способ, как летать с помощью силы мысли, залез на многоэтажку и полетел. И вот лечу я, и думаю, "ну вот, я сделал это, проверил свой новый способ летать, теперь не буду жалеть зато, что не проверил, правда летать что-то не получается... ё".
Аргументация оставляет желать лучшего.
Это цитата из Чехова.
Понятность кода после разворота динамических вызовов в свичи повысилась.
Хехе, я как-то пошутил, что, мол, полиморфизм - это такой архитектурный подход к построению программ, который нужен для того, чтобы чтения исходного кода было недостаточно для понимания, как ведет себя программа, и, чтобы это понять, надо ее обязательно запустить. Сейчас мне кажется, что в этой шутке оказалась занимающая непропорционально большое место доля правды.
как-будто получилось O(n^2) по памяти, как в задаче про шахматную доску и зерна пшеницы.
Ну вот так оно и было, приходишь ты, студень первого курса, учиться, а тебе сразу: вот матрицы! вот как вычислять определитель! не думай, вычисляй! Ну, как Фейнман в Бразилии удивлялся, почему студенты ничего не понимают. Вот и мы не понимали так же.
Посмотрев же статью Википедии "Линейная алгебра", я понял, что так ничего и не понял. Хотя, как-будто бы, между понятиями "линейной зависимости" и "третьей нормальной формы" (где требуется, чтобы функциональной зависимости между ячейками кортежа как раз не было) можно попытаться провести аналогию.
ну там всего 32 карты участвуют в розыгрыше, то есть когнитивная нагрузка, чтоб запомнить, что у кого на руках и кто уже что сбросил, посильная почти для всех. Но игра все равно не перестает быть интересной из-за нюансов )
Да уж, если бы на первом занятии по математике в ВУЗе кто-нибудь сказал бы фразу "вот смотрите, есть много задач, когда надо преобразовать один набор координат в другой: сжать, растянуть, покрутить. Это удобно рассчитывать с помощью приемов из линейной алгебры, в которой используются матрицы и операции над ними, сейчас мы будем это все постепенно изучать", то насколько бы легче было эту науку (которая в итоге не пригодилась) изучать и понимать. А так это превратилось в какое-то зубрилово в первые несколько лет, а под конец, когда стало приблизительно понятно, что это было, зачем оно надо и где оно используется, стало также понятно, что изучать надо было не совсем это. Хотя это не прошло бесполезно, "ум в порядок приводит" (с) Ломоносов
1) мне не сразу это пришло в голову, 2) Vim скорее всего такого бы не понял, а мне он нужен. А с Idea такое бы прокатило, ее клавиатурную схему не пришлось бы перенастраивать.
мое скромное имхо сбоку: тестировщик, который умеет писать автотесты - это не тестировщик, а программист. но программист обычно хочет писать новые полезные фичи, а не покрывать тестами легаси, поэтому тут и возникает такое внутреннее противоречие
Красивый слог.
А наушники хорошие, но - 1) давят на уши, 2) спать нельзя в них, мешают, 3) большие, носить с собой неудобно, занимают много места. Поэтому тут уж кому что больше важно...
Да уж, дочитав до первой вставки "псевдокода на языке Лисп" я понял, что эту вставку никто никогда не поймет, если он не изучал тему символьного программирования ранее, а кто изучал, уже, скорее всего, будет иметь хотя бы приблизительное представление о том, что такое рекурсия. Чтобы понять, что в ней написано, надо уже знать, что такое S-выражения, скобочная нотация, defun, cond, null, и t. И даже если до этих перечисленных понятий еще можно как-то догадаться, то что такое car и cdr - надо только знать. Что ж, вот как они расшифровываются: "car" расшифровывается как "content of address register", а "cdr" - "content of decrement register", а семантика их, соответственно, исторически значит "первый элемент списка" и "остаток списка". Скорее всего, в первых LISP-машинах в этих регистрах хранились соответствующие указатели (но это не точно).
Очень интересно. Как-будто бы этот ChatGPT - это первая настоящая реализация той самой "китайской комнаты", которая существовала раньше лишь как философская концепция и умственный эксперимент.
Ну, в истории компьютерных наук есть аналогия - LISP тоже Джон МакКарти сначала придумал как математическую абстракцию, а его какой-то аспирант, экспериментируя, обнаружил, что ее можно переписать в виде программного кода, и то, что у него получилось, стало первым интерпретатором LISP-а.
Не могу не процитировать в комментариях к такой статье известное: