Pull to refresh
0
0
Подгаев Алексей @alexiusp

User

Send message

Коты в коробочках, или Компактные структуры данных

Reading time12 min
Views28K

image


Как быть, если дерево поиска разрослось на всю оперативку и вот-вот подопрет корнями соседние стойки в серверной? Что делать с инвертированным индексом, жадным до ресурсов? Завязывать ли с разработкой под Android, если пользователю прилетает «Память телефона заполнена», а приложение едва на половине загрузки важного контейнера?


В целом, можно ли сжать структуру данных, чтобы она занимала заметно меньше места, но не теряла присущих ей достоинств? Чтобы доступ к хэш-таблице оставался быстрым, а сбалансированное дерево сохраняло свои свойства. Да, можно! Для этого и появилось направление информатики «Succinct data structures», исследующее компактное представление структур данных. Оно развивается с конца 80-х годов и прямо сейчас переживает расцвет в лучах славы big data и highload.


А тем временем на Хабре найдется ли герой, способный пересковоговорить три раза подряд
[səkˈsɪŋkt]?

Читать дальше →
Total votes 127: ↑127 and ↓0+127
Comments43

Делаем HTTP-запросы, изящно деградируем (и ни единого разрыва)

Reading time5 min
Views19K
image

Сегодня мало кто помнит, что веб-приложения могут работать без единого XHR-запроса. AJAX (Asynchronous Javascript and XML) дает классную возможность — подгружать данные без перезагрузки страницы. Эта концепция лежит в основе большинства современных SPA.

Но ничто не дается просто так, за все нужно платить. Концепция AJAX кажется предельно простой, но даже на уровне запроса данных с сервера можно встретить кучу проблем.
Читать дальше →
Total votes 28: ↑26 and ↓2+28
Comments7

Знакомство с Sass модулями

Reading time12 min
Views40K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Introducing Sass Modules» автора Miriam Suzanne.

Недавно в Sass появилась функциональность, которая вам знакома по другим языкам: модульная система. Это большой шаг вперед для @import, одной из наиболее часто используемых функций в Sass. Несмотря на то, что существующая директива @import позволяет вам подключать сторонние пакеты и разделять ваши стили на поддерживаемые элементы, у неё всё же есть несколько ограничений
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments0

Во что играть с детьми до школы

Reading time7 min
Views24K

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

Вопрос, во что с детьми надо играть, особо никого не беспокоил века так до семнадцатого. Есть даже теория, что в Средневековье детей воспринимали как маленьких взрослых и воспитывали как в армии. Про это писал Филипп Арьес в книге «Ребенок и семейная жизнь при Старом порядке». Он сделал такой вывод, потому что насмотрелся старинных миниатюр и икон и обнаружил, что дети на них — какие-то старики, в игры почти не играют и вообще отличаются от взрослых только ростом. (Про это ещё есть кайфовая статья поподробнее.)

Потом другие исследователи средневекового быта Френсис и Джозеф Гис написали книгу про то, что Арьес не совсем прав: «На рукописных миниатюрах детская одежда проще и короче туалетов взрослых. Мальчики носят рубашку, рейтузы и кафтан, девочки — платье и тунику. Миниатюры изображают детей играющими в мяч, плавающими, стреляющими из лука, управляющими марионетками, наслаждающимися кукольными представлениями — круг развлечений, типичных для детей во все времена». Книга называется «Семья и брак в Средние века».

Короче, известно одно: обращение с детьми было такое себе.
Читать дальше →
Total votes 55: ↑49 and ↓6+43
Comments31

Программирование для детей. Пять самых крутых игр на HTML и JavaScript

Reading time1 min
Views18K
image Привет, Хаброжители! Хотите сделать отличный подарок ребёнку, желающему научиться программировать, или научить взрослого, далёкого от мира кодов? Тогда книга-героиня нашего поста Вам подойдет. Эта книга научит писать код веб-игр на языках HTML и JavaScript и даже поможет читателю написать несколько увлекательных игр. Под катом — отрывок из книги.
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments18

Чему я научился у ведущего программиста

Reading time16 min
Views69K

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

Это одна из причин, по которой я начал вести дневник. Каждый день, попадая в интересные ситуации, я описывал их. И всё благодаря тому, что я сидел рядом с ведущим программистом. Я мог вблизи наблюдать за его работой, и видел, насколько она отличается от того, что сделал бы я. Мы много программировали вместе, что ещё больше облегчало мои наблюдения. Более того, в нашей команде не осуждается «подглядывание» за людьми, пишущими код. Когда мне казалось, что происходит что-то интересное, я поворачивался и смотрел. Благодаря постоянным вставаниям я всегда был в курсе происходящего.

Я год просидел рядом с ведущим программистом. Вот чему я научился.
Total votes 86: ↑80 and ↓6+74
Comments37

Выведение Action type с помощью Typescript

Reading time6 min
Views49K
Всем привет! Меня зовут Дмитрий Новиков, я javascript-разработчик в Альфа-Банке, и сегодня я расскажу вам про наш опыт выведения Action type при помощи Typescript, с каким проблемами мы столкнулись и как их решили.

Это расшифровка моего доклада на Alfa JavaScript MeetUp. Код из слайдов презентации можно посмотреть здесь, а запись трансляции митапа — здесь.

Наши фронтовые приложения работают на связке React+Redux. Redux data flow упрощенно выглядит так:

Читать дальше →
Total votes 45: ↑42 and ↓3+39
Comments39

Нужно ли чистить строки в JavaScript?

Reading time6 min
Views79K
Что? Строки могут быть «грязными»?

Да, могут.

//.....Какой-то код
console.log(typeof str); // string
console.log(str.length); // 15
console.log(str); // "ччччччччччччччч"

Вы думаете, в этом примере строка занимает 30 байт?

А вот и нет! Она занимает 30 мегабайт!
Читать дальше →
Total votes 220: ↑219 and ↓1+218
Comments224

Grid или Flexbox?

Reading time8 min
Views50K
Мишель Баркер, автор материала, перевод которого мы сегодня публикуем, говорит, что недавнее обсуждение в Twitter, начатое Крисом Койером, заставило её задуматься о том, как веб-разработчики делают выбор между технологиями CSS Grid Layout и CSS Flexbox Layout при разработке макетов.



Крис Койер в своём твите задал аудитории вопрос о том, как те, кто знает о том, что такое Grid и Flexbox, предпочитают объяснять разницу между этими технологиями.

Среди ответов на этот вопрос, что, по словам Мишель, вполне ожидаемо, можно было отметить ценные идеи Рэйчел Эндрю и Джен Симмонс.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments6

Пиксель-арт: от черновика до игрового ассета

Reading time10 min
Views137K
imageimage
В этой статье я постараюсь визуализировать общий подход к работе. Итак, вы решили учиться арту: вы скачали какое-то ПО, запустили его и увидели все эти опции, бесконечные цвета и многое другое, быстро всё закрыли, удалили программу и выбросили свой ноутбук в окно.

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

Если вам это знакомо, то данная статья как раз для вас, так что продолжайте читать.

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

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

Если возьмётесь за работу очень усердно, то, возможно, получите неплохие результаты через несколько месяцев.
Читать дальше →
Total votes 104: ↑103 and ↓1+102
Comments20

JS со всех сторон: топ-10 докладов HolyJS 2018 Moscow

Reading time5 min
Views11K


В декабре мы провели очередную HolyJS, и поначалу видеозаписи её докладов были доступны только для зрителей, а теперь открыты для всех. Для Хабра мы традиционно сделали подборку из 10 докладов, получивших от зрителей самые высокие оценки. Они идут по возрастанию рейтинга, так что чем дальше, тем интереснее.

Под катом — и сами видеозаписи докладов, и их короткие описания с сайта конференции, и ссылки на слайды.
Total votes 26: ↑26 and ↓0+26
Comments0

Четыре оси дизайна RPG

Reading time6 min
Views16K
Эта статья началась с ответа на многогранный, но в то же время довольно прямолинейный вопрос: из чего же состоит хорошая ролевая игра? На протяжении своей карьеры я поработал над несколькими RPG, и даже читал презентацию по этой теме, но никогда не рассматривал её целостно. Существует множество материалов о составляющих хорошей игры и, разумеется, многие из них применимы к ролевым играм, но есть аспекты, специфичные (если не уникальные) именно для этого жанра.

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

Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments2

Жизнь на частицах

Reading time4 min
Views67K
Всем привет! Сегодня я расскажу о своих экспериментах с системами частиц. Основной целью было нахождение простых правил, которые бы порождали интересное поведение.

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

Под катом много мегабайт гифок.

Читать дальше →
Total votes 269: ↑267 and ↓2+265
Comments67

Архитектурные решения для мобильной игры. Часть 2: Command и их очереди

Reading time23 min
Views7.8K


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

Архитектурные решения для мобильной игры. Часть 1: Model
Архитектурные решения для мобильной игры. Часть 3: View на реактивной тяге
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments6

Переносим 30 000 строк кода с Flow на TypeScript

Reading time12 min
Views14K
Недавно мы перенесли 30 тысяч строк кода JavaScript нашей системы MemSQL Studio с Flow на TypeScript. В этой статье я расскажу, почему мы портировали кодовую базу, как это происходило и что получилось.

Дисклеймер: моя цель — вовсе не критика Flow. Я восхищаюсь проектом и думаю, что в сообществе JavaScript достаточно места для обоих вариантов проверки типов. В итоге каждый выберет то, что ему лучше подходит. Искренне надеюсь, что статья поможет в этом выборе.

Сначала введу вас в курс дела. Мы в MemSQL большие фанаты статической и строгой типизации JavaScript, чтобы избежать типичных проблем с динамической и слабой типизаций.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments11

Приостанавливаем выполнение приложения, если пропало соединение с сетью

Reading time1 min
Views6.2K
Под катом, небольшая заметка о том, как приостановить выполнение вашего приложения при обрыве связи с интернетом и продолжить — когда она будет восстановлена.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments14

Как работать с async/await в циклах JavaScript

Reading time3 min
Views155K

Как запустить асинхронные циклы по порядку или параллельно в JavaScript?


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

Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments33

Его ворсейшество из 11 полигонов, ничего общего с настоящим

Reading time2 min
Views35K


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

Поэтому, да, ковер из всего 11 полигонов. Просто, но изящно. Под катом перевод небольшого гайда.
Читать дальше →
Total votes 102: ↑99 and ↓3+96
Comments45

Интервью с создателем ADOM Томасом Бискапом

Reading time22 min
Views6.3K
image

Хотя в последнее время маркетинг и бесконечное клонирование обесценили значение термина «roguelike» (большинство из таких продуктов должно называться «roguelite»), я утверждаю, что существуют шесть игр, которые можно считать Главными Roguelike, каноном, сочетающим в себе чёткость концепции с популярностью и размером базы игроков: разумеется, сама Rogue, NetHack, Angband, Dungeon Crawl Stone Soup, Brogue и ADOM, a.k.a. “Ancient Domains of Mystery.”

Из всех них только две последние можно с полным правом считать работой одного человека. И среди них только исходный код ADOM недоступен любопытным игрокам. (Rogue никогда не выпускалась как open-source, но исходники её стандартного варианта Rogue Clone IV были открыты.) Благодаря конкурсу 7DRL (“7-Day Roguelike”), уже тысячи людей создали собственные roguelike, но создание проекта масштаба ADOM, игры столь же сложной, как и сам могущественный NetHack — потрясающая задача.

К счастью, создатель ADOM доктор Томас Бискап согласился поговорить с нами об игре, на которую он потратил столько времени и энергии, и недавно рассказал нам и об ADOM, и о его находящемся в разработке сиквеле — Ultimate ADOM.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments2

Фазовые переходы в видеоиграх и игровой баланс

Reading time7 min
Views5.8K
Фазовый переход происходит, когда система пересекает линию, разделяющую две фазы [1]. Для воды и льда это 0°C (если отбросить влияние атмосферного давление и других факторов). Помимо фазовых переходов в термодинамике можно выделить фазовые переходы и применительно к видеоиграм.

В играх и околоигровой сферах фазовые переходы изучены гораздо слабее и часто не могут похвастаться строгими научными доказательствами. Этот эффект еще часто называют «набором критической массы».

Картинка Frequency of miracles [2]

Далее будут рассмотрены наглядные примеры фазовых переходов и возможные способы работы с ними.
Total votes 22: ↑20 and ↓2+18
Comments35

Information

Rating
Does not participate
Location
Berlin, Berlin, Германия
Date of birth
Registered
Activity