Как стать автором
Обновить
0
0
Азамат Касымбеков @artmadiar

Web-разработка

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

RxJS: реактивное расширение для фронтенд разработки

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

Итак, прошу любить и жаловать, Виктор Русакович. Родом из Минска, работает в компании GP Software.travel.
Виктор последние пять лет занимается (в основном) фронт-енд разработкой. Ну а начинал, как и большинство из нас, с jQuery.

Потом был backbone, angular v1. Последние полгода он работает в проекте на Redux/React.js (часто их путают с RxJS, но это немного другое).


Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии50

Реактивный манифест

Время на прочтение12 мин
Количество просмотров55K
В последние годы требования к приложениям значительно изменились. Десятки серверов, время отклика в несколько секунд, оффлайновое обслуживание, которое могло длиться часами, гигабайты данных — такими были большие приложения буквально несколько лет назад. Сегодня же приложения работают абсолютно на всём, начиная с простых мобильников и заканчивая кластерами из тысячи процессоров. Пользователи ожидают миллисекундного времени отклика и стопроцентного аптайма, в то время как данные выросли до петабайтов.

Первоначально эту нишу занимали крупные инновационные интернет-компании типа Google или Twitter, однако такие требования к приложениям начали всплывать во многих областях индустрии. Финансовые и телекоммуникационные компании первыми начали внедрять новые практики, чтобы удовлетворить новым требованиям, а теперь подтягиваются и остальные.

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

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

Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии15

Буферы, потоки и двоичные данные в Node.js

Время на прочтение8 мин
Количество просмотров26K
Автор статьи о буферах, потоках и двоичных данных в Node.js, перевод которой мы публикуем, говорит, что он понимает ощущения тех начинающих разработчиков, не имеющих специального образования, которым все эти сущности кажутся таинственными и непонятными. По его словам, это может заставить начинающих отложить в долгий ящик попытки разобраться со внутренними механизмами Node, сославшись на то, что всё это предназначено не для них, а лишь для профессионалов высшего класса, да для разработчиков пакетов. Сегодня он собирается исправить ситуацию и помочь всем желающим вникнуть в суть буферов, потоков и двоичных данных в Node.js и научиться со всем этим работать.

image
Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии2

Основы прогрессивных веб-приложений

Время на прочтение6 мин
Количество просмотров22K
Видели когда-нибудь кнопку «Добавить на главный экран», которая появлялась на экране вашего Android-смартфона, когда вы просматривали какой-нибудь сайт? Если щёлкнуть по этой кнопке, то на телефон, в фоновом режиме, будет установлено некое приложение, значок для запуска которого попадёт на главный экран. Теперь это приложение можно запустить и работать с сайтом почти так же, как и раньше, но только в обычном телефонном интерфейсе.

То, о чём мы говорим, представляет собой мобильное приложение, которое было загружено из веб-приложения. Причём, как можно заметить, для установки такого приложения вам не приходится взаимодействовать с Play Market. В результате, установка таких приложений упрощается настолько, насколько это вообще возможно. Однако это — далеко не самое интересное. Запуская подобные программы, вы получаете возможность работать с теми данными, которые они выводят, даже без подключения к интернету. Они позволяют взаимодействовать с веб-страницами в оффлайне. Ну не замечательно ли это?

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


Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии5

Логика сознания. Вступление

Время на прочтение8 мин
Количество просмотров111K
image В свое время на Хабре был опубликован цикл статей «Логика мышления». С тех пор прошло два года. За это время удалось сильно продвинуться вперед в понимании того, как работает мозг и получить интересные результаты моделирования. В новом цикле «Логика сознания» я опишу текущее состоянии наших исследований, ну а попутно попытаюсь рассказать о теориях и моделях интересных для тех, кто хочет разобраться в биологии естественного мозга и понять принципы построения искусственного интеллекта.

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

Ситуация, связанная с изучением мозга, особенная для науки. Во всех остальных областях естествознания есть базовые теории. Они составляют фундамент на котором строятся все последующие рассуждения. И только в нейронауке до сих пор нет ни одной теории, которая хоть как-то объясняла, как в нейронных структурах мозга протекают информационные процессы. При этом накоплен огромный объем знаний о физиологии мозга. Получены очень обнадеживающие результаты с помощью искусственных нейронных сетей. Но перекинуть мостик от одного к другому, пока, не удается. То, что известно о биологических нейронных сетях очень плохо соотносится с созданными на сегодня архитектурами искусственных нейронных сетей.

Не должна вводить в заблуждение распространенная фраза о том, что многие идеи искусственных нейронных сетей позаимствованы из исследований реального мозга. Заимствование носит слишком общий характер. По большому счету, оно заканчивается на том, что и там и там есть нейроны и между этими нейронами есть связи.
Читать дальше →
Всего голосов 49: ↑46 и ↓3+43
Комментарии179

Внешнее воздействие на веб-клиент 1С: Предприятие

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

Внешнее воздействие на веб-клиент 1С: Предприятие


Описанный метод позволяет организовать контейнер средствами html и JavaScript и поместить в него веб-клиент 1С. При этом контейнеру доступно управление веб-клиентом, как на уровне алгоритмов, так и на уровне управления стилями. Подход отрабатывался на 1С версии 8.2.18.96.

Настройка на стороне веб-сервера

Каждый веб-клиент 1С работает с опубликованной на веб-сервере информационной базой. Для более полной интеграции контейнер, в который будет встроен веб-клиент, необходимо создавать на этом же сервере. Это позволит избежать проблем с безопасностью, связанных с кросс-доменными обращениями. Например, Silverlight и Flash не позволяют обращаться к контенту других сайтов, если не настроены соответствующие политики в виде xml-файлов. Post-запросы между доменами также могут быть затруднительными.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Нейронные сети на Javascript

Время на прочтение7 мин
Количество просмотров164K
image
Идея для написания этой статьи возникла прошлым летом, когда я слушал доклад на конференции BigData по нейронным сетям. Лектор «посыпал» слушателей непривычными словечками «нейрон», «обучающая выборка», «тренировать модель»… «Ничего не понял — пора в менеджеры», — подумал я. Но недавно тема нейронных сетей все же коснулась моей работы и я решил на простом примере показать, как использовать этот инструмент на языке JavaScript.

Мы создадим нейронную сеть, с помощью которой будем распознавать ручное написание цифры от 0 до 9. Рабочий пример займет несколько строк. Код будет понятен даже тем программистам, которые не имели дело с нейронными сетями ранее. Как это все работает, можно будет посмотреть прямо в браузере.
Читать дальше →
Всего голосов 58: ↑54 и ↓4+50
Комментарии79

Производительность web: Why Performance Matters

Время на прочтение12 мин
Количество просмотров22K
Как сделать сайт, который понравится пользователю? Какой он должен быть: красивый, с удобной навигацией, с запоминающимся URL? Прежде всего, сайт не должен тормозить — у пользователя должно складываться впечатление, что всё летает. Это первично. Всё остальное решается по мере разработки. О том, как воспринимают сайт пользователи, от чего это зависит и когда производительность решает, мы поговорили с Денисом Мишуновым, frontend-разработчиком (в прошлом контрибьютор в CMS Plone в составе Plone UI Team), автором статей про производительность в Smashing Magazine и активным спикером на профессиональных конференциях (среди которых From The Front, JSConf EU, JSConf Budapest, Smashing Conference, а теперь и HolyJS)



— Расскажи о себе. Какой был путь к web-разработке, почему именно она? Чем ты сейчас занимаешься?

— До того, что сейчас называют веб-разработкой, я дошёл быстро, уверенно и предсказуемо: первый компьютер, первый, никому не нужный, сайт, осознание бренности бытия. Дальше было чтение первых страниц «Программирование на Perl» Ларри Уилла и Тома Кристиансен с депрессивным верблюдом на обложке, повторное осознание бренности бытия и, как следствие, откладывание верблюдокниги. А потом я открыл для себя «Designing with Web Standards» Джеффри Зельдмана. Потом было, конечно же, «Ководство» Лебедева и много всего остального. Но книга Зельдмана была переломной. Хотелось бы сказать что-то красивое типа: «мир веба захватил меня после прочтения», но на самом деле я просто понял, что по сравнению с «конструктор электронных аппаратов» (которых из нас тщетно пытались сделать в институте), интернет-разработчик, а именно так это называлось в начале нулевых, звучит откровенно круче.
Читать дальше →
Всего голосов 26: ↑19 и ↓7+12
Комментарии21

Создание RESTful сервисов на Meteor

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

Введение: Зачем нужен RESTful сервис на Meteor


Meteor привлекает простотой использования и возможностью очень быстро создать работающее приложение с минимальным набором функций. У Meteor — хорошо развитое сообщество. Есть множество полезных дополнительных модулей, которые не требуют сложной настройки, и могут быть использованы сразу после установки. Есть хорошая документация, примеры и большое количество постов на форумах, вроде StackOverflow. Meteor — это full-stack фреймворк, который предлагает удобную и многофункциональную интеграцию сервера с клиентом. Так зачем же выходить за рамки этого взаимодействия, и создавать RESTful сервис?

Клиент-серверное приложение, по-сути, состоит из 2 независимых частей, которые взаимодействуют посредством определенного интерфейса. При этом каждая из частей клиент-серверного приложения может создаваться разными людьми или командами. Разработчики клиенсткой части вовсе не ограничены использованием Meteor, они могут использовать любой другой JS фреймворк, клиент даже не обязательно должен быть написан на JS, это может быть к примеру приложение Android, написанное на Java, или iOS, написанное на Objective C.

Именно эти причины заставили меня выбрать Meteor для построения back end в моем проекте, и искать пути для создания RESTful сервиса на Meteor.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии6

Руководство по HTML/CSS/JavaScript

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

Frontend Guidelines

Правила и руководства оформления, форматирования HTML, СSS и JavaScript кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

От переводчика

Приветствую всех снова, меня зовут Максим Иванов, и сегодня я подготовил перевод, который, возможно, окажется для вас полезным. Бенджамин Де Кук (Benjamin De Cock), разработчик из Бельгии, собрал некоторые указания по оформлению кода, которые позиционируют себя как лучшие практики по написанию HTML, CSS, JS. Конечно, существует множество рекомендаций, например, есть хороший гайдлайн от Google, наверное, есть еще что-то, однако, если следовать хотя бы некоторым из них, то можно надеяться, что ваш код станет лучше. В отдельных случаях следование этим гайдлайнам не полезно, а совсем наоборот. В общем и целом, все зависит от вашего опыта и виденья дела, если вы новичок, то скорее вам будет полезно оценить то, что пишут другие и в обществе считается верным, если вы гуру, то наверное вам и не нужны гайдлайны, которые написаны непонятно кем на ваш взгляд. Итак, приступим.
Читать дальше →
Всего голосов 38: ↑29 и ↓9+20
Комментарии38

Обзор мозгокомпьютерного интерфейса Emotiv Epoc

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

Читать дальше →
Всего голосов 159: ↑159 и ↓0+159
Комментарии172

Почему Go — это хорошо продуманный язык программирования

Время на прочтение9 мин
Количество просмотров44K
В недавнем посте с критикой Go, который был выдан за перевод, пользователь tucnak, помимо избыточной фамильярности в адрес Роба Пайка, поднял несколько интересных моментов языка. Поскольку формат статьи предполагал, увы, не желание разобраться в теме, а разжечь холивары, предлагаю в этой статье пройтись по озвученным «проблемам» и понять, о чём же речь на самом деле, и что же заставляет современные компании выбирать Go.

image
Читать дальше →
Всего голосов 156: ↑92 и ↓64+28
Комментарии362

Будущее Web очень напоминает Bitcoin

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

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

Зимой 2014 года он позвал меня с собой на биткоин-конференцию в Майами, чтобы рассказать о новом проекте Ethereum, который он с единомышленниками из Канады запустил за несколько месяцев до этого. Когда он объяснил мне суть проекта, он не скупился на прогнозы: «Мы заменим страховые компании и Уолл Стрит».

Список продолжал расти. Онлайн-сервисы по распространению фильмов вроде Netflix и Hulu. Игровые платформы вроде Xbox и Sega Genesis. Мессенджеры вроде Twitter. Пенсии, обмены валют, системы голосования, управление интеллектуальной собственностью, трастовые фонды. Если верить Любину, то всё – реально всё, что мы делаем через интернет или по другим цифровым каналам, претерпит радикальные изменения.

Рассказанная им идея с тех пор завладела умами энтузиастов цифровых валют. Идея в том, что технология, обеспечивающая безопасные транзакции в сети биткоин, и делающая их прозрачными, очень быстрыми и нецензурируемыми, и не требующими доверия другим сторонам, может использоваться для обработки более сложных сделок и хранить любую цифровую информацию в интернете.
Читать дальше →
Всего голосов 33: ↑27 и ↓6+21
Комментарии31

10 главных ошибок масштабирования систем

Время на прочтение7 мин
Количество просмотров52K
Мартин Л. Эббот и Майкл Т. Фишер, авторы книги «Искусство масштабируемости», перечисляют наиболее распространенные архитектурные, организационные и технологические проблемы масштабировании в product-группах. Список был сформирован на основе их опыта, а также в ходе коммуникаций с клиентами и лег в основу первой книги.

Архитектурные ошибки



Читать дальше →
Всего голосов 53: ↑45 и ↓8+37
Комментарии33

Создание синтезатора на JavaScript

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


Идея сделать браузерный синтезатор у меня появилась достаточно давно, ещё когда Audio API был в весьма зачаточном состоянии и практически единственным шансом извлечь звук из браузера (кроме воспроизведения готовых файлов) была генерация WAV с его последующей кодировкой в base64 и записью в аудио-тег. И если синтез и кодирование удавались без проблем (WAV формат довольно прост), то с потоковым аудио для музицирования в реальном времени всё было хуже и никакими ухищрениями не удавалось добиться бесшовной буферизации, в связи с чем идея и заглохла, так не успев родиться. За прошедшие годы браузеры в поддержке Audio API заметно прибавили, что в свою очередь вдохновило меня на новые эксперименты в этой области. В данной статье шаг за шагом описывается процесс создания браузерного синтезатора средствами HTML5, начиная с генерации простой синусоиды, продолжая коммутацией и модуляцией сигналов и заканчивая аудиоэффектами.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии9

Сайд-проекты — почему это важно для разработчика

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


Мы в Alconost весьма любим и ценим сторонние проекты, и порой отвлекаемся на них прямо в рабочее время. Так родились бесшабашные и задорные видео о стобаксовой купюре в разных художественных стилях, о том, как сделать инфографику вирусной, об истинной цене ожидания в Интернете… У этих роликов не было заказчика — мы просто получили удовольствие, придумывая, рисуя и анимируя их. Для программистов сайд-проекты тоже имеют особое значение. Мы перевели целую статью шведского предпринимателя и разработчика Дэвида Эльбе об этом.

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

Давайте поговорим о том, почему я считаю сайд-проекты хорошей идеей, как использую их для саморазвития и на что вам стоит обращать внимание.
Читать дальше →
Всего голосов 35: ↑26 и ↓9+17
Комментарии31

Почему SMS ограничены именно 160 символами, а сообщения в Twitter — 140 символами?

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

Документ из архива Твиттер, около 2000 г., рабочее название Твиттер — «Stat.us». Credit: Jack Dorsey

Шел 1985 год. Фридхельм Хиллебранд напряженно работал, сидя за столом в пустой комнате своего дома в Бонне (Германия), и непрерывно печатал на пишущей машинке случайные фразы: новости, просьбы, вопросы… все вперемешку. Закончив печать очередную страницу, Хиллебранд подсчитывал количество букв, цифр, знаков пунктуации и пробелов в каждом напечатанном на странице предложении, и тут же принимался за следующую страницу.

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

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

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

«Мои друзья уверяли меня в один голос, что такое ограничение слишком малó для массового рынка»,- вспоминает Хиллебранд, и добавляет: «но я был более оптимистичен».

Читать дальше →
Всего голосов 44: ↑36 и ↓8+28
Комментарии45

jQuery-плагин для организации компонентов на странице

Время на прочтение2 мин
Количество просмотров20K
JBlocks — небольшой jQuery-плагин (~100 строк) для организации компонентов на странице.

Строится на трех основных принципах:

  • опиши поведение компонента в декларации;
  • разметь компонент в html с помощью специальных атрибутов;
  • общайся со экземплярами компонента через АПИ.

Если вам интересна тема декларативного javascript — прошу под кат.
Читать дальше →
Всего голосов 29: ↑21 и ↓8+13
Комментарии74

Иногда лучше меньше — почему только Google-авторизация? + канал Rusbase

Время на прочтение3 мин
Количество просмотров12K
Недавно на хабре вышла статья на тему Юзабилити форм авторизации и мы решили поделиться своим мнением, почему наша форма авторизации выглядит вот так:
image
У нас в системе нет регистрации, нет входа по логину-паролю. Наша конверсия на регистрацию при входе от 34% до 80% в зависимости от источника. И более 80% из тех кто вошел — добавляют устройства и пользуются системой.

Подробнее почему так, под катом.
Читать дальше →
Всего голосов 21: ↑15 и ↓6+9
Комментарии35

Как увеличить скорость работы 1С в 100 раз прямым обращением к MSSQL

Время на прочтение3 мин
Количество просмотров52K
Возникла задача пометить на удаление документы за 1 год. Эта операция выполняется перед бесследным удалением и включает выставление отметки и удаление движения по регистрам. Пробное удаление штатными средствами одного месяца заняло 4 часа. Это означало, что 12 месяцев удалялись бы 48 часов (2 суток). Забегая вперед, скажу, что прямым доступом к 1С документы удаляются за 30-40 минут. Обращение к MSSQL выполнялось через .Net framework и компонент .Net Bridge.

Определение имен таблиц MSSQL


Структура базы данных 1С весьма запутана и состоит из малозначимых для человека названий. 1С содержит функцию определения структуры хранения по имени объекта. В основу разработки положена эта функция ПолучитьСтруктуруХраненияБазыДанных, которая согласно русскому названию возвращает описание структуры. В этой структуре важны 2 поля Назначение, которое должно быть равно «Основная», и название таблицы ИмяТаблицыХранения.

Читать дальше →
Всего голосов 38: ↑25 и ↓13+12
Комментарии33

Информация

В рейтинге
Не участвует
Откуда
Чехия
Дата рождения
Зарегистрирован
Активность