Pull to refresh
1
0
Send message

Erlang в Рисоваське, часть 2 — ответы на вопросы

Reading time8 min
Views14K
Данная статья является продолжением цикла статей про язык программирования Эрланг/Erlang и его использование в нашем проекте Рисоваська. В первую очередь я хочу ответить на вопросы заданные в комментариях к первой статье, а вопросов было задано много. Итак продолжим:

Установка Erlang под Windows


Установить Erlang достаточно просто. Сначала скачиваем дистрибутив с официального сайта. Нам нужна последняя на данный момент версия R12B-5, колонка Windows binary (incl. documentation). После инсталляции в меня «Пуск» — «Все программы» появится пункт Erlang OTP R12B и в нем подпункт «Erlang». Если его выбрать, то запуститься безымянная нода вместе с оболочкой (shell) в которой уже можно выполнять эрланговский код, в том числе из моих примеров. Я буду придерживаться названия «нода», так как официального названия в русском языке пока не устоялось, хотя слово «node» и переводиться как «узел».

Вот ссылки про установку Эрланга под Mac OS X и Линукс (на английском).
Читать дальше →
Total votes 47: ↑43 and ↓4+39
Comments41

История веб-хостинга. От пузыря доткомов и блейд-серверов до гибридного облака и контейнеризации

Reading time19 min
Views4.1K

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

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

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments14

Мониторинг NGINX с помощью NGINX Amplify и Zabbix

Reading time13 min
Views12K

Правильная настройка NGINX влияет на работоспособность и производительность использующих его сайтов. Из нашей статьи вы узнаете, как установить NGINX в ОС Debian и настроить мониторинг этой программы с помощью SAAS-сервиса NGINX Amplify, а также с помощью Zabbix.

Читать далее
Total votes 8: ↑7 and ↓1+7
Comments1

ScyllaDB: приручение «лающей» базы данных

Reading time9 min
Views18K

Критериям выбора архивного хранилища она соответствовала идеально. Оптимизированная под запись, легко масштабируемая, совместимая с привычной уже Cassandra, только в разы быстрее… Имя же её — Сцилла (греч. Σκύλλα — «лающая») — напоминая о мифологическом чудовище, рисовало в воображении картины молниеносного поглощения гигантских объемов данных. Сложно было устоять и не попробовать.

Читать далее
Total votes 19: ↑19 and ↓0+19
Comments9

Как работает рендеринг 3D-игр: текстурирование и фильтрация текстур

Reading time17 min
Views30K
image

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

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

Часть 1: обработка вершин

Часть 2: растеризация и трассировка лучей

Начнём с простого


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

Но при многослойном использовании и комбинировании с помощью сложных вычислений такие простые изображения в 3D-сцене могут создавать поразительно реалистичные изображения. Чтобы понять, как такое возможно, давайте полностью их отключим и посмотрим, как будут выглядеть объекты 3D-мира без текстур.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments7

Взлом Age of Mythology: отключение тумана войны

Reading time16 min
Views15K

Введение


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





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

Властелин структур

Reading time15 min
Views10K

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

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments42

YT: зачем Яндексу своя MapReduce-система и как она устроена

Reading time14 min
Views85K
В течение последних шести лет в Яндексе идет работа над системой под кодовым называнием YT (по-русски мы называем её «Ыть»). Это основная платформа для хранения и обработки больших объемов данных — мы уже о ней рассказывали на YaC 2013. С тех пор она продолжала развиваться. Сегодня я расскажу о том, с чего началась разработка YT, что нового в ней появилось и что ещё мы планируем сделать в ближайшее время.



Кстати, 15 октября в офисе Яндекса мы расскажем не только о YT, но и о других наших инфраструктурных технологиях: Media Storage, Yandex Query Language и ClickHouse. На встрече мы раскроем тайну — расскажем, сколько же в Яндексе MapReduce-систем.

Какую задачу мы решаем?


По роду своей деятельности Яндекс постоянно сталкивается с необходимостью хранить и обрабатывать данные таких объемов, с которыми обычному пользователю никогда не приходится иметь дело. Поисковые логи и индексы, пользовательские данные, картографическая информация, промежуточные данные и результаты алгоритмов машинного обучения — все это может занимать сотни петабайт дискового пространства. Для эффективной обработки подобных объемов традиционно используется парадигма MapReduce, позволяющая достичь хорошего баланса между эффективностью вычислений и простотой пользовательского кода.

Читать дальше →
Total votes 108: ↑106 and ↓2+104
Comments45

PHP / JSON база данных

Reading time5 min
Views69K
При разработке web приложений, часто возникает потребность в хранении определённых настроек или временных данных. Обычно, для этого используются или файлы, или базы данных. Если это база данных, то хранить в базе таблицу с одной строкой, как чаще всего это бывает, не очень удачный вариант. Для этого чаще используются config файлы определенных форматов (*.php, *.ini, *.xml, *.json).
Читать дальше →
Total votes 78: ↑56 and ↓22+34
Comments40

Современный PHP без фреймворков

Reading time13 min
Views91K


У меня есть для вас непростое задание. Когда в следующий раз начнёте новый проект, постарайтесь обойтись без PHP-фреймворка. Я не собираюсь перечислять недостатки фреймворков, и это не проявление синдрома неприятия чужой разработки: в этом руководстве мы будем использовать пакеты, написанные разработчиками нескольких фреймворков. Я всецело уважаю инновации в этой сфере.

Читать дальше →
Total votes 96: ↑78 and ↓18+60
Comments265

Software versioning

Reading time10 min
Views58K

Методология изменения версий продукта программного обеспечения


   Software versioning — это процесс создания уникальных имен или номеров для различных версий продуктов программного обеспечения.

   При имеющейся категории номера версии (главная, второстепенная), номера обычно выставляются в возрастающем порядке и соответствуют новым разработкам в программном обеспечении. На начальном уровне отслеживанием постепенно появляющихся версий электронной информации занимается система управления версиями, позволяющая хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, определяя, кто и когда сделал то или иное изменение и многое другое. Вместе с тем для отслеживания изменений программного обеспечения было создано большое количество схем присвоения номеров версиям.
Читать дальше →
Total votes 91: ↑76 and ↓15+61
Comments18

Laravel: объясняем основные понятия. Часть вторая: «Практика»

Reading time10 min
Views19K
Всем привет! Продолжаем серию авторских публикаций в преддверии старта курса «Framework Laravel». В прошлой статье мы с вами посмотрели на теоретические основы Laravel. Однако теорию любого фреймворка можно изучать достаточно долго и ничего не понять, пока сам не напишешь ничего на практике.



Поэтому давайте мы с вами напишем приложение, в котором каждому пользователю можно будет авторизовываться, создавать новые альбомы и загружать туда фотографии. Если вы не знаете пока, что такое MVC, почитайте это , скоро вам предстоит воспользоваться этим на практике.
Читать дальше →
Total votes 19: ↑14 and ↓5+9
Comments13

Как я визуализировал граф билда. Build Graph for Xcode

Reading time11 min
Views9K

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

Пет — отличный способ прокачаться как начинающим разработчикам, так и опытным. Во время разработки пет-проекта можно побывать и программистом, и дизайнером, и менеджером, и маркетологом. 

В этот раз рабочая задача по ускорению билда привела меня к проекту по визуализации модулей в сложных приложениях. Давайте расскажу, как это было.

Читать далее
Total votes 29: ↑28 and ↓1+31
Comments6

Inversion of Control: Методы реализации с примерами на PHP

Reading time8 min
Views50K
О боже, ещё один пост о Inversion of Control


Каждый более-менее опытный программист встречал в своей практике словосочетание Инверсия управления (Inversion of Control). Но зачастую не все до конца понимают, что оно значит, не говоря уже о том, как правильно это реализовать. Надеюсь, пост будет полезен тем, кто начинает знакомится с инверсией управления и несколько запутался.

Читать дальше →
Total votes 34: ↑29 and ↓5+24
Comments32

Еще немного про сервисный слой в PHP

Reading time7 min
Views28K

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

Сегодня мы поговорим об одном из способов организации бизнес логики - сервисном слое (он же service layer), когда и зачем его нужно применять, а также какие проблемы архитектуры он поможет решить. Примеры реализации будут показаны с использованием архитектурного паттерна MVC и фреймворка Laravel.

Читать далее
Total votes 10: ↑8 and ↓2+14
Comments19

«Чистый код» Роберт Мартин. Конспект. Как писать понятный и красивый код?

Reading time9 min
Views61K
Я решил написать конспект книги, которая всем известна, а сам автор называет ее «Школой учителей Чистого кода». Пристальный взгляд Мартина как бы говорит:

«Я тебя насквозь вижу. Ты опять не следуешь принципам чистого кода?»

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

Готовимся к собеседованию по PHP: Что такое «DI», «Container», «Auto-wiring» за семь простых шагов

Reading time10 min
Views41K

Статья написана для начинающих разработчиков на языке PHP, чтобы помочь им усвоить понятия, нужные для понимания того, как устроены и работают современные фреймворки на PHP: Dependency Injection, Container, Auto-wiring.

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

Статья продолжает цикл статей под условным названием "Готовимся к собеседованию".

Читать далее
Total votes 19: ↑16 and ↓3+15
Comments13

В России создадут собственные литографы, поможет ли это отечественной микроэлектронике?

Reading time11 min
Views132K

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

Ведь где иначе искать истины в этом вопросе, как не на Хабре...

Под катом очень много буков...
Total votes 261: ↑236 and ↓25+267
Comments725

Kanboard — бесплатный инструмент для отслеживания задач с поддержкой Kanban

Reading time4 min
Views13K

Kanboard - это бесплатный аналог более продвинутых коммерческих систем отслеживания задач, таких как Jira или Trello.

Несмотря на кажущуюся простоту, система Kanboard оказалась вполне функциональной, поэтому я решил написать на нее обзор и поделиться опытом ее применения.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments7

Жизнь и смерть Крымской АЭС

Reading time31 min
Views47K

Среди легендарных советских строек есть те, что никогда не будут закончены. Ховринская больница, Свердловская башня, Трансполярная магистраль, Отель «Северная корона». Эти объекты так и не начали работать. Многие снесены, некоторые ожидают сноса. Но речь сегодня не о них. Мы поговорим о самом дорогом советском недострое – Крымской АЭС. Этот амбициозный проект стал жертвой ряда неудачных обстоятельств, которые чуть не похоронили всю советскую атомную промышленность. В этой статье вы узнаете, как этот проект создавался, как жил и как умер.

Читайте об истории Крымской АЭС
Total votes 94: ↑85 and ↓9+98
Comments190

Information

Rating
Does not participate
Registered
Activity