Pull to refresh
0
0
Send message

Процедурная генерация уровней

Reading time9 min
Views43K


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


Думая, как бы упростить себе жизнь, в голову пришла идея о процедурной генерации. Ясное дело, её тоже надо будет писать, но как говорилось в одном известном произведении, "лучше день потерять, потом за пять минут долететь".


Внимание! Под катом много текста и "жирных" гифок.

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

Реактивность в JavaScript: простой и понятный пример

Reading time12 min
Views57K
Во многих фронтенд-фреймворках, написанных на JavaScript (например, в Angular, React и Vue) имеются собственные системы реактивности. Понимание особенностей работы этих систем пригодится любому разработчику, поможет ему более эффективно использовать современные JS-фреймворки.



В материале, перевод которого мы сегодня публикуем, продемонстрирован пошаговый пример разработки системы реактивности на чистом JavaScript. Эта система реализует те же механизмы, которые применяются в Vue.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments14

Открытый вебинар «Cоздание приложения на Webpack + React + Express»

Reading time5 min
Views6.1K
Всем привет!

В июле 2018 года наш преподаватель курса «Разработчик JavaScript» Юрий Дворжецкий провел открытый вебинар на тему «Cоздание приложения на Webpack+React+Express», правда, в рамках второго курса, где он выступает как преподавателя одного из модулей, посвящённого JavaScript. В этом материале вы сможете ознакомиться с видеозаписью и кратким пересказом прошедшего мастер-класса.

Работа на открытом уроке проходила по следующему плану:

  1. Знакомство с Node JS и Express JS.
  2. Знакомство с Webpack.
  3. Знакомство с React.

Итак, поехали!

Total votes 10: ↑9 and ↓1+8
Comments0

Методики и инструменты для разработки стилей веб-страниц

Reading time13 min
Views24K
Не будем ходить вокруг да около, скажем прямо: процесс написания хорошего CSS-кода может быть очень и очень тяжёлым. Многие разработчики не хотят связываться со стилями. Они готовы заниматься всем, чем угодно, но только не CSS.



Автор материала, перевод которого мы предлагаем сегодня вашему вниманию, говорит, что он и сам не любил ту часть веб-разработки, которая имеет отношение к CSS. Но от этого никуда не деться. В наши дни огромное внимание уделяется дизайну, и тому, что называют «пользовательским опытом», а без CSS тут никак не обойтись. Цель этого материала — помочь всем желающим улучшить свои навыки в разработке и применении стилей веб-страниц.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments13

Пишем CSS лучше и красивее

Reading time9 min
Views24K


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

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

Когда проект только начинается, все идет хорошо. У вас всего пару селекторов: .title, input, #app — проще простого.

Но постепенно приложение разрастается, и заглядывать в CSS становится страшновато: во всех этих селекторах разобраться уже не так просто. Вы начинаете писать что-то вроде div#app .list li.item a, какие-то куски кода повторяются снова и снова, а всю свою писанину сваливаете в конец файла: вам уже плевать, потому что CSS — отстой. Итог — 500 строк CSS-кода, поддерживать который невозможно.


Это я, когда сражаюсь с CSS

Переведено в Alconost
Читать дальше →
Total votes 18: ↑12 and ↓6+6
Comments30

Функции для документирования баз данных PostgreSQL. Часть третья

Reading time31 min
Views4.2K
Это третья часть статьи, которая описывает пользовательские функции для работы с системными каталогами: pg_class, pg_attribute, pg_constraints и т.д.

В этой части статьи обсуждаются функции, возвращающие характеристики последовательностей, унаследованных таблиц, а также особенные характеристики атрибутов таблиц.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments10

Как жульничать при игре в кости – советы игрового эксперта

Reading time4 min
Views102K


Недавно археологи раскопали игровой кубик 600-летнего возраста, который, вероятно, использовался для жульничества. На гранях деревянного кубика из средневековой Норвегии находились две пятёрки, две четвёрки, тройка и шестерка – а единички и двойки не было. Считается, что этот кубик использовался для обмана при игре в кости, а не в какой-то особой игре, в которой нужны были определённые комбинации чисел.

Сегодня подобные кубики известны, как «верхи и низы» [tops and bottoms]. Они полезны для нечестной игры, если вы склонны к подобным действиям, хотя не гарантируют постоянного выигрыша, и не выдерживают тщательного осмотра со стороны подозрительных соперников (им стоит только попросить рассмотреть кубик – и вас раскроют). Но при игре в кости есть несколько других вариантов жульничества, о некоторых из которых я вам расскажу.

Стоит отметить, что эти методы запрещено использовать в казино, и я не рекомендую вам использовать их в подобных заведениях – это лишь интересный метод изучения вероятностей.
Total votes 42: ↑26 and ↓16+10
Comments8

Самая замечательная ракета

Reading time9 min
Views37K
Юбилей запуска первого спутника будет в октябре, но именно сегодня, 15 мая, 60 лет назад впервые поднялась в небо ракета, которая вывела его на орбиту. Знаменитая «семерка», обеспечившая череду побед Советского Союза в космосе, восхитивших весь мир, празднует сегодня свой шестидесятилетний юбилей на «рабочем месте» — ракеты на ее базе летают сейчас и будут летать еще лет десять минимум. Можно долго спорить, какая ракета-носитель является лучшей, но, на мой взгляд, титул самой замечательной ракеты однозначно принадлежит семейству Р-7. «Семерку» проектировали без преувеличения гениальные люди. И в конструкции ракеты до сих пор можно найти результаты их остроумных, талантливых и местами парадоксальных решений.


Один из первых пусков Р-7, фото из архива ЦЭНКИ
Читать дальше →
Total votes 92: ↑89 and ↓3+86
Comments390

Сколько стоит «закон Яровой» на самом деле?

Reading time2 min
Views14K

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


Триллион ли стоит хранение данных на самом деле?


Давайте посчитаем.

Читать дальше →
Total votes 64: ↑10 and ↓54-44
Comments247

Линейная алгебра для разработчиков игр

Reading time19 min
Views781K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Total votes 314: ↑296 and ↓18+278
Comments61

LENR или не LENR? (обзор экспериментов по обнаружению LENR эффекта)

Reading time14 min
Views38K


Думаю тема LENR (Cold Fusion) знакома многим, и вероятно первое, что вспомнится — это итальянец Андреа Росси — и его E-Cat. Но как говорится «не одним Росси жив LENR» — есть и другие исследователи, кто так же делали, делают эксперименты, и получают результаты — отрицательные или положительные.

Краткий обзор этих экспериментов (15) и будет выполнен в следующей публикации (за материал спасибо журналу «Журнал Формирующихся Направлений Науки» unconv-science.org, и лично Александру Георгиевичу Пархомову)


Никель-водородные реакторы, созданные после публикации отчета об эксперименте в Лугано А.Г. Пархомов

Обзор некоторых из никель-водородных реакторов, созданных в России и за рубежом после публикации отчета об эксперименте в Лугано. Зарегистрировано превышение тепловыделения над потребленной электроэнергией в пределах от 1,2 до 2,7 при температуре около 1200 ℃. Продолжительность непрерывной работы с избыточным тепловыделением до 3 суток. Четыре реактора для оценки тепловыделения имели специальные калориметры.

Во время испытания высокотемпературного теплогенератора Росси в Лугано, продолжавшегося с 24 февраля до 29 марта 2014 г., зарегистрировано превышение тепловыделения над потребленной электроэнергией в 3,2 раза при температуре 1260 ℃ и в 3,6 раза при температуре 1400 ℃ [1,2]. В отработавшем топливе существенно возросло относительное содержание 6Li и снизилось содержание 7Li. Снизилось содержание всех изотопов никеля, кроме 62Ni. Содержание этого изотопа возросло с 3,6% до 99%. Заметного отличия радиационной обстановки от фоновых показателей не обнаружено.

На основе отчета экспертов, наблюдавших работу реактора, можно предположить, что этот реактор, по сути, запечатанная жаростойким цементом керамическая трубочка, в которой находится порошок никеля с добавкой алюмогидрида лития LiAlH4. Для инициации процесса трубочку необходимо нагреть до температуры 1200 – 1400 ℃. Исходя из этого предположения, было создано несколько устройств в России и за ее пределами. Краткому описанию некоторых из них посвящена эта статья.
Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments248

Набор Yii2 Behavior для хранения деревьев в БД и их совместного использования

Reading time7 min
Views25K

Привет, Хабр!

В одном своём проекте на Yii2 мне захотелось совместить Adjacency List и Nested Sets. Причём так, чтобы в случае отключения поведения Nested Sets, функционал оставался полностью работоспособен. Затем я понял, что Nested Sets мне не нужен, т. к. в базе всё равно приходилось хранить полный путь, поэтому на замену я решил применить Materialized Path. Имеющийся на GitHub Behavior (matperez/yii2-materialized-path) был недостаточно функционален, поэтому пришлось написать свой, а так как я недавно уже писал свои поведения для Adjacency List и Nested Intervals, я решил, почему бы не сделать набор таких поведений с единым API, и возможностью произвольно подключать их к модели одновременно, используя преимущество каждого.

Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments11

После прочтения применить. 25 книг для игрового разработчика

Reading time8 min
Views119K
Предлагаю подборку всегда актуальных книг по программированию, геймдизайну и концепт-арту для новичков и бывалых бойцов геймдева. Конечно, во главе профессионального развития стоит практика, но эти книги сэкономят ваше время и позволят не выдумывать велосипед заново.


Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments7

Что такое красивый код, и как его писать?

Reading time22 min
Views208K

1. Вступление


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

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

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

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

Говоря о базовых знаниях, надо отметить, что умение писать красивый профессиональный код — это то, что по тем или иным причинам, в эти базовые знания категорически не входит. Вместо этого, в соответствующих заведениях, а также в книжках, нам рассказывают про алгоритмы, языки, принципы ООП, паттерны дизайна…

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

В этом-то и заключается вся сложность: твое представление о “достойном” и “красивом” коде полностью основано на личном многолетнем опыте. Попробуй теперь передать это представление в сжатые сроки человеку с совсем другим опытом или даже вовсе без него.

Но если для нас действительно важно качество кода, который пишут люди, работающие вместе с нами, то попробовать все же стоит!
Читать дальше →
Total votes 97: ↑79 and ↓18+61
Comments146

Как Windows 10 собирает данные о пользователях

Reading time5 min
Views412K


Информация о том, что Windows 10 собирает данные о пользователях, не нова. Еще в 2014 году компания Microsoft опубликовала заявление о конфиденциальности, из которого следует, что на ее серверы может передаваться информация об использованных программах, устройстве и сетях, в которых они работают. Эти данные могут объединяться с идентификатором пользователя (учетная запись Microsoft), также собирается информация об адресе электронной почты, предпочтениях, интересах местоположении, и многом другом.

Чешское издание Aeronet.cz опубликовало расследование неназванного ИТ-специалиста, который решил отследить активность Windows 10 по сбору данных. В ходе исследования использовались следующие инструменты: программа Destroy Windows 10 Spying, блокирующая передачу данных на серверы Microsoft, PRTG Network Monitor, Windows Resource Monitor и Wireshark. По мнению исследователя, Windows 10 — больше похожа на терминал по сбору данных, чем на операционную систему.
Читать дальше →
Total votes 137: ↑123 and ↓14+109
Comments581

Строим Nested Set дерево без рекурсии

Reading time3 min
Views81K
Деревья в базах данных можно хранить тремя основными методами: Adjacency List, Matherialized Path & Nested Set. Когда мы хотим переехать с AL на NS, это можно сделать с помощью рекурсии (если БД расово верная). Но что делать в случае MySQL?
Переехать с AL на NS
Total votes 20: ↑16 and ↓4+12
Comments20

Искусство командной строки

Reading time15 min
Views250K


Вот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.

Enjoy!
Total votes 127: ↑122 and ↓5+117
Comments143

Понимание ООП в JavaScript [Часть 1]

Reading time16 min
Views338K
— Прототипное наследование — это прекрасно
JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

Одна из таких особенностей — это реализация прототипного наследования. Этот простой концепт является гибким и мощным. Он позволяет сделать наследование и поведение сущностями первого класса, также как и функции являются объектами первого класса в функциональных языках (включая JavaScript).

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
Читать дальше →
Total votes 129: ↑119 and ↓10+109
Comments71

Подробный разбор катастрофы SpaceShipTwo: только ли погибший пилот виноват?

Reading time6 min
Views30K

На минувшей неделе Национальный совет по безопасности на транспорте (NTSB) опубликовал материалы слушаний по катастрофе SpaceShipTwo. Напомню, 31 октября 2014 года во время испытательного полета корабль разрушился в воздухе, один из двух летчиков-испытателей погиб, а второй получил тяжелые травмы. Команда специалистов NTSB прибыла на место катастрофы в течение суток, и уже 2 и 3 ноября на пресс-конференциях была названа непосредственная причина катастрофы — преждевременный поворот хвостового оперения в тормозное положение. На пресс-конференции специально подчеркивалось, что расследование катастрофы будет заключаться в установлении причины этого события, и займет это примерно год. Результаты расследования появились всего через 9 месяцев. Новостные агентства написали короткие заметки о том, что виноват второй пилот, преждевременно снявший блокировку системы торможения. Но в материалах почти двухчасовых слушаний NTSB вырисовывается более сложная картина.
Читать дальше →
Total votes 57: ↑55 and ↓2+53
Comments38

Незаметные сложности ракетной техники: Часть 5. Стартовые сооружения

Reading time8 min
Views186K

Стартовые сооружения — это отдельный интересный аспект космической техники. В самом деле, ракету надо собрать, вывезти на стартовый стол, ещё раз проверить, заправить, посадить экипаж (если пуск пилотируемый) и запустить. И каждая из задач бросает вызов инженерной сообразительности, материаловедению, сопромату и множеству других дисциплин.
Читать дальше →
Total votes 227: ↑223 and ↓4+219
Comments73

Information

Rating
Does not participate
Registered
Activity