Как стать автором
Обновить
10
0
Арсений Лисунов @NonGrate

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

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

Как объяснить дизайн четырехлетним?

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

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

Я планировал пообщаться со старшими ребятами, рассказать то, что считал действительно крутым в своей работе, поделиться каким-то интересным опытом, но в итоге меня попросили провести урок с учениками подготовительной группы (примерно 4-5 лет). Несмотря на то что сначала я был скорее разочарован, это оказалось очень интересной задачей!

Главная особенность работы с детьми такого возраста в том, что ты не можешь ничего рассказать о брендах с которыми работал. Четырехлетние дети не будут восторженно реагировать на истории о работе на Channel 4, BBC и Disel. «Я получал награды BRIT, и даже разработал веб-сайт, на котором получил запись imdb!» — дети не поймут, о чем я вообще говорю. Поэтому нужно было в самых простых выражениях объяснить то, что я сделал, и почему это так важно. Я подумал: было бы здорово показать детям дизайн во всех его формах.

Что я сделал?

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

Жизнь в воздушном океане. Что происходит в 326 метрах над Петербургом

Время на прочтение8 мин
Количество просмотров42K
Впервые высотная линия Петербурга отодвинулась на 326 метров 2011-м, когда с помощью вертолетов на телебашню установили новую антенну. Эта отметка оставалась неприступной вплоть до 10 мая в 2017. В 9.50 утра строители Лахта Центра залили стены ядра 78 этажа башни – это уровень 327,6 метра. Одновременно разменяли последний десяток этажей. Со старта поэтажного строительства прошло чуть больше 20 месяцев.

Рост небоскреба Лахта Центр по месяцам

Узнаем, что там, наверху? Наши проводники сегодня – люди, которые управляют самыми высокими кранами в городе.

Крановщик Лахта центра на площадке у кабины крана
Всего голосов 67: ↑66 и ↓1+65
Комментарии96

Трагедия стопроцентного покрытия кода

Время на прочтение3 мин
Количество просмотров34K
Забавно, как всё меняется. Пятнадцать лет я свято придерживался принципов TDD (разработка через тестирование, или, как её раньше называли, подход test-first) или уж по крайней мере того взгляда, что разработчикам следует писать юнит-тесты. Но в последнее время я всё чаще говорю не «Это нужно затестить», а «Зачем вы писали этот тест?».

Читать дальше →
Всего голосов 103: ↑96 и ↓7+89
Комментарии138

Опасайтесь прозрачных пикселей

Время на прочтение6 мин
Количество просмотров45K
image

Если вы используете в своей игре спрайты с прозрачностью (а обычно так и бывает, как минимум для UI), то вам, вероятно, стоит уделить внимание к полностью прозрачным пикселям текстур (или «текселам»).

Даже если значение альфа-канала равно 0, с пикселем всё равно связано значение цвета. Этот цвет ни на что не влияет, так ведь? В конце концов, пиксель полностью прозрачен, кому есть дело до его цвета…

Так вот, на самом деле этот цвет важен, если этого не понимать, то можно получить артефакты, которые заметны во многих играх. Чаще всего искажения очень малы и их не заметно, но иногда они действительно бросаются в глаза.
Читать дальше →
Всего голосов 146: ↑145 и ↓1+144
Комментарии83

4 крутые штуки про разработку игр

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


Привет! Это не полноценный пост, мы просто сделали четыре перевода блогозаписей Тайнана Сильвестра, мужика, который в одну харю создал игрушку Rimworld. Он выдаёт хорошие мысли про разработку игр, за некоторые из которых в приличной компании его бы вообще побили. Ниже короткая выжимка каждой и ссылка на перевод.

В «Симуляторе мечты» описывается старая добрая история мира из сериала Westworld – когда игрокам предлагают сложный мир со внутренними конфликтами, прямо шедевр искусства. А они сразу всех убивают и насилуют. Не обязательно в такой последовательности.

После выпуска Ultima Online Ричард Гэрриот сказал: «Мы думали, это будет что-то фантастическое. Мы потратили на неё огромное количество времени и сил. Но случилось то, что игроки просто шли и убивали всех так быстро, что игра даже не переходила на новый виток, и симулятор жизни даже не начинался. И эту часть, на которую мы потратили столько времени, даже никто ни разу не заметил, ни разу! И в итоге мы просто удалили ее из игры».

А дальше вводится совершенно сумасшедшая концепция оценки плотности сюжета – модель в голове игрока. Это очень многое для меня перевернуло.
Читать дальше →
Всего голосов 39: ↑33 и ↓6+27
Комментарии51

Аспекты удачной архитектуры мобильных приложений

Время на прочтение9 мин
Количество просмотров16K
Очень часто, приступая к разработке приложения, мы под давлением менеджера берем один из распространенных паттернов разработки и быстро кодим, чтобы получить живой прототип за день-другой. Вроде все работает, уходит в прод, и все довольны.

Вот только потом, когда встает вопрос о поддержке, рефакторинге и введении новых фич, оказывается, что в контроллерах у нас тонны кода, количество boilerplate застилает 4к экран, а вкорячивать новые фишки сложнее, чем переписать все снова. И вот вы уже снова перепиливаете все в стиле *уяк-*уяк и в продакшн…

А может стоило выделить время и выбрать не просто модную, а подходящую вашей задаче архитектуру?


Под катом ответы на распространенные вопросы и некоторые советы, которые помогут создать качественный продукт.
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии2

Разумна ли материя: почему основная проблема нейробиологии отражается в физике

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

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

Но, возможно, сознание – не одна такая уникальная по сложности задача. Философы науки, Готфрид Лейбниц и Иммануил Кант, сражались не с такой известной, но с настолько же сложной задачей, как материя. Что есть по сути физическая материя, если отвлечься от математических структур, описываемых физикой? И эта проблема, судя по всему, лежит за пределами традиционных научных методов, поскольку мы можем лишь наблюдать воздействие материи, но не её сущность – «ПО» Вселенной, но не её «железо». На первый взгляд эти проблемы кажутся совершенно отдельными. Но если приглядеться, окажется, что они глубоко связаны между собой.
Читать дальше →
Всего голосов 42: ↑30 и ↓12+18
Комментарии168

Аспектно ориентированное программирование в Android

Время на прочтение3 мин
Количество просмотров12K
Услышав об аспектно ориентированном программировании я, как Android разработчик, сразу подумал, что на Android это вряд ли заработает, однако, решил попробовать. Я был очень удивлен, когда уже через 5 минут приложение, использующее AspectJ, успешно заработало на телефоне.

Не буду убеждать в необходимости использования аспектов в Android и приводить примеры «uses cases», просто приведу пример того, как добавить к своему приложению возможность использования аспектов. Что такое аспекты и для чего их использовать прекрасно описано, например, на wiki.
Кому интересно - добро пожаловать под кат
Всего голосов 19: ↑16 и ↓3+13
Комментарии9

Знакомство с АОП

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

Парадигмы программирования


В современном мире IT-разработки существует довольно большое множество различных подходов к написанию программ. Так, например, кому-то нравиться представлять программу в виде последовательности действий, а кто-то считает, что программа должна представлять собой множество объектов, общающихся друг с другом. Совокупности этих идей и понятий образуют своего рода стиль написания программы, который принято назвать – парадигма программирования.

У каждой парадигмы есть свои особенности, однако, главным фактором, различающим их, является понятие основной единицы программы. Вот самые популярные из них:
  • инструкция (императивное программирование, FORTRAN/C/PHP),
  • функция (функциональное программирование, Haskell/Lisp/F#/Scala),
  • прототип (прототипное программирование, JavaScript),
  • объект (объектно-ориентированное программирование, С++/Java),
  • факт (логическое программирование, PROLOG).

Стоит заметить, что в общем случае язык программирования однозначно не определяет используемую парадигму: на том же PHP можно писать как императивные, так и объектно-ориентированные программы.

В этой статье я хочу рассказать о сравнительно молодой, но крайне, на мой взгляд, полезной парадигме программирования – аспектно-ориентированном программировании.

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

Секретные цвета Commodore 64

Время на прочтение7 мин
Количество просмотров17K
COMMODORE FORMAT выпуск 13, Q&A:

Невозможно увеличить количество цветов в палитре C64, но существуют хитрые подпрограммы, которые позволяют создать впечатление большего количества цветов. Dragon Breed от Activision использует очень быстрое переключение цветов, чтобы дать промежуточный тон, а PD-кодеры создали механизм Fli-Pic, который позволяет вам использовать более четырех цветов на блок символов.

Всего голосов 69: ↑68 и ↓1+67
Комментарии27

Сложно быть Junior'ом

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

Мне действительно повезло – когда я впервые трудоустроился по профилю в 2010 году, я попал в хорошую компанию и работал рядом с профессионалами высокого уровня и просто хорошими людьми. Рядом с ними я быстро рос. Мне всегда показывали хорошие практики и действительно уделяли мне время.


Но не всем так повезло – многие начинали свою карьеру в конторах довольно среднего уровня, где их попросту было некому учить. Или вовсе не хотелось.


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


  • История, которую я слышал
  • Что в ней не так
  • Как это было со мной
  • Краткий вывод

Если вопросов нет, то поехали.

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

Gen Jam 2016: процедурно генерируемые спрайты

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

19 ноября 2016 года в Сан-Франциско прошёл первый ежегодный Gen Jam (геймджем по процедурной генерации). Идея была в том, чтобы за субботу создать генератор графики, «объект, создающий объекты», если вам угодно.

Я создал программу, рисующую спрайты персонажей в удивительном стиле набора 16-битных спрайтов Кристофера «Oryx» Барретта из Oryx Design Lab. Посмотрите на примеры того, что делает программа:

image
Читать дальше →
Всего голосов 46: ↑45 и ↓1+44
Комментарии29

Ваш язык программирования — отстой

Время на прочтение54 мин
Количество просмотров139K
1 Почему JavaScript отстой
• 1.1 Плохая конструкция
• 1.2 Система типов
• 1.3 Плохие функции
• 1.4 Отсутствующие функции
• 1.5 DOM
2 Почему Lua отстой
3 Почему PHP отстой
• 3.1 Исправлено в поддерживаемых в настоящее время версиях
4 Почему Perl 5 отстой
5 Почему Python отстой
• 5.1 Исправлено в Python 3
6 Почему Ruby отстой
7 Почему Flex/ActionScript отстой
8 Почему скриптовые языки отстой
9 Почему C отстой
10 Почему C++ отстой
11 Почему .NET отстой
12 Почему C# отстой
13 Почему VB.NET отстой
15 Почему Objective-C отстой
16 Почему Java отстой
• 16.1 Синтаксис
• 16.2 Исправлено в Java 7 (2011)
• 16.3 Модель
• 16.4 Библиотека
• 16.5 Обсуждение
17 Почему Backbase отстой
18 Почему XML отстой
19 Почему отстой XSLT/XPath
20 Почему CSS отстой
• 20.1 Исправлено в CSS3
21 Почему Scala отстой
22 Почему Haskell отстой
23 Почему Closure отстой
24 Почему Go отстой
• 24.1 Базовые средства программирования (базовый язык)
• 24.2 Взаимосовместимость
• 24.3 Стандартная библиотека
• 24.4 Набор инструментальных средств
• 24.5 Сообщество
25 Почему Rust отстой
• 25.1 Безопасность
• 25.2 Синтаксис
• 25.3 Конструкция API и система типов
• 25.4 Сообщество
• 25.5 Набор инструментальных средств

Почему JavaScript отстой


Учтите, что некоторые положения относятся не к самому JavaScript, а к программным интерфейсам веб-приложений (https://developer.mozilla.org/en/docs/Web/API).

Плохая конструкция

• Каждый скрипт исполняется в едином глобальном пространстве имён, доступ в которое возможен в браузерах с оконным объектом.
• Camel-регистр никуда не годится:

XMLHttpRequest
HTMLHRElement

Читать дальше →
Всего голосов 314: ↑167 и ↓147+20
Комментарии353

Демонстрация брутфорса пароля iPhone 5c c зеркалированием флэш-памяти

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


В апреле 2016 года ФБР и Apple устроили настоящее шоу вокруг телефона iPhone 5c стрелка из Сан-Бернардино, для которого якобы никак не удавалось подобрать пароль без помощи компании Apple.

ФБР давило на Apple, требуя технической помощи. Тим Кук опубликовал открытое письмо, в котором обвинил ФБР в принуждении Apple встроить бэкдор в iOS. Дело дошло до Конгресса и Сената США, проблему обсуждали все крупнейшие американские СМИ и телеканалы. Мир с замиранием сердца следил за санта-барбарой и гадал: даст Apple федералам или не даст доступ к криптосистеме iPhone.

iPhone защищён от брутфорса через опцию уничтожения данных на устройстве после десяти некорректных попыток ввода и увеличивающееся время задержки между наборами кода разблокировки (5 секунд после 5 попыток, затем 1 минута, 5 минут, 15 минут и 60 минут).
Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии88

Синий. Нет! Жёлтый! — или — Дают ли новые языки программирования прирост скорости разработки

Время на прочтение8 мин
Количество просмотров21K
Какой язык использовали для написания самых первых программ для самых первых компьютеров с хранимой программой?

Двоичный машинный язык, конечно.

Почему?

Очевидно потому, что не было символьного ассемблера. Первые программы необходимо было писать двоичным кодом.

Насколько легче писать программы на ассемблере, чем на двоичном машинном языке?

Намного легче.

Можно цифру? Во сколько раз легче?

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

Экономия объёмов работы огромная.
Читать дальше →
Всего голосов 55: ↑31 и ↓24+7
Комментарии119

У вас нет высыпаний? Будут

Время на прочтение5 мин
Количество просмотров63K
Меня зовут Евгений и я жаворонок. Сегодня проснулся в 6 утра, открыл окно в кухне, заварил кофейку и решил глянуть, «что нового». Мне написал мой бывший коллега «Андроид»… Точнее «Андроид-разработчик» Максим, но так звучит фантастичнее…

image

Он спросил:
– Женя, привет. (wave) Вопрос к тебе, как мега лайв хакеру. Сколько времени нужно спать, что бы мозг отдохнул и можно было плодотворно работать? Умные будильники сильно помогают?

Я ответил, а потом подумал, ведь и парочке сотен человек с Хабра тоже пригодится хоть один пунктик из вычитанных мною ранее советов, ведь «так как никто не слушает, приходится повторять»:
Читать дальше →
Всего голосов 88: ↑63 и ↓25+38
Комментарии203

Эффект кофты на шейдерах для мобильных устройств

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

Пролог


Доброго времени суток! После опубликовании статьи о визуализации квадратичного дерева(Quad-tree), меня попросили написать статью, показывающую работу шейдера, переводящего изображение в «кофту».



Так что, давай рассмотрим данную методику.
Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии6

Застывшее время. Научные подходы к датированию

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

Сегодняшний рассказ будет о методологии науки, в частности о том, каким образом мы можем устанавливать возраст археологических находок, какие основные методы при этом используются и какие физические принципы и процессы лежат в их основе.
Прелесть научных методов датировок состоит в том, что они взаимодополняемы и взаимопроверяемы, то есть с помощью одного метода мы можем проверить корректность другого и наоборот, при необходимости внося в него поправки. Также эти «часы» перекрывают огромный временной диапазон – около 9 порядков (на самом деле больше, но для исторических целей «быстрые» часы бесполезны, масштабы эволюционного времени захватывают семь или восемь порядков).
Это можно сравнить с работой опоздавших криминалистов, где нет непосредственных свидетелей с «места преступления», и нашедших лишь его следы.
Далее
Всего голосов 43: ↑42 и ↓1+41
Комментарии105

50 лет первым снимкам с поверхности Луны

Время на прочтение4 мин
Количество просмотров7.3K
50 лет назад был решен вопрос проблемы лунного грунта. Твердая поверхность Луны или покрыта толстым слоем пыли? Способен ли выдержать лунный грунт космический корабль и космонавта или они провалятся вглубь пыльного слоя?
Многие годы этот вопрос рождал гипотезы и научные споры. Нам сложно понять восхищение наших предков этой первой посадкой — мы ведь всегда знали что Луна твердая, а обратную сторону Луны можно легко найти в интернет. Точно также наши потомкам будет сложно понять то, что восхищает в наше время.
Пройдет каких-нибудь двадцать лет, и в космос станут летать по профсоюзным путевкам, люди достигнут ближайших планет — Луны, Марса, Венеры… Возможно, мы с вами не доживем — доживут дети. Но никто никогда не повторит того, что было совершено нами. Мы были первыми — и останемся ими уже на века! А это так трудно — быть первыми...

к/ф «Укрощение огня»
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии6

Почему некоторые ноты гармонично звучат вместе

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


Вы никогда не задумывались, почему некоторые ноты больше подходят друг другу, чем другие? Как связаны между собой частоты их волн? Почему ноты одной тональности звучат «хорошо»? Почему «хорошо» звучат ноты в составе аккорда?
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии65
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Praha, Hlavni Mesto Praha, Чехия
Дата рождения
Зарегистрирован
Активность