Pull to refresh
14
0

Химик и программист.

Send message

История победы на ежегодном соревновании Russian AI Cup 2017

Reading time15 min
Views21K
Всем привет! Хочу рассказать про историю своей победы в ежегодном соревновании по написанию игровых ботов Russian AI Cup, в 2017. В финале бот выиграл 98% игр, что, как оказалось, наивысший результат по финалам среди всех годов проведения чемпионата. Также занял 1-е место в песочнице по завершению её работы, в пике переходя за 4000 очков рейтинга.



Эта статья может быть интересна участникам, болельщикам и просто интересующимся тематикой AI и написанием игровых ботов. Надеюсь вы сможете почерпнуть для себя что-то новое. В свою очередь и мне бы хотелось почитать статьи от участников, сравнить подходы и ход мыслей.
Читать дальше →

Информатика: чему учить в школе

Reading time6 min
Views24K

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

1. Школа в принципе может давать «достаточно систематичные» знания — готовить специалистов. Если, конечно, в этом суждении мы противопоставляем школу вузу — понимаем под «школой» все учреждения среднего образования, в том числе всякие «лицеи», «гимназии», «колледжи». Хорошим же специалистом можно стать только на практике — невозможно приобрести достаточно навыков хорошего спеца «заочно», даже в «хорошем вузе».

2. В школе нужно учить не быстро печатать на ПК, а печатать вслепую, чтобы не тратить на клавиши внимание, психическую энергию. Скорость же здесь будет приобретаться позже — при работе с конкретными текстами. Ведь мы заранее не знаем даже, на каком языке выпускнику понадобится потом развивать эту скорость. От предметной области тоже очень много зависит: ум и пальцы заучивают не «буквы вообще», а конкретные наиболее частотные сочетания букв, слов, типичные обороты речи.

Читать дальше →

Как научиться мыслить образами, используя визуальные аналогии

Reading time29 min
Views74K
Визуалы – это люди, которые, воспринимают большую часть информации с помощью зрения. Визуалы составляют примерно 60% населения нашей планеты (автор статьи, Анна Виталь, также входит в их число). Вы можете спросить: как же нам удается общаться с вами с помощью изображений? Все достаточно просто – для этой цели мы используем хорошо известные визуальные символы и аналогии. Ниже представлены некоторые из таких зрительных аналогий, начиная с наиболее простых и заканчивая самыми сложными.

Читать дальше →

СберШифт: пять раз нажимай и в систему попадай

Reading time3 min
Views86K
Скриншот запроса включения функции залипания клавиш

Помните одну из тех самых надоедливых возможностей Windows, особенно знакомую геймерам, когда пятикратное нажатие Shift вызывает специальное окошечко, предлагающее включить режим залипания клавиш? Эта «фича» дожила аж до Windows 10, к слову. Ну так вот, я, стоя у терминала Сбербанка с полноразмерной клавиатурой и ожидая ответа оператора по телефону, от скуки решил понажимать этот самый Shift, наивно полагая, что без функциональных клавиш это ни к чему не приведёт. Как бы не так! Пятикратное быстрое нажатие этой клавиши выдало мне то самое окошечко, к тому же обнажив панель задач со всем банковским ПО. Остановив работу пакетного файла (см. панель задач на видео ниже), а затем и всего банковского ПО, можно сломать терминал.

Критика 1С

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

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

Больше чем Java?

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

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

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

Доделал игру, работающую на видеокарте

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

image
Читать дальше →

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

Reading time7 min
Views40K

(Источник)

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

Еще одна кража через SWIFT. Теперь в России

Reading time4 min
Views11K

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

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

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

Криптография русского крестьянина

Reading time5 min
Views34K

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

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

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


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

Общее описание метода просто, но не слишком информативно. Тем не менее, давайте начнём с него.
Читать дальше →

5-минутный гид по эзотерическим языкам программирования: попробуем их классифицировать

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

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

Читать дальше →

Вечные студенты: когда программирование — это постоянная «учеба»

Reading time7 min
Views23K

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

Читать дальше →

Проблемы локализации iOS и macOS

Reading time4 min
Views13K

image


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


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


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

Читать дальше →

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

Reading time8 min
Views9.7K


Добрый день.

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

Вводная


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

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

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

Почему дизайн Go плох для умных программистов

Reading time7 min
Views76K

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

Читать дальше →

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

Reading time4 min
Views246K


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

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


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

«Обошли Тьюринга»: новый подход к распознаванию капчи

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

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

Читать дальше →

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

Reading time3 min
Views5.5K


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

Как долго или где быстро хранить информацию на диске

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

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

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

Information

Rating
Does not participate
Registered
Activity