Как стать автором
Обновить
15
0
Эридан Доморацкий @ProgMiner

Разработчик

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

Программист на Марсе: Shutdown Dammit Until

Время на прочтение10 мин
Количество просмотров16K
— Хьюстон, у нас проблемы.
— Нет, Марк, это у тебя проблемы.


Как спится программистам и тестировщикам марсохода за 400 миллионов долларов? Особенно если на 18 сол аппарат не вышел на связь.



Марк Адлер — американский разработчик программного обеспечения, который работает в сфере исследования космоса. Более всего он известен благодаря своей работе в области сжатия данных, являясь автором хеш-функции Adler-32, а так же как со-автор библиотеки для сжатия данных zlib и gzip. Он участвовал в разработке Info-ZIP и формата изображений Portable Network Graphics (PNG). Адлер также был ответственным за миссию марсохода «Спирит» в рамках программы «Mars Exploration Rover».

Расскажем вам о разработчике ПО марсохода и о том, как развивались события, когда пытались исправить ошибку софта на расстоянии 225 миллионов километров.
Всего голосов 35: ↑32 и ↓3+29
Комментарии7

Делаем простую игру с кнопками, ящиками и дверями на Unity

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


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

Для самых нетерпеливых по ссылкам ниже находится готовый прототип.
Онлайн версия
Скомпилированная версия для Windows [Зеркало] ~7.5 МБ

Что мы собираемся делать? Двумерную головоломку с колобком в роли главного героя, который может двигать ящики, которые могут нажимать кнопки, которые могут открывать двери, за которыми скрывается выход из уровня, который построил я. Или вы, у нас же здесь туториал как-никак.

Подразумевается, что вы уже успели скачать Unity и поигрались немного в редакторе. Нет? Сейчас самое время, я подожду.
Читать дальше →
Всего голосов 96: ↑89 и ↓7+82
Комментарии32

Первый опыт в игровой разработке. Ошибки и выводы

Время на прочтение4 мин
Количество просмотров19K
После прочтения одной из статей на Хабре решил заняться разработкой игр для мобильных платформ. Решено было сделать игру для андроида, так как Window Store мне не нравится, a регистрация в Appstore стоит 100$.

Через 10 минут я придумал механику, которую ни у одной игры ещё не видел. По задумке, камера располагалась сверху (Top-down), на персонажа с разных сторон шли враги он автоматически по ним стрелял. От игрока только требовалось перемещать персонажа по экрану, чтобы враги его не задели. Суть игры в том, чтобы набрать как можно больше очков.
Читать дальше →
Всего голосов 41: ↑23 и ↓18+5
Комментарии24

Геометрические фигуры на CSS

Время на прочтение4 мин
Количество просмотров953K
Отличная подборка, как нарисовать различные геометрические фигуры одним элементом HTML.

Квадрат



#square {
	width: 100px;
	height: 100px;
	background: red;
}

Читать дальше →
Всего голосов 352: ↑328 и ↓24+304
Комментарии103

JBrainfuck — Пишем компилятор Brainfuck под Java VM

Время на прочтение13 мин
Количество просмотров22K
Меня давно интересовал вопрос написания своего компилятора под Java VM, но было недостаточно опыта, дабы сделать это. Да и как-то руки не доходили, а недавно все же решил разобраться в этой теме и заодно рассказать о своем опыте создания компилятора под эту VM.

В качестве реализуемого языка возьмем Brainfuck. Он прост в реализации, что отлично подходит для изучения данной темы, но сначала предоставлю вам свою реализацию.

JBrainfuck — оптимизирующий интерпретатор и компилятор Brainfuck под Java VM. Благодаря JIT обладает высокой производительностью.


Ну что, приступим?
Всего голосов 49: ↑49 и ↓0+49
Комментарии18

Простейшая 3D игра на libGDX под Android в 200 строк кода

Время на прочтение12 мин
Количество просмотров72K
Я преподаю в IT школе Samsung программирование под Android для школьников. Программа обучения охватывает множество разнообразных тем. В числе прочих предусмотрен один урок, знакомящий учеников с основами 3D-графики под Android. Стандартный учебный материал этого урока показался мне очень бесполезным по нескольким причинам:
  1. Используется голый OpenGL, а поскольку на практике в программировании игр чаще всего используются готовые движки, то это мало полезно для школьников в контексте их собственных проектов. Кто-то может возразить, что увидеть в деле чистый OpenGL полезно для понимания основ, но здесь вступает в дело 2-й недостаток.
  2. Урок очень непонятный. У типичного школьника, пусть и разбирающегося в программировании, нет достаточной базы, чтобы понимать многое из того, что описано в уроке (например матрицы многие пройдут только уже в ВУЗе).
  3. В конце урока мы приходим к результату — отрисовка 3-х треугольников средствами OpenGL. Это настолько далеко от реальной 3D-игры, что легко может отбить интерес у школьника.

Поэтому я решил подготовить свой урок, описывающий основы использования libGDX под Android, а раз я все равно готовлю этот материал, заодно разместить его здесь — на хабре. В этом уроке мы сделаем наипростейшую 3D игру под Android, скриншот которой вы можете видеть во вступлении к статье. Итак, интересующиеся, добро пожаловать под кат.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии4

Нейронная сеть на спичечных коробках

Время на прочтение1 мин
Количество просмотров57K
Я не помню где брал эту информацию, но она отражает суть нейросетей лучше всего. На пальцах.

Правила игры. НС обучается играть в игру «11 палочек». Можно брать либо 1 палочку, либо 2. Нужно вытянуть последним все палочки.

Берем 10 спичечных коробков и в каждый помещаем пуговки двух цветов. Например, черного и белого. По одной штуке. Номер на коробке будет отвечать за количество палочек в текущий момент.

Например, НС начинает ход.

1. Закрываем глаза и вытаскиваем наугад пуговку из коробки под номером 11. Если черная, то берем одну палочку, если белая — две. (Пусть будет белая — 2 палочки).
2. Ход человека. Например, он взял 2 палочки.
3. Далее, берем коробок под номером 11-2-2 = 7 и вытаскиваем наугад из него пуговку.

Так до тех пор пока игра не закончится.

Если НС выиграла, то поощряем найденное решение добавлением в задействованные коробки по одной пуговке сверху тогоже цвета что и вытягивали. Если НС проиграла, то наказываем, убирая из последнего коробка вытянутую пуговку.

Вот и вся нейросеть из 10 узлов которая, изначально, не зная даже правил, учится играть и начинает обыгрывать человека. Если изменить правила и, например, тот кто последний забирает палочки проигрывает, то НС переучится и опять начнет побеждать.

Тут, конечно, масштаб незначителен, но он хорошо показывает, что НС хороша тем, что есть возможность гибкого обучения и подстраивания под правила игры.
Всего голосов 72: ↑62 и ↓10+52
Комментарии65

Еще один способ отключения сбора телеметрии в OC Windows 10

Время на прочтение10 мин
Количество просмотров352K
Микрософт с помощью пасьянса и косынки учила пользователей пользоваться мышью,
теперь с помощью windows 10 учит читать лицензионное соглашение.

После выхода windows 10 сразу появились сообщения о сборе информации о действиях пользователей и много обсуждений, что делать. Достаточно быстро пользователи составили список основных серверов, собирающих информацию и попытались их заблокировать через файл hosts. Но скептики сразу выдвинули здравое предположение, что MS мог предусмотреть этот метод и некоторые адреса прописать в коде. Тем более, что MS всегда может актуализировать адреса серверов через windows update.

В нашей компании начали появляться первые пользователи windows 10, и мы решили опробовать блокировку передачи телеметрии через встроенный windows firewall.
Читать дальше →
Всего голосов 97: ↑89 и ↓8+81
Комментарии245

Схема Блома

Время на прочтение3 мин
Количество просмотров23K
imageВ июне 2015 года в России был принят стандарт блочного шифрования — ГОСТ Р 34.12-2015. Мне стало интересно объединить этот ГОСТ (точнее, полином, который используется в нем) и схему Блома.

Вооружившись исходниками и самим ГОСТом, я приступил к делу. Но для начала немного теории.

Итак, Схема Блома —схема предварительного распределения ключей в сети связи. Принцип её действия таков:
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии6

Не все виджеты одинаково «полезны»

Время на прочтение3 мин
Количество просмотров24K
Иногда веб-мастера и владельцы сайтов добровольно (естественно, по незнанию) устанавливают себе на сайте компоненты, которые несут угрозу как посетителям, так и самому сайту. В основном это касается любителей халявы: бесплатные премиум шаблоны, “нулленые” коммерческие CMS, плагины, загруженные не с сайта разработчика и прочие “бесплатности”. К этому списку можно смело добавлять javascript и flash-виджеты для сайта: календарь, mp3-плейер, калькулятор, конвертер валют — все эти элементы, кроме полезных функциональных элементов сайта, могут принести целую “вязанку” нежелательного контента или даже распространять вредоносный код, заражая компьютеры и мобильные устройства посетителей сайта.

На первый взгляд подобные виджеты размещают только “Васи Пупкины” на страницах своих личных блогов, но за последнюю неделю мне довелось анализировать три коммерческих и достаточно посещаемых проекта, которые также использовали зараженные виджеты (один размещал калькулятор для подсчета суммы заказа, второй – календарь на новостном сайте, третий – онлайн-радио).


Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии9

PHP: культура программирования

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

Когда её нет


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

Во многом такое негативное отношение объясняется отсутствием культуры программирования у большого количества PHP-разработчиков. Почему так происходит? Да, у этого языка действительно низкий порог вхождения и легко освоить его может человек без специального технического образования. Изучив основы, можно сразу делать небольшие проектики и даже продавать свои услуги на биржах фрилансеров. А раз на такое есть спрос, зачем тратить время на углубление своих знаний, когда деньги можно зарабатывать уже сейчас?
Читать дальше →
Всего голосов 79: ↑45 и ↓34+11
Комментарии117

Утиные истории: утка ищет баги

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


Грядет 13 сентября, 256-й день года. Но в этом году он приходится на воскресенье, поэтому мы решили отметить это событие слегка заранее. Иными словами, поздравляем всех с Днём программиста! Желаем вам кода без багов, побольше удобных библиотек, толковых и нетребовательных пользователей, творческого полёта мысли, и чтобы вы всегда успевали к дедлайну. Но, как говорится, раздавать пожелания — не мешки ворочать. Чтобы всё это сбылось, нужно работать до седьмого пота, кодить с умом. Вот только вдохновение — дама ветреная и капризная. Сейчас оно есть у тебя, есть несколько идей, как можно получше реализовать какую-то фичу. Но проходит некоторое время, и всё, не можешь придумать ничего дельного. Или долго и безрезультатно ищешь причину какого-то бага, и никак не можешь понять, почему же не работает так, как задумано.
Читать дальше →
Всего голосов 65: ↑49 и ↓16+33
Комментарии37

Секреты Stack Overflow

Время на прочтение5 мин
Количество просмотров65K
Приветствую, коллеги. За последние несколько лет Stack Overflow стал полезнейшим инструментом для разработчиков. Множество вопросов, заданных Гуглу и Яндексу, в первых же ссылках ведут на понятные и исчерпывающие ответы на этом ресурсе. Большинство разработчиков используют сайт Stack Overflow именно как базу знаний программистов, возможность быстро получить нужный ответ. Под катом я расскажу про несколько интересных кейсов подводной части айсберга: спрятанные ответы, награды, прокачивание кармы и многое другое, скрытое от поверхностного взгляда.

Читать дальше →
Всего голосов 90: ↑84 и ↓6+78
Комментарии93

#NoHacked: устранение последствий взлома с загрузкой URL, содержащих бессмысленный текст

Время на прочтение5 мин
Количество просмотров13K
Привет, Хабрахабр! Сегодня в рамках кампании #nohacked мы хотели бы поговорить о том, как решить проблему с несанкционированным внедрением контента на сайт. Даже если вы не подвергались такой атаке, не пренебрегайте нашими рекомендациями – они помогут защитить ваш ресурс и от других методов взлома. Следите за обсуждением в Twitter и Google+ с помощью хештега #nohacked (см. часть 1, часть 2, часть 3, часть 4).

NoHacked: устранение последствий взлома с загрузкой URL
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии2

«То, чего на белом свете вообще не может быть…»

Время на прочтение6 мин
Количество просмотров41K
Дорогие друзья, я рад представить вам еще одну статью из серии своих путешествий по миру удивительного. Мы начали с разговора о числах-гигантах, где я попытался поделиться с вами своим восхищением от того, какие невероятные по своей величине числа окружают нас во Вселенной и как близко мы можем подойти по ним к самой бесконечности. Вторая статья рассказывала о микроскопически малых объектах, находящихся далеко за пределами видимости не только невооруженного глаза, но и самого сильного микроскопа. Сейчас я предлагаю вам отправиться в третье путешествие — путешествие в мир вероятностей. Мы рассмотрим примеры невероятных, но, тем не менее, математически возможных событий. Нам снова придется работать с числами, так что я заранее прошу прощения у гуманитариев (если, конечно, таковые есть на данном ресурсе). В общем, если вы, так же как и я, любите забивать голову бесполезными фактами, то добро пожаловать.

image
Читать дальше →
Всего голосов 61: ↑56 и ↓5+51
Комментарии106

Как сделать парковку игровой компании неотразимой (одобрено Black Mesa)

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


Все сотрудники Plarium настолько обожают видеоигры, что готовы рисковать жизнью, каждый день проезжая под барнаклом. Идею того, как сделать парковку интересной, подсказало само помещение – оно сильно напоминает сеттинг Half-Life. Недолго думая, мы решили отдать должное любимой игре, и в итоге у нас поселился замечательный сосед. Для нас он не какой-то там элемент декора, а друг детства – не самый добрый, но чертовски обаятельный. Сегодня мы расскажем о его «внутреннем мире», способе крепления к потолку и о том, почему у него нет языка и слизи.
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии19

Молодому учёному из Краснодара грозит 11 лет строгого режима

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

Фото: Владимир Аносов/РГ

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

Но в процессе разработки Дмитрий заказал по почте один литр растворителя гамма-бутиролактон, который, как позже выяснилось, является ещё и психотропным веществом.
Читать дальше →
Всего голосов 190: ↑180 и ↓10+170
Комментарии593

Ненастоящие сеньор-девелоперы, или почему годы опыта ни о чем не говорят

Время на прочтение6 мин
Количество просмотров141K
Опытный программист из Торонто Мэтт Бриггс так любит свою работу, что говорит: «я бы писал код, даже если бы это было нелегальным». А когда он опубликовал в своем блоге пост о джуниорах, мидлах и старших разработчиках, то собрал больше сотни восхищенных комментариев. Мы в Alconost тоже восхитились и перевели эту статью для вас.

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

Мы испытываем серьезную нехватку талантов, хотя индустрия довольно молода. Большинство софтверных проектов проваливаются, и практически все превышают бюджет. А лучшая идея, которую могут предложить сильнейшие умы, сводится к «Есть несколько стандартных способов решения подобных проблем, но наши решения часто не срабатывают. Единственное, что можно сделать — это попробовать и посмотреть на результат».

Реальность такова, что под «старшим разработчиком» понимается человек, который ваяет код более 3 лет. Его ставят на руководящую позицию, и обычно все заканчивается ожидаемо плачевно.

На самом деле, попытка оценивать людей временными интервалами – слишком упрощенный способ для таких тонких материй, как знание и профессиональный опыт. Но дела обстоят именно так. И если продолжать классифицировать специалистов подобным образом, то самое время нашей индустрии брать тайм-аут. Есть разница между человеком с 10-летним опытом, и тем, кто за то же время стал опытнее в 10 раз.


Постер из сериалa «Компьютерщики»
Читать дальше →
Всего голосов 111: ↑104 и ↓7+97
Комментарии102

ЯндексБот ходит по ссылкам, по которым ходит пользователь

Время на прочтение6 мин
Количество просмотров71K
Сегодня утром к нам в поддержку сайта знакомств написала девушка и сообщила, что она появляется у мужчин в списке «она вас посмотрела», хотя она точно не смотрела. И не пользовалась в это время компьютером. По цепочке это обращение дошло до меня. Расскажу, что мне получилось установить.
Читать дальше →
Всего голосов 106: ↑95 и ↓11+84
Комментарии113

Детальный анализ Хабрахабра с помощью языка Wolfram Language (Mathematica)

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

Скачать пост в виде документа Mathematica, который содержит весь код использованный в статье, вместе с дополнительными файлами, можно здесь.

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

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

В посте будут рассматриваться статьи, относящиеся к хабам, всего в анализе участвовало 62000 статей из 264 хабов. Статьи, написанные только для корпоративных блогов компаний в посте не рассматривались, а также не рассматривались посты, не попавшие в группу «интересные».

Ввиду того, что база данных, построенная в посте, формировалась за некоторое время до публикации, а именно 26 апреля 2015 г., посты, опубликованные на Хабрахабре после этой даты (а также, возможно, новые хабы) в данном посте не рассматривались.
Читать дальше →
Всего голосов 158: ↑150 и ↓8+142
Комментарии61

Информация

В рейтинге
Не участвует
Откуда
Петродворец, Санкт-Петербург и область, Россия
Зарегистрирован
Активность