Search
Write a publication
Pull to refresh
4
0
Олег Коротков @Kavabunga

User

Send message

Современное школьное образование, часть 1

Reading time7 min
Views14K
Вторая часть про типы видео-лекций.
Третья часть про технологии интернет-образования и разработку контента.

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

  • Как должна быть поставлена школьная задачка? Какова должна быть сложность? Что должны представлять из себя лабораторные работы?
  • Интернет — образование. Возможно ли в России создание аналога онлайн архива лекций (и не только) khanacademy.org? Именно нормальных уроков и лекций, связанных в один программный курс, а не пособий по дрессировке к ЕГЭ. Как советская система образования может выглядеть в современных медиа (видео-лекции, интерактивные приложения)? Кто будет это делать?
  • ???


Здесь представлена первая часть, остальные будут позже.
Читать дальше →

Третье практическое задание с сайта unity3dstudent.com

Reading time9 min
Views10K
Продолжим разбирать практические задания с unity3dstudent.com. На очереди последняя на данный момент задачка. Статья слегка задержалась, но, надеюсь, будет кому-то полезна.

Вот ссылка на оригинальное задание: www.unity3dstudent.com/2010/07/challenge-c03-beginner

Суть: игрок должен уметь перемещаться вправо/влево и стрелять по трём мишеням. Мишени при попадании должны падать, а игроку за каждую сбитую мишень начисляется очко. По достижении трёх очков показывается экран окончания игры.

Первая задача.
Вторая задача.


Поехали!

Я не могу написать бинарный поиск

Reading time11 min
Views208K
Недавно (буквально два года назад) тут пробегала статья Только 10% программистов способны написать двоичный поиск. Двоичный поиск — это классический алгоритм поиска. Мало того, это еще чрезвычайно простой алгоритм, который можно очень легко описать: берем отсортированный массив, смотрим в середину, если не нашли там число, в зависимости от того, что в середине — ищем это число этим же методом либо в левой части, либо в правой, откидывая средний элемент. Для функций также, просто берем не массив, а функцию. Все очень и очень просто, алгоритм описан почти везде, все баги словлены и описаны.

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

А в чем, собственно, проблема?

Microsoft Cloudball Challenge — соревнование по футбольному AI

Reading time2 min
Views2.3K
Помню оживленное обсуждение на хабре Google AI Challenge, а заметок по подобному соревнованию от Microsoft не нашел. И раз уж мне посчастливилось этот конкурс выиграть, наверное мне о нем и рассказывать.

Как и в случае с Google AI Challenge сама корпорация Microsoft непосредственного участия в организации не принимала, а разработкой занималась шведская фирма Giraff.

Cloudball — упрощенная версия футбола. Играют две команды по 6 игроков. Игроки могут «вести» мяч, бить его в любую сторону и делать подкаты. Мяч упруго отбивается от бортиков. У каждого игрока есть свое амплуа (вратарь, левый защитник, правый защитник и т.д.), но придерживаться их не обязательно.

Вот пример матча:
Читать дальше →

Canonical объявляет конкурс разработчиков с ценными призами

Reading time2 min
Views1.4K
Компания Canonical, занимающаяся разработкой популярной операционной системы Ubuntu, в последнее время активно пытается продвигать GNU/Linux в широкие массы. В Ubuntu сделали магазин приложений, упростили интерфейс, улучшили взаимодействие с социальными сетями, наладили облачную синхронизацию своей системы с мобильными платформами Android и iOS, договорились с EA Games и Humble Bundle о дистрибуции игр через свой магазин (в случае с EA пока не стоит ждать Crysis и Need For Speed, речь идёт о браузерных играх), а теперь объявляют и конкурс для разработчиков.
Читать дальше →

Конкурс для программистов

Reading time3 min
Views25K

На днях исполняется год нашему блогу на Хабре. И мы решили отметить это дело! Нет, ну не так, как вы подумали. Хотя так, конечно, тоже. Но сейчас не об этом.

Нам очень хочется подарить всем нашим читателям какие-то подарки, но подарок у нас только один (зато хороший), поэтому мы решили разыграть его в небольшом конкурсе для программистов. Условия конкурса и описание приза — под катом. Задания не отнимут много времени, шанс выиграть есть у всех.
Читать дальше →

7 типичных русских проблем в английской речи

Reading time10 min
Views254K
South Park
Предметом данной статьи является попытка систематизировать культурные различия, и типичные ошибки которые мы допускаем с нашими иностранными коллегами. Большинство примеров взято из книги Русские проблемы в английской речи. Я взял на себя смелость в небольшой популяризации данной темы, снабжению комментариями и собственными примерами.

1. Я прав, а ты нет
Читать дальше →

Иссык-кульские кибер-милиционеры задержали распространителя компьютерных вирусов

Reading time1 min
Views2.9K
«Сводка» — В городе Каракол задержан студент 5-курса факультета информатики и математики Иссык-Кульского государственного университета имени К.Тыныстанова за распространение компьютерных вирусов.

Как сообщили в УВД Иссык-Кульской области, неизвестное лицо умышленно создало и распространило на территории области компьютерные вирусы под названием «BORUBASH-MIRLAN» и «KONURBAI», которые наносят вред операционной системе персональных компьютеров.
Читать дальше →

Пишем игру для Android c помощью AndEngine. Часть 1

Reading time4 min
Views55K
Всем привет.
Сегодня я расскажу вам как с помощью AndEngine написать небольшую игру. Стаья получилась довольно большая и, чтобы не утомлять читателя, пока мы остановимся на первой ее части. Все что нужно от читателя — это знание java, ООП и умение обращаться с Eclipse и Android SDK. Забегая вперед, у нас получится что то похожее на Mirrors Maze либо Laser Logic.
Вторая часть статьи.
Третья часть статьи.
Читать дальше →

Рисуем мерцающий текст системой частиц

Reading time6 min
Views7.6K
В позапрошлой своей статье, посвящённой созданию открытки средствами OpenGL под Android, я оставил фразу «текст поздравления добавим позже». Так вот, время пришло.

Текст будет выглядеть примерно так, как на картинке, за исключением того, что он слегка мерцает, каждая «звёздочка» плавно исчезает и появляется (кроме того, в финальном варианте и сам текст другой, и цвет не тот, и размеры шрифта и частиц тоже). Нарисован он с помощью анимированной системы частиц, причём в массиве вершин задаются лишь координаты центра каждой точки и некий «сдвиг по фазе» для анимации, ну а сама анимация сделана через шейдеры.

Отрисовка частиц осуществляется механизмом Point Sprites, который как раз и создан для таких случаев. Основная его особенность в том, что мы задаём лишь координаты центра точки и её размер, а OpenGL сам генерит нам по четыре угловых вершины и два треугольника, включая их пространственные и текстурные координаты, для отрисовки множества одинаковых (в смысле, имеющих одну и ту же текстуру) квадратных картинок. Итак, заглянем под ка[по]т.
Читать дальше →

Погружение в скрипты игрового движка Unity3d, ч.1

Reading time6 min
Views237K
Доброго времени суток, уважаемый читатель! На Хабре неоднократно публиковались статьи о разработке игр с использованием замечательного движка Unity3d. Большинство этих статей были посвящены вполне определенным задачам, я же хотел сделать общий экскурс в данный движок. Данная часть будет посвящена наиболее часто используемым скриптовым методам и объектам, которые используются мной в процессе разработки на данном движке. Примеры я буду приводить на JavaScript, как на наиболее близком мне языке.
Читать дальше →

Unity3d Tank Tutorial: Ходовая часть (Урок 1. Основы механики транспортного средства)

Reading time12 min
Views152K
image

Вступление


Итак вы уже не новички в Unity, вы умеете создавать сцену, расставлять объекты на сцене, создавать terrain, делать префабы и тд… и главное — работать со скриптами, либо вы уже изучили статьи: Unity3D для начинающих — Туториал 1 и Unity3d script basics. Все эти знания вам пригодятся ведь в этом уроке мы двинемся намного дальше.

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

Собственно то что вы видите на изображении сверху (это будет результат данного урока) вы можете опробовать «вживую» прямо в браузере. Хотите сделать это сами? Тогда добро пожаловать под кат
Читать дальше →

2d на Unity3d

Reading time14 min
Views220K
В свое время, в начале разработки двухмерной игры на Unity3d, мне пришлось перерыть кучу документации, сайтов, проштудировать answers.unity3d.com и forum.unity3d.com на тему: как сделать 2d-игру на этом 3d-движке. Самыми первыми вопросами были: как правильно настроить камеру, как сделать 2d-спрайт так, чтобы он отображал текстуру «пиксель в пиксель». На то время уже существовал SpriteManager (далее – SM) и даже SM2 с его мощной поддержкой редактора. Судьба сложилась так, что я не мог его тогда купить, да и пробной версии не было. В итоге, мне пришлось самому написать несколько полезных скриптов для реализации 2d на Unity3d. О том, как это сделать, пойдет речь в этой статье.

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

Визуализация «В Контакте»: Скажи мне, кто твой друг?

Reading time2 min
Views146K
Привет, Хабралюди!

У меня есть хобби. Я ночами (в нерабочее время) пишу библиотеку укладки графов: vivagraph.js. Хотел поделиться с вами, узнать что думаете. Визуализировал я сеть друзей своих на «В Контакте» с использованием WebGL. Но лучше один раз увидеть, чем читать, верно?



Это мои друзья. Каждая точка — человек, целый мир, с которым так или иначе мне повезло встретиться. Линия между точками обозначает дружбу. По этой сети можно, правда, сказать многое о человеке.

Как построить свою сеть?

Американская мечта, или Полгода в топе. Въ Умѣ

Reading time5 min
Views3.6K

Вместо предисловия


Прошло уже полгода с момента выхода первой версии нашего приложения «В уме». За эти шесть месяцев в жизни изменилось очень многое, но из Top 10 категории Education мы так и не выпали. Раньше меня это немного удивляло, но в конечном счете свыкся.

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

Поностальгируем: Мясорубка

Reading time3 min
Views2K
Пост навеян этим вопросом в q&a. Вопрос хоть и не мой, но поностальгировать тоже захотелось.

Из описания к игре (текст 2002-ого года):
Двухмерная аркада с видом сверху, в которой присутствуют все оружие и многие вещи из QuakeII. Играть пока можно только по hotseat (два игрока за одним компьютером) и против бота. Есть разные карты (на 1 и 4 экрана), Вы сами можете их (карты) делать с помощью мэпедитора. Есть несколько моделей игроков (их Вы тоже сами можете делать с помощью mmodeler'a). Можно записывать и проигрывать реплэи игры.

Предыстория
Учился я в то время в школе, не помню уже, по какому поводу познакомился я в интернете с Константином Мухопад aka 3d[power]. После того, как он начал разработку своей игры Need For Kill, мне тоже захотелось сделать что-нибудь подобное. Недолго думая, я решил делать такую же игру, но с видом сверху. Вот только компьютер у меня был слабый и Q3 на нем не шел, поэтому делать я стал игру по мотивам quake 2.

Что же из этого получилось

Подробности кухни разработки Diablo II (от 2000 года)

Reading time2 min
Views21K
Сейчас, перед релизом 3-й части Diablo, в сети начали всплывать интересные материалы.

Один из таких материалов — это постмортем Diablo 2 от 2000 года. Желающие могут его изучить.

Здесь же я хочу заострить внимание на том, что показалось интересным лично мне.

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

Правила разработки сложных систем. История одного проекта

Reading time8 min
Views18K
Привет, Хабр. Меня зовут Александр. И я хочу поделится своей историей работы над одним крупным и сложным проектом.

В этой статье не будет кода и схем, в ней будет только история создания «от и до» самого проекта. Думаю, многим будет интересна данная статья. Итак, поехали!

Начало


Все началось летом 2011. На тот момент я был 3 года чистокровным фрилансером. То есть моя работа — это фриланс. Работал и работаю до сих пор только с западными заказчиками. Основная специализация — разработка проектов связанных с распознаванием образов, текста и т.д.

Все началось с того, что я, как всегда, с утра проверял почту, чистил спам, занимался рутинной работой. Обычно я не смотрю, что у меня в спаме, но тут я увидел письмо, с вполне реального адреса. Я открыл письмо, в котором одна компания искала программиста для допиливания крупного западного проекта. Причем эта компания требовала программиста именно из моего города и обязательно с опытом работы в области распознавания. Я ради любопытства ответил на это письмо. Буквально через час мне пришел ответ. А через два мы уже созвонились с менеджером проекта. Поначалу мне показалось, что ничего сложного в доработке нет, обычный набор функционала. После непродолжительного разговора с менеджером я огласил свой прайс, то есть ставку в час. И на этом мы попрощались. На следующий день мне сказали, что согласны на мой ценник и дали тестовое задание. Я его успешно выполнил в течении часа, и мы двинулись дальше. А здесь начинается самое интересное. Во-первых, меня пригласили в офис для того, чтобы подписать договор о неразглашении (Non-Disclosure Agreement). Во-вторых, и это логично, исходники проекта мне обещали отдать только после подписания договора. Если честно, меня это смутило, не знаю даже почему. И интуиция меня не подвела. Я потребовал хотя бы часть исходного кода, чтобы оценить сложность работы и попросил рассказать подробнее о проекте. Как оказалось проект на тот момент велся уже три года и я был 4 (!) исполнителем. До меня работала американская компания, потом индусы, потом компания, которая наняла меня, пыталась реализовать проект силами одной девочки-программиста, а потом это все чудо предложили разгребать мне. Меня это не просто удивило, а очень насторожило. Потом я узнал множество удивительных вещей, например о том, что заказчик 2 года не видел программу, а видел только скриншоты, а индусы кормили обещаниями этого заказчика. У меня не укладывалось в голове, как такое можно реализовать. Менеджеру индусов надо дать медаль «За находчивость».

После того как я выслушал удивительную историю, мы договорились с менеджером о том, что он мне отдаст исходный код и я оценю масштаб трагедии. Чтобы было более понятно, я расскажу более подробно о проекте. Этот проект — это инструмент для инженеров, архитекторов, электриков и других людей, которые занимаются строительством домов, небоскребов, одним словом зданий. Он служит для подсчета различных элементов на строительных планах, расчета площадей, измерения длин и составления смет. Грубо говоря есть строительный план и на нем есть розетки. Нам надо распознать и посчитать сколько этих розеток. Для распознавания использовалась библиотека написанная другим программистом. Сам проект написан на C#. Моя задача была собрать все воедино и доработать дополнительный функционал, а также привести программу к более менее стабильному состоянию. Кажется все просто и элементарно. Я тоже так подумал. Но не тут-то было.

После того как я получил исходники, я попытался скомпилировать проект. Это мне не удалось. После краткого анализа, я исправил ошибки и все же запустил проект. Но, к сожалению, он не заработал так как нужно. После нескольких часов анализа кода я пришел к выводу, что вся проблема в библиотеке распознавания. На тот момент у меня стояла 64-битная «семерка», а у менеджера 32-битная. У него все работало, у меня нет. Я попросил, что бы мне скомпилировали библиотеку под 64-битную платформу. Но разработчик библиотеки с пеной у рта доказывал, что не в разрядности дело. Я не мог ему ничего доказать, так как он дал очень немного информации о своей библиотеке и вообще берег ее как зеницу ока. Время шло и мне надо было хотя бы полностью провести процесс поиска. Я плюнул на все и поставил себе 32-х битную версию ОС. И о чудо! Все заработало. Отвлекаясь, хочу сказать о библиотеке, в будущем дело все же оказалось в ее разрядности.

Я начал анализировать код. Первое впечатление было просто отвратным. Я был в шоке. Я приведу список того, что меня возмутило в проекте.

1. Компоненты и контролы.

Проект очень сильно связан с графикой, но для ее вывода и обработки использовался обычный PictureBox. Самый маленький размер плана — 5400x3600 пикселей. Знающие люди поймут, что для PictureBox -это достаточно проблематичная тема с выводом больших картинок и их обработкой. Не стоит забывать, что помимо самих планов выводится еще много информации (площади, текст, найденные символы и т.д.). При запуске проекта с 5 маленькими планами, программа непременно падала с ошибкой «Out of memory». Что было очень большой проблемой, так как основной задумкой было то, что инструмент должен был работать по принципу «запустил и забыл».

2. Логика архитектуры исходного кода программы.
Читать дальше →

Bomberman Online — HTML5 мультиплеер онлайн игра от хабраюзеров. Тестируем нагрузку!

Reading time2 min
Views19K
Bombermine Online — результат последних двух недель тестирования и подготовки движка для большого кол-ва игроков онлайн.

Движок написан на Java + Jetty (бекэнд). Фронтэнд — HAProxy + Nginx + Node.js. Клиентсайд — GWT, который транслируется в HTML5/canvas + javascript + websockets. Хостится всё в облаке.

На данный момент рекорд — 50 игроков онлайн. Настроен весь необходимый софт для мониторинга нагрузки. После хабраэффекта обещаем выложить отчёт. Ждём гостей.

Ну а под катом: видео геймплея и немного предыстории создания движка

UnityCar — автомобили с физикой для Unity3D

Reading time3 min
Views51K


Игровой движок Unity3D не нуждается в особом представлении. Для тех, кто не знает, что это такое, могут посмотреть сайт unity3d.com/unity/ или поискать другие топики на хабре про этот замечательный кросс платформенный движок. Для него уже написано множество дополнений, моделей и других пакетов. Об одном из них и пойдет речь.
UnityCar — полноценный физико-реалистичный пакет симуляции автомобилей для Unity3D, который прост в использовании и реализует множество физических моделей, включая модели повреждений и разрушений.

Небольшое видео, демонстрирующее возможности пакета:

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

Information

Rating
Does not participate
Location
Днепродзержинск, Днепропетровская обл., Украина
Date of birth
Registered
Activity