• Критика 1С

    Хотелось бы, чтобы эту статью прочитали сотрудники фирмы 1С: программисты, разработчики конфигураций, всякие начальники отделов, и может быть даже самый главный.

    Я хочу критиковать 1С платформу и конфигурации, потому что есть проблемы, а в сети какая-то тишина, как будто всех все устраивает. Простите, но не устраивает. Хочу, чтобы статью прочитали обычные программисты 1С (не сотрудники фирмы 1C), и может быть даже поддержали меня.
    Читать дальше →
  • Больше чем Java?

    Закончив очередной проект на Java, я попытался разобраться в причинах накопившегося раздражения. Да я люблю Яву и все такое, но… Есть несколько «но», которые досаждают. Приходится писать довольно много шаблонного кода, с генерацией которого вполне может справиться сам компилятор, IDE, конечно, выручает, но это не решение проблемы, а скорее костыль: если что-то изменилось, нужно перегенерить и вычистить и т.д. Проверки на null! Это зубная боль, по-хорошему, нужно делать их всегда дабы не нарваться на «нежданчик» в виде NullPointerException в самый неподходящий момент. Короче говоря, появилось желание посмотреть, что еще появилось в природе и сможет ли это нечто заменить мне Java. Дальше имеет смысл описать участников данного сравнения. Сразу скажу, что не претендую на полноту анализа, к сожалению, у меня было слишком мало времени, чтобы как следует познакомиться с каждым языком.

    Обязательные требования к претендентам, которые у меня были:

    • Язык общего назначения
    • Кроссплатформенность (хотя бы Windows/Linux)
    • Стабильность
    • Статическая типизация
    • Автоматическая уборка памяти
    • Поддержка полноценной объектно-ориентированной парадигмы
    • Хорошая поддержка в IDE (Eclipse, IDEA или на худой конец NetBeans)
    • Безгемморойный доступ к существующим фреймворкам/библиотекам
    • Производительность на уровне Java
    Читать дальше →
  • Доделал игру, работающую на видеокарте

      Наконец-то я доделал игру, которая работает на видеокарте. Она несколько месяцев повисела в раннем доступе на стиме, и теперь я её окончательно выпустил. Основная фишка игры в том, что она представляет собой физическую симуляцию, которая выполняется на графическом процессоре. Основной код игры — это огромный compute shader, 6 тысяч строк на HLSL. Десятки тысяч взаимодействующих частиц обрабатываются параллельно, и выходит довольно быстро. Всё в игре сделано из этих частиц. Вот несколько гифок о том, как это работает:

      image
      Читать дальше →
    • Быстрая и безопасная ОС для web-серфинга с неприступным носителем, легко изменяемым пользователем

      • Tutorial

      (Источник)

      ОСы с неприступным носителем, т.е. с носителем, информацию на котором физически невозможно изменить, давно и широко известны — это так называемые “live CD” — точнее было бы называть их “live DVD”, т.к. iso-образы многих современных ОС для CD ROM слишком большие. Встречаются iso-образы, которые и на DVD ROM не влезут, но и это не проблема, т.к. файл iso-образа можно использовать и с жесткого диска, например, для установки ОС в виртуальную машину. Но это уже другой случай, а первоначальная идея была прожечь iso-образ на болванке CD или DVD ROM. С такой болванки можно загружать компьютер, и при этом никакие зловреды этому диску не страшны, т.к. он ROM. При этом для полного исключения заражения жестких дисков их вообще можно убрать. Это легко сделать, если HDD внешние, или если они съемные — установлены в Mobile Rack. Однако практическому использованию схемы “только один RO диск” мешают два серьезных неудобства: медленная загрузка (по сравнению с HDD) и невозможность изменять настройки, сохранять историю посещений сайтов, закладки и т.д. Эти неудобства преодолимы, во всяком случае, для простейшего web-серфинга.
      Читать дальше →
    • Еще одна кража через SWIFT. Теперь в России


        UPD2. По данным Центробанка в 2017 году было похищено 339,5 млн.р. Нетрудно догадаться, что речь именно про Глобэкс. В обзоре FinCERT говорится: «В Банк России направлена информация об одной успешной атаке на рабочее место оператора системы SWIFT. Объем несанкционированных операций в результате данной атаки составил 339,5 миллиона рублей».

        UPD. Банк-жертва — Глобэкс. Размер украденного исчисляют десятками миллионов рублей.

        Один из российских банков стал жертвой кибератаки, направленной на кражу денег через международную межбанковскую систему платежей SWIFT. Про атаку известно, что она была произведена 15 декабря. Однако, название банка и размер ущерба пока не озвучиваются. Развитие атаки, организованной предположительно группировкой Cobalt, началось с рассылки вредоносного ПО за несколько недель до инцидента. Причем по сообщению заместителя начальника главного управления безопасности и защиты информации ЦБ Артема Сычева, хакеры получили широкий доступ к инфраструктуре и могли использовать и другие каналы вывода средств. Однако, их интересовал вывод средств в иностранный банк, поэтому целью хакеров стал доступ к SWIFT.
        Читать дальше →
      • Криптография русского крестьянина

        • Перевод

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

        Должен сразу признаться, что статья не будет посвящена тому, как русским крестьянам удавалось обмениваться информацией втайне от своих помещиков.

        Умножение методом русских крестьян


        Если вы не знали о нём раньше, то это довольно любопытный подход к умножению, который не требует запоминания таблиц умножения — для него достаточно способности удваивать и делить пополам целые числа. Не очень понятно, как он относится к русским крестьянам: похоже, так же, как «датская сдоба» к Дании. Этот метод был известен ещё древним египтянам, которые явно жили намного раньше русских крестьян.

        Общее описание метода просто, но не слишком информативно. Тем не менее, давайте начнём с него.
        Читать дальше →
      • 5-минутный гид по эзотерическим языкам программирования: попробуем их классифицировать

          Эзотерические языки программирования (или esolang — сокращение от esoteric language) — это языки, созданные не только для того, чтобы писать код. В одном из наших материалов мы вскользь поднимали эту тему — там описывался язык BANCStar (строго говоря, на 100% «эзотерическим» его назвать нельзя, хотя и хочется).

          В этом материале подробнее остановимся на том, как можно классифицировать эзотерические ЯП: что отличает «шуточные» эзотерические языки от «серьезных», какие цели могут преследовать их создатели и что вдохновляет последних.

          Читать дальше →
          • +15
          • 13,1k
          • 1
        • Вечные студенты: когда программирование — это постоянная «учеба»

            
Если вы выбрали для себя профессию программиста, учеба, как правило, становится вашим постоянным спутником, хотите вы этого или нет. В этой области «выучить что-то раз и навсегда» маловероятно — постоянно появляются новые решения, новые фреймворки, в конце концов, новые языки. В сегодняшнем материале расскажем, почему разработчикам важно оставаться «вечными студентами», что говорит об изучении новых языков статистика Stack Overflow и почему программирование постепенно превращается в метод изучения других дисциплин.

            Читать дальше →
          • Проблемы локализации iOS и macOS

            image


            Любая успешная компания, занимающаяся разработкой продуктов, ориентированных на массового пользователя, рано или поздно сталкивается с проблемой их локализации. Под ней я понимаю куда более сложную задачу, чем банальный перевод программных интерфейсов на другой язык. Ведь настоящая локализация должна учитывать максимально возможный спектр особенностей, влияющих на пользовательский опыт в той или иной стране.


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


            Это моя первая публикация на Хабре, надеюсь, вам понравится.

            Читать дальше →
          • Мобильные сервисы, блобы и Windows 8. Храним данные в облаке



              Добрый день.

              Мы живем в мире тотальной глобализации как в реальной жизни, так и в виртуальной. Я имею в виду, что нам хочется иметь одни и те же данные, одни и те же настройки и одно и то же поведение программ на разных устройствах. Такой синхронизации всего и вся в наше время легко добиться с помощью облаков. Об этом и пойдет речь в данной статье, а именно о скрещивании приложения для Windows 8 (WinRT) с облаком Windows Azure для хранения данных и метаданных.

              Вводная


              Итак, предположим, что у нас есть приложение для Windows 8 (пусть это будет сервис хранения неких текстовых записей), которое:
              1) Должно отображать список записей с минимальной информацией о каждой из них (допустим, заголовок или дату создания). Назовем это метаданными.
              2) Должно иметь возможность показать подробную информацию о записи (контент) при переходе к конкретному элементу. Назовем это данными.
              3) Должно синхронизировать данные между различными устройствами под управлением Windows 8 (создал запись дома, просмотрел ее же на работе).

              Наиболее правильный подход, который я вижу, это разбить данные и метаданные и хранить их в разных местах. Это позволит нам быстро получить небольшие по объему метаданные для отображения в виде списке, и подгружать «тяжелые» данные по запросу пользователя.

              По ходу этой статьи мы познакомимся с Windows Azure Mobile Services для хранения метаданных и Windows Azure Blob Storage для хранения данных. Впереди много текста и картинки.
              Приступим!
            • Почему дизайн Go плох для умных программистов

              • Перевод

              На протяжении последних месяцев я использую Go для имплементаций Proof of Concept (прим.пер.: код для проверки работоспособности идеи) в свободное время, отчасти для изучения самого языка программирования. Программы сами по себе очень просты и не являются целью написания статьи, но сам опыт использования Go заслуживает того, чтобы сказать о нем пару слов. Go обещает быть (прим.пер.: статья написана в 2015) массовым языком для серьезного масштабируемого кода. Язык создан в Google, в котором активно им пользуются. Подведя черту, я искренне считаю, что дизайн языка Go плох для умных программистов.

              Читать дальше →
            • Английские фразы, которые не стоит переводить буквально

              • Tutorial


              В английском языке много интересных и необычных слов, которые могут быть похожими на слова в русском по произношению, звучанию и написанию. Мы говорили о них в одной из предыдущих статей. Но бывает еще интереснее — целые фразы, которые не стоит переводить буквально. О них мы и поговорим в этой статье.

              Повседневные фразы и инструкции


              Тут сразу стоит отметить, что в английском довольно много фразовых глаголов, которые очень популярны, особенно в разговорной речи. Понятное дело, что sit down, stand up или come up уже никого не удивят, но есть другие интересные случаи, и не только с фразовыми глаголами.
              Читать дальше →
            • «Обошли Тьюринга»: новый подход к распознаванию капчи

                Разработчики из компании Vicarious, в число инвесторов которой входят Марк Цукерберг и Джефф Безос, опубликовали статью, где описали новую модель глубокого обучения, способную распознавать текстовые капчи. Новая порождающая вероятностная модель (Probabilistic Generative Model) позволила, как уверяют ученые, на шаг приблизиться к созданию «думающих» интеллектуальных систем.

                Каких успехов достигла технология и какие еще решения появились в этой области, расскажем далее.

                Читать дальше →
              • Кому и насколько нужно поспевать за прогрессом?



                  В отношении истории оптимисты говорят, что история учит не наступать повторно на те же грабли, а пессимисты добавляют, что плохо обучаемых оказывается при этом безнадежно много. Попробую быть оптимистом и перескажу историю, которую слышал от непосредственных участников, и которая произошла в конце 1980х гг. в одном из ведущих московских НИИ АН СССР. История эта происходила на фоне широко известного события: появления в самом конце 1987 г. Windows 2.0 -графической оболочки для MS DOS.
                  Читать дальше →
                • Как долго или где быстро хранить информацию на диске

                    Добрый день, Гиктаймс!

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

                    Часть информации уже пробегала на Хабре, но не все. А кое-что я не смог найти в русскоязычном инете, поэтому и решил поделиться найденным с сообществом.
                    Читать дальше →
                  • У CDROM’а век не долог?

                    • Tutorial
                    DVD [диск] начнет умирать уже лет через 5. […] Я опираюсь на информацию из сети про условия и максимальный срок жизни, вполне может быть и лажа. Но фильмы на DVD[,] купленные ~10 лет назад[,] сейчас не запускаются ни один из нескольких десятков.

                    Из обсуждения


                    За многие годы у меня скопилась значительная коллекция CD и DVD ROM, выпущенных массовыми тиражами, кроме того, периодически архивирую на одноразовые болванки свои файлы. Поэтому утверждение, приведенное в эпиграфе, не могло меня не заинтересовать.
                    Читать дальше →
                  • Не простая координатная система, а золотая

                    В одной из мозаик Пенроуза используются всего два ромба, отличающиеся углами. Из этих элементов можно выстроить апериодическую мозайку любых размеров. Для её отображения я попробовал представить координаты аналитически.

                    image

                    Распределение углов в ромбах в одном 1:4, 36°:144°, в другом 2:3, 72°:108°. Углы в ромбах кратны одной десятой полного разворота, 36°.

                    Определим координаты углов правильного десятиугольника.
                    Читать дальше →
                  • Расшифровываем формулу Хабра-рейтинга или восстановление функциональных зависимостей по эмпирическим данным

                      Если вы когда-нибудь читали раздел помощь на Хабре, то наверняка видели там прелюбопытнейшую строчку:
                      Допустим, вы написали публикацию с рейтингом +100 — это добавило к вашему персональному рейтингу величину Х. Через несколько десятков дней этот самый Х вычтется, тем самым вернув вас на прежнее место.
                      то наверняка задавались вопросом, что это за Х и с какого он района чему он равен?

                      Сегодня мы ответим на этот вопрос.


                      (измеряем Хабра-рейтинг в попугаях)

                      Структура статьи


                      1. Аналитический вывод
                      2. Регрессия
                      3. Исключения
                      4. Устойчивая регрессия
                      5. Скрипт и данные
                      6. Почему скрывать функцию бесполезно
                      7. Что с этим можно сделать?
                      8. Интерпретация формулы
                      Читать дальше →
                    • Опрос пользователей Хабра

                        Дорогие друзья! Мы совершили несколько итераций и за последнее время изменили дизайн наших сайтов: Хабрахабр и Гиктаймс. Мы получили немало фидбэка в комментариях и в обращениях — спасибо за советы, найденные баги фичи, мы всё учли, сделали и записали.


                        Мы знаем, сколько вас из какой страны и региона, какие вы по полу и даже немножко — по увлечениям. И мы обязательно продолжим знакомство. Но ни одна аналитика не расскажет нам то, что вы можете рассказать словами о том, как вы пользуетесь Хабром и Гиктаймс. Поэтому просим вас уделить несколько минут нашему опросу.
                        Читать дальше →