Рубрика «Программирование» - 517

В настоящее время интерес к софтверным движкам, как из игр Quake, DOOM или Duke Nukem 3D практически нулевой. Однако, эти движки имели своё очарование и мне, например, очень нравится графика именно таких вот движков с нереалистичными текстурами на стенах. Конечно, такие текстуры можно накладывать без фильтрации и в OpenGL, получая такой же уровень графики, но всё же, написать собственный софтверный движок было весьма интересно. Движок уровня Quake я написать в своё время не смог, так как не удалось создать редактор 3D карты – я просто не представлял, как вообще рисовать в 3D карту. Да и с большой вероятность текстурирование в произвольном случае в моём исполнении (без ассемблера) было бы очень медленно. Но движок уровня DOOM мне покорился. Основу такого движка я написал в 2002 году, пользуясь книжкой Шикина и Борескова “Компьютерная графика. Полигональные модели”. На базе того движка используя графику из Doom я написал некое подобие игры под MS-DOS на Watcom C. Несколько лет назад я решил вынуть из той игры код движка и переработать его под мои текущие знания языка Си++ и представления о том, как стоило бы устроить этот движок. Ну и заодно перенести этот движок под Windows и дополнить наклонами головы, как в Blood или Duke Nukem. О том, что в результате получилось, я и написал в этой статье.
Читать полностью »

Как поменьше беспокоиться о собственной бездарности - 1

Только что я столкнулся с еще одним проявлением синдрома самозванца: «Я правда разработчик — или просто хорошо гуглю?»

Далее следовал ответ, в котором я, однако, не увидел главного — поэтому ответить придется мне: слишком уж многие боятся без каких-либо оснований.

Переведено в Alconost

Если информацию легко найти, это не делает человека глупым

Частенько мне доводится слышать одну историю — полагаю, подлинность ее сомнительна, но, как бы там ни было, суть такова. Когда у Эйнштейна попросили номер телефона, он полез его искать и сказал: «Зачем запоминать то, что можно найти менее чем за две минуты?»

Читать полностью »

Я множество раз слышал о том, что дизайн Generic типов в Java является неудачным. По большей части претензии сводятся к отсутствию поддержки примитивных типов (которую планируют добавить) и к стиранию типов, а конкретнее — невозможности получить фактический тип параметра в рантайме. Лично я не считаю стирание типов проблемой, как и дизайн Generic-ов плохим. Но есть моменты, которые меня порядком раздражают, но при этом не так часто упоминаются.

1

Например, мы знаем, что метод Class#getAnnotation параметризован и имеет следующую сигнатуру: public <A extends Annotation> A getAnnotation(Class<A> annotationClass). Значит, можно писать вот такой код:

Deprecated d = Object.class.getAnnotation(Deprecated.class);

Тут я решаю вынести Object.class в отдельную переменную и код перестаёт компилироваться:

Class clazz = Object.class;
// incompatible types:
// java.lang.annotation.Annotation cannot be converted to java.lang.Deprecated
Deprecated d = clazz.getAnnotation(Deprecated.class);

Где я ошибся?

Читать полностью »

Обзор изменений в новом мажорном релизе Node 8 - 1

30 мая 2017 года в 23:00 по московскому времени вышел новый долгожданный мажорный релиз Node.js 8.0.0. Именно эта линейка версий за номером 8 в октябре 2017 перейдет в Long Term Support — цикл длительной поддержки. Предлагаю вашему вниманию небольшой обзор того огромного количества изменений и дополнений, вошедших в этот релиз.

  • npm 5 (lock-файл!)
  • V8 5.8
  • Node.js API (N-API)
  • async_hooks
  • WHATWG URL парсер
  • повышение безопасности буфера
  • упрощенная промисификация
  • статичные коды ошибок
  • и многое другое!

Читать полностью »

image

В четверг, 25 мая, в офисе Avito прошла очередная встреча сообщества фронтенд-разработчиков MoscowJS. Обсуждали отладку анимации, создание WebGL визуализации, сборку webpack’ом и код-ревью. Сегодня публикуем видеозаписи докладов — профессионалам будет интересно. Приятного просмотра!
Читать полностью »

В этой статье мы покажем, как работают технологии распознавания образов на Эльбрус-4С и на новом Эльбрус-8С: рассмотрим несколько задач машинного зрения, немного расскажем об алгоритмах их решения, приведем результаты бенчмаркинга и наконец покажем видео.

Сравнение Эльбрус-4С и Эльбрус-8С в нескольких задачах машинного зрения - 1

Эльбрус-8С — новый 8-ядерный процессор МЦСТ с VLIW-архитектурой. Мы тестировали инженерный образец с частотой 1.3 ГГц. Возможно, в серийном выпуске она еще возрастет.

Читать полностью »

Оглавление

  1. Односторонние диапазоны
  2. Строки
  3. Приватные объявления видимы в экстеншенах того же файла
  4. Умные ключи пути
  5. Архивирование и сериализация
  6. Улучшения в Dictionary и Set
  7. Метод MutableCollection.swapAt
  8. reduce с поддержкой inout
  9. Генеретики в сабскриптах
  10. Мостик для NSNumber
  11. Экземпляры классов и подтипов

Читать полностью »

Нейросеть генерирует код GUI по скриншотам - 1
Скриншот-задание и выдача нейросети pix2code на собственном языке, который компилятор потом транслирует в код для нужной платформы (Android, iOS)

Новая программа pix2code (научная статья) призвана облегчить работу программистов, которые занимаются муторным делом — кодированием клиентского GUI.

Дизайнер обычно создаёт макеты интерфейса, а программист должен написать код для реализации этого дизайна. Такая работа отнимает драгоценное время, которое разработчик может потратить на более интересные и творческие задачи, то есть на реализацию настоящих функций и логики программы, а не GUI. Скоро генерацию кода можно будет переложить на плечи программы. Игрушечная демонстрация будущих возможностей машинного обучения — проект pix2code, который уже вышел на 1-е место в списке самых горячих репозиториев на GitHub, хотя автор ещё даже не выложил исходный код и наборы данных для обучения нейросети! Такой огромный интерес к этой теме.
Читать полностью »

На субботу 3 июня в Москве обещают +11 и лёгкий дождь. Нелётная погода, ну то есть не велосипедная и не особо прогулочная. А душа требует лета, общения, азарта и новых событий. Мы придумали для вас мега насыщенный день в Телеграфе, где пройдёт IT-конференция «Продвижение». Неважно, фанатеете вы от React, занимаетесь дизайном, пытаетесь внедрить Agile или просто считаете себя гиком и книголюбом, — места, нетворкинга и интересных моментов программы хватит всем. Дело за малым — зарегистрироваться и прийти. Ну и почитать подробности под катом.

ИТ-конференция «Продвижение»: суббота с пользой - 1 
Читать полностью »

«Когда я задался целью получить действительно случайное число, то не нашел для этого ничего лучшего, чем обычная игральная кость» — писал в 1890 году Фрэнсис Гальтон в журнале Nature. «После того, как кости встряхивают и бросают в корзинку, они ударяются друг о друга и о стенки корзинки столь непредсказуемым образом, что даже после легкого броска становится совершенно невозможным предопределить его результат».

image
(Игральные кости времён Римской Империи)

Как мы можем сгенерировать равномерную последовательность случайных чисел? Случайность, столь прекрасная в своём многообразии, часто встречается в живой природе, но её не всегда легко было извлечь искусственным путём. Самые древние из игральных костей были найдены на Среднем Востоке, и они датируются примерно 24 столетием до нашей эры. Другим примером может быть Китай, где ещё в 11 столетии до нашей эры применялось разбивание ударом черепашьего панциря, с дальнейшей интерпретацией размера полученных случайных частей. Столетиями позже люди разрубали несколько раз стебли растений и сравнивали размеры полученных частей.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js