Как стать автором
Поиск
Написать публикацию
Обновить
0
@lvourslread⁠-⁠only

Пользователь

Отправить сообщение

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

Время на прочтение7 мин
Количество просмотров411K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Постановка задачи


Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
Читать дальше →

Введение в анализ сложности алгоритмов (часть 1)

Время на прочтение10 мин
Количество просмотров392K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы покажутся чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он будет полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Введение


Многие современные программисты, пишущие классные и широко распространённые программы, имеют крайне смутное представление о теоретической информатике. Это не мешает им оставаться прекрасными творческими специалистами, и мы благодарны за то, что они создают.

Тем не менее, знание теории тоже имеет свои преимущества и может оказаться весьма полезным. В этой статье, предназначенной для программистов, которые являются хорошими практиками, но имеют слабое представление о теории, я представлю один из наиболее прагматичных программистских инструментов: нотацию «большое О» и анализ сложности алгоритмов. Как человек, который работал как в области академической науки, так и над созданием коммерческого ПО, я считаю эти инструменты по-настоящему полезными на практике. Надеюсь, что после прочтения этой статьи вы сможете применить их к собственному коду, чтобы сделать его ещё лучше. Также этот пост принесёт с собой понимание таких общих терминов, используемых теоретиками информатики, как «большое О», «асимптотическое поведение», «анализ наиболее неблагоприятного случая» и т.п.
Читать дальше →

Знай сложности алгоритмов

Время на прочтение2 мин
Количество просмотров1.1M
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →

Joy Inc. Работа мечты и бизнес-процессы, основанные на радости

Время на прочтение4 мин
Количество просмотров12K
А вы знаете софтверную компанию Menlo Innovations из городка Анн Арбор в штате Мичиган? За 14 лет эти ребята попали на обложку Forbes и страницы The Wall Street Journal, завоевали тонну наград и оказались в числе 500 самых быстро растущих частных компаний Америки. А еще они провели несколько тысяч экскурсий по своему офису, дав возможность посетителям погрузиться в атмосферу компании и увидеть все рабочие процессы изнутри.



Секрет успеха Menlo Innovations заключается в том, что руководство компании закладывает радость и счастье своих сотрудников в основу всех бизнес-процессов. Разумеется, при этом они не забывают про счастье своих заказчиков и радость конечных пользователей своих продуктов.

Как построить успешный бизнес, одной из главных целей которого является радость и счастье сотрудников, рассказывает CEO компании Ричард Шеридан в своей книге “Работа мечты” (оригинальное название “Joy Inc. How We Built A Workplace People Love” мне нравится больше).
Читать дальше →

Как «не программист» игру писал

Время на прочтение7 мин
Количество просмотров90K
Всем привет. Я хочу, чтобы этот пост послужил мотивацией для всех начинающих игроделов, да и не только для них. Статья не содержит сухой научной информации, которая так свойственна настоящим программистам. Хочу поделиться с вами своей историей, на мой взгляд, довольно увлекательной.

Началось всё с того, что ровно год назад меня посетила идея: сделать игру своими руками. Назовите это модным, популярным или трендовым, мол, сейчас многие хотят и делают, но для меня это было, как если б я китайский язык учить решил, да не просто, а так, чтобы с дипломатами китайскими на одном уровне разговаривать.
Читать дальше →

Инженерная культура, которую мы потеряли?

Время на прочтение5 мин
Количество просмотров243K

Этот пост, наверно, правильно воспринимать как крик души, как попытку найти поддежку в профильном сообществе и окончательно не потерять веру в текущий уровень высшего инженерно-технического образования. То, что сейчас все крайне непросто в этой сфере, не говорит только ленивый, но я хочу постараться дать вам некую объективную информацию, а выводы… Выводы, думаю, все сделают сами. Кому интересно, прошу под кат.
Читать дальше →

[LibGDX] Создаем клон Flappy Bird — Zombie Bird

Время на прочтение127 мин
Количество просмотров199K
Доброго времени суток %username%. Не давно наткнулся на хороший туториал по созданию клона игры Flappy Bird используя LibGDX и этот туториал мне понравился своей простотой и детализацией.

Я отдаю себе отчет, что тема создания клонов данной игрушки изъела себя, но возможно кому-то пригодится еще один хороший туториал.

Туториал разбит на 12 дней, содержит множество картинок, полотен кода и исходный код разбит по дням. Кому интересно, добро пожаловать под кат.
Подробнее

Makefile для самых маленьких

Время на прочтение4 мин
Количество просмотров820K
Не очень строгий перевод материала mrbook.org/tutorials/make Мне в свое время очень не хватило подобной методички для понимания базовых вещей о make. Думаю, будет хоть кому-нибудь интересно. Хотя эта технология и отмирает, но все равно используется в очень многих проектах. Кармы на хаб «Переводы» не хватило, как только появится возможность — добавлю и туда. Добавил в Переводы. Если есть ошибки в оформлении, то прошу указать на них. Буду исправлять.

Статья будет интересная прежде всего изучающим программирование на C/C++ в UNIX-подобных системах от самых корней, без использования IDE.

Компилировать проект ручками — занятие весьма утомительное, особенно когда исходных файлов становится больше одного, и для каждого из них надо каждый раз набивать команды компиляции и линковки. Но не все так плохо. Сейчас мы будем учиться создавать и использовать Мейкфайлы. Makefile — это набор инструкций для программы make, которая помогает собирать программный проект буквально в одно касание.
Читать дальше →

Обзор наиболее интересных материалов по анализу данных и машинному обучению №21 (3 — 9 ноября 2014)

Время на прочтение5 мин
Количество просмотров12K

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

Box2D — Физика движения авто своими руками

Время на прочтение14 мин
Количество просмотров29K
Приветствую всех читателей хабра. В этом топике я постараюсь показать вам как просто можно создать простую физику движения передне— и полноприводного автомобиля.
Читать дальше →

Уютный книжный пост для вас и вашего проекта

Время на прочтение8 мин
Количество просмотров131K
Как заработать миллион за день, стать искусным оратором за неделю, похудеть на 100 кг за 2 дня, стать успешным в тысяча ста начинаниях и прочая мишура регулярно засоряет наше информационное пространство. А порой так хочется взять в руки книгу, которая не просто съест кусок вашего свободного времени повествуя о неприменимых в отечественных реалиях вещах, но и подкинет хотя бы несколько полезных советов, способных оказать позитивное влияние на развитие вашей личности и вашего проекта.

Если вы хотите найти и/или поделиться хорошими книгами, добро пожаловать под кат.

image

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

Вирусы. Вирусы? Вирусы! Часть 2

Время на прочтение30 мин
Количество просмотров88K


Как и обещал в прошлой части, продолжим рассмотрение вирусных движков. На этот раз речь пойдет о полиморфизме исполняемого кода. Полиморфизм для компьютерных вирусов означает, что каждый новый зараженный файл содержит в себе новый код вируса-потомка. Чисто теоретически, для антивируса это должно было бы означать настоящий кошмар. Если бы существовал вирус, который в каждом новом поколении на 100% менял бы свой код, причем по настоящему случайным образом, никакой сигнатурный анализ не смог бы его детектировать.

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

Искусственный интеллект и Почему мой компьютер меня не понимает?

Время на прочтение5 мин
Количество просмотров153K


Гектор Левекwiki утверждает, что его компьютер тупой. И ваш тоже. Siri и голосовой поиск Google умеют понимать заготовленные предложения. Например «Какие фильмы будут показывать неподалёку в 7 часов?» Но что насчёт вопроса «Может ли аллигатор пробежать стометровку с барьерами?» Такой вопрос никто раньше не задавал. Но любой взрослый может найти ответ на него (Нет. Аллигаторы не могут участвовать в беге с барьерами). Но если вы попытаетесь ввести этот вопрос в Google, то получите тонны информации о спортивной команде по лёгкой атлетике Florida Gators. Другие поисковые системы, такие как Wolfram Alpha, тоже не способны найти ответ на поставленный вопрос. Watson, компьютерная система выигравшая викторину «Jeopardy!», вряд ли покажет себя лучше.
Читать дальше →

О медицинской тайне или кому нужна информационная безопасность?

Время на прочтение2 мин
Количество просмотров36K
У нас вследствие разгильдяйства, я сказал бы даже раздолбайства такого, которое превратилось уже в государственную угрозу

«У меня нечего взять, поэтому беспокоиться повода нет» — так думают не только обыватели, но и руководители непрофильного бизнеса. Если человек имеет свой мелкий бизнес и в excel ведет бухгалтерию убедить его заплатить за какую-то «ИБ», которая не приносит прибыли проблематично. Он так и будет надеяться на «авось». Ведь нарушение целостности\конфиденциальности\доступности может и не произойти, тогда зачем платить?
Читать дальше →

Перевод учебника по алгоритмам

Время на прочтение1 мин
Количество просмотров167K


Рад сообщить, что вышел перевод отличнейшего учебника Дасгупты, Пападимитриу, Вазирани «Алгоритмы», над которым я работал последние несколько лет. В книге многие алгоритмы объяснены гораздо короче и проще, чем в других учебниках: с одной стороны, без излишнего формализа, с другой — без потери математической строгости. Откройте книгу на каком-нибудь известном вам алгоритме и убедитесь в этом. =)

В общем, угощайтесь: печатный вариант перевода, электронный вариант перевода (PDF), печатный вариант оригинала, электронный вариант оригинала (PDF).
Читать дальше →

Яндекс и Высшая школа экономики открывают факультет Computer Science

Время на прочтение2 мин
Количество просмотров44K
Компьютерная наука так быстро развивается, что классическое образование за ней просто не успевает. Между тем потребность в специалистах в области Computer Science сейчас огромна. Вместе с Высшей школой экономики мы хотим создать факультет, где люди смогут получить полноценное высшее образование в этой сфере. Он будет готовить специалистов по программам «Теоретическая и прикладная информатика» и «Программная инженерия». Занятия начнутся уже в сентябре этого года.



Новый факультет компьютерных наук — это «большой» факультет. В Высшей школе экономики так называются структурные объединения, отвечающие за целую предметную область. Он объединит отделение программной инженерии, а также отделение прикладной математики и информатики, которые уже существовали в Высшей школе экономики. К ним добавится новый департамент — больших данных и информационного поиска. Он будет создан на основе базовой кафедры Яндекса, которая работает в НИУ ВШЭ с 2008 года. Учебный план факультета создаётся совместно преподавателями университета и специалистами Яндекса. В него войдут курсы по машинному обучению, компьютерному зрению, Big Data и другим направлениям компьютерных наук. Лекции и семинары будут вести преподаватели НИУ ВШЭ, сотрудники Яндекса и преподаватели Школы анализа данных.
Читать дальше →

Книга «Системная инженерия для чайников»: электронная версия книги для всех желающих

Время на прочтение1 мин
Количество просмотров40K


Силами специалистов корпорации IBM в свет вышла интереснейшая книга «Системная инженерия для чайников». В первую очередь, эта книга предлагается вниманию Хабрасообщества, где максимальная концентрация IT-специалистов, которым издание будет интересно (тут стоит сделать ремарку — книга существует не только в бумажной, но и электронной версии, и вот как раз электронная версия предлагается вашему вниманию).

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

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

Unreal Engine 4 теперь доступен для всех

Время на прочтение1 мин
Количество просмотров101K
Компания Epic Games анонсировала что с сегодняшнего дня любой желающий может получить доступ к Unreal Engine 4 всего за 19$ в месяц + 5% от стоимости каждой проданной копии продукта, сделанного на основе UE4.
Читать дальше →

IT + образование. Еще раз о бакалавриате

Время на прочтение4 мин
Количество просмотров33K

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

Компаниям, как правило, нужны программисты двух типов. Одни — «рабочие руки», т.е. те, кто умеет хорошо выполнять порученное им задание, и вторые — «рабочие мозги», т.е. те, кто может генерировать новые идеи, предлагать новые подходы, разрабатывать новые направления.
Что касается первой категории, то для того, чтобы в ней работать действительно может хватить пары курсов института и книжек перед сном. Со второй категорией все сложнее… Дело в том, что специалисты этого уровня должны иметь знания шире, чем это требуется для их непосредственной работы.
Вот о том, как готовить специалистов второй категории и хочется поговорить сегодня. И начать с азов — с бакалавриата.
Читать дальше →

Нативные интерфейсы в Qt

Время на прочтение11 мин
Количество просмотров67K
Qt Logo

Эта статья посвящена программированию GUI на базе фреймворка Qt от Nokia. Мы рассмотрим способы разработки интерфейсов для нативного отображения на платформах Windows, Linux и Mac OS X.

Презентацию[1] вёл Йенс Бач-Вииг (Jens Bache-Wiig) — разработчик Qt (с 2005 года), занимающийся интерфейсами (look and feel).

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

Итак, приступим. Каждое графическое окружение имеет свой свод правил (User Interface Guidelines, UIG) по созданию интерфейсов, предназначенных для этих окружений. Из основных можно отметить такие руководства как Windows User Experience Interaction Guideline, Apple Human Interface Guideline, KDE User Interface Guideline и GNOME HID. Каждое из этих руководств «определяет положение кнопочек и рюшечек» конкретного окружения. Фреймворк Qt, в свою очередь, осуществляет поддержку всех этих руководств, предоставляя разработчику возможность создавать программы с использованием виджетов, «подстраивающихся» под окружение.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность