Как стать автором
Обновить
0
0

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

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

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

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


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


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


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

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

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

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



В материале, перевод которого мы сегодня публикуем, продемонстрирован пошаговый пример разработки системы реактивности на чистом JavaScript. Эта система реализует те же механизмы, которые применяются в Vue.
Читать дальше →

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

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

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

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

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

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

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

Время на прочтение13 мин
Количество просмотров24K
Не будем ходить вокруг да около, скажем прямо: процесс написания хорошего CSS-кода может быть очень и очень тяжёлым. Многие разработчики не хотят связываться со стилями. Они готовы заниматься всем, чем угодно, но только не CSS.



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

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

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


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

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

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

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


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

Переведено в Alconost
Читать дальше →

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

Время на прочтение31 мин
Количество просмотров4.3K
Это третья часть статьи, которая описывает пользовательские функции для работы с системными каталогами: pg_class, pg_attribute, pg_constraints и т.д.

В этой части статьи обсуждаются функции, возвращающие характеристики последовательностей, унаследованных таблиц, а также особенные характеристики атрибутов таблиц.
Читать дальше →

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

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


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

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

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

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

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


Один из первых пусков Р-7, фото из архива ЦЭНКИ
Читать дальше →

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

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

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


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


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

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

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

Время на прочтение19 мин
Количество просмотров785K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →

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

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


Думаю тема 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 ℃. Исходя из этого предположения, было создано несколько устройств в России и за ее пределами. Краткому описанию некоторых из них посвящена эта статья.
Читать дальше →

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

Но если для нас действительно важно качество кода, который пишут люди, работающие вместе с нами, то попробовать все же стоит!
Читать дальше →

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

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


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

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

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

Время на прочтение3 мин
Количество просмотров82K
Деревья в базах данных можно хранить тремя основными методами: Adjacency List, Matherialized Path & Nested Set. Когда мы хотим переехать с AL на NS, это можно сделать с помощью рекурсии (если БД расово верная). Но что делать в случае MySQL?
Переехать с AL на NS

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

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


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

Enjoy!

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

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

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

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
Читать дальше →

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

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

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

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

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

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность