Художники решили пересмотреть подходы к математике и обнаружили, что при делении цифры 8 пополам получается или 3 или 0
Какого типа будет DATA(lv_amt_3) = lv_amt_1 + lv_amt_2 ?
Написал всё просто и понятно, и мне казалось очевидно, что будет на выходе:
1 2 3 4 5 6 7 |
DATA: lv_amt_1 TYPE p LENGTH 15 DECIMALS 2. DATA: lv_amt_2 TYPE p LENGTH 15 DECIMALS 2. lv_amt_1 = '1.50'. lv_amt_2 = '2.00'. DATA(lv_amt_3) = lv_amt_1 + lv_amt_2. |
Как же я ошибся! А будет вот что:
Блины
Человеческие языки – они странные. К этому преобразованию мы привыкли:
Rail – rails – рельс – рельсы
Удивительно, но похожая трансформация есть и в обратную сторону:
Блин – блины – blini – blinis
А кроме того, “блин” происходит от слова “млинъ”, а английская википедия говорит, что:
Usage in modern Russian
Aside from referring to pancakes, the word blin (блин) is used in Russian as a linguistic signal in communications. It is used when a person talks to others and is searching for the right words or to express their dissatisfaction as a euphemism for “damn.”
Они … эмм …несколько упрощают реальную последовательность образования эвфемизмов и слишком узко понимают “современность” языка.
ЗЫ. Кстати, так называемая “современность” (modern) – понятие тоже не вполне очевидное, потому что после модерна уже пришёл постмодерн, на смену которому заявился метамодерн. И вот мы находимся где-то здесь и сейчас.
Актёры и политика
С одной стороны:
Не стоит слушать актёров, что они думают о политике. Даже если они известные или великие.
Во-первых, это люди с очень подвижной психикой. Очень подвижной. Они способны перенимать любые требуемые убеждения, несмотря на их логичность и действенность. Они способны держать лицо в любой непонятной ситуации.
Во-вторых, несмотря на известность, часто актёры являются последним звеном без своего голоса. Всегда есть режиссёры, продюсеры и другие действующие лица, которые объяснят им что говорить, что делать и куда идти.
В-третьих, они часто бывают обязаны влиятельным людям, потому что именно эти влиятельные люди напрямую говорят им какие они замечательные, выдают им медальки, гранты, зовут на корпоративы. Короче говоря, их прикармливают. Очень сложно укусить ту руку, которая актёра кормила и он был за это благодарен.
В какой-то степени это касается певцов и певиц, не являющихся лидерами своих групп и поющих чужие песни.
С другой стороны:
Как люди с тонкой душевной организацией они хорошо чувствуют, что происходит в обществе. Как люди публичные, они имеют больше возможностей набрать самых разнообразных ощущений из общества.
Именно актёры благодаря своим талантам способны убедительно передать мысли и чувства, достучаться до сердец окружающих.
Но это палка о трёх концах:
Стоит ли слушать программистов о политике?
Они любят более очевидные, понятные и простые формулировки для правил.
Не любят исключения.
Видят, что работу целого министерства можно автоматизировать одним скриптом.
Вывод: это хуже ядерной бомбы, с таким подходом от политики и камня на камне не останется.
MS Excel до сих пор не умеет
Неожиданно обнаружилось, что он всё ещё не умеет в большую арифметику.
Я думал вот уже 2023 год на дворе, уже можно больше 65000 строк и всякое такое. А оказывается большие суммы вводить ещё нельзя.
Excel до сих пор оперирует денежными суммами внутри в формате Float Double, и поменять это нельзя.
Смотрите для подробностей:
https://en.wikipedia.org/wiki/Double-precision_floating-point_format
Это означает что в числе может быть 15 значащих разрядов, и хоть и можно ввести сумму в сто триллионов, но обсчитывать её с точностью до копеек уже нельзя.
1 234 567 890 123.45 – такую сумму ещё можно обсчитывать точно “до копейки”
Но если уже ввести сумму
12 345 678 901 234.56
то она автоматически превратится в
12 345 678 901 234.50
Соответственно:
1 234 567 890 123 456.78 ->1 234 567 890 123 450.00
И не будет никакой ошибки, просто страдает точность записи и вычислений.
Может это не очень существенно, но вести учёт “до копейки” по правилам бухгалтерского учёта становится невозможно.
Можно оформить данные значения как текст, что может в некоторых моментах и выручит, проводить точные вычисления всё равно не выйдет, потому что потеря точности означает, что:
1 234 567 890 123 456.78 + 1.23 даст значение 1 234 567 890 123 450.00
Кроме того, форматировать такие данные становится вручную очень тяжело, да и формулы типа =СУММ(B2:B102) будут игнорировать такие “текстовые” значения.
Это позор какой-то
Слушал вчера подкаст, там неожиданно, хоть выпуск был за явлен как гиковский, тема свернула в сторону гендерных вопросов.
И был один главный и трое регулярнейших. И вот главный спорил с ними, просто срамота ходячая, что немаловажно, апеллировал к так называемой “норме”.
Окэ-эй, думаю я: если ты споришь в своём кругу о “норме”, а с тобой большинство не соглашается, значит “норма” не такая. Факт медицинский!
Вполне возможно, что он иногда думает, что ездить на мотоцикле с револьвером – это вариант нормы.
Всё вышеописанное не означает, что необходимо осудить его за это и бросить слушать подкаст. Нет, достаточно иметь своё собственное мнение. [+]
RARBG всё!
Очень жаль, хоть и ожидаемо.
Ковид, его побочки, война и инфляция – четыре всадника нашего очередного апокалипсиса.
(далее…)31 мая – Всемирный день без табака
Сегодня пытался вспомнить, когда бросил курить. Не помню.
Если верить записи: https://entropii.net/?p=1156, то как минимум 11 лет назад.
Комаровский-то оказывается тоже бросал, вот его сегодняшнее видео на тему: https://www.youtube.com/watch?v=IxoO0lsRmpo
Есть нечто общее у кофейни и Microsoft
У меня на районе тьма кофеен, и я как-то пристрастился после обеда выйти прогуляться за чашечкой капучино.
В пяти/десятиминутной доступности у меня примерно десять точек, где можно взять стаканчик.
И вот эти все кофейни, каждый во что горазд, придумывают свои маркетинговые ухищрения. У кого-то каждая шестая или седьмая чашка кофе бесплатно, у кого-то считаются только “на вынос”, у кого-то по номеру телефона, у кого-то по последним четырем цифрам, у кого-то надо печати на карту ставить, кто-то держит карточки у себя под стойкой и ставит галочки. У одной сети кофеен в разных точках отдельные базы и счётчики, поэтому бесплатные чашки не переносятся между точками. У кого-то скидка за инстаграм, у кого-то скидка за “свою” чашку, а у кое-кого за одноразовый стакан наоборот добавляют к сумме счёта. Ещё у одной по достижении 60 чашек присваивается другой уровень лояльности, хотя сильно дешевле не становится, на самом-то деле.
Вот новая кофейня решила выделиться, у них каждая пятая чашка бесплатно. Ну ОК.
В-общем идут на все любые ухищрения, чтобы ты пришёл ещё раз именно к ним.
Так вот, причём тут Microsoft казалось бы…
У меня есть подписка Microsoft 365 для семьи, в Казахстане сейчас стоит 38 990 тенге, пролонгируется автоматически и карта привязана. Срок подходит к концу. Ну думаю, что дороговато, пойду в интернете куплю подешевле. Захожу в учётную запись и там есть кнопка “Выключить периодическое выставление счетов”. Ну думаю отключу, чего уж там.
Жму, а он мне и говорит, хитрюга такая: не отпускай меня, старче, дорогой за себя дам откуп. И предложил добавить два месяца к подписке, анау-мынау.
Ладно, думаю, уговорил, не буду отключать. И два месяца лишних получу к купленным двенадцати, и всё равно чуть позже куплю в интернете процентов на 20-25 дешевле. Вижу цену 29 990 тенге в одном уважаемом местном магазине.
PS.
У них же ещё есть какая-то программа Microsoft Rewards, можно зарабатывать бонусы и тратить. И можно даже поднять уровень своей лояльности:
To reach Level 2 status in Microsoft Rewards, you need to earn 500 points in a single month. Once you reach Level 2, you can earn up to 5,000 points per month. Level 2 members can earn five times more points on Bing.com, save up to 10% on rewards from Microsoft products and services, and get access to exclusive offers. To maintain your Level 2 status, you need to earn at least 500 points per month. As a Level 2 member, you can earn 10 points per dollar spent, plus bonus points, when you make qualifying digital purchases at the Microsoft Store.
chatGPT
Ну допустим, я показал ему текст некоторой программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
REPORT y_bc001_text_search. TABLES: tadir. SELECT-OPTIONS: s_devc FOR tadir-devclass DEFAULT 'Z*' OPTION CP. SELECT-OPTIONS: s_objec FOR tadir-object. SELECT-OPTIONS: s_objnm FOR tadir-obj_name DEFAULT 'Z*' OPTION CP. PARAMETERS: p_text TYPE string. START-OF-SELECTION. SELECT tadir~pgmid, tadir~object, tadir~obj_name, trdir~subc, tadir~devclass FROM tadir LEFT OUTER JOIN trdir ON tadir~object = 'PROG' AND tadir~obj_name = trdir~name INTO TABLE @DATA(lt_objects) WHERE tadir~devclass IN @s_devc AND tadir~object IN @s_objec AND tadir~obj_name IN @s_objnm AND ( tadir~object = 'PROG' OR tadir~object = 'FUGR' OR tadir~object = 'CLAS' ). LOOP AT lt_objects ASSIGNING FIELD-SYMBOL(<object>). IF <object>-object = 'PROG' AND ( <object>-subc = '1' OR <object>-subc = 'M' ). DATA: lt_tpool TYPE STANDARD TABLE OF textpool WITH DEFAULT KEY. CALL FUNCTION 'RS_TEXTPOOL_READ' EXPORTING objectname = <object>-obj_name action = 'READ' * AUTHORITY_CHECK = ' ' language = sy-langu TABLES tpool = lt_tpool EXCEPTIONS object_not_found = 1 permission_failure = 2 invalid_program_type = 3 error_occured = 4 action_cancelled = 5 OTHERS = 6. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. LOOP AT lt_tpool ASSIGNING FIELD-SYMBOL(<tpool>). IF <tpool>-id = 'I' AND <tpool>-entry CP p_text. WRITE: <object>-obj_name, <tpool>-key, <tpool>-entry. ENDIF. ENDLOOP. ELSEIF <object>-object = 'FUGR'. DATA: lv_fugr TYPE rs38m-programm. lv_fugr = 'SAPL' && <object>-obj_name. CALL FUNCTION 'RS_TEXTPOOL_READ' EXPORTING objectname = lv_fugr action = 'READ' * AUTHORITY_CHECK = ' ' language = sy-langu TABLES tpool = lt_tpool EXCEPTIONS object_not_found = 1 permission_failure = 2 invalid_program_type = 3 error_occured = 4 action_cancelled = 5 OTHERS = 6. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. LOOP AT lt_tpool ASSIGNING <tpool>. IF <tpool>-id = 'I' AND <tpool>-entry CP p_text. WRITE: <object>-obj_name, <tpool>-key, <tpool>-entry. ENDIF. ENDLOOP. ELSEIF <object>-object = 'CLAS'. DATA: lv_clas TYPE rs38m-programm. lv_clas = <object>-obj_name. DATA(lv_eq_count) = 30 - strlen( lv_clas ). DO lv_eq_count TIMES. lv_clas = lv_clas && '='. ENDDO. lv_clas = lv_clas && 'CP'. CALL FUNCTION 'RS_TEXTPOOL_READ' EXPORTING objectname = lv_clas action = 'READ' * AUTHORITY_CHECK = ' ' language = sy-langu TABLES tpool = lt_tpool EXCEPTIONS object_not_found = 1 permission_failure = 2 invalid_program_type = 3 error_occured = 4 action_cancelled = 5 OTHERS = 6. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. LOOP AT lt_tpool ASSIGNING <tpool>. IF <tpool>-id = 'I' AND <tpool>-entry CP p_text. WRITE: <object>-obj_name, <tpool>-key, <tpool>-entry. ENDIF. ENDLOOP. ENDIF. ENDLOOP. END-OF-SELECTION. WRITE: / 'Search completed:', p_text. |
Так вот, сервис может пояснить за код, лучше чем я:
(далее…)