• Неопределённость

      Денису никогда не снились реалистичные сны. Нет, в них не было инопланетных монстров или огнедышащих драконов, а равно рыцарей в латах или гладиаторов на арене Колизея. Но все присутствующие во снах места, персонажи, события были причудливо перепутаны, надерганы из разных времен, стран, а то и континентов; люди, никогда не встречавшиеся друг с другом, могли непринужденно гулять вместе, взявшись за руки, а невзрачная хрущевка из его родного Подмосковья — соседствовать с домом в стиле Антонио Гауди. Что особо обидно — Денис никогда не мог вспомнить наутро, где его носило в очередной серии бесконечного кинофильма, который он начал смотреть еще классе в пятом. Лишь иногда какое-нибудь событие в течение дня могло вызвать далекую ассоциацию с виденным ночью, и тогда в памяти всплывал эпизод его личного абсурдистского кино.
      Читать дальше →
    • COVID-19 с точки зрения физики

        События происходят такие, что заезженное слово «беспрецедентный» обретает свой изначальный смысл. Никогда такого не было без всяких «и вот опять». Первая аналогия из любимой науки, которая просится – это фазовый переход. H2O в виде жидкости или льда при одной и той же температуре в 0 градусов Цельсия. Как объяснить, что при внешне равных, ну, или схожих проявлениях эпидемии с двумя предыдущими (атипичной пневмонией и птичьим гриппом), имеем всемирный охват заболевания и совсем другое качество реакции на ситуацию? Мы не будем, конечно же, проводить спекулятивные сравнения числа умерших от коронавируса с количеством погибающих в ДТП или отравившихся некачественным алкоголем, как любит делать журналистская братия, анти-алармистская ее часть. Если же сравнивать подобное с подобным, то есть с двумя указанными эпидемиями и более широко – с ежегодными сезонными волнами гриппа, тоже уносящими немало жизней, то возникает вопрос – какой параметр поменялся настолько существенно, что имеем такую всеобъемлющую пандемию и такой небывалый ответ на доселе привычные обстоятельства?
        Читать дальше →
      • Ro.Ri.Re

          — Скажите, вы – человек?

          Я играл в эту игру каждую пятницу, приходя на очередное назначенное в Тиндере свидание. Конец тяжелой недели, сплошные дедлайны – отчего же не расслабиться таким незамысловатым способом?

          Не то чтобы я сильно рисковал. Хотя законодатели уже подобрались вплотную к этой проблеме (проблеме!), но до прямого запрета задавать подобные вопросы дело пока не дошло. Всем рекомендовалось вести себя по принципу «don't ask – don't tell». Поэтому свидание с Жозефиной неделю тому основательно выбило меня из колеи.

          Читать дальше →
          • +14
          • 2.8k
          • 4
        • Костюм

            Мне нужен новый костюм. Замечательный серый костюм из английской шерсти.

            Подумал о костюме и понял, что боюсь произнести это даже шепотом. Потому что рядом — мой смартфон. Который, как я убедился, может читать даже по губам. Тайный соглядатай.

            Мы как-то давно привыкли к присутствию в нашей жизни Большого брата. К тому, что Гугл и Фейсбук знают о нас больше, чем мы сами о себе порой знаем. Но в последнее время Большой брат, похоже, взялся за меня всерьез.
            Читать дальше →
            • +26
            • 16.9k
            • 8
          • Нестандартные мысли об архитектуре веб-сайта

              Мы у себя в WIT-e, конечно, иноходцы. Своя ERP-система (писал о ней тут — Как нам обойтись без 1С?), своя CRM-система, своя M2M для связи с дистрибуторами («какие еще умные слова и аббревиатуры вы знаете?»). Ну и, конечно же, свой подход к WWW, чтобы оставаться в рамках этой 3-буквенной парадигмы.

              Все началось с любви к Микрософт, и какая-то из ранних версий сайта еще в конце 90-х была сделана на технологии ASP, а в качестве базы данных под ней лежал обычный файл MS Access. Кстати, провайдеры до сих пор предлагают хостинг на старой доброй ASP, спустя 18 лет после ее обновления до ASP.NET – вот вам и legacy systems во всей красе.
              Читать дальше →
            • Уроки украинского

                Не бросайте чтение, будет не про политику. Язык, как он есть. Краткие заметки для быстрого начала понимания украинского, ну и в конце немного программирования, чтобы уж не совсем оффтоп.

                Несколько замечательных особенностей украинского языка.

                1. Звательный падеж.

                Эта милая сердцу категория была в общем прародителе всех славянских языков, но сейчас осталась рудиментарно. Хотя она и понятна носителю современного русского, возьмите обращение «Друже!». Звательный падеж знаком нам из Библии («Отче наш!», «Врачу, исцелися сам!»), что неудивительно, так как церковнославянский — солунский диалект староболгарского.
                Примеры:
                Читать дальше →
              • Космос как смутное воспоминание

                  Мне больно. Известный советский космонавт сказал, что космос – это факт далекого прошлого. Эпоха романтики прошла, эпоха зрелости не наступила. Мы летаем на орбиту на высоту в 180 км и уже много-много лет рассуждаем о возвращении на Луну и высадке на Марс. Космические программы прошлого заканчиваются и сворачиваются. Комплексы отслуживают свой ресурс и списываются в утиль. Одна только МКС кружит и кружит над Землей, словно обозначая наше присутствие там, как таможенный пост на далекой безлюдной границе, до которой мало кому есть дело.
                  Читать дальше →
                • Машинное обучение без Python, Anaconda и прочих пресмыкающихся

                    Нет, ну я, конечно, не всерьез. Должен же быть предел, до какой степени возможно упрощать предмет. Но для первых этапов, понимания базовых концепций и быстрого «въезжания» в тему, может быть, и допустимо. А как правильно поименовать данный материал (варианты: «Машинное обучение для чайников», «Анализ данных с пеленок», «Алгоритмы для самых маленьких»), обсудим в конце.

                    К делу. Написал несколько прикладных программ на MS Excel для визуализации и наглядного представления процессов, которые происходят в разных методах машинного обучения при анализе данных. Seeing is believing, в конце концов, как говорят носители культуры, которая и разработала большинство этих методов (кстати, далеко не все. Мощнейший «метод опорных векторов», или SVM, support vector machine – изобретение нашего соотечественника Владимира Вапника, Московский Институт управления. 1963 год, между прочим! Сейчас он, правда, преподает и работает в США).

                    Три файла на обозрение
                    Читать дальше →
                  • Ооочень длинное целое

                      Накатал небольшую библиотечку для арифметических операций над натуральными числами любой длины. Поскольку писалось на Visual Basic for Applications (VBA), встроенном в Excel, переопределить операции + — * / не получилось, и все решается через вызов функций с 2-мя аргументами вида

                      Function LongADD(s1 As String, s2 As String) As String

                      Зато можно вызывать функции (или их комбинации) прямо из ячеек экселовского листа – все наглядно и понятно. И да, натуральные числа передаются как строки. Максимальная длина строки в VBA равна примерно 231 = 2 147 483 648 (посчитано моей функцией LongPower(«2», 31)), так что на поиграться с разными штуками хватит вполне.

                      Для примера – умножение двух простых чисел из эпохальной статьи Ривеста, Шамира и Алдемана, откуда пошла вся современная криптография (в коде это константы RSA1, RSA2)



                      Под катом – код на VBA, его можно просто вставить в модуль Excel-овского файла с поддержкой макросов (типа *.xlsm).

                      P.S. не пробуйте использовать код для всяких конкурсов по разложению на простые множители. Он хоть и понимает числа с двумя миллиардами значащих цифр, но безумно медленный для таких задач.
                      P.P.S. если все же что-то получится, 10% выигрыша – мне
                      P.P.P.S. нет, лучше 15%

                      Читать дальше →
                      • –10
                      • 3.2k
                      • 6
                    • Как перебрать все перестановки и о факториальном разложении натуральных чисел

                        Задачи о переборе всех возможных перестановок заданного множества сущностей возникают в программировании достаточно часто. Как известно из комбинаторики, число возможных перестановок n предметов равно попросту факториалу числа n

                        n! = n * (n — 1) * (n – 2) * … * 3 * 2 * 1

                        Факториал – достаточно быстро растущая функция, об этом говорит ее асимптотика (формула Стирлинга), хотя достаточно посмотреть на факториалы нескольких первых членов натурального ряда:

                        1! 1
                        2! 2
                        3! 6
                        4! 24
                        5! 120
                        6! 720
                        7! 5 040
                        8! 40 320
                        9! 362 880
                        10! 3 628 800
                        11! 39 916 800
                        12! 479 001 600
                        13! 6 227 020 800
                        14! 87 178 291 200
                        15! 1 307 674 368 000

                        Как видно, факториал 13-ти уже не умещается в тип данных long.

                        Если задаться целью найти однозначное соответствие между номером перестановки — числом в диапазоне от 1 до n! – и ее реализацией, можно натолкнуться на один очень интересный математический факт.
                        Читать дальше →
                      • Как нам обойтись без 1С?

                          Коротко говоря — никак. Во всем, что касается взаимодействия с госорганами (будь то налоговая, бухгалтерская отчетность, всякие акцизные платежи и прочее), 1С не заменить ничем и пытаться сделать это, по меньшей мере, неконструктивно.

                          Но вы не бросайте читать эту статью, это еще не основная мысль. Основная состоит в том, чтобы не угодить в логическую ловушку и не посчитать 1С совсем незаменимой в любой части автоматизации всех процессов на предприятии. Вот тут есть с чем поспорить и что предложить. Я хочу рассказать об одном успешном опыте автоматизации самых разных сторон бизнес-деятельности компьютерной фирмы и да, конечно же, о стыковке этого решения с 1С. Работа выросла из необходимости сопряжения разработанной самостоятельно системы с программой 1С, но этот подход (разделение на 2 программных блока) можно развить до полноценной философии построения информационной системы вообще.
                          Читать дальше →
                          • +6
                          • 23.8k
                          • 2
                        • Как я гонял Балду-2, или в поисках оптимального алгоритма

                            Балдология, как оказалось (вы ведь слышали о существовании такой науки, правда?), имеет на Хабре отражение в виде нескольких статей, вот они:

                            «Алгоритм быстрого поиска слов в игре балда»
                            «Алгоритм и тактика поиска слов в игре Балда»
                            «Как я гонял Балду на Visual Basic for Applications для MS Access»

                            Эта статья — продолжение моей предыдущей, последней в списке. Отправными точками для написания были присланные мне в комментариях ссылки на способ хранения словаря в виде дерева (статья в Википедии с описанием алгоритма Trie), а также упоминание коллеги chibiryaev о его собственной реализации поиска, которая тратит на нахождение слова в словаре из 110 000 элементов всего 16 миллисекунд!

                            Собственно, задача №1 – увеличение скорости поиска слов в текстовом массиве.
                            Начнем с реализации алгоритма Trie. Для этого нам необходимо поместить весь словарь существительных (43 303 слова) в структуру связанного дерева. Visual Basic не поддерживает переменных-ссылок, подобно C++ или C# (не говоря уже о Pascal), но в этом качестве вполне подойдут индексы массива.
                            Читать дальше →
                            • +12
                            • 9.5k
                            • 6
                          • Как я гонял Балду на Visual Basic for Applications для MS Access

                            Не помню, что меня так заело. Наверно, кто-нибудь обыграл меня в Балду с разгромным счетом (ее онлайн-вариант есть на Одноклассниках, Mail.ru и в куче других мест). Короче, я принял вызов. В прошлый раз так было с программкой для разгадки СУДОКУ. Но там все оказалось заметно проще.

                            image
                            Балда, она же Волшебный Квадрат. Игроки добавляют на каждом шагу по одной букве, чтобы получилось осмысленное слово как можно большей длины.
                            Читать дальше →