Search
Write a publication
Pull to refresh
127
0
barbalion @barbalion

User

Send message

Создание веб-приложений с помощью Scala.js и React — часть 1

Reading time9 min
Views13K

Перевод статьи Pedro Palma Ramos "Building Web applications with Scala.js and React — Part 1"


Мне, как Scala-программисту, разрабатывающему веб-приложения, обычно неприятен переход от аккуратного, функционального и типобезопасного Scala бэкенда к фронтенду, написанному на JavaScript. К счастью, существует мощная и зрелая альтернатива нашему (не всегда) любимому стандартному языку для Web.


Scala.js — это реализация Scala за авторством Sébastien Doeraene, которая компилирует код Scala в JavaScript, а не в байт-код JVM. Она поддерживает полную двустороннюю функциональную совместимость между Scala и JavaScript-кодом и, следовательно, позволяет разрабатывать фронтенд веб-приложения на Scala с использованием библиотек и фреймворков JavaScript. Она также способствует уменьшению дублирования кода по сравнению с обычным веб-приложением на Scala, поскольку позволяет повторно использовать на фронтэнде модели и бизнес-логику, разработанные для серверной части.


React, с другой стороны, представляет собой веб-фреймворк для создания пользовательских интерфейсов в JavaScript, разработанный и поддерживаемый Facebook и другими компаниями. Он способствует чистому разделению между обновлением состояния приложения в ответ на пользовательские события и визуализацией представлений на основе указанного состояния. Поэтому фреймворк React особенно подходит для функциональной парадигмы, которая используется при программировании на Scala.

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

Создание истории карточным методом: упрощаем жизнь сценаристам

Reading time7 min
Views44K

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


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


Lead

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

Как сделать логотип на миллион, если ты не дизайнер

Reading time3 min
Views57K
Что делать, если хочется сделать для своего проекта классный логотип, а денег на это нет? Последние десять лет я занимался дизайном, поэтому всегда мог сделать лого для своих проектов самостоятельно. А как можно сделать классный логотип, если ты не дизайнер?

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

Засуньте этот инфостиль себе в текст: 22 заповеди сильного редактора

Reading time9 min
Views48K
Не так давно я прочёл книгу «Пиши, сокращай» (авторы — Максим Ильяхов и Люда Сарычева) — современные популяризаторы инфостиля. Крутые чуваки, и книга тоже крутая.

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

Я быстро забываю прочитанное, поэтому выписал весь текст из оранжевых рамок в таблицу. Теперь, когда нужно писать статью, использую таблицу как руководство. Вот из чего она состоит.
Читать дальше →

Как двухлетний репозиторий на GitHub стал трендовым за 48 часов

Reading time8 min
Views41K


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

Есть две функции

Reading time16 min
Views54K
Привет

Есть две булевы функции n аргументов, одна — константная, другая — сбалансированная. На какую сам сядешь, на какую фронтендера посадишь? Вот только функции неизвестны, а вызвать их разрешается лишь один раз.

Если не знаешь, как решить подобную задачу, добро пожаловать под кат. Там я расскажу про квантовые алгоритмы и покажу как их эмулировать на самом народном языке — на Python.
Hello darkness, my old friend

Ищем и скачиваем непопулярные и старые файлы в интернете

Reading time14 min
Views214K
Преимущественно медиафайлы. На полном серьезе, без шуток.

Введение

Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.

Попытка скачать хотя бы один файл
Увы, частая ситуация в попытке хоть что-то скачать

Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Читать дальше →

Обзор: карманный дозиметр нового поколения Atom Fast

Reading time4 min
Views52K
Привет geektimes. Как человек, увлекающийся всякими гаджетами, я разумеется, имею дома дозиметр. Не из соображений радиофобии, а исключительно как интересный физический прибор, которым можно что-нибудь измерить. Давно была мысль попробовать новые дозиметры — сцинтиляционные, однако главное что останавливало, это цена. Наконец, под Новый год удачно совпали время, наличие денег и свободного времени, и в итоге Санта Клаус в лице сотрудника почты, принес мне небольшой сувенир и дозиметр Atom Fast.



Как это работает, подробности под катом.
Читать дальше →

Windows: Sleep(0.5)

Reading time12 min
Views33K
Как, наверняка, многие знают, в WinAPI'шную функцию Sleep передаётся число миллисекунд, на сколько мы хотим уснуть. Поэтому минимум, что мы можем запросить — это уснуть на 1 миллисекунду. Но что если мы хотим спать ещё меньше? Для интересующихся, как это сделать в картинках, добро пожаловать, под кат.
Читать дальше →

Мы добрались до побочных эффектов лазерной коррекции зрения — и ещё до диагностики

Reading time14 min
Views259K


Начнём с диагностики, потом перейдём к жести, а потом я покажу много фотографий оборудования.

В 90-х роговицу исследовали ультразвуковым «карандашиком». Вместо полноценной карты роговицы было 10-15 замеров на глаз, по которым хирург составлял мысленное представление о том, что там у пациента. В 92-м году распространились топографы, основанные на системе Пласидо. Идея в том, что если сделать проекцию световых колец на роговицу, то на идеальной они будут круглыми, а любое искажение даст искажение от окружности. То есть получалась такая мишень в глазу в идеальном случае, и яйцо при астигматизме. Так и смотрели — светили лучом через диск Пласидо. Сейчас такие диски у многих хирургов в кармане на всякий случай.

Метод был, конечно, очень примерный. Потом пришла автоматика: эти же диски стали в 32-36 колец вместо 8 или 10, и аппарат их фотографировал, а затем распознавал и рассчитывал искажения, и выдавал «карту глубин» глаза.
Читать дальше →

Методы оптимизации нейронных сетей

Reading time17 min
Views228K

В подавляющем большинстве источников информации о нейронных сетях под «а теперь давайте обучим нашу сеть» понимается «скормим целевую функцию оптимизатору» лишь с минимальной настройкой скорости обучения. Иногда говорится, что обновлять веса сети можно не только стохастическим градиентным спуском, но безо всякого объяснения, чем же примечательны другие алгоритмы и что означают загадочные \inline \beta и \inline \gamma в их параметрах. Даже преподаватели на курсах машинного обучения зачастую не заостряют на этом внимание. Я бы хотел исправить недостаток информации в рунете о различных оптимизаторах, которые могут встретиться вам в современных пакетах машинного обучения. Надеюсь, моя статья будет полезна людям, которые хотят углубить своё понимание машинного обучения или даже изобрести что-то своё.


image


Под катом много картинок, в том числе анимированных gif.

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

История операций по коррекции зрения: сравнение рисков и побочных эффектов

Reading time12 min
Views157K

Механическое устройство, выстреливающее или медленно двигающее лезвием для срезания верхней части роговицы глаза

Начнём с истории, чтобы было понятно, как эволюционировали методы, а потом перейдём к рискам и побочным эффектам современных операций.

Итак, доктор Снеллен, который изобрёл таблицу проверки зрения, выдвинул теорию о том, что можно «поцарапать» глаз так, что кривизна роговицы изменится. Случилось это в 1869 году (в этом же году появилась таблица Менделеева и докопали Суэцкий канал), поэтому «царапать» тогда могли только металлическим скальпелем. Офтальмологии как отдельной науки официально не было, и занимались ей обычные хирурги — те же самые, которые бодро отпиливали руки и ноги при возникновении инфекции.

К глазам они приступать поначалу не решались: пациент вроде жив, шевелится и не кричит, значит, трогать его пока нет достаточных оснований. Поэтому первая операция по коррекции зрения была проведена доктором Лансом в Голландии только через 30 лет, в 1898 году.

Следующим отличившимся персонажем стал выдающийся советский хирург академик Святослав Николаевич Фёдоров, который предложил очень своеобразный метод: точечно нагревать роговицу глаза до тех пор, пока она не деформируется. Но вместе с японским офтальмологом Сато они быстро перешли к надрезам. Сато резал изнутри и тем самым создавал много осложнений, а Фёдоров делал насечки алмазным ножом снаружи. Эти самые надрезы фактически и положили начало современным лазерным операциям.
Читать дальше →

Этикет Кремниевой Долины

Reading time10 min
Views45K
Здесь встречают по манерам…
В 17-ом веке во Франции манеры приобрели политическое значение. Король Людовик XIV и его предшественники, собирая вместе аристократию Франции под одной крышей с сувереном в его дворце в Версале, основали своего рода школу манер.

Во дворце придворные жили под деспотическим надзором короля. Если вы вызывали недовольство Людовика, то он просто высказывал пожелание «не видеть вас» на следующий день. И желание короля «не видеть вас» было равносильно полному забвению вас в Версале.

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

Маргарет Виссер
Читать дальше →

Подводные камни Bash

Reading time32 min
Views99K


В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


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

MMO в реальном мире, или Инструкция по созданию живых игр, или Как сделать так, чтобы детям в лагере было интересно

Reading time9 min
Views14K

Никогда мне не быть Milfgard'ом
Мои строки не так понятны
Но я тоже делаю игры
И это довольно приятно

К.В.Давыденко 2016 г.


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



Как некоторые из хаброжителей знают, по предыдущей статье я в свободное время работаю в детских лагерях. Я занимаюсь в них много чем, но специализируюсь я (если это можно так сказать) на создании игр в реальном мире. Это не такая уж и простая задача. Перед создателем игры встаёт много трудностей. В этой статье я хочу рассказать о них на примере большой игры-симуляторе города, под названием Big City Jail Detective RPGame. Но прежде чем переходить к чему-то настолько глобальному, рассмотрим ситуацию выше.


Что же делать, если вы человек-леденец запертый с детьми?


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

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

Полное практическое руководство по Docker: с нуля до кластера на AWS

Reading time39 min
Views1.8M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

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

Жаргон функционального программирования

Reading time10 min
Views95K


У функционального программирования много преимуществ, и его популярность постоянно растет. Но, как и у любой парадигмы программирования, у ФП есть свой жаргон. Мы решили сделать небольшой словарь для всех, кто знакомится с ФП.


В примерах используется JavaScript ES2015). (Почему JavaScript?)


Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


Arity (арность)


Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

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

Этажи: 3D-навигация на WebGL в 2gis.ru

Reading time11 min
Views30K


В 2014 году 2ГИС выпустил Этажи — это фича, позволяющая посмотреть схему этажей здания и найти на ней нужную организацию. Долгое время она существовала только в мобильных приложениях 2ГИС. Теперь эта возможность появилась и в онлайн-версии.

Этажи для веба сделаны на технологии WebGL: они полностью трёхмерные, их можно крутить и приближать. Это первый проект компании, сделанный на этой технологии, и мы хотели бы поделиться опытом реализации.
Читать дальше →

Как нельзя делать рекомендации контента

Reading time9 min
Views23K

Во время общения с медиа мы в Relap.io часто сталкиваемся с массой заблуждений, в которые все верят, потому что так сложилось исторически. На сайте есть блоки типа «Читать также» или «Самое горячее» и т.п. Словом, всё то, что составляет обвязку статьи и стремится дополнить UX дорогого читателя. Мы расскажем, какие заблуждения есть у СМИ, которые делают контентные рекомендации, и развеем их цифрами.
 
HAbr1
 
 
Читать дальше →

Android runtime permissions. Почему, зачем и как

Reading time12 min
Views123K
Часто при установке приложения на Android нам приходилось видеть, что оно запрашивает какое-то немыслимое количество разрешений. Например:



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

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

К шестой версии Android ситуация поменялась. Теперь разрешения нужно запрашивать в процессе работы. О том, как этой новой возможностью пользоваться и ее некоторых подводных камнях будет рассказано далее.
Читать дальше →

Information

Rating
1,898-th
Location
Россия
Date of birth
Registered
Activity